From 9155f4aa9f36c9f9d1c628a5505fff1854023b84 Mon Sep 17 00:00:00 2001 From: kizahasi <21971954+kizahasi@users.noreply.github.com> Date: Tue, 5 Nov 2024 20:12:14 +0900 Subject: [PATCH 01/11] =?UTF-8?q?ci:=20main-build=E3=81=B8=E3=81=AEPR?= =?UTF-8?q?=E3=82=92=E4=B8=80=E5=AE=9A=E6=99=82=E9=96=93=E7=B5=8C=E9=81=8E?= =?UTF-8?q?=E5=BE=8C=E8=87=AA=E5=8B=95=E7=9A=84=E3=81=ABclose=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=82=B9=E3=82=AF=E3=83=AA=E3=83=97=E3=83=88=E3=82=92?= =?UTF-8?q?=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/close-stale-auto-build.yml | 22 -------------------- 1 file changed, 22 deletions(-) delete mode 100644 .github/workflows/close-stale-auto-build.yml diff --git a/.github/workflows/close-stale-auto-build.yml b/.github/workflows/close-stale-auto-build.yml deleted file mode 100644 index f1242f7ef..000000000 --- a/.github/workflows/close-stale-auto-build.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: 'Close stale auto-build PRs' -on: - schedule: - - cron: '0 7,19 * * *' - -permissions: - contents: write # only for delete-branch option - pull-requests: write - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v9 - with: - stale-pr-message: 'This PR is stale because it has `auto-build` label and it has been open 1 day with no activity. Remove stale label or this will be closed and the branch will be deleted in 1 day.' - days-before-pr-stale: 1 - days-before-pr-close: 1 - stale-pr-label: stale - only-pr-labels: auto-build - ignore-pr-updates: true - delete-branch: true From 2394bd8575719f90d750cd4b0dd295327c87dfda Mon Sep 17 00:00:00 2001 From: kizahasi <21971954+kizahasi@users.noreply.github.com> Date: Wed, 6 Nov 2024 17:47:23 +0900 Subject: [PATCH 02/11] =?UTF-8?q?feat(tools):=20https://github.com/flocon-?= =?UTF-8?q?trpg/tools=20=E3=82=92=E3=81=93=E3=81=AE=E3=83=AA=E3=83=9D?= =?UTF-8?q?=E3=82=B8=E3=83=88=E3=83=AA=E3=81=AB=E5=BC=95=E3=81=A3=E8=B6=8A?= =?UTF-8?q?=E3=81=97=20(#630)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- commitlint.config.js | 1 + packages/websites-base/.prettierignore | 2 + packages/websites-base/.prettierrc | 1 + packages/websites-base/README.md | 1 + packages/websites-base/eslint.config.mjs | 14 + packages/websites-base/package.json | 49 ++ packages/websites-base/rollup.config.js | 4 + packages/websites-base/src/index.ts | 1 + .../websites-base/src/internal/CreateEnv.tsx | 509 ++++++++++++++++++ packages/websites-base/tsconfig.json | 6 + websites/tools/.eslintrc.js | 37 ++ websites/tools/.gitignore | 29 + websites/tools/.prettierignore | 2 + websites/tools/.prettierrc | 1 + websites/tools/README.md | 7 + websites/tools/eslint.config.js | 32 ++ websites/tools/index.html | 12 + websites/tools/package.json | 49 ++ websites/tools/src/main.css | 3 + websites/tools/src/main.tsx | 45 ++ websites/tools/src/routeTree.gen.ts | 136 +++++ websites/tools/src/routes/__root.tsx | 28 + websites/tools/src/routes/bcrypt.tsx | 84 +++ websites/tools/src/routes/index.tsx | 32 ++ websites/tools/src/routes/web-server.tsx | 11 + websites/tools/src/vite-env.d.ts | 1 + websites/tools/tsconfig.app.json | 20 + websites/tools/tsconfig.base.json | 20 + websites/tools/tsconfig.json | 4 + websites/tools/tsconfig.node.json | 17 + websites/tools/vite.config.ts | 14 + yarn.lock | 81 ++- 32 files changed, 1250 insertions(+), 3 deletions(-) create mode 100644 packages/websites-base/.prettierignore create mode 100644 packages/websites-base/.prettierrc create mode 100644 packages/websites-base/README.md create mode 100644 packages/websites-base/eslint.config.mjs create mode 100644 packages/websites-base/package.json create mode 100644 packages/websites-base/rollup.config.js create mode 100644 packages/websites-base/src/index.ts create mode 100644 packages/websites-base/src/internal/CreateEnv.tsx create mode 100644 packages/websites-base/tsconfig.json create mode 100644 websites/tools/.eslintrc.js create mode 100644 websites/tools/.gitignore create mode 100644 websites/tools/.prettierignore create mode 100644 websites/tools/.prettierrc create mode 100644 websites/tools/README.md create mode 100644 websites/tools/eslint.config.js create mode 100644 websites/tools/index.html create mode 100644 websites/tools/package.json create mode 100644 websites/tools/src/main.css create mode 100644 websites/tools/src/main.tsx create mode 100644 websites/tools/src/routeTree.gen.ts create mode 100644 websites/tools/src/routes/__root.tsx create mode 100644 websites/tools/src/routes/bcrypt.tsx create mode 100644 websites/tools/src/routes/index.tsx create mode 100644 websites/tools/src/routes/web-server.tsx create mode 100644 websites/tools/src/vite-env.d.ts create mode 100644 websites/tools/tsconfig.app.json create mode 100644 websites/tools/tsconfig.base.json create mode 100644 websites/tools/tsconfig.json create mode 100644 websites/tools/tsconfig.node.json create mode 100644 websites/tools/vite.config.ts diff --git a/commitlint.config.js b/commitlint.config.js index 211b0ed81..6fcf23262 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -18,6 +18,7 @@ module.exports = { 'sdk', 'sdk-react', 'sdk-urql', + 'tools', 'utils', 'web-server-utils', ], diff --git a/packages/websites-base/.prettierignore b/packages/websites-base/.prettierignore new file mode 100644 index 000000000..c06f0b4de --- /dev/null +++ b/packages/websites-base/.prettierignore @@ -0,0 +1,2 @@ +/dist/ +/coverage/ \ No newline at end of file diff --git a/packages/websites-base/.prettierrc b/packages/websites-base/.prettierrc new file mode 100644 index 000000000..dabc20838 --- /dev/null +++ b/packages/websites-base/.prettierrc @@ -0,0 +1 @@ +"@flocon-trpg/prettier-config" \ No newline at end of file diff --git a/packages/websites-base/README.md b/packages/websites-base/README.md new file mode 100644 index 000000000..8ccb77adf --- /dev/null +++ b/packages/websites-base/README.md @@ -0,0 +1 @@ +# websites-base diff --git a/packages/websites-base/eslint.config.mjs b/packages/websites-base/eslint.config.mjs new file mode 100644 index 000000000..b7d95f2fc --- /dev/null +++ b/packages/websites-base/eslint.config.mjs @@ -0,0 +1,14 @@ +import Config from '@flocon-trpg/eslint-config'; + +export default [...Config, +{ + languageOptions: { + parserOptions: { + project: './tsconfig.json', + projectService: true, + // import.meta.dirname は ESM かつ Node.js >=20.11.0 / >= 21.2.0 でなければ使えない。 + tsconfigRootDir: import.meta.dirname, + }, + }, + }, +] \ No newline at end of file diff --git a/packages/websites-base/package.json b/packages/websites-base/package.json new file mode 100644 index 000000000..c27888047 --- /dev/null +++ b/packages/websites-base/package.json @@ -0,0 +1,49 @@ +{ + "name": "@flocon-trpg/websites-base", + "version": "0.1.0", + "private": true, + "license": "MIT", + "author": "kizahasi", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "files": [ + "dist" + ], + "scripts": { + "build": "yarn run build:self", + "build:rollup": "rollup --config", + "build:self": "rimraf ./dist && yarn build:rollup", + "lint": "eslint \"**/*.ts\" --cache", + "prettier": "yarn prettier:base --write --cache", + "prettier-check": "yarn prettier:base --check", + "prettier:base": "prettier \"**/*.{ts,tsx,js,json,yml,md,graphql}\"" + }, + "dependencies": { + "@flocon-trpg/core": "workspace:^", + "jotai": "^2.10.1" + }, + "devDependencies": { + "@flocon-trpg/eslint-config": "workspace:^", + "@flocon-trpg/prettier-config": "workspace:^", + "@flocon-trpg/rollup-config": "workspace:^", + "@flocon-trpg/tsconfig": "workspace:^", + "@types/react": "18.3.12", + "antd": "5.21.5", + "eslint": "9.13.0", + "eslint-config-prettier": "9.1.0", + "eslint-plugin-import": "2.31.0", + "prettier": "3.3.3", + "react": "18.3.1", + "rimraf": "5.0.10", + "rollup": "4.24.0", + "typescript": "5.6.2", + "typescript-eslint": "8.11.0" + }, + "peerDependencies": { + "antd": "^5.21.5", + "react": "^18.0.0" + }, + "engines": { + "node": ">=18 <21" + } +} diff --git a/packages/websites-base/rollup.config.js b/packages/websites-base/rollup.config.js new file mode 100644 index 000000000..a31b15460 --- /dev/null +++ b/packages/websites-base/rollup.config.js @@ -0,0 +1,4 @@ +const { config } = require('@flocon-trpg/rollup-config'); +const external = Object.keys(require('./package.json').dependencies ?? {}); + +module.exports = config({ external }); diff --git a/packages/websites-base/src/index.ts b/packages/websites-base/src/index.ts new file mode 100644 index 000000000..b5bb9d636 --- /dev/null +++ b/packages/websites-base/src/index.ts @@ -0,0 +1 @@ +export { CreateEnv } from './internal/CreateEnv'; diff --git a/packages/websites-base/src/internal/CreateEnv.tsx b/packages/websites-base/src/internal/CreateEnv.tsx new file mode 100644 index 000000000..27d50151a --- /dev/null +++ b/packages/websites-base/src/internal/CreateEnv.tsx @@ -0,0 +1,509 @@ +import { env } from '@flocon-trpg/core'; +import { Checkbox, Collapse, Form, Image, Input, Radio, Space, Table } from 'antd'; +import { atom, useAtom, useAtomValue } from 'jotai'; +import React from 'react'; + +const { + NEXT_PUBLIC_API_HTTP, + NEXT_PUBLIC_API_WS, + NEXT_PUBLIC_AUTH_PROVIDERS, + NEXT_PUBLIC_FIREBASE_CONFIG, + NEXT_PUBLIC_FIREBASE_STORAGE_ENABLED, +} = env; + +const isEmptyString = (value: string): boolean => { + return value.trim() === ''; +}; + +const isValidUrl = (value: string): boolean => { + return value.trim().startsWith('https://') || value.trim().startsWith('http://'); +}; + +namespace ErrorMessages { + export const mustNotBeEmpty = 'この値は必須です。'; + export const notHttpProtocol = 'https:// もしくは http:// で始まる必要があります。'; +} + +const envTxt = 'envTxt'; +const hostingService = 'hostingService'; +const headerPadding = 16; +const collapsePadding = 12; +const spaceBetweenCollapseContent = 12; + +const deployTypeAtom = atom(envTxt); + +const apiHttpAtom = atom(''); +const apiWsAtom = atom(''); +const authProvidersAtoms = { + anonymousAtom: atom(false), + emailAtom: atom(false), + googleAtom: atom(false), + facebookAtom: atom(false), + githubAtom: atom(false), + twitterAtom: atom(false), + phoneAtom: atom(false), +}; +const authProvidersArrayAtom = atom(get => { + const authProvidersArray: string[] = []; + if (get(authProvidersAtoms.anonymousAtom)) { + authProvidersArray.push(env.authProviders.anonymous); + } + if (get(authProvidersAtoms.emailAtom)) { + authProvidersArray.push(env.authProviders.email); + } + if (get(authProvidersAtoms.googleAtom)) { + authProvidersArray.push(env.authProviders.google); + } + if (get(authProvidersAtoms.facebookAtom)) { + authProvidersArray.push(env.authProviders.facebook); + } + if (get(authProvidersAtoms.githubAtom)) { + authProvidersArray.push(env.authProviders.github); + } + if (get(authProvidersAtoms.twitterAtom)) { + authProvidersArray.push(env.authProviders.twitter); + } + if (get(authProvidersAtoms.phoneAtom)) { + authProvidersArray.push(env.authProviders.phone); + } + return authProvidersArray; +}); + +const firebaseConfigAtoms = { + apiKeyAtom: atom(''), + authDomainAtom: atom(''), + projectIdAtom: atom(''), + storageBucketAtom: atom(''), + messagingSenderIdAtom: atom(''), + appIdAtom: atom(''), +}; + +const firebaseStorageEnabledAtom = atom(true); +const autoDetermineWsUrlAtom = atom(true); +const lineBreakAtom = atom<'\r' | '\n' | '\r\n'>('\n'); + +const firebaseConfigStringAtom = atom(get => { + return `{"${env.firebaseConfig.apiKey}":"${get(firebaseConfigAtoms.apiKeyAtom)}","${env.firebaseConfig.authDomain}":"${get(firebaseConfigAtoms.authDomainAtom)}","${env.firebaseConfig.projectId}":"${get(firebaseConfigAtoms.projectIdAtom)}","${env.firebaseConfig.storageBucket}":"${get(firebaseConfigAtoms.storageBucketAtom)}","${env.firebaseConfig.messagingSenderId}":"${get(firebaseConfigAtoms.messagingSenderIdAtom)}","${env.firebaseConfig.appId}":"${get(firebaseConfigAtoms.appIdAtom)}"}`; +}); + +const apiWsOutputAtom = atom(get => { + if (get(autoDetermineWsUrlAtom)) { + return get(apiHttpAtom) + .trim() + .replace(/^https:\/\//, 'wss://') + .replace(/^http:\/\//, 'ws://'); + } else { + return get(apiWsAtom); + } +}); + +const envTxtOutputAtom = atom(get => { + const apiHttp = get(apiHttpAtom); + const apiWs = get(apiWsOutputAtom); + + const authProvidersArray = get(authProvidersArrayAtom); + const authProvidersLine = + authProvidersArray.length === 0 + ? null + : `${NEXT_PUBLIC_AUTH_PROVIDERS}=${authProvidersArray.join(',')}`; + + const lines = [ + `${NEXT_PUBLIC_FIREBASE_CONFIG}=${get(firebaseConfigStringAtom)}`, + `${NEXT_PUBLIC_API_HTTP}=${apiHttp}`, + `${NEXT_PUBLIC_API_WS}=${apiWs}`, + authProvidersLine, + `${NEXT_PUBLIC_FIREBASE_STORAGE_ENABLED}=${get(firebaseStorageEnabledAtom) ? 'true' : 'false'}`, + ]; + + return lines.filter(line => line != null).join(get(lineBreakAtom)); +}); + +const dataSourceOutputAtom = atom(get => { + const authProvidersArray = get(authProvidersArrayAtom); + + const result: { key: string; value: string }[] = [ + { key: NEXT_PUBLIC_FIREBASE_CONFIG, value: get(firebaseConfigStringAtom) }, + { key: NEXT_PUBLIC_API_HTTP, value: get(apiHttpAtom) }, + { key: NEXT_PUBLIC_API_WS, value: get(apiWsOutputAtom) }, + ]; + if (authProvidersArray.length !== 0) { + result.push({ key: NEXT_PUBLIC_AUTH_PROVIDERS, value: authProvidersArray.join(',') }); + } + result.push({ + key: NEXT_PUBLIC_FIREBASE_STORAGE_ENABLED, + value: get(firebaseStorageEnabledAtom) ? 'true' : 'false', + }); + + return result; +}); + +const FirebaseConfigFormItem: React.FC<{ + label: string; + value: string; + setValue: (newValue: string) => void; + placeholder: string; +}> = ({ label, value, setValue, placeholder }) => { + return ( + {label}} + validateStatus={isEmptyString(value) ? 'error' : undefined} + help={isEmptyString(value) ? ErrorMessages.mustNotBeEmpty : undefined} + > + setValue(e.target.value)} + value={value} + placeholder={`例: ${placeholder}`} + /> + + ); +}; + +export const CreateEnv: React.FC = () => { + const [deployType, setDeployType] = useAtom(deployTypeAtom); + + const [autoWsState, setAutoWsState] = useAtom(autoDetermineWsUrlAtom); + + const [apiKey, setApiKey] = useAtom(firebaseConfigAtoms.apiKeyAtom); + const [appId, setAppId] = useAtom(firebaseConfigAtoms.appIdAtom); + const [authDomain, setAuthDomain] = useAtom(firebaseConfigAtoms.authDomainAtom); + const [messagingSenderId, setMessagingSenderId] = useAtom( + firebaseConfigAtoms.messagingSenderIdAtom, + ); + const [projectId, setProjectId] = useAtom(firebaseConfigAtoms.projectIdAtom); + const [storageBucket, setStorageBucket] = useAtom(firebaseConfigAtoms.storageBucketAtom); + + const [apiHttp, setApiHttp] = useAtom(apiHttpAtom); + const [apiWs, setApiWs] = useAtom(apiWsAtom); + + const [firebaseStorageEnabled, setFirebaseStorageEnabled] = useAtom(firebaseStorageEnabledAtom); + + const [anonymous, setAnonymous] = useAtom(authProvidersAtoms.anonymousAtom); + const [email, setEmail] = useAtom(authProvidersAtoms.emailAtom); + const [facebook, setFacebook] = useAtom(authProvidersAtoms.facebookAtom); + const [github, setGithub] = useAtom(authProvidersAtoms.githubAtom); + const [google, setGoogle] = useAtom(authProvidersAtoms.googleAtom); + const [phone, setPhone] = useAtom(authProvidersAtoms.phoneAtom); + const [twitter, setTwitter] = useAtom(authProvidersAtoms.twitterAtom); + + const envTxtOutput = useAtomValue(envTxtOutputAtom); + const envTableDataSource = useAtomValue(dataSourceOutputAtom); + + return ( +
+
+

+ Webサーバー + v0.7.2以降に対応しています。それより前のバージョンには対応していません。 +

+

使い方

+
    +
  1. 左半分のエリアで値を編集します。
  2. +
  3. 右半分のエリアに表示されたデータをデプロイに利用します。
  4. +
+
+
+
+

Firebase構成オブジェクト

+

+ {'両端にある " の文字は含めずに入力してください。'} +

+
+ + + + + + + + + +
+ まず、Firebase管理画面から歯車アイコンをクリックして「プロジェクトの設定」を開きます。下の方にある、青い丸に白抜き文字で + {''}と書かれているボタンをクリックします。 +
+ Firebase構成オブジェクト2 +
+ サイトの説明に従って、「アプリのニックネーム」を入力して「アプリを登録」ボタンを押します。ご自身がわかりやすい名前で構わないと思います。 +
+ Firebase構成オブジェクト3 +
+ 下の画像のように「Firebase SDK + の追加」画面が表示されますが、ここに表示されている内容は後から参照できますのでそのまま下のほうにある「コンソールに進む」ボタンを押してください。「npm + install firebase」のコマンド等も実行する必要はありません。 +
+ Firebase構成オブジェクト4 +
+ { + '下の画像の赤い四角形の部分にFirebase構成オブジェクトが作成されていますので、そこに表示されている内容を入力してください。「npm」「CDN」「構成」のうちどれを選択しても構いませんが、「構成」が一番わかりやすいかと思います。' + } +
+ Firebase構成オブジェクト1 +
+
+

APIサーバーのURL(http, https)

+
+ + setApiHttp(e.target.value)} + value={apiHttp} + placeholder="例: https://example.com" + /> + +
+

APIサーバーのURL(ws, wss)

+ { + setAutoWsState(newValue.target.checked); + }} + > + 「APIサーバーのURL(http, https)」から自動的に推測する(推奨) + + {autoWsState ? ( + + ) : ( +
+ + setApiWs(e.target.value)} + value={apiWs} + placeholder="例: wss://example.com" + /> + +
+ )} +

+ Firebase Storage版アップローダーを有効化する +

+ { + setFirebaseStorageEnabled(e.target.checked); + }} + > + 有効化する + +

+ ブラウザで表示させるFirebase Authenticationのログインプロバイダ(任意) +

+

+ + この設定は任意です。全てのチェックボックスを空にしたままでも構いません。 + +

+

+ チェックが入っていないログインプロバイダは、Floconのログイン画面において非表示になります。ただし全てのチェックボックスが空の場合は、全てのログインプロバイダが表示されます。 +

+ { + setEmail(e.target.checked); + }} + > + メール/パスワード + + { + setPhone(e.target.checked); + }} + > + 電話番号 + + { + setAnonymous(e.target.checked); + }} + > + 匿名 + + { + setGoogle(e.target.checked); + }} + > + Google + + { + setFacebook(e.target.checked); + }} + > + Facebook + + { + setTwitter(e.target.checked); + }} + > + Twitter + + { + setGithub(e.target.checked); + }} + > + GitHub + + + +
+
+ 有効化したログインプロバイダは、Firebase + Authenticationの管理画面から参照できます。公式ドキュメントに従ってサーバーをセットアップしている場合は、おそらく下の画像のようになっていると思います。この画像では「メール/パスワード」と「Google」が有効化されています。 +
+ ログインプロバイダの画像1 +
+ ログインプロバイダを1つも有効化していない場合は、下の画像のようになります。この場合は少なくとも1つを管理画面から有効化してください。 +
+ ログインプロバイダの画像2 +
+
+
+
+
{'⇒'}
+
+
+

注意

+ 左半分のエリアでエラーが出ていないことを確認してください。 +

デプロイ方法

+ { + const value: unknown = e.target.value; + switch (value) { + case envTxt: + case hostingService: + setDeployType(value); + break; + } + }} + value={deployType} + > + + + 静的ファイルを用い、設定にはenv.txtを使用する(例: + Netlifyのドラッグ&ドロップによるデプロイ) + + + Next.js に対応したホスティングサービス(例: Vercel) + + + +

設定方法

+ {deployType === envTxt ? ( + <> + { + 'env.txtの中身を、下に表示されているテキストに置き換えてください。' + } + + + ) : ( + <> + ホスティングサービスの設定画面を開き、次のように環境変数を設定してください。 + ( +
{value}
+ ), + }, + ]} + dataSource={envTableDataSource} + /> + + )} + + + + + ); +}; diff --git a/packages/websites-base/tsconfig.json b/packages/websites-base/tsconfig.json new file mode 100644 index 000000000..4d94c0362 --- /dev/null +++ b/packages/websites-base/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "@flocon-trpg/tsconfig", + "compilerOptions": { + "jsx": "react-jsx" + } +} diff --git a/websites/tools/.eslintrc.js b/websites/tools/.eslintrc.js new file mode 100644 index 000000000..8e9eb1dc2 --- /dev/null +++ b/websites/tools/.eslintrc.js @@ -0,0 +1,37 @@ +module.exports = { + env: { + browser: true, + es6: true, + }, + settings: { + react: { version: 'detect' }, + }, + extends: ['@flocon-trpg/eslint-config-v8', 'plugin:@next/next/recommended'], + globals: { + Atomics: 'readonly', + SharedArrayBuffer: 'readonly', + }, + parserOptions: { + project: './tsconfig.json', + // vscodeのeslintが正常に動くようにtsconfigRootDirを設定している + tsconfigRootDir: __dirname, + ecmaFeatures: { + jsx: true, + }, + ecmaVersion: 2018, + sourceType: 'module', + }, + plugins: ['@typescript-eslint', 'react', 'react-hooks'], + rules: { + 'react-hooks/rules-of-hooks': 'error', + 'react-hooks/exhaustive-deps': [ + 'error', + { + additionalHooks: '^use((Memo|Callback)One|DeepCompareEffect)$', + }, + ], + '@typescript-eslint/switch-exhaustiveness-check': 'error', + 'react/prop-types': 'off', + '@next/next/no-img-element': 'off', + }, +}; diff --git a/websites/tools/.gitignore b/websites/tools/.gitignore new file mode 100644 index 000000000..46038c855 --- /dev/null +++ b/websites/tools/.gitignore @@ -0,0 +1,29 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Custom +*.tsbuildinfo + +*storybook.log \ No newline at end of file diff --git a/websites/tools/.prettierignore b/websites/tools/.prettierignore new file mode 100644 index 000000000..c06f0b4de --- /dev/null +++ b/websites/tools/.prettierignore @@ -0,0 +1,2 @@ +/dist/ +/coverage/ \ No newline at end of file diff --git a/websites/tools/.prettierrc b/websites/tools/.prettierrc new file mode 100644 index 000000000..dabc20838 --- /dev/null +++ b/websites/tools/.prettierrc @@ -0,0 +1 @@ +"@flocon-trpg/prettier-config" \ No newline at end of file diff --git a/websites/tools/README.md b/websites/tools/README.md new file mode 100644 index 000000000..faf606f52 --- /dev/null +++ b/websites/tools/README.md @@ -0,0 +1,7 @@ +# tools + +https://tools.flocon.app のソースコードです。 + +本来は https://flocon.app ([@flocon-trpg/docs](../docs)) と一緒にしたいのですが、@flocon-trpg/docs で使っている [Docusaurus のグローバル css を無効化する方法がない](https://github.com/facebook/docusaurus/issues/6032)ため、やむなく分離させ、別々のサイトとしてデプロイしています。 + +Shadow DOM (react-shadow など)を用いる方法も考えましたが、Ant Design の CSS のセットなどの手間がかかることと、予期せぬトラブルが発声する可能性を考慮して現時点では不採用としました。ただしこの方針は将来変わる可能性があります。 diff --git a/websites/tools/eslint.config.js b/websites/tools/eslint.config.js new file mode 100644 index 000000000..4e0cd3d26 --- /dev/null +++ b/websites/tools/eslint.config.js @@ -0,0 +1,32 @@ +import globals from 'globals'; +import reactHooks from 'eslint-plugin-react-hooks'; +import reactRefresh from 'eslint-plugin-react-refresh'; +import tseslint from 'typescript-eslint'; +import Config from '@flocon-trpg/eslint-config'; + +export default tseslint.config({ + extends: [...Config], + files: ['**/*.{ts,tsx}'], + ignores: ['dist', '**/*.d.ts'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }], + + // TODO: Flocon の eslint パッケージと eslint のバージョンが異なるため暫定的に独立した rule を書いているが、パッケージを利用する + '@typescript-eslint/no-namespace': 'off', + '@typescript-eslint/no-explicit-any': 'off', + }, +}); diff --git a/websites/tools/index.html b/websites/tools/index.html new file mode 100644 index 000000000..f51a5f2fd --- /dev/null +++ b/websites/tools/index.html @@ -0,0 +1,12 @@ + + + + + Flocon ツール + + + +
+ + + diff --git a/websites/tools/package.json b/websites/tools/package.json new file mode 100644 index 000000000..0d8796597 --- /dev/null +++ b/websites/tools/package.json @@ -0,0 +1,49 @@ +{ + "name": "@flocon-trpg/tools", + "version": "0.1.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "run-s build:deps build:self", + "build:deps": "yarn workspaces foreach --recursive -pt --from '@flocon-trpg/tools' --exclude '@flocon-trpg/tools' run build", + "build:self": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview", + "prettier": "yarn prettier:base --write --cache", + "prettier-check": "yarn prettier:base --check", + "prettier:base": "prettier \"**/*.{ts,tsx,js,json,yml,md,graphql}\"" + }, + "dependencies": { + "@flocon-trpg/core": "workspace:^", + "@flocon-trpg/utils": "workspace:^", + "@flocon-trpg/websites-base": "workspace:^", + "@tanstack/react-router": "^1.69.1", + "antd": "^5.0.0", + "bcryptjs": "^2.4.3", + "jotai": "^2.0.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "rxjs": "^7.5.6", + "typescript": "5.6.2" + }, + "devDependencies": { + "@eslint/js": "9.13.0", + "@flocon-trpg/eslint-config": "workspace:^", + "@flocon-trpg/prettier-config": "workspace:^", + "@tanstack/router-plugin": "1.76.0", + "@types/bcryptjs": "^2.4.6", + "@types/react": "18.3.12", + "@types/react-dom": "18.3.1", + "@vitejs/plugin-react-swc": "3.7.1", + "eslint": "9.13.0", + "eslint-plugin-react-hooks": "5.1.0-rc-fb9a90fa48-20240614", + "eslint-plugin-react-refresh": "0.4.14", + "npm-run-all2": "7.0.1", + "prettier": "3.3.3", + "typescript": "5.6.3", + "typescript-eslint": "8.11.0", + "vite": "5.4.10", + "vite-tsconfig-paths": "5.0.1" + } +} diff --git a/websites/tools/src/main.css b/websites/tools/src/main.css new file mode 100644 index 000000000..4e41b69a8 --- /dev/null +++ b/websites/tools/src/main.css @@ -0,0 +1,3 @@ +body { + margin: 0; +} \ No newline at end of file diff --git a/websites/tools/src/main.tsx b/websites/tools/src/main.tsx new file mode 100644 index 000000000..0143484a1 --- /dev/null +++ b/websites/tools/src/main.tsx @@ -0,0 +1,45 @@ +/* eslint-disable react-refresh/only-export-components */ +import { RouterProvider, createRouter } from '@tanstack/react-router'; +import { App as AntdApp, ConfigProvider, theme } from 'antd'; +import jaJP from 'antd/locale/ja_JP'; +import { PropsWithChildren, StrictMode } from 'react'; +import ReactDOM from 'react-dom/client'; +import { routeTree } from './routeTree.gen'; +import './main.css'; + +// Create a new router instance +const router = createRouter({ + routeTree, + notFoundMode: 'root', +}); + +// Register the router instance for type safety +declare module '@tanstack/react-router' { + interface Register { + router: typeof router; + } +} + +const App = ({ children }: PropsWithChildren) => { + return ( + + {children} + + ); +}; + +// Render the app +const rootElement = document.getElementById('root')!; +if (!rootElement.innerHTML) { + const root = ReactDOM.createRoot(rootElement); + root.render( + + + + + , + ); +} diff --git a/websites/tools/src/routeTree.gen.ts b/websites/tools/src/routeTree.gen.ts new file mode 100644 index 000000000..52fb3e069 --- /dev/null +++ b/websites/tools/src/routeTree.gen.ts @@ -0,0 +1,136 @@ +/* prettier-ignore-start */ + +/* eslint-disable */ + +// @ts-nocheck + +// noinspection JSUnusedGlobalSymbols + +// This file is auto-generated by TanStack Router + +// Import Routes + +import { Route as rootRoute } from './routes/__root'; +import { Route as WebServerImport } from './routes/web-server'; +import { Route as BcryptImport } from './routes/bcrypt'; +import { Route as IndexImport } from './routes/index'; + +// Create/Update Routes + +const WebServerRoute = WebServerImport.update({ + id: '/web-server', + path: '/web-server', + getParentRoute: () => rootRoute, +} as any); + +const BcryptRoute = BcryptImport.update({ + id: '/bcrypt', + path: '/bcrypt', + getParentRoute: () => rootRoute, +} as any); + +const IndexRoute = IndexImport.update({ + id: '/', + path: '/', + getParentRoute: () => rootRoute, +} as any); + +// Populate the FileRoutesByPath interface + +declare module '@tanstack/react-router' { + interface FileRoutesByPath { + '/': { + id: '/'; + path: '/'; + fullPath: '/'; + preLoaderRoute: typeof IndexImport; + parentRoute: typeof rootRoute; + }; + '/bcrypt': { + id: '/bcrypt'; + path: '/bcrypt'; + fullPath: '/bcrypt'; + preLoaderRoute: typeof BcryptImport; + parentRoute: typeof rootRoute; + }; + '/web-server': { + id: '/web-server'; + path: '/web-server'; + fullPath: '/web-server'; + preLoaderRoute: typeof WebServerImport; + parentRoute: typeof rootRoute; + }; + } +} + +// Create and export the route tree + +export interface FileRoutesByFullPath { + '/': typeof IndexRoute; + '/bcrypt': typeof BcryptRoute; + '/web-server': typeof WebServerRoute; +} + +export interface FileRoutesByTo { + '/': typeof IndexRoute; + '/bcrypt': typeof BcryptRoute; + '/web-server': typeof WebServerRoute; +} + +export interface FileRoutesById { + __root__: typeof rootRoute; + '/': typeof IndexRoute; + '/bcrypt': typeof BcryptRoute; + '/web-server': typeof WebServerRoute; +} + +export interface FileRouteTypes { + fileRoutesByFullPath: FileRoutesByFullPath; + fullPaths: '/' | '/bcrypt' | '/web-server'; + fileRoutesByTo: FileRoutesByTo; + to: '/' | '/bcrypt' | '/web-server'; + id: '__root__' | '/' | '/bcrypt' | '/web-server'; + fileRoutesById: FileRoutesById; +} + +export interface RootRouteChildren { + IndexRoute: typeof IndexRoute; + BcryptRoute: typeof BcryptRoute; + WebServerRoute: typeof WebServerRoute; +} + +const rootRouteChildren: RootRouteChildren = { + IndexRoute: IndexRoute, + BcryptRoute: BcryptRoute, + WebServerRoute: WebServerRoute, +}; + +export const routeTree = rootRoute + ._addFileChildren(rootRouteChildren) + ._addFileTypes(); + +/* prettier-ignore-end */ + +/* ROUTE_MANIFEST_START +{ + "routes": { + "__root__": { + "filePath": "__root.tsx", + "children": [ + "/", + "/bcrypt", + "/web-server" + ] + }, + "/": { + "filePath": "index.tsx" + }, + "/bcrypt": { + "filePath": "bcrypt.tsx" + }, + "/web-server": { + "filePath": "web-server.tsx" + } + } +} +ROUTE_MANIFEST_END */ diff --git a/websites/tools/src/routes/__root.tsx b/websites/tools/src/routes/__root.tsx new file mode 100644 index 000000000..b356d1ac7 --- /dev/null +++ b/websites/tools/src/routes/__root.tsx @@ -0,0 +1,28 @@ +import { Outlet, createRootRoute } from '@tanstack/react-router'; +import { Layout, Typography } from 'antd'; + +const App = () => { + return ( + <> + + + ); +}; + +export const Route = createRootRoute({ + component: App, + notFoundComponent: () => { + return ( + + + {'404 - Not Found'} + + + ); + }, +}); diff --git a/websites/tools/src/routes/bcrypt.tsx b/websites/tools/src/routes/bcrypt.tsx new file mode 100644 index 000000000..c1d7eed3c --- /dev/null +++ b/websites/tools/src/routes/bcrypt.tsx @@ -0,0 +1,84 @@ +import { createFileRoute } from '@tanstack/react-router'; +import { Button, Input, Layout, Select, Typography } from 'antd'; +import { hash } from 'bcryptjs'; +import { FC, useState } from 'react'; +import { useAsync, useLatest } from 'react-use'; + +const HashView: FC<{ hash: string }> = ({ hash }) => { + return ( +
+ + + + + + + + + + +
ハッシュ{hash}
{'fly.tomlの[env]に記述する方法'} + {`ENTRY_PASSWORD='{"type":"bcrypt","value":"${hash}"}'`} +
+ ); +}; + +const Bcrypt: React.FC = () => { + const [text, setText] = useState(''); + const textRef = useLatest(text); + const [salt, setSalt] = useState<8 | 10 | 12 | 14>(10); + const saltRef = useLatest(salt); + const [keyToGenerate, setKeyToGenerate] = useState(); + const result = useAsync(async () => { + if (keyToGenerate == null) { + return null; + } + return await hash(textRef.current, saltRef.current); + }, [keyToGenerate]); + + let resultElement; + if (result.loading) { + resultElement =
生成中です…
; + } else if (result.value != null) { + resultElement = ; + } else if (result.error != null) { + resultElement =
エラー: {result.error?.message}
; + } else { + resultElement = null; + } + + return ( +
+ bcrypt のハッシュ値を生成できます。 + npm の bcryptjs パッケージ{' '} + を使用しています。ハッシュ値の生成は、サーバーとの通信は行われず、ブラウザ内のスクリプトのみで完結します。 +
+ setText(e.target.value)} + placeholder="エントリーパスワード" + style={{ maxWidth: 320 }} + /> + + +
+
+ {resultElement} +
+ ); +}; + +export const Route = createFileRoute('/bcrypt')({ + component: () => ( + + + + ), +}); diff --git a/websites/tools/src/routes/index.tsx b/websites/tools/src/routes/index.tsx new file mode 100644 index 000000000..b50edbc1c --- /dev/null +++ b/websites/tools/src/routes/index.tsx @@ -0,0 +1,32 @@ +import { Link, createFileRoute } from '@tanstack/react-router'; +import { Layout } from 'antd'; + +const Index: React.FC = () => { + return ( +
+

Floconツール

+

+ Webサーバーの設定を作成する +

+

+ エントリーパスワードに用いるbcryptハッシュを生成する +

+

その他

+ + ソースコード + +
+ ); +}; + +export const Route = createFileRoute('/')({ + component: () => ( + + + + ), +}); diff --git a/websites/tools/src/routes/web-server.tsx b/websites/tools/src/routes/web-server.tsx new file mode 100644 index 000000000..8ce8f985a --- /dev/null +++ b/websites/tools/src/routes/web-server.tsx @@ -0,0 +1,11 @@ +import { CreateEnv } from '@flocon-trpg/websites-base'; +import { createFileRoute } from '@tanstack/react-router'; +import { Layout } from 'antd'; + +export const Route = createFileRoute('/web-server')({ + component: () => ( + + + + ), +}); diff --git a/websites/tools/src/vite-env.d.ts b/websites/tools/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/websites/tools/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/websites/tools/tsconfig.app.json b/websites/tools/tsconfig.app.json new file mode 100644 index 000000000..22f2e0165 --- /dev/null +++ b/websites/tools/tsconfig.app.json @@ -0,0 +1,20 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2021", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx" + }, + // "./.storybook/*" は eslint の対象にするのが目的で含めている + "include": ["src", "./.storybook/*"] +} diff --git a/websites/tools/tsconfig.base.json b/websites/tools/tsconfig.base.json new file mode 100644 index 000000000..3e33ff327 --- /dev/null +++ b/websites/tools/tsconfig.base.json @@ -0,0 +1,20 @@ +// tsconfig.json と tsconfig.base.json を分けている理由は、tsconfig.json と tsconfig.app.json と tsconfig.node.json は 全て create-vite 自動生成されたものであり、単にそれらをあまり編集しないほうが無難だと思ったからというだけ。統合して問題なさそうならしても構わない。 + +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + }, + + /* Linting */ + "strict": true, + // TODO: ビルドを通すためにとりあえず無効化している。もしくは可能であれば eslint に任せてもいいかも + //"noUnusedLocals": true, + //"noUnusedParameters": true, + //"noFallthroughCasesInSwitch": true, + + "noUncheckedIndexedAccess": true, + "forceConsistentCasingInFileNames": true + } +} diff --git a/websites/tools/tsconfig.json b/websites/tools/tsconfig.json new file mode 100644 index 000000000..eb69b0d08 --- /dev/null +++ b/websites/tools/tsconfig.json @@ -0,0 +1,4 @@ +{ + "files": [], + "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }] +} diff --git a/websites/tools/tsconfig.node.json b/websites/tools/tsconfig.node.json new file mode 100644 index 000000000..a273fcbb7 --- /dev/null +++ b/websites/tools/tsconfig.node.json @@ -0,0 +1,17 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true + }, + "include": ["vite.config.ts"] +} diff --git a/websites/tools/vite.config.ts b/websites/tools/vite.config.ts new file mode 100644 index 000000000..716f28c7d --- /dev/null +++ b/websites/tools/vite.config.ts @@ -0,0 +1,14 @@ +import { TanStackRouterVite } from '@tanstack/router-plugin/vite'; +import react from '@vitejs/plugin-react-swc'; +import { Plugin, defineConfig } from 'vite'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +export default defineConfig({ + plugins: [TanStackRouterVite(), react(), tsconfigPaths()], + + esbuild: { + banner: '/*! licenses: ../licenses-npm-package.txt */', + // licenses-npm-package.txt にライセンス一覧が出力されるため、ライセンスのコメントを出力しないことで JavaScript のファイルサイズを減らしている。 + legalComments: 'none', + }, +}); diff --git a/yarn.lock b/yarn.lock index 54f2761f2..acc4e5d54 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4957,6 +4957,40 @@ __metadata: languageName: unknown linkType: soft +"@flocon-trpg/tools@workspace:websites/tools": + version: 0.0.0-use.local + resolution: "@flocon-trpg/tools@workspace:websites/tools" + dependencies: + "@eslint/js": "npm:9.13.0" + "@flocon-trpg/core": "workspace:^" + "@flocon-trpg/eslint-config": "workspace:^" + "@flocon-trpg/prettier-config": "workspace:^" + "@flocon-trpg/utils": "workspace:^" + "@flocon-trpg/websites-base": "workspace:^" + "@tanstack/react-router": "npm:^1.69.1" + "@tanstack/router-plugin": "npm:1.76.0" + "@types/bcryptjs": "npm:^2.4.6" + "@types/react": "npm:18.3.12" + "@types/react-dom": "npm:18.3.1" + "@vitejs/plugin-react-swc": "npm:3.7.1" + antd: "npm:^5.0.0" + bcryptjs: "npm:^2.4.3" + eslint: "npm:9.13.0" + eslint-plugin-react-hooks: "npm:5.1.0-rc-fb9a90fa48-20240614" + eslint-plugin-react-refresh: "npm:0.4.14" + jotai: "npm:^2.0.0" + npm-run-all2: "npm:7.0.1" + prettier: "npm:3.3.3" + react: "npm:^18.3.1" + react-dom: "npm:^18.3.1" + rxjs: "npm:^7.5.6" + typescript: "npm:5.6.3" + typescript-eslint: "npm:8.11.0" + vite: "npm:5.4.10" + vite-tsconfig-paths: "npm:5.0.1" + languageName: unknown + linkType: soft + "@flocon-trpg/tsconfig@workspace:^, @flocon-trpg/tsconfig@workspace:packages/tsconfig": version: 0.0.0-use.local resolution: "@flocon-trpg/tsconfig@workspace:packages/tsconfig" @@ -5157,6 +5191,33 @@ __metadata: languageName: unknown linkType: soft +"@flocon-trpg/websites-base@workspace:^, @flocon-trpg/websites-base@workspace:packages/websites-base": + version: 0.0.0-use.local + resolution: "@flocon-trpg/websites-base@workspace:packages/websites-base" + dependencies: + "@flocon-trpg/core": "workspace:^" + "@flocon-trpg/eslint-config": "workspace:^" + "@flocon-trpg/prettier-config": "workspace:^" + "@flocon-trpg/rollup-config": "workspace:^" + "@flocon-trpg/tsconfig": "workspace:^" + "@types/react": "npm:18.3.12" + antd: "npm:5.21.5" + eslint: "npm:9.13.0" + eslint-config-prettier: "npm:9.1.0" + eslint-plugin-import: "npm:2.31.0" + jotai: "npm:^2.10.1" + prettier: "npm:3.3.3" + react: "npm:18.3.1" + rimraf: "npm:5.0.10" + rollup: "npm:4.24.0" + typescript: "npm:5.6.2" + typescript-eslint: "npm:8.11.0" + peerDependencies: + antd: ^5.21.5 + react: ^18.0.0 + languageName: unknown + linkType: soft + "@gar/promisify@npm:^1.0.1": version: 1.1.2 resolution: "@gar/promisify@npm:1.1.2" @@ -8483,6 +8544,13 @@ __metadata: languageName: node linkType: hard +"@types/bcryptjs@npm:^2.4.6": + version: 2.4.6 + resolution: "@types/bcryptjs@npm:2.4.6" + checksum: 10/00153c460bd6bfc68e7670993a1ad8bd511413fd08e8a983cde1a8bf5a08afc5a51613c92ca4ad350d5a924499afed57f008a66a9abc1fd83879061596814124 + languageName: node + linkType: hard + "@types/body-parser@npm:*, @types/body-parser@npm:1.19.2": version: 1.19.2 resolution: "@types/body-parser@npm:1.19.2" @@ -10253,7 +10321,7 @@ __metadata: languageName: node linkType: hard -"antd@npm:^5.0.0": +"antd@npm:5.21.5, antd@npm:^5.0.0": version: 5.21.5 resolution: "antd@npm:5.21.5" dependencies: @@ -11050,6 +11118,13 @@ __metadata: languageName: node linkType: hard +"bcryptjs@npm:^2.4.3": + version: 2.4.3 + resolution: "bcryptjs@npm:2.4.3" + checksum: 10/f6798e57eacfe86960d31af9b8fbc15dc73281c42cfb2a294e2d737e0e9bb7e402dbd39ac68b114867b234fd841ae689dbac031cc6af822b9e72099f52157a8c + languageName: node + linkType: hard + "better-opn@npm:^3.0.2": version: 3.0.2 resolution: "better-opn@npm:3.0.2" @@ -18190,7 +18265,7 @@ __metadata: languageName: node linkType: hard -"jotai@npm:^2.0.0": +"jotai@npm:^2.0.0, jotai@npm:^2.10.1": version: 2.10.1 resolution: "jotai@npm:2.10.1" peerDependencies: @@ -23818,7 +23893,7 @@ __metadata: languageName: node linkType: hard -"react@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react@npm:^18.0.0, react@npm:^18.3.1": +"react@npm:18.3.1, react@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react@npm:^18.0.0, react@npm:^18.3.1": version: 18.3.1 resolution: "react@npm:18.3.1" dependencies: From 8a189168949860d8dc48d92b2b99dd07fd78f619 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 12:12:30 +0900 Subject: [PATCH 03/11] chore(deps): update all minor and patch dependencies (#626) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- apps/api-server/package.json | 12 +- apps/web-server/package.json | 38 +- packages/cache/package.json | 6 +- packages/core/package.json | 6 +- packages/default-pino-transport/package.json | 6 +- packages/eslint-config/package.json | 6 +- packages/flocon-script/package.json | 6 +- packages/logger-base/package.json | 6 +- packages/rollup-config/package.json | 4 +- packages/sdk-react/package.json | 6 +- packages/sdk-urql/package.json | 6 +- packages/sdk/package.json | 6 +- packages/typed-document-node/package.json | 6 +- packages/utils/package.json | 6 +- packages/web-server-utils/package.json | 8 +- packages/websites-base/package.json | 8 +- websites/tools/package.json | 8 +- yarn.lock | 2964 +++++++----------- 18 files changed, 1191 insertions(+), 1917 deletions(-) diff --git a/apps/api-server/package.json b/apps/api-server/package.json index 15e321806..302c72fe2 100644 --- a/apps/api-server/package.json +++ b/apps/api-server/package.json @@ -78,7 +78,7 @@ "rate-limiter-flexible": "^2.3.0", "reflect-metadata": "^0.2.0", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "rollup-plugin-multi-input": "^1.3.1", "rxjs": "^7.5.6", "safe-compare": "^1.1.4", @@ -101,15 +101,15 @@ "@flocon-trpg/typed-document-node": "workspace:*", "@flocon-trpg/web-server-utils": "workspace:*", "@graphql-codegen/cli": "5.0.3", - "@graphql-codegen/typed-document-node": "5.0.10", - "@graphql-codegen/typescript": "4.1.0", - "@graphql-codegen/typescript-operations": "4.3.0", + "@graphql-codegen/typed-document-node": "5.0.11", + "@graphql-codegen/typescript": "4.1.1", + "@graphql-codegen/typescript-operations": "4.3.1", "@rollup/plugin-typescript": "11.1.6", "@types/jest": "29.5.14", "@types/node-fetch": "2.6.11", "@types/url-join": "4.0.3", "@urql/core": "5.0.8", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "form-data": "4.0.1", @@ -119,7 +119,7 @@ "node-fetch": "2.7.0", "prettier": "3.3.3", "ts-jest": "29.2.5", - "typescript-eslint": "8.11.0", + "typescript-eslint": "8.12.2", "url-join": "4.0.1" }, "engines": { diff --git a/apps/web-server/package.json b/apps/web-server/package.json index 20921568a..0c8cd73d6 100644 --- a/apps/web-server/package.json +++ b/apps/web-server/package.json @@ -87,19 +87,19 @@ "zod": "^3.19.1" }, "devDependencies": { - "@chromatic-com/storybook": "3.1.0", - "@eslint/js": "9.13.0", + "@chromatic-com/storybook": "3.2.2", + "@eslint/js": "9.14.0", "@flocon-trpg/eslint-config": "workspace:^", "@flocon-trpg/prettier-config": "workspace:^", - "@storybook/addon-essentials": "8.3.6", - "@storybook/addon-interactions": "8.3.6", - "@storybook/addon-links": "8.3.6", - "@storybook/addon-onboarding": "8.3.6", - "@storybook/blocks": "8.3.6", - "@storybook/react": "8.3.6", - "@storybook/react-vite": "8.3.6", - "@storybook/test": "8.3.6", - "@tanstack/router-plugin": "1.76.0", + "@storybook/addon-essentials": "8.4.1", + "@storybook/addon-interactions": "8.4.1", + "@storybook/addon-links": "8.4.1", + "@storybook/addon-onboarding": "8.4.1", + "@storybook/blocks": "8.4.1", + "@storybook/react": "8.4.1", + "@storybook/react-vite": "8.4.1", + "@storybook/test": "8.4.1", + "@tanstack/router-plugin": "1.78.3", "@testing-library/react": "14.3.1", "@types/color": "3.0.6", "@types/color-name": "1.1.5", @@ -114,27 +114,27 @@ "@types/url-join": "4.0.3", "@urql/devtools": "2.0.3", "@vitejs/plugin-react-swc": "3.7.1", - "@vitest/coverage-v8": "2.1.3", - "chromatic": "11.15.0", + "@vitest/coverage-v8": "2.1.4", + "chromatic": "11.16.3", "color": "4.2.3", "color-name": "1.1.4", "dotenv": "16.4.5", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-plugin-react-hooks": "5.1.0-rc-fb9a90fa48-20240614", "eslint-plugin-react-refresh": "0.4.14", - "eslint-plugin-storybook": "0.10.1", + "eslint-plugin-storybook": "0.10.2", "globals": "15.11.0", "less": "4.2.0", "monaco-editor": "0.52.0", "npm-run-all2": "7.0.1", "prettier": "3.3.3", "rollup-plugin-license": "3.5.3", - "sass-embedded": "1.80.5", - "storybook": "8.3.6", + "sass-embedded": "1.80.6", + "storybook": "8.4.1", "typescript": "5.6.3", - "typescript-eslint": "8.11.0", + "typescript-eslint": "8.12.2", "vite": "5.4.10", "vite-tsconfig-paths": "5.0.1", - "vitest": "2.1.3" + "vitest": "2.1.4" } } diff --git a/packages/cache/package.json b/packages/cache/package.json index c144112f1..fea93e332 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -32,16 +32,16 @@ "@flocon-trpg/rollup-config": "workspace:^", "@flocon-trpg/tsconfig": "workspace:^", "@types/jest": "29.5.14", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "jest": "29.7.0", "prettier": "3.3.3", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "ts-jest": "29.2.5", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "engines": { "node": ">=18 <21" diff --git a/packages/core/package.json b/packages/core/package.json index 034fb3ed8..b553339ca 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -44,16 +44,16 @@ "@types/jest": "29.5.14", "@types/sanitize-filename": "1.6.3", "@types/truncate-utf8-bytes": "1.0.2", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "jest": "29.7.0", "prettier": "3.3.3", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "ts-jest": "29.2.5", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "engines": { "node": ">=18 <21" diff --git a/packages/default-pino-transport/package.json b/packages/default-pino-transport/package.json index 3a6170c88..1f19f36ad 100644 --- a/packages/default-pino-transport/package.json +++ b/packages/default-pino-transport/package.json @@ -26,14 +26,14 @@ "@flocon-trpg/prettier-config": "workspace:^", "@flocon-trpg/rollup-config": "workspace:^", "@flocon-trpg/tsconfig": "workspace:^", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "prettier": "3.3.3", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "engines": { "node": ">=18 <21" diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index ee6dfaacc..a8741607f 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -12,14 +12,14 @@ "prettier:base": "prettier \"**/*.{ts,tsx,js,json,yml,md,graphql}\"" }, "devDependencies": { - "@eslint/js": "9.13.0", + "@eslint/js": "9.14.0", "@flocon-trpg/prettier-config": "workspace:^", "@types/eslint__js": "8.42.3", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-plugin-import": "2.31.0", "prettier": "3.3.3", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "peerDependencies": { "eslint": "^9.0.0", diff --git a/packages/flocon-script/package.json b/packages/flocon-script/package.json index cebb9c685..2680aee01 100644 --- a/packages/flocon-script/package.json +++ b/packages/flocon-script/package.json @@ -32,16 +32,16 @@ "@flocon-trpg/tsconfig": "workspace:^", "@types/estree": "1.0.6", "@types/jest": "29.5.14", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "jest": "29.7.0", "prettier": "3.3.3", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "ts-jest": "29.2.5", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "engines": { "node": ">=18 <21" diff --git a/packages/logger-base/package.json b/packages/logger-base/package.json index 36367bb33..b25604df3 100644 --- a/packages/logger-base/package.json +++ b/packages/logger-base/package.json @@ -23,14 +23,14 @@ "@flocon-trpg/prettier-config": "workspace:^", "@flocon-trpg/rollup-config": "workspace:^", "@flocon-trpg/tsconfig": "workspace:^", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "prettier": "3.3.3", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "engines": { "node": ">=18 <21" diff --git a/packages/rollup-config/package.json b/packages/rollup-config/package.json index 495a530c7..0f588d194 100644 --- a/packages/rollup-config/package.json +++ b/packages/rollup-config/package.json @@ -18,12 +18,12 @@ "@flocon-trpg/eslint-config": "workspace:^", "@flocon-trpg/prettier-config": "workspace:^", "@flocon-trpg/tsconfig": "workspace:^", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "prettier": "3.3.3", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "peerDependencies": { "rollup": "^4.0.0" diff --git a/packages/sdk-react/package.json b/packages/sdk-react/package.json index 6fb724f5a..11b54a0f0 100644 --- a/packages/sdk-react/package.json +++ b/packages/sdk-react/package.json @@ -33,7 +33,7 @@ "@flocon-trpg/tsconfig": "workspace:^", "@testing-library/react": "14.3.1", "@types/jest": "29.5.14", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "eslint-plugin-react": "7.37.2", @@ -42,10 +42,10 @@ "jest-environment-jsdom": "29.7.0", "prettier": "3.3.3", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "ts-jest": "29.2.5", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "engines": { "node": ">=18 <21" diff --git a/packages/sdk-urql/package.json b/packages/sdk-urql/package.json index 4413022c3..fabe91f47 100644 --- a/packages/sdk-urql/package.json +++ b/packages/sdk-urql/package.json @@ -34,14 +34,14 @@ "@flocon-trpg/prettier-config": "workspace:^", "@flocon-trpg/rollup-config": "workspace:^", "@flocon-trpg/tsconfig": "workspace:^", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "prettier": "3.3.3", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "engines": { "node": ">=18 <21" diff --git a/packages/sdk/package.json b/packages/sdk/package.json index c32ef68a3..80b617d55 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -34,16 +34,16 @@ "@flocon-trpg/rollup-config": "workspace:^", "@flocon-trpg/tsconfig": "workspace:^", "@types/jest": "29.5.14", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "jest": "29.7.0", "prettier": "3.3.3", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "ts-jest": "29.2.5", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "engines": { "node": ">=18 <21" diff --git a/packages/typed-document-node/package.json b/packages/typed-document-node/package.json index 4ef93434c..6600b0ba7 100644 --- a/packages/typed-document-node/package.json +++ b/packages/typed-document-node/package.json @@ -27,14 +27,14 @@ "@flocon-trpg/prettier-config": "workspace:^", "@flocon-trpg/rollup-config": "workspace:^", "@flocon-trpg/tsconfig": "workspace:^", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "prettier": "3.3.3", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "engines": { "node": ">=18 <21" diff --git a/packages/utils/package.json b/packages/utils/package.json index 707761a4c..04fcce808 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -35,16 +35,16 @@ "@flocon-trpg/rollup-config": "workspace:^", "@flocon-trpg/tsconfig": "workspace:^", "@types/jest": "29.5.14", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "jest": "29.7.0", "prettier": "3.3.3", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "ts-jest": "29.2.5", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "engines": { "node": ">=18 <21" diff --git a/packages/web-server-utils/package.json b/packages/web-server-utils/package.json index 48891362c..b1827d74f 100644 --- a/packages/web-server-utils/package.json +++ b/packages/web-server-utils/package.json @@ -33,17 +33,17 @@ "@flocon-trpg/rollup-config": "workspace:^", "@flocon-trpg/tsconfig": "workspace:^", "@types/jest": "29.5.14", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", - "fast-check": "3.22.0", + "fast-check": "3.23.1", "jest": "29.7.0", "prettier": "3.3.3", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "ts-jest": "29.2.5", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "engines": { "node": ">=18 <21" diff --git a/packages/websites-base/package.json b/packages/websites-base/package.json index c27888047..d9d1abf69 100644 --- a/packages/websites-base/package.json +++ b/packages/websites-base/package.json @@ -28,16 +28,16 @@ "@flocon-trpg/rollup-config": "workspace:^", "@flocon-trpg/tsconfig": "workspace:^", "@types/react": "18.3.12", - "antd": "5.21.5", - "eslint": "9.13.0", + "antd": "5.21.6", + "eslint": "9.14.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.31.0", "prettier": "3.3.3", "react": "18.3.1", "rimraf": "5.0.10", - "rollup": "4.24.0", + "rollup": "4.24.3", "typescript": "5.6.2", - "typescript-eslint": "8.11.0" + "typescript-eslint": "8.12.2" }, "peerDependencies": { "antd": "^5.21.5", diff --git a/websites/tools/package.json b/websites/tools/package.json index 0d8796597..1ff9faf45 100644 --- a/websites/tools/package.json +++ b/websites/tools/package.json @@ -28,21 +28,21 @@ "typescript": "5.6.2" }, "devDependencies": { - "@eslint/js": "9.13.0", + "@eslint/js": "9.14.0", "@flocon-trpg/eslint-config": "workspace:^", "@flocon-trpg/prettier-config": "workspace:^", - "@tanstack/router-plugin": "1.76.0", + "@tanstack/router-plugin": "1.78.3", "@types/bcryptjs": "^2.4.6", "@types/react": "18.3.12", "@types/react-dom": "18.3.1", "@vitejs/plugin-react-swc": "3.7.1", - "eslint": "9.13.0", + "eslint": "9.14.0", "eslint-plugin-react-hooks": "5.1.0-rc-fb9a90fa48-20240614", "eslint-plugin-react-refresh": "0.4.14", "npm-run-all2": "7.0.1", "prettier": "3.3.3", "typescript": "5.6.3", - "typescript-eslint": "8.11.0", + "typescript-eslint": "8.12.2", "vite": "5.4.10", "vite-tsconfig-paths": "5.0.1" } diff --git a/yarn.lock b/yarn.lock index acc4e5d54..74b8997b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -635,17 +635,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/code-frame@npm:7.25.7" - dependencies: - "@babel/highlight": "npm:^7.25.7" - picocolors: "npm:^1.0.0" - checksum: 10/000fb8299fb35b6217d4f6c6580dcc1fa2f6c0f82d0a54b8a029966f633a8b19b490a7a906b56a94e9d8bee91c3bc44c74c44c33fb0abaa588202f6280186291 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.8.3": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.8.3": version: 7.26.2 resolution: "@babel/code-frame@npm:7.26.2" dependencies: @@ -656,44 +646,14 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/compat-data@npm:7.25.7" - checksum: 10/8fdc451e0ed9e22d1324d504b84d4452ba6f4a806b0f5c364996ee4c2a77293f79ecf4da03033acb625c90bac115c61617eb6c894c2b88486724bcbe3af1a6eb - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9, @babel/compat-data@npm:^7.26.0": +"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9, @babel/compat-data@npm:^7.26.0": version: 7.26.2 resolution: "@babel/compat-data@npm:7.26.2" checksum: 10/ed9eed6b62ce803ef4a320b1dac76b0302abbb29c49dddf96f3e3207d9717eb34e299a8651bb1582e9c3346ead74b6d595ffced5b3dae718afa08b18741f8402 languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.14.0, @babel/core@npm:^7.18.9, @babel/core@npm:^7.22.9, @babel/core@npm:^7.23.7, @babel/core@npm:^7.23.9, @babel/core@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/core@npm:7.25.8" - dependencies: - "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.25.7" - "@babel/generator": "npm:^7.25.7" - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helpers": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.8" - "@babel/template": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.8" - convert-source-map: "npm:^2.0.0" - debug: "npm:^4.1.0" - gensync: "npm:^1.0.0-beta.2" - json5: "npm:^2.2.3" - semver: "npm:^6.3.1" - checksum: 10/31eb1a8ca1a3cc0026060720eb290e68205d95c5c00fbd831e69ddc0810f5920b8eb2749db1889ac0a0312b6eddbf321d18a996a88858f3b75c9582bef9ec1e4 - languageName: node - linkType: hard - -"@babel/core@npm:^7.21.3, @babel/core@npm:^7.23.3": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.14.0, @babel/core@npm:^7.18.9, @babel/core@npm:^7.21.3, @babel/core@npm:^7.22.9, @babel/core@npm:^7.23.3, @babel/core@npm:^7.23.7, @babel/core@npm:^7.23.9, @babel/core@npm:^7.26.0": version: 7.26.0 resolution: "@babel/core@npm:7.26.0" dependencies: @@ -716,19 +676,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.14.0, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.25.7, @babel/generator@npm:^7.7.2": - version: 7.25.7 - resolution: "@babel/generator@npm:7.25.7" - dependencies: - "@babel/types": "npm:^7.25.7" - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^3.0.2" - checksum: 10/01542829621388077fa8a7464970c1db0f748f1482968dddf5332926afe4003f953cbe08e3bbbb0a335b11eba0126c9a81779bd1c5baed681a9ccec4ae63b217 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.23.3, @babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0": +"@babel/generator@npm:^7.14.0, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.23.3, @babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0, @babel/generator@npm:^7.7.2": version: 7.26.2 resolution: "@babel/generator@npm:7.26.2" dependencies: @@ -741,15 +689,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-annotate-as-pure@npm:7.25.7" - dependencies: - "@babel/types": "npm:^7.25.7" - checksum: 10/38044806cab33032391c46861cd0a36adb960525b00bc03f2f3d4380c983bf17971cdabc431e58b93a328ef24bd0271f1dc3a8c1c1ea6cab49d04702961451d8 - languageName: node - linkType: hard - "@babel/helper-annotate-as-pure@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" @@ -769,20 +708,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-compilation-targets@npm:7.25.7" - dependencies: - "@babel/compat-data": "npm:^7.25.7" - "@babel/helper-validator-option": "npm:^7.25.7" - browserslist: "npm:^4.24.0" - lru-cache: "npm:^5.1.1" - semver: "npm:^6.3.1" - checksum: 10/bbf9be8480da3f9a89e36e9ea2e1c76601014c1074ccada7c2edb1adeb3b62bc402cc4abaf8d16760734b25eceb187a9510ce44f6a7a6f696ccc74f69283625b - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9": +"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-compilation-targets@npm:7.25.9" dependencies: @@ -795,24 +721,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6": - version: 7.25.7 - resolution: "@babel/helper-create-class-features-plugin@npm:7.25.7" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" - "@babel/helper-member-expression-to-functions": "npm:^7.25.7" - "@babel/helper-optimise-call-expression": "npm:^7.25.7" - "@babel/helper-replace-supers": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/76e3bb727d7541d38acaa9b6ecff88f70e62370396dd22511837b90a556c6815a7efd6fd25b499bf1c8b02cdb18c575781a6aba0c442c38a2129a403b5bf9b1e - languageName: node - linkType: hard - -"@babel/helper-create-class-features-plugin@npm:^7.25.9": +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9" dependencies: @@ -857,16 +766,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-member-expression-to-functions@npm:7.25.7" - dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10/f953a0ddbcfbaae835033b54fdbf42cc3aea08c554875fccfc02ed4b1e5fe3ee06abf1b7a8419314357841fabc9efdbcbb8afdf07c4f216a73164a45a147562b - languageName: node - linkType: hard - "@babel/helper-member-expression-to-functions@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" @@ -877,17 +776,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-module-imports@npm:7.25.7" - dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10/94556712c27058ea35a1a39e21a3a9f067cd699405b64333d7d92b2b3d2f24d6f0ffa51aedba0b908e320acb1854e70d296259622e636fb021eeae9a6d996f01 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.25.9": +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: @@ -897,20 +786,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-module-transforms@npm:7.25.7" - dependencies: - "@babel/helper-module-imports": "npm:^7.25.7" - "@babel/helper-simple-access": "npm:^7.25.7" - "@babel/helper-validator-identifier": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/480309b1272ceaa985de1393f0e4c41aede0d5921ca644cec5aeaf43c8e4192b6dd56a58ef6d7e9acd02a43184ab45d3b241fc8c3a0a00f9dbb30235fd8a1181 - languageName: node - linkType: hard - "@babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helper-module-transforms@npm:7.26.0" @@ -924,15 +799,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-optimise-call-expression@npm:7.25.7" - dependencies: - "@babel/types": "npm:^7.25.7" - checksum: 10/8da0d9f5aae15991678ad1bbe58e52cd62a0ed36871075756d9684c0a7a65988ed81bab53ad6436c39a470d3cd690694dd2b07147817217e3ca87178a129c509 - languageName: node - linkType: hard - "@babel/helper-optimise-call-expression@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" @@ -942,14 +808,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.25.7, @babel/helper-plugin-utils@npm:^7.8.0": - version: 7.25.7 - resolution: "@babel/helper-plugin-utils@npm:7.25.7" - checksum: 10/e1b0ea5e67b05378d6360e3fc370e99bfb247eed9f68145b5cce541da703424e1887fb6fc60ab2f7f743c72dcbfbed79d3032af43f2c251c229c734dc2572a5b - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.9": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.7, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.25.9 resolution: "@babel/helper-plugin-utils@npm:7.25.9" checksum: 10/e347d87728b1ab10b6976d46403941c8f9008c045ea6d99997a7ffca7b852dc34b6171380f7b17edf94410e0857ff26f3a53d8618f11d73744db86e8ca9b8c64 @@ -969,19 +828,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-replace-supers@npm:7.25.7" - dependencies: - "@babel/helper-member-expression-to-functions": "npm:^7.25.7" - "@babel/helper-optimise-call-expression": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/87b65c7b278fabcb67458e592082a0b4532d5400acbb51e496ea47763077d0a64dc0531d32bafcb1d51f04d61d4715dadb1fd0301bc8449c26fcfd06913eb45e - languageName: node - linkType: hard - "@babel/helper-replace-supers@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-replace-supers@npm:7.25.9" @@ -995,16 +841,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-simple-access@npm:7.25.7" - dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10/42da1c358f2516337a4f2927c77ebb952907543b9f85d7cb1e2b5b5f6d808cdc081ee66a73e2ecdf48c315d9b0c2a81a857d5e1923ea210b8e81aba5e6cd2b53 - languageName: node - linkType: hard - "@babel/helper-simple-access@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-simple-access@npm:7.25.9" @@ -1015,16 +851,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.7" - dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10/466c81d09981bfb9e10aa6697ecb621389ff92a86187daaca34a969ca990d7327ebe931e87f7d52a200e499542d398469478d83dfaaa244d2f49df4e078490b3 - languageName: node - linkType: hard - "@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" @@ -1035,13 +861,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-string-parser@npm:7.25.7" - checksum: 10/2b8de9fa86c3f3090a349f1ce6e8ee2618a95355cbdafc6f228d82fa4808c84bf3d1d25290c6616d0a18b26b6cfeb6ec2aeebf01404bc8c60051d0094209f0e6 - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-string-parser@npm:7.25.9" @@ -1049,13 +868,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-validator-identifier@npm:7.25.7" - checksum: 10/ec6934cc47fc35baaeb968414a372b064f14f7b130cf6489a014c9486b0fd2549b3c6c682cc1fc35080075e8e38d96aeb40342d63d09fc1a62510c8ce25cde1e - languageName: node - linkType: hard - "@babel/helper-validator-identifier@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-validator-identifier@npm:7.25.9" @@ -1063,13 +875,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-validator-option@npm:7.25.7" - checksum: 10/3c46cbdd666d176f90a0b7e952a0c6e92184b66633336eca79aca243d1f86085ec339a6e45c3d44efa9e03f1829b470a350ddafa70926af6bbf1ac611284f8d3 - languageName: node - linkType: hard - "@babel/helper-validator-option@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-validator-option@npm:7.25.9" @@ -1088,16 +893,6 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helpers@npm:7.25.7" - dependencies: - "@babel/template": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10/2632909f83aa99e8b0da4e10e5ab7fc4f0274e6497bb0f17071e004e037d25e4a595583620261dc21410a526fb32b4f7063c3e15e60ed7890a6f9b8ad52312c5 - languageName: node - linkType: hard - "@babel/helpers@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helpers@npm:7.26.0" @@ -1108,30 +903,7 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/highlight@npm:7.25.7" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.25.7" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10/823be2523d246dbf80aab3cc81c2a36c6111b16ac2949ef06789da54387824c2bfaa88c6627cdeb4ba7151d047a5d6765e49ebd0b478aba09759250111e65e08 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/parser@npm:7.25.8" - dependencies: - "@babel/types": "npm:^7.25.8" - bin: - parser: ./bin/babel-parser.js - checksum: 10/0396eb71e379903cedb43862f84ebb1bec809c41e82b4894d2e6e83b8e8bc636ba6eff45382e615baefdb2399ede76ca82247ecc3a9877ac16eb3140074a3276 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.1, @babel/parser@npm:^7.26.2": version: 7.26.2 resolution: "@babel/parser@npm:7.26.2" dependencies: @@ -1292,18 +1064,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.20.0": - version: 7.25.7 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/d72615f8dcc5ffbcb456bcf7ce27bc22b30cc9ea8d809e461d80af486033d31bd0b6d83c9a7997c9cd36ff283a9c1207f806da4361bb620370659c256c5454e9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-assertions@npm:^7.26.0": +"@babel/plugin-syntax-import-assertions@npm:^7.20.0, @babel/plugin-syntax-import-assertions@npm:^7.26.0": version: 7.26.0 resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" dependencies: @@ -1347,18 +1108,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.25.7, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.25.7 - resolution: "@babel/plugin-syntax-jsx@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/243476a943a84b6b86e99076301e66f48268e8799564053e8feccab90da7944a0b42c91360216dbfb0b2958bbd0ed100d2c7b2db688dab83d19ff2745d4892eb - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.25.9": +"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.25.9, @babel/plugin-syntax-jsx@npm:^7.7.2": version: 7.25.9 resolution: "@babel/plugin-syntax-jsx@npm:7.25.9" dependencies: @@ -1446,18 +1196,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.25.7, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.25.7 - resolution: "@babel/plugin-syntax-typescript@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/f1492336230920cc4daa6e7aa3571253fb0c0fd05a1d0a7b5dc0a5b907f31945235ee8bf09c83f7738b89943a2320a61dda95e0db2b6310b07040aeda6be4f44 - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.25.9": +"@babel/plugin-syntax-typescript@npm:^7.25.9, @babel/plugin-syntax-typescript@npm:^7.7.2": version: 7.25.9 resolution: "@babel/plugin-syntax-typescript@npm:7.25.9" dependencies: @@ -1480,18 +1219,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/45a6b05acd132bd399ab127d54d43f7117f650908092c15da7c41c61c5e49bfdb63c0e65bd59ad68c94bfc6aade602732a98a55b146b69dfae212516203d43f9 - languageName: node - linkType: hard - -"@babel/plugin-transform-arrow-functions@npm:^7.25.9": +"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" dependencies: @@ -1528,18 +1256,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/334debb143d002295c6dd5559ebf24483557787621fd1d7283ac748eb401ed96b7d43c981f1d2b6795720979fe7872dd0719aed890d064244d52b1c4fe6f3347 - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoped-functions@npm:^7.25.9": +"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0, @babel/plugin-transform-block-scoped-functions@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.9" dependencies: @@ -1550,18 +1267,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-block-scoping@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/bbc5b815c6850eb798a294a5d31ed09bb0db367a31196e78c0d02ce3f845ddd2e0dcfd7ec70505dfa4e1bd67f13e46b315d290c58aa7531468feed380e267d97 - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoping@npm:^7.25.9": +"@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" dependencies: @@ -1596,23 +1302,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-classes@npm:7.25.7" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-replace-supers": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - globals: "npm:^11.1.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/239926ceb7fa926054fe9aabb7a64dba090d8f83d075bcec804d602a5715501c56dc26367bb90e6780e1113cc04cf6ad32c131e2782ccf1768fd059ac7eba04b - languageName: node - linkType: hard - -"@babel/plugin-transform-classes@npm:^7.25.9": +"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-classes@npm:7.25.9" dependencies: @@ -1628,19 +1318,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-computed-properties@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/template": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/f25caeb3366847a1f67efe4b250a460f88a5ebb4c12c566d945bf211ef28977dd21f4dd6539f63743f3fabdbb174b4d34e22af2a451aba3bcfd702396442eb53 - languageName: node - linkType: hard - -"@babel/plugin-transform-computed-properties@npm:^7.25.9": +"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" dependencies: @@ -1652,18 +1330,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-destructuring@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/b58347dc1b807ef8e6aaf995d59c6f09aa9de2c590bb90a52bc9c4082836ef72f70f8fc062370138134220de40dad06af6122ffcce77fb97d5e77ca7cd71e5c7 - languageName: node - linkType: hard - -"@babel/plugin-transform-destructuring@npm:^7.25.9": +"@babel/plugin-transform-destructuring@npm:^7.0.0, @babel/plugin-transform-destructuring@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" dependencies: @@ -1755,19 +1422,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-for-of@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/6fdfc1747283f50ada9f08d4f801d2156658f183db731369ac2b17f5f885661114906b3645c6a38bb6a5e24b771e6bd43c0ea47580c4fcb9347cd1d179e57435 - languageName: node - linkType: hard - -"@babel/plugin-transform-for-of@npm:^7.25.9": +"@babel/plugin-transform-for-of@npm:^7.0.0, @babel/plugin-transform-for-of@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-for-of@npm:7.25.9" dependencies: @@ -1779,20 +1434,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-function-name@npm:7.25.7" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/465d54942c03f77da3be5fb56404c6f8162f0e99034b8aceab6af2d386a77ecaf3df0c5f2dd67a00b66cd8ad970c0a08151026ed14aa44673a33f495e6849cc7 - languageName: node - linkType: hard - -"@babel/plugin-transform-function-name@npm:^7.25.9": +"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-function-name@npm:7.25.9" dependencies: @@ -1816,18 +1458,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-literals@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/435d9709204e4cae46f9e75973a1424b98bb71516d9cfb0619260cfb56d445b43fa34aa49dacb0e1fbc2a19fdd9373f4b4db4908007be8f9e9e3f0ccf6c73e71 - languageName: node - linkType: hard - -"@babel/plugin-transform-literals@npm:^7.25.9": +"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-literals@npm:7.25.9" dependencies: @@ -1849,18 +1480,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/fb2b985cfa0436bfbed6fbcdd430573272518cf3454c9b0de374cfb80ac6fe60b2ebbe0818a83035e436a9ff08b159bb87527dfd712560c52a0ebfabe6f65121 - languageName: node - linkType: hard - -"@babel/plugin-transform-member-expression-literals@npm:^7.25.9": +"@babel/plugin-transform-member-expression-literals@npm:^7.0.0, @babel/plugin-transform-member-expression-literals@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.9" dependencies: @@ -1883,20 +1503,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.7" - dependencies: - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-simple-access": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/4b3d038b55bfe5553e9eea360cc1b3dd689068256a9bce1939061ab1dfa194fea0b7b54f10c53b0af0be44508fd0037022c32709a6d96ac1277fb9c7de0f510c - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-commonjs@npm:^7.25.9": +"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.9" dependencies: @@ -1993,19 +1600,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-object-super@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-replace-supers": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/c033337d27f98a255509c3ac152a54ce25d707b7969a64ba5262c7ddb54ba962da081fe756ce922caa57d782cacc6705e3d8e74364938391170f043eb9c5905e - languageName: node - linkType: hard - -"@babel/plugin-transform-object-super@npm:^7.25.9": +"@babel/plugin-transform-object-super@npm:^7.0.0, @babel/plugin-transform-object-super@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-object-super@npm:7.25.9" dependencies: @@ -2040,18 +1635,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-parameters@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/c6a77fece85b3fd7323ec4ecc62329932b92c2c1ec20f1cc7617d3e49cc175f143988e756f5ccc45deca0fe582040afa67eeefd1704a8188cf2dc437efcfaf53 - languageName: node - linkType: hard - -"@babel/plugin-transform-parameters@npm:^7.25.9": +"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-parameters@npm:7.25.9" dependencies: @@ -2087,18 +1671,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-property-literals@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/f8be4090e9ffa9eebaca5eab4534de16acc5c84a476649cfed532de564817fc982a47d9349e6e447c510786897625153f60740fe9128b40d3a1eae3bbb5e1438 - languageName: node - linkType: hard - -"@babel/plugin-transform-property-literals@npm:^7.25.9": +"@babel/plugin-transform-property-literals@npm:^7.0.0, @babel/plugin-transform-property-literals@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-property-literals@npm:7.25.9" dependencies: @@ -2120,18 +1693,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-react-display-name@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/2785dda2f1b5379692f9095bffbd412dd1c49f41096d111c2fba1fba7202f4eed558c675df1bbfdcd44590013f8d2b7e6fc84443866e8a5c9bd51cf95f79cbdb - languageName: node - linkType: hard - -"@babel/plugin-transform-react-display-name@npm:^7.25.9": +"@babel/plugin-transform-react-display-name@npm:^7.0.0, @babel/plugin-transform-react-display-name@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-react-display-name@npm:7.25.9" dependencies: @@ -2153,22 +1715,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-react-jsx@npm:7.25.7" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" - "@babel/helper-module-imports": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-jsx": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/9f87990b39c68dc6441b55bf9b530c89e8cfc7a610e250dfd8002d94a6b806a585fe7cc9318540e4e635eb819fdaf15a42fd5e8a2ec3f8949bd7a5c759b558d3 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx@npm:^7.25.9": +"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-react-jsx@npm:7.25.9" dependencies: @@ -2242,45 +1789,22 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/d8d4f04a47cfc1a6103ecee8604750ba2184cd947ee1696cdc363639f0d4a3848839e20f0ca63511af9ad6742f7dd813cca5b2640353f7b0816bbc17ff0e9e88 - languageName: node - linkType: hard - -"@babel/plugin-transform-shorthand-properties@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/71c9c1d77887ffa452b2d7c9026ee8e40596e4b4208b077369a997e4e031b474ab08c2991b882a9883b78d7cd6d0d2a2b73345b17e195577b28538360b36f914 - languageName: node - linkType: hard - -"@babel/plugin-transform-shorthand-properties@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/f774995d58d4e3a992b732cf3a9b8823552d471040e280264dd15e0735433d51b468fef04d75853d061309389c66bda10ce1b298297ce83999220eb0ad62741d + checksum: 10/d8d4f04a47cfc1a6103ecee8604750ba2184cd947ee1696cdc363639f0d4a3848839e20f0ca63511af9ad6742f7dd813cca5b2640353f7b0816bbc17ff0e9e88 languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-spread@npm:7.25.7" +"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/5dd9e269241fccfdb8c9ac9cb21c53fa776113c3cee0ea92bb029940c6231b3bc7c0c70e13e5df220b80cfafe8683264cadff5b182bed9fd1b1317557f1a6c2d + checksum: 10/f774995d58d4e3a992b732cf3a9b8823552d471040e280264dd15e0735433d51b468fef04d75853d061309389c66bda10ce1b298297ce83999220eb0ad62741d languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.25.9": +"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-spread@npm:7.25.9" dependencies: @@ -2303,18 +1827,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.0.0": - version: 7.25.7 - resolution: "@babel/plugin-transform-template-literals@npm:7.25.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/bdb541c31d4890a0aea4cf73a897975b69372cc524302ee9b375424d1706c38d1344b891c14ad2cbc3926e9553ffc2596772e8dab5982e09a9da0d959e4a1e92 - languageName: node - linkType: hard - -"@babel/plugin-transform-template-literals@npm:^7.25.9": +"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-template-literals@npm:7.25.9" dependencies: @@ -2531,16 +2044,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.16.7, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.6, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.24.7, @babel/runtime@npm:^7.24.8, @babel/runtime@npm:^7.25.6, @babel/runtime@npm:^7.9.2": - version: 7.25.7 - resolution: "@babel/runtime@npm:7.25.7" - dependencies: - regenerator-runtime: "npm:^0.14.0" - checksum: 10/73411fe0f1bff3a962586cef05b30f49e554b6563767e6d84f7d79d605b2c20e7fc3df291a3aebef69043181a8f893afdab9e6672557a5c2d08b9377d6f678cd - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.10.3, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.8.4": +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.10.3, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.16.7, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.6, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.24.7, @babel/runtime@npm:^7.24.8, @babel/runtime@npm:^7.25.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": version: 7.26.0 resolution: "@babel/runtime@npm:7.26.0" dependencies: @@ -2549,18 +2053,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.25.7, @babel/template@npm:^7.3.3": - version: 7.25.7 - resolution: "@babel/template@npm:7.25.7" - dependencies: - "@babel/code-frame": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10/49e1e88d2eac17d31ae28d6cf13d6d29c1f49384c4f056a6751c065d6565c351e62c01ce6b11fef5edb5f3a77c87e114ea7326ca384fa618b4834e10cf9b20f3 - languageName: node - linkType: hard - -"@babel/template@npm:^7.25.9": +"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.25.9, @babel/template@npm:^7.3.3": version: 7.25.9 resolution: "@babel/template@npm:7.25.9" dependencies: @@ -2571,22 +2064,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.7, @babel/traverse@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/traverse@npm:7.25.7" - dependencies: - "@babel/code-frame": "npm:^7.25.7" - "@babel/generator": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.7" - "@babel/template": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 10/5b2d332fcd6bc78e6500c997e79f7e2a54dfb357e06f0908cb7f0cdd9bb54e7fd3c5673f45993849d433d01ea6076a6d04b825958f0cfa01288ad55ffa5c286f - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.25.9": +"@babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.23.7, @babel/traverse@npm:^7.25.9": version: 7.25.9 resolution: "@babel/traverse@npm:7.25.9" dependencies: @@ -2601,18 +2079,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.8, @babel/types@npm:^7.18.13, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.23.6, @babel/types@npm:^7.25.4, @babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8, @babel/types@npm:^7.3.3": - version: 7.25.8 - resolution: "@babel/types@npm:7.25.8" - dependencies: - "@babel/helper-string-parser": "npm:^7.25.7" - "@babel/helper-validator-identifier": "npm:^7.25.7" - to-fast-properties: "npm:^2.0.0" - checksum: 10/973108dbb189916bb87360f2beff43ae97f1b08f1c071bc6499d363cce48b3c71674bf3b59dfd617f8c5062d1c76dc2a64232bc07b6ccef831fd0c06162d44d9 - languageName: node - linkType: hard - -"@babel/types@npm:^7.21.3, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.4.4": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.8, @babel/types@npm:^7.18.13, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.23.6, @babel/types@npm:^7.25.4, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": version: 7.26.0 resolution: "@babel/types@npm:7.26.0" dependencies: @@ -2622,13 +2089,6 @@ __metadata: languageName: node linkType: hard -"@base2/pretty-print-object@npm:1.0.1": - version: 1.0.1 - resolution: "@base2/pretty-print-object@npm:1.0.1" - checksum: 10/c1b78a521ac712baa076589f3bc81318d07c34a5747e9177b6af37043592252587d98f9b7b59ec174968c6bea31a99fe4d7884121173a449b75fe602b7eb2839 - languageName: node - linkType: hard - "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -2643,21 +2103,18 @@ __metadata: languageName: node linkType: hard -"@chromatic-com/storybook@npm:3.1.0": - version: 3.1.0 - resolution: "@chromatic-com/storybook@npm:3.1.0" +"@chromatic-com/storybook@npm:3.2.2": + version: 3.2.2 + resolution: "@chromatic-com/storybook@npm:3.2.2" dependencies: - "@storybook/channels": "npm:^8.3.0" - "@storybook/telemetry": "npm:^8.3.0" - "@storybook/types": "npm:^8.3.0" chromatic: "npm:^11.15.0" filesize: "npm:^10.0.12" jsonfile: "npm:^6.1.0" react-confetti: "npm:^6.1.0" strip-ansi: "npm:^7.1.0" peerDependencies: - storybook: ^8.3.0 - checksum: 10/fd2041c76029c1ff17377fb5e65edbafc045f675c84dfa4e19bb0dae0b0fc5df57ab99ee1d05b8f8dcb6c74bbaf58b3db1edc8855f66781f93f3dc099999f054 + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10/71338edf56cdbc855074c78981f2e1612b364cd864fa99bbda5c0aad147769b9f476de2fd76816102fd504efc5c0c54ba559d5ac9e3828d53278fe7000863d54 languageName: node linkType: hard @@ -3626,6 +3083,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/aix-ppc64@npm:0.24.0" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-arm64@npm:0.21.5" @@ -3640,6 +3104,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/android-arm64@npm:0.24.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-arm@npm:0.21.5" @@ -3654,6 +3125,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/android-arm@npm:0.24.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-x64@npm:0.21.5" @@ -3668,6 +3146,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/android-x64@npm:0.24.0" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/darwin-arm64@npm:0.21.5" @@ -3682,6 +3167,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/darwin-arm64@npm:0.24.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/darwin-x64@npm:0.21.5" @@ -3696,6 +3188,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/darwin-x64@npm:0.24.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/freebsd-arm64@npm:0.21.5" @@ -3710,6 +3209,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/freebsd-arm64@npm:0.24.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/freebsd-x64@npm:0.21.5" @@ -3724,6 +3230,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/freebsd-x64@npm:0.24.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-arm64@npm:0.21.5" @@ -3738,6 +3251,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-arm64@npm:0.24.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-arm@npm:0.21.5" @@ -3752,6 +3272,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-arm@npm:0.24.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-ia32@npm:0.21.5" @@ -3766,6 +3293,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-ia32@npm:0.24.0" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-loong64@npm:0.21.5" @@ -3780,6 +3314,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-loong64@npm:0.24.0" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-mips64el@npm:0.21.5" @@ -3794,6 +3335,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-mips64el@npm:0.24.0" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-ppc64@npm:0.21.5" @@ -3808,6 +3356,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-ppc64@npm:0.24.0" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-riscv64@npm:0.21.5" @@ -3822,6 +3377,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-riscv64@npm:0.24.0" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-s390x@npm:0.21.5" @@ -3836,6 +3398,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-s390x@npm:0.24.0" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-x64@npm:0.21.5" @@ -3850,6 +3419,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-x64@npm:0.24.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/netbsd-x64@npm:0.21.5" @@ -3864,6 +3440,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/netbsd-x64@npm:0.24.0" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-arm64@npm:0.23.1": version: 0.23.1 resolution: "@esbuild/openbsd-arm64@npm:0.23.1" @@ -3871,6 +3454,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/openbsd-arm64@npm:0.24.0" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/openbsd-x64@npm:0.21.5" @@ -3885,6 +3475,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/openbsd-x64@npm:0.24.0" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/sunos-x64@npm:0.21.5" @@ -3899,6 +3496,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/sunos-x64@npm:0.24.0" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-arm64@npm:0.21.5" @@ -3913,6 +3517,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/win32-arm64@npm:0.24.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-ia32@npm:0.21.5" @@ -3927,6 +3538,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/win32-ia32@npm:0.24.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-x64@npm:0.21.5" @@ -3941,6 +3559,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/win32-x64@npm:0.24.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" @@ -3952,10 +3577,10 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0": - version: 4.11.1 - resolution: "@eslint-community/regexpp@npm:4.11.1" - checksum: 10/934b6d3588c7f16b18d41efec4fdb89616c440b7e3256b8cb92cfd31ae12908600f2b986d6c1e61a84cbc10256b1dd3448cd1eec79904bd67ac365d0f1aba2e2 +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.12.1": + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 10/c08f1dd7dd18fbb60bdd0d85820656d1374dd898af9be7f82cb00451313402a22d5e30569c150315b4385907cdbca78c22389b2a72ab78883b3173be317620cc languageName: node linkType: hard @@ -3994,10 +3619,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.13.0": - version: 9.13.0 - resolution: "@eslint/js@npm:9.13.0" - checksum: 10/aa7a4c45044a6cf6e14666ecc0b56ad41c80f022bd4718620b4a7e3d892111312f4e4ac4787fd11b3bf5abdb6ff9a95fdae7e73ef790528f150d86e9be1754a2 +"@eslint/js@npm:9.14.0": + version: 9.14.0 + resolution: "@eslint/js@npm:9.14.0" + checksum: 10/897e26bd68f898e56e96f85c92a1d823ef3d9f34e17d88d0ff40e88882ddae28d2f35915150c21cf640e0c64cb23703d0fbe6f7c9b9d6328aabe58ca30d9b4fe languageName: node linkType: hard @@ -4581,9 +4206,9 @@ __metadata: "@flocon-trpg/utils": "workspace:^" "@flocon-trpg/web-server-utils": "workspace:*" "@graphql-codegen/cli": "npm:5.0.3" - "@graphql-codegen/typed-document-node": "npm:5.0.10" - "@graphql-codegen/typescript": "npm:4.1.0" - "@graphql-codegen/typescript-operations": "npm:4.3.0" + "@graphql-codegen/typed-document-node": "npm:5.0.11" + "@graphql-codegen/typescript": "npm:4.1.1" + "@graphql-codegen/typescript-operations": "npm:4.3.1" "@kizahasi/option": "npm:^1.1.0" "@kizahasi/ot-string": "npm:0.7.0" "@kizahasi/result": "npm:^1.1.0" @@ -4617,7 +4242,7 @@ __metadata: dotenv: "npm:^16.0.0" dotenv-expand: "npm:^8.0.0" es-toolkit: "npm:^1.25.2" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" express: "npm:^4.17.1" @@ -4641,7 +4266,7 @@ __metadata: rate-limiter-flexible: "npm:^2.3.0" reflect-metadata: "npm:^0.2.0" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" rollup-plugin-multi-input: "npm:^1.3.1" rxjs: "npm:^7.5.6" safe-compare: "npm:^1.1.4" @@ -4653,7 +4278,7 @@ __metadata: type-fest: "npm:^4.0.0" type-graphql: "npm:^1.1.1" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" url-join: "npm:4.0.1" uuid: "npm:^9.0.0" ws: "npm:^8.8.1" @@ -4672,7 +4297,7 @@ __metadata: "@flocon-trpg/tsconfig": "workspace:^" "@flocon-trpg/utils": "workspace:^" "@types/jest": "npm:29.5.14" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" ioredis: "npm:^5.2.3" @@ -4680,10 +4305,10 @@ __metadata: node-cache: "npm:^5.1.2" prettier: "npm:3.3.3" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" ts-jest: "npm:29.2.5" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" languageName: unknown linkType: soft @@ -4707,19 +4332,19 @@ __metadata: "@types/sanitize-filename": "npm:1.6.3" "@types/truncate-utf8-bytes": "npm:1.0.2" es-toolkit: "npm:^1.25.2" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" immer: "npm:^10.0.0" jest: "npm:29.7.0" prettier: "npm:3.3.3" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" sanitize-filename: "npm:^1.6.3" truncate-utf8-bytes: "npm:^1.0.2" ts-jest: "npm:29.2.5" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" zod: "npm:^3.19.1" languageName: unknown linkType: soft @@ -4732,15 +4357,15 @@ __metadata: "@flocon-trpg/prettier-config": "workspace:^" "@flocon-trpg/rollup-config": "workspace:^" "@flocon-trpg/tsconfig": "workspace:^" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" pino-abstract-transport: "npm:^1.0.0" prettier: "npm:3.3.3" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" languageName: unknown linkType: soft @@ -4769,14 +4394,14 @@ __metadata: version: 0.0.0-use.local resolution: "@flocon-trpg/eslint-config@workspace:packages/eslint-config" dependencies: - "@eslint/js": "npm:9.13.0" + "@eslint/js": "npm:9.14.0" "@flocon-trpg/prettier-config": "workspace:^" "@types/eslint__js": "npm:8.42.3" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-plugin-import: "npm:2.31.0" prettier: "npm:3.3.3" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" peerDependencies: eslint: ^9.0.0 eslint-config-prettier: ^9.0.0 @@ -4798,16 +4423,16 @@ __metadata: "@types/estree": "npm:1.0.6" "@types/jest": "npm:29.5.14" acorn: "npm:^8.5.0" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" jest: "npm:29.7.0" prettier: "npm:3.3.3" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" ts-jest: "npm:29.2.5" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" languageName: unknown linkType: soft @@ -4819,14 +4444,14 @@ __metadata: "@flocon-trpg/prettier-config": "workspace:^" "@flocon-trpg/rollup-config": "workspace:^" "@flocon-trpg/tsconfig": "workspace:^" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" prettier: "npm:3.3.3" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" languageName: unknown linkType: soft @@ -4846,12 +4471,12 @@ __metadata: "@flocon-trpg/prettier-config": "workspace:^" "@flocon-trpg/tsconfig": "workspace:^" "@rollup/plugin-typescript": "npm:11.1.6" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" prettier: "npm:3.3.3" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" peerDependencies: rollup: ^4.0.0 languageName: unknown @@ -4868,7 +4493,7 @@ __metadata: "@flocon-trpg/tsconfig": "workspace:^" "@testing-library/react": "npm:14.3.1" "@types/jest": "npm:29.5.14" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" eslint-plugin-react: "npm:7.37.2" @@ -4879,10 +4504,10 @@ __metadata: react: "npm:^18.0.0" react-use: "npm:^17.3.1" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" ts-jest: "npm:29.2.5" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" use-memo-one: "npm:^1.1.2" languageName: unknown linkType: soft @@ -4900,16 +4525,16 @@ __metadata: "@flocon-trpg/typed-document-node": "workspace:^" "@kizahasi/result": "npm:^1.1.0" "@urql/exchange-auth": "npm:^2.2.0" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" graphql-ws: "npm:^5.8.1" prettier: "npm:3.3.3" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" rxjs: "npm:^7.5.6" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" urql: "npm:^4.1.0" wonka: "npm:^6.0.0" languageName: unknown @@ -4930,17 +4555,17 @@ __metadata: "@kizahasi/option": "npm:^1.1.0" "@kizahasi/result": "npm:^1.1.0" "@types/jest": "npm:29.5.14" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" jest: "npm:29.7.0" prettier: "npm:3.3.3" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" rxjs: "npm:^7.5.6" ts-jest: "npm:29.2.5" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" languageName: unknown linkType: soft @@ -4961,21 +4586,21 @@ __metadata: version: 0.0.0-use.local resolution: "@flocon-trpg/tools@workspace:websites/tools" dependencies: - "@eslint/js": "npm:9.13.0" + "@eslint/js": "npm:9.14.0" "@flocon-trpg/core": "workspace:^" "@flocon-trpg/eslint-config": "workspace:^" "@flocon-trpg/prettier-config": "workspace:^" "@flocon-trpg/utils": "workspace:^" "@flocon-trpg/websites-base": "workspace:^" "@tanstack/react-router": "npm:^1.69.1" - "@tanstack/router-plugin": "npm:1.76.0" + "@tanstack/router-plugin": "npm:1.78.3" "@types/bcryptjs": "npm:^2.4.6" "@types/react": "npm:18.3.12" "@types/react-dom": "npm:18.3.1" "@vitejs/plugin-react-swc": "npm:3.7.1" antd: "npm:^5.0.0" bcryptjs: "npm:^2.4.3" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-plugin-react-hooks: "npm:5.1.0-rc-fb9a90fa48-20240614" eslint-plugin-react-refresh: "npm:0.4.14" jotai: "npm:^2.0.0" @@ -4985,7 +4610,7 @@ __metadata: react-dom: "npm:^18.3.1" rxjs: "npm:^7.5.6" typescript: "npm:5.6.3" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" vite: "npm:5.4.10" vite-tsconfig-paths: "npm:5.0.1" languageName: unknown @@ -5006,15 +4631,15 @@ __metadata: "@flocon-trpg/rollup-config": "workspace:^" "@flocon-trpg/tsconfig": "workspace:^" "@graphql-typed-document-node/core": "npm:^3.1.0" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" graphql: "npm:^15.6.0" prettier: "npm:3.3.3" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" languageName: unknown linkType: soft @@ -5033,17 +4658,17 @@ __metadata: "@types/jest": "npm:29.5.14" browser-or-node: "npm:^2.0.0" es-toolkit: "npm:^1.25.2" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" jest: "npm:29.7.0" pino: "npm:^9.4.0" prettier: "npm:3.3.3" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" ts-jest: "npm:29.2.5" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" languageName: unknown linkType: soft @@ -5059,19 +4684,19 @@ __metadata: "@flocon-trpg/typed-document-node": "workspace:^" "@flocon-trpg/utils": "workspace:^" "@types/jest": "npm:29.5.14" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" - fast-check: "npm:3.22.0" + fast-check: "npm:3.23.1" immer: "npm:^10.0.0" jest: "npm:29.7.0" prettier: "npm:3.3.3" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" rxjs: "npm:^7.5.6" ts-jest: "npm:29.2.5" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" languageName: unknown linkType: soft @@ -5079,10 +4704,10 @@ __metadata: version: 0.0.0-use.local resolution: "@flocon-trpg/web-server@workspace:apps/web-server" dependencies: - "@chromatic-com/storybook": "npm:3.1.0" + "@chromatic-com/storybook": "npm:3.2.2" "@emotion/react": "npm:^11.4.1" "@emotion/styled": "npm:^11.9.3" - "@eslint/js": "npm:9.13.0" + "@eslint/js": "npm:9.14.0" "@flocon-trpg/core": "workspace:^" "@flocon-trpg/eslint-config": "workspace:^" "@flocon-trpg/prettier-config": "workspace:^" @@ -5098,18 +4723,18 @@ __metadata: "@monaco-editor/react": "npm:^4.2.2" "@react-spring/konva": "npm:^9.2.4" "@react-spring/web": "npm:^9.0.0" - "@storybook/addon-essentials": "npm:8.3.6" - "@storybook/addon-interactions": "npm:8.3.6" - "@storybook/addon-links": "npm:8.3.6" - "@storybook/addon-onboarding": "npm:8.3.6" - "@storybook/blocks": "npm:8.3.6" - "@storybook/react": "npm:8.3.6" - "@storybook/react-vite": "npm:8.3.6" - "@storybook/test": "npm:8.3.6" + "@storybook/addon-essentials": "npm:8.4.1" + "@storybook/addon-interactions": "npm:8.4.1" + "@storybook/addon-links": "npm:8.4.1" + "@storybook/addon-onboarding": "npm:8.4.1" + "@storybook/blocks": "npm:8.4.1" + "@storybook/react": "npm:8.4.1" + "@storybook/react-vite": "npm:8.4.1" + "@storybook/test": "npm:8.4.1" "@tanstack/react-query": "npm:^5.59.0" "@tanstack/react-router": "npm:^1.69.1" "@tanstack/router-devtools": "npm:^1.76.1" - "@tanstack/router-plugin": "npm:1.76.0" + "@tanstack/router-plugin": "npm:1.78.3" "@testing-library/react": "npm:14.3.1" "@types/color": "npm:3.0.6" "@types/color-name": "npm:1.1.5" @@ -5124,9 +4749,9 @@ __metadata: "@types/url-join": "npm:4.0.3" "@urql/devtools": "npm:2.0.3" "@vitejs/plugin-react-swc": "npm:3.7.1" - "@vitest/coverage-v8": "npm:2.1.3" + "@vitest/coverage-v8": "npm:2.1.4" antd: "npm:^5.0.0" - chromatic: "npm:11.15.0" + chromatic: "npm:11.16.3" classnames: "npm:^2.3.1" clipboard-copy: "npm:^4.0.1" color: "npm:4.2.3" @@ -5134,10 +4759,10 @@ __metadata: dayjs: "npm:^1.11.7" dotenv: "npm:16.4.5" es-toolkit: "npm:^1.25.2" - eslint: "npm:9.13.0" + eslint: "npm:9.14.0" eslint-plugin-react-hooks: "npm:5.1.0-rc-fb9a90fa48-20240614" eslint-plugin-react-refresh: "npm:0.4.14" - eslint-plugin-storybook: "npm:0.10.1" + eslint-plugin-storybook: "npm:0.10.2" firebase: "npm:^10.0.0" globals: "npm:15.11.0" graphql: "npm:^15.6.0" @@ -5174,11 +4799,11 @@ __metadata: react-virtuoso: "npm:^4.0.0" rollup-plugin-license: "npm:3.5.3" rxjs: "npm:^7.5.6" - sass-embedded: "npm:1.80.5" - storybook: "npm:8.3.6" + sass-embedded: "npm:1.80.6" + storybook: "npm:8.4.1" sucrase: "npm:^3.20.1" typescript: "npm:5.6.3" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" url-join: "npm:^4.0.1" urql: "npm:^4.1.0" use-constant: "npm:^1.1.0" @@ -5186,7 +4811,7 @@ __metadata: use-memo-one: "npm:^1.1.2" vite: "npm:5.4.10" vite-tsconfig-paths: "npm:5.0.1" - vitest: "npm:2.1.3" + vitest: "npm:2.1.4" zod: "npm:^3.19.1" languageName: unknown linkType: soft @@ -5201,17 +4826,17 @@ __metadata: "@flocon-trpg/rollup-config": "workspace:^" "@flocon-trpg/tsconfig": "workspace:^" "@types/react": "npm:18.3.12" - antd: "npm:5.21.5" - eslint: "npm:9.13.0" + antd: "npm:5.21.6" + eslint: "npm:9.14.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:2.31.0" jotai: "npm:^2.10.1" prettier: "npm:3.3.3" react: "npm:18.3.1" rimraf: "npm:5.0.10" - rollup: "npm:4.24.0" + rollup: "npm:4.24.3" typescript: "npm:5.6.2" - typescript-eslint: "npm:8.11.0" + typescript-eslint: "npm:8.12.2" peerDependencies: antd: ^5.21.5 react: ^18.0.0 @@ -5403,9 +5028,9 @@ __metadata: languageName: node linkType: hard -"@graphql-codegen/plugin-helpers@npm:^5.0.3, @graphql-codegen/plugin-helpers@npm:^5.0.4": - version: 5.0.4 - resolution: "@graphql-codegen/plugin-helpers@npm:5.0.4" +"@graphql-codegen/plugin-helpers@npm:^5.0.3, @graphql-codegen/plugin-helpers@npm:^5.0.4, @graphql-codegen/plugin-helpers@npm:^5.1.0": + version: 5.1.0 + resolution: "@graphql-codegen/plugin-helpers@npm:5.1.0" dependencies: "@graphql-tools/utils": "npm:^10.0.0" change-case-all: "npm:1.0.15" @@ -5415,7 +5040,7 @@ __metadata: tslib: "npm:~2.6.0" peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 10/8162bffc76bf0d6cd9ff83c98b8a5e5eadbb1bc0de2d273480af937a27ca8fbf74aae72a617303a9d4121b9914eb9af065858f07c0ac13cd169b53a9bcead799 + checksum: 10/415e79be90a1f5d289c9cd7f0a581c277d544be1f7136d7f74f5f067c205eb35fd6cd522455866fa8105f241eec4c77bebe02eef007d5021a7b7a453b85b2001 languageName: node linkType: hard @@ -5432,52 +5057,52 @@ __metadata: languageName: node linkType: hard -"@graphql-codegen/typed-document-node@npm:5.0.10, @graphql-codegen/typed-document-node@npm:^5.0.10": - version: 5.0.10 - resolution: "@graphql-codegen/typed-document-node@npm:5.0.10" +"@graphql-codegen/typed-document-node@npm:5.0.11, @graphql-codegen/typed-document-node@npm:^5.0.10": + version: 5.0.11 + resolution: "@graphql-codegen/typed-document-node@npm:5.0.11" dependencies: - "@graphql-codegen/plugin-helpers": "npm:^5.0.4" - "@graphql-codegen/visitor-plugin-common": "npm:5.4.0" + "@graphql-codegen/plugin-helpers": "npm:^5.1.0" + "@graphql-codegen/visitor-plugin-common": "npm:5.5.0" auto-bind: "npm:~4.0.0" change-case-all: "npm:1.0.15" tslib: "npm:~2.6.0" peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 10/0aa3814359f75273971afb91e67aff30c4128fdd49f5dda1d6496ba061b3c24af0a9825238be6014a275f8fb65c97190611dd65eef126a82f666764d6b4d350a + checksum: 10/9320fbc9ccf13d0b0ecc7b57f1b0799629ce93a4e0cf95a76cdeb38981e2da92775734daa7bf68a9383e3d01f9a47f4b35cb870aef710f5dc137234b93b9d7cf languageName: node linkType: hard -"@graphql-codegen/typescript-operations@npm:4.3.0, @graphql-codegen/typescript-operations@npm:^4.3.0": - version: 4.3.0 - resolution: "@graphql-codegen/typescript-operations@npm:4.3.0" +"@graphql-codegen/typescript-operations@npm:4.3.1, @graphql-codegen/typescript-operations@npm:^4.3.0": + version: 4.3.1 + resolution: "@graphql-codegen/typescript-operations@npm:4.3.1" dependencies: - "@graphql-codegen/plugin-helpers": "npm:^5.0.4" - "@graphql-codegen/typescript": "npm:^4.1.0" - "@graphql-codegen/visitor-plugin-common": "npm:5.4.0" + "@graphql-codegen/plugin-helpers": "npm:^5.1.0" + "@graphql-codegen/typescript": "npm:^4.1.1" + "@graphql-codegen/visitor-plugin-common": "npm:5.5.0" auto-bind: "npm:~4.0.0" tslib: "npm:~2.6.0" peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 10/0c178d7bd72284359aab0e523d2033cfa4ee4ebe1c0ff2c98b41a0fd09c5396e7f8a1e51f1f39374e0d29a5445193047f2da383230ae1ac1a6b41fefa53d8fac + checksum: 10/cdad24e16aa9b369e3ef2434032f2527fd1363e82256dd09d2e9aa6d9a55539eeea15665a4289e7695145f7417a9a765ad73979054a97c606d757ee060780819 languageName: node linkType: hard -"@graphql-codegen/typescript@npm:4.1.0, @graphql-codegen/typescript@npm:^4.1.0": - version: 4.1.0 - resolution: "@graphql-codegen/typescript@npm:4.1.0" +"@graphql-codegen/typescript@npm:4.1.1, @graphql-codegen/typescript@npm:^4.1.0, @graphql-codegen/typescript@npm:^4.1.1": + version: 4.1.1 + resolution: "@graphql-codegen/typescript@npm:4.1.1" dependencies: - "@graphql-codegen/plugin-helpers": "npm:^5.0.4" + "@graphql-codegen/plugin-helpers": "npm:^5.1.0" "@graphql-codegen/schema-ast": "npm:^4.0.2" - "@graphql-codegen/visitor-plugin-common": "npm:5.4.0" + "@graphql-codegen/visitor-plugin-common": "npm:5.5.0" auto-bind: "npm:~4.0.0" tslib: "npm:~2.6.0" peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 10/e18bebd494fcfd9f76b1bdb4cbf75ae4de5fc9bc87a675eae0859c5ad3d073c9ae1d8452819a2e404e281602c44dcbb03659725c3949ae6829cc99c138edf96c + checksum: 10/a47fabef00832122f4981fecbbcfd1e90e2567bdc7fc1d63520b018ae1a6db5217eb42f4f4744265cc492e64cd134b87b7bcfdaddfd7b3e35ce5c47d4548225d languageName: node linkType: hard -"@graphql-codegen/visitor-plugin-common@npm:5.4.0, @graphql-codegen/visitor-plugin-common@npm:^5.4.0": +"@graphql-codegen/visitor-plugin-common@npm:5.4.0": version: 5.4.0 resolution: "@graphql-codegen/visitor-plugin-common@npm:5.4.0" dependencies: @@ -5497,6 +5122,26 @@ __metadata: languageName: node linkType: hard +"@graphql-codegen/visitor-plugin-common@npm:5.5.0, @graphql-codegen/visitor-plugin-common@npm:^5.4.0": + version: 5.5.0 + resolution: "@graphql-codegen/visitor-plugin-common@npm:5.5.0" + dependencies: + "@graphql-codegen/plugin-helpers": "npm:^5.1.0" + "@graphql-tools/optimize": "npm:^2.0.0" + "@graphql-tools/relay-operation-optimizer": "npm:^7.0.0" + "@graphql-tools/utils": "npm:^10.0.0" + auto-bind: "npm:~4.0.0" + change-case-all: "npm:1.0.15" + dependency-graph: "npm:^0.11.0" + graphql-tag: "npm:^2.11.0" + parse-filepath: "npm:^1.0.2" + tslib: "npm:~2.6.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 10/f923c40ae996a2accf3a951d302b3da9b3c063f4b1c66b159bf3f74910e18ea592e87b3f35495a84f6c36d1198d880dd07f6e8c3fe94b0d6dba0f2f77522cb5d + languageName: node + linkType: hard + "@graphql-tools/apollo-engine-loader@npm:^8.0.0": version: 8.0.1 resolution: "@graphql-tools/apollo-engine-loader@npm:8.0.1" @@ -6000,20 +5645,20 @@ __metadata: languageName: node linkType: hard -"@humanfs/core@npm:^0.19.0": - version: 0.19.0 - resolution: "@humanfs/core@npm:0.19.0" - checksum: 10/9c4f96b9e934b7d2f69c5ee8b9414dcaf5c5a03225eb08f8ace3b80429c0fc796e11c4e2ef182172790e7b4560b1137ef984da4dc9662cdd5e3e92baceb02821 +"@humanfs/core@npm:^0.19.1": + version: 0.19.1 + resolution: "@humanfs/core@npm:0.19.1" + checksum: 10/270d936be483ab5921702623bc74ce394bf12abbf57d9145a69e8a0d1c87eb1c768bd2d93af16c5705041e257e6d9cc7529311f63a1349f3678abc776fc28523 languageName: node linkType: hard -"@humanfs/node@npm:^0.16.5": - version: 0.16.5 - resolution: "@humanfs/node@npm:0.16.5" +"@humanfs/node@npm:^0.16.6": + version: 0.16.6 + resolution: "@humanfs/node@npm:0.16.6" dependencies: - "@humanfs/core": "npm:^0.19.0" + "@humanfs/core": "npm:^0.19.1" "@humanwhocodes/retry": "npm:^0.3.0" - checksum: 10/16e49b5f9d4a3cf8205af18f0909b8c6e00faa70a0e01bc606b413423ee20123e53028b6ca22c57725595341d62e148cd1908c297a761ee495087cc674f7b0a6 + checksum: 10/6d43c6727463772d05610aa05c83dab2bfbe78291022ee7a92cb50999910b8c720c76cc312822e2dea2b497aa1b3fef5fe9f68803fc45c9d4ed105874a65e339 languageName: node linkType: hard @@ -6024,13 +5669,20 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/retry@npm:^0.3.0, @humanwhocodes/retry@npm:^0.3.1": +"@humanwhocodes/retry@npm:^0.3.0": version: 0.3.1 resolution: "@humanwhocodes/retry@npm:0.3.1" checksum: 10/eb457f699529de7f07649679ec9e0353055eebe443c2efe71c6dd950258892475a038e13c6a8c5e13ed1fb538cdd0a8794faa96b24b6ffc4c87fb1fc9f70ad7f languageName: node linkType: hard +"@humanwhocodes/retry@npm:^0.4.0": + version: 0.4.1 + resolution: "@humanwhocodes/retry@npm:0.4.1" + checksum: 10/39fafc7319e88f61befebd5e1b4f0136534ea6a9bd10d74366698187bd63544210ec5d79a87ed4d91297f1cc64c4c53d45fb0077a2abfdce212cf0d3862d5f04 + languageName: node + linkType: hard + "@img/sharp-darwin-arm64@npm:0.33.5": version: 0.33.5 resolution: "@img/sharp-darwin-arm64@npm:0.33.5" @@ -6679,14 +6331,14 @@ __metadata: linkType: hard "@mdx-js/react@npm:^3.0.0": - version: 3.0.1 - resolution: "@mdx-js/react@npm:3.0.1" + version: 3.1.0 + resolution: "@mdx-js/react@npm:3.1.0" dependencies: "@types/mdx": "npm:^2.0.0" peerDependencies: "@types/react": ">=16" react: ">=16" - checksum: 10/d566407af11e76f498f8133fbfa8a9d8a2ad80dc7a66ca109d29fcb92e953a2d2d7aaedc0c28571d126f1967faeb126dd2e4ab4ea474c994bf5c76fa204c5997 + checksum: 10/cf89d6392c76091622fb647f205e1ab5cbdf5edd4401dde7092138cefc9fbb6d61428aa63557de0bccca3695d5a8854dd4a93b34a27cb8e27369da7eaeaa3e73 languageName: node linkType: hard @@ -7240,114 +6892,128 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.24.0" +"@rollup/rollup-android-arm-eabi@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.24.3" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-android-arm64@npm:4.24.0" +"@rollup/rollup-android-arm64@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-android-arm64@npm:4.24.3" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.24.0" +"@rollup/rollup-darwin-arm64@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-darwin-arm64@npm:4.24.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.24.0" +"@rollup/rollup-darwin-x64@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-darwin-x64@npm:4.24.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.24.0" +"@rollup/rollup-freebsd-arm64@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.24.3" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-freebsd-x64@npm:4.24.3" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.24.3" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.24.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.24.3" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.24.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.24.3" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.24.0" +"@rollup/rollup-linux-arm64-musl@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.24.3" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.24.0" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.24.3" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.24.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.24.3" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.24.0" +"@rollup/rollup-linux-s390x-gnu@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.24.3" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.24.0" +"@rollup/rollup-linux-x64-gnu@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.24.3" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.24.0" +"@rollup/rollup-linux-x64-musl@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.24.3" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.24.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.24.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.24.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.24.3" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.24.0": - version: 4.24.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.24.0" +"@rollup/rollup-win32-x64-msvc@npm:4.24.3": + version: 4.24.3 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.24.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -7444,9 +7110,9 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-actions@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-actions@npm:8.3.6" +"@storybook/addon-actions@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-actions@npm:8.4.1" dependencies: "@storybook/global": "npm:^5.0.0" "@types/uuid": "npm:^9.0.1" @@ -7454,286 +7120,247 @@ __metadata: polished: "npm:^4.2.2" uuid: "npm:^9.0.0" peerDependencies: - storybook: ^8.3.6 - checksum: 10/94b5832dfab5494570ee06b39ccf4d0ae119332c8db479b0ef73aa9e06c853808aca642e14aca26c713ddfbaccccfcc56b8d38429d4d54d9d96fb4223474e406 + storybook: ^8.4.1 + checksum: 10/a743b616ceace8f80c847bbb24d78114c89457198b5b56ea350434fa93751777a9a578b4ba89a293b8d0bbf419f669004f701f0763edc95b7a6d5120a1bac083 languageName: node linkType: hard -"@storybook/addon-backgrounds@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-backgrounds@npm:8.3.6" +"@storybook/addon-backgrounds@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-backgrounds@npm:8.4.1" dependencies: "@storybook/global": "npm:^5.0.0" memoizerific: "npm:^1.11.3" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.3.6 - checksum: 10/a8eaf489d7a6accbc838e7949b17540a0377526a45ca1babba44128c3a6d5a7e691b39ce41885ac2e191662bb7db9c912b833832a035dffe8a251ded0431a792 + storybook: ^8.4.1 + checksum: 10/ce875438db893557408cd3dcecc1a0bf62c809c6cfe2816e5291c5f4afa5f263bde86ecb2391b5d81c7015c4748ecdc8d232a7060fe0f1fddee17708a62d361e languageName: node linkType: hard -"@storybook/addon-controls@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-controls@npm:8.3.6" +"@storybook/addon-controls@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-controls@npm:8.4.1" dependencies: "@storybook/global": "npm:^5.0.0" dequal: "npm:^2.0.2" - lodash: "npm:^4.17.21" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.3.6 - checksum: 10/0ea4df71f2a12252c559d8b9beeefad17358dea5cc675e03a76a9effba9e48b3fa42d2f194c62e9accd8bb86bbf64078bd9d03f134d5bfa903adfdacbcd638ea + storybook: ^8.4.1 + checksum: 10/49173820b0f4aeeb16b6d1f0207070903d94c2b6f890dd192ba99f23f4f9f7f4f55e10a3f2e4c10d28180d8b5aacaede4fc2e1149fd1fe9fe953b93d9c2b742b languageName: node linkType: hard -"@storybook/addon-docs@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-docs@npm:8.3.6" +"@storybook/addon-docs@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-docs@npm:8.4.1" dependencies: "@mdx-js/react": "npm:^3.0.0" - "@storybook/blocks": "npm:8.3.6" - "@storybook/csf-plugin": "npm:8.3.6" - "@storybook/global": "npm:^5.0.0" - "@storybook/react-dom-shim": "npm:8.3.6" - "@types/react": "npm:^16.8.0 || ^17.0.0 || ^18.0.0" - fs-extra: "npm:^11.1.0" + "@storybook/blocks": "npm:8.4.1" + "@storybook/csf-plugin": "npm:8.4.1" + "@storybook/react-dom-shim": "npm:8.4.1" react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" - rehype-external-links: "npm:^3.0.0" - rehype-slug: "npm:^6.0.0" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.3.6 - checksum: 10/8c8ae44903ddd8e100c0da3952d7c83dace3b1fd7a87531263b487dca378122d2273a57afd8b18006ddf3ae1c3473f5a197c44742843e92dd724734b9c5adeb3 + storybook: ^8.4.1 + checksum: 10/4cdca83555c2003565c996163eb1cd4c64a21d84db337b683b1f07ff70e96939381430dc50d45522ebf4276793190d9d9969c8526464d661487f0f3c839f99e9 languageName: node linkType: hard -"@storybook/addon-essentials@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-essentials@npm:8.3.6" - dependencies: - "@storybook/addon-actions": "npm:8.3.6" - "@storybook/addon-backgrounds": "npm:8.3.6" - "@storybook/addon-controls": "npm:8.3.6" - "@storybook/addon-docs": "npm:8.3.6" - "@storybook/addon-highlight": "npm:8.3.6" - "@storybook/addon-measure": "npm:8.3.6" - "@storybook/addon-outline": "npm:8.3.6" - "@storybook/addon-toolbars": "npm:8.3.6" - "@storybook/addon-viewport": "npm:8.3.6" +"@storybook/addon-essentials@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-essentials@npm:8.4.1" + dependencies: + "@storybook/addon-actions": "npm:8.4.1" + "@storybook/addon-backgrounds": "npm:8.4.1" + "@storybook/addon-controls": "npm:8.4.1" + "@storybook/addon-docs": "npm:8.4.1" + "@storybook/addon-highlight": "npm:8.4.1" + "@storybook/addon-measure": "npm:8.4.1" + "@storybook/addon-outline": "npm:8.4.1" + "@storybook/addon-toolbars": "npm:8.4.1" + "@storybook/addon-viewport": "npm:8.4.1" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.3.6 - checksum: 10/4b15ece66548adfefe41bcfed67aa60526253a47b36245fa63b523986e106f7399b6a1720f59a260ae89a7629b4ebefafca3a19853c5ccecd0b2f259f8dd0c3a + storybook: ^8.4.1 + checksum: 10/7f3d5766f181f98f14e5ad1a8acc15474bdcc96296f15f354adad978406a4c3c622f479242b653083a905196db1fe60cb00cbcb21e59e6975866d714ea9149e7 languageName: node linkType: hard -"@storybook/addon-highlight@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-highlight@npm:8.3.6" +"@storybook/addon-highlight@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-highlight@npm:8.4.1" dependencies: "@storybook/global": "npm:^5.0.0" peerDependencies: - storybook: ^8.3.6 - checksum: 10/948f295e0196d7a4669095859286dbfce463be220d1d8adcca578ba40c888f1879816ba3343db1a286cfe52bc79ae554314def76d6ec11e12493192c13eea2e5 + storybook: ^8.4.1 + checksum: 10/e58a86f25a9ffc05ff0726c4bd8b328bfb2e6b29539c84cc8f4725e07edd3187463d622783f84e1a46fcff2a709f655147ee09260c87616f5ced92d3fee51695 languageName: node linkType: hard -"@storybook/addon-interactions@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-interactions@npm:8.3.6" +"@storybook/addon-interactions@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-interactions@npm:8.4.1" dependencies: "@storybook/global": "npm:^5.0.0" - "@storybook/instrumenter": "npm:8.3.6" - "@storybook/test": "npm:8.3.6" + "@storybook/instrumenter": "npm:8.4.1" + "@storybook/test": "npm:8.4.1" polished: "npm:^4.2.2" ts-dedent: "npm:^2.2.0" peerDependencies: - storybook: ^8.3.6 - checksum: 10/ddf4b0e534cc2b03001a76410475abf45c46f2900f016e682569d294640ffcda2ac0c8df3252225a48cc9641048936e1e62d26ffd7da2fabe650b774cba44992 + storybook: ^8.4.1 + checksum: 10/ffedd0b87e0093418005f6b29b58ac64319f7cc90a1fae09eafb8e330a939e0fd330ed2880f9f2e23edffaf4c42bb8ca916b000c2da2535c7c33e18cca75378a languageName: node linkType: hard -"@storybook/addon-links@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-links@npm:8.3.6" +"@storybook/addon-links@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-links@npm:8.4.1" dependencies: "@storybook/csf": "npm:^0.1.11" "@storybook/global": "npm:^5.0.0" ts-dedent: "npm:^2.0.0" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.6 + storybook: ^8.4.1 peerDependenciesMeta: react: optional: true - checksum: 10/1c6a1483098e5f1292824cb038d7a0efae78a8aee86e940092200b646501a6e4713a24e422fd3dd25781f17e08276dc5156cf3f4838b92a029fff2b4f3eb4e84 + checksum: 10/a57c029dacbdf105e42297ff814efd942b2e9c1189efac70940f933c0f82bd8ccc09b1248083bd8b66f93fb4b7599147f2e75a801963e97f3da5a6e947b70184 languageName: node linkType: hard -"@storybook/addon-measure@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-measure@npm:8.3.6" +"@storybook/addon-measure@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-measure@npm:8.4.1" dependencies: "@storybook/global": "npm:^5.0.0" tiny-invariant: "npm:^1.3.1" peerDependencies: - storybook: ^8.3.6 - checksum: 10/cec0d3517ccdbe61e09906154929381cdd9ded1ac50391bf5530144e4ef40e8f46f1c0f8cadf41c382a98209df1c9c9c156c0b1acf3038526f24a92cc9082260 + storybook: ^8.4.1 + checksum: 10/361f8008a70bc14bfcad580f8dec46db5918722f751dde58c2ab5fda5cdfe28f31c6bcfd0a13548764cd081c4318bc63d080d5b0c28857af9ee15a79f980a711 languageName: node linkType: hard -"@storybook/addon-onboarding@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-onboarding@npm:8.3.6" +"@storybook/addon-onboarding@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-onboarding@npm:8.4.1" dependencies: react-confetti: "npm:^6.1.0" peerDependencies: - storybook: ^8.3.6 - checksum: 10/bcff956daf0cd77d9b84420712824ecbd4702e3a3f5996f43debdadd4252c437f960e09a6760cc0a04512f21dc77ae881aae309b5728e4ebcd9141b34340b6c7 + storybook: ^8.4.1 + checksum: 10/cf14a6d7fd87d331d25334fb17fa369990a45ede26df8b6a95618464a17ed7f55c0d8627a531766025ac23240b3675a4b51107b598867fe3b5358541b1b9dab5 languageName: node linkType: hard -"@storybook/addon-outline@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-outline@npm:8.3.6" +"@storybook/addon-outline@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-outline@npm:8.4.1" dependencies: "@storybook/global": "npm:^5.0.0" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.3.6 - checksum: 10/8b63ca2a5a6c5cd30fc4359f05f911825ff54946508a458aa8803b46cbde8badf470ffd9521480eb0be52eb00c064ccb1181170dcd0b621db091f52b04177b40 + storybook: ^8.4.1 + checksum: 10/9f7cdd81103194faa0ebbc7d20c02687f257bd4d4aaf4c1b4198908c5f36fb96bc0342d196041728084ec137be91c55468f95ba26ffa1c5755ae9dce7fafeb98 languageName: node linkType: hard -"@storybook/addon-toolbars@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-toolbars@npm:8.3.6" +"@storybook/addon-toolbars@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-toolbars@npm:8.4.1" peerDependencies: - storybook: ^8.3.6 - checksum: 10/09ae00f53e92735735eee645b35fca80e3dce29d39a0821f675e0f0bf6aae1ffe94b6545eb132da4026a86a77b352b2709956f742b5906d8caccabc1f72f948a + storybook: ^8.4.1 + checksum: 10/44542a99986b9d0d8a44bbdb34bc3fb63c3a3199d29a25f5e7e3b84a4d0379737e7539547ee75690bf3b2a7463a55429a540b8540973b1a22434d9f8b5376841 languageName: node linkType: hard -"@storybook/addon-viewport@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/addon-viewport@npm:8.3.6" +"@storybook/addon-viewport@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/addon-viewport@npm:8.4.1" dependencies: memoizerific: "npm:^1.11.3" peerDependencies: - storybook: ^8.3.6 - checksum: 10/b9e09004b742dabbd115cec74a75656b01aef44c3476508cdfbdee24efbcb50b90470e66bd6bd735e804139e36aa65fea4d96c8c8f92b08153e6dde764f55943 + storybook: ^8.4.1 + checksum: 10/3513f5d7c35cee33e2577d4cddcb1d9847cb2ec8dfbd9ad8b176fcebb4678d8fe13589d860e17e5552f5cf910e479d78bc97438681ff651a1e25daddc8ea4772 languageName: node linkType: hard -"@storybook/blocks@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/blocks@npm:8.3.6" +"@storybook/blocks@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/blocks@npm:8.4.1" dependencies: "@storybook/csf": "npm:^0.1.11" - "@storybook/global": "npm:^5.0.0" - "@storybook/icons": "npm:^1.2.10" - "@types/lodash": "npm:^4.14.167" - color-convert: "npm:^2.0.1" - dequal: "npm:^2.0.2" - lodash: "npm:^4.17.21" - markdown-to-jsx: "npm:^7.4.5" - memoizerific: "npm:^1.11.3" - polished: "npm:^4.2.2" - react-colorful: "npm:^5.1.2" - telejson: "npm:^7.2.0" + "@storybook/icons": "npm:^1.2.12" ts-dedent: "npm:^2.0.0" - util-deprecate: "npm:^1.0.2" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.6 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 10/db3b4676602c52af32de06032ed15a7b7723138675be0f27d6ac0f806806dab58b8ba0d97a69ff33e01c169e47bccb6b2f25df3e8b472287c76ae9da40be5a6b - languageName: node - linkType: hard - -"@storybook/builder-vite@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/builder-vite@npm:8.3.6" - dependencies: - "@storybook/csf-plugin": "npm:8.3.6" - "@types/find-cache-dir": "npm:^3.2.1" - browser-assert: "npm:^1.2.1" - es-module-lexer: "npm:^1.5.0" - express: "npm:^4.19.2" - find-cache-dir: "npm:^3.0.0" - fs-extra: "npm:^11.1.0" - magic-string: "npm:^0.30.0" - ts-dedent: "npm:^2.0.0" - peerDependencies: - "@preact/preset-vite": "*" - storybook: ^8.3.6 - typescript: ">= 4.3.x" - vite: ^4.0.0 || ^5.0.0 - vite-plugin-glimmerx: "*" + storybook: ^8.4.1 peerDependenciesMeta: - "@preact/preset-vite": - optional: true - typescript: + react: optional: true - vite-plugin-glimmerx: + react-dom: optional: true - checksum: 10/8a9b6563eef30333d310e996a0b29333c9871a0468006f68e7b38b274c6957f53a167869d459ce6878d3b8c4a4c63092179aa8fdf41b241dff82d989aa1d7205 + checksum: 10/f150697386107c5014b2b38bc8b13a24a82f6777f10c721843f8fcb227a6f02dafb82657613e5a766177732d59ef3df0989f578a4a6477bd2b8d923b4c87612a languageName: node linkType: hard -"@storybook/channels@npm:^8.3.0": - version: 8.3.6 - resolution: "@storybook/channels@npm:8.3.6" +"@storybook/builder-vite@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/builder-vite@npm:8.4.1" + dependencies: + "@storybook/csf-plugin": "npm:8.4.1" + browser-assert: "npm:^1.2.1" + ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.3.6 - checksum: 10/edd97c042d5ac6f604efd9a4bbf4a2dce1948cc38412ef0f23f07e401e6d01bdd5312f7b11f56edf603afffe140a50fb288d5b69f9926bc38a8c15cf8f5a61b6 + storybook: ^8.4.1 + vite: ^4.0.0 || ^5.0.0 + checksum: 10/d02f34aaa6462615d60ef3045708ec35b2df5f3fdd4e01872c820a13ffe3e395e18632ff79b219bc69c8feeaebc135d1f2cec1daa5fb9cb6641b3438a7c70de3 languageName: node linkType: hard -"@storybook/components@npm:^8.3.6": - version: 8.3.6 - resolution: "@storybook/components@npm:8.3.6" +"@storybook/components@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/components@npm:8.4.1" peerDependencies: - storybook: ^8.3.6 - checksum: 10/778a114ddba6bd71ce18a8659c4c8b9b4cbcfa5665a68e3bae9467c492a218c2d95ded0825cc920984a6017f12ce811f48517812eb0de2183623cd06be677d7a + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10/fad61e37228974d179ae0ea552089ddf9f60bf2686e70feb900a1682922e5102db6a43c452e1cd4bdad4619b70e2239afbd3944c0edd4b7ab76c96a316886ec6 languageName: node linkType: hard -"@storybook/core@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/core@npm:8.3.6" +"@storybook/core@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/core@npm:8.4.1" dependencies: "@storybook/csf": "npm:^0.1.11" - "@types/express": "npm:^4.17.21" better-opn: "npm:^3.0.2" browser-assert: "npm:^1.2.1" - esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0" + esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0" esbuild-register: "npm:^3.5.0" - express: "npm:^4.19.2" jsdoc-type-pratt-parser: "npm:^4.0.0" process: "npm:^0.11.10" recast: "npm:^0.23.5" semver: "npm:^7.6.2" util: "npm:^0.12.5" ws: "npm:^8.2.3" - checksum: 10/7163a919c6a1bb65acdfe28f7e8f3f481c982867f04bbf8bf8e98ef96e06da116d7ac1ca2442b6584e2b3a94521d8084082186f4632c44f50529ed7447956e5b + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + checksum: 10/9782c8991e37771a67b5615ee0bac478fdcc4ee323d229a4bb29822783b8d8c7a52ec50926213c88688775a24f12786173fa49453cece5aaabf8796f67bd49a2 languageName: node linkType: hard -"@storybook/csf-plugin@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/csf-plugin@npm:8.3.6" +"@storybook/csf-plugin@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/csf-plugin@npm:8.4.1" dependencies: unplugin: "npm:^1.3.1" peerDependencies: - storybook: ^8.3.6 - checksum: 10/08cd3f8563808889877484f112bca7bca496f3ea195e18660941f11644422282062135a40e0f5f732fee9b5d7a214baddf2a9e58eb10d5ff54bd30b61ee0923d + storybook: ^8.4.1 + checksum: 10/00a37310545e22d06c868ad8740a9757c7a21ac5e5ea0f2251241a284661cac1198974d722f64e5c7ff53e6c674c565f8e2ea3c055adec1ad57cab514be47aba languageName: node linkType: hard @@ -7753,7 +7380,7 @@ __metadata: languageName: node linkType: hard -"@storybook/icons@npm:^1.2.10": +"@storybook/icons@npm:^1.2.12": version: 1.2.12 resolution: "@storybook/icons@npm:1.2.12" peerDependencies: @@ -7763,56 +7390,55 @@ __metadata: languageName: node linkType: hard -"@storybook/instrumenter@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/instrumenter@npm:8.3.6" +"@storybook/instrumenter@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/instrumenter@npm:8.4.1" dependencies: "@storybook/global": "npm:^5.0.0" - "@vitest/utils": "npm:^2.0.5" - util: "npm:^0.12.4" + "@vitest/utils": "npm:^2.1.1" peerDependencies: - storybook: ^8.3.6 - checksum: 10/bc911ea2338e726fe18fc0d1391021840c7a8c00d2a2d69a20c67c6f4a57be23bf08d38a71fee0fc36bd41a6c79ba5fa581a56e7702ff7e01baef11c982cd00e + storybook: ^8.4.1 + checksum: 10/326448124df49418bcca85cb09a0df33d61c328ce237eb1a541b2c70973d3df38a3f70d27ff41442a4c80a8a42be0911354f14970075442eed53b24a11dcd096 languageName: node linkType: hard -"@storybook/manager-api@npm:^8.3.6": - version: 8.3.6 - resolution: "@storybook/manager-api@npm:8.3.6" +"@storybook/manager-api@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/manager-api@npm:8.4.1" peerDependencies: - storybook: ^8.3.6 - checksum: 10/94faf62726b948c2f8e52e15ac99f4ca2f5884a874fbecda6a81e58a03ff316d17ed36c8c146bd388bb58dad2a2bd09cd61c6d7fc1ff2cddfc774c2aed34e37c + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10/1df041bc3c51331b769be412fb14dcdb2f5785effee2becd0bf803382f64fbfe13eb9c7ecdade81de7cff624e145e092f3e0309cf7219fb09cbf12ca503c13a1 languageName: node linkType: hard -"@storybook/preview-api@npm:^8.3.6": - version: 8.3.6 - resolution: "@storybook/preview-api@npm:8.3.6" +"@storybook/preview-api@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/preview-api@npm:8.4.1" peerDependencies: - storybook: ^8.3.6 - checksum: 10/5a645dc19308b69020da2ee282860666c6f7ebe45525802cb4da3d4e496f410a30915e570ae4a07b23d429a5d7f0c7254d9f76e6bc236ff2a85b0cc0e56b0ad0 + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10/36dee1deb1c6c905fc73854315b5f5d8f4d144e409433fef8885f10e506e2663a528458d88a854968e7de1bebc6bfb1091d7a7e00506344f9dd11b024a63d66f languageName: node linkType: hard -"@storybook/react-dom-shim@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/react-dom-shim@npm:8.3.6" +"@storybook/react-dom-shim@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/react-dom-shim@npm:8.4.1" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.6 - checksum: 10/229001fd8138821d71c7c53ececc152858e92a49cdc50ddb401fecbbe5e4ca3b92082a15b15e1d074ebbb22f294aa5310f54356c7a372479439e985af62cd262 + storybook: ^8.4.1 + checksum: 10/388a1944abc088c01f382323215db50c2a84922101817aa3e303b0b8f4891f554605be07d8ecc72e297e5ba2049ba391ef00077f54d477ef32b1be1205d25869 languageName: node linkType: hard -"@storybook/react-vite@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/react-vite@npm:8.3.6" +"@storybook/react-vite@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/react-vite@npm:8.4.1" dependencies: "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.3.0" "@rollup/pluginutils": "npm:^5.0.2" - "@storybook/builder-vite": "npm:8.3.6" - "@storybook/react": "npm:8.3.6" + "@storybook/builder-vite": "npm:8.4.1" + "@storybook/react": "npm:8.4.1" find-up: "npm:^5.0.0" magic-string: "npm:^0.30.0" react-docgen: "npm:^7.0.0" @@ -7821,94 +7447,61 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.6 + storybook: ^8.4.1 vite: ^4.0.0 || ^5.0.0 - checksum: 10/ce2971acb3691633976efe91ae0db6d10b654ff5903f04d0746c3c22900ff7a7ff5c182bd939c83ca18fcca4ba8a7f3460716be75af8ff443fcded3c058c3db3 + checksum: 10/6ca8d48abf92dab6939f5803bb40d7d835e9c97189c1203e778510a22bb3cef8166c161e0b67427fe825d16e1f69428814047d4ad0e08b28f76ece2c0ddaec57 languageName: node linkType: hard -"@storybook/react@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/react@npm:8.3.6" +"@storybook/react@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/react@npm:8.4.1" dependencies: - "@storybook/components": "npm:^8.3.6" + "@storybook/components": "npm:8.4.1" "@storybook/global": "npm:^5.0.0" - "@storybook/manager-api": "npm:^8.3.6" - "@storybook/preview-api": "npm:^8.3.6" - "@storybook/react-dom-shim": "npm:8.3.6" - "@storybook/theming": "npm:^8.3.6" - "@types/escodegen": "npm:^0.0.6" - "@types/estree": "npm:^0.0.51" - "@types/node": "npm:^22.0.0" - acorn: "npm:^7.4.1" - acorn-jsx: "npm:^5.3.1" - acorn-walk: "npm:^7.2.0" - escodegen: "npm:^2.1.0" - html-tags: "npm:^3.1.0" - prop-types: "npm:^15.7.2" - react-element-to-jsx-string: "npm:^15.0.0" - semver: "npm:^7.3.7" - ts-dedent: "npm:^2.0.0" - type-fest: "npm:~2.19" - util-deprecate: "npm:^1.0.2" + "@storybook/manager-api": "npm:8.4.1" + "@storybook/preview-api": "npm:8.4.1" + "@storybook/react-dom-shim": "npm:8.4.1" + "@storybook/theming": "npm:8.4.1" peerDependencies: - "@storybook/test": 8.3.6 + "@storybook/test": 8.4.1 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.6 + storybook: ^8.4.1 typescript: ">= 4.2.x" peerDependenciesMeta: "@storybook/test": optional: true typescript: optional: true - checksum: 10/412e9052d20485350d987776daf0709bae8595bf4f3e10b12ae1aa85a32ae46369ceb0da623b651dd568d2124ed9ca7adc2dc1930353e41be2881bb253240e3c - languageName: node - linkType: hard - -"@storybook/telemetry@npm:^8.3.0": - version: 8.3.6 - resolution: "@storybook/telemetry@npm:8.3.6" - peerDependencies: - storybook: ^8.3.6 - checksum: 10/26876685d5bc9e10c969af3ae7e7938a18ea653bd0a8caf0ff88159ea1f0bb2748f0f1399042a50f2d91dd3dc5ab9e2edac9fb5334bd45836dae35a54a3cff85 + checksum: 10/3734c9b9d2efa2f1c3eda3f38a88ed1207d47c048b5cf330e342c642485c434ea276ce41b32eef6105de062d0d12f83c388c4b50f5b35b879beb352a8ff8dcb6 languageName: node linkType: hard -"@storybook/test@npm:8.3.6": - version: 8.3.6 - resolution: "@storybook/test@npm:8.3.6" +"@storybook/test@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/test@npm:8.4.1" dependencies: "@storybook/csf": "npm:^0.1.11" "@storybook/global": "npm:^5.0.0" - "@storybook/instrumenter": "npm:8.3.6" + "@storybook/instrumenter": "npm:8.4.1" "@testing-library/dom": "npm:10.4.0" "@testing-library/jest-dom": "npm:6.5.0" "@testing-library/user-event": "npm:14.5.2" "@vitest/expect": "npm:2.0.5" "@vitest/spy": "npm:2.0.5" - util: "npm:^0.12.4" peerDependencies: - storybook: ^8.3.6 - checksum: 10/2115e96dbe61e68dcb2da9086ea81501b1763f2a5e68e61cb13d2fcc37dc00ab2178737e0cfff3ed515e86a0cfada09538044ab26c03cd4418eb8ef07dbdfcbf + storybook: ^8.4.1 + checksum: 10/7ab75c8e8d9f25a5fd69a7ac744861c0d37b8b3ba6237a4fecdda3b4fece832b50f30a9220736754677335bf583a58bfeb3fb14a373daba6b237430c24139476 languageName: node linkType: hard -"@storybook/theming@npm:^8.3.6": - version: 8.3.6 - resolution: "@storybook/theming@npm:8.3.6" - peerDependencies: - storybook: ^8.3.6 - checksum: 10/7b40b35069225d37f71f43e35174717ba6ec8d273eef671a2d37d9745a300c5b3887fa145aee6fdbe4759b2140ddf25e8cbd569074ae1c7d44b0ccc99c1a3451 - languageName: node - linkType: hard - -"@storybook/types@npm:^8.3.0": - version: 8.3.6 - resolution: "@storybook/types@npm:8.3.6" +"@storybook/theming@npm:8.4.1": + version: 8.4.1 + resolution: "@storybook/theming@npm:8.4.1" peerDependencies: - storybook: ^8.3.6 - checksum: 10/7122388d848cf1d8b7d95c81b8a601d82a455d764f7a625372f344dc0402bbd398db22e1c6cedd66ca3987d61b0f8204ff757e0ff5fc2a77745094dc7b882a2a + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10/a88c8d0e9bebecca73296e0415334f0724682ac14939b854891548ad2195902a42e8af0e3aefbae62bb7775c8ef90037d95586436c8922a461b827004d8fe1b7 languageName: node linkType: hard @@ -8216,40 +7809,40 @@ __metadata: languageName: node linkType: hard -"@tanstack/query-core@npm:5.59.16": - version: 5.59.16 - resolution: "@tanstack/query-core@npm:5.59.16" - checksum: 10/c001282dfeb682b18f3eb8231f6b00d5b3304dd033ef0da5cd252d9a2cf42507d9879590e16bfe15549def3e8ef83033ee71cee259f60402fc8992581fb9cd5e +"@tanstack/query-core@npm:5.59.20": + version: 5.59.20 + resolution: "@tanstack/query-core@npm:5.59.20" + checksum: 10/efe34f0a05f4cdef833c3885f466bab8ecee22677a9056d161087658539c1dd14063cc19c08b8f2e56cafc4692fcde7fb4fc4962df59159b1da12c49e69892df languageName: node linkType: hard "@tanstack/react-query@npm:^5.59.0": - version: 5.59.16 - resolution: "@tanstack/react-query@npm:5.59.16" + version: 5.59.20 + resolution: "@tanstack/react-query@npm:5.59.20" dependencies: - "@tanstack/query-core": "npm:5.59.16" + "@tanstack/query-core": "npm:5.59.20" peerDependencies: react: ^18 || ^19 - checksum: 10/7496d4c798268a204b5327d3e42591396da70202e8b1c7cb266fb4632c59053dbb5d759edee55a2eea838a6df6cf2bec8f3751e9033dd243bcca9d6da5bdc2c8 + checksum: 10/4bfface953fedb124c5b30d46d22e46b18dc9c53a30ad20493c2ce70dc03058d78815c2a8a8a4f0bd279dae29469b923ccb346c69485f00c1808fa7ac908d6b4 languageName: node linkType: hard "@tanstack/react-router@npm:^1.69.1": - version: 1.77.5 - resolution: "@tanstack/react-router@npm:1.77.5" + version: 1.79.0 + resolution: "@tanstack/react-router@npm:1.79.0" dependencies: "@tanstack/history": "npm:1.61.1" "@tanstack/react-store": "npm:^0.5.6" tiny-invariant: "npm:^1.3.3" tiny-warning: "npm:^1.0.3" peerDependencies: - "@tanstack/router-generator": 1.74.2 + "@tanstack/router-generator": 1.79.0 react: ">=18" react-dom: ">=18" peerDependenciesMeta: "@tanstack/router-generator": optional: true - checksum: 10/52f99e5b825da0ea970913df8783041069f385a2204b34546e8f5ad9f61c62e906868b92bdd3c7651f0ab758346fbcf421b4bf8c92ec31627ed9fb03c4785410 + checksum: 10/034349aaac47ae32b9c84e889b282be87adfb26a3a32c6fad6a05f31988f3ee2f8925568d890921ee7d7d13e138bafed4aab326d1887cba3af7fbbb94ef93121 languageName: node linkType: hard @@ -8267,44 +7860,44 @@ __metadata: linkType: hard "@tanstack/router-devtools@npm:^1.76.1": - version: 1.77.5 - resolution: "@tanstack/router-devtools@npm:1.77.5" + version: 1.79.0 + resolution: "@tanstack/router-devtools@npm:1.79.0" dependencies: clsx: "npm:^2.1.1" goober: "npm:^2.1.16" peerDependencies: - "@tanstack/react-router": ^1.77.5 + "@tanstack/react-router": ^1.79.0 react: ">=18" react-dom: ">=18" - checksum: 10/a8f3adcf206cef8bf50bdd8441dcba9d214dfcc72bfae1f4c681b7e76b95c848d9c4ecbc47d6cfa6f62a4ff300598ba233f13c060a4f574508de6e593fbebcb6 + checksum: 10/675d41bfbfbfc3a7b6610757079ebaef82889165bb64eb223c02f187fc7120f40c5d33d7fe02a651d9b4865d3df3793c89dc90a5af17f39cac9628a93ab7a865 languageName: node linkType: hard -"@tanstack/router-generator@npm:^1.74.2": - version: 1.74.2 - resolution: "@tanstack/router-generator@npm:1.74.2" +"@tanstack/router-generator@npm:^1.78.3": + version: 1.79.0 + resolution: "@tanstack/router-generator@npm:1.79.0" dependencies: "@tanstack/virtual-file-routes": "npm:^1.64.0" prettier: "npm:^3.3.3" - tsx: "npm:^4.19.1" + tsx: "npm:^4.19.2" zod: "npm:^3.23.8" - checksum: 10/9a23870eaf657b78766f6250aa51c1462fbd72984a2176badd207a9c6532a89113081751250fe217e67c6c97ff7071d7864a454b0c6023a5c859fe3ab4142a29 + checksum: 10/2909f82fba00995bea2a3e16761847de2433a106bbdcdb234202674259abc40380996d9eb09f67a20b6c423b87f63428ad53c886aef0705d25a1aad9acd5a26e languageName: node linkType: hard -"@tanstack/router-plugin@npm:1.76.0": - version: 1.76.0 - resolution: "@tanstack/router-plugin@npm:1.76.0" +"@tanstack/router-plugin@npm:1.78.3": + version: 1.78.3 + resolution: "@tanstack/router-plugin@npm:1.78.3" dependencies: - "@babel/core": "npm:^7.25.8" - "@babel/generator": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.8" - "@babel/plugin-syntax-jsx": "npm:^7.25.7" - "@babel/plugin-syntax-typescript": "npm:^7.25.7" - "@babel/template": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.8" - "@tanstack/router-generator": "npm:^1.74.2" + "@babel/core": "npm:^7.26.0" + "@babel/generator": "npm:^7.26.0" + "@babel/parser": "npm:^7.26.1" + "@babel/plugin-syntax-jsx": "npm:^7.25.9" + "@babel/plugin-syntax-typescript": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + "@tanstack/router-generator": "npm:^1.78.3" "@tanstack/virtual-file-routes": "npm:^1.64.0" "@types/babel__core": "npm:^7.20.5" "@types/babel__generator": "npm:^7.6.8" @@ -8325,7 +7918,7 @@ __metadata: optional: true webpack: optional: true - checksum: 10/4876f7011f4614f9a07a263aa1c63b57038f48785f3423b8c534cd3e62101f01daa38b5df16487cd18b2a7e540d59558929892fd31cc0a9948b51d0094ad7e17 + checksum: 10/f1c8b293f205dbe8ed3d00e323044ecfc7dec7e7b41c79122a1ff6a1852cf5f2280f9f95167b9966b82c4c5ada4b7fee4ece5924004b424190d404afc29303e4 languageName: node linkType: hard @@ -8653,13 +8246,6 @@ __metadata: languageName: node linkType: hard -"@types/escodegen@npm:^0.0.6": - version: 0.0.6 - resolution: "@types/escodegen@npm:0.0.6" - checksum: 10/2e91554a47eb98076a3ba6e3548640e50b28a0f5b69134f99dd1e0ce5223c0a1726f23d25aafd40e4c7961d7c3c519782949aa606d58d0e7431c7fb1ec011c4c - languageName: node - linkType: hard - "@types/eslint-scope@npm:^3.7.7": version: 3.7.7 resolution: "@types/eslint-scope@npm:3.7.7" @@ -8705,13 +8291,6 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:^0.0.51": - version: 0.0.51 - resolution: "@types/estree@npm:0.0.51" - checksum: 10/b566c7a3fc8a81ca3d9e00a717e90b8f5d567e2476b4f6d76a20ec6da33ec28165b8f989ed8dd0c9df41405199777ec36a4f85f32a347fbc6c3f696a3128b6e7 - languageName: node - linkType: hard - "@types/express-serve-static-core@npm:*": version: 5.0.1 resolution: "@types/express-serve-static-core@npm:5.0.1" @@ -8746,7 +8325,7 @@ __metadata: languageName: node linkType: hard -"@types/express@npm:*, @types/express@npm:^4.17.13, @types/express@npm:^4.17.17, @types/express@npm:^4.17.21": +"@types/express@npm:*, @types/express@npm:^4.17.13, @types/express@npm:^4.17.17": version: 4.17.21 resolution: "@types/express@npm:4.17.21" dependencies: @@ -8770,13 +8349,6 @@ __metadata: languageName: node linkType: hard -"@types/find-cache-dir@npm:^3.2.1": - version: 3.2.1 - resolution: "@types/find-cache-dir@npm:3.2.1" - checksum: 10/bf5c4e96da40247cd9e6327f54dfccda961a0fb2d70e3c71bd05def94de4c2e6fb310fe8ecb0f04ecf5dbc52214e184b55a2337b0f87250d4ae1e2e7d58321e4 - languageName: node - linkType: hard - "@types/fs-extra@npm:^11.0.0": version: 11.0.4 resolution: "@types/fs-extra@npm:11.0.4" @@ -8984,13 +8556,6 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:^4.14.167": - version: 4.17.10 - resolution: "@types/lodash@npm:4.17.10" - checksum: 10/10fe24a93adc6048cb23e4135c1ed1d52cc39033682e6513f4f51b74a9af6d7a24fbea92203c22dc4e01e35f1ab3aa0fd0a2b487e8a4a2bbdf1fc05970094066 - languageName: node - linkType: hard - "@types/long@npm:^4.0.0": version: 4.0.1 resolution: "@types/long@npm:4.0.1" @@ -9079,7 +8644,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0, @types/node@npm:^22.0.0, @types/node@npm:^22.0.1": +"@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0, @types/node@npm:^22.0.1": version: 22.7.5 resolution: "@types/node@npm:22.7.5" dependencies: @@ -9223,7 +8788,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:18.3.12, @types/react@npm:^16.8.0 || ^17.0.0 || ^18.0.0": +"@types/react@npm:*, @types/react@npm:18.3.12": version: 18.3.12 resolution: "@types/react@npm:18.3.12" dependencies: @@ -9319,17 +8884,7 @@ __metadata: languageName: node linkType: hard -"@types/serve-static@npm:*": - version: 1.13.10 - resolution: "@types/serve-static@npm:1.13.10" - dependencies: - "@types/mime": "npm:^1" - "@types/node": "npm:*" - checksum: 10/62b4e79cb049a5ed81789e2cdd8b91e289eb03b08130c249d74c8fd6d32840cffc6b50384c1ccd2ef0ecf306fe1188634fd9a8bce4339acd4bcc19ed16b2a0c3 - languageName: node - linkType: hard - -"@types/serve-static@npm:^1.13.10": +"@types/serve-static@npm:*, @types/serve-static@npm:^1.13.10": version: 1.15.7 resolution: "@types/serve-static@npm:1.15.7" dependencies: @@ -9422,11 +8977,11 @@ __metadata: linkType: hard "@types/ws@npm:^8.0.0, @types/ws@npm:^8.5.5": - version: 8.5.12 - resolution: "@types/ws@npm:8.5.12" + version: 8.5.13 + resolution: "@types/ws@npm:8.5.13" dependencies: "@types/node": "npm:*" - checksum: 10/d8a3ddfb5ff8fea992a043113579d61ac1ea21e8464415af9e2b01b205ed19d817821ad64ca1b3a90062d1df1c23b0f586d8351d25ca6728844df99a74e8f76d + checksum: 10/21369beafa75c91ae3b00d3a2671c7408fceae1d492ca2abd5ac7c8c8bf4596d513c1599ebbddeae82c27c4a2d248976d0d714c4b3d34362b2ae35b964e2e637 languageName: node linkType: hard @@ -9446,15 +9001,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.11.0": - version: 8.11.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.11.0" +"@typescript-eslint/eslint-plugin@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/eslint-plugin@npm:8.12.2" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.11.0" - "@typescript-eslint/type-utils": "npm:8.11.0" - "@typescript-eslint/utils": "npm:8.11.0" - "@typescript-eslint/visitor-keys": "npm:8.11.0" + "@typescript-eslint/scope-manager": "npm:8.12.2" + "@typescript-eslint/type-utils": "npm:8.12.2" + "@typescript-eslint/utils": "npm:8.12.2" + "@typescript-eslint/visitor-keys": "npm:8.12.2" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -9465,66 +9020,66 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/637760a5ff072581c1725da28b82f64bb7f28859ca0a7123226a0d100ad7d3d222cac7838bccbffb97d64e38b668704469322de9ec2868fa43a44c1cb1e43bac + checksum: 10/3ba36240bdb1f278050bbde377d858e67511bf1de31a1ab9d99c5b560204e7d448c33d1487cd5eba9bfb823abff2eccf4532f42065cadad6772b68f91006ddc2 languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.11.0": - version: 8.11.0 - resolution: "@typescript-eslint/parser@npm:8.11.0" +"@typescript-eslint/parser@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/parser@npm:8.12.2" dependencies: - "@typescript-eslint/scope-manager": "npm:8.11.0" - "@typescript-eslint/types": "npm:8.11.0" - "@typescript-eslint/typescript-estree": "npm:8.11.0" - "@typescript-eslint/visitor-keys": "npm:8.11.0" + "@typescript-eslint/scope-manager": "npm:8.12.2" + "@typescript-eslint/types": "npm:8.12.2" + "@typescript-eslint/typescript-estree": "npm:8.12.2" + "@typescript-eslint/visitor-keys": "npm:8.12.2" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/518c70a61d79235b9ad744f1bc6313b389e1c947b3e104912d218d0e90cb03b8b2e4c7b7d8cf6348a840bbaff327dd8949961febf89bb5bf0f3c39b011adc5b6 + checksum: 10/257cfbe13bd1a3a2c83e0b3fd2d441a51181ffd57f2e98112217668383fc28de995bfca6d7c4d2c04c6347ee6a376fe1d87eb6ce60d7383cda1044626d794185 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.11.0": - version: 8.11.0 - resolution: "@typescript-eslint/scope-manager@npm:8.11.0" +"@typescript-eslint/scope-manager@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/scope-manager@npm:8.12.2" dependencies: - "@typescript-eslint/types": "npm:8.11.0" - "@typescript-eslint/visitor-keys": "npm:8.11.0" - checksum: 10/8f1e776fc0687f86cf7246c94098121224d0a69ffcaeb9a207b672889a4c42b94304664ed45d0b982c542bf7737bcec3649470d3db281b625a1e77736308ae37 + "@typescript-eslint/types": "npm:8.12.2" + "@typescript-eslint/visitor-keys": "npm:8.12.2" + checksum: 10/a2cd6ad4b31f4d0ca6f94c4df8a94bdee762abd556686817ab4143d80a27506f43fbf96769b44e698d573784a464bfd78e0cbc17ac61c36a868e02311c754ce1 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.11.0": - version: 8.11.0 - resolution: "@typescript-eslint/type-utils@npm:8.11.0" +"@typescript-eslint/type-utils@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/type-utils@npm:8.12.2" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.11.0" - "@typescript-eslint/utils": "npm:8.11.0" + "@typescript-eslint/typescript-estree": "npm:8.12.2" + "@typescript-eslint/utils": "npm:8.12.2" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10/6ac8b676b40aa1d984c098bdc4a68e2306283018bc1d27b17497b5550bd6579b4706a84ce3b2ed4fe6cf142d42b0e99f35530af1d2e66fc70f8ed0a145277ad0 + checksum: 10/3563ff938a3a9afa341ef2e38974147a1655c46328f0dcd1c46c3999428efd7f4b9c4b57018122a898be7b23c532b88b0b2baa14d9f6338da8efc8488bb24f96 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.11.0": - version: 8.11.0 - resolution: "@typescript-eslint/types@npm:8.11.0" - checksum: 10/424986bae7c48677a843ff2dee5cb0fed293f7bebd71803901c8fc80ddeed65e4857f77083f17775d0bfd6dab5092ef556f354e7420ea4fd6c7861d0368d002e +"@typescript-eslint/types@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/types@npm:8.12.2" + checksum: 10/57981e5fa45b03a0398ffb82418fdb716f476aa0b9c17d96edeb7fd3e3f4a720466868af7c2a02ddca65c27e70bfaff50c523b2a570582c4645a2702e17dc94a languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.11.0": - version: 8.11.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.11.0" +"@typescript-eslint/typescript-estree@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/typescript-estree@npm:8.12.2" dependencies: - "@typescript-eslint/types": "npm:8.11.0" - "@typescript-eslint/visitor-keys": "npm:8.11.0" + "@typescript-eslint/types": "npm:8.12.2" + "@typescript-eslint/visitor-keys": "npm:8.12.2" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -9534,31 +9089,31 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/cec7c5768c4e6cceb095fe8fbd57098d16d226a981143a335a62c6f30d8a1707974e86eeabe5ad33bfb4dd4eb582cba1d4f2e7cec65f71871d7d559ff9bec5f9 + checksum: 10/9995929ec4b66afa53d52c16f5cecd7c9aa45994f943c41e9ec91fe178593e83d9049ff056fe2638c3cf7da01476861eff0dc3cb76c314cc130458d3f828930d languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.11.0, @typescript-eslint/utils@npm:^8.8.1": - version: 8.11.0 - resolution: "@typescript-eslint/utils@npm:8.11.0" +"@typescript-eslint/utils@npm:8.12.2, @typescript-eslint/utils@npm:^8.8.1": + version: 8.12.2 + resolution: "@typescript-eslint/utils@npm:8.12.2" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.11.0" - "@typescript-eslint/types": "npm:8.11.0" - "@typescript-eslint/typescript-estree": "npm:8.11.0" + "@typescript-eslint/scope-manager": "npm:8.12.2" + "@typescript-eslint/types": "npm:8.12.2" + "@typescript-eslint/typescript-estree": "npm:8.12.2" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10/1b80312a15313b549ff5906da2189d0ad60abe9c6d02d65366156e00a97644e2af313ce3fb7424417b4b63b6de25a2dd8c2cf17ab8152fbd5d2a8ca3593a4df5 + checksum: 10/4588866ca43314692a0e685d8936c470dca4e6d119a4a1adefbc2fd54682ff081bc21d60bf4e8077d3668aa680bada851b88566264d09c92a840fe2e4feb331b languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.11.0": - version: 8.11.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.11.0" +"@typescript-eslint/visitor-keys@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/visitor-keys@npm:8.12.2" dependencies: - "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/types": "npm:8.12.2" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10/8d2bed15cc17c3de67414afb343a2b5974ab4120a9bb4759f3d42accbc3f247d14d3c824772da1d452b99fd42b3d9856c04fb836be50ffbff4aa7323eca197c6 + checksum: 10/42795ad1c71520a367e2b53c3511b6cf922dcee05d61f6b0ec56b71c0b89a58889e0c3282b1bb13befc69df07204d0e4e053436d0c2b808460ce310b58a2a92e languageName: node linkType: hard @@ -9614,29 +9169,29 @@ __metadata: languageName: node linkType: hard -"@vitest/coverage-v8@npm:2.1.3": - version: 2.1.3 - resolution: "@vitest/coverage-v8@npm:2.1.3" +"@vitest/coverage-v8@npm:2.1.4": + version: 2.1.4 + resolution: "@vitest/coverage-v8@npm:2.1.4" dependencies: "@ampproject/remapping": "npm:^2.3.0" "@bcoe/v8-coverage": "npm:^0.2.3" - debug: "npm:^4.3.6" + debug: "npm:^4.3.7" istanbul-lib-coverage: "npm:^3.2.2" istanbul-lib-report: "npm:^3.0.1" istanbul-lib-source-maps: "npm:^5.0.6" istanbul-reports: "npm:^3.1.7" - magic-string: "npm:^0.30.11" - magicast: "npm:^0.3.4" + magic-string: "npm:^0.30.12" + magicast: "npm:^0.3.5" std-env: "npm:^3.7.0" test-exclude: "npm:^7.0.1" tinyrainbow: "npm:^1.2.0" peerDependencies: - "@vitest/browser": 2.1.3 - vitest: 2.1.3 + "@vitest/browser": 2.1.4 + vitest: 2.1.4 peerDependenciesMeta: "@vitest/browser": optional: true - checksum: 10/3865db318e6448c6e267034a72141dfc49d79155a04573f1e565d0ddd98dd5cddbefb77b214265daaf13510a8497224ddbacc94371bd63e7c928036ad7993989 + checksum: 10/9f3ad103c63a1d0377a404ccdbdbd42a018f19d5bf57c2031bfd6fd6df4acd464a38e1a38ee4a2e6d3c282d6e1664dbb168f3986c01c294186f584af89b9eee9 languageName: node linkType: hard @@ -9652,35 +9207,34 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:2.1.3": - version: 2.1.3 - resolution: "@vitest/expect@npm:2.1.3" +"@vitest/expect@npm:2.1.4": + version: 2.1.4 + resolution: "@vitest/expect@npm:2.1.4" dependencies: - "@vitest/spy": "npm:2.1.3" - "@vitest/utils": "npm:2.1.3" - chai: "npm:^5.1.1" + "@vitest/spy": "npm:2.1.4" + "@vitest/utils": "npm:2.1.4" + chai: "npm:^5.1.2" tinyrainbow: "npm:^1.2.0" - checksum: 10/94e61e01f14cfcd9ced0e7ac1bbdeee55ff4bf68f09d8f244fd7d73f97b106f35d10cba3fe7a0132464c312206f2eee9e83b16a8d761101b61da053890062858 + checksum: 10/0b3806d39233843a9661f6d5ccde489c9b6d278426f889198a862d601dcc186f107398487374195eb0dae90c9f69628f3f216200d644f817fa25d64ae1bc537e languageName: node linkType: hard -"@vitest/mocker@npm:2.1.3": - version: 2.1.3 - resolution: "@vitest/mocker@npm:2.1.3" +"@vitest/mocker@npm:2.1.4": + version: 2.1.4 + resolution: "@vitest/mocker@npm:2.1.4" dependencies: - "@vitest/spy": "npm:2.1.3" + "@vitest/spy": "npm:2.1.4" estree-walker: "npm:^3.0.3" - magic-string: "npm:^0.30.11" + magic-string: "npm:^0.30.12" peerDependencies: - "@vitest/spy": 2.1.3 - msw: ^2.3.5 + msw: ^2.4.9 vite: ^5.0.0 peerDependenciesMeta: msw: optional: true vite: optional: true - checksum: 10/84be8830d6e965109730257d7a84b3d7594db0998ae55decdbfc304857c1c7d29b49f1f5b23f2addcbce1bd7e8bb33832407737a9bb3f95cb3bf7bb312db4d9d + checksum: 10/00f323cc184977b247a1f0b9c51fdcceb97377031d728c69ef0bd14ebf0256742a94c68c6caa90eb073ed3de4277febd7d54715508bff05bb2fb7767ce11afbe languageName: node linkType: hard @@ -9693,33 +9247,33 @@ __metadata: languageName: node linkType: hard -"@vitest/pretty-format@npm:2.1.3, @vitest/pretty-format@npm:^2.1.3": - version: 2.1.3 - resolution: "@vitest/pretty-format@npm:2.1.3" +"@vitest/pretty-format@npm:2.1.4, @vitest/pretty-format@npm:^2.1.4": + version: 2.1.4 + resolution: "@vitest/pretty-format@npm:2.1.4" dependencies: tinyrainbow: "npm:^1.2.0" - checksum: 10/d9382ee93f0f32e2ef8fe03bda818e5277f052a50ddb05b6a6cf0864b2ccb228484f12f130c05faf62dc2140292ffafc213f2941b0fa24058b3ee2943daa286c + checksum: 10/434e6a7903f72a3796f26516ad728aca92724909e18fd3f2cd4b9b8b0ae2cc7b4cd86e92ab9f2ac7bc005c7a7ef0bcb9d768c0264b4b0625f1f0748cc615f1f6 languageName: node linkType: hard -"@vitest/runner@npm:2.1.3": - version: 2.1.3 - resolution: "@vitest/runner@npm:2.1.3" +"@vitest/runner@npm:2.1.4": + version: 2.1.4 + resolution: "@vitest/runner@npm:2.1.4" dependencies: - "@vitest/utils": "npm:2.1.3" + "@vitest/utils": "npm:2.1.4" pathe: "npm:^1.1.2" - checksum: 10/cdf9b82d388c1cc148753f4a8632dfcadf9c4a1c0e065fdcd485d5af824af62507fd7eab9efb21244009775c05773ccb59547043af522a5ab6d216433321066e + checksum: 10/51dbea968ace6edefb058d88c9736fa524a64f4dc750ec163b43f5015a31b31f2d80a7b20de4c2a819fbfb172162ad4d0f8428c78fa7ca832c1a1b135161ac4b languageName: node linkType: hard -"@vitest/snapshot@npm:2.1.3": - version: 2.1.3 - resolution: "@vitest/snapshot@npm:2.1.3" +"@vitest/snapshot@npm:2.1.4": + version: 2.1.4 + resolution: "@vitest/snapshot@npm:2.1.4" dependencies: - "@vitest/pretty-format": "npm:2.1.3" - magic-string: "npm:^0.30.11" + "@vitest/pretty-format": "npm:2.1.4" + magic-string: "npm:^0.30.12" pathe: "npm:^1.1.2" - checksum: 10/2c0c4ad8abb758f2f76d1d6094f8928360437e09d0a59e0c6a85a544c892cc41a5324ebbc5657a66c8a3793e51cbf58e357c7f71e899f4e5c5eb76e8c9745abf + checksum: 10/785f74cf5f7745eb0dcb73fe3c628bc1f687c6341e8ba63d722fa83609d21465302ebd208405b9f91ce87fb36720a0f361c949983d5caccbcb8ec2119f995483 languageName: node linkType: hard @@ -9732,12 +9286,12 @@ __metadata: languageName: node linkType: hard -"@vitest/spy@npm:2.1.3": - version: 2.1.3 - resolution: "@vitest/spy@npm:2.1.3" +"@vitest/spy@npm:2.1.4": + version: 2.1.4 + resolution: "@vitest/spy@npm:2.1.4" dependencies: - tinyspy: "npm:^3.0.0" - checksum: 10/94d6f1bc34da5d0c973d9382c133b938e555fcf2d238edf0aaad3de1a98dd57ebf7c104ba229c6beec48122d2e6f55386d8d2cf96a5804dc95ac683a54754cc7 + tinyspy: "npm:^3.0.2" + checksum: 10/4dd3e7c28928abb047c567b3711d1cbccd59aaae294c57efaab83cdd723b568882de5376fc086c919a4cb6d1df5e6cc0502b3171cce06dfce87863c731fd5d36 languageName: node linkType: hard @@ -9753,14 +9307,14 @@ __metadata: languageName: node linkType: hard -"@vitest/utils@npm:2.1.3, @vitest/utils@npm:^2.0.5": - version: 2.1.3 - resolution: "@vitest/utils@npm:2.1.3" +"@vitest/utils@npm:2.1.4, @vitest/utils@npm:^2.1.1": + version: 2.1.4 + resolution: "@vitest/utils@npm:2.1.4" dependencies: - "@vitest/pretty-format": "npm:2.1.3" - loupe: "npm:^3.1.1" + "@vitest/pretty-format": "npm:2.1.4" + loupe: "npm:^3.1.2" tinyrainbow: "npm:^1.2.0" - checksum: 10/f064e6634cb84c925a17d8937df7441d150c3e24fa5bbd6304151d11dab6cdeb0cb3d5a95a9aacb8b416c87fb0d9aa8c6b9cc5e174191784231e8345948d6d18 + checksum: 10/aaaf5310943abca0f0080d9638e67838f7e519d5670ec32e61184915efdfa5ec61d9b495cad6cb7dc492e8caeed14593e78dda77c8ea59c1671a231661f57142 languageName: node linkType: hard @@ -10013,7 +9567,7 @@ __metadata: languageName: node linkType: hard -"acorn-jsx@npm:^5.0.0, acorn-jsx@npm:^5.3.1, acorn-jsx@npm:^5.3.2": +"acorn-jsx@npm:^5.0.0, acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" peerDependencies: @@ -10022,14 +9576,14 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^7.1.1, acorn-walk@npm:^7.2.0": +"acorn-walk@npm:^7.1.1": version: 7.2.0 resolution: "acorn-walk@npm:7.2.0" checksum: 10/4d3e186f729474aed3bc3d0df44692f2010c726582655b20a23347bef650867655521c48ada444cb4fda241ee713dcb792da363ec74c6282fa884fb7144171bb languageName: node linkType: hard -"acorn-walk@npm:^8.0.0": +"acorn-walk@npm:^8.0.0, acorn-walk@npm:^8.1.1": version: 8.3.4 resolution: "acorn-walk@npm:8.3.4" dependencies: @@ -10038,14 +9592,7 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.1.1": - version: 8.2.0 - resolution: "acorn-walk@npm:8.2.0" - checksum: 10/e69f7234f2adfeb16db3671429a7c80894105bd7534cb2032acf01bb26e6a847952d11a062d071420b43f8d82e33d2e57f26fe87d9cce0853e8143d8910ff1de - languageName: node - linkType: hard - -"acorn@npm:^7.1.1, acorn@npm:^7.4.1": +"acorn@npm:^7.1.1": version: 7.4.1 resolution: "acorn@npm:7.4.1" bin: @@ -10054,7 +9601,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.11.0, acorn@npm:^8.12.0, acorn@npm:^8.12.1, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.8.2": +"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.11.0, acorn@npm:^8.12.1, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.8.2": version: 8.14.0 resolution: "acorn@npm:8.14.0" bin: @@ -10155,7 +9702,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.0, ajv@npm:^8.9.0": +"ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.9.0": version: 8.17.1 resolution: "ajv@npm:8.17.1" dependencies: @@ -10167,18 +9714,6 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.11.0": - version: 8.12.0 - resolution: "ajv@npm:8.12.0" - dependencies: - fast-deep-equal: "npm:^3.1.1" - json-schema-traverse: "npm:^1.0.0" - require-from-string: "npm:^2.0.2" - uri-js: "npm:^4.2.2" - checksum: 10/b406f3b79b5756ac53bfe2c20852471b08e122bc1ee4cde08ae4d6a800574d9cd78d60c81c69c63ff81e4da7cd0b638fafbb2303ae580d49cf1600b9059efb85 - languageName: node - linkType: hard - "algoliasearch-helper@npm:^3.13.3": version: 3.22.5 resolution: "algoliasearch-helper@npm:3.22.5" @@ -10289,15 +9824,6 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: "npm:^1.9.0" - checksum: 10/d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 - languageName: node - linkType: hard - "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" @@ -10321,9 +9847,9 @@ __metadata: languageName: node linkType: hard -"antd@npm:5.21.5, antd@npm:^5.0.0": - version: 5.21.5 - resolution: "antd@npm:5.21.5" +"antd@npm:5.21.6, antd@npm:^5.0.0": + version: 5.21.6 + resolution: "antd@npm:5.21.6" dependencies: "@ant-design/colors": "npm:^7.1.0" "@ant-design/cssinjs": "npm:^1.21.1" @@ -10377,7 +9903,7 @@ __metadata: peerDependencies: react: ">=16.9.0" react-dom: ">=16.9.0" - checksum: 10/3e8142d316f4bc3af90f391b29582a2a6fa99ef244fa7e7d495685f2561f92900b52de01c482f0779a1d8ae838b2eb41ec54130d0ab7f4fd75dfc325e887ea7a + checksum: 10/e4db2fde990262ff835c7ffb4308a190e1dc5d2a6def624211475d7eab88cfefa207eef45bf9babb386f635c08bac56d0a199b25279c61b8f69e29875ea11867 languageName: node linkType: hard @@ -11263,16 +10789,7 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: "npm:^7.0.1" - checksum: 10/966b1fb48d193b9d155f810e5efd1790962f2c4e0829f8440b8ad236ba009222c501f70185ef732fef17a4c490bb33a03b90dab0631feafbdf447da91e8165b1 - languageName: node - linkType: hard - -"braces@npm:^3.0.3": +"braces@npm:^3.0.3, braces@npm:~3.0.2": version: 3.0.3 resolution: "braces@npm:3.0.3" dependencies: @@ -11302,7 +10819,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.18.1, browserslist@npm:^4.23.0, browserslist@npm:^4.23.3, browserslist@npm:^4.24.2": +"browserslist@npm:^4.0.0, browserslist@npm:^4.18.1, browserslist@npm:^4.23.0, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0, browserslist@npm:^4.24.2": version: 4.24.2 resolution: "browserslist@npm:4.24.2" dependencies: @@ -11316,20 +10833,6 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.24.0": - version: 4.24.0 - resolution: "browserslist@npm:4.24.0" - dependencies: - caniuse-lite: "npm:^1.0.30001663" - electron-to-chromium: "npm:^1.5.28" - node-releases: "npm:^2.0.18" - update-browserslist-db: "npm:^1.1.0" - bin: - browserslist: cli.js - checksum: 10/26c1b8ba257a0b51b102080ba9d42945af2abaa8c4cf6da21cd47b3f123fc1e81640203b293214356c2c17d9d265bb3a5ed428b6d302f383576dd6ce8fd5036c - languageName: node - linkType: hard - "bs-logger@npm:^0.2.6": version: 0.2.6 resolution: "bs-logger@npm:0.2.6" @@ -11571,13 +11074,6 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001663": - version: 1.0.30001666 - resolution: "caniuse-lite@npm:1.0.30001666" - checksum: 10/c3b5a85f658d140ba53f6e99ee824935194c78effd6f3b7e62c2c0d17f8886a12f5d4ce775f8faf7172f8373fffef713ecfbef2702beb053d558e92d47844b10 - languageName: node - linkType: hard - "canvas-renderer@npm:~2.2.0": version: 2.2.0 resolution: "canvas-renderer@npm:2.2.0" @@ -11605,27 +11101,16 @@ __metadata: languageName: node linkType: hard -"chai@npm:^5.1.1": - version: 5.1.1 - resolution: "chai@npm:5.1.1" +"chai@npm:^5.1.1, chai@npm:^5.1.2": + version: 5.1.2 + resolution: "chai@npm:5.1.2" dependencies: assertion-error: "npm:^2.0.1" check-error: "npm:^2.1.1" deep-eql: "npm:^5.0.1" loupe: "npm:^3.1.0" pathval: "npm:^2.0.0" - checksum: 10/ee67279a5613bd36dc1dc13660042429ae2f1dc5a9030a6abcf381345866dfb5bce7bc10b9d74c8de86b6f656489f654bbbef3f3361e06925591e6a00c72afff - languageName: node - linkType: hard - -"chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: "npm:^3.2.1" - escape-string-regexp: "npm:^1.0.5" - supports-color: "npm:^5.3.0" - checksum: 10/3d1d103433166f6bfe82ac75724951b33769675252d8417317363ef9d54699b7c3b2d46671b772b893a8e50c3ece70c4b933c73c01e81bc60ea4df9b55afa303 + checksum: 10/e8c2bbc83cb5a2f87130d93056d4cfbbe04106e12aa798b504816dbe3fa538a9f68541b472e56cbf0f54558b501d7e31867d74b8218abcd5a8cc8ba536fba46c languageName: node linkType: hard @@ -11812,28 +11297,9 @@ __metadata: languageName: node linkType: hard -"chromatic@npm:11.15.0": - version: 11.15.0 - resolution: "chromatic@npm:11.15.0" - peerDependencies: - "@chromatic-com/cypress": ^0.*.* || ^1.0.0 - "@chromatic-com/playwright": ^0.*.* || ^1.0.0 - peerDependenciesMeta: - "@chromatic-com/cypress": - optional: true - "@chromatic-com/playwright": - optional: true - bin: - chroma: dist/bin.js - chromatic: dist/bin.js - chromatic-cli: dist/bin.js - checksum: 10/3d4b5702d562158b3a5144c23939dd49713d13d6437d76b77b37eed7cbaf32e15c8d67599bf82b4cfd75eb9cddced9cef15289c57a97a127a6b52e2aa26cfaa5 - languageName: node - linkType: hard - -"chromatic@npm:^11.15.0": - version: 11.16.1 - resolution: "chromatic@npm:11.16.1" +"chromatic@npm:11.16.3, chromatic@npm:^11.15.0": + version: 11.16.3 + resolution: "chromatic@npm:11.16.3" peerDependencies: "@chromatic-com/cypress": ^0.*.* || ^1.0.0 "@chromatic-com/playwright": ^0.*.* || ^1.0.0 @@ -11846,7 +11312,7 @@ __metadata: chroma: dist/bin.js chromatic: dist/bin.js chromatic-cli: dist/bin.js - checksum: 10/80d4d5db4de56566a1e9bf492a5599c47afc8594f7c74e55d030e05efa875bb000cea1872f566c8ac8c540c2f75db8c8278322edada134db4db0b1a75ca0a21e + checksum: 10/353bc806d3943a85b71a7778d030c91bb2a63f3740e1ec956d04383154008e107713ca12447e76c343a034bd80ee5b625d237b07c7166228521f70a84f14763d languageName: node linkType: hard @@ -12061,15 +11527,6 @@ __metadata: languageName: node linkType: hard -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: "npm:1.1.3" - checksum: 10/ffa319025045f2973919d155f25e7c00d08836b6b33ea2d205418c59bd63a665d713c52d9737a9e0fe467fb194b40fbef1d849bae80d674568ee220a31ef3d10 - languageName: node - linkType: hard - "color-convert@npm:^2.0.1": version: 2.0.1 resolution: "color-convert@npm:2.0.1" @@ -12079,13 +11536,6 @@ __metadata: languageName: node linkType: hard -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 10/09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d - languageName: node - linkType: hard - "color-name@npm:1.1.4, color-name@npm:^1.0.0, color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" @@ -12243,13 +11693,6 @@ __metadata: languageName: node linkType: hard -"commondir@npm:^1.0.1": - version: 1.0.1 - resolution: "commondir@npm:1.0.1" - checksum: 10/4620bc4936a4ef12ce7dfcd272bb23a99f2ad68889a4e4ad766c9f8ad21af982511934d6f7050d4a8bde90011b1c15d56e61a1b4576d9913efbf697a20172d6c - languageName: node - linkType: hard - "compare-func@npm:^2.0.0": version: 2.0.0 resolution: "compare-func@npm:2.0.0" @@ -13021,7 +12464,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.6": +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.7": version: 4.3.7 resolution: "debug@npm:4.3.7" dependencies: @@ -13133,14 +12576,7 @@ __metadata: languageName: node linkType: hard -"deepmerge@npm:^4.2.2": - version: 4.2.2 - resolution: "deepmerge@npm:4.2.2" - checksum: 10/0e58ed14f530d08f9b996cfc3a41b0801691620235bc5e1883260e3ed1c1b4a1dfb59f865770e45d5dfb1d7ee108c4fc10c2f85e822989d4123490ea90be2545 - languageName: node - linkType: hard - -"deepmerge@npm:^4.3.1": +"deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.1": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" checksum: 10/058d9e1b0ff1a154468bf3837aea436abcfea1ba1d165ddaaf48ca93765fdd01a30d33c36173da8fbbed951dd0a267602bc782fe288b0fc4b7e1e7091afc4529 @@ -13650,13 +13086,6 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.28": - version: 1.5.32 - resolution: "electron-to-chromium@npm:1.5.32" - checksum: 10/906b852f67e9de0a5f643085570f7383c5bb28b28b1dd0916bdc55d24d8a2238eb61c26db51a766630993e4c55fb7bbf6551b0ae570751fec2503eb592611c89 - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.5.41": version: 1.5.50 resolution: "electron-to-chromium@npm:1.5.50" @@ -13755,20 +13184,13 @@ __metadata: languageName: node linkType: hard -"entities@npm:^4.2.0": +"entities@npm:^4.2.0, entities@npm:^4.4.0": version: 4.5.0 resolution: "entities@npm:4.5.0" checksum: 10/ede2a35c9bce1aeccd055a1b445d41c75a14a2bb1cd22e242f20cf04d236cdcd7f9c859eb83f76885327bfae0c25bf03303665ee1ce3d47c5927b98b0e3e3d48 languageName: node linkType: hard -"entities@npm:^4.4.0": - version: 4.4.0 - resolution: "entities@npm:4.4.0" - checksum: 10/b627cb900e901cc7817037b83bf993a1cbf6a64850540f7526af7bcf9c7d09ebc671198e6182cfae4680f733799e2852e6a1c46aa62ff36eb99680057a038df5 - languageName: node - linkType: hard - "env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -13904,7 +13326,7 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0": +"es-module-lexer@npm:^1.2.1": version: 1.5.4 resolution: "es-module-lexer@npm:1.5.4" checksum: 10/f29c7c97a58eb17640dcbd71bd6ef754ad4f58f95c3073894573d29dae2cad43ecd2060d97ed5b866dfb7804d5590fb7de1d2c5339a5fceae8bd60b580387fc5 @@ -13998,34 +13420,116 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0, esbuild@npm:~0.23.0": - version: 0.23.1 - resolution: "esbuild@npm:0.23.1" +"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0": + version: 0.24.0 + resolution: "esbuild@npm:0.24.0" + dependencies: + "@esbuild/aix-ppc64": "npm:0.24.0" + "@esbuild/android-arm": "npm:0.24.0" + "@esbuild/android-arm64": "npm:0.24.0" + "@esbuild/android-x64": "npm:0.24.0" + "@esbuild/darwin-arm64": "npm:0.24.0" + "@esbuild/darwin-x64": "npm:0.24.0" + "@esbuild/freebsd-arm64": "npm:0.24.0" + "@esbuild/freebsd-x64": "npm:0.24.0" + "@esbuild/linux-arm": "npm:0.24.0" + "@esbuild/linux-arm64": "npm:0.24.0" + "@esbuild/linux-ia32": "npm:0.24.0" + "@esbuild/linux-loong64": "npm:0.24.0" + "@esbuild/linux-mips64el": "npm:0.24.0" + "@esbuild/linux-ppc64": "npm:0.24.0" + "@esbuild/linux-riscv64": "npm:0.24.0" + "@esbuild/linux-s390x": "npm:0.24.0" + "@esbuild/linux-x64": "npm:0.24.0" + "@esbuild/netbsd-x64": "npm:0.24.0" + "@esbuild/openbsd-arm64": "npm:0.24.0" + "@esbuild/openbsd-x64": "npm:0.24.0" + "@esbuild/sunos-x64": "npm:0.24.0" + "@esbuild/win32-arm64": "npm:0.24.0" + "@esbuild/win32-ia32": "npm:0.24.0" + "@esbuild/win32-x64": "npm:0.24.0" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10/500f83a1216d6548053007b85c070d8293395db344605b17418c6cf1217e5e8d338fa77fc8af27c23faa121c5528e5b0004d46d3a0cdeb87d48f1b5fa0164bc5 + languageName: node + linkType: hard + +"esbuild@npm:^0.21.3": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" dependencies: - "@esbuild/aix-ppc64": "npm:0.23.1" - "@esbuild/android-arm": "npm:0.23.1" - "@esbuild/android-arm64": "npm:0.23.1" - "@esbuild/android-x64": "npm:0.23.1" - "@esbuild/darwin-arm64": "npm:0.23.1" - "@esbuild/darwin-x64": "npm:0.23.1" - "@esbuild/freebsd-arm64": "npm:0.23.1" - "@esbuild/freebsd-x64": "npm:0.23.1" - "@esbuild/linux-arm": "npm:0.23.1" - "@esbuild/linux-arm64": "npm:0.23.1" - "@esbuild/linux-ia32": "npm:0.23.1" - "@esbuild/linux-loong64": "npm:0.23.1" - "@esbuild/linux-mips64el": "npm:0.23.1" - "@esbuild/linux-ppc64": "npm:0.23.1" - "@esbuild/linux-riscv64": "npm:0.23.1" - "@esbuild/linux-s390x": "npm:0.23.1" - "@esbuild/linux-x64": "npm:0.23.1" - "@esbuild/netbsd-x64": "npm:0.23.1" - "@esbuild/openbsd-arm64": "npm:0.23.1" - "@esbuild/openbsd-x64": "npm:0.23.1" - "@esbuild/sunos-x64": "npm:0.23.1" - "@esbuild/win32-arm64": "npm:0.23.1" - "@esbuild/win32-ia32": "npm:0.23.1" - "@esbuild/win32-x64": "npm:0.23.1" + "@esbuild/aix-ppc64": "npm:0.21.5" + "@esbuild/android-arm": "npm:0.21.5" + "@esbuild/android-arm64": "npm:0.21.5" + "@esbuild/android-x64": "npm:0.21.5" + "@esbuild/darwin-arm64": "npm:0.21.5" + "@esbuild/darwin-x64": "npm:0.21.5" + "@esbuild/freebsd-arm64": "npm:0.21.5" + "@esbuild/freebsd-x64": "npm:0.21.5" + "@esbuild/linux-arm": "npm:0.21.5" + "@esbuild/linux-arm64": "npm:0.21.5" + "@esbuild/linux-ia32": "npm:0.21.5" + "@esbuild/linux-loong64": "npm:0.21.5" + "@esbuild/linux-mips64el": "npm:0.21.5" + "@esbuild/linux-ppc64": "npm:0.21.5" + "@esbuild/linux-riscv64": "npm:0.21.5" + "@esbuild/linux-s390x": "npm:0.21.5" + "@esbuild/linux-x64": "npm:0.21.5" + "@esbuild/netbsd-x64": "npm:0.21.5" + "@esbuild/openbsd-x64": "npm:0.21.5" + "@esbuild/sunos-x64": "npm:0.21.5" + "@esbuild/win32-arm64": "npm:0.21.5" + "@esbuild/win32-ia32": "npm:0.21.5" + "@esbuild/win32-x64": "npm:0.21.5" dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -14063,8 +13567,6 @@ __metadata: optional: true "@esbuild/netbsd-x64": optional: true - "@esbuild/openbsd-arm64": - optional: true "@esbuild/openbsd-x64": optional: true "@esbuild/sunos-x64": @@ -14077,37 +13579,38 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 10/f55fbd0bfb0f86ce67a6d2c6f6780729d536c330999ecb9f5a38d578fb9fda820acbbc67d6d1d377eed8fed50fc38f14ff9cb014f86dafab94269a7fb2177018 + checksum: 10/d2ff2ca84d30cce8e871517374d6c2290835380dc7cd413b2d49189ed170d45e407be14de2cb4794cf76f75cf89955c4714726ebd3de7444b3046f5cab23ab6b languageName: node linkType: hard -"esbuild@npm:^0.21.3": - version: 0.21.5 - resolution: "esbuild@npm:0.21.5" +"esbuild@npm:~0.23.0": + version: 0.23.1 + resolution: "esbuild@npm:0.23.1" dependencies: - "@esbuild/aix-ppc64": "npm:0.21.5" - "@esbuild/android-arm": "npm:0.21.5" - "@esbuild/android-arm64": "npm:0.21.5" - "@esbuild/android-x64": "npm:0.21.5" - "@esbuild/darwin-arm64": "npm:0.21.5" - "@esbuild/darwin-x64": "npm:0.21.5" - "@esbuild/freebsd-arm64": "npm:0.21.5" - "@esbuild/freebsd-x64": "npm:0.21.5" - "@esbuild/linux-arm": "npm:0.21.5" - "@esbuild/linux-arm64": "npm:0.21.5" - "@esbuild/linux-ia32": "npm:0.21.5" - "@esbuild/linux-loong64": "npm:0.21.5" - "@esbuild/linux-mips64el": "npm:0.21.5" - "@esbuild/linux-ppc64": "npm:0.21.5" - "@esbuild/linux-riscv64": "npm:0.21.5" - "@esbuild/linux-s390x": "npm:0.21.5" - "@esbuild/linux-x64": "npm:0.21.5" - "@esbuild/netbsd-x64": "npm:0.21.5" - "@esbuild/openbsd-x64": "npm:0.21.5" - "@esbuild/sunos-x64": "npm:0.21.5" - "@esbuild/win32-arm64": "npm:0.21.5" - "@esbuild/win32-ia32": "npm:0.21.5" - "@esbuild/win32-x64": "npm:0.21.5" + "@esbuild/aix-ppc64": "npm:0.23.1" + "@esbuild/android-arm": "npm:0.23.1" + "@esbuild/android-arm64": "npm:0.23.1" + "@esbuild/android-x64": "npm:0.23.1" + "@esbuild/darwin-arm64": "npm:0.23.1" + "@esbuild/darwin-x64": "npm:0.23.1" + "@esbuild/freebsd-arm64": "npm:0.23.1" + "@esbuild/freebsd-x64": "npm:0.23.1" + "@esbuild/linux-arm": "npm:0.23.1" + "@esbuild/linux-arm64": "npm:0.23.1" + "@esbuild/linux-ia32": "npm:0.23.1" + "@esbuild/linux-loong64": "npm:0.23.1" + "@esbuild/linux-mips64el": "npm:0.23.1" + "@esbuild/linux-ppc64": "npm:0.23.1" + "@esbuild/linux-riscv64": "npm:0.23.1" + "@esbuild/linux-s390x": "npm:0.23.1" + "@esbuild/linux-x64": "npm:0.23.1" + "@esbuild/netbsd-x64": "npm:0.23.1" + "@esbuild/openbsd-arm64": "npm:0.23.1" + "@esbuild/openbsd-x64": "npm:0.23.1" + "@esbuild/sunos-x64": "npm:0.23.1" + "@esbuild/win32-arm64": "npm:0.23.1" + "@esbuild/win32-ia32": "npm:0.23.1" + "@esbuild/win32-x64": "npm:0.23.1" dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -14145,6 +13648,8 @@ __metadata: optional: true "@esbuild/netbsd-x64": optional: true + "@esbuild/openbsd-arm64": + optional: true "@esbuild/openbsd-x64": optional: true "@esbuild/sunos-x64": @@ -14157,7 +13662,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 10/d2ff2ca84d30cce8e871517374d6c2290835380dc7cd413b2d49189ed170d45e407be14de2cb4794cf76f75cf89955c4714726ebd3de7444b3046f5cab23ab6b + checksum: 10/f55fbd0bfb0f86ce67a6d2c6f6780729d536c330999ecb9f5a38d578fb9fda820acbbc67d6d1d377eed8fed50fc38f14ff9cb014f86dafab94269a7fb2177018 languageName: node linkType: hard @@ -14210,7 +13715,7 @@ __metadata: languageName: node linkType: hard -"escodegen@npm:^2.0.0, escodegen@npm:^2.1.0": +"escodegen@npm:^2.0.0": version: 2.1.0 resolution: "escodegen@npm:2.1.0" dependencies: @@ -14337,16 +13842,16 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-storybook@npm:0.10.1": - version: 0.10.1 - resolution: "eslint-plugin-storybook@npm:0.10.1" +"eslint-plugin-storybook@npm:0.10.2": + version: 0.10.2 + resolution: "eslint-plugin-storybook@npm:0.10.2" dependencies: "@storybook/csf": "npm:^0.1.11" "@typescript-eslint/utils": "npm:^8.8.1" ts-dedent: "npm:^2.2.0" peerDependencies: eslint: ">=6" - checksum: 10/1a388bec1b0a00681f0557ce6d8a704acf193ce852356798c84edaaf8b4334e2c445b662ec5ce6e0ff4334434c30ec6bc75d329a46b23f9de3a675253fb44e50 + checksum: 10/b32de04ebe653ac6a3afb3f1b4d2aa78a204a4a6871e6fd916d2538925993fc307b7dfd83921eed7e35627d9dff350f05f2b51b79b03122ab6d41e3dee0735a3 languageName: node linkType: hard @@ -14360,13 +13865,13 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^8.1.0": - version: 8.1.0 - resolution: "eslint-scope@npm:8.1.0" +"eslint-scope@npm:^8.2.0": + version: 8.2.0 + resolution: "eslint-scope@npm:8.2.0" dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 10/4c34a12fbeb0677822a9e93e81f2027e39e6f27557c17bc1e5ff76debbd41e748c3673517561792bda9e276245f89fbfd9b0b24fcec3b33a04ee2196729b3489 + checksum: 10/cd9ab60d5a68f3a0fcac04d1cff5a7383d0f331964d5f1c446259123caec5b3ccc542284d07846e4f4d1389da77750821cc9a6e1ce18558c674977351666f9a6 languageName: node linkType: hard @@ -14377,27 +13882,27 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^4.1.0": - version: 4.1.0 - resolution: "eslint-visitor-keys@npm:4.1.0" - checksum: 10/3fb5bd1b2f36db89d0ac57ddd66d36ccd3b1e3cddb2a55a0f9f6f1c85268cfcc1cc32e7eda4990e3423107a120dd254fb6cb52d6154cf81d344d8c3fa671f7c2 +"eslint-visitor-keys@npm:^4.2.0": + version: 4.2.0 + resolution: "eslint-visitor-keys@npm:4.2.0" + checksum: 10/9651b3356b01760e586b4c631c5268c0e1a85236e3292bf754f0472f465bf9a856c0ddc261fceace155334118c0151778effafbab981413dbf9288349343fa25 languageName: node linkType: hard -"eslint@npm:9.13.0": - version: 9.13.0 - resolution: "eslint@npm:9.13.0" +"eslint@npm:9.14.0": + version: 9.14.0 + resolution: "eslint@npm:9.14.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" - "@eslint-community/regexpp": "npm:^4.11.0" + "@eslint-community/regexpp": "npm:^4.12.1" "@eslint/config-array": "npm:^0.18.0" "@eslint/core": "npm:^0.7.0" "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.13.0" + "@eslint/js": "npm:9.14.0" "@eslint/plugin-kit": "npm:^0.2.0" - "@humanfs/node": "npm:^0.16.5" + "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" - "@humanwhocodes/retry": "npm:^0.3.1" + "@humanwhocodes/retry": "npm:^0.4.0" "@types/estree": "npm:^1.0.6" "@types/json-schema": "npm:^7.0.15" ajv: "npm:^6.12.4" @@ -14405,9 +13910,9 @@ __metadata: cross-spawn: "npm:^7.0.2" debug: "npm:^4.3.2" escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^8.1.0" - eslint-visitor-keys: "npm:^4.1.0" - espree: "npm:^10.2.0" + eslint-scope: "npm:^8.2.0" + eslint-visitor-keys: "npm:^4.2.0" + espree: "npm:^10.3.0" esquery: "npm:^1.5.0" esutils: "npm:^2.0.2" fast-deep-equal: "npm:^3.1.3" @@ -14430,7 +13935,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10/4342cc24a8d73581676f1b4959c2ddac18ed169731d9c55b708d2eacfc066ed5bdbc2c3c129e1f70142f0704bc25884a1a9ae580e15be5921f9c7f7d0f3ebe68 + checksum: 10/6ce59dda56ecff9483c6e8cd28e91138d2c43cbf08c923f731f507fd9b4aba9d72761c99882dc313a72ea915a5e380ab0b4f01e208a7a37d71490ddfd29ee063 languageName: node linkType: hard @@ -14441,14 +13946,14 @@ __metadata: languageName: node linkType: hard -"espree@npm:^10.0.1, espree@npm:^10.2.0": - version: 10.2.0 - resolution: "espree@npm:10.2.0" +"espree@npm:^10.0.1, espree@npm:^10.3.0": + version: 10.3.0 + resolution: "espree@npm:10.3.0" dependencies: - acorn: "npm:^8.12.0" + acorn: "npm:^8.14.0" acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^4.1.0" - checksum: 10/365076a963ca84244c1e2d36e4f812362d21cfa7e7df10d67f7b82b759467796df81184721d153c4e235d9ef5eb5b4d044167dd66be3be00f53a21a515b1bfb1 + eslint-visitor-keys: "npm:^4.2.0" + checksum: 10/3412d44d4204c9e29d6b5dd0277400cfa0cd68495dc09eae1b9ce79d0c8985c1c5cc09cb9ba32a1cd963f48a49b0c46bdb7736afe395a300aa6bb1c0d86837e8 languageName: node linkType: hard @@ -14668,6 +14173,13 @@ __metadata: languageName: node linkType: hard +"expect-type@npm:^1.1.0": + version: 1.1.0 + resolution: "expect-type@npm:1.1.0" + checksum: 10/05fca80ddc7d493a89361f783c6b000750fa04a8226bc24701f3b90adb0efc2fb467f2a0baaed4015a02d8b9034ef5bb87521df9dba980f50b1105bd596ef833 + languageName: node + linkType: hard + "expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" @@ -14681,7 +14193,7 @@ __metadata: languageName: node linkType: hard -"express@npm:^4.17.1, express@npm:^4.17.3, express@npm:^4.19.2": +"express@npm:^4.17.1, express@npm:^4.17.3": version: 4.21.1 resolution: "express@npm:4.21.1" dependencies: @@ -14761,12 +14273,12 @@ __metadata: languageName: node linkType: hard -"fast-check@npm:3.22.0": - version: 3.22.0 - resolution: "fast-check@npm:3.22.0" +"fast-check@npm:3.23.1": + version: 3.23.1 + resolution: "fast-check@npm:3.23.1" dependencies: pure-rand: "npm:^6.1.0" - checksum: 10/26ae7cc228fcd9759124db10cbbc01efff730bcdc848544ec7c3a533b9d88dec88d2a4a79da0ea4eb1ec78611dc6576f06f3fa5f8ff7126ad2eecf5ce3da57c6 + checksum: 10/03720c2d4adf02701a2e974b83d6439477851a6524c5980df0870dc0032f0200cc5e157f47641afa79dc42733b05058f2333df54291d5ac39d108d317a62e6c0 languageName: node linkType: hard @@ -15012,15 +14524,6 @@ __metadata: languageName: node linkType: hard -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: "npm:^5.0.1" - checksum: 10/e260f7592fd196b4421504d3597cc76f4a1ca7a9488260d533b611fc3cefd61e9a9be1417cb82d3b01ad9f9c0ff2dbf258e1026d2445e26b0cf5148ff4250429 - languageName: node - linkType: hard - "fill-range@npm:^7.1.1": version: 7.1.1 resolution: "fill-range@npm:7.1.1" @@ -15045,17 +14548,6 @@ __metadata: languageName: node linkType: hard -"find-cache-dir@npm:^3.0.0": - version: 3.3.2 - resolution: "find-cache-dir@npm:3.3.2" - dependencies: - commondir: "npm:^1.0.1" - make-dir: "npm:^3.0.2" - pkg-dir: "npm:^4.1.0" - checksum: 10/3907c2e0b15132704ed67083686cd3e68ab7d9ecc22e50ae9da20678245d488b01fa22c0e34c0544dc6edc4354c766f016c8c186a787be7c17f7cde8c5281e85 - languageName: node - linkType: hard - "find-cache-dir@npm:^4.0.0": version: 4.0.0 resolution: "find-cache-dir@npm:4.0.0" @@ -15333,7 +14825,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:11.2.0, fs-extra@npm:^11.0.0, fs-extra@npm:^11.1.0, fs-extra@npm:^11.1.1, fs-extra@npm:^11.2.0": +"fs-extra@npm:11.2.0, fs-extra@npm:^11.0.0, fs-extra@npm:^11.1.1, fs-extra@npm:^11.2.0": version: 11.2.0 resolution: "fs-extra@npm:11.2.0" dependencies: @@ -15628,13 +15120,6 @@ __metadata: languageName: node linkType: hard -"github-slugger@npm:^2.0.0": - version: 2.0.0 - resolution: "github-slugger@npm:2.0.0" - checksum: 10/2fb15d78262eeba1e68671f048c62d05ed21e51281cccc7b1c9e8e089e8510b3037fb648b8ba27290e60534df2cb251312a1e7e813204495df621220192fd600 - languageName: node - linkType: hard - "glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -15784,7 +15269,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^13.1.1": +"globby@npm:^13.1.1, globby@npm:^13.1.2": version: 13.2.2 resolution: "globby@npm:13.2.2" dependencies: @@ -15797,19 +15282,6 @@ __metadata: languageName: node linkType: hard -"globby@npm:^13.1.2": - version: 13.1.4 - resolution: "globby@npm:13.1.4" - dependencies: - dir-glob: "npm:^3.0.1" - fast-glob: "npm:^3.2.11" - ignore: "npm:^5.2.0" - merge2: "npm:^1.4.1" - slash: "npm:^4.0.0" - checksum: 10/4d039258f3af41f868e81d6d992542c445fe847ce09593a5ba20987695b145dcbca7263736b3ebbe4a7d985beb8d71bad1104ada00997e768cf21c311d1bbdf1 - languageName: node - linkType: hard - "globrex@npm:^0.1.2": version: 0.1.2 resolution: "globrex@npm:0.1.2" @@ -15888,14 +15360,14 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:4.2.10, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:4.2.10": version: 4.2.10 resolution: "graceful-fs@npm:4.2.10" checksum: 10/0c83c52b62c68a944dcfb9d66b0f9f10f7d6e3d081e8067b9bfdc9e5f3a8896584d576036f82915773189eec1eba599397fc620e75c03c0610fb3d67c6713c1a languageName: node linkType: hard -"graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 @@ -16040,13 +15512,6 @@ __metadata: languageName: node linkType: hard -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 10/4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b - languageName: node - linkType: hard - "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -16125,24 +15590,6 @@ __metadata: languageName: node linkType: hard -"hast-util-heading-rank@npm:^3.0.0": - version: 3.0.0 - resolution: "hast-util-heading-rank@npm:3.0.0" - dependencies: - "@types/hast": "npm:^3.0.0" - checksum: 10/e5ce4ec9e8017b24ab72702fa0dd401ec6eaf32574120d71c2aa4e8e0f43829dba2e291f49d305a47e8d65b82a9c5adad7985385dc5bc8370f8cec7c8f9313d3 - languageName: node - linkType: hard - -"hast-util-is-element@npm:^3.0.0": - version: 3.0.0 - resolution: "hast-util-is-element@npm:3.0.0" - dependencies: - "@types/hast": "npm:^3.0.0" - checksum: 10/b4e6d84c763ffdc44198ba0c4a5a7430794a7b2c1eec699d37776ea9832eef79f129726c175982103eb3b21f531a6bfd2fa43ce26e1ed6d8f6a87c102ba212c8 - languageName: node - linkType: hard - "hast-util-parse-selector@npm:^4.0.0": version: 4.0.0 resolution: "hast-util-parse-selector@npm:4.0.0" @@ -16235,15 +15682,6 @@ __metadata: languageName: node linkType: hard -"hast-util-to-string@npm:^3.0.0": - version: 3.0.1 - resolution: "hast-util-to-string@npm:3.0.1" - dependencies: - "@types/hast": "npm:^3.0.0" - checksum: 10/a569518313a648bc86e712858bc907d1f65137ebba87bc71180dbc2f24f194f6035019ffa8e38b1f7897672d45a337046a4c9964ce6d2593953b5069e10d31c2 - languageName: node - linkType: hard - "hast-util-whitespace@npm:^2.0.0": version: 2.0.0 resolution: "hast-util-whitespace@npm:2.0.0" @@ -16398,13 +15836,6 @@ __metadata: languageName: node linkType: hard -"html-tags@npm:^3.1.0": - version: 3.2.0 - resolution: "html-tags@npm:3.2.0" - checksum: 10/a0c9e96ac26c84adad9cc66d15d6711a17f60acda8d987218f1d4cbaacd52864939b230e635cce5a1179f3ddab2a12b9231355617dfbae7945fcfec5e96d2041 - languageName: node - linkType: hard - "html-tags@npm:^3.3.1": version: 3.3.1 resolution: "html-tags@npm:3.3.1" @@ -16970,13 +16401,6 @@ __metadata: languageName: node linkType: hard -"is-absolute-url@npm:^4.0.0": - version: 4.0.1 - resolution: "is-absolute-url@npm:4.0.1" - checksum: 10/de172a718439982a54477fdae55f21be69ec0e6a4b205db5484975d2f4ee749851fd46c28f3790dfc51a274c2ed1d0f8457b6d1fff02ab829069fd9cc761e48c - languageName: node - linkType: hard - "is-absolute@npm:^1.0.0": version: 1.0.0 resolution: "is-absolute@npm:1.0.0" @@ -17333,13 +16757,6 @@ __metadata: languageName: node linkType: hard -"is-plain-object@npm:5.0.0": - version: 5.0.0 - resolution: "is-plain-object@npm:5.0.0" - checksum: 10/e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c - languageName: node - linkType: hard - "is-plain-object@npm:^2.0.4": version: 2.0.4 resolution: "is-plain-object@npm:2.0.4" @@ -19069,7 +18486,7 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^3.1.0, loupe@npm:^3.1.1": +"loupe@npm:^3.1.0, loupe@npm:^3.1.1, loupe@npm:^3.1.2": version: 3.1.2 resolution: "loupe@npm:3.1.2" checksum: 10/8f5734e53fb64cd914aa7d986e01b6d4c2e3c6c56dcbd5428d71c2703f0ab46b5ab9f9eeaaf2b485e8a1c43f865bdd16ec08ae1a661c8f55acdbd9f4d59c607a @@ -19168,7 +18585,7 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.0, magic-string@npm:^0.30.11, magic-string@npm:~0.30.0": +"magic-string@npm:^0.30.0, magic-string@npm:^0.30.12, magic-string@npm:~0.30.0": version: 0.30.12 resolution: "magic-string@npm:0.30.12" dependencies: @@ -19177,7 +18594,7 @@ __metadata: languageName: node linkType: hard -"magicast@npm:^0.3.4": +"magicast@npm:^0.3.5": version: 0.3.5 resolution: "magicast@npm:0.3.5" dependencies: @@ -19198,7 +18615,7 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:^3.0.2, make-dir@npm:^3.1.0": +"make-dir@npm:^3.1.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" dependencies: @@ -19284,15 +18701,6 @@ __metadata: languageName: node linkType: hard -"markdown-to-jsx@npm:^7.4.5": - version: 7.5.0 - resolution: "markdown-to-jsx@npm:7.5.0" - peerDependencies: - react: ">= 0.14.0" - checksum: 10/b1fbe4429b968aefe02d4549eebb8d7456ccd7a8417805bb7f4bde1b466bdd0c81df3b14c5a1d9dcc49c6451ae50cf23cd04228fb6a0e1f8579ad0b76adae044 - languageName: node - linkType: hard - "mdast-util-definitions@npm:^5.0.0": version: 5.1.0 resolution: "mdast-util-definitions@npm:5.1.0" @@ -20095,17 +19503,7 @@ __metadata: languageName: node linkType: hard -"micromark-util-character@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-character@npm:1.1.0" - dependencies: - micromark-util-symbol: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.0" - checksum: 10/81a1e4ee996e89966f58620088ca1ad49a6b1474fa488992be9b6f62d783d621c33f74c01f8560a2960412a43e83c7d991c711620ff3ee49169eb77de0bb2e3a - languageName: node - linkType: hard - -"micromark-util-character@npm:^1.1.0": +"micromark-util-character@npm:^1.0.0, micromark-util-character@npm:^1.1.0": version: 1.2.0 resolution: "micromark-util-character@npm:1.2.0" dependencies: @@ -20353,14 +19751,7 @@ __metadata: languageName: node linkType: hard -"micromark-util-symbol@npm:^1.0.0": - version: 1.0.1 - resolution: "micromark-util-symbol@npm:1.0.1" - checksum: 10/c193bf4f657acdd2ae71e99a57f7bd4337ffa475eb8e339c2647036564ab611ff0571c1c20b67dab61ff1b44ded9cee838c300606a5d848924a14b9676456b58 - languageName: node - linkType: hard - -"micromark-util-symbol@npm:^1.0.1": +"micromark-util-symbol@npm:^1.0.0, micromark-util-symbol@npm:^1.0.1": version: 1.1.0 resolution: "micromark-util-symbol@npm:1.1.0" checksum: 10/a26b6b1efd77a715a4d9bbe0a5338eaf3d04ea5e85733e34fee56dfeabf64495c0afc5438fe5220316884cd3a5eae1f17768e0ff4e117827ea4a653897466f86 @@ -20438,7 +19829,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2": +"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -20448,16 +19839,6 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: "npm:^3.0.2" - picomatch: "npm:^2.3.1" - checksum: 10/a749888789fc15cac0e03273844dbd749f9f8e8d64e70c564bcf06a033129554c789bb9e30d7566d7ff6596611a08e58ac12cf2a05f6e3c9c47c50c4c7e12fa2 - languageName: node - linkType: hard - "mikro-orm@npm:6.3.13": version: 6.3.13 resolution: "mikro-orm@npm:6.3.13" @@ -20890,14 +20271,14 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:0.6.3, negotiator@npm:^0.6.2": +"negotiator@npm:0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" checksum: 10/2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837 languageName: node linkType: hard -"negotiator@npm:~0.6.4": +"negotiator@npm:^0.6.2, negotiator@npm:~0.6.4": version: 0.6.4 resolution: "negotiator@npm:0.6.4" checksum: 10/d98c04a136583afd055746168f1067d58ce4bfe6e4c73ca1d339567f81ea1f7e665b5bd1e81f4771c67b6c2ea89b21cb2adaea2b16058c7dc31317778f931dab @@ -21878,14 +21259,7 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0": - version: 1.1.0 - resolution: "picocolors@npm:1.1.0" - checksum: 10/a2ad60d94d185c30f2a140b19c512547713fb89b920d32cc6cf658fa786d63a37ba7b8451872c3d9fc34883971fb6e5878e07a20b60506e0bb2554dce9169ccb - languageName: node - linkType: hard - -"picocolors@npm:^1.0.1": +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.0": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: 10/e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 @@ -21981,7 +21355,7 @@ __metadata: languageName: node linkType: hard -"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": +"pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" dependencies: @@ -23465,16 +22839,6 @@ __metadata: languageName: node linkType: hard -"react-colorful@npm:^5.1.2": - version: 5.6.1 - resolution: "react-colorful@npm:5.6.1" - peerDependencies: - react: ">=16.8.0" - react-dom: ">=16.8.0" - checksum: 10/3e02ba013454818d0c323949bd961fb2c19ac18130dfc67a4032aa5b03787c5ffe7ff159c4b97dc3475072d576828ca0c4b8e8ce85b55eaf484180596cdf0403 - languageName: node - linkType: hard - "react-confetti@npm:^6.1.0": version: 6.1.0 resolution: "react-confetti@npm:6.1.0" @@ -23604,20 +22968,6 @@ __metadata: languageName: node linkType: hard -"react-element-to-jsx-string@npm:^15.0.0": - version: 15.0.0 - resolution: "react-element-to-jsx-string@npm:15.0.0" - dependencies: - "@base2/pretty-print-object": "npm:1.0.1" - is-plain-object: "npm:5.0.0" - react-is: "npm:18.1.0" - peerDependencies: - react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - checksum: 10/9a874b2f16b4624a72c4b766b096d693a382b9dc7f2264f802395852ae3435ccde8e9e47bbe45cf5f30eba70f8126af6aca832190e285b0096af3ecade994df1 - languageName: node - linkType: hard - "react-error-overlay@npm:^6.0.11": version: 6.0.11 resolution: "react-error-overlay@npm:6.0.11" @@ -23661,13 +23011,6 @@ __metadata: languageName: node linkType: hard -"react-is@npm:18.1.0": - version: 18.1.0 - resolution: "react-is@npm:18.1.0" - checksum: 10/fe09c86d5e12a8531bf3e748660f3dffbe900a6da0b488c7efaf0a866e16b74ecc1b0011b0960b13594f8719f39f87a987c0c85edff0b2d3e2f14b87e7230ad2 - languageName: node - linkType: hard - "react-is@npm:^16.13.1, react-is@npm:^16.6.0, react-is@npm:^16.7.0": version: 16.13.1 resolution: "react-is@npm:16.13.1" @@ -23924,7 +23267,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.1": +"readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.6, readable-stream@npm:^2.2.2, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -23939,21 +23282,6 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.6, readable-stream@npm:^2.2.2, readable-stream@npm:~2.3.6": - version: 2.3.7 - resolution: "readable-stream@npm:2.3.7" - dependencies: - core-util-is: "npm:~1.0.0" - inherits: "npm:~2.0.3" - isarray: "npm:~1.0.0" - process-nextick-args: "npm:~2.0.0" - safe-buffer: "npm:~5.1.1" - string_decoder: "npm:~1.1.1" - util-deprecate: "npm:~1.0.1" - checksum: 10/d04c677c1705e3fc6283d45859a23f4c05243d0c0f1fc08cb8f995b4d69f0eb7f38ec0ec102f0ee20535c5d999ee27449f40aa2edf6bf30c24d0cc8f8efeb6d7 - languageName: node - linkType: hard - "readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" @@ -24239,20 +23567,6 @@ __metadata: languageName: node linkType: hard -"rehype-external-links@npm:^3.0.0": - version: 3.0.0 - resolution: "rehype-external-links@npm:3.0.0" - dependencies: - "@types/hast": "npm:^3.0.0" - "@ungap/structured-clone": "npm:^1.0.0" - hast-util-is-element: "npm:^3.0.0" - is-absolute-url: "npm:^4.0.0" - space-separated-tokens: "npm:^2.0.0" - unist-util-visit: "npm:^5.0.0" - checksum: 10/b9b2e4e5974a7d1e4030dc42bfad980d4700af35b6b20b36fc7ff0521897a8f20d3fe5e170255c428148fdd5a0653a73683da783124038d17b24f26dd59d20e8 - languageName: node - linkType: hard - "rehype-raw@npm:^7.0.0": version: 7.0.0 resolution: "rehype-raw@npm:7.0.0" @@ -24275,19 +23589,6 @@ __metadata: languageName: node linkType: hard -"rehype-slug@npm:^6.0.0": - version: 6.0.0 - resolution: "rehype-slug@npm:6.0.0" - dependencies: - "@types/hast": "npm:^3.0.0" - github-slugger: "npm:^2.0.0" - hast-util-heading-rank: "npm:^3.0.0" - hast-util-to-string: "npm:^3.0.0" - unist-util-visit: "npm:^5.0.0" - checksum: 10/292074643f8462c70f498bc8bf18a8c959073b96efc249f61e69fa9e36eb81d9b91d62199a90217c604e1c3904e8ff0a75df70d67e41bead56de93afb725c2d0 - languageName: node - linkType: hard - "relateurl@npm:^0.2.7": version: 0.2.7 resolution: "relateurl@npm:0.2.7" @@ -24721,26 +24022,28 @@ __metadata: languageName: node linkType: hard -"rollup@npm:4.24.0, rollup@npm:^4.20.0": - version: 4.24.0 - resolution: "rollup@npm:4.24.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.24.0" - "@rollup/rollup-android-arm64": "npm:4.24.0" - "@rollup/rollup-darwin-arm64": "npm:4.24.0" - "@rollup/rollup-darwin-x64": "npm:4.24.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.24.0" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.24.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.24.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.24.0" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.24.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.24.0" - "@rollup/rollup-linux-s390x-gnu": "npm:4.24.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.24.0" - "@rollup/rollup-linux-x64-musl": "npm:4.24.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.24.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.24.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.24.0" +"rollup@npm:4.24.3, rollup@npm:^4.20.0": + version: 4.24.3 + resolution: "rollup@npm:4.24.3" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.24.3" + "@rollup/rollup-android-arm64": "npm:4.24.3" + "@rollup/rollup-darwin-arm64": "npm:4.24.3" + "@rollup/rollup-darwin-x64": "npm:4.24.3" + "@rollup/rollup-freebsd-arm64": "npm:4.24.3" + "@rollup/rollup-freebsd-x64": "npm:4.24.3" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.24.3" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.24.3" + "@rollup/rollup-linux-arm64-gnu": "npm:4.24.3" + "@rollup/rollup-linux-arm64-musl": "npm:4.24.3" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.24.3" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.24.3" + "@rollup/rollup-linux-s390x-gnu": "npm:4.24.3" + "@rollup/rollup-linux-x64-gnu": "npm:4.24.3" + "@rollup/rollup-linux-x64-musl": "npm:4.24.3" + "@rollup/rollup-win32-arm64-msvc": "npm:4.24.3" + "@rollup/rollup-win32-ia32-msvc": "npm:4.24.3" + "@rollup/rollup-win32-x64-msvc": "npm:4.24.3" "@types/estree": "npm:1.0.6" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -24752,6 +24055,10 @@ __metadata: optional: true "@rollup/rollup-darwin-x64": optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true "@rollup/rollup-linux-arm-gnueabihf": optional: true "@rollup/rollup-linux-arm-musleabihf": @@ -24780,7 +24087,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10/291dce8f180628a73d6749119a3e50aa917c416075302bc6f6ac655affc7f0ce9d7f025bef7318d424d0c5623dcb83e360f9ea0125273b6a2285c232172800cc + checksum: 10/23d9851bf9ac7f61590e401a790d2f266d46ce71b938429eae3523392a17147637420dfdd8344541b7b54e03ef4af7fa3deac7199f6a4bf5f06a286bd3b3ed97 languageName: node linkType: hard @@ -24917,175 +24224,175 @@ __metadata: languageName: node linkType: hard -"sass-embedded-android-arm64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-android-arm64@npm:1.80.5" +"sass-embedded-android-arm64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-android-arm64@npm:1.80.6" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"sass-embedded-android-arm@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-android-arm@npm:1.80.5" +"sass-embedded-android-arm@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-android-arm@npm:1.80.6" conditions: os=android & cpu=arm languageName: node linkType: hard -"sass-embedded-android-ia32@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-android-ia32@npm:1.80.5" +"sass-embedded-android-ia32@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-android-ia32@npm:1.80.6" conditions: os=android & cpu=ia32 languageName: node linkType: hard -"sass-embedded-android-riscv64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-android-riscv64@npm:1.80.5" +"sass-embedded-android-riscv64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-android-riscv64@npm:1.80.6" conditions: os=android & cpu=riscv64 languageName: node linkType: hard -"sass-embedded-android-x64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-android-x64@npm:1.80.5" +"sass-embedded-android-x64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-android-x64@npm:1.80.6" conditions: os=android & cpu=x64 languageName: node linkType: hard -"sass-embedded-darwin-arm64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-darwin-arm64@npm:1.80.5" +"sass-embedded-darwin-arm64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-darwin-arm64@npm:1.80.6" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"sass-embedded-darwin-x64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-darwin-x64@npm:1.80.5" +"sass-embedded-darwin-x64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-darwin-x64@npm:1.80.6" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"sass-embedded-linux-arm64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-linux-arm64@npm:1.80.5" +"sass-embedded-linux-arm64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-linux-arm64@npm:1.80.6" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"sass-embedded-linux-arm@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-linux-arm@npm:1.80.5" +"sass-embedded-linux-arm@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-linux-arm@npm:1.80.6" conditions: os=linux & cpu=arm languageName: node linkType: hard -"sass-embedded-linux-ia32@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-linux-ia32@npm:1.80.5" +"sass-embedded-linux-ia32@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-linux-ia32@npm:1.80.6" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"sass-embedded-linux-musl-arm64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-linux-musl-arm64@npm:1.80.5" +"sass-embedded-linux-musl-arm64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-linux-musl-arm64@npm:1.80.6" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"sass-embedded-linux-musl-arm@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-linux-musl-arm@npm:1.80.5" +"sass-embedded-linux-musl-arm@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-linux-musl-arm@npm:1.80.6" conditions: os=linux & cpu=arm languageName: node linkType: hard -"sass-embedded-linux-musl-ia32@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-linux-musl-ia32@npm:1.80.5" +"sass-embedded-linux-musl-ia32@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-linux-musl-ia32@npm:1.80.6" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"sass-embedded-linux-musl-riscv64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-linux-musl-riscv64@npm:1.80.5" +"sass-embedded-linux-musl-riscv64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-linux-musl-riscv64@npm:1.80.6" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"sass-embedded-linux-musl-x64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-linux-musl-x64@npm:1.80.5" +"sass-embedded-linux-musl-x64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-linux-musl-x64@npm:1.80.6" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"sass-embedded-linux-riscv64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-linux-riscv64@npm:1.80.5" +"sass-embedded-linux-riscv64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-linux-riscv64@npm:1.80.6" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"sass-embedded-linux-x64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-linux-x64@npm:1.80.5" +"sass-embedded-linux-x64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-linux-x64@npm:1.80.6" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"sass-embedded-win32-arm64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-win32-arm64@npm:1.80.5" +"sass-embedded-win32-arm64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-win32-arm64@npm:1.80.6" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"sass-embedded-win32-ia32@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-win32-ia32@npm:1.80.5" +"sass-embedded-win32-ia32@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-win32-ia32@npm:1.80.6" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"sass-embedded-win32-x64@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded-win32-x64@npm:1.80.5" +"sass-embedded-win32-x64@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded-win32-x64@npm:1.80.6" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"sass-embedded@npm:1.80.5": - version: 1.80.5 - resolution: "sass-embedded@npm:1.80.5" +"sass-embedded@npm:1.80.6": + version: 1.80.6 + resolution: "sass-embedded@npm:1.80.6" dependencies: "@bufbuild/protobuf": "npm:^2.0.0" buffer-builder: "npm:^0.2.0" colorjs.io: "npm:^0.5.0" immutable: "npm:^4.0.0" rxjs: "npm:^7.4.0" - sass-embedded-android-arm: "npm:1.80.5" - sass-embedded-android-arm64: "npm:1.80.5" - sass-embedded-android-ia32: "npm:1.80.5" - sass-embedded-android-riscv64: "npm:1.80.5" - sass-embedded-android-x64: "npm:1.80.5" - sass-embedded-darwin-arm64: "npm:1.80.5" - sass-embedded-darwin-x64: "npm:1.80.5" - sass-embedded-linux-arm: "npm:1.80.5" - sass-embedded-linux-arm64: "npm:1.80.5" - sass-embedded-linux-ia32: "npm:1.80.5" - sass-embedded-linux-musl-arm: "npm:1.80.5" - sass-embedded-linux-musl-arm64: "npm:1.80.5" - sass-embedded-linux-musl-ia32: "npm:1.80.5" - sass-embedded-linux-musl-riscv64: "npm:1.80.5" - sass-embedded-linux-musl-x64: "npm:1.80.5" - sass-embedded-linux-riscv64: "npm:1.80.5" - sass-embedded-linux-x64: "npm:1.80.5" - sass-embedded-win32-arm64: "npm:1.80.5" - sass-embedded-win32-ia32: "npm:1.80.5" - sass-embedded-win32-x64: "npm:1.80.5" + sass-embedded-android-arm: "npm:1.80.6" + sass-embedded-android-arm64: "npm:1.80.6" + sass-embedded-android-ia32: "npm:1.80.6" + sass-embedded-android-riscv64: "npm:1.80.6" + sass-embedded-android-x64: "npm:1.80.6" + sass-embedded-darwin-arm64: "npm:1.80.6" + sass-embedded-darwin-x64: "npm:1.80.6" + sass-embedded-linux-arm: "npm:1.80.6" + sass-embedded-linux-arm64: "npm:1.80.6" + sass-embedded-linux-ia32: "npm:1.80.6" + sass-embedded-linux-musl-arm: "npm:1.80.6" + sass-embedded-linux-musl-arm64: "npm:1.80.6" + sass-embedded-linux-musl-ia32: "npm:1.80.6" + sass-embedded-linux-musl-riscv64: "npm:1.80.6" + sass-embedded-linux-musl-x64: "npm:1.80.6" + sass-embedded-linux-riscv64: "npm:1.80.6" + sass-embedded-linux-x64: "npm:1.80.6" + sass-embedded-win32-arm64: "npm:1.80.6" + sass-embedded-win32-ia32: "npm:1.80.6" + sass-embedded-win32-x64: "npm:1.80.6" supports-color: "npm:^8.1.1" varint: "npm:^6.0.0" dependenciesMeta: @@ -25131,7 +24438,7 @@ __metadata: optional: true bin: sass: dist/bin/sass.js - checksum: 10/c2f7a2aeef2e27100e99d291ff49cd78930c8f75749b1efa11b9775e758dcec0794bc41c615744d9fa180e38ad378411aed3e5854ac588fa162cf562c74fa06a + checksum: 10/e779d6d7f4b80611af2812bd9dfd08d230b311dc6966ce8727e371b8cc8bd88c38a3c1c93cbf2aa7499ff7b9ebf504190a113d0a1cd029d6fbb44bf10500a89e languageName: node linkType: hard @@ -25544,14 +24851,7 @@ __metadata: languageName: node linkType: hard -"shell-quote@npm:^1.7.3": - version: 1.7.4 - resolution: "shell-quote@npm:1.7.4" - checksum: 10/e5059820d0ffc7e9298f9ee4be528cd5820c45a87d318dac5ad4b62066069fe4e62520801af639d8723b0a36af621ef6330adf8ce532cfaeb0c874c691117f1b - languageName: node - linkType: hard - -"shell-quote@npm:^1.8.1": +"shell-quote@npm:^1.7.3, shell-quote@npm:^1.8.1": version: 1.8.1 resolution: "shell-quote@npm:1.8.1" checksum: 10/af19ab5a1ec30cb4b2f91fd6df49a7442d5c4825a2e269b3712eded10eedd7f9efeaab96d57829880733fc55bcdd8e9b1d8589b4befb06667c731d08145e274d @@ -26127,16 +25427,21 @@ __metadata: languageName: node linkType: hard -"storybook@npm:8.3.6": - version: 8.3.6 - resolution: "storybook@npm:8.3.6" +"storybook@npm:8.4.1": + version: 8.4.1 + resolution: "storybook@npm:8.4.1" dependencies: - "@storybook/core": "npm:8.3.6" + "@storybook/core": "npm:8.4.1" + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true bin: getstorybook: ./bin/index.cjs sb: ./bin/index.cjs storybook: ./bin/index.cjs - checksum: 10/b980e90297c918e68dc31ea126780a30ba29076a99921a2558d61cae26491f24f0bc494d6c3aff68d587397d25d1224496df91e76fc6f2a0616f7d97ab9fd46a + checksum: 10/10072ec75e3876916555bcb1c6e14fc987e25ade4579783a2f0eb2780cc45b6f04bbed115e01a97d549d819867113ec04b4ac2515545fee4d245bb309c8d8d61 languageName: node linkType: hard @@ -26526,15 +25831,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: "npm:^3.0.0" - checksum: 10/5f505c6fa3c6e05873b43af096ddeb22159831597649881aeb8572d6fe3b81e798cc10840d0c9735e0026b250368851b7f77b65e84f4e4daa820a4f69947f55b - languageName: node - linkType: hard - "supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -26673,15 +25969,6 @@ __metadata: languageName: node linkType: hard -"telejson@npm:^7.2.0": - version: 7.2.0 - resolution: "telejson@npm:7.2.0" - dependencies: - memoizerific: "npm:^1.11.3" - checksum: 10/6e89b3d3c45b5a2aced9132f6a968fcdf758c00be4c3acb115d7d81e95c9e04083a7a4a9b43057fcf48b101156c1607a38f5491615956acb28d4d1f78a4bda20 - languageName: node - linkType: hard - "terser-webpack-plugin@npm:^5.3.10, terser-webpack-plugin@npm:^5.3.9": version: 5.3.10 resolution: "terser-webpack-plugin@npm:5.3.10" @@ -26844,14 +26131,14 @@ __metadata: languageName: node linkType: hard -"tinyexec@npm:^0.3.0": - version: 0.3.0 - resolution: "tinyexec@npm:0.3.0" - checksum: 10/317cc536d091ce7e50271287798d91ef53c4dc80088844d890752a2c7387d213004cba83e5e1d9129390ced617625e34f4a8f0ba5779e31c9b6939f9be0d3543 +"tinyexec@npm:^0.3.0, tinyexec@npm:^0.3.1": + version: 0.3.1 + resolution: "tinyexec@npm:0.3.1" + checksum: 10/0537c70590d52d354f40c0255ff0f654a3d18ddb3812b440ddf9d436edf516c8057838ad5a38744c0c59670ec03e3cf23fbe04ae3d49f031d948274e99002569 languageName: node linkType: hard -"tinypool@npm:^1.0.0": +"tinypool@npm:^1.0.1": version: 1.0.1 resolution: "tinypool@npm:1.0.1" checksum: 10/eaceb93784b8e27e60c0e3e2c7d11c29e1e79b2a025b2c232215db73b90fe22bd4753ad53fc8e801c2b5a63b94a823af549555d8361272bc98271de7dd4a9925 @@ -26865,7 +26152,7 @@ __metadata: languageName: node linkType: hard -"tinyspy@npm:^3.0.0": +"tinyspy@npm:^3.0.0, tinyspy@npm:^3.0.2": version: 3.0.2 resolution: "tinyspy@npm:3.0.2" checksum: 10/5db671b2ff5cd309de650c8c4761ca945459d7204afb1776db9a04fb4efa28a75f08517a8620c01ee32a577748802231ad92f7d5b194dc003ee7f987a2a06337 @@ -26897,13 +26184,6 @@ __metadata: languageName: node linkType: hard -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: 10/be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -27147,14 +26427,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0, tslib@npm:^2.6.3": - version: 2.8.0 - resolution: "tslib@npm:2.8.0" - checksum: 10/1bc7c43937477059b4d26f2dbde7e49ef0fb4f38f3014e0603eaea76d6a885742c8b1762af45949145e5e7408a736d20ded949da99dabc8ccba1fc5531d2d927 - languageName: node - linkType: hard - -"tslib@npm:^2.6.0": +"tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0, tslib@npm:^2.6.0, tslib@npm:^2.6.3": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 @@ -27175,9 +26448,9 @@ __metadata: languageName: node linkType: hard -"tsx@npm:^4.19.1": - version: 4.19.1 - resolution: "tsx@npm:4.19.1" +"tsx@npm:^4.19.2": + version: 4.19.2 + resolution: "tsx@npm:4.19.2" dependencies: esbuild: "npm:~0.23.0" fsevents: "npm:~2.3.3" @@ -27187,7 +26460,7 @@ __metadata: optional: true bin: tsx: dist/cli.mjs - checksum: 10/1f5f0b7c4107fc18f523e94c79204b043641aa328f721324795cc961826879035652a1f19fe29ba420465d9f4bacb0f47e08f0bd4b934684ab45727eca110311 + checksum: 10/4c5610ed1fb2f80d766681f8ac7827e1e8118dfe354c18f74800691f3ef1e9ed676a29842ab818806bcf8613cdc97c6af84b5645e768ddb7f4b0527b9100deda languageName: node linkType: hard @@ -27237,7 +26510,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^2.13.0, type-fest@npm:^2.19.0, type-fest@npm:^2.5.0, type-fest@npm:~2.19": +"type-fest@npm:^2.13.0, type-fest@npm:^2.19.0, type-fest@npm:^2.5.0": version: 2.19.0 resolution: "type-fest@npm:2.19.0" checksum: 10/7bf9e8fdf34f92c8bb364c0af14ca875fac7e0183f2985498b77be129dc1b3b1ad0a6b3281580f19e48c6105c037fb966ad9934520c69c6434d17fd0af4eed78 @@ -27348,17 +26621,17 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:8.11.0": - version: 8.11.0 - resolution: "typescript-eslint@npm:8.11.0" +"typescript-eslint@npm:8.12.2": + version: 8.12.2 + resolution: "typescript-eslint@npm:8.12.2" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.11.0" - "@typescript-eslint/parser": "npm:8.11.0" - "@typescript-eslint/utils": "npm:8.11.0" + "@typescript-eslint/eslint-plugin": "npm:8.12.2" + "@typescript-eslint/parser": "npm:8.12.2" + "@typescript-eslint/utils": "npm:8.12.2" peerDependenciesMeta: typescript: optional: true - checksum: 10/b95b78b52ab0a5da842e9b034173ca3b606b40d866261a02af19af3a2e10011c6452fd4ab5aa7e86c9d44a64b6c8768f71999be8bc998aaa9864ac3353a2ec3c + checksum: 10/2f479c5d2369aa6e40b1957ae75178c584e62e90d2f0e7434274ec23bb8fee69c6c8832eea39628b60a1511f1db80802aef6687636e80126b01af4748f3be816 languageName: node linkType: hard @@ -27760,7 +27033,7 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.1.0, update-browserslist-db@npm:^1.1.1": +"update-browserslist-db@npm:^1.1.1": version: 1.1.1 resolution: "update-browserslist-db@npm:1.1.1" dependencies: @@ -27918,7 +27191,7 @@ __metadata: languageName: node linkType: hard -"util@npm:^0.12.4, util@npm:^0.12.5": +"util@npm:^0.12.5": version: 0.12.5 resolution: "util@npm:0.12.5" dependencies: @@ -28116,17 +27389,17 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:2.1.3": - version: 2.1.3 - resolution: "vite-node@npm:2.1.3" +"vite-node@npm:2.1.4": + version: 2.1.4 + resolution: "vite-node@npm:2.1.4" dependencies: cac: "npm:^6.7.14" - debug: "npm:^4.3.6" + debug: "npm:^4.3.7" pathe: "npm:^1.1.2" vite: "npm:^5.0.0" bin: vite-node: vite-node.mjs - checksum: 10/8ba6b145cbb02a492c7bb1f0490d02383000462f234ed61d24f650547163825c16f14e6908ee1eb661403bd0a7a3fb3cdbedf116cc015b1e5cdf7bb992872a01 + checksum: 10/3c3fbe6e41ab1716f4e6e0b52dcb80e027cb481df03e31d9bb5d16bb0ffabc5c884cca705ef8a5dea60f787e5eb78a428977d0d40e61e1f331bfb8c3d486d3e2 languageName: node linkType: hard @@ -28189,34 +27462,35 @@ __metadata: languageName: node linkType: hard -"vitest@npm:2.1.3": - version: 2.1.3 - resolution: "vitest@npm:2.1.3" - dependencies: - "@vitest/expect": "npm:2.1.3" - "@vitest/mocker": "npm:2.1.3" - "@vitest/pretty-format": "npm:^2.1.3" - "@vitest/runner": "npm:2.1.3" - "@vitest/snapshot": "npm:2.1.3" - "@vitest/spy": "npm:2.1.3" - "@vitest/utils": "npm:2.1.3" - chai: "npm:^5.1.1" - debug: "npm:^4.3.6" - magic-string: "npm:^0.30.11" +"vitest@npm:2.1.4": + version: 2.1.4 + resolution: "vitest@npm:2.1.4" + dependencies: + "@vitest/expect": "npm:2.1.4" + "@vitest/mocker": "npm:2.1.4" + "@vitest/pretty-format": "npm:^2.1.4" + "@vitest/runner": "npm:2.1.4" + "@vitest/snapshot": "npm:2.1.4" + "@vitest/spy": "npm:2.1.4" + "@vitest/utils": "npm:2.1.4" + chai: "npm:^5.1.2" + debug: "npm:^4.3.7" + expect-type: "npm:^1.1.0" + magic-string: "npm:^0.30.12" pathe: "npm:^1.1.2" std-env: "npm:^3.7.0" tinybench: "npm:^2.9.0" - tinyexec: "npm:^0.3.0" - tinypool: "npm:^1.0.0" + tinyexec: "npm:^0.3.1" + tinypool: "npm:^1.0.1" tinyrainbow: "npm:^1.2.0" vite: "npm:^5.0.0" - vite-node: "npm:2.1.3" + vite-node: "npm:2.1.4" why-is-node-running: "npm:^2.3.0" peerDependencies: "@edge-runtime/vm": "*" "@types/node": ^18.0.0 || >=20.0.0 - "@vitest/browser": 2.1.3 - "@vitest/ui": 2.1.3 + "@vitest/browser": 2.1.4 + "@vitest/ui": 2.1.4 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -28234,7 +27508,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 10/f6079a88583045b551e6526c08774aeac4a9cf85b132793a03f9470c013326abd7fce3985e3c2217dc0dac2fadeee3506e3dc51e215f10862b2fe9da9289af0f + checksum: 10/bf0bb39e6148678ccc0d856a6a08e99458e80266558f97757bd20980812cd439f51599bcb64c807805594bf6fdb2111fdca688bc8884524819cc4a84a4598109 languageName: node linkType: hard From f4a63e4241cf47bf988ad170e4e437ea173c9194 Mon Sep 17 00:00:00 2001 From: kizahasi <21971954+kizahasi@users.noreply.github.com> Date: Thu, 7 Nov 2024 12:08:16 +0900 Subject: [PATCH 04/11] docs: update badges --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 405097de0..2235aa467 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,6 @@ [![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fflocon-trpg%2Fservers%2Fbadge%3Fref%3Dmain&style=flat)](https://actions-badge.atrox.dev/flocon-trpg/servers/goto?ref=main) -[![Codecov](https://img.shields.io/codecov/c/github/flocon-trpg/servers?logo=codecov)](https://app.codecov.io/gh/flocon-trpg/servers) -![Snyk Vulnerabilities for GitHub Repo](https://img.shields.io/snyk/vulnerabilities/github/flocon-trpg/servers) [![GitHub license](https://img.shields.io/github/license/flocon-trpg/servers)](./LICENSE) [![Discord](https://img.shields.io/discord/919950632662753280?color=5865F2&logo=discord&logoColor=fff&label=discord)](https://discord.gg/cy3vhmU6Tx) From d3ceba8110a614e223774564b9ca53f19aeb2933 Mon Sep 17 00:00:00 2001 From: kizahasi <21971954+kizahasi@users.noreply.github.com> Date: Thu, 7 Nov 2024 12:09:56 +0900 Subject: [PATCH 05/11] chore: set Node.js version in package.json from `>=18 <21` to `>=18` --- apps/api-server/package.json | 2 +- packages/cache/package.json | 2 +- packages/core/package.json | 2 +- packages/default-pino-transport/package.json | 2 +- packages/flocon-script/package.json | 2 +- packages/logger-base/package.json | 2 +- packages/sdk-react/package.json | 2 +- packages/sdk-urql/package.json | 2 +- packages/sdk/package.json | 2 +- packages/typed-document-node/package.json | 2 +- packages/utils/package.json | 2 +- packages/web-server-utils/package.json | 2 +- packages/websites-base/package.json | 2 +- websites/docs/package.json | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/apps/api-server/package.json b/apps/api-server/package.json index 302c72fe2..32045a41d 100644 --- a/apps/api-server/package.json +++ b/apps/api-server/package.json @@ -123,6 +123,6 @@ "url-join": "4.0.1" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/packages/cache/package.json b/packages/cache/package.json index fea93e332..0a99fa8d2 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -44,6 +44,6 @@ "typescript-eslint": "8.12.2" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/packages/core/package.json b/packages/core/package.json index b553339ca..6c7c2692c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -56,6 +56,6 @@ "typescript-eslint": "8.12.2" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/packages/default-pino-transport/package.json b/packages/default-pino-transport/package.json index 1f19f36ad..2a6601748 100644 --- a/packages/default-pino-transport/package.json +++ b/packages/default-pino-transport/package.json @@ -36,6 +36,6 @@ "typescript-eslint": "8.12.2" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/packages/flocon-script/package.json b/packages/flocon-script/package.json index 2680aee01..2dc00c11c 100644 --- a/packages/flocon-script/package.json +++ b/packages/flocon-script/package.json @@ -44,6 +44,6 @@ "typescript-eslint": "8.12.2" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/packages/logger-base/package.json b/packages/logger-base/package.json index b25604df3..a7052bcc9 100644 --- a/packages/logger-base/package.json +++ b/packages/logger-base/package.json @@ -33,6 +33,6 @@ "typescript-eslint": "8.12.2" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/packages/sdk-react/package.json b/packages/sdk-react/package.json index 11b54a0f0..dabf9c191 100644 --- a/packages/sdk-react/package.json +++ b/packages/sdk-react/package.json @@ -48,6 +48,6 @@ "typescript-eslint": "8.12.2" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/packages/sdk-urql/package.json b/packages/sdk-urql/package.json index fabe91f47..4f1163e40 100644 --- a/packages/sdk-urql/package.json +++ b/packages/sdk-urql/package.json @@ -44,6 +44,6 @@ "typescript-eslint": "8.12.2" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 80b617d55..180c8e6f7 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -46,6 +46,6 @@ "typescript-eslint": "8.12.2" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/packages/typed-document-node/package.json b/packages/typed-document-node/package.json index 6600b0ba7..0ae829e50 100644 --- a/packages/typed-document-node/package.json +++ b/packages/typed-document-node/package.json @@ -37,6 +37,6 @@ "typescript-eslint": "8.12.2" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/packages/utils/package.json b/packages/utils/package.json index 04fcce808..479d98c74 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -47,6 +47,6 @@ "typescript-eslint": "8.12.2" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/packages/web-server-utils/package.json b/packages/web-server-utils/package.json index b1827d74f..3ca7f06ce 100644 --- a/packages/web-server-utils/package.json +++ b/packages/web-server-utils/package.json @@ -46,6 +46,6 @@ "typescript-eslint": "8.12.2" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/packages/websites-base/package.json b/packages/websites-base/package.json index d9d1abf69..8b5aace97 100644 --- a/packages/websites-base/package.json +++ b/packages/websites-base/package.json @@ -44,6 +44,6 @@ "react": "^18.0.0" }, "engines": { - "node": ">=18 <21" + "node": ">=18" } } diff --git a/websites/docs/package.json b/websites/docs/package.json index 59106287f..609837308 100644 --- a/websites/docs/package.json +++ b/websites/docs/package.json @@ -48,6 +48,6 @@ ] }, "engines": { - "node": ">=18.0" + "node": ">=18" } } From 49ea77bd34bf7e5856809ea31a46c966cbdb614d Mon Sep 17 00:00:00 2001 From: kizahasi <21971954+kizahasi@users.noreply.github.com> Date: Thu, 7 Nov 2024 13:52:34 +0900 Subject: [PATCH 06/11] =?UTF-8?q?fix(tools):=20=E7=94=BB=E5=83=8F=E3=83=95?= =?UTF-8?q?=E3=82=A1=E3=82=A4=E3=83=AB=E3=82=92=E5=BC=95=E3=81=A3=E8=B6=8A?= =?UTF-8?q?=E3=81=99=E3=81=AE=E3=82=92=E5=BF=98=E3=82=8C=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/public/assets/firebase-auth-1.png | Bin 0 -> 112929 bytes .../tools/public/assets/firebase-auth-2.png | Bin 0 -> 108076 bytes .../tools/public/assets/firebase-config-1.png | Bin 0 -> 150110 bytes .../tools/public/assets/firebase-config-2.png | Bin 0 -> 110798 bytes .../tools/public/assets/firebase-config-3.png | Bin 0 -> 159379 bytes .../tools/public/assets/firebase-config-4.png | Bin 0 -> 261603 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 websites/tools/public/assets/firebase-auth-1.png create mode 100644 websites/tools/public/assets/firebase-auth-2.png create mode 100644 websites/tools/public/assets/firebase-config-1.png create mode 100644 websites/tools/public/assets/firebase-config-2.png create mode 100644 websites/tools/public/assets/firebase-config-3.png create mode 100644 websites/tools/public/assets/firebase-config-4.png diff --git a/websites/tools/public/assets/firebase-auth-1.png b/websites/tools/public/assets/firebase-auth-1.png new file mode 100644 index 0000000000000000000000000000000000000000..c07298914ade7bec6d64cccc1b57b871e721e3cf GIT binary patch literal 112929 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 PezVp!-Kzyx?mYQlv-pyh literal 0 HcmV?d00001 diff --git a/websites/tools/public/assets/firebase-auth-2.png b/websites/tools/public/assets/firebase-auth-2.png new file mode 100644 index 0000000000000000000000000000000000000000..5d47fef5a3eee298cee4357972b8613c5db40432 GIT binary patch literal 108076 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�hEL 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

>JQLfJyZ*|d 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 ZVs*0dma3^=IAh(EZ>U|*`qSj;{{evG$MXOH literal 0 HcmV?d00001 diff --git a/websites/tools/public/assets/firebase-config-1.png b/websites/tools/public/assets/firebase-config-1.png new file mode 100644 index 0000000000000000000000000000000000000000..086b4b3ce9de6d3fa5d79f0343fb19678ee05265 GIT binary patch literal 150110 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�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ⓈtrS0LCaK&0kf*;!A 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'gtMw?~o!9MDc411@p}fvhF|mI)5S3 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 literal 0 HcmV?d00001 diff --git a/websites/tools/public/assets/firebase-config-3.png b/websites/tools/public/assets/firebase-config-3.png new file mode 100644 index 0000000000000000000000000000000000000000..85959ec7b188ee7a542e926f94ec9002758aa3e8 GIT binary patch literal 159379 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 ARR910 literal 0 HcmV?d00001 diff --git a/websites/tools/public/assets/firebase-config-4.png b/websites/tools/public/assets/firebase-config-4.png new file mode 100644 index 0000000000000000000000000000000000000000..f0dd18a0f03d9e8ff19fd0bb7ba0931714834fd0 GIT binary patch literal 261603 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
  • )RE@<#T=)=bl_u=aHWtS|JZ^ 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

    xMf`l4JREY&y0A@rQgp(T_b=G~K2el<{5g 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

    $h&C<|FXaDK-W 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 literal 0 HcmV?d00001 From bedeef8daf3da6f63a030d73942ac9d18ff5a0b1 Mon Sep 17 00:00:00 2001 From: kizahasi <21971954+kizahasi@users.noreply.github.com> Date: Thu, 7 Nov 2024 13:53:31 +0900 Subject: [PATCH 07/11] chore: prettier routeTree.gen.ts --- apps/web-server/src/routeTree.gen.ts | 8 +++----- websites/tools/src/routeTree.gen.ts | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/apps/web-server/src/routeTree.gen.ts b/apps/web-server/src/routeTree.gen.ts index 27fcde900..8cff1fb03 100644 --- a/apps/web-server/src/routeTree.gen.ts +++ b/apps/web-server/src/routeTree.gen.ts @@ -1,12 +1,12 @@ -/* prettier-ignore-start */ - /* eslint-disable */ // @ts-nocheck // noinspection JSUnusedGlobalSymbols -// This file is auto-generated by TanStack Router +// This file was automatically generated by TanStack Router. +// You should NOT make any changes in this file as it will be overwritten. +// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. import { createFileRoute } from '@tanstack/react-router'; @@ -344,8 +344,6 @@ export const routeTree = rootRoute ._addFileChildren(rootRouteChildren) ._addFileTypes(); -/* prettier-ignore-end */ - /* ROUTE_MANIFEST_START { "routes": { diff --git a/websites/tools/src/routeTree.gen.ts b/websites/tools/src/routeTree.gen.ts index 52fb3e069..09dccc2f6 100644 --- a/websites/tools/src/routeTree.gen.ts +++ b/websites/tools/src/routeTree.gen.ts @@ -1,12 +1,12 @@ -/* prettier-ignore-start */ - /* eslint-disable */ // @ts-nocheck // noinspection JSUnusedGlobalSymbols -// This file is auto-generated by TanStack Router +// This file was automatically generated by TanStack Router. +// You should NOT make any changes in this file as it will be overwritten. +// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. // Import Routes @@ -109,8 +109,6 @@ export const routeTree = rootRoute ._addFileChildren(rootRouteChildren) ._addFileTypes(); -/* prettier-ignore-end */ - /* ROUTE_MANIFEST_START { "routes": { From 05ce2b535a4d63fce87ea074f30c10cff533e23d Mon Sep 17 00:00:00 2001 From: kizahasi <21971954+kizahasi@users.noreply.github.com> Date: Thu, 7 Nov 2024 17:53:17 +0900 Subject: [PATCH 08/11] =?UTF-8?q?feat(docs):=20tools=E3=82=92docs=E3=81=AB?= =?UTF-8?q?=E7=B5=B1=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- commitlint.config.js | 1 - packages/websites-base/.prettierignore | 2 - packages/websites-base/.prettierrc | 1 - packages/websites-base/README.md | 1 - packages/websites-base/eslint.config.mjs | 14 -- packages/websites-base/package.json | 49 ------- packages/websites-base/rollup.config.js | 4 - packages/websites-base/src/index.ts | 1 - packages/websites-base/tsconfig.json | 6 - websites/docs/package.json | 5 + websites/docs/src/components/AntDesign.tsx | 33 +++++ .../docs/src/components}/CreateEnv.tsx | 12 +- .../src/pages/tools}/bcrypt.tsx | 20 +-- websites/docs/src/pages/tools/index.tsx | 36 +++++ websites/docs/src/pages/tools/web-server.tsx | 16 +++ .../static/img/tools}/firebase-auth-1.png | Bin .../static/img/tools}/firebase-auth-2.png | Bin .../static/img/tools}/firebase-config-1.png | Bin .../static/img/tools}/firebase-config-2.png | Bin .../static/img/tools}/firebase-config-3.png | Bin .../static/img/tools}/firebase-config-4.png | Bin websites/tools/.eslintrc.js | 37 ----- websites/tools/.gitignore | 29 ---- websites/tools/.prettierignore | 2 - websites/tools/.prettierrc | 1 - websites/tools/README.md | 7 - websites/tools/eslint.config.js | 32 ----- websites/tools/index.html | 12 -- websites/tools/package.json | 49 ------- websites/tools/src/main.css | 3 - websites/tools/src/main.tsx | 45 ------ websites/tools/src/routeTree.gen.ts | 134 ------------------ websites/tools/src/routes/__root.tsx | 28 ---- websites/tools/src/routes/index.tsx | 32 ----- websites/tools/src/routes/web-server.tsx | 11 -- websites/tools/src/vite-env.d.ts | 1 - websites/tools/tsconfig.app.json | 20 --- websites/tools/tsconfig.base.json | 20 --- websites/tools/tsconfig.json | 4 - websites/tools/tsconfig.node.json | 17 --- websites/tools/vite.config.ts | 14 -- yarn.lock | 70 +-------- 42 files changed, 115 insertions(+), 654 deletions(-) delete mode 100644 packages/websites-base/.prettierignore delete mode 100644 packages/websites-base/.prettierrc delete mode 100644 packages/websites-base/README.md delete mode 100644 packages/websites-base/eslint.config.mjs delete mode 100644 packages/websites-base/package.json delete mode 100644 packages/websites-base/rollup.config.js delete mode 100644 packages/websites-base/src/index.ts delete mode 100644 packages/websites-base/tsconfig.json create mode 100644 websites/docs/src/components/AntDesign.tsx rename {packages/websites-base/src/internal => websites/docs/src/components}/CreateEnv.tsx (98%) rename websites/{tools/src/routes => docs/src/pages/tools}/bcrypt.tsx (90%) create mode 100644 websites/docs/src/pages/tools/index.tsx create mode 100644 websites/docs/src/pages/tools/web-server.tsx rename websites/{tools/public/assets => docs/static/img/tools}/firebase-auth-1.png (100%) rename websites/{tools/public/assets => docs/static/img/tools}/firebase-auth-2.png (100%) rename websites/{tools/public/assets => docs/static/img/tools}/firebase-config-1.png (100%) rename websites/{tools/public/assets => docs/static/img/tools}/firebase-config-2.png (100%) rename websites/{tools/public/assets => docs/static/img/tools}/firebase-config-3.png (100%) rename websites/{tools/public/assets => docs/static/img/tools}/firebase-config-4.png (100%) delete mode 100644 websites/tools/.eslintrc.js delete mode 100644 websites/tools/.gitignore delete mode 100644 websites/tools/.prettierignore delete mode 100644 websites/tools/.prettierrc delete mode 100644 websites/tools/README.md delete mode 100644 websites/tools/eslint.config.js delete mode 100644 websites/tools/index.html delete mode 100644 websites/tools/package.json delete mode 100644 websites/tools/src/main.css delete mode 100644 websites/tools/src/main.tsx delete mode 100644 websites/tools/src/routeTree.gen.ts delete mode 100644 websites/tools/src/routes/__root.tsx delete mode 100644 websites/tools/src/routes/index.tsx delete mode 100644 websites/tools/src/routes/web-server.tsx delete mode 100644 websites/tools/src/vite-env.d.ts delete mode 100644 websites/tools/tsconfig.app.json delete mode 100644 websites/tools/tsconfig.base.json delete mode 100644 websites/tools/tsconfig.json delete mode 100644 websites/tools/tsconfig.node.json delete mode 100644 websites/tools/vite.config.ts diff --git a/commitlint.config.js b/commitlint.config.js index 6fcf23262..211b0ed81 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -18,7 +18,6 @@ module.exports = { 'sdk', 'sdk-react', 'sdk-urql', - 'tools', 'utils', 'web-server-utils', ], diff --git a/packages/websites-base/.prettierignore b/packages/websites-base/.prettierignore deleted file mode 100644 index c06f0b4de..000000000 --- a/packages/websites-base/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -/dist/ -/coverage/ \ No newline at end of file diff --git a/packages/websites-base/.prettierrc b/packages/websites-base/.prettierrc deleted file mode 100644 index dabc20838..000000000 --- a/packages/websites-base/.prettierrc +++ /dev/null @@ -1 +0,0 @@ -"@flocon-trpg/prettier-config" \ No newline at end of file diff --git a/packages/websites-base/README.md b/packages/websites-base/README.md deleted file mode 100644 index 8ccb77adf..000000000 --- a/packages/websites-base/README.md +++ /dev/null @@ -1 +0,0 @@ -# websites-base diff --git a/packages/websites-base/eslint.config.mjs b/packages/websites-base/eslint.config.mjs deleted file mode 100644 index b7d95f2fc..000000000 --- a/packages/websites-base/eslint.config.mjs +++ /dev/null @@ -1,14 +0,0 @@ -import Config from '@flocon-trpg/eslint-config'; - -export default [...Config, -{ - languageOptions: { - parserOptions: { - project: './tsconfig.json', - projectService: true, - // import.meta.dirname は ESM かつ Node.js >=20.11.0 / >= 21.2.0 でなければ使えない。 - tsconfigRootDir: import.meta.dirname, - }, - }, - }, -] \ No newline at end of file diff --git a/packages/websites-base/package.json b/packages/websites-base/package.json deleted file mode 100644 index 8b5aace97..000000000 --- a/packages/websites-base/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "@flocon-trpg/websites-base", - "version": "0.1.0", - "private": true, - "license": "MIT", - "author": "kizahasi", - "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", - "files": [ - "dist" - ], - "scripts": { - "build": "yarn run build:self", - "build:rollup": "rollup --config", - "build:self": "rimraf ./dist && yarn build:rollup", - "lint": "eslint \"**/*.ts\" --cache", - "prettier": "yarn prettier:base --write --cache", - "prettier-check": "yarn prettier:base --check", - "prettier:base": "prettier \"**/*.{ts,tsx,js,json,yml,md,graphql}\"" - }, - "dependencies": { - "@flocon-trpg/core": "workspace:^", - "jotai": "^2.10.1" - }, - "devDependencies": { - "@flocon-trpg/eslint-config": "workspace:^", - "@flocon-trpg/prettier-config": "workspace:^", - "@flocon-trpg/rollup-config": "workspace:^", - "@flocon-trpg/tsconfig": "workspace:^", - "@types/react": "18.3.12", - "antd": "5.21.6", - "eslint": "9.14.0", - "eslint-config-prettier": "9.1.0", - "eslint-plugin-import": "2.31.0", - "prettier": "3.3.3", - "react": "18.3.1", - "rimraf": "5.0.10", - "rollup": "4.24.3", - "typescript": "5.6.2", - "typescript-eslint": "8.12.2" - }, - "peerDependencies": { - "antd": "^5.21.5", - "react": "^18.0.0" - }, - "engines": { - "node": ">=18" - } -} diff --git a/packages/websites-base/rollup.config.js b/packages/websites-base/rollup.config.js deleted file mode 100644 index a31b15460..000000000 --- a/packages/websites-base/rollup.config.js +++ /dev/null @@ -1,4 +0,0 @@ -const { config } = require('@flocon-trpg/rollup-config'); -const external = Object.keys(require('./package.json').dependencies ?? {}); - -module.exports = config({ external }); diff --git a/packages/websites-base/src/index.ts b/packages/websites-base/src/index.ts deleted file mode 100644 index b5bb9d636..000000000 --- a/packages/websites-base/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { CreateEnv } from './internal/CreateEnv'; diff --git a/packages/websites-base/tsconfig.json b/packages/websites-base/tsconfig.json deleted file mode 100644 index 4d94c0362..000000000 --- a/packages/websites-base/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "@flocon-trpg/tsconfig", - "compilerOptions": { - "jsx": "react-jsx" - } -} diff --git a/websites/docs/package.json b/websites/docs/package.json index 609837308..299f72113 100644 --- a/websites/docs/package.json +++ b/websites/docs/package.json @@ -20,9 +20,13 @@ "dependencies": { "@docusaurus/core": "3.5.2", "@docusaurus/preset-classic": "3.5.2", + "@flocon-trpg/core": "workspace:^", "@mdx-js/react": "^3.0.0", + "antd": "^5.21.6", + "bcryptjs": "^2.4.3", "clsx": "^2.0.0", "docusaurus-plugin-image-zoom": "^2.0.0", + "jotai": "^2.10.1", "prism-react-renderer": "^2.3.0", "react": "^18.0.0", "react-dom": "^18.0.0" @@ -32,6 +36,7 @@ "@docusaurus/tsconfig": "3.5.2", "@docusaurus/types": "3.5.2", "@flocon-trpg/prettier-config": "workspace:^", + "@types/bcryptjs": "^2.4.6", "prettier": "3.3.3", "typescript": "5.5.4" }, diff --git a/websites/docs/src/components/AntDesign.tsx b/websites/docs/src/components/AntDesign.tsx new file mode 100644 index 000000000..db3dc0299 --- /dev/null +++ b/websites/docs/src/components/AntDesign.tsx @@ -0,0 +1,33 @@ +import { ConfigProvider, theme } from 'antd'; +import { StyleProvider } from '@ant-design/cssinjs'; +import React, { PropsWithChildren } from 'react'; +import { createRoot } from 'react-dom/client'; + +// docusaurus には global css を無効化する方法がない(https://github.com/facebook/docusaurus/issues/6032)ため、https://ant.design/docs/react/compatible-style#shadow-dom-usage を参考に shadow DOM を使って Ant Design のコンポーネントを使用している +// id には他と重複しない適当な文字列を入れる +export const AntDesign: React.FC> = ({ id, children }) => { + React.useEffect(() => { + const targetElement = document.getElementById(id); + if (targetElement === null) { + console.warn(`Element with id ${id} is not found at AntDesign component.`); + return; + } + const shadowRoot = targetElement.attachShadow({ mode: 'open' }); + const container = document.createElement('div'); + shadowRoot.appendChild(container); + const root = createRoot(container); + + root.render( + + container} + > + {children} + + , + ); + }, []); + return

    Firebase構成オブジェクト2 @@ -262,7 +262,7 @@ export const CreateEnv: React.FC = () => {

  • _j$RN@gb%-C;R)D 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�`)osZ*GmYqde^$|WR1oMfI~r=2N8o! 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

    Firebase構成オブジェクト3 @@ -273,7 +273,7 @@ export const CreateEnv: React.FC = () => {
    Firebase構成オブジェクト4 @@ -284,7 +284,7 @@ export const CreateEnv: React.FC = () => {
    Firebase構成オブジェクト1 @@ -425,7 +425,7 @@ export const CreateEnv: React.FC = () => {
    ログインプロバイダの画像1 @@ -434,7 +434,7 @@ export const CreateEnv: React.FC = () => { ログインプロバイダの画像2 diff --git a/websites/tools/src/routes/bcrypt.tsx b/websites/docs/src/pages/tools/bcrypt.tsx similarity index 90% rename from websites/tools/src/routes/bcrypt.tsx rename to websites/docs/src/pages/tools/bcrypt.tsx index c1d7eed3c..9c3ab06f6 100644 --- a/websites/tools/src/routes/bcrypt.tsx +++ b/websites/docs/src/pages/tools/bcrypt.tsx @@ -1,4 +1,4 @@ -import { createFileRoute } from '@tanstack/react-router'; +import { AntDesign } from '../../components/AntDesign'; import { Button, Input, Layout, Select, Typography } from 'antd'; import { hash } from 'bcryptjs'; import { FC, useState } from 'react'; @@ -75,10 +75,14 @@ const Bcrypt: React.FC = () => { ); }; -export const Route = createFileRoute('/bcrypt')({ - component: () => ( - - - - ), -}); +const id = 'bcrypt-3Ixqgk3WJ6HRBu'; + +export default function Home(): JSX.Element { + return ( + + + + + + ); +} diff --git a/websites/docs/src/pages/tools/index.tsx b/websites/docs/src/pages/tools/index.tsx new file mode 100644 index 000000000..b2abc1d3a --- /dev/null +++ b/websites/docs/src/pages/tools/index.tsx @@ -0,0 +1,36 @@ +import { AntDesign } from '@site/src/components/AntDesign'; +import { Layout } from 'antd'; + +const Index: React.FC = () => { + return ( + + ); +}; + +const id = 'index-OD9prQeada4rUe'; + +export default function Home(): JSX.Element { + return ( + + + + + + ); +} diff --git a/websites/docs/src/pages/tools/web-server.tsx b/websites/docs/src/pages/tools/web-server.tsx new file mode 100644 index 000000000..c06fef76a --- /dev/null +++ b/websites/docs/src/pages/tools/web-server.tsx @@ -0,0 +1,16 @@ +import { Layout } from 'antd'; +import React from 'react'; +import { AntDesign } from '../../components/AntDesign'; +import { CreateEnv } from '../../components/CreateEnv'; + +const id = 'env-web-nHwcPQ1UyYZh6e'; + +export default function Home(): JSX.Element { + return ( + + + + + + ); +} diff --git a/websites/tools/public/assets/firebase-auth-1.png b/websites/docs/static/img/tools/firebase-auth-1.png similarity index 100% rename from websites/tools/public/assets/firebase-auth-1.png rename to websites/docs/static/img/tools/firebase-auth-1.png diff --git a/websites/tools/public/assets/firebase-auth-2.png b/websites/docs/static/img/tools/firebase-auth-2.png similarity index 100% rename from websites/tools/public/assets/firebase-auth-2.png rename to websites/docs/static/img/tools/firebase-auth-2.png diff --git a/websites/tools/public/assets/firebase-config-1.png b/websites/docs/static/img/tools/firebase-config-1.png similarity index 100% rename from websites/tools/public/assets/firebase-config-1.png rename to websites/docs/static/img/tools/firebase-config-1.png diff --git a/websites/tools/public/assets/firebase-config-2.png b/websites/docs/static/img/tools/firebase-config-2.png similarity index 100% rename from websites/tools/public/assets/firebase-config-2.png rename to websites/docs/static/img/tools/firebase-config-2.png diff --git a/websites/tools/public/assets/firebase-config-3.png b/websites/docs/static/img/tools/firebase-config-3.png similarity index 100% rename from websites/tools/public/assets/firebase-config-3.png rename to websites/docs/static/img/tools/firebase-config-3.png diff --git a/websites/tools/public/assets/firebase-config-4.png b/websites/docs/static/img/tools/firebase-config-4.png similarity index 100% rename from websites/tools/public/assets/firebase-config-4.png rename to websites/docs/static/img/tools/firebase-config-4.png diff --git a/websites/tools/.eslintrc.js b/websites/tools/.eslintrc.js deleted file mode 100644 index 8e9eb1dc2..000000000 --- a/websites/tools/.eslintrc.js +++ /dev/null @@ -1,37 +0,0 @@ -module.exports = { - env: { - browser: true, - es6: true, - }, - settings: { - react: { version: 'detect' }, - }, - extends: ['@flocon-trpg/eslint-config-v8', 'plugin:@next/next/recommended'], - globals: { - Atomics: 'readonly', - SharedArrayBuffer: 'readonly', - }, - parserOptions: { - project: './tsconfig.json', - // vscodeのeslintが正常に動くようにtsconfigRootDirを設定している - tsconfigRootDir: __dirname, - ecmaFeatures: { - jsx: true, - }, - ecmaVersion: 2018, - sourceType: 'module', - }, - plugins: ['@typescript-eslint', 'react', 'react-hooks'], - rules: { - 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/exhaustive-deps': [ - 'error', - { - additionalHooks: '^use((Memo|Callback)One|DeepCompareEffect)$', - }, - ], - '@typescript-eslint/switch-exhaustiveness-check': 'error', - 'react/prop-types': 'off', - '@next/next/no-img-element': 'off', - }, -}; diff --git a/websites/tools/.gitignore b/websites/tools/.gitignore deleted file mode 100644 index 46038c855..000000000 --- a/websites/tools/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -# Custom -*.tsbuildinfo - -*storybook.log \ No newline at end of file diff --git a/websites/tools/.prettierignore b/websites/tools/.prettierignore deleted file mode 100644 index c06f0b4de..000000000 --- a/websites/tools/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -/dist/ -/coverage/ \ No newline at end of file diff --git a/websites/tools/.prettierrc b/websites/tools/.prettierrc deleted file mode 100644 index dabc20838..000000000 --- a/websites/tools/.prettierrc +++ /dev/null @@ -1 +0,0 @@ -"@flocon-trpg/prettier-config" \ No newline at end of file diff --git a/websites/tools/README.md b/websites/tools/README.md deleted file mode 100644 index faf606f52..000000000 --- a/websites/tools/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# tools - -https://tools.flocon.app のソースコードです。 - -本来は https://flocon.app ([@flocon-trpg/docs](../docs)) と一緒にしたいのですが、@flocon-trpg/docs で使っている [Docusaurus のグローバル css を無効化する方法がない](https://github.com/facebook/docusaurus/issues/6032)ため、やむなく分離させ、別々のサイトとしてデプロイしています。 - -Shadow DOM (react-shadow など)を用いる方法も考えましたが、Ant Design の CSS のセットなどの手間がかかることと、予期せぬトラブルが発声する可能性を考慮して現時点では不採用としました。ただしこの方針は将来変わる可能性があります。 diff --git a/websites/tools/eslint.config.js b/websites/tools/eslint.config.js deleted file mode 100644 index 4e0cd3d26..000000000 --- a/websites/tools/eslint.config.js +++ /dev/null @@ -1,32 +0,0 @@ -import globals from 'globals'; -import reactHooks from 'eslint-plugin-react-hooks'; -import reactRefresh from 'eslint-plugin-react-refresh'; -import tseslint from 'typescript-eslint'; -import Config from '@flocon-trpg/eslint-config'; - -export default tseslint.config({ - extends: [...Config], - files: ['**/*.{ts,tsx}'], - ignores: ['dist', '**/*.d.ts'], - languageOptions: { - ecmaVersion: 2020, - globals: globals.browser, - // other options... - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - }, - plugins: { - 'react-hooks': reactHooks, - 'react-refresh': reactRefresh, - }, - rules: { - ...reactHooks.configs.recommended.rules, - 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }], - - // TODO: Flocon の eslint パッケージと eslint のバージョンが異なるため暫定的に独立した rule を書いているが、パッケージを利用する - '@typescript-eslint/no-namespace': 'off', - '@typescript-eslint/no-explicit-any': 'off', - }, -}); diff --git a/websites/tools/index.html b/websites/tools/index.html deleted file mode 100644 index f51a5f2fd..000000000 --- a/websites/tools/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - Flocon ツール - - - -
    - - - diff --git a/websites/tools/package.json b/websites/tools/package.json deleted file mode 100644 index 1ff9faf45..000000000 --- a/websites/tools/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "@flocon-trpg/tools", - "version": "0.1.0", - "private": true, - "type": "module", - "scripts": { - "dev": "vite", - "build": "run-s build:deps build:self", - "build:deps": "yarn workspaces foreach --recursive -pt --from '@flocon-trpg/tools' --exclude '@flocon-trpg/tools' run build", - "build:self": "tsc -b && vite build", - "lint": "eslint .", - "preview": "vite preview", - "prettier": "yarn prettier:base --write --cache", - "prettier-check": "yarn prettier:base --check", - "prettier:base": "prettier \"**/*.{ts,tsx,js,json,yml,md,graphql}\"" - }, - "dependencies": { - "@flocon-trpg/core": "workspace:^", - "@flocon-trpg/utils": "workspace:^", - "@flocon-trpg/websites-base": "workspace:^", - "@tanstack/react-router": "^1.69.1", - "antd": "^5.0.0", - "bcryptjs": "^2.4.3", - "jotai": "^2.0.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "rxjs": "^7.5.6", - "typescript": "5.6.2" - }, - "devDependencies": { - "@eslint/js": "9.14.0", - "@flocon-trpg/eslint-config": "workspace:^", - "@flocon-trpg/prettier-config": "workspace:^", - "@tanstack/router-plugin": "1.78.3", - "@types/bcryptjs": "^2.4.6", - "@types/react": "18.3.12", - "@types/react-dom": "18.3.1", - "@vitejs/plugin-react-swc": "3.7.1", - "eslint": "9.14.0", - "eslint-plugin-react-hooks": "5.1.0-rc-fb9a90fa48-20240614", - "eslint-plugin-react-refresh": "0.4.14", - "npm-run-all2": "7.0.1", - "prettier": "3.3.3", - "typescript": "5.6.3", - "typescript-eslint": "8.12.2", - "vite": "5.4.10", - "vite-tsconfig-paths": "5.0.1" - } -} diff --git a/websites/tools/src/main.css b/websites/tools/src/main.css deleted file mode 100644 index 4e41b69a8..000000000 --- a/websites/tools/src/main.css +++ /dev/null @@ -1,3 +0,0 @@ -body { - margin: 0; -} \ No newline at end of file diff --git a/websites/tools/src/main.tsx b/websites/tools/src/main.tsx deleted file mode 100644 index 0143484a1..000000000 --- a/websites/tools/src/main.tsx +++ /dev/null @@ -1,45 +0,0 @@ -/* eslint-disable react-refresh/only-export-components */ -import { RouterProvider, createRouter } from '@tanstack/react-router'; -import { App as AntdApp, ConfigProvider, theme } from 'antd'; -import jaJP from 'antd/locale/ja_JP'; -import { PropsWithChildren, StrictMode } from 'react'; -import ReactDOM from 'react-dom/client'; -import { routeTree } from './routeTree.gen'; -import './main.css'; - -// Create a new router instance -const router = createRouter({ - routeTree, - notFoundMode: 'root', -}); - -// Register the router instance for type safety -declare module '@tanstack/react-router' { - interface Register { - router: typeof router; - } -} - -const App = ({ children }: PropsWithChildren) => { - return ( - - {children} - - ); -}; - -// Render the app -const rootElement = document.getElementById('root')!; -if (!rootElement.innerHTML) { - const root = ReactDOM.createRoot(rootElement); - root.render( - - - - - , - ); -} diff --git a/websites/tools/src/routeTree.gen.ts b/websites/tools/src/routeTree.gen.ts deleted file mode 100644 index 09dccc2f6..000000000 --- a/websites/tools/src/routeTree.gen.ts +++ /dev/null @@ -1,134 +0,0 @@ -/* eslint-disable */ - -// @ts-nocheck - -// noinspection JSUnusedGlobalSymbols - -// This file was automatically generated by TanStack Router. -// You should NOT make any changes in this file as it will be overwritten. -// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. - -// Import Routes - -import { Route as rootRoute } from './routes/__root'; -import { Route as WebServerImport } from './routes/web-server'; -import { Route as BcryptImport } from './routes/bcrypt'; -import { Route as IndexImport } from './routes/index'; - -// Create/Update Routes - -const WebServerRoute = WebServerImport.update({ - id: '/web-server', - path: '/web-server', - getParentRoute: () => rootRoute, -} as any); - -const BcryptRoute = BcryptImport.update({ - id: '/bcrypt', - path: '/bcrypt', - getParentRoute: () => rootRoute, -} as any); - -const IndexRoute = IndexImport.update({ - id: '/', - path: '/', - getParentRoute: () => rootRoute, -} as any); - -// Populate the FileRoutesByPath interface - -declare module '@tanstack/react-router' { - interface FileRoutesByPath { - '/': { - id: '/'; - path: '/'; - fullPath: '/'; - preLoaderRoute: typeof IndexImport; - parentRoute: typeof rootRoute; - }; - '/bcrypt': { - id: '/bcrypt'; - path: '/bcrypt'; - fullPath: '/bcrypt'; - preLoaderRoute: typeof BcryptImport; - parentRoute: typeof rootRoute; - }; - '/web-server': { - id: '/web-server'; - path: '/web-server'; - fullPath: '/web-server'; - preLoaderRoute: typeof WebServerImport; - parentRoute: typeof rootRoute; - }; - } -} - -// Create and export the route tree - -export interface FileRoutesByFullPath { - '/': typeof IndexRoute; - '/bcrypt': typeof BcryptRoute; - '/web-server': typeof WebServerRoute; -} - -export interface FileRoutesByTo { - '/': typeof IndexRoute; - '/bcrypt': typeof BcryptRoute; - '/web-server': typeof WebServerRoute; -} - -export interface FileRoutesById { - __root__: typeof rootRoute; - '/': typeof IndexRoute; - '/bcrypt': typeof BcryptRoute; - '/web-server': typeof WebServerRoute; -} - -export interface FileRouteTypes { - fileRoutesByFullPath: FileRoutesByFullPath; - fullPaths: '/' | '/bcrypt' | '/web-server'; - fileRoutesByTo: FileRoutesByTo; - to: '/' | '/bcrypt' | '/web-server'; - id: '__root__' | '/' | '/bcrypt' | '/web-server'; - fileRoutesById: FileRoutesById; -} - -export interface RootRouteChildren { - IndexRoute: typeof IndexRoute; - BcryptRoute: typeof BcryptRoute; - WebServerRoute: typeof WebServerRoute; -} - -const rootRouteChildren: RootRouteChildren = { - IndexRoute: IndexRoute, - BcryptRoute: BcryptRoute, - WebServerRoute: WebServerRoute, -}; - -export const routeTree = rootRoute - ._addFileChildren(rootRouteChildren) - ._addFileTypes(); - -/* ROUTE_MANIFEST_START -{ - "routes": { - "__root__": { - "filePath": "__root.tsx", - "children": [ - "/", - "/bcrypt", - "/web-server" - ] - }, - "/": { - "filePath": "index.tsx" - }, - "/bcrypt": { - "filePath": "bcrypt.tsx" - }, - "/web-server": { - "filePath": "web-server.tsx" - } - } -} -ROUTE_MANIFEST_END */ diff --git a/websites/tools/src/routes/__root.tsx b/websites/tools/src/routes/__root.tsx deleted file mode 100644 index b356d1ac7..000000000 --- a/websites/tools/src/routes/__root.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Outlet, createRootRoute } from '@tanstack/react-router'; -import { Layout, Typography } from 'antd'; - -const App = () => { - return ( - <> - - - ); -}; - -export const Route = createRootRoute({ - component: App, - notFoundComponent: () => { - return ( - - - {'404 - Not Found'} - - - ); - }, -}); diff --git a/websites/tools/src/routes/index.tsx b/websites/tools/src/routes/index.tsx deleted file mode 100644 index b50edbc1c..000000000 --- a/websites/tools/src/routes/index.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { Link, createFileRoute } from '@tanstack/react-router'; -import { Layout } from 'antd'; - -const Index: React.FC = () => { - return ( -
    -

    Floconツール

    -

    - Webサーバーの設定を作成する -

    -

    - エントリーパスワードに用いるbcryptハッシュを生成する -

    -

    その他

    - - ソースコード - -
    - ); -}; - -export const Route = createFileRoute('/')({ - component: () => ( - - - - ), -}); diff --git a/websites/tools/src/routes/web-server.tsx b/websites/tools/src/routes/web-server.tsx deleted file mode 100644 index 8ce8f985a..000000000 --- a/websites/tools/src/routes/web-server.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { CreateEnv } from '@flocon-trpg/websites-base'; -import { createFileRoute } from '@tanstack/react-router'; -import { Layout } from 'antd'; - -export const Route = createFileRoute('/web-server')({ - component: () => ( - - - - ), -}); diff --git a/websites/tools/src/vite-env.d.ts b/websites/tools/src/vite-env.d.ts deleted file mode 100644 index 11f02fe2a..000000000 --- a/websites/tools/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/websites/tools/tsconfig.app.json b/websites/tools/tsconfig.app.json deleted file mode 100644 index 22f2e0165..000000000 --- a/websites/tools/tsconfig.app.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "extends": "./tsconfig.base.json", - "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2021", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - "jsx": "react-jsx" - }, - // "./.storybook/*" は eslint の対象にするのが目的で含めている - "include": ["src", "./.storybook/*"] -} diff --git a/websites/tools/tsconfig.base.json b/websites/tools/tsconfig.base.json deleted file mode 100644 index 3e33ff327..000000000 --- a/websites/tools/tsconfig.base.json +++ /dev/null @@ -1,20 +0,0 @@ -// tsconfig.json と tsconfig.base.json を分けている理由は、tsconfig.json と tsconfig.app.json と tsconfig.node.json は 全て create-vite 自動生成されたものであり、単にそれらをあまり編集しないほうが無難だと思ったからというだけ。統合して問題なさそうならしても構わない。 - -{ - "compilerOptions": { - "baseUrl": ".", - "paths": { - "@/*": ["./src/*"] - }, - - /* Linting */ - "strict": true, - // TODO: ビルドを通すためにとりあえず無効化している。もしくは可能であれば eslint に任せてもいいかも - //"noUnusedLocals": true, - //"noUnusedParameters": true, - //"noFallthroughCasesInSwitch": true, - - "noUncheckedIndexedAccess": true, - "forceConsistentCasingInFileNames": true - } -} diff --git a/websites/tools/tsconfig.json b/websites/tools/tsconfig.json deleted file mode 100644 index eb69b0d08..000000000 --- a/websites/tools/tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "files": [], - "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }] -} diff --git a/websites/tools/tsconfig.node.json b/websites/tools/tsconfig.node.json deleted file mode 100644 index a273fcbb7..000000000 --- a/websites/tools/tsconfig.node.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "./tsconfig.base.json", - "compilerOptions": { - "target": "ES2022", - "lib": ["ES2023"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true - }, - "include": ["vite.config.ts"] -} diff --git a/websites/tools/vite.config.ts b/websites/tools/vite.config.ts deleted file mode 100644 index 716f28c7d..000000000 --- a/websites/tools/vite.config.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { TanStackRouterVite } from '@tanstack/router-plugin/vite'; -import react from '@vitejs/plugin-react-swc'; -import { Plugin, defineConfig } from 'vite'; -import tsconfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - plugins: [TanStackRouterVite(), react(), tsconfigPaths()], - - esbuild: { - banner: '/*! licenses: ../licenses-npm-package.txt */', - // licenses-npm-package.txt にライセンス一覧が出力されるため、ライセンスのコメントを出力しないことで JavaScript のファイルサイズを減らしている。 - legalComments: 'none', - }, -}); diff --git a/yarn.lock b/yarn.lock index 74b8997b1..f5876dadf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4378,10 +4378,15 @@ __metadata: "@docusaurus/preset-classic": "npm:3.5.2" "@docusaurus/tsconfig": "npm:3.5.2" "@docusaurus/types": "npm:3.5.2" + "@flocon-trpg/core": "workspace:^" "@flocon-trpg/prettier-config": "workspace:^" "@mdx-js/react": "npm:^3.0.0" + "@types/bcryptjs": "npm:^2.4.6" + antd: "npm:^5.21.6" + bcryptjs: "npm:^2.4.3" clsx: "npm:^2.0.0" docusaurus-plugin-image-zoom: "npm:^2.0.0" + jotai: "npm:^2.10.1" prettier: "npm:3.3.3" prism-react-renderer: "npm:^2.3.0" react: "npm:^18.0.0" @@ -4582,40 +4587,6 @@ __metadata: languageName: unknown linkType: soft -"@flocon-trpg/tools@workspace:websites/tools": - version: 0.0.0-use.local - resolution: "@flocon-trpg/tools@workspace:websites/tools" - dependencies: - "@eslint/js": "npm:9.14.0" - "@flocon-trpg/core": "workspace:^" - "@flocon-trpg/eslint-config": "workspace:^" - "@flocon-trpg/prettier-config": "workspace:^" - "@flocon-trpg/utils": "workspace:^" - "@flocon-trpg/websites-base": "workspace:^" - "@tanstack/react-router": "npm:^1.69.1" - "@tanstack/router-plugin": "npm:1.78.3" - "@types/bcryptjs": "npm:^2.4.6" - "@types/react": "npm:18.3.12" - "@types/react-dom": "npm:18.3.1" - "@vitejs/plugin-react-swc": "npm:3.7.1" - antd: "npm:^5.0.0" - bcryptjs: "npm:^2.4.3" - eslint: "npm:9.14.0" - eslint-plugin-react-hooks: "npm:5.1.0-rc-fb9a90fa48-20240614" - eslint-plugin-react-refresh: "npm:0.4.14" - jotai: "npm:^2.0.0" - npm-run-all2: "npm:7.0.1" - prettier: "npm:3.3.3" - react: "npm:^18.3.1" - react-dom: "npm:^18.3.1" - rxjs: "npm:^7.5.6" - typescript: "npm:5.6.3" - typescript-eslint: "npm:8.12.2" - vite: "npm:5.4.10" - vite-tsconfig-paths: "npm:5.0.1" - languageName: unknown - linkType: soft - "@flocon-trpg/tsconfig@workspace:^, @flocon-trpg/tsconfig@workspace:packages/tsconfig": version: 0.0.0-use.local resolution: "@flocon-trpg/tsconfig@workspace:packages/tsconfig" @@ -4816,33 +4787,6 @@ __metadata: languageName: unknown linkType: soft -"@flocon-trpg/websites-base@workspace:^, @flocon-trpg/websites-base@workspace:packages/websites-base": - version: 0.0.0-use.local - resolution: "@flocon-trpg/websites-base@workspace:packages/websites-base" - dependencies: - "@flocon-trpg/core": "workspace:^" - "@flocon-trpg/eslint-config": "workspace:^" - "@flocon-trpg/prettier-config": "workspace:^" - "@flocon-trpg/rollup-config": "workspace:^" - "@flocon-trpg/tsconfig": "workspace:^" - "@types/react": "npm:18.3.12" - antd: "npm:5.21.6" - eslint: "npm:9.14.0" - eslint-config-prettier: "npm:9.1.0" - eslint-plugin-import: "npm:2.31.0" - jotai: "npm:^2.10.1" - prettier: "npm:3.3.3" - react: "npm:18.3.1" - rimraf: "npm:5.0.10" - rollup: "npm:4.24.3" - typescript: "npm:5.6.2" - typescript-eslint: "npm:8.12.2" - peerDependencies: - antd: ^5.21.5 - react: ^18.0.0 - languageName: unknown - linkType: soft - "@gar/promisify@npm:^1.0.1": version: 1.1.2 resolution: "@gar/promisify@npm:1.1.2" @@ -9847,7 +9791,7 @@ __metadata: languageName: node linkType: hard -"antd@npm:5.21.6, antd@npm:^5.0.0": +"antd@npm:^5.0.0, antd@npm:^5.21.6": version: 5.21.6 resolution: "antd@npm:5.21.6" dependencies: @@ -23236,7 +23180,7 @@ __metadata: languageName: node linkType: hard -"react@npm:18.3.1, react@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react@npm:^18.0.0, react@npm:^18.3.1": +"react@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react@npm:^18.0.0, react@npm:^18.3.1": version: 18.3.1 resolution: "react@npm:18.3.1" dependencies: From 0bfda03e59d1f4a0b006bba0262fc421e7463281 Mon Sep 17 00:00:00 2001 From: kizahasi <21971954+kizahasi@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:01:46 +0900 Subject: [PATCH 09/11] style: fix lint errors --- apps/web-server/vite.config.ts | 1 + packages/eslint-config/index.mjs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/web-server/vite.config.ts b/apps/web-server/vite.config.ts index d7194a3c0..858a3c44b 100644 --- a/apps/web-server/vite.config.ts +++ b/apps/web-server/vite.config.ts @@ -26,6 +26,7 @@ export default defineConfig({ license({ thirdParty: { output: path.resolve( + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument import.meta.dirname, './dist/licenses-npm-package.txt', ), diff --git a/packages/eslint-config/index.mjs b/packages/eslint-config/index.mjs index f806945f4..e59f57077 100644 --- a/packages/eslint-config/index.mjs +++ b/packages/eslint-config/index.mjs @@ -28,7 +28,7 @@ export default [...tseslint.config( '@typescript-eslint/no-namespace': 'off', '@typescript-eslint/no-non-null-assertion': 'off', '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/switch-exhaustiveness-check': 'error', + '@typescript-eslint/switch-exhaustiveness-check': ['error', { considerDefaultExhaustiveForUnions: true } ], '@typescript-eslint/no-unused-vars': 'off', // 誤検知が多いため off にしている '@typescript-eslint/require-await': 'off', "eqeqeq": ['warn', 'smart' ], From 1e5dadd8969bcfb9a4e4b4e51f5434ad25336c3a Mon Sep 17 00:00:00 2001 From: kizahasi <21971954+kizahasi@users.noreply.github.com> Date: Thu, 7 Nov 2024 21:22:25 +0900 Subject: [PATCH 10/11] style(eslint-config): prettier index.mjs --- commitlint.config.js | 1 + packages/eslint-config/index.mjs | 104 +++++++++++++++------------- packages/eslint-config/package.json | 2 +- 3 files changed, 57 insertions(+), 50 deletions(-) diff --git a/commitlint.config.js b/commitlint.config.js index 211b0ed81..779e9160a 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -12,6 +12,7 @@ module.exports = { 'cache', 'core', 'docs', + 'eslint-config', 'flocon-script', 'prettier-config', 'rollup-config', diff --git a/packages/eslint-config/index.mjs b/packages/eslint-config/index.mjs index e59f57077..e198d2d17 100644 --- a/packages/eslint-config/index.mjs +++ b/packages/eslint-config/index.mjs @@ -2,55 +2,61 @@ import eslint from '@eslint/js'; import tseslint from 'typescript-eslint'; -import eslintConfigPrettier from 'eslint-config-prettier' -import {flatConfigs} from 'eslint-plugin-import'; +import eslintConfigPrettier from 'eslint-config-prettier'; +import { flatConfigs } from 'eslint-plugin-import'; -export default [...tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommendedTypeChecked, - flatConfigs.recommended, - // { ignores: ['**/*.d.ts', '.eslintrc.js'] }, - { ignores: ['**/*.d.ts'] }, - { - // https://typescript-eslint.io/troubleshooting/typed-linting/performance/#eslint-plugin-import - rules: { - 'import/named': 'off', - 'import/namespace': 'off', - 'import/default': 'off', - 'import/no-named-as-default-member': 'off', - 'import/no-unresolved': 'off', - } - }, - { - rules: { - '@typescript-eslint/member-delimiter-style': ['error'], - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-namespace': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/switch-exhaustiveness-check': ['error', { considerDefaultExhaustiveForUnions: true } ], - '@typescript-eslint/no-unused-vars': 'off', // 誤検知が多いため off にしている - '@typescript-eslint/require-await': 'off', - "eqeqeq": ['warn', 'smart' ], - 'prefer-promise-reject-errors': 'error', - 'space-before-blocks': 'warn', - 'sort-imports': [ - 'error', - { - // sort-importsはimportしたmemberのsortに利用している。 - // declarationのsortはauto-fixできないため、その部分は代わりにimport/orderを使っている。 https://github.com/eslint/eslint/issues/11542#issuecomment-498215828 - ignoreDeclarationSort: true, +export default [ + ...tseslint.config( + eslint.configs.recommended, + ...tseslint.configs.recommendedTypeChecked, + flatConfigs.recommended, + // { ignores: ['**/*.d.ts', '.eslintrc.js'] }, + { ignores: ['**/*.d.ts'] }, + { + // https://typescript-eslint.io/troubleshooting/typed-linting/performance/#eslint-plugin-import + rules: { + 'import/named': 'off', + 'import/namespace': 'off', + 'import/default': 'off', + 'import/no-named-as-default-member': 'off', + 'import/no-unresolved': 'off', }, - ], - 'import/order': [ - 'error', - { - alphabetize: { - order: 'asc', - }, + }, + { + rules: { + '@typescript-eslint/member-delimiter-style': ['error'], + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-namespace': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/switch-exhaustiveness-check': [ + 'error', + { considerDefaultExhaustiveForUnions: true }, + ], + '@typescript-eslint/no-unused-vars': 'off', // 誤検知が多いため off にしている + '@typescript-eslint/require-await': 'off', + eqeqeq: ['warn', 'smart'], + 'prefer-promise-reject-errors': 'error', + 'space-before-blocks': 'warn', + 'sort-imports': [ + 'error', + { + // sort-importsはimportしたmemberのsortに利用している。 + // declarationのsortはauto-fixできないため、その部分は代わりにimport/orderを使っている。 https://github.com/eslint/eslint/issues/11542#issuecomment-498215828 + ignoreDeclarationSort: true, + }, + ], + 'import/order': [ + 'error', + { + alphabetize: { + order: 'asc', + }, + }, + ], + 'no-console': 'warn', }, - ], - 'no-console': 'warn', - }, - } -), eslintConfigPrettier]; \ No newline at end of file + }, + ), + eslintConfigPrettier, +]; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index a8741607f..75c1e025d 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -9,7 +9,7 @@ "scripts": { "prettier": "yarn prettier:base --write --cache", "prettier-check": "yarn prettier:base --check", - "prettier:base": "prettier \"**/*.{ts,tsx,js,json,yml,md,graphql}\"" + "prettier:base": "prettier \"**/*.{ts,tsx,js,json,yml,md,graphql}\" \"index.mjs\" \"index.d.ts\"" }, "devDependencies": { "@eslint/js": "9.14.0", From 7888ede201db84081b932c91d0395466bceb9c3b Mon Sep 17 00:00:00 2001 From: "auto-build.yml[bot]" Date: Thu, 7 Nov 2024 20:29:38 +0000 Subject: [PATCH 11/11] build: comment out dist/ in .gitignore and build artifacts --- .gitignore | 4 +- apps/api-server/dist/VERSION.js | 13 + apps/api-server/dist/VERSION.js.map | 1 + .../mysql/Migration20220410135635.js | 97 + .../mysql/Migration20220410135635.js.map | 1 + .../mysql/Migration20220427150340.js | 17 + .../mysql/Migration20220427150340.js.map | 1 + .../mysql/Migration20220502053137.js | 17 + .../mysql/Migration20220502053137.js.map | 1 + .../mysql/Migration20220504100008.js | 19 + .../mysql/Migration20220504100008.js.map | 1 + .../mysql/Migration20220630151845.js | 17 + .../mysql/Migration20220630151845.js.map | 1 + .../mysql/Migration20220727114555.js | 17 + .../mysql/Migration20220727114555.js.map | 1 + .../postgresql/Migration20211201185931.js | 92 + .../postgresql/Migration20211201185931.js.map | 1 + .../postgresql/Migration20211207145135.js | 13 + .../postgresql/Migration20211207145135.js.map | 1 + .../postgresql/Migration20220410113820.js | 93 + .../postgresql/Migration20220410113820.js.map | 1 + .../postgresql/Migration20220427150306.js | 17 + .../postgresql/Migration20220427150306.js.map | 1 + .../postgresql/Migration20220502053114.js | 17 + .../postgresql/Migration20220502053114.js.map | 1 + .../postgresql/Migration20220504100000.js | 18 + .../postgresql/Migration20220504100000.js.map | 1 + .../postgresql/Migration20220630151907.js | 17 + .../postgresql/Migration20220630151907.js.map | 1 + .../postgresql/Migration20220727114405.js | 19 + .../postgresql/Migration20220727114405.js.map | 1 + .../sqlite/Migration20211201185826.js | 92 + .../sqlite/Migration20211201185826.js.map | 1 + .../sqlite/Migration20211207145304.js | 13 + .../sqlite/Migration20211207145304.js.map | 1 + .../sqlite/Migration20220409152838.js | 32 + .../sqlite/Migration20220409152838.js.map | 1 + .../sqlite/Migration20220427150211.js | 13 + .../sqlite/Migration20220427150211.js.map | 1 + .../sqlite/Migration20220502053022.js | 13 + .../sqlite/Migration20220502053022.js.map | 1 + .../sqlite/Migration20220504095931.js | 14 + .../sqlite/Migration20220504095931.js.map | 1 + .../sqlite/Migration20220630151831.js | 13 + .../sqlite/Migration20220630151831.js.map | 1 + .../sqlite/Migration20220727114545.js | 18 + .../sqlite/Migration20220727114545.js.map | 1 + apps/api-server/dist/buildSchema.js | 64 + apps/api-server/dist/buildSchema.js.map | 1 + apps/api-server/dist/config/createORM.js | 25 + apps/api-server/dist/config/createORM.js.map | 1 + .../dist/config/createORMOptions.js | 220 + .../dist/config/createORMOptions.js.map | 1 + .../dist/config/determineDatabaseUrl.js | 31 + .../dist/config/determineDatabaseUrl.js.map | 1 + .../api-server/dist/config/logConfigParser.js | 65 + .../dist/config/logConfigParser.js.map | 1 + .../dist/config/serverConfigParser.js | 344 + .../dist/config/serverConfigParser.js.map | 1 + apps/api-server/dist/config/types.js | 74 + apps/api-server/dist/config/types.js.map | 1 + apps/api-server/dist/connection/main.js | 161 + apps/api-server/dist/connection/main.js.map | 1 + apps/api-server/dist/createServer.js | 418 + apps/api-server/dist/createServer.js.map | 1 + apps/api-server/dist/entities-graphql/room.js | 252 + .../dist/entities-graphql/room.js.map | 1 + .../dist/entities-graphql/roomAsListItem.js | 19 + .../entities-graphql/roomAsListItem.js.map | 1 + .../dist/entities-graphql/roomMessage.js | 41 + .../dist/entities-graphql/roomMessage.js.map | 1 + apps/api-server/dist/entities/file/entity.js | 88 + .../dist/entities/file/entity.js.map | 1 + .../dist/entities/fileTag/entity.js | 36 + .../dist/entities/fileTag/entity.js.map | 1 + .../dist/entities/participant/entity.js | 39 + .../dist/entities/participant/entity.js.map | 1 + apps/api-server/dist/entities/room/entity.js | 177 + .../dist/entities/room/entity.js.map | 1 + .../dist/entities/room/isBookmarked.js | 8 + .../dist/entities/room/isBookmarked.js.map | 1 + apps/api-server/dist/entities/room/role.js | 9 + .../api-server/dist/entities/room/role.js.map | 1 + .../dist/entities/roomMessage/entity.js | 420 + .../dist/entities/roomMessage/entity.js.map | 1 + apps/api-server/dist/entities/user/entity.js | 75 + .../dist/entities/user/entity.js.map | 1 + .../dist/entities/user/getUserIfEntry.js | 36 + .../dist/entities/user/getUserIfEntry.js.map | 1 + .../dist/enums/AnswerRollCallFailureType.js | 10 + .../enums/AnswerRollCallFailureType.js.map | 1 + apps/api-server/dist/enums/BaasType.js | 7 + apps/api-server/dist/enums/BaasType.js.map | 1 + .../enums/ChangeParticipantNameFailureType.js | 8 + .../ChangeParticipantNameFailureType.js.map | 1 + .../dist/enums/CloseRollCallFailureType.js | 11 + .../enums/CloseRollCallFailureType.js.map | 1 + .../dist/enums/CreateRoomFailureType.js | 7 + .../dist/enums/CreateRoomFailureType.js.map | 1 + .../dist/enums/DeleteMessageFailureType.js | 11 + .../enums/DeleteMessageFailureType.js.map | 1 + .../enums/DeleteRoomAsAdminFailureType.js | 7 + .../enums/DeleteRoomAsAdminFailureType.js.map | 1 + .../dist/enums/DeleteRoomFailureType.js | 8 + .../dist/enums/DeleteRoomFailureType.js.map | 1 + .../dist/enums/EditMessageFailureType.js | 11 + .../dist/enums/EditMessageFailureType.js.map | 1 + .../dist/enums/EntryToServerResultType.js | 11 + .../dist/enums/EntryToServerResultType.js.map | 1 + apps/api-server/dist/enums/FileListType.js | 8 + .../api-server/dist/enums/FileListType.js.map | 1 + .../dist/enums/FilePermissionType.js | 8 + .../dist/enums/FilePermissionType.js.map | 1 + apps/api-server/dist/enums/FileSourceType.js | 52 + .../dist/enums/FileSourceType.js.map | 1 + .../enums/GetRoomConnectionFailureType.js | 8 + .../enums/GetRoomConnectionFailureType.js.map | 1 + .../dist/enums/GetRoomFailureType.js | 7 + .../dist/enums/GetRoomFailureType.js.map | 1 + .../dist/enums/GetRoomLogFailureType.js | 10 + .../dist/enums/GetRoomLogFailureType.js.map | 1 + .../dist/enums/GetRoomMessagesFailureType.js | 8 + .../enums/GetRoomMessagesFailureType.js.map | 1 + .../dist/enums/GetRoomsListFailureType.js | 7 + .../dist/enums/GetRoomsListFailureType.js.map | 1 + .../dist/enums/JoinRoomFailureType.js | 10 + .../dist/enums/JoinRoomFailureType.js.map | 1 + .../dist/enums/LeaveRoomFailureType.js | 8 + .../dist/enums/LeaveRoomFailureType.js.map | 1 + .../enums/MakeMessageNotSecretFailureType.js | 11 + .../MakeMessageNotSecretFailureType.js.map | 1 + .../dist/enums/OperateRoomFailureType.js | 7 + .../dist/enums/OperateRoomFailureType.js.map | 1 + .../dist/enums/ParticipantRoleType.js | 36 + .../dist/enums/ParticipantRoleType.js.map | 1 + .../dist/enums/PerformRollCallFailureType.js | 10 + .../enums/PerformRollCallFailureType.js.map | 1 + apps/api-server/dist/enums/PieceLogType.js | 8 + .../api-server/dist/enums/PieceLogType.js.map | 1 + apps/api-server/dist/enums/PrereleaseType.js | 9 + .../dist/enums/PrereleaseType.js.map | 1 + .../dist/enums/PromoteFailureType.js | 10 + .../dist/enums/PromoteFailureType.js.map | 1 + .../enums/ResetRoomMessagesFailureType.js | 9 + .../enums/ResetRoomMessagesFailureType.js.map | 1 + .../dist/enums/RoomParameterNameType.js | 9 + .../dist/enums/RoomParameterNameType.js.map | 1 + .../dist/enums/UpdateBookmarkFailureType.js | 7 + .../enums/UpdateBookmarkFailureType.js.map | 1 + .../WriteRoomPrivateMessageFailureType.js | 10 + .../WriteRoomPrivateMessageFailureType.js.map | 1 + .../WriteRoomPublicMessageFailureType.js | 11 + .../WriteRoomPublicMessageFailureType.js.map | 1 + .../enums/WriteRoomSoundEffectFailureType.js | 9 + .../WriteRoomSoundEffectFailureType.js.map | 1 + .../enums/WritingMessageStatusInputType.js | 9 + .../WritingMessageStatusInputType.js.map | 1 + .../dist/enums/WritingMessageStatusType.js | 10 + .../enums/WritingMessageStatusType.js.map | 1 + apps/api-server/dist/env.js | 62 + apps/api-server/dist/env.js.map | 1 + .../graphql/middlewares/QueueMiddleware.js | 18 + .../middlewares/QueueMiddleware.js.map | 1 + .../middlewares/RateLimitMiddleware.js | 21 + .../middlewares/RateLimitMiddleware.js.map | 1 + .../dist/graphql/objects/fileItem.js | 43 + .../dist/graphql/objects/fileItem.js.map | 1 + .../dist/graphql/objects/filePath.js | 23 + .../dist/graphql/objects/filePath.js.map | 1 + apps/api-server/dist/graphql/objects/pong.js | 19 + .../dist/graphql/objects/pong.js.map | 1 + apps/api-server/dist/graphql/objects/room.js | 124 + .../dist/graphql/objects/room.js.map | 1 + .../dist/graphql/objects/roomMessage.js | 644 ++ .../dist/graphql/objects/roomMessage.js.map | 1 + .../dist/graphql/objects/serverInfo.js | 56 + .../dist/graphql/objects/serverInfo.js.map | 1 + .../dist/graphql/registerEnumTypes.js | 150 + .../dist/graphql/registerEnumTypes.js.map | 1 + .../dist/graphql/resolvers/allResolvers.js | 90 + .../graphql/resolvers/allResolvers.js.map | 1 + .../mutations/answerRollCall/resolver.js | 104 + .../mutations/answerRollCall/resolver.js.map | 1 + .../changeParitipantName/resolver.js | 95 + .../changeParitipantName/resolver.js.map | 1 + .../mutations/closeRollCall/resolver.js | 88 + .../mutations/closeRollCall/resolver.js.map | 1 + .../mutations/createFileTag/resolver.js | 56 + .../mutations/createFileTag/resolver.js.map | 1 + .../mutations/createRoom/resolver.js | 163 + .../mutations/createRoom/resolver.js.map | 1 + .../mutations/deleteFileTag/resolver.js | 40 + .../mutations/deleteFileTag/resolver.js.map | 1 + .../mutations/deleteFiles/resolver.js | 90 + .../mutations/deleteFiles/resolver.js.map | 1 + .../mutations/deleteMessage/resolver.js | 121 + .../mutations/deleteMessage/resolver.js.map | 1 + .../mutations/deleteRoom/resolver.js | 73 + .../mutations/deleteRoom/resolver.js.map | 1 + .../mutations/deleteRoomAsAdmin/resolver.js | 68 + .../deleteRoomAsAdmin/resolver.js.map | 1 + .../mutations/editFileTags/resolver.js | 101 + .../mutations/editFileTags/resolver.js.map | 1 + .../mutations/editMessage/resolver.js | 129 + .../mutations/editMessage/resolver.js.map | 1 + .../mutations/entryToServer/resolver.js | 74 + .../mutations/entryToServer/resolver.js.map | 1 + .../resolvers/mutations/joinRoom/resolver.js | 197 + .../mutations/joinRoom/resolver.js.map | 1 + .../resolvers/mutations/leaveRoom/resolver.js | 76 + .../mutations/leaveRoom/resolver.js.map | 1 + .../makeMessageNotSecret/resolver.js | 119 + .../makeMessageNotSecret/resolver.js.map | 1 + .../resolvers/mutations/operate/resolver.js | 292 + .../mutations/operate/resolver.js.map | 1 + .../performRollCall/performRollCall.js | 69 + .../performRollCall/performRollCall.js.map | 1 + .../mutations/performRollCall/resolver.js | 94 + .../mutations/performRollCall/resolver.js.map | 1 + .../resolvers/mutations/ping/resolver.js | 32 + .../resolvers/mutations/ping/resolver.js.map | 1 + .../mutations/promoteToPlayer/resolver.js | 128 + .../mutations/promoteToPlayer/resolver.js.map | 1 + .../mutations/renameFiles/resolver.js | 59 + .../mutations/renameFiles/resolver.js.map | 1 + .../mutations/resetMessages/resolver.js | 83 + .../mutations/resetMessages/resolver.js.map | 1 + .../mutations/updateBookmark/resolver.js | 107 + .../mutations/updateBookmark/resolver.js.map | 1 + .../updateWritingMessageStatus/resolver.js | 74 + .../resolver.js.map | 1 + .../mutations/writePrivateMessage/resolver.js | 164 + .../writePrivateMessage/resolver.js.map | 1 + .../mutations/writePublicMessage/resolver.js | 181 + .../writePublicMessage/resolver.js.map | 1 + .../writeRoomSoundEffect/resolver.js | 107 + .../writeRoomSoundEffect/resolver.js.map | 1 + .../getAvailableGameSystems/resolver.js | 49 + .../getAvailableGameSystems/resolver.js.map | 1 + .../queries/getDiceHelpMessage/resolver.js | 29 + .../getDiceHelpMessage/resolver.js.map | 1 + .../resolvers/queries/getFiles/resolver.js | 80 + .../queries/getFiles/resolver.js.map | 1 + .../resolvers/queries/getLog/resolver.js | 103 + .../resolvers/queries/getLog/resolver.js.map | 1 + .../resolvers/queries/getMessages/resolver.js | 60 + .../queries/getMessages/resolver.js.map | 1 + .../resolvers/queries/getMyRoles/resolver.js | 41 + .../queries/getMyRoles/resolver.js.map | 1 + .../resolvers/queries/getRoom/resolver.js | 138 + .../resolvers/queries/getRoom/resolver.js.map | 1 + .../queries/getRoomAsListItem/resolver.js | 75 + .../queries/getRoomAsListItem/resolver.js.map | 1 + .../queries/getRoomConnections/resolver.js | 95 + .../getRoomConnections/resolver.js.map | 1 + .../queries/getRoomsList/resolver.js | 74 + .../queries/getRoomsList/resolver.js.map | 1 + .../queries/getServerInfo/resolver.js | 53 + .../queries/getServerInfo/resolver.js.map | 1 + .../resolvers/queries/isEntry/resolver.js | 33 + .../resolvers/queries/isEntry/resolver.js.map | 1 + .../resolvers/subsciptions/pong/resolver.js | 26 + .../subsciptions/pong/resolver.js.map | 1 + .../resolvers/subsciptions/pong/topics.js | 6 + .../resolvers/subsciptions/pong/topics.js.map | 1 + .../subsciptions/roomEvent/resolver.js | 211 + .../subsciptions/roomEvent/resolver.js.map | 1 + .../subsciptions/roomEvent/topics.js | 6 + .../subsciptions/roomEvent/topics.js.map | 1 + .../dist/graphql/resolvers/types.js | 6 + .../dist/graphql/resolvers/types.js.map | 1 + .../resolvers/utils/messageAnalyzer.js | 129 + .../resolvers/utils/messageAnalyzer.js.map | 1 + .../dist/graphql/resolvers/utils/utils.js | 430 + .../dist/graphql/resolvers/utils/utils.js.map | 1 + apps/api-server/dist/html/Html.js | 38 + apps/api-server/dist/html/Html.js.map | 1 + apps/api-server/dist/index.js | 11 + apps/api-server/dist/index.js.map | 1 + apps/api-server/dist/initializeLogger.js | 30 + apps/api-server/dist/initializeLogger.js.map | 1 + apps/api-server/dist/main.js | 138 + apps/api-server/dist/main.js.map | 1 + apps/api-server/dist/migrate.js | 191 + apps/api-server/dist/migrate.js.map | 1 + apps/api-server/dist/mikro-orm.js | 136 + apps/api-server/dist/mikro-orm.js.map | 1 + apps/api-server/dist/rateLimit/consume.js | 21 + apps/api-server/dist/rateLimit/consume.js.map | 1 + apps/api-server/dist/run-bcryptInteractive.js | 108 + .../dist/run-bcryptInteractive.js.map | 1 + apps/api-server/dist/run-buildSchemaSync.js | 10 + .../dist/run-buildSchemaSync.js.map | 1 + .../dist/run-generateFlyioDockerfile.js | 12 + .../dist/run-generateFlyioDockerfile.js.map | 1 + apps/api-server/dist/run-migrationCheck.js | 14 + .../api-server/dist/run-migrationCheck.js.map | 1 + apps/api-server/dist/run-migrationCreate.js | 19 + .../dist/run-migrationCreate.js.map | 1 + apps/api-server/dist/run-migrationDown.js | 13 + apps/api-server/dist/run-migrationDown.js.map | 1 + apps/api-server/dist/run-migrationUp.js | 14 + apps/api-server/dist/run-migrationUp.js.map | 1 + apps/api-server/dist/utils/appConsole.js | 42 + apps/api-server/dist/utils/appConsole.js.map | 1 + apps/api-server/dist/utils/commandLineArgs.js | 127 + .../dist/utils/commandLineArgs.js.map | 1 + .../dist/utils/convertToMaxLength100String.js | 15 + .../utils/convertToMaxLength100String.js.map | 1 + apps/api-server/dist/utils/easyFlake.js | 10 + apps/api-server/dist/utils/easyFlake.js.map | 1 + apps/api-server/dist/utils/migrations.js | 13 + apps/api-server/dist/utils/migrations.js.map | 1 + apps/api-server/dist/utils/promiseQueue.js | 119 + .../api-server/dist/utils/promiseQueue.js.map | 1 + apps/api-server/dist/utils/roles.js | 79 + apps/api-server/dist/utils/roles.js.map | 1 + apps/api-server/dist/utils/thumbsDir.js | 6 + apps/api-server/dist/utils/thumbsDir.js.map | 1 + packages/cache/dist/cjs/index.d.ts | 2 + packages/cache/dist/cjs/index.d.ts.map | 1 + packages/cache/dist/cjs/index.js | 129 + packages/cache/dist/cjs/index.js.map | 1 + packages/cache/dist/cjs/main.d.ts | 27 + packages/cache/dist/cjs/main.d.ts.map | 1 + packages/cache/dist/esm/index.d.ts | 2 + packages/cache/dist/esm/index.d.ts.map | 1 + packages/cache/dist/esm/index.js | 122 + packages/cache/dist/esm/index.js.map | 1 + packages/cache/dist/esm/main.d.ts | 27 + packages/cache/dist/esm/main.d.ts.map | 1 + packages/core/dist/cjs/index.d.ts | 59 + packages/core/dist/cjs/index.d.ts.map | 1 + packages/core/dist/cjs/index.js | 7166 +++++++++++++++++ packages/core/dist/cjs/index.js.map | 1 + .../dist/cjs/internal/__test__/fixtures.d.ts | 34 + .../cjs/internal/__test__/fixtures.d.ts.map | 1 + .../internal/__test__/normalizeRoomState.d.ts | 2 + .../__test__/normalizeRoomState.d.ts.map | 1 + .../core/dist/cjs/internal/command/bgm.d.ts | 11 + .../dist/cjs/internal/command/bgm.d.ts.map | 1 + .../core/dist/cjs/internal/command/bgms.d.ts | 14 + .../dist/cjs/internal/command/bgms.d.ts.map | 1 + .../dist/cjs/internal/command/boolParam.d.ts | 11 + .../cjs/internal/command/boolParam.d.ts.map | 1 + .../dist/cjs/internal/command/boolParams.d.ts | 17 + .../cjs/internal/command/boolParams.d.ts.map | 1 + .../dist/cjs/internal/command/character.d.ts | 13 + .../cjs/internal/command/character.d.ts.map | 1 + .../dist/cjs/internal/command/filePath.d.ts | 7 + .../cjs/internal/command/filePath.d.ts.map | 1 + .../core/dist/cjs/internal/command/main.d.ts | 19 + .../dist/cjs/internal/command/main.d.ts.map | 1 + .../dist/cjs/internal/command/numParam.d.ts | 11 + .../cjs/internal/command/numParam.d.ts.map | 1 + .../dist/cjs/internal/command/numParams.d.ts | 17 + .../cjs/internal/command/numParams.d.ts.map | 1 + .../dist/cjs/internal/command/paramNames.d.ts | 16 + .../cjs/internal/command/paramNames.d.ts.map | 1 + .../cjs/internal/command/participant.d.ts | 11 + .../cjs/internal/command/participant.d.ts.map | 1 + .../core/dist/cjs/internal/command/room.d.ts | 15 + .../dist/cjs/internal/command/room.d.ts.map | 1 + .../cjs/internal/command/stateRecord.d.ts | 13 + .../cjs/internal/command/stateRecord.d.ts.map | 1 + .../dist/cjs/internal/command/strParam.d.ts | 11 + .../cjs/internal/command/strParam.d.ts.map | 1 + .../dist/cjs/internal/command/strParams.d.ts | 16 + .../cjs/internal/command/strParams.d.ts.map | 1 + .../core/dist/cjs/internal/constants.d.ts | 5 + .../core/dist/cjs/internal/constants.d.ts.map | 1 + packages/core/dist/cjs/internal/env.d.ts | 26 + packages/core/dist/cjs/internal/env.d.ts.map | 1 + .../core/dist/cjs/internal/expression.d.ts | 13 + .../dist/cjs/internal/expression.d.ts.map | 1 + .../cjs/internal/fake/fakeFirebaseConfig.d.ts | 17 + .../internal/fake/fakeFirebaseConfig.d.ts.map | 1 + .../dist/cjs/internal/firebaseConfig.d.ts | 25 + .../dist/cjs/internal/firebaseConfig.d.ts.map | 1 + .../cjs/internal/forceMaxLength100String.d.ts | 3 + .../internal/forceMaxLength100String.d.ts.map | 1 + packages/core/dist/cjs/internal/indexes.d.ts | 13 + .../core/dist/cjs/internal/indexes.d.ts.map | 1 + .../dist/cjs/internal/maxLengthString.d.ts | 10 + .../cjs/internal/maxLengthString.d.ts.map | 1 + packages/core/dist/cjs/internal/maybe.d.ts | 5 + .../core/dist/cjs/internal/maybe.d.ts.map | 1 + packages/core/dist/cjs/internal/ot/array.d.ts | 94 + .../core/dist/cjs/internal/ot/array.d.ts.map | 1 + .../ot/flocon/boardPosition/functions.d.ts | 6 + .../flocon/boardPosition/functions.d.ts.map | 1 + .../ot/flocon/boardPosition/types.d.ts | 109 + .../ot/flocon/boardPosition/types.d.ts.map | 1 + .../ot/flocon/compositeKey/types.d.ts | 16 + .../ot/flocon/compositeKey/types.d.ts.map | 1 + .../internal/ot/flocon/filePath/types.d.ts | 41 + .../ot/flocon/filePath/types.d.ts.map | 1 + .../internal/ot/flocon/piece/functions.d.ts | 6 + .../ot/flocon/piece/functions.d.ts.map | 1 + .../cjs/internal/ot/flocon/piece/log.d.ts | 4 + .../cjs/internal/ot/flocon/piece/log.d.ts.map | 1 + .../cjs/internal/ot/flocon/piece/types.d.ts | 141 + .../internal/ot/flocon/piece/types.d.ts.map | 1 + .../ot/flocon/room/bgm/functions.d.ts | 6 + .../ot/flocon/room/bgm/functions.d.ts.map | 1 + .../internal/ot/flocon/room/bgm/types.d.ts | 39 + .../ot/flocon/room/bgm/types.d.ts.map | 1 + .../room/board/dicePiece/converter.d.ts | 4 + .../room/board/dicePiece/converter.d.ts.map | 1 + .../board/dicePiece/dieValue/functions.d.ts | 6 + .../dicePiece/dieValue/functions.d.ts.map | 1 + .../room/board/dicePiece/dieValue/types.d.ts | 28 + .../board/dicePiece/dieValue/types.d.ts.map | 1 + .../room/board/dicePiece/functions.d.ts | 8 + .../room/board/dicePiece/functions.d.ts.map | 1 + .../ot/flocon/room/board/dicePiece/log.d.ts | 617 ++ .../flocon/room/board/dicePiece/log.d.ts.map | 1 + .../ot/flocon/room/board/dicePiece/types.d.ts | 102 + .../room/board/dicePiece/types.d.ts.map | 1 + .../ot/flocon/room/board/functions.d.ts | 8 + .../ot/flocon/room/board/functions.d.ts.map | 1 + .../room/board/imagePiece/functions.d.ts | 7 + .../room/board/imagePiece/functions.d.ts.map | 1 + .../flocon/room/board/imagePiece/types.d.ts | 104 + .../room/board/imagePiece/types.d.ts.map | 1 + .../room/board/shapePiece/functions.d.ts | 7 + .../room/board/shapePiece/functions.d.ts.map | 1 + .../flocon/room/board/shapePiece/types.d.ts | 125 + .../room/board/shapePiece/types.d.ts.map | 1 + .../room/board/stringPiece/converter.d.ts | 4 + .../room/board/stringPiece/converter.d.ts.map | 1 + .../room/board/stringPiece/functions.d.ts | 8 + .../room/board/stringPiece/functions.d.ts.map | 1 + .../ot/flocon/room/board/stringPiece/log.d.ts | 395 + .../room/board/stringPiece/log.d.ts.map | 1 + .../flocon/room/board/stringPiece/types.d.ts | 96 + .../room/board/stringPiece/types.d.ts.map | 1 + .../internal/ot/flocon/room/board/types.d.ts | 485 ++ .../ot/flocon/room/board/types.d.ts.map | 1 + .../room/character/boolParam/functions.d.ts | 6 + .../character/boolParam/functions.d.ts.map | 1 + .../room/character/boolParam/types.d.ts | 24 + .../room/character/boolParam/types.d.ts.map | 1 + .../character/characterPiece/functions.d.ts | 6 + .../characterPiece/functions.d.ts.map | 1 + .../room/character/characterPiece/types.d.ts | 84 + .../character/characterPiece/types.d.ts.map | 1 + .../room/character/command/functions.d.ts | 6 + .../room/character/command/functions.d.ts.map | 1 + .../flocon/room/character/command/types.d.ts | 18 + .../room/character/command/types.d.ts.map | 1 + .../ot/flocon/room/character/functions.d.ts | 8 + .../flocon/room/character/functions.d.ts.map | 1 + .../room/character/numParam/functions.d.ts | 6 + .../character/numParam/functions.d.ts.map | 1 + .../flocon/room/character/numParam/types.d.ts | 27 + .../room/character/numParam/types.d.ts.map | 1 + .../character/portraitPiece/functions.d.ts | 6 + .../portraitPiece/functions.d.ts.map | 1 + .../room/character/portraitPiece/types.d.ts | 59 + .../character/portraitPiece/types.d.ts.map | 1 + .../room/character/strParam/functions.d.ts | 6 + .../character/strParam/functions.d.ts.map | 1 + .../flocon/room/character/strParam/types.d.ts | 24 + .../room/character/strParam/types.d.ts.map | 1 + .../ot/flocon/room/character/types.d.ts | 424 + .../ot/flocon/room/character/types.d.ts.map | 1 + .../internal/ot/flocon/room/converter.d.ts | 17 + .../ot/flocon/room/converter.d.ts.map | 1 + .../internal/ot/flocon/room/functions.d.ts | 23 + .../ot/flocon/room/functions.d.ts.map | 1 + .../dist/cjs/internal/ot/flocon/room/log.d.ts | 23 + .../cjs/internal/ot/flocon/room/log.d.ts.map | 1 + .../ot/flocon/room/memo/functions.d.ts | 6 + .../ot/flocon/room/memo/functions.d.ts.map | 1 + .../internal/ot/flocon/room/memo/types.d.ts | 34 + .../ot/flocon/room/memo/types.d.ts.map | 1 + .../ot/flocon/room/paramName/functions.d.ts | 6 + .../flocon/room/paramName/functions.d.ts.map | 1 + .../ot/flocon/room/paramName/types.d.ts | 13 + .../ot/flocon/room/paramName/types.d.ts.map | 1 + .../ot/flocon/room/participant/functions.d.ts | 10 + .../room/participant/functions.d.ts.map | 1 + .../ot/flocon/room/participant/types.d.ts | 25 + .../ot/flocon/room/participant/types.d.ts.map | 1 + .../ot/flocon/room/rollCall/functions.d.ts | 9 + .../flocon/room/rollCall/functions.d.ts.map | 1 + .../flocon/room/rollCall/getOpenRollCall.d.ts | 40 + .../room/rollCall/getOpenRollCall.d.ts.map | 1 + .../flocon/room/rollCall/isOpenRollCall.d.ts | 4 + .../room/rollCall/isOpenRollCall.d.ts.map | 1 + .../rollCallParticipant/functions.d.ts | 9 + .../rollCallParticipant/functions.d.ts.map | 1 + .../rollCall/rollCallParticipant/types.d.ts | 15 + .../rollCallParticipant/types.d.ts.map | 1 + .../ot/flocon/room/rollCall/types.d.ts | 103 + .../ot/flocon/room/rollCall/types.d.ts.map | 1 + .../cjs/internal/ot/flocon/room/types.d.ts | 2413 ++++++ .../internal/ot/flocon/room/types.d.ts.map | 1 + .../internal/ot/flocon/shape/functions.d.ts | 6 + .../ot/flocon/shape/functions.d.ts.map | 1 + .../cjs/internal/ot/flocon/shape/types.d.ts | 38 + .../internal/ot/flocon/shape/types.d.ts.map | 1 + .../cjs/internal/ot/generator/functions.d.ts | 34 + .../internal/ot/generator/functions.d.ts.map | 1 + .../internal/ot/generator/omitVersion.d.ts | 2 + .../ot/generator/omitVersion.d.ts.map | 1 + .../dist/cjs/internal/ot/generator/types.d.ts | 140 + .../cjs/internal/ot/generator/types.d.ts.map | 1 + .../internal/ot/nullableTextOperation.d.ts | 203 + .../ot/nullableTextOperation.d.ts.map | 1 + .../core/dist/cjs/internal/ot/otError.d.ts | 9 + .../dist/cjs/internal/ot/otError.d.ts.map | 1 + .../cjs/internal/ot/paramRecordOperation.d.ts | 86 + .../internal/ot/paramRecordOperation.d.ts.map | 1 + .../core/dist/cjs/internal/ot/record.d.ts | 6 + .../core/dist/cjs/internal/ot/record.d.ts.map | 1 + .../dist/cjs/internal/ot/recordOperation.d.ts | 208 + .../cjs/internal/ot/recordOperation.d.ts.map | 1 + .../internal/ot/recordOperationElement.d.ts | 214 + .../ot/recordOperationElement.d.ts.map | 1 + .../dist/cjs/internal/ot/requestedBy.d.ts | 65 + .../dist/cjs/internal/ot/requestedBy.d.ts.map | 1 + packages/core/dist/cjs/internal/ot/shape.d.ts | 13 + .../core/dist/cjs/internal/ot/shape.d.ts.map | 1 + .../dist/cjs/internal/ot/textOperation.d.ts | 130 + .../cjs/internal/ot/textOperation.d.ts.map | 1 + .../cjs/internal/ot/util/array/arrayDiff.d.ts | 12 + .../internal/ot/util/array/arrayDiff.d.ts.map | 1 + .../ot/util/array/arrayTransform.d.ts | 9 + .../ot/util/array/arrayTransform.d.ts.map | 1 + .../cjs/internal/ot/util/createOperation.d.ts | 18 + .../internal/ot/util/createOperation.d.ts.map | 1 + .../dist/cjs/internal/ot/util/isValidKey.d.ts | 2 + .../cjs/internal/ot/util/isValidKey.d.ts.map | 1 + .../internal/ot/util/replaceOperation.d.ts | 17 + .../ot/util/replaceOperation.d.ts.map | 1 + .../core/dist/cjs/internal/ot/util/type.d.ts | 50 + .../dist/cjs/internal/ot/util/type.d.ts.map | 1 + .../dist/cjs/internal/publicChannelKey.d.ts | 15 + .../cjs/internal/publicChannelKey.d.ts.map | 1 + packages/core/dist/cjs/internal/simpleId.d.ts | 2 + .../core/dist/cjs/internal/simpleId.d.ts.map | 1 + packages/core/dist/cjs/internal/toml.d.ts | 8 + packages/core/dist/cjs/internal/toml.d.ts.map | 1 + .../core/dist/cjs/internal/uploaderPath.d.ts | 23 + .../dist/cjs/internal/uploaderPath.d.ts.map | 1 + packages/core/dist/esm/index.d.ts | 59 + packages/core/dist/esm/index.d.ts.map | 1 + packages/core/dist/esm/index.js | 7029 ++++++++++++++++ packages/core/dist/esm/index.js.map | 1 + .../dist/esm/internal/__test__/fixtures.d.ts | 34 + .../esm/internal/__test__/fixtures.d.ts.map | 1 + .../internal/__test__/normalizeRoomState.d.ts | 2 + .../__test__/normalizeRoomState.d.ts.map | 1 + .../core/dist/esm/internal/command/bgm.d.ts | 11 + .../dist/esm/internal/command/bgm.d.ts.map | 1 + .../core/dist/esm/internal/command/bgms.d.ts | 14 + .../dist/esm/internal/command/bgms.d.ts.map | 1 + .../dist/esm/internal/command/boolParam.d.ts | 11 + .../esm/internal/command/boolParam.d.ts.map | 1 + .../dist/esm/internal/command/boolParams.d.ts | 17 + .../esm/internal/command/boolParams.d.ts.map | 1 + .../dist/esm/internal/command/character.d.ts | 13 + .../esm/internal/command/character.d.ts.map | 1 + .../dist/esm/internal/command/filePath.d.ts | 7 + .../esm/internal/command/filePath.d.ts.map | 1 + .../core/dist/esm/internal/command/main.d.ts | 19 + .../dist/esm/internal/command/main.d.ts.map | 1 + .../dist/esm/internal/command/numParam.d.ts | 11 + .../esm/internal/command/numParam.d.ts.map | 1 + .../dist/esm/internal/command/numParams.d.ts | 17 + .../esm/internal/command/numParams.d.ts.map | 1 + .../dist/esm/internal/command/paramNames.d.ts | 16 + .../esm/internal/command/paramNames.d.ts.map | 1 + .../esm/internal/command/participant.d.ts | 11 + .../esm/internal/command/participant.d.ts.map | 1 + .../core/dist/esm/internal/command/room.d.ts | 15 + .../dist/esm/internal/command/room.d.ts.map | 1 + .../esm/internal/command/stateRecord.d.ts | 13 + .../esm/internal/command/stateRecord.d.ts.map | 1 + .../dist/esm/internal/command/strParam.d.ts | 11 + .../esm/internal/command/strParam.d.ts.map | 1 + .../dist/esm/internal/command/strParams.d.ts | 16 + .../esm/internal/command/strParams.d.ts.map | 1 + .../core/dist/esm/internal/constants.d.ts | 5 + .../core/dist/esm/internal/constants.d.ts.map | 1 + packages/core/dist/esm/internal/env.d.ts | 26 + packages/core/dist/esm/internal/env.d.ts.map | 1 + .../core/dist/esm/internal/expression.d.ts | 13 + .../dist/esm/internal/expression.d.ts.map | 1 + .../esm/internal/fake/fakeFirebaseConfig.d.ts | 17 + .../internal/fake/fakeFirebaseConfig.d.ts.map | 1 + .../dist/esm/internal/firebaseConfig.d.ts | 25 + .../dist/esm/internal/firebaseConfig.d.ts.map | 1 + .../esm/internal/forceMaxLength100String.d.ts | 3 + .../internal/forceMaxLength100String.d.ts.map | 1 + packages/core/dist/esm/internal/indexes.d.ts | 13 + .../core/dist/esm/internal/indexes.d.ts.map | 1 + .../dist/esm/internal/maxLengthString.d.ts | 10 + .../esm/internal/maxLengthString.d.ts.map | 1 + packages/core/dist/esm/internal/maybe.d.ts | 5 + .../core/dist/esm/internal/maybe.d.ts.map | 1 + packages/core/dist/esm/internal/ot/array.d.ts | 94 + .../core/dist/esm/internal/ot/array.d.ts.map | 1 + .../ot/flocon/boardPosition/functions.d.ts | 6 + .../flocon/boardPosition/functions.d.ts.map | 1 + .../ot/flocon/boardPosition/types.d.ts | 109 + .../ot/flocon/boardPosition/types.d.ts.map | 1 + .../ot/flocon/compositeKey/types.d.ts | 16 + .../ot/flocon/compositeKey/types.d.ts.map | 1 + .../internal/ot/flocon/filePath/types.d.ts | 41 + .../ot/flocon/filePath/types.d.ts.map | 1 + .../internal/ot/flocon/piece/functions.d.ts | 6 + .../ot/flocon/piece/functions.d.ts.map | 1 + .../esm/internal/ot/flocon/piece/log.d.ts | 4 + .../esm/internal/ot/flocon/piece/log.d.ts.map | 1 + .../esm/internal/ot/flocon/piece/types.d.ts | 141 + .../internal/ot/flocon/piece/types.d.ts.map | 1 + .../ot/flocon/room/bgm/functions.d.ts | 6 + .../ot/flocon/room/bgm/functions.d.ts.map | 1 + .../internal/ot/flocon/room/bgm/types.d.ts | 39 + .../ot/flocon/room/bgm/types.d.ts.map | 1 + .../room/board/dicePiece/converter.d.ts | 4 + .../room/board/dicePiece/converter.d.ts.map | 1 + .../board/dicePiece/dieValue/functions.d.ts | 6 + .../dicePiece/dieValue/functions.d.ts.map | 1 + .../room/board/dicePiece/dieValue/types.d.ts | 28 + .../board/dicePiece/dieValue/types.d.ts.map | 1 + .../room/board/dicePiece/functions.d.ts | 8 + .../room/board/dicePiece/functions.d.ts.map | 1 + .../ot/flocon/room/board/dicePiece/log.d.ts | 617 ++ .../flocon/room/board/dicePiece/log.d.ts.map | 1 + .../ot/flocon/room/board/dicePiece/types.d.ts | 102 + .../room/board/dicePiece/types.d.ts.map | 1 + .../ot/flocon/room/board/functions.d.ts | 8 + .../ot/flocon/room/board/functions.d.ts.map | 1 + .../room/board/imagePiece/functions.d.ts | 7 + .../room/board/imagePiece/functions.d.ts.map | 1 + .../flocon/room/board/imagePiece/types.d.ts | 104 + .../room/board/imagePiece/types.d.ts.map | 1 + .../room/board/shapePiece/functions.d.ts | 7 + .../room/board/shapePiece/functions.d.ts.map | 1 + .../flocon/room/board/shapePiece/types.d.ts | 125 + .../room/board/shapePiece/types.d.ts.map | 1 + .../room/board/stringPiece/converter.d.ts | 4 + .../room/board/stringPiece/converter.d.ts.map | 1 + .../room/board/stringPiece/functions.d.ts | 8 + .../room/board/stringPiece/functions.d.ts.map | 1 + .../ot/flocon/room/board/stringPiece/log.d.ts | 395 + .../room/board/stringPiece/log.d.ts.map | 1 + .../flocon/room/board/stringPiece/types.d.ts | 96 + .../room/board/stringPiece/types.d.ts.map | 1 + .../internal/ot/flocon/room/board/types.d.ts | 485 ++ .../ot/flocon/room/board/types.d.ts.map | 1 + .../room/character/boolParam/functions.d.ts | 6 + .../character/boolParam/functions.d.ts.map | 1 + .../room/character/boolParam/types.d.ts | 24 + .../room/character/boolParam/types.d.ts.map | 1 + .../character/characterPiece/functions.d.ts | 6 + .../characterPiece/functions.d.ts.map | 1 + .../room/character/characterPiece/types.d.ts | 84 + .../character/characterPiece/types.d.ts.map | 1 + .../room/character/command/functions.d.ts | 6 + .../room/character/command/functions.d.ts.map | 1 + .../flocon/room/character/command/types.d.ts | 18 + .../room/character/command/types.d.ts.map | 1 + .../ot/flocon/room/character/functions.d.ts | 8 + .../flocon/room/character/functions.d.ts.map | 1 + .../room/character/numParam/functions.d.ts | 6 + .../character/numParam/functions.d.ts.map | 1 + .../flocon/room/character/numParam/types.d.ts | 27 + .../room/character/numParam/types.d.ts.map | 1 + .../character/portraitPiece/functions.d.ts | 6 + .../portraitPiece/functions.d.ts.map | 1 + .../room/character/portraitPiece/types.d.ts | 59 + .../character/portraitPiece/types.d.ts.map | 1 + .../room/character/strParam/functions.d.ts | 6 + .../character/strParam/functions.d.ts.map | 1 + .../flocon/room/character/strParam/types.d.ts | 24 + .../room/character/strParam/types.d.ts.map | 1 + .../ot/flocon/room/character/types.d.ts | 424 + .../ot/flocon/room/character/types.d.ts.map | 1 + .../internal/ot/flocon/room/converter.d.ts | 17 + .../ot/flocon/room/converter.d.ts.map | 1 + .../internal/ot/flocon/room/functions.d.ts | 23 + .../ot/flocon/room/functions.d.ts.map | 1 + .../dist/esm/internal/ot/flocon/room/log.d.ts | 23 + .../esm/internal/ot/flocon/room/log.d.ts.map | 1 + .../ot/flocon/room/memo/functions.d.ts | 6 + .../ot/flocon/room/memo/functions.d.ts.map | 1 + .../internal/ot/flocon/room/memo/types.d.ts | 34 + .../ot/flocon/room/memo/types.d.ts.map | 1 + .../ot/flocon/room/paramName/functions.d.ts | 6 + .../flocon/room/paramName/functions.d.ts.map | 1 + .../ot/flocon/room/paramName/types.d.ts | 13 + .../ot/flocon/room/paramName/types.d.ts.map | 1 + .../ot/flocon/room/participant/functions.d.ts | 10 + .../room/participant/functions.d.ts.map | 1 + .../ot/flocon/room/participant/types.d.ts | 25 + .../ot/flocon/room/participant/types.d.ts.map | 1 + .../ot/flocon/room/rollCall/functions.d.ts | 9 + .../flocon/room/rollCall/functions.d.ts.map | 1 + .../flocon/room/rollCall/getOpenRollCall.d.ts | 40 + .../room/rollCall/getOpenRollCall.d.ts.map | 1 + .../flocon/room/rollCall/isOpenRollCall.d.ts | 4 + .../room/rollCall/isOpenRollCall.d.ts.map | 1 + .../rollCallParticipant/functions.d.ts | 9 + .../rollCallParticipant/functions.d.ts.map | 1 + .../rollCall/rollCallParticipant/types.d.ts | 15 + .../rollCallParticipant/types.d.ts.map | 1 + .../ot/flocon/room/rollCall/types.d.ts | 103 + .../ot/flocon/room/rollCall/types.d.ts.map | 1 + .../esm/internal/ot/flocon/room/types.d.ts | 2413 ++++++ .../internal/ot/flocon/room/types.d.ts.map | 1 + .../internal/ot/flocon/shape/functions.d.ts | 6 + .../ot/flocon/shape/functions.d.ts.map | 1 + .../esm/internal/ot/flocon/shape/types.d.ts | 38 + .../internal/ot/flocon/shape/types.d.ts.map | 1 + .../esm/internal/ot/generator/functions.d.ts | 34 + .../internal/ot/generator/functions.d.ts.map | 1 + .../internal/ot/generator/omitVersion.d.ts | 2 + .../ot/generator/omitVersion.d.ts.map | 1 + .../dist/esm/internal/ot/generator/types.d.ts | 140 + .../esm/internal/ot/generator/types.d.ts.map | 1 + .../internal/ot/nullableTextOperation.d.ts | 203 + .../ot/nullableTextOperation.d.ts.map | 1 + .../core/dist/esm/internal/ot/otError.d.ts | 9 + .../dist/esm/internal/ot/otError.d.ts.map | 1 + .../esm/internal/ot/paramRecordOperation.d.ts | 86 + .../internal/ot/paramRecordOperation.d.ts.map | 1 + .../core/dist/esm/internal/ot/record.d.ts | 6 + .../core/dist/esm/internal/ot/record.d.ts.map | 1 + .../dist/esm/internal/ot/recordOperation.d.ts | 208 + .../esm/internal/ot/recordOperation.d.ts.map | 1 + .../internal/ot/recordOperationElement.d.ts | 214 + .../ot/recordOperationElement.d.ts.map | 1 + .../dist/esm/internal/ot/requestedBy.d.ts | 65 + .../dist/esm/internal/ot/requestedBy.d.ts.map | 1 + packages/core/dist/esm/internal/ot/shape.d.ts | 13 + .../core/dist/esm/internal/ot/shape.d.ts.map | 1 + .../dist/esm/internal/ot/textOperation.d.ts | 130 + .../esm/internal/ot/textOperation.d.ts.map | 1 + .../esm/internal/ot/util/array/arrayDiff.d.ts | 12 + .../internal/ot/util/array/arrayDiff.d.ts.map | 1 + .../ot/util/array/arrayTransform.d.ts | 9 + .../ot/util/array/arrayTransform.d.ts.map | 1 + .../esm/internal/ot/util/createOperation.d.ts | 18 + .../internal/ot/util/createOperation.d.ts.map | 1 + .../dist/esm/internal/ot/util/isValidKey.d.ts | 2 + .../esm/internal/ot/util/isValidKey.d.ts.map | 1 + .../internal/ot/util/replaceOperation.d.ts | 17 + .../ot/util/replaceOperation.d.ts.map | 1 + .../core/dist/esm/internal/ot/util/type.d.ts | 50 + .../dist/esm/internal/ot/util/type.d.ts.map | 1 + .../dist/esm/internal/publicChannelKey.d.ts | 15 + .../esm/internal/publicChannelKey.d.ts.map | 1 + packages/core/dist/esm/internal/simpleId.d.ts | 2 + .../core/dist/esm/internal/simpleId.d.ts.map | 1 + packages/core/dist/esm/internal/toml.d.ts | 8 + packages/core/dist/esm/internal/toml.d.ts.map | 1 + .../core/dist/esm/internal/uploaderPath.d.ts | 23 + .../dist/esm/internal/uploaderPath.d.ts.map | 1 + .../dist/cjs/index.d.ts | 3 + .../dist/cjs/index.d.ts.map | 1 + .../default-pino-transport/dist/cjs/index.js | 74 + .../dist/cjs/index.js.map | 1 + .../dist/esm/index.d.ts | 3 + .../dist/esm/index.d.ts.map | 1 + .../default-pino-transport/dist/esm/index.js | 68 + .../dist/esm/index.js.map | 1 + .../flocon-script/dist/cjs/ScriptError.d.ts | 8 + .../dist/cjs/ScriptError.d.ts.map | 1 + .../flocon-script/dist/cjs/builtIn/Array.d.ts | 12 + .../dist/cjs/builtIn/Array.d.ts.map | 1 + .../flocon-script/dist/cjs/builtIn/Map.d.ts | 7 + .../dist/cjs/builtIn/Map.d.ts.map | 1 + .../dist/cjs/builtIn/Symbol.d.ts | 11 + .../dist/cjs/builtIn/Symbol.d.ts.map | 1 + .../dist/cjs/builtIn/console.d.ts | 13 + .../dist/cjs/builtIn/console.d.ts.map | 1 + packages/flocon-script/dist/cjs/context.d.ts | 14 + .../flocon-script/dist/cjs/context.d.ts.map | 1 + .../flocon-script/dist/cjs/fExpression.d.ts | 94 + .../dist/cjs/fExpression.d.ts.map | 1 + packages/flocon-script/dist/cjs/fPattern.d.ts | 19 + .../flocon-script/dist/cjs/fPattern.d.ts.map | 1 + .../flocon-script/dist/cjs/fStatement.d.ts | 68 + .../dist/cjs/fStatement.d.ts.map | 1 + .../flocon-script/dist/cjs/getRestValues.d.ts | 2 + .../dist/cjs/getRestValues.d.ts.map | 1 + packages/flocon-script/dist/cjs/index.d.ts | 23 + .../flocon-script/dist/cjs/index.d.ts.map | 1 + packages/flocon-script/dist/cjs/index.js | 2409 ++++++ packages/flocon-script/dist/cjs/index.js.map | 1 + packages/flocon-script/dist/cjs/main.d.ts | 8 + packages/flocon-script/dist/cjs/main.d.ts.map | 1 + packages/flocon-script/dist/cjs/range.d.ts | 4 + .../flocon-script/dist/cjs/range.d.ts.map | 1 + .../dist/cjs/scriptValue/FArray.d.ts | 24 + .../dist/cjs/scriptValue/FArray.d.ts.map | 1 + .../dist/cjs/scriptValue/FBoolean.d.ts | 15 + .../dist/cjs/scriptValue/FBoolean.d.ts.map | 1 + .../dist/cjs/scriptValue/FFunction.d.ts | 23 + .../dist/cjs/scriptValue/FFunction.d.ts.map | 1 + .../dist/cjs/scriptValue/FGlobalRecord.d.ts | 9 + .../cjs/scriptValue/FGlobalRecord.d.ts.map | 1 + .../dist/cjs/scriptValue/FIterator.d.ts | 19 + .../dist/cjs/scriptValue/FIterator.d.ts.map | 1 + .../dist/cjs/scriptValue/FMap.d.ts | 23 + .../dist/cjs/scriptValue/FMap.d.ts.map | 1 + .../dist/cjs/scriptValue/FNumber.d.ts | 15 + .../dist/cjs/scriptValue/FNumber.d.ts.map | 1 + .../dist/cjs/scriptValue/FObject.d.ts | 14 + .../dist/cjs/scriptValue/FObject.d.ts.map | 1 + .../dist/cjs/scriptValue/FRecord.d.ts | 13 + .../dist/cjs/scriptValue/FRecord.d.ts.map | 1 + .../dist/cjs/scriptValue/FRecordRef.d.ts | 21 + .../dist/cjs/scriptValue/FRecordRef.d.ts.map | 1 + .../dist/cjs/scriptValue/FString.d.ts | 17 + .../dist/cjs/scriptValue/FString.d.ts.map | 1 + .../dist/cjs/scriptValue/FSymbol.d.ts | 15 + .../dist/cjs/scriptValue/FSymbol.d.ts.map | 1 + .../dist/cjs/scriptValue/FType.d.ts | 10 + .../dist/cjs/scriptValue/FType.d.ts.map | 1 + .../dist/cjs/scriptValue/FValue.d.ts | 9 + .../dist/cjs/scriptValue/FValue.d.ts.map | 1 + .../dist/cjs/scriptValue/cast.d.ts | 25 + .../dist/cjs/scriptValue/cast.d.ts.map | 1 + .../dist/cjs/scriptValue/compare.d.ts | 8 + .../dist/cjs/scriptValue/compare.d.ts.map | 1 + .../dist/cjs/scriptValue/eqeq.d.ts | 3 + .../dist/cjs/scriptValue/eqeq.d.ts.map | 1 + .../dist/cjs/scriptValue/eqeqeq.d.ts | 3 + .../dist/cjs/scriptValue/eqeqeq.d.ts.map | 1 + .../dist/cjs/scriptValue/isTruthy.d.ts | 3 + .../dist/cjs/scriptValue/isTruthy.d.ts.map | 1 + .../dist/cjs/scriptValue/toFGlobalRecord.d.ts | 3 + .../cjs/scriptValue/toFGlobalRecord.d.ts.map | 1 + .../dist/cjs/scriptValue/toFRecord.d.ts | 3 + .../dist/cjs/scriptValue/toFRecord.d.ts.map | 1 + .../dist/cjs/scriptValue/toFValue.d.ts | 3 + .../dist/cjs/scriptValue/toFValue.d.ts.map | 1 + .../dist/cjs/scriptValue/toPrimitive.d.ts | 3 + .../dist/cjs/scriptValue/toPrimitive.d.ts.map | 1 + .../dist/cjs/scriptValue/toPropertyName.d.ts | 4 + .../cjs/scriptValue/toPropertyName.d.ts.map | 1 + .../dist/cjs/scriptValue/toTypeName.d.ts | 3 + .../dist/cjs/scriptValue/toTypeName.d.ts.map | 1 + .../cjs/scriptValue/tryToPropertyName.d.ts | 3 + .../scriptValue/tryToPropertyName.d.ts.map | 1 + .../dist/cjs/scriptValue/types.d.ts | 36 + .../dist/cjs/scriptValue/types.d.ts.map | 1 + .../dist/cjs/utils/mapIterator.d.ts | 2 + .../dist/cjs/utils/mapIterator.d.ts.map | 1 + .../dist/cjs/utils/toJObject.d.ts | 3 + .../dist/cjs/utils/toJObject.d.ts.map | 1 + .../flocon-script/dist/esm/ScriptError.d.ts | 8 + .../dist/esm/ScriptError.d.ts.map | 1 + .../flocon-script/dist/esm/builtIn/Array.d.ts | 12 + .../dist/esm/builtIn/Array.d.ts.map | 1 + .../flocon-script/dist/esm/builtIn/Map.d.ts | 7 + .../dist/esm/builtIn/Map.d.ts.map | 1 + .../dist/esm/builtIn/Symbol.d.ts | 11 + .../dist/esm/builtIn/Symbol.d.ts.map | 1 + .../dist/esm/builtIn/console.d.ts | 13 + .../dist/esm/builtIn/console.d.ts.map | 1 + packages/flocon-script/dist/esm/context.d.ts | 14 + .../flocon-script/dist/esm/context.d.ts.map | 1 + .../flocon-script/dist/esm/fExpression.d.ts | 94 + .../dist/esm/fExpression.d.ts.map | 1 + packages/flocon-script/dist/esm/fPattern.d.ts | 19 + .../flocon-script/dist/esm/fPattern.d.ts.map | 1 + .../flocon-script/dist/esm/fStatement.d.ts | 68 + .../dist/esm/fStatement.d.ts.map | 1 + .../flocon-script/dist/esm/getRestValues.d.ts | 2 + .../dist/esm/getRestValues.d.ts.map | 1 + packages/flocon-script/dist/esm/index.d.ts | 23 + .../flocon-script/dist/esm/index.d.ts.map | 1 + packages/flocon-script/dist/esm/index.js | 2387 ++++++ packages/flocon-script/dist/esm/index.js.map | 1 + packages/flocon-script/dist/esm/main.d.ts | 8 + packages/flocon-script/dist/esm/main.d.ts.map | 1 + packages/flocon-script/dist/esm/range.d.ts | 4 + .../flocon-script/dist/esm/range.d.ts.map | 1 + .../dist/esm/scriptValue/FArray.d.ts | 24 + .../dist/esm/scriptValue/FArray.d.ts.map | 1 + .../dist/esm/scriptValue/FBoolean.d.ts | 15 + .../dist/esm/scriptValue/FBoolean.d.ts.map | 1 + .../dist/esm/scriptValue/FFunction.d.ts | 23 + .../dist/esm/scriptValue/FFunction.d.ts.map | 1 + .../dist/esm/scriptValue/FGlobalRecord.d.ts | 9 + .../esm/scriptValue/FGlobalRecord.d.ts.map | 1 + .../dist/esm/scriptValue/FIterator.d.ts | 19 + .../dist/esm/scriptValue/FIterator.d.ts.map | 1 + .../dist/esm/scriptValue/FMap.d.ts | 23 + .../dist/esm/scriptValue/FMap.d.ts.map | 1 + .../dist/esm/scriptValue/FNumber.d.ts | 15 + .../dist/esm/scriptValue/FNumber.d.ts.map | 1 + .../dist/esm/scriptValue/FObject.d.ts | 14 + .../dist/esm/scriptValue/FObject.d.ts.map | 1 + .../dist/esm/scriptValue/FRecord.d.ts | 13 + .../dist/esm/scriptValue/FRecord.d.ts.map | 1 + .../dist/esm/scriptValue/FRecordRef.d.ts | 21 + .../dist/esm/scriptValue/FRecordRef.d.ts.map | 1 + .../dist/esm/scriptValue/FString.d.ts | 17 + .../dist/esm/scriptValue/FString.d.ts.map | 1 + .../dist/esm/scriptValue/FSymbol.d.ts | 15 + .../dist/esm/scriptValue/FSymbol.d.ts.map | 1 + .../dist/esm/scriptValue/FType.d.ts | 10 + .../dist/esm/scriptValue/FType.d.ts.map | 1 + .../dist/esm/scriptValue/FValue.d.ts | 9 + .../dist/esm/scriptValue/FValue.d.ts.map | 1 + .../dist/esm/scriptValue/cast.d.ts | 25 + .../dist/esm/scriptValue/cast.d.ts.map | 1 + .../dist/esm/scriptValue/compare.d.ts | 8 + .../dist/esm/scriptValue/compare.d.ts.map | 1 + .../dist/esm/scriptValue/eqeq.d.ts | 3 + .../dist/esm/scriptValue/eqeq.d.ts.map | 1 + .../dist/esm/scriptValue/eqeqeq.d.ts | 3 + .../dist/esm/scriptValue/eqeqeq.d.ts.map | 1 + .../dist/esm/scriptValue/isTruthy.d.ts | 3 + .../dist/esm/scriptValue/isTruthy.d.ts.map | 1 + .../dist/esm/scriptValue/toFGlobalRecord.d.ts | 3 + .../esm/scriptValue/toFGlobalRecord.d.ts.map | 1 + .../dist/esm/scriptValue/toFRecord.d.ts | 3 + .../dist/esm/scriptValue/toFRecord.d.ts.map | 1 + .../dist/esm/scriptValue/toFValue.d.ts | 3 + .../dist/esm/scriptValue/toFValue.d.ts.map | 1 + .../dist/esm/scriptValue/toPrimitive.d.ts | 3 + .../dist/esm/scriptValue/toPrimitive.d.ts.map | 1 + .../dist/esm/scriptValue/toPropertyName.d.ts | 4 + .../esm/scriptValue/toPropertyName.d.ts.map | 1 + .../dist/esm/scriptValue/toTypeName.d.ts | 3 + .../dist/esm/scriptValue/toTypeName.d.ts.map | 1 + .../esm/scriptValue/tryToPropertyName.d.ts | 3 + .../scriptValue/tryToPropertyName.d.ts.map | 1 + .../dist/esm/scriptValue/types.d.ts | 36 + .../dist/esm/scriptValue/types.d.ts.map | 1 + .../dist/esm/utils/mapIterator.d.ts | 2 + .../dist/esm/utils/mapIterator.d.ts.map | 1 + .../dist/esm/utils/toJObject.d.ts | 3 + .../dist/esm/utils/toJObject.d.ts.map | 1 + packages/logger-base/dist/cjs/index.d.ts | 3 + packages/logger-base/dist/cjs/index.d.ts.map | 1 + packages/logger-base/dist/cjs/index.js | 9 + packages/logger-base/dist/cjs/index.js.map | 1 + packages/logger-base/dist/esm/index.d.ts | 3 + packages/logger-base/dist/esm/index.d.ts.map | 1 + packages/logger-base/dist/esm/index.js | 6 + packages/logger-base/dist/esm/index.js.map | 1 + packages/sdk-react/dist/cjs/index.d.ts | 10 + packages/sdk-react/dist/cjs/index.d.ts.map | 1 + packages/sdk-react/dist/cjs/index.js | 123 + packages/sdk-react/dist/cjs/index.js.map | 1 + .../internal/hooks/useCreateRoomClient.d.ts | 19 + .../hooks/useCreateRoomClient.d.ts.map | 1 + .../hooks/useReadonlyBehaviorEvent.d.ts | 3 + .../hooks/useReadonlyBehaviorEvent.d.ts.map | 1 + .../internal/hooks/useRoomConnections.d.ts | 6 + .../hooks/useRoomConnections.d.ts.map | 1 + .../internal/hooks/useRoomGraphQLStatus.d.ts | 36 + .../hooks/useRoomGraphQLStatus.d.ts.map | 1 + .../hooks/useRoomMessageQueryStatus.d.ts | 3 + .../hooks/useRoomMessageQueryStatus.d.ts.map | 1 + .../cjs/internal/hooks/useRoomMessages.d.ts | 18 + .../internal/hooks/useRoomMessages.d.ts.map | 1 + .../dist/cjs/internal/hooks/useRoomState.d.ts | 3 + .../cjs/internal/hooks/useRoomState.d.ts.map | 1 + .../hooks/useUpdateWritingMessageStatus.d.ts | 3 + .../useUpdateWritingMessageStatus.d.ts.map | 1 + .../hooks/useWritingMessageStatus.d.ts | 3 + .../hooks/useWritingMessageStatus.d.ts.map | 1 + packages/sdk-react/dist/esm/index.d.ts | 10 + packages/sdk-react/dist/esm/index.d.ts.map | 1 + packages/sdk-react/dist/esm/index.js | 113 + packages/sdk-react/dist/esm/index.js.map | 1 + .../internal/hooks/useCreateRoomClient.d.ts | 19 + .../hooks/useCreateRoomClient.d.ts.map | 1 + .../hooks/useReadonlyBehaviorEvent.d.ts | 3 + .../hooks/useReadonlyBehaviorEvent.d.ts.map | 1 + .../internal/hooks/useRoomConnections.d.ts | 6 + .../hooks/useRoomConnections.d.ts.map | 1 + .../internal/hooks/useRoomGraphQLStatus.d.ts | 36 + .../hooks/useRoomGraphQLStatus.d.ts.map | 1 + .../hooks/useRoomMessageQueryStatus.d.ts | 3 + .../hooks/useRoomMessageQueryStatus.d.ts.map | 1 + .../esm/internal/hooks/useRoomMessages.d.ts | 18 + .../internal/hooks/useRoomMessages.d.ts.map | 1 + .../dist/esm/internal/hooks/useRoomState.d.ts | 3 + .../esm/internal/hooks/useRoomState.d.ts.map | 1 + .../hooks/useUpdateWritingMessageStatus.d.ts | 3 + .../useUpdateWritingMessageStatus.d.ts.map | 1 + .../hooks/useWritingMessageStatus.d.ts | 3 + .../hooks/useWritingMessageStatus.d.ts.map | 1 + packages/sdk-urql/dist/cjs/index.d.ts | 3 + packages/sdk-urql/dist/cjs/index.d.ts.map | 1 + packages/sdk-urql/dist/cjs/index.js | 159 + packages/sdk-urql/dist/cjs/index.js.map | 1 + .../cjs/internal/createGraphQLClient.d.ts | 4 + .../cjs/internal/createGraphQLClient.d.ts.map | 1 + .../dist/cjs/internal/createUrqlClient.d.ts | 28 + .../cjs/internal/createUrqlClient.d.ts.map | 1 + packages/sdk-urql/dist/esm/index.d.ts | 3 + packages/sdk-urql/dist/esm/index.d.ts.map | 1 + packages/sdk-urql/dist/esm/index.js | 156 + packages/sdk-urql/dist/esm/index.js.map | 1 + .../esm/internal/createGraphQLClient.d.ts | 4 + .../esm/internal/createGraphQLClient.d.ts.map | 1 + .../dist/esm/internal/createUrqlClient.d.ts | 28 + .../esm/internal/createUrqlClient.d.ts.map | 1 + packages/sdk/dist/cjs/index.d.ts | 8 + packages/sdk/dist/cjs/index.d.ts.map | 1 + packages/sdk/dist/cjs/index.js | 1345 ++++ packages/sdk/dist/cjs/index.js.map | 1 + .../dist/cjs/internal/createRoomClient.d.ts | 67 + .../cjs/internal/createRoomClient.d.ts.map | 1 + .../cjs/internal/createTestRoomClient.d.ts | 99 + .../internal/createTestRoomClient.d.ts.map | 1 + .../internal/roomClient/graphqlClient.d.ts | 90 + .../roomClient/graphqlClient.d.ts.map | 1 + .../internal/roomClient/roomConnections.d.ts | 44 + .../roomClient/roomConnections.d.ts.map | 1 + .../cjs/internal/roomClient/roomMessages.d.ts | 36 + .../internal/roomClient/roomMessages.d.ts.map | 1 + .../cjs/internal/roomClient/roomState.d.ts | 74 + .../internal/roomClient/roomState.d.ts.map | 1 + .../subscribeWritingMessageStatus.d.ts | 10 + .../subscribeWritingMessageStatus.d.ts.map | 1 + .../updateWritingMessageStatus.d.ts | 7 + .../updateWritingMessageStatus.d.ts.map | 1 + .../dist/cjs/internal/rxjs/behaviorEvent.d.ts | 14 + .../cjs/internal/rxjs/behaviorEvent.d.ts.map | 1 + .../internal/rxjs/readonlyBehaviorEvent.d.ts | 22 + .../rxjs/readonlyBehaviorEvent.d.ts.map | 1 + .../cjs/internal/stateManager/create.d.ts | 7 + .../cjs/internal/stateManager/create.d.ts.map | 1 + .../stateManager/stateGetter.d.ts | 40 + .../stateManager/stateGetter.d.ts.map | 1 + .../stateManager/stateManager.d.ts | 86 + .../stateManager/stateManager.d.ts.map | 1 + .../stateManager/stateManagerCore.d.ts | 25 + .../stateManager/stateManagerCore.d.ts.map | 1 + .../stateManagerHistoryQueue.d.ts | 64 + .../stateManagerHistoryQueue.d.ts.map | 1 + .../stateManager/stateManager/types.d.ts | 30 + .../stateManager/stateManager/types.d.ts.map | 1 + .../internal/stateManager/states/room.d.ts | 11 + .../stateManager/states/room.d.ts.map | 1 + .../internal/stateManager/states/types.d.ts | 10 + .../stateManager/states/types.d.ts.map | 1 + packages/sdk/dist/cjs/internal/types.d.ts | 1 + packages/sdk/dist/cjs/internal/types.d.ts.map | 1 + packages/sdk/dist/esm/index.d.ts | 8 + packages/sdk/dist/esm/index.d.ts.map | 1 + packages/sdk/dist/esm/index.js | 1340 +++ packages/sdk/dist/esm/index.js.map | 1 + .../dist/esm/internal/createRoomClient.d.ts | 67 + .../esm/internal/createRoomClient.d.ts.map | 1 + .../esm/internal/createTestRoomClient.d.ts | 99 + .../internal/createTestRoomClient.d.ts.map | 1 + .../internal/roomClient/graphqlClient.d.ts | 90 + .../roomClient/graphqlClient.d.ts.map | 1 + .../internal/roomClient/roomConnections.d.ts | 44 + .../roomClient/roomConnections.d.ts.map | 1 + .../esm/internal/roomClient/roomMessages.d.ts | 36 + .../internal/roomClient/roomMessages.d.ts.map | 1 + .../esm/internal/roomClient/roomState.d.ts | 74 + .../internal/roomClient/roomState.d.ts.map | 1 + .../subscribeWritingMessageStatus.d.ts | 10 + .../subscribeWritingMessageStatus.d.ts.map | 1 + .../updateWritingMessageStatus.d.ts | 7 + .../updateWritingMessageStatus.d.ts.map | 1 + .../dist/esm/internal/rxjs/behaviorEvent.d.ts | 14 + .../esm/internal/rxjs/behaviorEvent.d.ts.map | 1 + .../internal/rxjs/readonlyBehaviorEvent.d.ts | 22 + .../rxjs/readonlyBehaviorEvent.d.ts.map | 1 + .../esm/internal/stateManager/create.d.ts | 7 + .../esm/internal/stateManager/create.d.ts.map | 1 + .../stateManager/stateGetter.d.ts | 40 + .../stateManager/stateGetter.d.ts.map | 1 + .../stateManager/stateManager.d.ts | 86 + .../stateManager/stateManager.d.ts.map | 1 + .../stateManager/stateManagerCore.d.ts | 25 + .../stateManager/stateManagerCore.d.ts.map | 1 + .../stateManagerHistoryQueue.d.ts | 64 + .../stateManagerHistoryQueue.d.ts.map | 1 + .../stateManager/stateManager/types.d.ts | 30 + .../stateManager/stateManager/types.d.ts.map | 1 + .../internal/stateManager/states/room.d.ts | 11 + .../stateManager/states/room.d.ts.map | 1 + .../internal/stateManager/states/types.d.ts | 10 + .../stateManager/states/types.d.ts.map | 1 + packages/sdk/dist/esm/internal/types.d.ts | 1 + packages/sdk/dist/esm/internal/types.d.ts.map | 1 + .../dist/cjs/generated/graphql.d.ts | 2447 ++++++ .../dist/cjs/generated/graphql.d.ts.map | 1 + .../typed-document-node/dist/cjs/index.d.ts | 2 + .../dist/cjs/index.d.ts.map | 1 + .../typed-document-node/dist/cjs/index.js | 6286 +++++++++++++++ .../typed-document-node/dist/cjs/index.js.map | 1 + .../dist/esm/generated/graphql.d.ts | 2447 ++++++ .../dist/esm/generated/graphql.d.ts.map | 1 + .../typed-document-node/dist/esm/index.d.ts | 2 + .../dist/esm/index.d.ts.map | 1 + .../typed-document-node/dist/esm/index.js | 6224 ++++++++++++++ .../typed-document-node/dist/esm/index.js.map | 1 + packages/utils/dist/cjs/index.d.ts | 24 + packages/utils/dist/cjs/index.d.ts.map | 1 + packages/utils/dist/cjs/index.js | 1169 +++ packages/utils/dist/cjs/index.js.map | 1 + .../utils/dist/cjs/internal/arrayEquals.d.ts | 2 + .../dist/cjs/internal/arrayEquals.d.ts.map | 1 + packages/utils/dist/cjs/internal/compare.d.ts | 3 + .../utils/dist/cjs/internal/compare.d.ts.map | 1 + .../utils/dist/cjs/internal/compositeKey.d.ts | 8 + .../dist/cjs/internal/compositeKey.d.ts.map | 1 + packages/utils/dist/cjs/internal/delay.d.ts | 2 + .../utils/dist/cjs/internal/delay.d.ts.map | 1 + .../dist/cjs/internal/deletableTree.d.ts | 27 + .../dist/cjs/internal/deletableTree.d.ts.map | 1 + .../utils/dist/cjs/internal/dualKeyMap.d.ts | 41 + .../dist/cjs/internal/dualKeyMap.d.ts.map | 1 + .../utils/dist/cjs/internal/filterInt.d.ts | 2 + .../dist/cjs/internal/filterInt.d.ts.map | 1 + .../dist/cjs/internal/groupJoinArray.d.ts | 3 + .../dist/cjs/internal/groupJoinArray.d.ts.map | 1 + .../utils/dist/cjs/internal/groupJoinMap.d.ts | 3 + .../dist/cjs/internal/groupJoinMap.d.ts.map | 1 + .../utils/dist/cjs/internal/groupJoinSet.d.ts | 5 + .../dist/cjs/internal/groupJoinSet.d.ts.map | 1 + .../utils/dist/cjs/internal/iterable.d.ts | 8 + .../utils/dist/cjs/internal/iterable.d.ts.map | 1 + .../utils/dist/cjs/internal/keyNames.d.ts | 7 + .../utils/dist/cjs/internal/keyNames.d.ts.map | 1 + packages/utils/dist/cjs/internal/logger.d.ts | 34 + .../utils/dist/cjs/internal/logger.d.ts.map | 1 + .../utils/dist/cjs/internal/multiKeyMap.d.ts | 24 + .../dist/cjs/internal/multiKeyMap.d.ts.map | 1 + .../dist/cjs/internal/multiValueSet.d.ts | 11 + .../dist/cjs/internal/multiValueSet.d.ts.map | 1 + .../dist/cjs/internal/nonEmptyArray.d.ts | 4 + .../dist/cjs/internal/nonEmptyArray.d.ts.map | 1 + .../dist/cjs/internal/parseEnvListValue.d.ts | 2 + .../cjs/internal/parseEnvListValue.d.ts.map | 1 + .../dist/cjs/internal/parsePinoLogLevel.d.ts | 4 + .../cjs/internal/parsePinoLogLevel.d.ts.map | 1 + .../cjs/internal/parseStringToBoolean.d.ts | 9 + .../internal/parseStringToBoolean.d.ts.map | 1 + packages/utils/dist/cjs/internal/record.d.ts | 22 + .../utils/dist/cjs/internal/record.d.ts.map | 1 + packages/utils/dist/cjs/internal/semver.d.ts | 32 + .../utils/dist/cjs/internal/semver.d.ts.map | 1 + packages/utils/dist/cjs/internal/tree.d.ts | 29 + .../utils/dist/cjs/internal/tree.d.ts.map | 1 + packages/utils/dist/cjs/internal/types.d.ts | 21 + .../utils/dist/cjs/internal/types.d.ts.map | 1 + packages/utils/dist/esm/index.d.ts | 24 + packages/utils/dist/esm/index.d.ts.map | 1 + packages/utils/dist/esm/index.js | 1114 +++ packages/utils/dist/esm/index.js.map | 1 + .../utils/dist/esm/internal/arrayEquals.d.ts | 2 + .../dist/esm/internal/arrayEquals.d.ts.map | 1 + packages/utils/dist/esm/internal/compare.d.ts | 3 + .../utils/dist/esm/internal/compare.d.ts.map | 1 + .../utils/dist/esm/internal/compositeKey.d.ts | 8 + .../dist/esm/internal/compositeKey.d.ts.map | 1 + packages/utils/dist/esm/internal/delay.d.ts | 2 + .../utils/dist/esm/internal/delay.d.ts.map | 1 + .../dist/esm/internal/deletableTree.d.ts | 27 + .../dist/esm/internal/deletableTree.d.ts.map | 1 + .../utils/dist/esm/internal/dualKeyMap.d.ts | 41 + .../dist/esm/internal/dualKeyMap.d.ts.map | 1 + .../utils/dist/esm/internal/filterInt.d.ts | 2 + .../dist/esm/internal/filterInt.d.ts.map | 1 + .../dist/esm/internal/groupJoinArray.d.ts | 3 + .../dist/esm/internal/groupJoinArray.d.ts.map | 1 + .../utils/dist/esm/internal/groupJoinMap.d.ts | 3 + .../dist/esm/internal/groupJoinMap.d.ts.map | 1 + .../utils/dist/esm/internal/groupJoinSet.d.ts | 5 + .../dist/esm/internal/groupJoinSet.d.ts.map | 1 + .../utils/dist/esm/internal/iterable.d.ts | 8 + .../utils/dist/esm/internal/iterable.d.ts.map | 1 + .../utils/dist/esm/internal/keyNames.d.ts | 7 + .../utils/dist/esm/internal/keyNames.d.ts.map | 1 + packages/utils/dist/esm/internal/logger.d.ts | 34 + .../utils/dist/esm/internal/logger.d.ts.map | 1 + .../utils/dist/esm/internal/multiKeyMap.d.ts | 24 + .../dist/esm/internal/multiKeyMap.d.ts.map | 1 + .../dist/esm/internal/multiValueSet.d.ts | 11 + .../dist/esm/internal/multiValueSet.d.ts.map | 1 + .../dist/esm/internal/nonEmptyArray.d.ts | 4 + .../dist/esm/internal/nonEmptyArray.d.ts.map | 1 + .../dist/esm/internal/parseEnvListValue.d.ts | 2 + .../esm/internal/parseEnvListValue.d.ts.map | 1 + .../dist/esm/internal/parsePinoLogLevel.d.ts | 4 + .../esm/internal/parsePinoLogLevel.d.ts.map | 1 + .../esm/internal/parseStringToBoolean.d.ts | 9 + .../internal/parseStringToBoolean.d.ts.map | 1 + packages/utils/dist/esm/internal/record.d.ts | 22 + .../utils/dist/esm/internal/record.d.ts.map | 1 + packages/utils/dist/esm/internal/semver.d.ts | 32 + .../utils/dist/esm/internal/semver.d.ts.map | 1 + packages/utils/dist/esm/internal/tree.d.ts | 29 + .../utils/dist/esm/internal/tree.d.ts.map | 1 + packages/utils/dist/esm/internal/types.d.ts | 21 + .../utils/dist/esm/internal/types.d.ts.map | 1 + packages/web-server-utils/dist/cjs/index.d.ts | 6 + .../web-server-utils/dist/cjs/index.d.ts.map | 1 + packages/web-server-utils/dist/cjs/index.js | 839 ++ .../web-server-utils/dist/cjs/index.js.map | 1 + .../dist/cjs/internal/filteredArray.d.ts | 30 + .../dist/cjs/internal/filteredArray.d.ts.map | 1 + .../dist/cjs/internal/messageSet.d.ts | 11 + .../dist/cjs/internal/messageSet.d.ts.map | 1 + .../dist/cjs/internal/privateChannelSet.d.ts | 14 + .../cjs/internal/privateChannelSet.d.ts.map | 1 + .../dist/cjs/internal/privateChannelSets.d.ts | 10 + .../cjs/internal/privateChannelSets.d.ts.map | 1 + .../dist/cjs/internal/roomChannels.d.ts | 16 + .../dist/cjs/internal/roomChannels.d.ts.map | 1 + .../dist/cjs/internal/roomMessageTypes.d.ts | 57 + .../cjs/internal/roomMessageTypes.d.ts.map | 1 + .../dist/cjs/internal/roomMessagesClient.d.ts | 31 + .../cjs/internal/roomMessagesClient.d.ts.map | 1 + .../dist/cjs/internal/utils.d.ts | 2 + .../dist/cjs/internal/utils.d.ts.map | 1 + packages/web-server-utils/dist/esm/index.d.ts | 6 + .../web-server-utils/dist/esm/index.d.ts.map | 1 + packages/web-server-utils/dist/esm/index.js | 824 ++ .../web-server-utils/dist/esm/index.js.map | 1 + .../dist/esm/internal/filteredArray.d.ts | 30 + .../dist/esm/internal/filteredArray.d.ts.map | 1 + .../dist/esm/internal/messageSet.d.ts | 11 + .../dist/esm/internal/messageSet.d.ts.map | 1 + .../dist/esm/internal/privateChannelSet.d.ts | 14 + .../esm/internal/privateChannelSet.d.ts.map | 1 + .../dist/esm/internal/privateChannelSets.d.ts | 10 + .../esm/internal/privateChannelSets.d.ts.map | 1 + .../dist/esm/internal/roomChannels.d.ts | 16 + .../dist/esm/internal/roomChannels.d.ts.map | 1 + .../dist/esm/internal/roomMessageTypes.d.ts | 57 + .../esm/internal/roomMessageTypes.d.ts.map | 1 + .../dist/esm/internal/roomMessagesClient.d.ts | 31 + .../esm/internal/roomMessagesClient.d.ts.map | 1 + .../dist/esm/internal/utils.d.ts | 2 + .../dist/esm/internal/utils.d.ts.map | 1 + 1247 files changed, 74697 insertions(+), 2 deletions(-) create mode 100644 apps/api-server/dist/VERSION.js create mode 100644 apps/api-server/dist/VERSION.js.map create mode 100644 apps/api-server/dist/__migrations__/mysql/Migration20220410135635.js create mode 100644 apps/api-server/dist/__migrations__/mysql/Migration20220410135635.js.map create mode 100644 apps/api-server/dist/__migrations__/mysql/Migration20220427150340.js create mode 100644 apps/api-server/dist/__migrations__/mysql/Migration20220427150340.js.map create mode 100644 apps/api-server/dist/__migrations__/mysql/Migration20220502053137.js create mode 100644 apps/api-server/dist/__migrations__/mysql/Migration20220502053137.js.map create mode 100644 apps/api-server/dist/__migrations__/mysql/Migration20220504100008.js create mode 100644 apps/api-server/dist/__migrations__/mysql/Migration20220504100008.js.map create mode 100644 apps/api-server/dist/__migrations__/mysql/Migration20220630151845.js create mode 100644 apps/api-server/dist/__migrations__/mysql/Migration20220630151845.js.map create mode 100644 apps/api-server/dist/__migrations__/mysql/Migration20220727114555.js create mode 100644 apps/api-server/dist/__migrations__/mysql/Migration20220727114555.js.map create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20211201185931.js create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20211201185931.js.map create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20211207145135.js create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20211207145135.js.map create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20220410113820.js create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20220410113820.js.map create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20220427150306.js create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20220427150306.js.map create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20220502053114.js create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20220502053114.js.map create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20220504100000.js create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20220504100000.js.map create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20220630151907.js create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20220630151907.js.map create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20220727114405.js create mode 100644 apps/api-server/dist/__migrations__/postgresql/Migration20220727114405.js.map create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20211201185826.js create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20211201185826.js.map create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20211207145304.js create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20211207145304.js.map create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20220409152838.js create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20220409152838.js.map create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20220427150211.js create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20220427150211.js.map create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20220502053022.js create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20220502053022.js.map create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20220504095931.js create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20220504095931.js.map create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20220630151831.js create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20220630151831.js.map create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20220727114545.js create mode 100644 apps/api-server/dist/__migrations__/sqlite/Migration20220727114545.js.map create mode 100644 apps/api-server/dist/buildSchema.js create mode 100644 apps/api-server/dist/buildSchema.js.map create mode 100644 apps/api-server/dist/config/createORM.js create mode 100644 apps/api-server/dist/config/createORM.js.map create mode 100644 apps/api-server/dist/config/createORMOptions.js create mode 100644 apps/api-server/dist/config/createORMOptions.js.map create mode 100644 apps/api-server/dist/config/determineDatabaseUrl.js create mode 100644 apps/api-server/dist/config/determineDatabaseUrl.js.map create mode 100644 apps/api-server/dist/config/logConfigParser.js create mode 100644 apps/api-server/dist/config/logConfigParser.js.map create mode 100644 apps/api-server/dist/config/serverConfigParser.js create mode 100644 apps/api-server/dist/config/serverConfigParser.js.map create mode 100644 apps/api-server/dist/config/types.js create mode 100644 apps/api-server/dist/config/types.js.map create mode 100644 apps/api-server/dist/connection/main.js create mode 100644 apps/api-server/dist/connection/main.js.map create mode 100644 apps/api-server/dist/createServer.js create mode 100644 apps/api-server/dist/createServer.js.map create mode 100644 apps/api-server/dist/entities-graphql/room.js create mode 100644 apps/api-server/dist/entities-graphql/room.js.map create mode 100644 apps/api-server/dist/entities-graphql/roomAsListItem.js create mode 100644 apps/api-server/dist/entities-graphql/roomAsListItem.js.map create mode 100644 apps/api-server/dist/entities-graphql/roomMessage.js create mode 100644 apps/api-server/dist/entities-graphql/roomMessage.js.map create mode 100644 apps/api-server/dist/entities/file/entity.js create mode 100644 apps/api-server/dist/entities/file/entity.js.map create mode 100644 apps/api-server/dist/entities/fileTag/entity.js create mode 100644 apps/api-server/dist/entities/fileTag/entity.js.map create mode 100644 apps/api-server/dist/entities/participant/entity.js create mode 100644 apps/api-server/dist/entities/participant/entity.js.map create mode 100644 apps/api-server/dist/entities/room/entity.js create mode 100644 apps/api-server/dist/entities/room/entity.js.map create mode 100644 apps/api-server/dist/entities/room/isBookmarked.js create mode 100644 apps/api-server/dist/entities/room/isBookmarked.js.map create mode 100644 apps/api-server/dist/entities/room/role.js create mode 100644 apps/api-server/dist/entities/room/role.js.map create mode 100644 apps/api-server/dist/entities/roomMessage/entity.js create mode 100644 apps/api-server/dist/entities/roomMessage/entity.js.map create mode 100644 apps/api-server/dist/entities/user/entity.js create mode 100644 apps/api-server/dist/entities/user/entity.js.map create mode 100644 apps/api-server/dist/entities/user/getUserIfEntry.js create mode 100644 apps/api-server/dist/entities/user/getUserIfEntry.js.map create mode 100644 apps/api-server/dist/enums/AnswerRollCallFailureType.js create mode 100644 apps/api-server/dist/enums/AnswerRollCallFailureType.js.map create mode 100644 apps/api-server/dist/enums/BaasType.js create mode 100644 apps/api-server/dist/enums/BaasType.js.map create mode 100644 apps/api-server/dist/enums/ChangeParticipantNameFailureType.js create mode 100644 apps/api-server/dist/enums/ChangeParticipantNameFailureType.js.map create mode 100644 apps/api-server/dist/enums/CloseRollCallFailureType.js create mode 100644 apps/api-server/dist/enums/CloseRollCallFailureType.js.map create mode 100644 apps/api-server/dist/enums/CreateRoomFailureType.js create mode 100644 apps/api-server/dist/enums/CreateRoomFailureType.js.map create mode 100644 apps/api-server/dist/enums/DeleteMessageFailureType.js create mode 100644 apps/api-server/dist/enums/DeleteMessageFailureType.js.map create mode 100644 apps/api-server/dist/enums/DeleteRoomAsAdminFailureType.js create mode 100644 apps/api-server/dist/enums/DeleteRoomAsAdminFailureType.js.map create mode 100644 apps/api-server/dist/enums/DeleteRoomFailureType.js create mode 100644 apps/api-server/dist/enums/DeleteRoomFailureType.js.map create mode 100644 apps/api-server/dist/enums/EditMessageFailureType.js create mode 100644 apps/api-server/dist/enums/EditMessageFailureType.js.map create mode 100644 apps/api-server/dist/enums/EntryToServerResultType.js create mode 100644 apps/api-server/dist/enums/EntryToServerResultType.js.map create mode 100644 apps/api-server/dist/enums/FileListType.js create mode 100644 apps/api-server/dist/enums/FileListType.js.map create mode 100644 apps/api-server/dist/enums/FilePermissionType.js create mode 100644 apps/api-server/dist/enums/FilePermissionType.js.map create mode 100644 apps/api-server/dist/enums/FileSourceType.js create mode 100644 apps/api-server/dist/enums/FileSourceType.js.map create mode 100644 apps/api-server/dist/enums/GetRoomConnectionFailureType.js create mode 100644 apps/api-server/dist/enums/GetRoomConnectionFailureType.js.map create mode 100644 apps/api-server/dist/enums/GetRoomFailureType.js create mode 100644 apps/api-server/dist/enums/GetRoomFailureType.js.map create mode 100644 apps/api-server/dist/enums/GetRoomLogFailureType.js create mode 100644 apps/api-server/dist/enums/GetRoomLogFailureType.js.map create mode 100644 apps/api-server/dist/enums/GetRoomMessagesFailureType.js create mode 100644 apps/api-server/dist/enums/GetRoomMessagesFailureType.js.map create mode 100644 apps/api-server/dist/enums/GetRoomsListFailureType.js create mode 100644 apps/api-server/dist/enums/GetRoomsListFailureType.js.map create mode 100644 apps/api-server/dist/enums/JoinRoomFailureType.js create mode 100644 apps/api-server/dist/enums/JoinRoomFailureType.js.map create mode 100644 apps/api-server/dist/enums/LeaveRoomFailureType.js create mode 100644 apps/api-server/dist/enums/LeaveRoomFailureType.js.map create mode 100644 apps/api-server/dist/enums/MakeMessageNotSecretFailureType.js create mode 100644 apps/api-server/dist/enums/MakeMessageNotSecretFailureType.js.map create mode 100644 apps/api-server/dist/enums/OperateRoomFailureType.js create mode 100644 apps/api-server/dist/enums/OperateRoomFailureType.js.map create mode 100644 apps/api-server/dist/enums/ParticipantRoleType.js create mode 100644 apps/api-server/dist/enums/ParticipantRoleType.js.map create mode 100644 apps/api-server/dist/enums/PerformRollCallFailureType.js create mode 100644 apps/api-server/dist/enums/PerformRollCallFailureType.js.map create mode 100644 apps/api-server/dist/enums/PieceLogType.js create mode 100644 apps/api-server/dist/enums/PieceLogType.js.map create mode 100644 apps/api-server/dist/enums/PrereleaseType.js create mode 100644 apps/api-server/dist/enums/PrereleaseType.js.map create mode 100644 apps/api-server/dist/enums/PromoteFailureType.js create mode 100644 apps/api-server/dist/enums/PromoteFailureType.js.map create mode 100644 apps/api-server/dist/enums/ResetRoomMessagesFailureType.js create mode 100644 apps/api-server/dist/enums/ResetRoomMessagesFailureType.js.map create mode 100644 apps/api-server/dist/enums/RoomParameterNameType.js create mode 100644 apps/api-server/dist/enums/RoomParameterNameType.js.map create mode 100644 apps/api-server/dist/enums/UpdateBookmarkFailureType.js create mode 100644 apps/api-server/dist/enums/UpdateBookmarkFailureType.js.map create mode 100644 apps/api-server/dist/enums/WriteRoomPrivateMessageFailureType.js create mode 100644 apps/api-server/dist/enums/WriteRoomPrivateMessageFailureType.js.map create mode 100644 apps/api-server/dist/enums/WriteRoomPublicMessageFailureType.js create mode 100644 apps/api-server/dist/enums/WriteRoomPublicMessageFailureType.js.map create mode 100644 apps/api-server/dist/enums/WriteRoomSoundEffectFailureType.js create mode 100644 apps/api-server/dist/enums/WriteRoomSoundEffectFailureType.js.map create mode 100644 apps/api-server/dist/enums/WritingMessageStatusInputType.js create mode 100644 apps/api-server/dist/enums/WritingMessageStatusInputType.js.map create mode 100644 apps/api-server/dist/enums/WritingMessageStatusType.js create mode 100644 apps/api-server/dist/enums/WritingMessageStatusType.js.map create mode 100644 apps/api-server/dist/env.js create mode 100644 apps/api-server/dist/env.js.map create mode 100644 apps/api-server/dist/graphql/middlewares/QueueMiddleware.js create mode 100644 apps/api-server/dist/graphql/middlewares/QueueMiddleware.js.map create mode 100644 apps/api-server/dist/graphql/middlewares/RateLimitMiddleware.js create mode 100644 apps/api-server/dist/graphql/middlewares/RateLimitMiddleware.js.map create mode 100644 apps/api-server/dist/graphql/objects/fileItem.js create mode 100644 apps/api-server/dist/graphql/objects/fileItem.js.map create mode 100644 apps/api-server/dist/graphql/objects/filePath.js create mode 100644 apps/api-server/dist/graphql/objects/filePath.js.map create mode 100644 apps/api-server/dist/graphql/objects/pong.js create mode 100644 apps/api-server/dist/graphql/objects/pong.js.map create mode 100644 apps/api-server/dist/graphql/objects/room.js create mode 100644 apps/api-server/dist/graphql/objects/room.js.map create mode 100644 apps/api-server/dist/graphql/objects/roomMessage.js create mode 100644 apps/api-server/dist/graphql/objects/roomMessage.js.map create mode 100644 apps/api-server/dist/graphql/objects/serverInfo.js create mode 100644 apps/api-server/dist/graphql/objects/serverInfo.js.map create mode 100644 apps/api-server/dist/graphql/registerEnumTypes.js create mode 100644 apps/api-server/dist/graphql/registerEnumTypes.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/allResolvers.js create mode 100644 apps/api-server/dist/graphql/resolvers/allResolvers.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/answerRollCall/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/answerRollCall/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/changeParitipantName/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/changeParitipantName/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/closeRollCall/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/closeRollCall/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/createFileTag/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/createFileTag/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/createRoom/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/createRoom/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/deleteFileTag/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/deleteFileTag/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/deleteFiles/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/deleteFiles/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/deleteMessage/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/deleteMessage/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/deleteRoom/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/deleteRoom/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/deleteRoomAsAdmin/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/deleteRoomAsAdmin/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/editFileTags/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/editFileTags/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/editMessage/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/editMessage/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/entryToServer/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/entryToServer/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/joinRoom/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/joinRoom/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/leaveRoom/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/leaveRoom/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/makeMessageNotSecret/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/makeMessageNotSecret/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/operate/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/operate/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/performRollCall/performRollCall.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/performRollCall/performRollCall.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/performRollCall/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/performRollCall/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/ping/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/ping/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/promoteToPlayer/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/promoteToPlayer/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/renameFiles/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/renameFiles/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/resetMessages/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/resetMessages/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/updateBookmark/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/updateBookmark/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/updateWritingMessageStatus/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/updateWritingMessageStatus/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/writePrivateMessage/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/writePrivateMessage/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/writePublicMessage/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/writePublicMessage/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/writeRoomSoundEffect/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/mutations/writeRoomSoundEffect/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getAvailableGameSystems/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getAvailableGameSystems/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getDiceHelpMessage/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getDiceHelpMessage/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getFiles/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getFiles/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getLog/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getLog/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getMessages/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getMessages/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getMyRoles/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getMyRoles/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getRoom/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getRoom/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getRoomAsListItem/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getRoomAsListItem/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getRoomConnections/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getRoomConnections/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getRoomsList/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getRoomsList/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getServerInfo/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/queries/getServerInfo/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/queries/isEntry/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/queries/isEntry/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/subsciptions/pong/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/subsciptions/pong/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/subsciptions/pong/topics.js create mode 100644 apps/api-server/dist/graphql/resolvers/subsciptions/pong/topics.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/resolver.js create mode 100644 apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/resolver.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/topics.js create mode 100644 apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/topics.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/types.js create mode 100644 apps/api-server/dist/graphql/resolvers/types.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/utils/messageAnalyzer.js create mode 100644 apps/api-server/dist/graphql/resolvers/utils/messageAnalyzer.js.map create mode 100644 apps/api-server/dist/graphql/resolvers/utils/utils.js create mode 100644 apps/api-server/dist/graphql/resolvers/utils/utils.js.map create mode 100644 apps/api-server/dist/html/Html.js create mode 100644 apps/api-server/dist/html/Html.js.map create mode 100644 apps/api-server/dist/index.js create mode 100644 apps/api-server/dist/index.js.map create mode 100644 apps/api-server/dist/initializeLogger.js create mode 100644 apps/api-server/dist/initializeLogger.js.map create mode 100644 apps/api-server/dist/main.js create mode 100644 apps/api-server/dist/main.js.map create mode 100644 apps/api-server/dist/migrate.js create mode 100644 apps/api-server/dist/migrate.js.map create mode 100644 apps/api-server/dist/mikro-orm.js create mode 100644 apps/api-server/dist/mikro-orm.js.map create mode 100644 apps/api-server/dist/rateLimit/consume.js create mode 100644 apps/api-server/dist/rateLimit/consume.js.map create mode 100644 apps/api-server/dist/run-bcryptInteractive.js create mode 100644 apps/api-server/dist/run-bcryptInteractive.js.map create mode 100644 apps/api-server/dist/run-buildSchemaSync.js create mode 100644 apps/api-server/dist/run-buildSchemaSync.js.map create mode 100644 apps/api-server/dist/run-generateFlyioDockerfile.js create mode 100644 apps/api-server/dist/run-generateFlyioDockerfile.js.map create mode 100644 apps/api-server/dist/run-migrationCheck.js create mode 100644 apps/api-server/dist/run-migrationCheck.js.map create mode 100644 apps/api-server/dist/run-migrationCreate.js create mode 100644 apps/api-server/dist/run-migrationCreate.js.map create mode 100644 apps/api-server/dist/run-migrationDown.js create mode 100644 apps/api-server/dist/run-migrationDown.js.map create mode 100644 apps/api-server/dist/run-migrationUp.js create mode 100644 apps/api-server/dist/run-migrationUp.js.map create mode 100644 apps/api-server/dist/utils/appConsole.js create mode 100644 apps/api-server/dist/utils/appConsole.js.map create mode 100644 apps/api-server/dist/utils/commandLineArgs.js create mode 100644 apps/api-server/dist/utils/commandLineArgs.js.map create mode 100644 apps/api-server/dist/utils/convertToMaxLength100String.js create mode 100644 apps/api-server/dist/utils/convertToMaxLength100String.js.map create mode 100644 apps/api-server/dist/utils/easyFlake.js create mode 100644 apps/api-server/dist/utils/easyFlake.js.map create mode 100644 apps/api-server/dist/utils/migrations.js create mode 100644 apps/api-server/dist/utils/migrations.js.map create mode 100644 apps/api-server/dist/utils/promiseQueue.js create mode 100644 apps/api-server/dist/utils/promiseQueue.js.map create mode 100644 apps/api-server/dist/utils/roles.js create mode 100644 apps/api-server/dist/utils/roles.js.map create mode 100644 apps/api-server/dist/utils/thumbsDir.js create mode 100644 apps/api-server/dist/utils/thumbsDir.js.map create mode 100644 packages/cache/dist/cjs/index.d.ts create mode 100644 packages/cache/dist/cjs/index.d.ts.map create mode 100644 packages/cache/dist/cjs/index.js create mode 100644 packages/cache/dist/cjs/index.js.map create mode 100644 packages/cache/dist/cjs/main.d.ts create mode 100644 packages/cache/dist/cjs/main.d.ts.map create mode 100644 packages/cache/dist/esm/index.d.ts create mode 100644 packages/cache/dist/esm/index.d.ts.map create mode 100644 packages/cache/dist/esm/index.js create mode 100644 packages/cache/dist/esm/index.js.map create mode 100644 packages/cache/dist/esm/main.d.ts create mode 100644 packages/cache/dist/esm/main.d.ts.map create mode 100644 packages/core/dist/cjs/index.d.ts create mode 100644 packages/core/dist/cjs/index.d.ts.map create mode 100644 packages/core/dist/cjs/index.js create mode 100644 packages/core/dist/cjs/index.js.map create mode 100644 packages/core/dist/cjs/internal/__test__/fixtures.d.ts create mode 100644 packages/core/dist/cjs/internal/__test__/fixtures.d.ts.map create mode 100644 packages/core/dist/cjs/internal/__test__/normalizeRoomState.d.ts create mode 100644 packages/core/dist/cjs/internal/__test__/normalizeRoomState.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/bgm.d.ts create mode 100644 packages/core/dist/cjs/internal/command/bgm.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/bgms.d.ts create mode 100644 packages/core/dist/cjs/internal/command/bgms.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/boolParam.d.ts create mode 100644 packages/core/dist/cjs/internal/command/boolParam.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/boolParams.d.ts create mode 100644 packages/core/dist/cjs/internal/command/boolParams.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/character.d.ts create mode 100644 packages/core/dist/cjs/internal/command/character.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/filePath.d.ts create mode 100644 packages/core/dist/cjs/internal/command/filePath.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/main.d.ts create mode 100644 packages/core/dist/cjs/internal/command/main.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/numParam.d.ts create mode 100644 packages/core/dist/cjs/internal/command/numParam.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/numParams.d.ts create mode 100644 packages/core/dist/cjs/internal/command/numParams.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/paramNames.d.ts create mode 100644 packages/core/dist/cjs/internal/command/paramNames.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/participant.d.ts create mode 100644 packages/core/dist/cjs/internal/command/participant.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/room.d.ts create mode 100644 packages/core/dist/cjs/internal/command/room.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/stateRecord.d.ts create mode 100644 packages/core/dist/cjs/internal/command/stateRecord.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/strParam.d.ts create mode 100644 packages/core/dist/cjs/internal/command/strParam.d.ts.map create mode 100644 packages/core/dist/cjs/internal/command/strParams.d.ts create mode 100644 packages/core/dist/cjs/internal/command/strParams.d.ts.map create mode 100644 packages/core/dist/cjs/internal/constants.d.ts create mode 100644 packages/core/dist/cjs/internal/constants.d.ts.map create mode 100644 packages/core/dist/cjs/internal/env.d.ts create mode 100644 packages/core/dist/cjs/internal/env.d.ts.map create mode 100644 packages/core/dist/cjs/internal/expression.d.ts create mode 100644 packages/core/dist/cjs/internal/expression.d.ts.map create mode 100644 packages/core/dist/cjs/internal/fake/fakeFirebaseConfig.d.ts create mode 100644 packages/core/dist/cjs/internal/fake/fakeFirebaseConfig.d.ts.map create mode 100644 packages/core/dist/cjs/internal/firebaseConfig.d.ts create mode 100644 packages/core/dist/cjs/internal/firebaseConfig.d.ts.map create mode 100644 packages/core/dist/cjs/internal/forceMaxLength100String.d.ts create mode 100644 packages/core/dist/cjs/internal/forceMaxLength100String.d.ts.map create mode 100644 packages/core/dist/cjs/internal/indexes.d.ts create mode 100644 packages/core/dist/cjs/internal/indexes.d.ts.map create mode 100644 packages/core/dist/cjs/internal/maxLengthString.d.ts create mode 100644 packages/core/dist/cjs/internal/maxLengthString.d.ts.map create mode 100644 packages/core/dist/cjs/internal/maybe.d.ts create mode 100644 packages/core/dist/cjs/internal/maybe.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/array.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/array.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/boardPosition/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/boardPosition/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/boardPosition/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/boardPosition/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/compositeKey/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/compositeKey/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/filePath/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/filePath/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/piece/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/piece/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/piece/log.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/piece/log.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/piece/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/piece/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/bgm/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/bgm/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/bgm/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/bgm/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/converter.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/converter.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/log.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/log.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/converter.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/converter.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/log.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/log.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/board/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/command/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/command/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/command/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/command/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/character/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/converter.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/converter.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/log.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/log.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/memo/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/memo/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/memo/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/memo/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/paramName/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/paramName/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/paramName/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/paramName/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/participant/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/participant/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/participant/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/participant/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/rollCall/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/rollCall/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/rollCall/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/rollCall/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/room/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/shape/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/shape/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/flocon/shape/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/flocon/shape/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/generator/functions.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/generator/functions.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/generator/omitVersion.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/generator/omitVersion.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/generator/types.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/generator/types.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/nullableTextOperation.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/nullableTextOperation.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/otError.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/otError.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/paramRecordOperation.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/paramRecordOperation.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/record.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/record.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/recordOperation.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/recordOperation.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/recordOperationElement.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/recordOperationElement.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/requestedBy.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/requestedBy.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/shape.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/shape.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/textOperation.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/textOperation.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/util/array/arrayDiff.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/util/array/arrayDiff.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/util/array/arrayTransform.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/util/array/arrayTransform.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/util/createOperation.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/util/createOperation.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/util/isValidKey.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/util/isValidKey.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/util/replaceOperation.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/util/replaceOperation.d.ts.map create mode 100644 packages/core/dist/cjs/internal/ot/util/type.d.ts create mode 100644 packages/core/dist/cjs/internal/ot/util/type.d.ts.map create mode 100644 packages/core/dist/cjs/internal/publicChannelKey.d.ts create mode 100644 packages/core/dist/cjs/internal/publicChannelKey.d.ts.map create mode 100644 packages/core/dist/cjs/internal/simpleId.d.ts create mode 100644 packages/core/dist/cjs/internal/simpleId.d.ts.map create mode 100644 packages/core/dist/cjs/internal/toml.d.ts create mode 100644 packages/core/dist/cjs/internal/toml.d.ts.map create mode 100644 packages/core/dist/cjs/internal/uploaderPath.d.ts create mode 100644 packages/core/dist/cjs/internal/uploaderPath.d.ts.map create mode 100644 packages/core/dist/esm/index.d.ts create mode 100644 packages/core/dist/esm/index.d.ts.map create mode 100644 packages/core/dist/esm/index.js create mode 100644 packages/core/dist/esm/index.js.map create mode 100644 packages/core/dist/esm/internal/__test__/fixtures.d.ts create mode 100644 packages/core/dist/esm/internal/__test__/fixtures.d.ts.map create mode 100644 packages/core/dist/esm/internal/__test__/normalizeRoomState.d.ts create mode 100644 packages/core/dist/esm/internal/__test__/normalizeRoomState.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/bgm.d.ts create mode 100644 packages/core/dist/esm/internal/command/bgm.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/bgms.d.ts create mode 100644 packages/core/dist/esm/internal/command/bgms.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/boolParam.d.ts create mode 100644 packages/core/dist/esm/internal/command/boolParam.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/boolParams.d.ts create mode 100644 packages/core/dist/esm/internal/command/boolParams.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/character.d.ts create mode 100644 packages/core/dist/esm/internal/command/character.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/filePath.d.ts create mode 100644 packages/core/dist/esm/internal/command/filePath.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/main.d.ts create mode 100644 packages/core/dist/esm/internal/command/main.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/numParam.d.ts create mode 100644 packages/core/dist/esm/internal/command/numParam.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/numParams.d.ts create mode 100644 packages/core/dist/esm/internal/command/numParams.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/paramNames.d.ts create mode 100644 packages/core/dist/esm/internal/command/paramNames.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/participant.d.ts create mode 100644 packages/core/dist/esm/internal/command/participant.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/room.d.ts create mode 100644 packages/core/dist/esm/internal/command/room.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/stateRecord.d.ts create mode 100644 packages/core/dist/esm/internal/command/stateRecord.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/strParam.d.ts create mode 100644 packages/core/dist/esm/internal/command/strParam.d.ts.map create mode 100644 packages/core/dist/esm/internal/command/strParams.d.ts create mode 100644 packages/core/dist/esm/internal/command/strParams.d.ts.map create mode 100644 packages/core/dist/esm/internal/constants.d.ts create mode 100644 packages/core/dist/esm/internal/constants.d.ts.map create mode 100644 packages/core/dist/esm/internal/env.d.ts create mode 100644 packages/core/dist/esm/internal/env.d.ts.map create mode 100644 packages/core/dist/esm/internal/expression.d.ts create mode 100644 packages/core/dist/esm/internal/expression.d.ts.map create mode 100644 packages/core/dist/esm/internal/fake/fakeFirebaseConfig.d.ts create mode 100644 packages/core/dist/esm/internal/fake/fakeFirebaseConfig.d.ts.map create mode 100644 packages/core/dist/esm/internal/firebaseConfig.d.ts create mode 100644 packages/core/dist/esm/internal/firebaseConfig.d.ts.map create mode 100644 packages/core/dist/esm/internal/forceMaxLength100String.d.ts create mode 100644 packages/core/dist/esm/internal/forceMaxLength100String.d.ts.map create mode 100644 packages/core/dist/esm/internal/indexes.d.ts create mode 100644 packages/core/dist/esm/internal/indexes.d.ts.map create mode 100644 packages/core/dist/esm/internal/maxLengthString.d.ts create mode 100644 packages/core/dist/esm/internal/maxLengthString.d.ts.map create mode 100644 packages/core/dist/esm/internal/maybe.d.ts create mode 100644 packages/core/dist/esm/internal/maybe.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/array.d.ts create mode 100644 packages/core/dist/esm/internal/ot/array.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/boardPosition/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/boardPosition/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/boardPosition/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/boardPosition/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/compositeKey/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/compositeKey/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/filePath/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/filePath/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/piece/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/piece/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/piece/log.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/piece/log.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/piece/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/piece/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/bgm/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/bgm/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/bgm/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/bgm/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/converter.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/converter.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/log.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/log.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/converter.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/converter.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/log.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/log.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/board/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/command/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/command/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/command/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/command/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/numParam/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/numParam/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/numParam/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/numParam/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/strParam/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/strParam/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/strParam/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/strParam/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/character/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/converter.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/converter.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/log.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/log.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/memo/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/memo/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/memo/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/memo/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/paramName/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/paramName/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/paramName/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/paramName/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/participant/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/participant/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/participant/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/participant/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/rollCall/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/rollCall/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/rollCall/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/rollCall/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/room/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/shape/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/shape/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/flocon/shape/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/flocon/shape/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/generator/functions.d.ts create mode 100644 packages/core/dist/esm/internal/ot/generator/functions.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/generator/omitVersion.d.ts create mode 100644 packages/core/dist/esm/internal/ot/generator/omitVersion.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/generator/types.d.ts create mode 100644 packages/core/dist/esm/internal/ot/generator/types.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/nullableTextOperation.d.ts create mode 100644 packages/core/dist/esm/internal/ot/nullableTextOperation.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/otError.d.ts create mode 100644 packages/core/dist/esm/internal/ot/otError.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/paramRecordOperation.d.ts create mode 100644 packages/core/dist/esm/internal/ot/paramRecordOperation.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/record.d.ts create mode 100644 packages/core/dist/esm/internal/ot/record.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/recordOperation.d.ts create mode 100644 packages/core/dist/esm/internal/ot/recordOperation.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/recordOperationElement.d.ts create mode 100644 packages/core/dist/esm/internal/ot/recordOperationElement.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/requestedBy.d.ts create mode 100644 packages/core/dist/esm/internal/ot/requestedBy.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/shape.d.ts create mode 100644 packages/core/dist/esm/internal/ot/shape.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/textOperation.d.ts create mode 100644 packages/core/dist/esm/internal/ot/textOperation.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/util/array/arrayDiff.d.ts create mode 100644 packages/core/dist/esm/internal/ot/util/array/arrayDiff.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/util/array/arrayTransform.d.ts create mode 100644 packages/core/dist/esm/internal/ot/util/array/arrayTransform.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/util/createOperation.d.ts create mode 100644 packages/core/dist/esm/internal/ot/util/createOperation.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/util/isValidKey.d.ts create mode 100644 packages/core/dist/esm/internal/ot/util/isValidKey.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/util/replaceOperation.d.ts create mode 100644 packages/core/dist/esm/internal/ot/util/replaceOperation.d.ts.map create mode 100644 packages/core/dist/esm/internal/ot/util/type.d.ts create mode 100644 packages/core/dist/esm/internal/ot/util/type.d.ts.map create mode 100644 packages/core/dist/esm/internal/publicChannelKey.d.ts create mode 100644 packages/core/dist/esm/internal/publicChannelKey.d.ts.map create mode 100644 packages/core/dist/esm/internal/simpleId.d.ts create mode 100644 packages/core/dist/esm/internal/simpleId.d.ts.map create mode 100644 packages/core/dist/esm/internal/toml.d.ts create mode 100644 packages/core/dist/esm/internal/toml.d.ts.map create mode 100644 packages/core/dist/esm/internal/uploaderPath.d.ts create mode 100644 packages/core/dist/esm/internal/uploaderPath.d.ts.map create mode 100644 packages/default-pino-transport/dist/cjs/index.d.ts create mode 100644 packages/default-pino-transport/dist/cjs/index.d.ts.map create mode 100644 packages/default-pino-transport/dist/cjs/index.js create mode 100644 packages/default-pino-transport/dist/cjs/index.js.map create mode 100644 packages/default-pino-transport/dist/esm/index.d.ts create mode 100644 packages/default-pino-transport/dist/esm/index.d.ts.map create mode 100644 packages/default-pino-transport/dist/esm/index.js create mode 100644 packages/default-pino-transport/dist/esm/index.js.map create mode 100644 packages/flocon-script/dist/cjs/ScriptError.d.ts create mode 100644 packages/flocon-script/dist/cjs/ScriptError.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/builtIn/Array.d.ts create mode 100644 packages/flocon-script/dist/cjs/builtIn/Array.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/builtIn/Map.d.ts create mode 100644 packages/flocon-script/dist/cjs/builtIn/Map.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/builtIn/Symbol.d.ts create mode 100644 packages/flocon-script/dist/cjs/builtIn/Symbol.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/builtIn/console.d.ts create mode 100644 packages/flocon-script/dist/cjs/builtIn/console.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/context.d.ts create mode 100644 packages/flocon-script/dist/cjs/context.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/fExpression.d.ts create mode 100644 packages/flocon-script/dist/cjs/fExpression.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/fPattern.d.ts create mode 100644 packages/flocon-script/dist/cjs/fPattern.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/fStatement.d.ts create mode 100644 packages/flocon-script/dist/cjs/fStatement.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/getRestValues.d.ts create mode 100644 packages/flocon-script/dist/cjs/getRestValues.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/index.d.ts create mode 100644 packages/flocon-script/dist/cjs/index.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/index.js create mode 100644 packages/flocon-script/dist/cjs/index.js.map create mode 100644 packages/flocon-script/dist/cjs/main.d.ts create mode 100644 packages/flocon-script/dist/cjs/main.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/range.d.ts create mode 100644 packages/flocon-script/dist/cjs/range.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FArray.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FArray.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FBoolean.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FBoolean.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FFunction.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FFunction.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FGlobalRecord.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FGlobalRecord.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FIterator.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FIterator.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FMap.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FMap.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FNumber.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FNumber.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FObject.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FObject.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FRecord.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FRecord.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FRecordRef.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FRecordRef.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FString.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FString.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FSymbol.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FSymbol.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FType.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FType.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FValue.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/FValue.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/cast.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/cast.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/compare.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/compare.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/eqeq.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/eqeq.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/eqeqeq.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/eqeqeq.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/isTruthy.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/isTruthy.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/toFGlobalRecord.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/toFGlobalRecord.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/toFRecord.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/toFRecord.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/toFValue.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/toFValue.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/toPrimitive.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/toPrimitive.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/toPropertyName.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/toPropertyName.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/toTypeName.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/toTypeName.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/tryToPropertyName.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/tryToPropertyName.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/scriptValue/types.d.ts create mode 100644 packages/flocon-script/dist/cjs/scriptValue/types.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/utils/mapIterator.d.ts create mode 100644 packages/flocon-script/dist/cjs/utils/mapIterator.d.ts.map create mode 100644 packages/flocon-script/dist/cjs/utils/toJObject.d.ts create mode 100644 packages/flocon-script/dist/cjs/utils/toJObject.d.ts.map create mode 100644 packages/flocon-script/dist/esm/ScriptError.d.ts create mode 100644 packages/flocon-script/dist/esm/ScriptError.d.ts.map create mode 100644 packages/flocon-script/dist/esm/builtIn/Array.d.ts create mode 100644 packages/flocon-script/dist/esm/builtIn/Array.d.ts.map create mode 100644 packages/flocon-script/dist/esm/builtIn/Map.d.ts create mode 100644 packages/flocon-script/dist/esm/builtIn/Map.d.ts.map create mode 100644 packages/flocon-script/dist/esm/builtIn/Symbol.d.ts create mode 100644 packages/flocon-script/dist/esm/builtIn/Symbol.d.ts.map create mode 100644 packages/flocon-script/dist/esm/builtIn/console.d.ts create mode 100644 packages/flocon-script/dist/esm/builtIn/console.d.ts.map create mode 100644 packages/flocon-script/dist/esm/context.d.ts create mode 100644 packages/flocon-script/dist/esm/context.d.ts.map create mode 100644 packages/flocon-script/dist/esm/fExpression.d.ts create mode 100644 packages/flocon-script/dist/esm/fExpression.d.ts.map create mode 100644 packages/flocon-script/dist/esm/fPattern.d.ts create mode 100644 packages/flocon-script/dist/esm/fPattern.d.ts.map create mode 100644 packages/flocon-script/dist/esm/fStatement.d.ts create mode 100644 packages/flocon-script/dist/esm/fStatement.d.ts.map create mode 100644 packages/flocon-script/dist/esm/getRestValues.d.ts create mode 100644 packages/flocon-script/dist/esm/getRestValues.d.ts.map create mode 100644 packages/flocon-script/dist/esm/index.d.ts create mode 100644 packages/flocon-script/dist/esm/index.d.ts.map create mode 100644 packages/flocon-script/dist/esm/index.js create mode 100644 packages/flocon-script/dist/esm/index.js.map create mode 100644 packages/flocon-script/dist/esm/main.d.ts create mode 100644 packages/flocon-script/dist/esm/main.d.ts.map create mode 100644 packages/flocon-script/dist/esm/range.d.ts create mode 100644 packages/flocon-script/dist/esm/range.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FArray.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FArray.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FBoolean.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FBoolean.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FFunction.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FFunction.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FGlobalRecord.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FGlobalRecord.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FIterator.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FIterator.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FMap.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FMap.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FNumber.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FNumber.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FObject.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FObject.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FRecord.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FRecord.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FRecordRef.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FRecordRef.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FString.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FString.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FSymbol.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FSymbol.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FType.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FType.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/FValue.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/FValue.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/cast.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/cast.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/compare.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/compare.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/eqeq.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/eqeq.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/eqeqeq.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/eqeqeq.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/isTruthy.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/isTruthy.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/toFGlobalRecord.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/toFGlobalRecord.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/toFRecord.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/toFRecord.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/toFValue.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/toFValue.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/toPrimitive.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/toPrimitive.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/toPropertyName.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/toPropertyName.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/toTypeName.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/toTypeName.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/tryToPropertyName.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/tryToPropertyName.d.ts.map create mode 100644 packages/flocon-script/dist/esm/scriptValue/types.d.ts create mode 100644 packages/flocon-script/dist/esm/scriptValue/types.d.ts.map create mode 100644 packages/flocon-script/dist/esm/utils/mapIterator.d.ts create mode 100644 packages/flocon-script/dist/esm/utils/mapIterator.d.ts.map create mode 100644 packages/flocon-script/dist/esm/utils/toJObject.d.ts create mode 100644 packages/flocon-script/dist/esm/utils/toJObject.d.ts.map create mode 100644 packages/logger-base/dist/cjs/index.d.ts create mode 100644 packages/logger-base/dist/cjs/index.d.ts.map create mode 100644 packages/logger-base/dist/cjs/index.js create mode 100644 packages/logger-base/dist/cjs/index.js.map create mode 100644 packages/logger-base/dist/esm/index.d.ts create mode 100644 packages/logger-base/dist/esm/index.d.ts.map create mode 100644 packages/logger-base/dist/esm/index.js create mode 100644 packages/logger-base/dist/esm/index.js.map create mode 100644 packages/sdk-react/dist/cjs/index.d.ts create mode 100644 packages/sdk-react/dist/cjs/index.d.ts.map create mode 100644 packages/sdk-react/dist/cjs/index.js create mode 100644 packages/sdk-react/dist/cjs/index.js.map create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useCreateRoomClient.d.ts create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useCreateRoomClient.d.ts.map create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useReadonlyBehaviorEvent.d.ts create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useReadonlyBehaviorEvent.d.ts.map create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useRoomConnections.d.ts create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useRoomConnections.d.ts.map create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useRoomGraphQLStatus.d.ts create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useRoomGraphQLStatus.d.ts.map create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useRoomMessageQueryStatus.d.ts create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useRoomMessageQueryStatus.d.ts.map create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useRoomMessages.d.ts create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useRoomMessages.d.ts.map create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useRoomState.d.ts create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useRoomState.d.ts.map create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useUpdateWritingMessageStatus.d.ts create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useUpdateWritingMessageStatus.d.ts.map create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useWritingMessageStatus.d.ts create mode 100644 packages/sdk-react/dist/cjs/internal/hooks/useWritingMessageStatus.d.ts.map create mode 100644 packages/sdk-react/dist/esm/index.d.ts create mode 100644 packages/sdk-react/dist/esm/index.d.ts.map create mode 100644 packages/sdk-react/dist/esm/index.js create mode 100644 packages/sdk-react/dist/esm/index.js.map create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useCreateRoomClient.d.ts create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useCreateRoomClient.d.ts.map create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useReadonlyBehaviorEvent.d.ts create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useReadonlyBehaviorEvent.d.ts.map create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useRoomConnections.d.ts create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useRoomConnections.d.ts.map create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useRoomGraphQLStatus.d.ts create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useRoomGraphQLStatus.d.ts.map create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useRoomMessageQueryStatus.d.ts create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useRoomMessageQueryStatus.d.ts.map create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useRoomMessages.d.ts create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useRoomMessages.d.ts.map create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useRoomState.d.ts create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useRoomState.d.ts.map create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useUpdateWritingMessageStatus.d.ts create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useUpdateWritingMessageStatus.d.ts.map create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useWritingMessageStatus.d.ts create mode 100644 packages/sdk-react/dist/esm/internal/hooks/useWritingMessageStatus.d.ts.map create mode 100644 packages/sdk-urql/dist/cjs/index.d.ts create mode 100644 packages/sdk-urql/dist/cjs/index.d.ts.map create mode 100644 packages/sdk-urql/dist/cjs/index.js create mode 100644 packages/sdk-urql/dist/cjs/index.js.map create mode 100644 packages/sdk-urql/dist/cjs/internal/createGraphQLClient.d.ts create mode 100644 packages/sdk-urql/dist/cjs/internal/createGraphQLClient.d.ts.map create mode 100644 packages/sdk-urql/dist/cjs/internal/createUrqlClient.d.ts create mode 100644 packages/sdk-urql/dist/cjs/internal/createUrqlClient.d.ts.map create mode 100644 packages/sdk-urql/dist/esm/index.d.ts create mode 100644 packages/sdk-urql/dist/esm/index.d.ts.map create mode 100644 packages/sdk-urql/dist/esm/index.js create mode 100644 packages/sdk-urql/dist/esm/index.js.map create mode 100644 packages/sdk-urql/dist/esm/internal/createGraphQLClient.d.ts create mode 100644 packages/sdk-urql/dist/esm/internal/createGraphQLClient.d.ts.map create mode 100644 packages/sdk-urql/dist/esm/internal/createUrqlClient.d.ts create mode 100644 packages/sdk-urql/dist/esm/internal/createUrqlClient.d.ts.map create mode 100644 packages/sdk/dist/cjs/index.d.ts create mode 100644 packages/sdk/dist/cjs/index.d.ts.map create mode 100644 packages/sdk/dist/cjs/index.js create mode 100644 packages/sdk/dist/cjs/index.js.map create mode 100644 packages/sdk/dist/cjs/internal/createRoomClient.d.ts create mode 100644 packages/sdk/dist/cjs/internal/createRoomClient.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/createTestRoomClient.d.ts create mode 100644 packages/sdk/dist/cjs/internal/createTestRoomClient.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/roomClient/graphqlClient.d.ts create mode 100644 packages/sdk/dist/cjs/internal/roomClient/graphqlClient.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/roomClient/roomConnections.d.ts create mode 100644 packages/sdk/dist/cjs/internal/roomClient/roomConnections.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/roomClient/roomMessages.d.ts create mode 100644 packages/sdk/dist/cjs/internal/roomClient/roomMessages.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/roomClient/roomState.d.ts create mode 100644 packages/sdk/dist/cjs/internal/roomClient/roomState.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/roomClient/subscribeWritingMessageStatus.d.ts create mode 100644 packages/sdk/dist/cjs/internal/roomClient/subscribeWritingMessageStatus.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/roomClient/updateWritingMessageStatus.d.ts create mode 100644 packages/sdk/dist/cjs/internal/roomClient/updateWritingMessageStatus.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/rxjs/behaviorEvent.d.ts create mode 100644 packages/sdk/dist/cjs/internal/rxjs/behaviorEvent.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/rxjs/readonlyBehaviorEvent.d.ts create mode 100644 packages/sdk/dist/cjs/internal/rxjs/readonlyBehaviorEvent.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/stateManager/create.d.ts create mode 100644 packages/sdk/dist/cjs/internal/stateManager/create.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/stateManager/stateManager/stateGetter.d.ts create mode 100644 packages/sdk/dist/cjs/internal/stateManager/stateManager/stateGetter.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManager.d.ts create mode 100644 packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManager.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerCore.d.ts create mode 100644 packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerCore.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts create mode 100644 packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/stateManager/stateManager/types.d.ts create mode 100644 packages/sdk/dist/cjs/internal/stateManager/stateManager/types.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/stateManager/states/room.d.ts create mode 100644 packages/sdk/dist/cjs/internal/stateManager/states/room.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/stateManager/states/types.d.ts create mode 100644 packages/sdk/dist/cjs/internal/stateManager/states/types.d.ts.map create mode 100644 packages/sdk/dist/cjs/internal/types.d.ts create mode 100644 packages/sdk/dist/cjs/internal/types.d.ts.map create mode 100644 packages/sdk/dist/esm/index.d.ts create mode 100644 packages/sdk/dist/esm/index.d.ts.map create mode 100644 packages/sdk/dist/esm/index.js create mode 100644 packages/sdk/dist/esm/index.js.map create mode 100644 packages/sdk/dist/esm/internal/createRoomClient.d.ts create mode 100644 packages/sdk/dist/esm/internal/createRoomClient.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/createTestRoomClient.d.ts create mode 100644 packages/sdk/dist/esm/internal/createTestRoomClient.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/roomClient/graphqlClient.d.ts create mode 100644 packages/sdk/dist/esm/internal/roomClient/graphqlClient.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/roomClient/roomConnections.d.ts create mode 100644 packages/sdk/dist/esm/internal/roomClient/roomConnections.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/roomClient/roomMessages.d.ts create mode 100644 packages/sdk/dist/esm/internal/roomClient/roomMessages.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/roomClient/roomState.d.ts create mode 100644 packages/sdk/dist/esm/internal/roomClient/roomState.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/roomClient/subscribeWritingMessageStatus.d.ts create mode 100644 packages/sdk/dist/esm/internal/roomClient/subscribeWritingMessageStatus.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/roomClient/updateWritingMessageStatus.d.ts create mode 100644 packages/sdk/dist/esm/internal/roomClient/updateWritingMessageStatus.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/rxjs/behaviorEvent.d.ts create mode 100644 packages/sdk/dist/esm/internal/rxjs/behaviorEvent.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/rxjs/readonlyBehaviorEvent.d.ts create mode 100644 packages/sdk/dist/esm/internal/rxjs/readonlyBehaviorEvent.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/stateManager/create.d.ts create mode 100644 packages/sdk/dist/esm/internal/stateManager/create.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/stateManager/stateManager/stateGetter.d.ts create mode 100644 packages/sdk/dist/esm/internal/stateManager/stateManager/stateGetter.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/stateManager/stateManager/stateManager.d.ts create mode 100644 packages/sdk/dist/esm/internal/stateManager/stateManager/stateManager.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerCore.d.ts create mode 100644 packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerCore.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts create mode 100644 packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/stateManager/stateManager/types.d.ts create mode 100644 packages/sdk/dist/esm/internal/stateManager/stateManager/types.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/stateManager/states/room.d.ts create mode 100644 packages/sdk/dist/esm/internal/stateManager/states/room.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/stateManager/states/types.d.ts create mode 100644 packages/sdk/dist/esm/internal/stateManager/states/types.d.ts.map create mode 100644 packages/sdk/dist/esm/internal/types.d.ts create mode 100644 packages/sdk/dist/esm/internal/types.d.ts.map create mode 100644 packages/typed-document-node/dist/cjs/generated/graphql.d.ts create mode 100644 packages/typed-document-node/dist/cjs/generated/graphql.d.ts.map create mode 100644 packages/typed-document-node/dist/cjs/index.d.ts create mode 100644 packages/typed-document-node/dist/cjs/index.d.ts.map create mode 100644 packages/typed-document-node/dist/cjs/index.js create mode 100644 packages/typed-document-node/dist/cjs/index.js.map create mode 100644 packages/typed-document-node/dist/esm/generated/graphql.d.ts create mode 100644 packages/typed-document-node/dist/esm/generated/graphql.d.ts.map create mode 100644 packages/typed-document-node/dist/esm/index.d.ts create mode 100644 packages/typed-document-node/dist/esm/index.d.ts.map create mode 100644 packages/typed-document-node/dist/esm/index.js create mode 100644 packages/typed-document-node/dist/esm/index.js.map create mode 100644 packages/utils/dist/cjs/index.d.ts create mode 100644 packages/utils/dist/cjs/index.d.ts.map create mode 100644 packages/utils/dist/cjs/index.js create mode 100644 packages/utils/dist/cjs/index.js.map create mode 100644 packages/utils/dist/cjs/internal/arrayEquals.d.ts create mode 100644 packages/utils/dist/cjs/internal/arrayEquals.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/compare.d.ts create mode 100644 packages/utils/dist/cjs/internal/compare.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/compositeKey.d.ts create mode 100644 packages/utils/dist/cjs/internal/compositeKey.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/delay.d.ts create mode 100644 packages/utils/dist/cjs/internal/delay.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/deletableTree.d.ts create mode 100644 packages/utils/dist/cjs/internal/deletableTree.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/dualKeyMap.d.ts create mode 100644 packages/utils/dist/cjs/internal/dualKeyMap.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/filterInt.d.ts create mode 100644 packages/utils/dist/cjs/internal/filterInt.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/groupJoinArray.d.ts create mode 100644 packages/utils/dist/cjs/internal/groupJoinArray.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/groupJoinMap.d.ts create mode 100644 packages/utils/dist/cjs/internal/groupJoinMap.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/groupJoinSet.d.ts create mode 100644 packages/utils/dist/cjs/internal/groupJoinSet.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/iterable.d.ts create mode 100644 packages/utils/dist/cjs/internal/iterable.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/keyNames.d.ts create mode 100644 packages/utils/dist/cjs/internal/keyNames.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/logger.d.ts create mode 100644 packages/utils/dist/cjs/internal/logger.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/multiKeyMap.d.ts create mode 100644 packages/utils/dist/cjs/internal/multiKeyMap.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/multiValueSet.d.ts create mode 100644 packages/utils/dist/cjs/internal/multiValueSet.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/nonEmptyArray.d.ts create mode 100644 packages/utils/dist/cjs/internal/nonEmptyArray.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/parseEnvListValue.d.ts create mode 100644 packages/utils/dist/cjs/internal/parseEnvListValue.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/parsePinoLogLevel.d.ts create mode 100644 packages/utils/dist/cjs/internal/parsePinoLogLevel.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/parseStringToBoolean.d.ts create mode 100644 packages/utils/dist/cjs/internal/parseStringToBoolean.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/record.d.ts create mode 100644 packages/utils/dist/cjs/internal/record.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/semver.d.ts create mode 100644 packages/utils/dist/cjs/internal/semver.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/tree.d.ts create mode 100644 packages/utils/dist/cjs/internal/tree.d.ts.map create mode 100644 packages/utils/dist/cjs/internal/types.d.ts create mode 100644 packages/utils/dist/cjs/internal/types.d.ts.map create mode 100644 packages/utils/dist/esm/index.d.ts create mode 100644 packages/utils/dist/esm/index.d.ts.map create mode 100644 packages/utils/dist/esm/index.js create mode 100644 packages/utils/dist/esm/index.js.map create mode 100644 packages/utils/dist/esm/internal/arrayEquals.d.ts create mode 100644 packages/utils/dist/esm/internal/arrayEquals.d.ts.map create mode 100644 packages/utils/dist/esm/internal/compare.d.ts create mode 100644 packages/utils/dist/esm/internal/compare.d.ts.map create mode 100644 packages/utils/dist/esm/internal/compositeKey.d.ts create mode 100644 packages/utils/dist/esm/internal/compositeKey.d.ts.map create mode 100644 packages/utils/dist/esm/internal/delay.d.ts create mode 100644 packages/utils/dist/esm/internal/delay.d.ts.map create mode 100644 packages/utils/dist/esm/internal/deletableTree.d.ts create mode 100644 packages/utils/dist/esm/internal/deletableTree.d.ts.map create mode 100644 packages/utils/dist/esm/internal/dualKeyMap.d.ts create mode 100644 packages/utils/dist/esm/internal/dualKeyMap.d.ts.map create mode 100644 packages/utils/dist/esm/internal/filterInt.d.ts create mode 100644 packages/utils/dist/esm/internal/filterInt.d.ts.map create mode 100644 packages/utils/dist/esm/internal/groupJoinArray.d.ts create mode 100644 packages/utils/dist/esm/internal/groupJoinArray.d.ts.map create mode 100644 packages/utils/dist/esm/internal/groupJoinMap.d.ts create mode 100644 packages/utils/dist/esm/internal/groupJoinMap.d.ts.map create mode 100644 packages/utils/dist/esm/internal/groupJoinSet.d.ts create mode 100644 packages/utils/dist/esm/internal/groupJoinSet.d.ts.map create mode 100644 packages/utils/dist/esm/internal/iterable.d.ts create mode 100644 packages/utils/dist/esm/internal/iterable.d.ts.map create mode 100644 packages/utils/dist/esm/internal/keyNames.d.ts create mode 100644 packages/utils/dist/esm/internal/keyNames.d.ts.map create mode 100644 packages/utils/dist/esm/internal/logger.d.ts create mode 100644 packages/utils/dist/esm/internal/logger.d.ts.map create mode 100644 packages/utils/dist/esm/internal/multiKeyMap.d.ts create mode 100644 packages/utils/dist/esm/internal/multiKeyMap.d.ts.map create mode 100644 packages/utils/dist/esm/internal/multiValueSet.d.ts create mode 100644 packages/utils/dist/esm/internal/multiValueSet.d.ts.map create mode 100644 packages/utils/dist/esm/internal/nonEmptyArray.d.ts create mode 100644 packages/utils/dist/esm/internal/nonEmptyArray.d.ts.map create mode 100644 packages/utils/dist/esm/internal/parseEnvListValue.d.ts create mode 100644 packages/utils/dist/esm/internal/parseEnvListValue.d.ts.map create mode 100644 packages/utils/dist/esm/internal/parsePinoLogLevel.d.ts create mode 100644 packages/utils/dist/esm/internal/parsePinoLogLevel.d.ts.map create mode 100644 packages/utils/dist/esm/internal/parseStringToBoolean.d.ts create mode 100644 packages/utils/dist/esm/internal/parseStringToBoolean.d.ts.map create mode 100644 packages/utils/dist/esm/internal/record.d.ts create mode 100644 packages/utils/dist/esm/internal/record.d.ts.map create mode 100644 packages/utils/dist/esm/internal/semver.d.ts create mode 100644 packages/utils/dist/esm/internal/semver.d.ts.map create mode 100644 packages/utils/dist/esm/internal/tree.d.ts create mode 100644 packages/utils/dist/esm/internal/tree.d.ts.map create mode 100644 packages/utils/dist/esm/internal/types.d.ts create mode 100644 packages/utils/dist/esm/internal/types.d.ts.map create mode 100644 packages/web-server-utils/dist/cjs/index.d.ts create mode 100644 packages/web-server-utils/dist/cjs/index.d.ts.map create mode 100644 packages/web-server-utils/dist/cjs/index.js create mode 100644 packages/web-server-utils/dist/cjs/index.js.map create mode 100644 packages/web-server-utils/dist/cjs/internal/filteredArray.d.ts create mode 100644 packages/web-server-utils/dist/cjs/internal/filteredArray.d.ts.map create mode 100644 packages/web-server-utils/dist/cjs/internal/messageSet.d.ts create mode 100644 packages/web-server-utils/dist/cjs/internal/messageSet.d.ts.map create mode 100644 packages/web-server-utils/dist/cjs/internal/privateChannelSet.d.ts create mode 100644 packages/web-server-utils/dist/cjs/internal/privateChannelSet.d.ts.map create mode 100644 packages/web-server-utils/dist/cjs/internal/privateChannelSets.d.ts create mode 100644 packages/web-server-utils/dist/cjs/internal/privateChannelSets.d.ts.map create mode 100644 packages/web-server-utils/dist/cjs/internal/roomChannels.d.ts create mode 100644 packages/web-server-utils/dist/cjs/internal/roomChannels.d.ts.map create mode 100644 packages/web-server-utils/dist/cjs/internal/roomMessageTypes.d.ts create mode 100644 packages/web-server-utils/dist/cjs/internal/roomMessageTypes.d.ts.map create mode 100644 packages/web-server-utils/dist/cjs/internal/roomMessagesClient.d.ts create mode 100644 packages/web-server-utils/dist/cjs/internal/roomMessagesClient.d.ts.map create mode 100644 packages/web-server-utils/dist/cjs/internal/utils.d.ts create mode 100644 packages/web-server-utils/dist/cjs/internal/utils.d.ts.map create mode 100644 packages/web-server-utils/dist/esm/index.d.ts create mode 100644 packages/web-server-utils/dist/esm/index.d.ts.map create mode 100644 packages/web-server-utils/dist/esm/index.js create mode 100644 packages/web-server-utils/dist/esm/index.js.map create mode 100644 packages/web-server-utils/dist/esm/internal/filteredArray.d.ts create mode 100644 packages/web-server-utils/dist/esm/internal/filteredArray.d.ts.map create mode 100644 packages/web-server-utils/dist/esm/internal/messageSet.d.ts create mode 100644 packages/web-server-utils/dist/esm/internal/messageSet.d.ts.map create mode 100644 packages/web-server-utils/dist/esm/internal/privateChannelSet.d.ts create mode 100644 packages/web-server-utils/dist/esm/internal/privateChannelSet.d.ts.map create mode 100644 packages/web-server-utils/dist/esm/internal/privateChannelSets.d.ts create mode 100644 packages/web-server-utils/dist/esm/internal/privateChannelSets.d.ts.map create mode 100644 packages/web-server-utils/dist/esm/internal/roomChannels.d.ts create mode 100644 packages/web-server-utils/dist/esm/internal/roomChannels.d.ts.map create mode 100644 packages/web-server-utils/dist/esm/internal/roomMessageTypes.d.ts create mode 100644 packages/web-server-utils/dist/esm/internal/roomMessageTypes.d.ts.map create mode 100644 packages/web-server-utils/dist/esm/internal/roomMessagesClient.d.ts create mode 100644 packages/web-server-utils/dist/esm/internal/roomMessagesClient.d.ts.map create mode 100644 packages/web-server-utils/dist/esm/internal/utils.d.ts create mode 100644 packages/web-server-utils/dist/esm/internal/utils.d.ts.map diff --git a/.gitignore b/.gitignore index 3e0d6abff..dd783887f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -# "dist/" is automatically commented out in the "main-build" branch by ./.github/workflows/build.yml -dist/ +# "# dist/" is automatically commented out in the "main-build" branch by ./.github/workflows/build.yml +# dist/ *.log .DS_Store diff --git a/apps/api-server/dist/VERSION.js b/apps/api-server/dist/VERSION.js new file mode 100644 index 000000000..a88e14429 --- /dev/null +++ b/apps/api-server/dist/VERSION.js @@ -0,0 +1,13 @@ +'use strict'; + +var utils = require('@flocon-trpg/utils'); + +const VERSION = new utils.SemVer({ + major: 0, + minor: 7, + patch: 16, + prerelease: { type: 'beta', version: 2 }, +}); + +exports.VERSION = VERSION; +//# sourceMappingURL=VERSION.js.map diff --git a/apps/api-server/dist/VERSION.js.map b/apps/api-server/dist/VERSION.js.map new file mode 100644 index 000000000..4efe4884e --- /dev/null +++ b/apps/api-server/dist/VERSION.js.map @@ -0,0 +1 @@ +{"version":3,"file":"VERSION.js","sources":["../src/VERSION.ts"],"sourcesContent":[null],"names":["SemVer"],"mappings":";;;;AAEa,MAAA,OAAO,GAAG,IAAIA,YAAM,CAAC;AAC9B,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;AAC3C,CAAA;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/mysql/Migration20220410135635.js b/apps/api-server/dist/__migrations__/mysql/Migration20220410135635.js new file mode 100644 index 000000000..b17939b71 --- /dev/null +++ b/apps/api-server/dist/__migrations__/mysql/Migration20220410135635.js @@ -0,0 +1,97 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220410135635 extends migrations.Migration { + async up() { + this.addSql('create table `user` (`user_uid` varchar(255) not null, `baas_type` varchar(255) not null, `is_entry` tinyint(1) not null, primary key (`user_uid`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `user` add index `user_baas_type_index`(`baas_type`);'); + this.addSql('alter table `user` add index `user_is_entry_index`(`is_entry`);'); + this.addSql('create table `file` (`filename` varchar(255) not null, `screenname` varchar(255) not null, `created_at` datetime null, `encoding` varchar(255) not null, `size` int not null, `thumb_filename` varchar(255) null, `mimetype` varchar(255) not null, `filesize` int not null, `list_permission` varchar(255) not null, `rename_permission` varchar(255) not null, `delete_permission` varchar(255) not null, `created_by_user_uid` varchar(255) not null, primary key (`filename`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `file` add index `file_screenname_index`(`screenname`);'); + this.addSql('alter table `file` add index `file_created_at_index`(`created_at`);'); + this.addSql('alter table `file` add index `file_thumb_filename_index`(`thumb_filename`);'); + this.addSql('alter table `file` add index `file_mimetype_index`(`mimetype`);'); + this.addSql('alter table `file` add index `file_filesize_index`(`filesize`);'); + this.addSql('alter table `file` add index `file_list_permission_index`(`list_permission`);'); + this.addSql('alter table `file` add index `file_rename_permission_index`(`rename_permission`);'); + this.addSql('alter table `file` add index `file_delete_permission_index`(`delete_permission`);'); + this.addSql('alter table `file` add index `file_created_by_user_uid_index`(`created_by_user_uid`);'); + this.addSql('create table `file_tag` (`id` varchar(255) not null, `name` varchar(255) not null, `user_user_uid` varchar(255) not null, primary key (`id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `file_tag` add index `file_tag_user_user_uid_index`(`user_user_uid`);'); + this.addSql('create table `file_file_tags` (`file_filename` varchar(255) not null, `file_tag_id` varchar(255) not null, primary key (`file_filename`, `file_tag_id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `file_file_tags` add index `file_file_tags_file_filename_index`(`file_filename`);'); + this.addSql('alter table `file_file_tags` add index `file_file_tags_file_tag_id_index`(`file_tag_id`);'); + this.addSql('create table `room` (`id` varchar(255) not null, `version` int not null default 1, `created_at` datetime null, `updated_at` datetime null, `player_password_hash` varchar(255) null, `spectator_password_hash` varchar(255) null, `created_by` varchar(255) not null, `name` varchar(255) not null, `value` json not null, `revision` int not null, primary key (`id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `room` add index `room_version_index`(`version`);'); + this.addSql('alter table `room` add index `room_created_at_index`(`created_at`);'); + this.addSql('alter table `room` add index `room_updated_at_index`(`updated_at`);'); + this.addSql('alter table `room` add index `room_created_by_index`(`created_by`);'); + this.addSql('create table `room_op` (`id` varchar(255) not null, `created_at` datetime null default null, `prev_revision` int not null, `value` json not null, `room_id` varchar(255) not null, primary key (`id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `room_op` add index `room_op_created_at_index`(`created_at`);'); + this.addSql('alter table `room_op` add index `room_op_prev_revision_index`(`prev_revision`);'); + this.addSql('alter table `room_op` add index `room_op_room_id_index`(`room_id`);'); + this.addSql('alter table `room_op` add unique `room_op_prev_revision_room_id_unique`(`prev_revision`, `room_id`);'); + this.addSql('create table `room_prv_msg` (`id` varchar(255) not null, `version` int not null default 1, `created_at` datetime not null, `updated_at` datetime null, `init_text_source` text null default null, `init_text` text null default null, `updated_text` text null, `text_updated_at` int null default null, `text_color` varchar(255) null, `command_result` text null, `command_is_success` tinyint(1) null default null, `alt_text_to_secret` text null, `is_secret` tinyint(1) not null, `chara_state_id` varchar(255) null, `chara_name` varchar(255) null, `chara_is_private` tinyint(1) null default null, `chara_image_path` text null default null, `chara_image_source_type` varchar(255) null default null, `chara_portrait_image_path` text null default null, `chara_portrait_image_source_type` varchar(255) null default null, `custom_name` varchar(255) null, `created_by_user_uid` varchar(255) null, `room_id` varchar(255) not null, primary key (`id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `room_prv_msg` add index `room_prv_msg_version_index`(`version`);'); + this.addSql('alter table `room_prv_msg` add index `room_prv_msg_created_at_index`(`created_at`);'); + this.addSql('alter table `room_prv_msg` add index `room_prv_msg_updated_at_index`(`updated_at`);'); + this.addSql('alter table `room_prv_msg` add index `room_prv_msg_is_secret_index`(`is_secret`);'); + this.addSql('alter table `room_prv_msg` add index `room_prv_msg_chara_state_id_index`(`chara_state_id`);'); + this.addSql('alter table `room_prv_msg` add index `room_prv_msg_created_by_user_uid_index`(`created_by_user_uid`);'); + this.addSql('alter table `room_prv_msg` add index `room_prv_msg_room_id_index`(`room_id`);'); + this.addSql('create table `user_visible_room_prv_msgs` (`user_user_uid` varchar(255) not null, `room_prv_msg_id` varchar(255) not null, primary key (`user_user_uid`, `room_prv_msg_id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `user_visible_room_prv_msgs` add index `user_visible_room_prv_msgs_user_user_uid_index`(`user_user_uid`);'); + this.addSql('alter table `user_visible_room_prv_msgs` add index `user_visible_room_prv_msgs_room_prv_msg_id_index`(`room_prv_msg_id`);'); + this.addSql('create table `dice_piece_log` (`id` varchar(255) not null, `created_at` datetime not null, `state_id` varchar(255) not null, `value` json null, `room_id` varchar(255) not null, primary key (`id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `dice_piece_log` add index `dice_piece_log_state_id_index`(`state_id`);'); + this.addSql('alter table `dice_piece_log` add index `dice_piece_log_room_id_index`(`room_id`);'); + this.addSql('create table `string_piece_log` (`id` varchar(255) not null, `created_at` datetime not null, `state_id` varchar(255) not null, `value` json null, `room_id` varchar(255) not null, primary key (`id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `string_piece_log` add index `string_piece_log_state_id_index`(`state_id`);'); + this.addSql('alter table `string_piece_log` add index `string_piece_log_room_id_index`(`room_id`);'); + this.addSql('create table `room_pub_ch` (`id` varchar(255) not null, `version` int not null default 1, `updated_at` datetime null, `key` varchar(255) not null, `name` varchar(255) null, `room_id` varchar(255) not null, primary key (`id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `room_pub_ch` add index `room_pub_ch_version_index`(`version`);'); + this.addSql('alter table `room_pub_ch` add index `room_pub_ch_updated_at_index`(`updated_at`);'); + this.addSql('alter table `room_pub_ch` add index `room_pub_ch_key_index`(`key`);'); + this.addSql('alter table `room_pub_ch` add index `room_pub_ch_room_id_index`(`room_id`);'); + this.addSql('alter table `room_pub_ch` add unique `room_pub_ch_room_id_key_unique`(`room_id`, `key`);'); + this.addSql('create table `room_pub_msg` (`id` varchar(255) not null, `version` int not null default 1, `created_at` datetime not null, `updated_at` datetime null, `init_text_source` text null default null, `init_text` text null default null, `updated_text` text null, `text_updated_at` int null default null, `text_color` varchar(255) null, `command_result` text null, `command_is_success` tinyint(1) null default null, `alt_text_to_secret` text null, `is_secret` tinyint(1) not null, `chara_state_id` varchar(255) null, `chara_name` varchar(255) null, `chara_is_private` tinyint(1) null default null, `chara_image_path` text null default null, `chara_image_source_type` text null default null, `chara_portrait_image_path` text null default null, `chara_portrait_image_source_type` varchar(255) null default null, `custom_name` varchar(255) null, `room_pub_ch_id` varchar(255) not null, `created_by_user_uid` varchar(255) null, primary key (`id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `room_pub_msg` add index `room_pub_msg_version_index`(`version`);'); + this.addSql('alter table `room_pub_msg` add index `room_pub_msg_created_at_index`(`created_at`);'); + this.addSql('alter table `room_pub_msg` add index `room_pub_msg_updated_at_index`(`updated_at`);'); + this.addSql('alter table `room_pub_msg` add index `room_pub_msg_command_is_success_index`(`command_is_success`);'); + this.addSql('alter table `room_pub_msg` add index `room_pub_msg_is_secret_index`(`is_secret`);'); + this.addSql('alter table `room_pub_msg` add index `room_pub_msg_chara_state_id_index`(`chara_state_id`);'); + this.addSql('alter table `room_pub_msg` add index `room_pub_msg_room_pub_ch_id_index`(`room_pub_ch_id`);'); + this.addSql('alter table `room_pub_msg` add index `room_pub_msg_created_by_user_uid_index`(`created_by_user_uid`);'); + this.addSql('create table `room_se` (`id` varchar(255) not null, `created_at` datetime not null, `file_path` varchar(255) not null, `file_source_type` varchar(255) not null, `volume` int not null, `created_by_user_uid` varchar(255) null, `room_id` varchar(255) not null, primary key (`id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `room_se` add index `room_se_created_by_user_uid_index`(`created_by_user_uid`);'); + this.addSql('alter table `room_se` add index `room_se_room_id_index`(`room_id`);'); + this.addSql('create table `participant` (`id` varchar(255) not null, `role` varchar(255) null, `name` varchar(255) null, `room_id` varchar(255) not null, `user_user_uid` varchar(255) not null, primary key (`id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `participant` add index `participant_role_index`(`role`);'); + this.addSql('alter table `participant` add index `participant_room_id_index`(`room_id`);'); + this.addSql('alter table `participant` add index `participant_user_user_uid_index`(`user_user_uid`);'); + this.addSql('alter table `participant` add unique `participant_room_id_user_user_uid_unique`(`room_id`, `user_user_uid`);'); + this.addSql('alter table `file` add constraint `file_created_by_user_uid_foreign` foreign key (`created_by_user_uid`) references `user` (`user_uid`) on update cascade;'); + this.addSql('alter table `file_tag` add constraint `file_tag_user_user_uid_foreign` foreign key (`user_user_uid`) references `user` (`user_uid`) on update cascade;'); + this.addSql('alter table `file_file_tags` add constraint `file_file_tags_file_filename_foreign` foreign key (`file_filename`) references `file` (`filename`) on update cascade on delete cascade;'); + this.addSql('alter table `file_file_tags` add constraint `file_file_tags_file_tag_id_foreign` foreign key (`file_tag_id`) references `file_tag` (`id`) on update cascade on delete cascade;'); + this.addSql('alter table `room_op` add constraint `room_op_room_id_foreign` foreign key (`room_id`) references `room` (`id`) on update cascade;'); + this.addSql('alter table `room_prv_msg` add constraint `room_prv_msg_created_by_user_uid_foreign` foreign key (`created_by_user_uid`) references `user` (`user_uid`) on update cascade on delete set null;'); + this.addSql('alter table `room_prv_msg` add constraint `room_prv_msg_room_id_foreign` foreign key (`room_id`) references `room` (`id`) on update cascade;'); + this.addSql('alter table `user_visible_room_prv_msgs` add constraint `user_visible_room_prv_msgs_user_user_uid_foreign` foreign key (`user_user_uid`) references `user` (`user_uid`) on update cascade on delete cascade;'); + this.addSql('alter table `user_visible_room_prv_msgs` add constraint `user_visible_room_prv_msgs_room_prv_msg_id_foreign` foreign key (`room_prv_msg_id`) references `room_prv_msg` (`id`) on update cascade on delete cascade;'); + this.addSql('alter table `dice_piece_log` add constraint `dice_piece_log_room_id_foreign` foreign key (`room_id`) references `room` (`id`) on update cascade;'); + this.addSql('alter table `string_piece_log` add constraint `string_piece_log_room_id_foreign` foreign key (`room_id`) references `room` (`id`) on update cascade;'); + this.addSql('alter table `room_pub_ch` add constraint `room_pub_ch_room_id_foreign` foreign key (`room_id`) references `room` (`id`) on update cascade;'); + this.addSql('alter table `room_pub_msg` add constraint `room_pub_msg_room_pub_ch_id_foreign` foreign key (`room_pub_ch_id`) references `room_pub_ch` (`id`) on update cascade;'); + this.addSql('alter table `room_pub_msg` add constraint `room_pub_msg_created_by_user_uid_foreign` foreign key (`created_by_user_uid`) references `user` (`user_uid`) on update cascade on delete set null;'); + this.addSql('alter table `room_se` add constraint `room_se_created_by_user_uid_foreign` foreign key (`created_by_user_uid`) references `user` (`user_uid`) on update cascade on delete set null;'); + this.addSql('alter table `room_se` add constraint `room_se_room_id_foreign` foreign key (`room_id`) references `room` (`id`) on update cascade;'); + this.addSql('alter table `participant` add constraint `participant_room_id_foreign` foreign key (`room_id`) references `room` (`id`) on update cascade;'); + this.addSql('alter table `participant` add constraint `participant_user_user_uid_foreign` foreign key (`user_user_uid`) references `user` (`user_uid`) on update cascade;'); + } +} + +exports.Migration20220410135635 = Migration20220410135635; +//# sourceMappingURL=Migration20220410135635.js.map diff --git a/apps/api-server/dist/__migrations__/mysql/Migration20220410135635.js.map b/apps/api-server/dist/__migrations__/mysql/Migration20220410135635.js.map new file mode 100644 index 000000000..43ed322b9 --- /dev/null +++ b/apps/api-server/dist/__migrations__/mysql/Migration20220410135635.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220410135635.js","sources":["../../../src/__migrations__/mysql/Migration20220410135635.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/mysql/Migration20220427150340.js b/apps/api-server/dist/__migrations__/mysql/Migration20220427150340.js new file mode 100644 index 000000000..64bb5e862 --- /dev/null +++ b/apps/api-server/dist/__migrations__/mysql/Migration20220427150340.js @@ -0,0 +1,17 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220427150340 extends migrations.Migration { + async up() { + this.addSql('alter table `room_prv_msg` add `text_updated_at2` date null default null;'); + this.addSql('alter table `room_pub_msg` add `text_updated_at2` date null default null;'); + } + async down() { + this.addSql('alter table `room_prv_msg` drop `text_updated_at2`;'); + this.addSql('alter table `room_pub_msg` drop `text_updated_at2`;'); + } +} + +exports.Migration20220427150340 = Migration20220427150340; +//# sourceMappingURL=Migration20220427150340.js.map diff --git a/apps/api-server/dist/__migrations__/mysql/Migration20220427150340.js.map b/apps/api-server/dist/__migrations__/mysql/Migration20220427150340.js.map new file mode 100644 index 000000000..ce70755e8 --- /dev/null +++ b/apps/api-server/dist/__migrations__/mysql/Migration20220427150340.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220427150340.js","sources":["../../../src/__migrations__/mysql/Migration20220427150340.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,2EAA2E,CAAC;AAExF,QAAA,IAAI,CAAC,MAAM,CAAC,2EAA2E,CAAC;;AAG5F,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,qDAAqD,CAAC;AAElE,QAAA,IAAI,CAAC,MAAM,CAAC,qDAAqD,CAAC;;AAEzE;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/mysql/Migration20220502053137.js b/apps/api-server/dist/__migrations__/mysql/Migration20220502053137.js new file mode 100644 index 000000000..187433940 --- /dev/null +++ b/apps/api-server/dist/__migrations__/mysql/Migration20220502053137.js @@ -0,0 +1,17 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220502053137 extends migrations.Migration { + async up() { + this.addSql('alter table `room` add `complete_updated_at` datetime null;'); + this.addSql('alter table `room` add index `room_complete_updated_at_index`(`complete_updated_at`);'); + } + async down() { + this.addSql('alter table `room` drop index `room_complete_updated_at_index`;'); + this.addSql('alter table `room` drop `complete_updated_at`;'); + } +} + +exports.Migration20220502053137 = Migration20220502053137; +//# sourceMappingURL=Migration20220502053137.js.map diff --git a/apps/api-server/dist/__migrations__/mysql/Migration20220502053137.js.map b/apps/api-server/dist/__migrations__/mysql/Migration20220502053137.js.map new file mode 100644 index 000000000..8ac4d13a4 --- /dev/null +++ b/apps/api-server/dist/__migrations__/mysql/Migration20220502053137.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220502053137.js","sources":["../../../src/__migrations__/mysql/Migration20220502053137.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,6DAA6D,CAAC;AAC1E,QAAA,IAAI,CAAC,MAAM,CACP,uFAAuF,CAC1F;;AAGL,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,iEAAiE,CAAC;AAC9E,QAAA,IAAI,CAAC,MAAM,CAAC,gDAAgD,CAAC;;AAEpE;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/mysql/Migration20220504100008.js b/apps/api-server/dist/__migrations__/mysql/Migration20220504100008.js new file mode 100644 index 000000000..ff64b5974 --- /dev/null +++ b/apps/api-server/dist/__migrations__/mysql/Migration20220504100008.js @@ -0,0 +1,19 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220504100008 extends migrations.Migration { + async up() { + this.addSql('create table `user_bookmarked_rooms` (`user_user_uid` varchar(255) not null, `room_id` varchar(255) not null, primary key (`user_user_uid`, `room_id`)) default character set utf8mb4 engine = InnoDB;'); + this.addSql('alter table `user_bookmarked_rooms` add index `user_bookmarked_rooms_user_user_uid_index`(`user_user_uid`);'); + this.addSql('alter table `user_bookmarked_rooms` add index `user_bookmarked_rooms_room_id_index`(`room_id`);'); + this.addSql('alter table `user_bookmarked_rooms` add constraint `user_bookmarked_rooms_user_user_uid_foreign` foreign key (`user_user_uid`) references `user` (`user_uid`) on update cascade on delete cascade;'); + this.addSql('alter table `user_bookmarked_rooms` add constraint `user_bookmarked_rooms_room_id_foreign` foreign key (`room_id`) references `room` (`id`) on update cascade on delete cascade;'); + } + async down() { + this.addSql('drop table if exists `user_bookmarked_rooms`;'); + } +} + +exports.Migration20220504100008 = Migration20220504100008; +//# sourceMappingURL=Migration20220504100008.js.map diff --git a/apps/api-server/dist/__migrations__/mysql/Migration20220504100008.js.map b/apps/api-server/dist/__migrations__/mysql/Migration20220504100008.js.map new file mode 100644 index 000000000..7b3870820 --- /dev/null +++ b/apps/api-server/dist/__migrations__/mysql/Migration20220504100008.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220504100008.js","sources":["../../../src/__migrations__/mysql/Migration20220504100008.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CACP,wMAAwM,CAC3M;AACD,QAAA,IAAI,CAAC,MAAM,CACP,6GAA6G,CAChH;AACD,QAAA,IAAI,CAAC,MAAM,CACP,iGAAiG,CACpG;AAED,QAAA,IAAI,CAAC,MAAM,CACP,oMAAoM,CACvM;AACD,QAAA,IAAI,CAAC,MAAM,CACP,kLAAkL,CACrL;;AAGL,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,+CAA+C,CAAC;;AAEnE;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/mysql/Migration20220630151845.js b/apps/api-server/dist/__migrations__/mysql/Migration20220630151845.js new file mode 100644 index 000000000..d6cc2f51d --- /dev/null +++ b/apps/api-server/dist/__migrations__/mysql/Migration20220630151845.js @@ -0,0 +1,17 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220630151845 extends migrations.Migration { + async up() { + this.addSql('alter table `room_prv_msg` add `text_updated_at3` datetime null default null;'); + this.addSql('alter table `room_pub_msg` add `text_updated_at3` datetime null default null;'); + } + async down() { + this.addSql('alter table `room_prv_msg` drop `text_updated_at3`;'); + this.addSql('alter table `room_pub_msg` drop `text_updated_at3`;'); + } +} + +exports.Migration20220630151845 = Migration20220630151845; +//# sourceMappingURL=Migration20220630151845.js.map diff --git a/apps/api-server/dist/__migrations__/mysql/Migration20220630151845.js.map b/apps/api-server/dist/__migrations__/mysql/Migration20220630151845.js.map new file mode 100644 index 000000000..b160ef36c --- /dev/null +++ b/apps/api-server/dist/__migrations__/mysql/Migration20220630151845.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220630151845.js","sources":["../../../src/__migrations__/mysql/Migration20220630151845.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CACP,+EAA+E,CAClF;AAED,QAAA,IAAI,CAAC,MAAM,CACP,+EAA+E,CAClF;;AAGL,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,qDAAqD,CAAC;AAElE,QAAA,IAAI,CAAC,MAAM,CAAC,qDAAqD,CAAC;;AAEzE;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/mysql/Migration20220727114555.js b/apps/api-server/dist/__migrations__/mysql/Migration20220727114555.js new file mode 100644 index 000000000..162e298dd --- /dev/null +++ b/apps/api-server/dist/__migrations__/mysql/Migration20220727114555.js @@ -0,0 +1,17 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220727114555 extends migrations.Migration { + async up() { + this.addSql('alter table `file` drop index `file_screenname_index`;'); + this.addSql('alter table `file` modify `screenname` text null;'); + } + async down() { + this.addSql('alter table `file` modify `screenname` varchar(255) not null;'); + this.addSql('alter table `file` add index `file_screenname_index`(`screenname`);'); + } +} + +exports.Migration20220727114555 = Migration20220727114555; +//# sourceMappingURL=Migration20220727114555.js.map diff --git a/apps/api-server/dist/__migrations__/mysql/Migration20220727114555.js.map b/apps/api-server/dist/__migrations__/mysql/Migration20220727114555.js.map new file mode 100644 index 000000000..ced1f9eaa --- /dev/null +++ b/apps/api-server/dist/__migrations__/mysql/Migration20220727114555.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220727114555.js","sources":["../../../src/__migrations__/mysql/Migration20220727114555.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,wDAAwD,CAAC;AACrE,QAAA,IAAI,CAAC,MAAM,CAAC,mDAAmD,CAAC;;AAGpE,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,+DAA+D,CAAC;AAC5E,QAAA,IAAI,CAAC,MAAM,CAAC,qEAAqE,CAAC;;AAEzF;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20211201185931.js b/apps/api-server/dist/__migrations__/postgresql/Migration20211201185931.js new file mode 100644 index 000000000..853f9ba76 --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20211201185931.js @@ -0,0 +1,92 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20211201185931 extends migrations.Migration { + async up() { + this.addSql('create table "user" ("user_uid" varchar(255) not null, "baas_type" varchar(255) not null, "is_entry" bool not null);'); + this.addSql('alter table "user" add constraint "user_pkey" primary key ("user_uid");'); + this.addSql('create index "user_baas_type_index" on "user" ("baas_type");'); + this.addSql('create index "user_is_entry_index" on "user" ("is_entry");'); + this.addSql('create table "file" ("filename" varchar(255) not null, "screenname" varchar(255) not null, "created_at" timestamptz(0) null, "encoding" varchar(255) not null, "size" int4 not null, "thumb_filename" varchar(255) null, "mimetype" varchar(255) not null, "filesize" int4 not null, "list_permission" varchar(255) not null, "rename_permission" varchar(255) not null, "delete_permission" varchar(255) not null, "created_by_user_uid" varchar(255) not null);'); + this.addSql('alter table "file" add constraint "file_pkey" primary key ("filename");'); + this.addSql('create index "file_screenname_index" on "file" ("screenname");'); + this.addSql('create index "file_created_at_index" on "file" ("created_at");'); + this.addSql('create index "file_thumb_filename_index" on "file" ("thumb_filename");'); + this.addSql('create index "file_mimetype_index" on "file" ("mimetype");'); + this.addSql('create index "file_filesize_index" on "file" ("filesize");'); + this.addSql('create index "file_list_permission_index" on "file" ("list_permission");'); + this.addSql('create index "file_rename_permission_index" on "file" ("rename_permission");'); + this.addSql('create index "file_delete_permission_index" on "file" ("delete_permission");'); + this.addSql('create table "file_tag" ("id" varchar(255) not null, "name" varchar(255) not null, "user_user_uid" varchar(255) not null);'); + this.addSql('alter table "file_tag" add constraint "file_tag_pkey" primary key ("id");'); + this.addSql('create table "file_file_tags" ("file_filename" varchar(255) not null, "file_tag_id" varchar(255) not null);'); + this.addSql('alter table "file_file_tags" add constraint "file_file_tags_pkey" primary key ("file_filename", "file_tag_id");'); + this.addSql('create table "room" ("id" varchar(255) not null, "version" int4 not null default 1, "created_at" timestamptz(0) null, "updated_at" timestamptz(0) null, "player_password_hash" varchar(255) null, "spectator_password_hash" varchar(255) null, "created_by" varchar(255) not null, "name" varchar(255) not null, "value" jsonb not null, "revision" int4 not null);'); + this.addSql('alter table "room" add constraint "room_pkey" primary key ("id");'); + this.addSql('create index "room_version_index" on "room" ("version");'); + this.addSql('create index "room_created_at_index" on "room" ("created_at");'); + this.addSql('create index "room_updated_at_index" on "room" ("updated_at");'); + this.addSql('create index "room_created_by_index" on "room" ("created_by");'); + this.addSql('create table "room_op" ("id" varchar(255) not null, "prev_revision" int4 not null, "value" jsonb not null, "room_id" varchar(255) not null);'); + this.addSql('alter table "room_op" add constraint "room_op_pkey" primary key ("id");'); + this.addSql('create index "room_op_prev_revision_index" on "room_op" ("prev_revision");'); + this.addSql('create table "room_prv_msg" ("id" varchar(255) not null, "version" int4 not null default 1, "created_at" timestamptz(0) not null, "updated_at" timestamptz(0) null, "init_text_source" varchar(65535) null default \'\', "init_text" varchar(65535) not null default \'\', "updated_text" varchar(65535) null, "text_updated_at" int4 null default null, "text_color" varchar(255) null, "command_result" varchar(65535) null, "command_is_success" bool null default null, "alt_text_to_secret" varchar(65535) null, "is_secret" bool not null, "chara_state_id" varchar(255) null, "chara_name" varchar(255) null, "chara_is_private" bool null default null, "chara_image_path" varchar(65535) null default null, "chara_image_source_type" jsonb null default null, "chara_portrait_image_path" varchar(65535) null default null, "chara_portrait_image_source_type" varchar(255) null default null, "custom_name" varchar(255) null, "created_by_user_uid" varchar(255) null, "room_id" varchar(255) not null);'); + this.addSql('alter table "room_prv_msg" add constraint "room_prv_msg_pkey" primary key ("id");'); + this.addSql('create index "room_prv_msg_version_index" on "room_prv_msg" ("version");'); + this.addSql('create index "room_prv_msg_created_at_index" on "room_prv_msg" ("created_at");'); + this.addSql('create index "room_prv_msg_updated_at_index" on "room_prv_msg" ("updated_at");'); + this.addSql('create index "room_prv_msg_is_secret_index" on "room_prv_msg" ("is_secret");'); + this.addSql('create index "room_prv_msg_chara_state_id_index" on "room_prv_msg" ("chara_state_id");'); + this.addSql('create table "user_visible_room_prv_msgs" ("user_user_uid" varchar(255) not null, "room_prv_msg_id" varchar(255) not null);'); + this.addSql('alter table "user_visible_room_prv_msgs" add constraint "user_visible_room_prv_msgs_pkey" primary key ("user_user_uid", "room_prv_msg_id");'); + this.addSql('create table "dice_piece_log" ("id" varchar(255) not null, "created_at" timestamptz(0) not null, "state_id" varchar(255) not null, "value" jsonb null, "room_id" varchar(255) not null);'); + this.addSql('alter table "dice_piece_log" add constraint "dice_piece_log_pkey" primary key ("id");'); + this.addSql('create index "dice_piece_log_state_id_index" on "dice_piece_log" ("state_id");'); + this.addSql('create table "string_piece_log" ("id" varchar(255) not null, "created_at" timestamptz(0) not null, "state_id" varchar(255) not null, "value" jsonb null, "room_id" varchar(255) not null);'); + this.addSql('alter table "string_piece_log" add constraint "string_piece_log_pkey" primary key ("id");'); + this.addSql('create index "string_piece_log_state_id_index" on "string_piece_log" ("state_id");'); + this.addSql('create table "room_pub_ch" ("id" varchar(255) not null, "version" int4 not null default 1, "updated_at" timestamptz(0) null, "key" varchar(255) not null, "name" varchar(255) null, "room_id" varchar(255) not null);'); + this.addSql('alter table "room_pub_ch" add constraint "room_pub_ch_pkey" primary key ("id");'); + this.addSql('create index "room_pub_ch_version_index" on "room_pub_ch" ("version");'); + this.addSql('create index "room_pub_ch_updated_at_index" on "room_pub_ch" ("updated_at");'); + this.addSql('create index "room_pub_ch_key_index" on "room_pub_ch" ("key");'); + this.addSql('create table "room_pub_msg" ("id" varchar(255) not null, "version" int4 not null default 1, "created_at" timestamptz(0) not null, "updated_at" timestamptz(0) null, "init_text_source" varchar(65535) null default \'\', "init_text" varchar(65535) not null default \'\', "updated_text" varchar(65535) null, "text_updated_at" int4 null default null, "text_color" varchar(255) null, "command_result" varchar(65535) null, "command_is_success" bool null default null, "alt_text_to_secret" varchar(65535) null, "is_secret" bool not null, "chara_state_id" varchar(255) null, "chara_name" varchar(255) null, "chara_is_private" bool null default null, "chara_image_path" varchar(65535) null default null, "chara_image_source_type" varchar(255) null default null, "chara_portrait_image_path" varchar(65535) null default null, "chara_portrait_image_source_type" varchar(255) null default null, "custom_name" varchar(255) null, "room_pub_ch_id" varchar(255) not null, "created_by_user_uid" varchar(255) null);'); + this.addSql('alter table "room_pub_msg" add constraint "room_pub_msg_pkey" primary key ("id");'); + this.addSql('create index "room_pub_msg_version_index" on "room_pub_msg" ("version");'); + this.addSql('create index "room_pub_msg_created_at_index" on "room_pub_msg" ("created_at");'); + this.addSql('create index "room_pub_msg_updated_at_index" on "room_pub_msg" ("updated_at");'); + this.addSql('create index "room_pub_msg_command_is_success_index" on "room_pub_msg" ("command_is_success");'); + this.addSql('create index "room_pub_msg_is_secret_index" on "room_pub_msg" ("is_secret");'); + this.addSql('create index "room_pub_msg_chara_state_id_index" on "room_pub_msg" ("chara_state_id");'); + this.addSql('create table "room_se" ("id" varchar(255) not null, "created_at" timestamptz(0) not null, "file_path" varchar(255) not null, "file_source_type" varchar(255) not null, "volume" int4 not null, "created_by_user_uid" varchar(255) null, "room_id" varchar(255) not null);'); + this.addSql('alter table "room_se" add constraint "room_se_pkey" primary key ("id");'); + this.addSql('create table "participant" ("id" varchar(255) not null, "role" varchar(255) null, "name" varchar(255) null, "room_id" varchar(255) not null, "user_user_uid" varchar(255) not null);'); + this.addSql('alter table "participant" add constraint "participant_pkey" primary key ("id");'); + this.addSql('create index "participant_role_index" on "participant" ("role");'); + this.addSql('alter table "file" add constraint "file_created_by_user_uid_foreign" foreign key ("created_by_user_uid") references "user" ("user_uid") on update cascade;'); + this.addSql('alter table "file_tag" add constraint "file_tag_user_user_uid_foreign" foreign key ("user_user_uid") references "user" ("user_uid") on update cascade;'); + this.addSql('alter table "file_file_tags" add constraint "file_file_tags_file_filename_foreign" foreign key ("file_filename") references "file" ("filename") on update cascade on delete cascade;'); + this.addSql('alter table "file_file_tags" add constraint "file_file_tags_file_tag_id_foreign" foreign key ("file_tag_id") references "file_tag" ("id") on update cascade on delete cascade;'); + this.addSql('alter table "room_op" add constraint "room_op_room_id_foreign" foreign key ("room_id") references "room" ("id") on update cascade;'); + this.addSql('alter table "room_prv_msg" add constraint "room_prv_msg_created_by_user_uid_foreign" foreign key ("created_by_user_uid") references "user" ("user_uid") on update cascade on delete set null;'); + this.addSql('alter table "room_prv_msg" add constraint "room_prv_msg_room_id_foreign" foreign key ("room_id") references "room" ("id") on update cascade;'); + this.addSql('alter table "user_visible_room_prv_msgs" add constraint "user_visible_room_prv_msgs_user_user_uid_foreign" foreign key ("user_user_uid") references "user" ("user_uid") on update cascade on delete cascade;'); + this.addSql('alter table "user_visible_room_prv_msgs" add constraint "user_visible_room_prv_msgs_room_prv_msg_id_foreign" foreign key ("room_prv_msg_id") references "room_prv_msg" ("id") on update cascade on delete cascade;'); + this.addSql('alter table "dice_piece_log" add constraint "dice_piece_log_room_id_foreign" foreign key ("room_id") references "room" ("id") on update cascade;'); + this.addSql('alter table "string_piece_log" add constraint "string_piece_log_room_id_foreign" foreign key ("room_id") references "room" ("id") on update cascade;'); + this.addSql('alter table "room_pub_ch" add constraint "room_pub_ch_room_id_foreign" foreign key ("room_id") references "room" ("id") on update cascade;'); + this.addSql('alter table "room_pub_msg" add constraint "room_pub_msg_room_pub_ch_id_foreign" foreign key ("room_pub_ch_id") references "room_pub_ch" ("id") on update cascade;'); + this.addSql('alter table "room_pub_msg" add constraint "room_pub_msg_created_by_user_uid_foreign" foreign key ("created_by_user_uid") references "user" ("user_uid") on update cascade on delete set null;'); + this.addSql('alter table "room_se" add constraint "room_se_created_by_user_uid_foreign" foreign key ("created_by_user_uid") references "user" ("user_uid") on update cascade on delete set null;'); + this.addSql('alter table "room_se" add constraint "room_se_room_id_foreign" foreign key ("room_id") references "room" ("id") on update cascade;'); + this.addSql('alter table "participant" add constraint "participant_room_id_foreign" foreign key ("room_id") references "room" ("id") on update cascade;'); + this.addSql('alter table "participant" add constraint "participant_user_user_uid_foreign" foreign key ("user_user_uid") references "user" ("user_uid") on update cascade;'); + this.addSql('alter table "room_op" add constraint "room_op_prev_revision_room_id_unique" unique ("prev_revision", "room_id");'); + this.addSql('alter table "room_pub_ch" add constraint "room_pub_ch_room_id_key_unique" unique ("room_id", "key");'); + this.addSql('alter table "participant" add constraint "participant_room_id_user_user_uid_unique" unique ("room_id", "user_user_uid");'); + } +} + +exports.Migration20211201185931 = Migration20211201185931; +//# sourceMappingURL=Migration20211201185931.js.map diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20211201185931.js.map b/apps/api-server/dist/__migrations__/postgresql/Migration20211201185931.js.map new file mode 100644 index 000000000..e614c8d86 --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20211201185931.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20211201185931.js","sources":["../../../src/__migrations__/postgresql/Migration20211201185931.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20211207145135.js b/apps/api-server/dist/__migrations__/postgresql/Migration20211207145135.js new file mode 100644 index 000000000..6bf1c562b --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20211207145135.js @@ -0,0 +1,13 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20211207145135 extends migrations.Migration { + async up() { + this.addSql('alter table "room_op" add column "created_at" timestamptz(0) null default null;'); + this.addSql('create index "room_op_created_at_index" on "room_op" ("created_at");'); + } +} + +exports.Migration20211207145135 = Migration20211207145135; +//# sourceMappingURL=Migration20211207145135.js.map diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20211207145135.js.map b/apps/api-server/dist/__migrations__/postgresql/Migration20211207145135.js.map new file mode 100644 index 000000000..cb6392374 --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20211207145135.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20211207145135.js","sources":["../../../src/__migrations__/postgresql/Migration20211207145135.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CACP,iFAAiF,CACpF;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,sEAAsE,CAAC;;AAE1F;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20220410113820.js b/apps/api-server/dist/__migrations__/postgresql/Migration20220410113820.js new file mode 100644 index 000000000..ab975ed71 --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20220410113820.js @@ -0,0 +1,93 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220410113820 extends migrations.Migration { + async up() { + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_init_text_source_check";'); + this.addSql('alter table "room_prv_msg" alter column "init_text_source" type text using ("init_text_source"::text);'); + this.addSql('alter table "room_prv_msg" alter column "init_text_source" set default null;'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_init_text_check";'); + this.addSql('alter table "room_prv_msg" alter column "init_text" type text using ("init_text"::text);'); + this.addSql('alter table "room_prv_msg" alter column "init_text" set default null;'); + this.addSql('alter table "room_prv_msg" alter column "init_text" drop not null;'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_updated_text_check";'); + this.addSql('alter table "room_prv_msg" alter column "updated_text" type text using ("updated_text"::text);'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_command_result_check";'); + this.addSql('alter table "room_prv_msg" alter column "command_result" type text using ("command_result"::text);'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_alt_text_to_secret_check";'); + this.addSql('alter table "room_prv_msg" alter column "alt_text_to_secret" type text using ("alt_text_to_secret"::text);'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_chara_image_path_check";'); + this.addSql('alter table "room_prv_msg" alter column "chara_image_path" type text using ("chara_image_path"::text);'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_chara_image_source_type_check";'); + this.addSql('alter table "room_prv_msg" alter column "chara_image_source_type" type varchar(255) using ("chara_image_source_type"::varchar(255));'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_chara_portrait_image_path_check";'); + this.addSql('alter table "room_prv_msg" alter column "chara_portrait_image_path" type text using ("chara_portrait_image_path"::text);'); + this.addSql('alter table "room_pub_ch" drop constraint "room_pub_ch_room_id_key_unique";'); + this.addSql('alter table "room_pub_ch" add constraint "room_pub_ch_room_id_key_unique" unique ("room_id", "key");'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_init_text_source_check";'); + this.addSql('alter table "room_pub_msg" alter column "init_text_source" type text using ("init_text_source"::text);'); + this.addSql('alter table "room_pub_msg" alter column "init_text_source" set default null;'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_init_text_check";'); + this.addSql('alter table "room_pub_msg" alter column "init_text" type text using ("init_text"::text);'); + this.addSql('alter table "room_pub_msg" alter column "init_text" set default null;'); + this.addSql('alter table "room_pub_msg" alter column "init_text" drop not null;'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_updated_text_check";'); + this.addSql('alter table "room_pub_msg" alter column "updated_text" type text using ("updated_text"::text);'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_command_result_check";'); + this.addSql('alter table "room_pub_msg" alter column "command_result" type text using ("command_result"::text);'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_alt_text_to_secret_check";'); + this.addSql('alter table "room_pub_msg" alter column "alt_text_to_secret" type text using ("alt_text_to_secret"::text);'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_chara_image_path_check";'); + this.addSql('alter table "room_pub_msg" alter column "chara_image_path" type text using ("chara_image_path"::text);'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_chara_image_source_type_check";'); + this.addSql('alter table "room_pub_msg" alter column "chara_image_source_type" type text using ("chara_image_source_type"::text);'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_chara_portrait_image_path_check";'); + this.addSql('alter table "room_pub_msg" alter column "chara_portrait_image_path" type text using ("chara_portrait_image_path"::text);'); + } + async down() { + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_init_text_source_check";'); + this.addSql('alter table "room_prv_msg" alter column "init_text_source" type varchar using ("init_text_source"::varchar);'); + this.addSql('alter table "room_prv_msg" alter column "init_text_source" set default \'\';'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_init_text_check";'); + this.addSql('alter table "room_prv_msg" alter column "init_text" type varchar using ("init_text"::varchar);'); + this.addSql('alter table "room_prv_msg" alter column "init_text" set default \'\';'); + this.addSql('alter table "room_prv_msg" alter column "init_text" set not null;'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_updated_text_check";'); + this.addSql('alter table "room_prv_msg" alter column "updated_text" type varchar using ("updated_text"::varchar);'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_command_result_check";'); + this.addSql('alter table "room_prv_msg" alter column "command_result" type varchar using ("command_result"::varchar);'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_alt_text_to_secret_check";'); + this.addSql('alter table "room_prv_msg" alter column "alt_text_to_secret" type varchar using ("alt_text_to_secret"::varchar);'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_chara_image_path_check";'); + this.addSql('alter table "room_prv_msg" alter column "chara_image_path" type varchar using ("chara_image_path"::varchar);'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_chara_image_source_type_check";'); + this.addSql('alter table "room_prv_msg" alter column "chara_image_source_type" type jsonb using ("chara_image_source_type"::jsonb);'); + this.addSql('alter table "room_prv_msg" drop constraint if exists "room_prv_msg_chara_portrait_image_path_check";'); + this.addSql('alter table "room_prv_msg" alter column "chara_portrait_image_path" type varchar using ("chara_portrait_image_path"::varchar);'); + this.addSql('alter table "room_pub_ch" drop constraint "room_pub_ch_room_id_key_unique";'); + this.addSql('alter table "room_pub_ch" add constraint "room_pub_ch_room_id_key_unique" unique ("key", "room_id");'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_init_text_source_check";'); + this.addSql('alter table "room_pub_msg" alter column "init_text_source" type varchar using ("init_text_source"::varchar);'); + this.addSql('alter table "room_pub_msg" alter column "init_text_source" set default \'\';'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_init_text_check";'); + this.addSql('alter table "room_pub_msg" alter column "init_text" type varchar using ("init_text"::varchar);'); + this.addSql('alter table "room_pub_msg" alter column "init_text" set default \'\';'); + this.addSql('alter table "room_pub_msg" alter column "init_text" set not null;'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_updated_text_check";'); + this.addSql('alter table "room_pub_msg" alter column "updated_text" type varchar using ("updated_text"::varchar);'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_command_result_check";'); + this.addSql('alter table "room_pub_msg" alter column "command_result" type varchar using ("command_result"::varchar);'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_alt_text_to_secret_check";'); + this.addSql('alter table "room_pub_msg" alter column "alt_text_to_secret" type varchar using ("alt_text_to_secret"::varchar);'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_chara_image_path_check";'); + this.addSql('alter table "room_pub_msg" alter column "chara_image_path" type varchar using ("chara_image_path"::varchar);'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_chara_image_source_type_check";'); + this.addSql('alter table "room_pub_msg" alter column "chara_image_source_type" type varchar using ("chara_image_source_type"::varchar);'); + this.addSql('alter table "room_pub_msg" drop constraint if exists "room_pub_msg_chara_portrait_image_path_check";'); + this.addSql('alter table "room_pub_msg" alter column "chara_portrait_image_path" type varchar using ("chara_portrait_image_path"::varchar);'); + } +} + +exports.Migration20220410113820 = Migration20220410113820; +//# sourceMappingURL=Migration20220410113820.js.map diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20220410113820.js.map b/apps/api-server/dist/__migrations__/postgresql/Migration20220410113820.js.map new file mode 100644 index 000000000..9997ef2df --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20220410113820.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220410113820.js","sources":["../../../src/__migrations__/postgresql/Migration20220410113820.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20220427150306.js b/apps/api-server/dist/__migrations__/postgresql/Migration20220427150306.js new file mode 100644 index 000000000..1b3976e98 --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20220427150306.js @@ -0,0 +1,17 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220427150306 extends migrations.Migration { + async up() { + this.addSql('alter table "room_prv_msg" add column "text_updated_at2" date null default null;'); + this.addSql('alter table "room_pub_msg" add column "text_updated_at2" date null default null;'); + } + async down() { + this.addSql('alter table "room_prv_msg" drop column "text_updated_at2";'); + this.addSql('alter table "room_pub_msg" drop column "text_updated_at2";'); + } +} + +exports.Migration20220427150306 = Migration20220427150306; +//# sourceMappingURL=Migration20220427150306.js.map diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20220427150306.js.map b/apps/api-server/dist/__migrations__/postgresql/Migration20220427150306.js.map new file mode 100644 index 000000000..0663e4c41 --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20220427150306.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220427150306.js","sources":["../../../src/__migrations__/postgresql/Migration20220427150306.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CACP,kFAAkF,CACrF;AAED,QAAA,IAAI,CAAC,MAAM,CACP,kFAAkF,CACrF;;AAGL,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,4DAA4D,CAAC;AAEzE,QAAA,IAAI,CAAC,MAAM,CAAC,4DAA4D,CAAC;;AAEhF;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20220502053114.js b/apps/api-server/dist/__migrations__/postgresql/Migration20220502053114.js new file mode 100644 index 000000000..9a6aa3489 --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20220502053114.js @@ -0,0 +1,17 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220502053114 extends migrations.Migration { + async up() { + this.addSql('alter table "room" add column "complete_updated_at" timestamptz(0) null;'); + this.addSql('create index "room_complete_updated_at_index" on "room" ("complete_updated_at");'); + } + async down() { + this.addSql('drop index "room_complete_updated_at_index";'); + this.addSql('alter table "room" drop column "complete_updated_at";'); + } +} + +exports.Migration20220502053114 = Migration20220502053114; +//# sourceMappingURL=Migration20220502053114.js.map diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20220502053114.js.map b/apps/api-server/dist/__migrations__/postgresql/Migration20220502053114.js.map new file mode 100644 index 000000000..2a921f035 --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20220502053114.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220502053114.js","sources":["../../../src/__migrations__/postgresql/Migration20220502053114.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,0EAA0E,CAAC;AACvF,QAAA,IAAI,CAAC,MAAM,CACP,kFAAkF,CACrF;;AAGL,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,8CAA8C,CAAC;AAC3D,QAAA,IAAI,CAAC,MAAM,CAAC,uDAAuD,CAAC;;AAE3E;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20220504100000.js b/apps/api-server/dist/__migrations__/postgresql/Migration20220504100000.js new file mode 100644 index 000000000..a1f25ce2f --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20220504100000.js @@ -0,0 +1,18 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220504100000 extends migrations.Migration { + async up() { + this.addSql('create table "user_bookmarked_rooms" ("user_user_uid" varchar(255) not null, "room_id" varchar(255) not null);'); + this.addSql('alter table "user_bookmarked_rooms" add constraint "user_bookmarked_rooms_pkey" primary key ("user_user_uid", "room_id");'); + this.addSql('alter table "user_bookmarked_rooms" add constraint "user_bookmarked_rooms_user_user_uid_foreign" foreign key ("user_user_uid") references "user" ("user_uid") on update cascade on delete cascade;'); + this.addSql('alter table "user_bookmarked_rooms" add constraint "user_bookmarked_rooms_room_id_foreign" foreign key ("room_id") references "room" ("id") on update cascade on delete cascade;'); + } + async down() { + this.addSql('drop table if exists "user_bookmarked_rooms" cascade;'); + } +} + +exports.Migration20220504100000 = Migration20220504100000; +//# sourceMappingURL=Migration20220504100000.js.map diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20220504100000.js.map b/apps/api-server/dist/__migrations__/postgresql/Migration20220504100000.js.map new file mode 100644 index 000000000..dad2840f6 --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20220504100000.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220504100000.js","sources":["../../../src/__migrations__/postgresql/Migration20220504100000.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CACP,gHAAgH,CACnH;AACD,QAAA,IAAI,CAAC,MAAM,CACP,2HAA2H,CAC9H;AAED,QAAA,IAAI,CAAC,MAAM,CACP,oMAAoM,CACvM;AACD,QAAA,IAAI,CAAC,MAAM,CACP,kLAAkL,CACrL;;AAGL,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,uDAAuD,CAAC;;AAE3E;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20220630151907.js b/apps/api-server/dist/__migrations__/postgresql/Migration20220630151907.js new file mode 100644 index 000000000..d0bed3bfc --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20220630151907.js @@ -0,0 +1,17 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220630151907 extends migrations.Migration { + async up() { + this.addSql('alter table "room_prv_msg" add column "text_updated_at3" timestamptz(0) null default null;'); + this.addSql('alter table "room_pub_msg" add column "text_updated_at3" timestamptz(0) null default null;'); + } + async down() { + this.addSql('alter table "room_prv_msg" drop column "text_updated_at3";'); + this.addSql('alter table "room_pub_msg" drop column "text_updated_at3";'); + } +} + +exports.Migration20220630151907 = Migration20220630151907; +//# sourceMappingURL=Migration20220630151907.js.map diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20220630151907.js.map b/apps/api-server/dist/__migrations__/postgresql/Migration20220630151907.js.map new file mode 100644 index 000000000..77c1d312c --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20220630151907.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220630151907.js","sources":["../../../src/__migrations__/postgresql/Migration20220630151907.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CACP,4FAA4F,CAC/F;AAED,QAAA,IAAI,CAAC,MAAM,CACP,4FAA4F,CAC/F;;AAGL,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,4DAA4D,CAAC;AAEzE,QAAA,IAAI,CAAC,MAAM,CAAC,4DAA4D,CAAC;;AAEhF;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20220727114405.js b/apps/api-server/dist/__migrations__/postgresql/Migration20220727114405.js new file mode 100644 index 000000000..be1a3b2ae --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20220727114405.js @@ -0,0 +1,19 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220727114405 extends migrations.Migration { + async up() { + this.addSql('drop index "file_screenname_index";'); + this.addSql('alter table "file" alter column "screenname" type text using ("screenname"::text);'); + this.addSql('alter table "file" alter column "screenname" drop not null;'); + } + async down() { + this.addSql('alter table "file" alter column "screenname" type varchar(255) using ("screenname"::varchar(255));'); + this.addSql('alter table "file" alter column "screenname" set not null;'); + this.addSql('create index "file_screenname_index" on "file" ("screenname");'); + } +} + +exports.Migration20220727114405 = Migration20220727114405; +//# sourceMappingURL=Migration20220727114405.js.map diff --git a/apps/api-server/dist/__migrations__/postgresql/Migration20220727114405.js.map b/apps/api-server/dist/__migrations__/postgresql/Migration20220727114405.js.map new file mode 100644 index 000000000..b558b4549 --- /dev/null +++ b/apps/api-server/dist/__migrations__/postgresql/Migration20220727114405.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220727114405.js","sources":["../../../src/__migrations__/postgresql/Migration20220727114405.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,qCAAqC,CAAC;AAClD,QAAA,IAAI,CAAC,MAAM,CACP,oFAAoF,CACvF;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,6DAA6D,CAAC;;AAG9E,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CACP,oGAAoG,CACvG;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,4DAA4D,CAAC;AACzE,QAAA,IAAI,CAAC,MAAM,CAAC,gEAAgE,CAAC;;AAEpF;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20211201185826.js b/apps/api-server/dist/__migrations__/sqlite/Migration20211201185826.js new file mode 100644 index 000000000..29872abad --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20211201185826.js @@ -0,0 +1,92 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20211201185826 extends migrations.Migration { + async up() { + this.addSql('create table `user` (`user_uid` varchar not null, `baas_type` varchar not null, `is_entry` integer not null, primary key (`user_uid`));'); + this.addSql('create index `user_baas_type_index` on `user` (`baas_type`);'); + this.addSql('create index `user_is_entry_index` on `user` (`is_entry`);'); + this.addSql('create table `file` (`filename` varchar not null, `screenname` varchar not null, `created_at` datetime null, `encoding` varchar not null, `size` integer not null, `thumb_filename` varchar null, `mimetype` varchar not null, `filesize` integer not null, `list_permission` varchar not null, `rename_permission` varchar not null, `delete_permission` varchar not null, primary key (`filename`));'); + this.addSql('create index `file_screenname_index` on `file` (`screenname`);'); + this.addSql('create index `file_created_at_index` on `file` (`created_at`);'); + this.addSql('create index `file_thumb_filename_index` on `file` (`thumb_filename`);'); + this.addSql('create index `file_mimetype_index` on `file` (`mimetype`);'); + this.addSql('create index `file_filesize_index` on `file` (`filesize`);'); + this.addSql('create index `file_list_permission_index` on `file` (`list_permission`);'); + this.addSql('create index `file_rename_permission_index` on `file` (`rename_permission`);'); + this.addSql('create index `file_delete_permission_index` on `file` (`delete_permission`);'); + this.addSql('create table `file_tag` (`id` varchar not null, `name` varchar not null, primary key (`id`));'); + this.addSql('create table `file_file_tags` (`file_filename` varchar not null, `file_tag_id` varchar not null, primary key (`file_filename`, `file_tag_id`));'); + this.addSql('create index `file_file_tags_file_filename_index` on `file_file_tags` (`file_filename`);'); + this.addSql('create index `file_file_tags_file_tag_id_index` on `file_file_tags` (`file_tag_id`);'); + this.addSql('create table `room` (`id` varchar not null, `version` integer not null default 1, `created_at` datetime null, `updated_at` datetime null, `player_password_hash` varchar null, `spectator_password_hash` varchar null, `created_by` varchar not null, `name` varchar not null, `value` json not null, `revision` integer not null, primary key (`id`));'); + this.addSql('create index `room_version_index` on `room` (`version`);'); + this.addSql('create index `room_created_at_index` on `room` (`created_at`);'); + this.addSql('create index `room_updated_at_index` on `room` (`updated_at`);'); + this.addSql('create index `room_created_by_index` on `room` (`created_by`);'); + this.addSql('create table `room_op` (`id` varchar not null, `prev_revision` integer not null, `value` json not null, primary key (`id`));'); + this.addSql('create index `room_op_prev_revision_index` on `room_op` (`prev_revision`);'); + this.addSql("create table `room_prv_msg` (`id` varchar not null, `version` integer not null default 1, `created_at` datetime not null, `updated_at` datetime null, `init_text_source` varchar null default '', `init_text` varchar not null default '', `updated_text` varchar null, `text_updated_at` integer null default null, `text_color` varchar null, `command_result` varchar null, `command_is_success` integer null default null, `alt_text_to_secret` varchar null, `is_secret` integer not null, `chara_state_id` varchar null, `chara_name` varchar null, `chara_is_private` integer null default null, `chara_image_path` varchar null default null, `chara_image_source_type` varchar null default null, `chara_portrait_image_path` varchar null default null, `chara_portrait_image_source_type` varchar null default null, `custom_name` varchar null, primary key (`id`));"); + this.addSql('create index `room_prv_msg_version_index` on `room_prv_msg` (`version`);'); + this.addSql('create index `room_prv_msg_created_at_index` on `room_prv_msg` (`created_at`);'); + this.addSql('create index `room_prv_msg_updated_at_index` on `room_prv_msg` (`updated_at`);'); + this.addSql('create index `room_prv_msg_is_secret_index` on `room_prv_msg` (`is_secret`);'); + this.addSql('create index `room_prv_msg_chara_state_id_index` on `room_prv_msg` (`chara_state_id`);'); + this.addSql('create table `user_visible_room_prv_msgs` (`user_user_uid` varchar not null, `room_prv_msg_id` varchar not null, primary key (`user_user_uid`, `room_prv_msg_id`));'); + this.addSql('create index `user_visible_room_prv_msgs_user_user_uid_index` on `user_visible_room_prv_msgs` (`user_user_uid`);'); + this.addSql('create index `user_visible_room_prv_msgs_room_prv_msg_id_index` on `user_visible_room_prv_msgs` (`room_prv_msg_id`);'); + this.addSql('create table `dice_piece_log` (`id` varchar not null, `created_at` datetime not null, `state_id` varchar not null, `value` json null, primary key (`id`));'); + this.addSql('create index `dice_piece_log_state_id_index` on `dice_piece_log` (`state_id`);'); + this.addSql('create table `string_piece_log` (`id` varchar not null, `created_at` datetime not null, `state_id` varchar not null, `value` json null, primary key (`id`));'); + this.addSql('create index `string_piece_log_state_id_index` on `string_piece_log` (`state_id`);'); + this.addSql('create table `room_pub_ch` (`id` varchar not null, `version` integer not null default 1, `updated_at` datetime null, `key` varchar not null, `name` varchar null, primary key (`id`));'); + this.addSql('create index `room_pub_ch_version_index` on `room_pub_ch` (`version`);'); + this.addSql('create index `room_pub_ch_updated_at_index` on `room_pub_ch` (`updated_at`);'); + this.addSql('create index `room_pub_ch_key_index` on `room_pub_ch` (`key`);'); + this.addSql("create table `room_pub_msg` (`id` varchar not null, `version` integer not null default 1, `created_at` datetime not null, `updated_at` datetime null, `init_text_source` varchar null default '', `init_text` varchar not null default '', `updated_text` varchar null, `text_updated_at` integer null default null, `text_color` varchar null, `command_result` varchar null, `command_is_success` integer null default null, `alt_text_to_secret` varchar null, `is_secret` integer not null, `chara_state_id` varchar null, `chara_name` varchar null, `chara_is_private` integer null default null, `chara_image_path` varchar null default null, `chara_image_source_type` varchar null default null, `chara_portrait_image_path` varchar null default null, `chara_portrait_image_source_type` varchar null default null, `custom_name` varchar null, primary key (`id`));"); + this.addSql('create index `room_pub_msg_version_index` on `room_pub_msg` (`version`);'); + this.addSql('create index `room_pub_msg_created_at_index` on `room_pub_msg` (`created_at`);'); + this.addSql('create index `room_pub_msg_updated_at_index` on `room_pub_msg` (`updated_at`);'); + this.addSql('create index `room_pub_msg_command_is_success_index` on `room_pub_msg` (`command_is_success`);'); + this.addSql('create index `room_pub_msg_is_secret_index` on `room_pub_msg` (`is_secret`);'); + this.addSql('create index `room_pub_msg_chara_state_id_index` on `room_pub_msg` (`chara_state_id`);'); + this.addSql('create table `room_se` (`id` varchar not null, `created_at` datetime not null, `file_path` varchar not null, `file_source_type` varchar not null, `volume` integer not null, primary key (`id`));'); + this.addSql('create table `participant` (`id` varchar not null, `role` varchar null, `name` varchar null, primary key (`id`));'); + this.addSql('create index `participant_role_index` on `participant` (`role`);'); + this.addSql('alter table `file` add column `created_by_user_uid` varchar null;'); + this.addSql('create index `file_created_by_user_uid_index` on `file` (`created_by_user_uid`);'); + this.addSql('alter table `file_tag` add column `user_user_uid` varchar null;'); + this.addSql('create index `file_tag_user_user_uid_index` on `file_tag` (`user_user_uid`);'); + this.addSql('alter table `room_op` add column `room_id` varchar null;'); + this.addSql('create index `room_op_room_id_index` on `room_op` (`room_id`);'); + this.addSql('alter table `room_prv_msg` add column `created_by_user_uid` varchar null;'); + this.addSql('alter table `room_prv_msg` add column `room_id` varchar null;'); + this.addSql('create index `room_prv_msg_created_by_user_uid_index` on `room_prv_msg` (`created_by_user_uid`);'); + this.addSql('create index `room_prv_msg_room_id_index` on `room_prv_msg` (`room_id`);'); + this.addSql('alter table `dice_piece_log` add column `room_id` varchar null;'); + this.addSql('create index `dice_piece_log_room_id_index` on `dice_piece_log` (`room_id`);'); + this.addSql('alter table `string_piece_log` add column `room_id` varchar null;'); + this.addSql('create index `string_piece_log_room_id_index` on `string_piece_log` (`room_id`);'); + this.addSql('alter table `room_pub_ch` add column `room_id` varchar null;'); + this.addSql('create index `room_pub_ch_room_id_index` on `room_pub_ch` (`room_id`);'); + this.addSql('alter table `room_pub_msg` add column `room_pub_ch_id` varchar null;'); + this.addSql('alter table `room_pub_msg` add column `created_by_user_uid` varchar null;'); + this.addSql('create index `room_pub_msg_room_pub_ch_id_index` on `room_pub_msg` (`room_pub_ch_id`);'); + this.addSql('create index `room_pub_msg_created_by_user_uid_index` on `room_pub_msg` (`created_by_user_uid`);'); + this.addSql('alter table `room_se` add column `created_by_user_uid` varchar null;'); + this.addSql('alter table `room_se` add column `room_id` varchar null;'); + this.addSql('create index `room_se_created_by_user_uid_index` on `room_se` (`created_by_user_uid`);'); + this.addSql('create index `room_se_room_id_index` on `room_se` (`room_id`);'); + this.addSql('alter table `participant` add column `room_id` varchar null;'); + this.addSql('alter table `participant` add column `user_user_uid` varchar null;'); + this.addSql('create index `participant_room_id_index` on `participant` (`room_id`);'); + this.addSql('create index `participant_user_user_uid_index` on `participant` (`user_user_uid`);'); + this.addSql('create unique index `room_op_prev_revision_room_id_unique` on `room_op` (`prev_revision`, `room_id`);'); + this.addSql('create unique index `room_pub_ch_room_id_key_unique` on `room_pub_ch` (`room_id`, `key`);'); + this.addSql('create unique index `participant_room_id_user_user_uid_unique` on `participant` (`room_id`, `user_user_uid`);'); + } +} + +exports.Migration20211201185826 = Migration20211201185826; +//# sourceMappingURL=Migration20211201185826.js.map diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20211201185826.js.map b/apps/api-server/dist/__migrations__/sqlite/Migration20211201185826.js.map new file mode 100644 index 000000000..d25cb7b9d --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20211201185826.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20211201185826.js","sources":["../../../src/__migrations__/sqlite/Migration20211201185826.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CACP,yIAAyI,CAC5I;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,8DAA8D,CAAC;AAC3E,QAAA,IAAI,CAAC,MAAM,CAAC,4DAA4D,CAAC;AAEzE,QAAA,IAAI,CAAC,MAAM,CACP,wYAAwY,CAC3Y;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,gEAAgE,CAAC;AAC7E,QAAA,IAAI,CAAC,MAAM,CAAC,gEAAgE,CAAC;AAC7E,QAAA,IAAI,CAAC,MAAM,CAAC,wEAAwE,CAAC;AACrF,QAAA,IAAI,CAAC,MAAM,CAAC,4DAA4D,CAAC;AACzE,QAAA,IAAI,CAAC,MAAM,CAAC,4DAA4D,CAAC;AACzE,QAAA,IAAI,CAAC,MAAM,CAAC,0EAA0E,CAAC;AACvF,QAAA,IAAI,CAAC,MAAM,CAAC,8EAA8E,CAAC;AAC3F,QAAA,IAAI,CAAC,MAAM,CAAC,8EAA8E,CAAC;AAE3F,QAAA,IAAI,CAAC,MAAM,CACP,+FAA+F,CAClG;AAED,QAAA,IAAI,CAAC,MAAM,CACP,iJAAiJ,CACpJ;AACD,QAAA,IAAI,CAAC,MAAM,CACP,0FAA0F,CAC7F;AACD,QAAA,IAAI,CAAC,MAAM,CACP,sFAAsF,CACzF;AAED,QAAA,IAAI,CAAC,MAAM,CACP,yVAAyV,CAC5V;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,0DAA0D,CAAC;AACvE,QAAA,IAAI,CAAC,MAAM,CAAC,gEAAgE,CAAC;AAC7E,QAAA,IAAI,CAAC,MAAM,CAAC,gEAAgE,CAAC;AAC7E,QAAA,IAAI,CAAC,MAAM,CAAC,gEAAgE,CAAC;AAE7E,QAAA,IAAI,CAAC,MAAM,CACP,8HAA8H,CACjI;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,4EAA4E,CAAC;AAEzF,QAAA,IAAI,CAAC,MAAM,CACP,k1BAAk1B,CACr1B;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,0EAA0E,CAAC;AACvF,QAAA,IAAI,CAAC,MAAM,CACP,gFAAgF,CACnF;AACD,QAAA,IAAI,CAAC,MAAM,CACP,gFAAgF,CACnF;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,8EAA8E,CAAC;AAC3F,QAAA,IAAI,CAAC,MAAM,CACP,wFAAwF,CAC3F;AAED,QAAA,IAAI,CAAC,MAAM,CACP,qKAAqK,CACxK;AACD,QAAA,IAAI,CAAC,MAAM,CACP,kHAAkH,CACrH;AACD,QAAA,IAAI,CAAC,MAAM,CACP,sHAAsH,CACzH;AAED,QAAA,IAAI,CAAC,MAAM,CACP,4JAA4J,CAC/J;AACD,QAAA,IAAI,CAAC,MAAM,CACP,gFAAgF,CACnF;AAED,QAAA,IAAI,CAAC,MAAM,CACP,8JAA8J,CACjK;AACD,QAAA,IAAI,CAAC,MAAM,CACP,oFAAoF,CACvF;AAED,QAAA,IAAI,CAAC,MAAM,CACP,wLAAwL,CAC3L;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,wEAAwE,CAAC;AACrF,QAAA,IAAI,CAAC,MAAM,CAAC,8EAA8E,CAAC;AAC3F,QAAA,IAAI,CAAC,MAAM,CAAC,gEAAgE,CAAC;AAE7E,QAAA,IAAI,CAAC,MAAM,CACP,k1BAAk1B,CACr1B;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,0EAA0E,CAAC;AACvF,QAAA,IAAI,CAAC,MAAM,CACP,gFAAgF,CACnF;AACD,QAAA,IAAI,CAAC,MAAM,CACP,gFAAgF,CACnF;AACD,QAAA,IAAI,CAAC,MAAM,CACP,gGAAgG,CACnG;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,8EAA8E,CAAC;AAC3F,QAAA,IAAI,CAAC,MAAM,CACP,wFAAwF,CAC3F;AAED,QAAA,IAAI,CAAC,MAAM,CACP,mMAAmM,CACtM;AAED,QAAA,IAAI,CAAC,MAAM,CACP,mHAAmH,CACtH;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,kEAAkE,CAAC;AAE/E,QAAA,IAAI,CAAC,MAAM,CAAC,mEAAmE,CAAC;AAChF,QAAA,IAAI,CAAC,MAAM,CACP,kFAAkF,CACrF;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,iEAAiE,CAAC;AAC9E,QAAA,IAAI,CAAC,MAAM,CAAC,8EAA8E,CAAC;AAE3F,QAAA,IAAI,CAAC,MAAM,CAAC,0DAA0D,CAAC;AACvE,QAAA,IAAI,CAAC,MAAM,CAAC,gEAAgE,CAAC;AAE7E,QAAA,IAAI,CAAC,MAAM,CAAC,2EAA2E,CAAC;AACxF,QAAA,IAAI,CAAC,MAAM,CAAC,+DAA+D,CAAC;AAC5E,QAAA,IAAI,CAAC,MAAM,CACP,kGAAkG,CACrG;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,0EAA0E,CAAC;AAEvF,QAAA,IAAI,CAAC,MAAM,CAAC,iEAAiE,CAAC;AAC9E,QAAA,IAAI,CAAC,MAAM,CAAC,8EAA8E,CAAC;AAE3F,QAAA,IAAI,CAAC,MAAM,CAAC,mEAAmE,CAAC;AAChF,QAAA,IAAI,CAAC,MAAM,CACP,kFAAkF,CACrF;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,8DAA8D,CAAC;AAC3E,QAAA,IAAI,CAAC,MAAM,CAAC,wEAAwE,CAAC;AAErF,QAAA,IAAI,CAAC,MAAM,CAAC,sEAAsE,CAAC;AACnF,QAAA,IAAI,CAAC,MAAM,CAAC,2EAA2E,CAAC;AACxF,QAAA,IAAI,CAAC,MAAM,CACP,wFAAwF,CAC3F;AACD,QAAA,IAAI,CAAC,MAAM,CACP,kGAAkG,CACrG;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,sEAAsE,CAAC;AACnF,QAAA,IAAI,CAAC,MAAM,CAAC,0DAA0D,CAAC;AACvE,QAAA,IAAI,CAAC,MAAM,CACP,wFAAwF,CAC3F;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,gEAAgE,CAAC;AAE7E,QAAA,IAAI,CAAC,MAAM,CAAC,8DAA8D,CAAC;AAC3E,QAAA,IAAI,CAAC,MAAM,CAAC,oEAAoE,CAAC;AACjF,QAAA,IAAI,CAAC,MAAM,CAAC,wEAAwE,CAAC;AACrF,QAAA,IAAI,CAAC,MAAM,CACP,oFAAoF,CACvF;AAED,QAAA,IAAI,CAAC,MAAM,CACP,uGAAuG,CAC1G;AAED,QAAA,IAAI,CAAC,MAAM,CACP,2FAA2F,CAC9F;AAED,QAAA,IAAI,CAAC,MAAM,CACP,+GAA+G,CAClH;;AAER;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20211207145304.js b/apps/api-server/dist/__migrations__/sqlite/Migration20211207145304.js new file mode 100644 index 000000000..6b9efb359 --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20211207145304.js @@ -0,0 +1,13 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20211207145304 extends migrations.Migration { + async up() { + this.addSql('alter table `room_op` add column `created_at` datetime null default null;'); + this.addSql('create index `room_op_created_at_index` on `room_op` (`created_at`);'); + } +} + +exports.Migration20211207145304 = Migration20211207145304; +//# sourceMappingURL=Migration20211207145304.js.map diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20211207145304.js.map b/apps/api-server/dist/__migrations__/sqlite/Migration20211207145304.js.map new file mode 100644 index 000000000..261ca2782 --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20211207145304.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20211207145304.js","sources":["../../../src/__migrations__/sqlite/Migration20211207145304.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,2EAA2E,CAAC;AACxF,QAAA,IAAI,CAAC,MAAM,CAAC,sEAAsE,CAAC;;AAE1F;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20220409152838.js b/apps/api-server/dist/__migrations__/sqlite/Migration20220409152838.js new file mode 100644 index 000000000..26051c91b --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20220409152838.js @@ -0,0 +1,32 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); +var migrations$1 = require('../../utils/migrations.js'); + +class Migration20220409152838 extends migrations.Migration { + async up() { + migrations$1.alterColumnToText({ + tableName: 'room_prv_msg', + columnName: 'init_text_source', + self: this, + }); + migrations$1.alterColumnToText({ + tableName: 'room_prv_msg', + columnName: 'init_text', + self: this, + }); + migrations$1.alterColumnToText({ + tableName: 'room_pub_msg', + columnName: 'init_text_source', + self: this, + }); + migrations$1.alterColumnToText({ + tableName: 'room_pub_msg', + columnName: 'init_text', + self: this, + }); + } +} + +exports.Migration20220409152838 = Migration20220409152838; +//# sourceMappingURL=Migration20220409152838.js.map diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20220409152838.js.map b/apps/api-server/dist/__migrations__/sqlite/Migration20220409152838.js.map new file mode 100644 index 000000000..c4a78bbb0 --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20220409152838.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220409152838.js","sources":["../../../src/__migrations__/sqlite/Migration20220409152838.ts"],"sourcesContent":[null],"names":["Migration","alterColumnToText"],"mappings":";;;;;AAGM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAAC,8BAAiB,CAAC;AACd,YAAA,SAAS,EAAE,cAAc;AACzB,YAAA,UAAU,EAAE,kBAAkB;AAC9B,YAAA,IAAI,EAAE,IAAI;AACb,SAAA,CAAC;AACF,QAAAA,8BAAiB,CAAC;AACd,YAAA,SAAS,EAAE,cAAc;AACzB,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,IAAI,EAAE,IAAI;AACb,SAAA,CAAC;AACF,QAAAA,8BAAiB,CAAC;AACd,YAAA,SAAS,EAAE,cAAc;AACzB,YAAA,UAAU,EAAE,kBAAkB;AAC9B,YAAA,IAAI,EAAE,IAAI;AACb,SAAA,CAAC;AACF,QAAAA,8BAAiB,CAAC;AACd,YAAA,SAAS,EAAE,cAAc;AACzB,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,IAAI,EAAE,IAAI;AACb,SAAA,CAAC;;AAET;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20220427150211.js b/apps/api-server/dist/__migrations__/sqlite/Migration20220427150211.js new file mode 100644 index 000000000..896806911 --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20220427150211.js @@ -0,0 +1,13 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220427150211 extends migrations.Migration { + async up() { + this.addSql('alter table `room_prv_msg` add column `text_updated_at2` date null default null;'); + this.addSql('alter table `room_pub_msg` add column `text_updated_at2` date null default null;'); + } +} + +exports.Migration20220427150211 = Migration20220427150211; +//# sourceMappingURL=Migration20220427150211.js.map diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20220427150211.js.map b/apps/api-server/dist/__migrations__/sqlite/Migration20220427150211.js.map new file mode 100644 index 000000000..a27502931 --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20220427150211.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220427150211.js","sources":["../../../src/__migrations__/sqlite/Migration20220427150211.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CACP,kFAAkF,CACrF;AAED,QAAA,IAAI,CAAC,MAAM,CACP,kFAAkF,CACrF;;AAER;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20220502053022.js b/apps/api-server/dist/__migrations__/sqlite/Migration20220502053022.js new file mode 100644 index 000000000..4efd7b9fc --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20220502053022.js @@ -0,0 +1,13 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220502053022 extends migrations.Migration { + async up() { + this.addSql('alter table `room` add column `complete_updated_at` datetime null;'); + this.addSql('create index `room_complete_updated_at_index` on `room` (`complete_updated_at`);'); + } +} + +exports.Migration20220502053022 = Migration20220502053022; +//# sourceMappingURL=Migration20220502053022.js.map diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20220502053022.js.map b/apps/api-server/dist/__migrations__/sqlite/Migration20220502053022.js.map new file mode 100644 index 000000000..4f9bcd6ff --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20220502053022.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220502053022.js","sources":["../../../src/__migrations__/sqlite/Migration20220502053022.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,oEAAoE,CAAC;AACjF,QAAA,IAAI,CAAC,MAAM,CACP,kFAAkF,CACrF;;AAER;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20220504095931.js b/apps/api-server/dist/__migrations__/sqlite/Migration20220504095931.js new file mode 100644 index 000000000..b1f2f47c2 --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20220504095931.js @@ -0,0 +1,14 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220504095931 extends migrations.Migration { + async up() { + this.addSql('create table `user_bookmarked_rooms` (`user_user_uid` text not null, `room_id` text not null, constraint `user_bookmarked_rooms_user_user_uid_foreign` foreign key(`user_user_uid`) references `user`(`user_uid`) on delete cascade on update cascade, constraint `user_bookmarked_rooms_room_id_foreign` foreign key(`room_id`) references `room`(`id`) on delete cascade on update cascade, primary key (`user_user_uid`, `room_id`));'); + this.addSql('create index `user_bookmarked_rooms_user_user_uid_index` on `user_bookmarked_rooms` (`user_user_uid`);'); + this.addSql('create index `user_bookmarked_rooms_room_id_index` on `user_bookmarked_rooms` (`room_id`);'); + } +} + +exports.Migration20220504095931 = Migration20220504095931; +//# sourceMappingURL=Migration20220504095931.js.map diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20220504095931.js.map b/apps/api-server/dist/__migrations__/sqlite/Migration20220504095931.js.map new file mode 100644 index 000000000..2bf8ddcbd --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20220504095931.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220504095931.js","sources":["../../../src/__migrations__/sqlite/Migration20220504095931.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CACP,0aAA0a,CAC7a;AACD,QAAA,IAAI,CAAC,MAAM,CACP,wGAAwG,CAC3G;AACD,QAAA,IAAI,CAAC,MAAM,CACP,4FAA4F,CAC/F;;AAER;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20220630151831.js b/apps/api-server/dist/__migrations__/sqlite/Migration20220630151831.js new file mode 100644 index 000000000..d96c765f4 --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20220630151831.js @@ -0,0 +1,13 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); + +class Migration20220630151831 extends migrations.Migration { + async up() { + this.addSql('alter table `room_prv_msg` add column `text_updated_at3` datetime null default null;'); + this.addSql('alter table `room_pub_msg` add column `text_updated_at3` datetime null default null;'); + } +} + +exports.Migration20220630151831 = Migration20220630151831; +//# sourceMappingURL=Migration20220630151831.js.map diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20220630151831.js.map b/apps/api-server/dist/__migrations__/sqlite/Migration20220630151831.js.map new file mode 100644 index 000000000..4e9d00dec --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20220630151831.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220630151831.js","sources":["../../../src/__migrations__/sqlite/Migration20220630151831.ts"],"sourcesContent":[null],"names":["Migration"],"mappings":";;;;AAEM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CACP,sFAAsF,CACzF;AAED,QAAA,IAAI,CAAC,MAAM,CACP,sFAAsF,CACzF;;AAER;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20220727114545.js b/apps/api-server/dist/__migrations__/sqlite/Migration20220727114545.js new file mode 100644 index 000000000..f16dd3f49 --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20220727114545.js @@ -0,0 +1,18 @@ +'use strict'; + +var migrations = require('@mikro-orm/migrations'); +var migrations$1 = require('../../utils/migrations.js'); + +class Migration20220727114545 extends migrations.Migration { + async up() { + this.addSql('drop index `file_screenname_index`;'); + migrations$1.alterColumnToText({ + tableName: 'file', + columnName: 'screenname', + self: this, + }); + } +} + +exports.Migration20220727114545 = Migration20220727114545; +//# sourceMappingURL=Migration20220727114545.js.map diff --git a/apps/api-server/dist/__migrations__/sqlite/Migration20220727114545.js.map b/apps/api-server/dist/__migrations__/sqlite/Migration20220727114545.js.map new file mode 100644 index 000000000..08358c5cd --- /dev/null +++ b/apps/api-server/dist/__migrations__/sqlite/Migration20220727114545.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Migration20220727114545.js","sources":["../../../src/__migrations__/sqlite/Migration20220727114545.ts"],"sourcesContent":[null],"names":["Migration","alterColumnToText"],"mappings":";;;;;AAGM,MAAO,uBAAwB,SAAQA,oBAAS,CAAA;AAClD,IAAA,MAAM,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,qCAAqC,CAAC;AAElD,QAAAC,8BAAiB,CAAC;AACd,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,IAAI,EAAE,IAAI;AACb,SAAA,CAAC;;AAET;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/buildSchema.js b/apps/api-server/dist/buildSchema.js new file mode 100644 index 000000000..a79532310 --- /dev/null +++ b/apps/api-server/dist/buildSchema.js @@ -0,0 +1,64 @@ +'use strict'; + +var path = require('path'); +var typeGraphql = require('type-graphql'); +var registerEnumTypes = require('./graphql/registerEnumTypes.js'); +var allResolvers = require('./graphql/resolvers/allResolvers.js'); +var utils = require('./graphql/resolvers/utils/utils.js'); +var roles = require('./utils/roles.js'); + +const noAuthCheck = 'noAuthCheck'; +const authChecker = (serverConfig) => async ({ context }, roles$1) => { + if (serverConfig === noAuthCheck) { + throw new Error('authChecker is disbled'); + } + const myRoles = await roles.getRolesAndCheckEntry({ + context, + serverConfig, + setAuthorizedUserToResolverContext: true, + }); + if (myRoles === utils.NotSignIn) { + return false; + } + return myRoles.isPermitted(roles$1); +}; +const optionBase = { + resolvers: allResolvers.allResolvers, +}; +const emitSchemaFileOptions = { + path: path.resolve(process.cwd(), './tmp/schema.gql'), +}; +const validate = { forbidUnknownValues: false }; +const buildSchema = (serverConfig) => async (options) => { + registerEnumTypes.registerEnumTypes(); + let emitSchemaFile = undefined; + if (options.emitSchemaFile) { + emitSchemaFile = emitSchemaFileOptions; + } + return await typeGraphql.buildSchema({ + ...optionBase, + authChecker: authChecker(serverConfig), + emitSchemaFile, + pubSub: options.pubSub, + validate, + }); +}; +const buildSchemaSync = (serverConfig) => (options) => { + registerEnumTypes.registerEnumTypes(); + let emitSchemaFile = undefined; + if (options.emitSchemaFile) { + emitSchemaFile = emitSchemaFileOptions; + } + return typeGraphql.buildSchemaSync({ + ...optionBase, + authChecker: authChecker(serverConfig), + emitSchemaFile, + pubSub: options.pubSub, + validate, + }); +}; + +exports.buildSchema = buildSchema; +exports.buildSchemaSync = buildSchemaSync; +exports.noAuthCheck = noAuthCheck; +//# sourceMappingURL=buildSchema.js.map diff --git a/apps/api-server/dist/buildSchema.js.map b/apps/api-server/dist/buildSchema.js.map new file mode 100644 index 000000000..2bdd77a5a --- /dev/null +++ b/apps/api-server/dist/buildSchema.js.map @@ -0,0 +1 @@ +{"version":3,"file":"buildSchema.js","sources":["../src/buildSchema.ts"],"sourcesContent":[null],"names":["roles","getRolesAndCheckEntry","NotSignIn","allResolvers","registerEnumTypes","buildSchemaCore","buildSchemaSyncCore"],"mappings":";;;;;;;;;AAkBO,MAAM,WAAW,GAAG;AAE3B,MAAM,WAAW,GACb,CAAC,YAA+C,KAChD,OAAO,EAAE,OAAO,EAAE,EAAEA,OAAK,KAAI;AACzB,IAAA,IAAI,YAAY,KAAK,WAAW,EAAE;AAC9B,QAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;AAG7C,IAAA,MAAM,OAAO,GAAG,MAAMC,2BAAqB,CAAC;QACxC,OAAO;QACP,YAAY;AACZ,QAAA,kCAAkC,EAAE,IAAI;AAC3C,KAAA,CAAC;AACF,IAAA,IAAI,OAAO,KAAKC,eAAS,EAAE;AACvB,QAAA,OAAO,KAAK;;AAGhB,IAAA,OAAO,OAAO,CAAC,WAAW,CAACF,OAAK,CAAC;AACrC,CAAC;AAYL,MAAM,UAAU,GAAuB;AACnC,IAAA,SAAS,EAAEG,yBAAY;CAC1B;AAED,MAAM,qBAAqB,GAA0B;IACjD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC;CACxD;AAID,MAAM,QAAQ,GAAmC,EAAE,mBAAmB,EAAE,KAAK,EAAE;AAExE,MAAM,WAAW,GACpB,CAAC,YAA+C,KAChD,OAAO,OAAgB,KAA4B;AAC/C,IAAAC,mCAAiB,EAAE;IACnB,IAAI,cAAc,GAAsC,SAAS;AACjE,IAAA,IAAI,OAAO,CAAC,cAAc,EAAE;QACxB,cAAc,GAAG,qBAAqB;;IAE1C,OAAO,MAAMC,uBAAe,CAAC;AACzB,QAAA,GAAG,UAAU;AACb,QAAA,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC;QACtC,cAAc;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ;AACX,KAAA,CAAC;AACN;AAEG,MAAM,eAAe,GACxB,CAAC,YAA+C,KAChD,CAAC,OAAgB,KAAmB;AAChC,IAAAD,mCAAiB,EAAE;IACnB,IAAI,cAAc,GAAsC,SAAS;AACjE,IAAA,IAAI,OAAO,CAAC,cAAc,EAAE;QACxB,cAAc,GAAG,qBAAqB;;AAE1C,IAAA,OAAOE,2BAAmB,CAAC;AACvB,QAAA,GAAG,UAAU;AACb,QAAA,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC;QACtC,cAAc;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ;AACX,KAAA,CAAC;AACN;;;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/config/createORM.js b/apps/api-server/dist/config/createORM.js new file mode 100644 index 000000000..60bb2b63d --- /dev/null +++ b/apps/api-server/dist/config/createORM.js @@ -0,0 +1,25 @@ +'use strict'; + +var result = require('@kizahasi/result'); +var core = require('@mikro-orm/core'); +var appConsole = require('../utils/appConsole.js'); + +const createORM = async (options) => { + if (options.isError) { + return options; + } + try { + const result$1 = await core.MikroORM.init(options.value); + return result.Result.ok(result$1); + } + catch (e) { + appConsole.AppConsole.error({ + en: 'Could not connect to the database!', + ja: 'データベースに接続できませんでした', + }); + throw e; + } +}; + +exports.createORM = createORM; +//# sourceMappingURL=createORM.js.map diff --git a/apps/api-server/dist/config/createORM.js.map b/apps/api-server/dist/config/createORM.js.map new file mode 100644 index 000000000..db909d0f5 --- /dev/null +++ b/apps/api-server/dist/config/createORM.js.map @@ -0,0 +1 @@ +{"version":3,"file":"createORM.js","sources":["../../src/config/createORM.ts"],"sourcesContent":[null],"names":["result","MikroORM","Result","AppConsole"],"mappings":";;;;;;MAMa,SAAS,GAAG,OACrB,OAA4C,KACtB;AACtB,IAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACjB,QAAA,OAAO,OAAO;;AAElB,IAAA,IAAI;QACA,MAAMA,QAAM,GAAG,MAAMC,aAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACjD,QAAA,OAAOC,aAAM,CAAC,EAAE,CAACF,QAAM,CAAC;;IAC1B,OAAO,CAAC,EAAE;QACRG,qBAAU,CAAC,KAAK,CAAC;AACb,YAAA,EAAE,EAAE,oCAAoC;AACxC,YAAA,EAAE,EAAE,mBAAmB;AAC1B,SAAA,CAAC;AAEF,QAAA,MAAM,CAAC;;AAEf;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/config/createORMOptions.js b/apps/api-server/dist/config/createORMOptions.js new file mode 100644 index 000000000..d457d1209 --- /dev/null +++ b/apps/api-server/dist/config/createORMOptions.js @@ -0,0 +1,220 @@ +'use strict'; + +var result = require('@kizahasi/result'); +var env = require('../env.js'); +var mikroOrm = require('../mikro-orm.js'); +var appConsole = require('../utils/appConsole.js'); +var determineDatabaseUrl = require('./determineDatabaseUrl.js'); +var types = require('./types.js'); + +const createMySQLOptionsResult = (mysqlConfig, databaseArg, dirName) => { + if (mysqlConfig == null) { + if (databaseArg === types.mysql) { + return result.Result.error(`使用するデータベースとしてMySQLが指定されましたが、設定が見つかりませんでした。${env.MYSQL}の値を設定する必要があります。`); + } + return result.Result.error(`使用するデータベースとしてPostgreSQLが指定されましたが、${env.MYSQL}の値が設定されていません。`); + } + const result$1 = mikroOrm.createMySQLOptions({ + dbName: mysqlConfig.dbName, + dirName, + clientUrl: mysqlConfig.clientUrl, + driverOptions: mysqlConfig.driverOptions, + }); + return result.Result.ok(result$1); +}; +const createSQLiteOptionsResult = (sqliteConfig, dirName) => { + const result$1 = mikroOrm.createSQLiteOptions({ sqliteConfig, dirName }); + return result.Result.ok(result$1); +}; +const createPostgresOptionsResult = (postgresConfig, serverConfig, databaseArg, dirName) => { + if (serverConfig.heroku) { + if (serverConfig.databaseUrl != null) { + const result$1 = mikroOrm.createPostgreSQLOptions({ + clientUrl: serverConfig.databaseUrl, + dbName: undefined, + driverOptions: { + connection: { ssl: { rejectUnauthorized: false } }, + }, + dirName, + }); + return result.Result.ok(result$1); + } + appConsole.AppConsole.infoAsNoticeJa(`${env.HEROKU}の値がtrueですが、${env.DATABASE_URL}の値が見つかりませんでした。Heroku以外で動かしている可能性があります。${env.DATABASE_URL}によるデータベースの参照はスキップされます。`); + } + if (postgresConfig == null) { + if (databaseArg === types.postgresql) { + return result.Result.error(`使用するデータベースとしてPostgreSQLが指定されましたが、設定が見つかりませんでした。${env.POSTGRESQL}の値を設定する必要があります。Herokuの場合はHeroku Postgresをインストールしていてなおかつ${env.DATABASE_URL}の値が設定されていることを確認してください。`); + } + return result.Result.error(`使用するデータベースとしてPostgreSQLが指定されましたが、${env.POSTGRESQL}の値が設定されていません。もし${env.DATABASE_URL}を利用する場合は、--db パラメーターを指定せずに起動してください。`); + } + const result$1 = mikroOrm.createPostgreSQLOptions({ + dbName: postgresConfig.dbName, + dirName, + clientUrl: postgresConfig.clientUrl, + driverOptions: postgresConfig.driverOptions, + }); + return result.Result.ok(result$1); +}; +const notOne = 'notOne'; +const isExactlyOneServerConfig = (serverConfig) => { + if (serverConfig.mysql == null) { + if (serverConfig.postgresql == null) { + if (serverConfig.sqlite == null) { + return { + type: notOne, + mysql: undefined, + postgresql: undefined, + sqlite: undefined, + }; + } + else { + return { type: types.sqlite, sqlite: serverConfig.sqlite }; + } + } + else { + if (serverConfig.sqlite == null) { + return { type: types.postgresql, postgresql: serverConfig.postgresql }; + } + else { + return { + type: notOne, + mysql: undefined, + postgresql: serverConfig.postgresql, + sqlite: serverConfig.sqlite, + }; + } + } + } + else { + if (serverConfig.postgresql == null) { + if (serverConfig.sqlite == null) { + return { + type: types.mysql, + mysql: serverConfig.mysql, + postgresql: undefined, + sqlite: undefined, + }; + } + else { + return { + type: notOne, + mysql: serverConfig.mysql, + sqlite: serverConfig.sqlite, + }; + } + } + else { + if (serverConfig.sqlite == null) { + return { + type: notOne, + mysql: serverConfig.mysql, + postgresql: serverConfig.postgresql, + }; + } + else { + return { + type: notOne, + mysql: serverConfig.mysql, + postgresql: serverConfig.postgresql, + sqlite: serverConfig.sqlite, + }; + } + } + } +}; +const seeDatabaseUrl = 'seeDatabaseUrl'; +const createORMOptionsWithoutDatabaseUrl = (serverConfig, databaseArg, dirName) => { + switch (databaseArg) { + case null: { + const exactlyOneServerConfigResult = isExactlyOneServerConfig(serverConfig); + switch (exactlyOneServerConfigResult.type) { + case types.mysql: + return createMySQLOptionsResult(exactlyOneServerConfigResult.mysql, databaseArg, dirName); + case types.postgresql: + return createPostgresOptionsResult(exactlyOneServerConfigResult.postgresql, serverConfig, databaseArg, dirName); + case types.sqlite: + return createSQLiteOptionsResult(exactlyOneServerConfigResult.sqlite, dirName); + default: { + if (exactlyOneServerConfigResult.mysql == null) { + if (exactlyOneServerConfigResult.postgresql == null) { + return result.Result.ok(seeDatabaseUrl); + } + return result.Result.error(`Because ${env.POSTGRESQL} and ${env.SQLITE} are set in config, you must use --db parameter to specify a database to use.`); + } + if (exactlyOneServerConfigResult.postgresql == null) { + return result.Result.error(`Because ${env.MYSQL} and ${env.SQLITE} are set in config, you must use --db parameter to specify a database to use.`); + } + if (exactlyOneServerConfigResult.sqlite == null) { + return result.Result.error(`Because ${env.MYSQL} and ${env.POSTGRESQL} are set in config, you must use --db parameter to specify a database to use.`); + } + return result.Result.error(`Because ${env.MYSQL}, ${env.POSTGRESQL}, and ${env.SQLITE} are set in config, you must use --db parameter to specify a database to use.`); + } + } + } + case types.mysql: { + if (serverConfig.mysql == null) { + return result.Result.error(`使用するデータベースとしてMySQLが指定されましたが、${env.MYSQL}の値が設定されていません。もし${env.DATABASE_URL}を利用する場合は、--db パラメーターを指定せずに起動してください。`); + } + return createMySQLOptionsResult(serverConfig.mysql, databaseArg, dirName); + } + case types.sqlite: { + if (serverConfig.sqlite == null) { + return result.Result.error(`使用するデータベースとしてSQLiteが指定されましたが、${env.SQLITE}の値が設定されていません。もし${env.DATABASE_URL}を利用する場合は、--db パラメーターを指定せずに起動してください。`); + } + return createSQLiteOptionsResult(serverConfig.sqlite, dirName); + } + case types.postgresql: { + return createPostgresOptionsResult(serverConfig.postgresql, serverConfig, databaseArg, dirName); + } + } +}; +const createORMOptions = (serverConfig, databaseArg, dirName) => { + const ormOptionsBaseResult = createORMOptionsWithoutDatabaseUrl(serverConfig, databaseArg, dirName); + if (ormOptionsBaseResult.isError) { + return ormOptionsBaseResult; + } + const ormOptionsBase = ormOptionsBaseResult.value; + if (ormOptionsBase === seeDatabaseUrl) { + if (serverConfig.databaseUrl == null) { + return result.Result.error('Database config not found.'); + } + const databaseUrlResult = determineDatabaseUrl.determineDatabaseUrl(serverConfig.databaseUrl); + if (databaseUrlResult.isError) { + return result.Result.error(databaseUrlResult.error.en); + } + switch (databaseUrlResult.value.type) { + case types.mysql: + return result.Result.ok(mikroOrm.createMySQLOptions({ + clientUrl: databaseUrlResult.value.mysql.clientUrl, + dirName, + dbName: undefined, + driverOptions: undefined, + })); + case types.postgresql: + return result.Result.ok(mikroOrm.createPostgreSQLOptions({ + clientUrl: databaseUrlResult.value.postgresql.clientUrl, + dirName, + dbName: undefined, + driverOptions: serverConfig.heroku + ? { + connection: { ssl: { rejectUnauthorized: false } }, + } + : undefined, + })); + case types.sqlite: + return result.Result.ok(mikroOrm.createSQLiteOptions({ + sqliteConfig: { + dbName: databaseUrlResult.value.sqlite.dbName, + }, + dirName, + })); + } + } + if (serverConfig.databaseUrl != null) { + appConsole.AppConsole.infoAsNoticeJa(`${env.MYSQL}, ${env.POSTGRESQL}, ${env.SQLITE} においてデータベースが設定されているため、${env.DATABASE_URL} の値は無視されました。`); + } + return result.Result.ok(ormOptionsBase); +}; + +exports.createORMOptions = createORMOptions; +//# sourceMappingURL=createORMOptions.js.map diff --git a/apps/api-server/dist/config/createORMOptions.js.map b/apps/api-server/dist/config/createORMOptions.js.map new file mode 100644 index 000000000..1c061cb79 --- /dev/null +++ b/apps/api-server/dist/config/createORMOptions.js.map @@ -0,0 +1 @@ +{"version":3,"file":"createORMOptions.js","sources":["../../src/config/createORMOptions.ts"],"sourcesContent":[null],"names":["mysql","Result","MYSQL","result","createMySQLOptions","createSQLiteOptions","createPostgreSQLOptions","AppConsole","HEROKU","DATABASE_URL","postgresql","POSTGRESQL","sqlite","SQLITE","determineDatabaseUrl"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/config/determineDatabaseUrl.js b/apps/api-server/dist/config/determineDatabaseUrl.js new file mode 100644 index 000000000..e794259ec --- /dev/null +++ b/apps/api-server/dist/config/determineDatabaseUrl.js @@ -0,0 +1,31 @@ +'use strict'; + +var result = require('@kizahasi/result'); +var types = require('./types.js'); + +const determineDatabaseUrl = (DATABASE_URL) => { + const [protocol, hierPart] = DATABASE_URL.trim().split('://'); + if (protocol == null || hierPart == null) { + return result.Result.error({ en: 'Could not determine database. URL is invalid.' }); + } + switch (protocol) { + case 'postgres': + case 'postgresql': + return result.Result.ok({ type: types.postgresql, postgresql: { clientUrl: DATABASE_URL } }); + case 'file': + case 'sqlite': + return result.Result.ok({ + type: types.sqlite, + sqlite: { dbName: hierPart }, + }); + } + if (protocol.startsWith('mysql')) { + return result.Result.ok({ type: types.mysql, mysql: { clientUrl: DATABASE_URL } }); + } + return result.Result.error({ + en: 'Could not determine database. To use PostgreSQL, start with postgres:// or postgresql://. To use MySQL, start with mysql://. To use SQLite, start with file:// .', + }); +}; + +exports.determineDatabaseUrl = determineDatabaseUrl; +//# sourceMappingURL=determineDatabaseUrl.js.map diff --git a/apps/api-server/dist/config/determineDatabaseUrl.js.map b/apps/api-server/dist/config/determineDatabaseUrl.js.map new file mode 100644 index 000000000..0de962569 --- /dev/null +++ b/apps/api-server/dist/config/determineDatabaseUrl.js.map @@ -0,0 +1 @@ +{"version":3,"file":"determineDatabaseUrl.js","sources":["../../src/config/determineDatabaseUrl.ts"],"sourcesContent":[null],"names":["$Result","postgresql","sqlite","mysql"],"mappings":";;;;;AAmBa,MAAA,oBAAoB,GAAG,CAAC,YAAoB,KAAyC;AAC9F,IAAA,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;IAC7D,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;QACtC,OAAOA,aAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,+CAA+C,EAAE,CAAC;;IAEjF,QAAQ,QAAQ;AACZ,QAAA,KAAK,UAAU;AACf,QAAA,KAAK,YAAY;AACb,YAAA,OAAOA,aAAO,CAAC,EAAE,CAAC,EAAE,IAAI,EAAEC,gBAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC;AAGpF,QAAA,KAAK,MAAM;AACX,QAAA,KAAK,QAAQ;YACT,OAAOD,aAAO,CAAC,EAAE,CAAC;AACd,gBAAA,IAAI,EAAEE,YAAM;AACZ,gBAAA,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC/B,aAAA,CAAC;;AAKV,IAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AAC9B,QAAA,OAAOF,aAAO,CAAC,EAAE,CAAC,EAAE,IAAI,EAAEG,WAAK,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC;;IAG1E,OAAOH,aAAO,CAAC,KAAK,CAAC;AACjB,QAAA,EAAE,EAAE,kKAAkK;AACzK,KAAA,CAAC;AACN;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/config/logConfigParser.js b/apps/api-server/dist/config/logConfigParser.js new file mode 100644 index 000000000..bea6ccecd --- /dev/null +++ b/apps/api-server/dist/config/logConfigParser.js @@ -0,0 +1,65 @@ +'use strict'; + +var utils = require('@flocon-trpg/utils'); +var result = require('@kizahasi/result'); +var env = require('../env.js'); +var types = require('./types.js'); + +const ensureOk = (source) => { + return source?.value; +}; +class LogConfigParser { + get logFormat() { + return this[env.LOG_FORMAT]; + } + get logLevel() { + return this[env.LOG_LEVEL]; + } + constructor(env$1) { + this[env.LOG_FORMAT] = LogConfigParser.logFormat(env$1); + this[env.LOG_LEVEL] = LogConfigParser.logLevel(env$1); + } + static logFormat(env$1) { + const logFormat = env$1[env.LOG_FORMAT]; + if (logFormat == null) { + return undefined; + } + switch (logFormat.toLowerCase().trim()) { + case 'json': + case 'pino': + return result.Result.ok(types.json); + case 'default': + return result.Result.ok(types.$default); + } + return result.Result.error(`${env.LOG_FORMAT} is invalid. Supported values: "json", "default".`); + } + static logLevel(env$1) { + const logLevel = env$1[env.LOG_LEVEL]; + if (logLevel == null) { + return undefined; + } + return utils.parsePinoLogLevel(logLevel, env.LOG_LEVEL); + } + createLogConfig() { + if (this.logFormat?.isError) { + return this.logFormat; + } + if (this.logLevel?.isError) { + return this.logLevel; + } + const result$1 = { + logFormat: ensureOk(this.logFormat), + logLevel: ensureOk(this.logLevel), + }; + return result.Result.ok(result$1); + } + get logConfig() { + if (this.logConfigCache == null) { + this.logConfigCache = this.createLogConfig(); + } + return this.logConfigCache; + } +} + +exports.LogConfigParser = LogConfigParser; +//# sourceMappingURL=logConfigParser.js.map diff --git a/apps/api-server/dist/config/logConfigParser.js.map b/apps/api-server/dist/config/logConfigParser.js.map new file mode 100644 index 000000000..c4c549270 --- /dev/null +++ b/apps/api-server/dist/config/logConfigParser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"logConfigParser.js","sources":["../../src/config/logConfigParser.ts"],"sourcesContent":[null],"names":["LOG_FORMAT","LOG_LEVEL","env","Result","json","$default","parsePinoLogLevel","result"],"mappings":";;;;;;;AAOA,MAAM,QAAQ,GAAG,CAAI,MAAyB,KAAmB;IAC7D,OAAO,MAAM,EAAE,KAAK;AACxB,CAAC;MAGY,eAAe,CAAA;AAExB,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,OAAO,IAAI,CAACA,cAAU,CAAC;;AAI3B,IAAA,IAAW,QAAQ,GAAA;AACf,QAAA,OAAO,IAAI,CAACC,aAAS,CAAC;;AAG1B,IAAA,WAAA,CAAmBC,KAAuB,EAAA;QACtC,IAAI,CAACF,cAAU,CAAC,GAAG,eAAe,CAAC,SAAS,CAACE,KAAG,CAAC;QACjD,IAAI,CAACD,aAAS,CAAC,GAAG,eAAe,CAAC,QAAQ,CAACC,KAAG,CAAC;;IAG3C,OAAO,SAAS,CAACA,KAAuB,EAAA;AAC5C,QAAA,MAAM,SAAS,GAAGA,KAAG,CAACF,cAAU,CAAC;AACjC,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AACnB,YAAA,OAAO,SAAS;;QAGpB,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;AAClC,YAAA,KAAK,MAAM;AACX,YAAA,KAAK,MAAM;AACP,gBAAA,OAAOG,aAAM,CAAC,EAAE,CAACC,UAAI,CAAC;AAC1B,YAAA,KAAK,SAAS;AACV,gBAAA,OAAOD,aAAM,CAAC,EAAE,CAACE,cAAQ,CAAC;;QAGlC,OAAOF,aAAM,CAAC,KAAK,CAAC,GAAGH,cAAU,CAAA,iDAAA,CAAmD,CAAC;;IAGjF,OAAO,QAAQ,CAACE,KAAuB,EAAA;AAC3C,QAAA,MAAM,QAAQ,GAAGA,KAAG,CAACD,aAAS,CAAC;AAC/B,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAA,OAAO,SAAS;;AAGpB,QAAA,OAAOK,uBAAiB,CAAC,QAAQ,EAAEL,aAAS,CAAC;;IAGzC,eAAe,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;YACzB,OAAO,IAAI,CAAC,SAAS;;AAEzB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;YACxB,OAAO,IAAI,CAAC,QAAQ;;AAGxB,QAAA,MAAMM,QAAM,GAAc;AACtB,YAAA,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC,YAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;SACpC;AACD,QAAA,OAAOJ,aAAM,CAAC,EAAE,CAACI,QAAM,CAAC;;AAI5B,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;AAC7B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE;;QAEhD,OAAO,IAAI,CAAC,cAAc;;AAEjC;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/config/serverConfigParser.js b/apps/api-server/dist/config/serverConfigParser.js new file mode 100644 index 000000000..aefd4203f --- /dev/null +++ b/apps/api-server/dist/config/serverConfigParser.js @@ -0,0 +1,344 @@ +'use strict'; + +var utils = require('@flocon-trpg/utils'); +var result = require('@kizahasi/result'); +var env = require('../env.js'); +var types = require('./types.js'); + +env.loadDotenv(); +const tryParseJSON = (json) => { + try { + return result.Result.ok(JSON.parse(json)); + } + catch (e) { + if (e instanceof Error) { + return result.Result.error(e.message); + } + throw e; + } +}; +const ensureOk = (source) => { + return source?.value; +}; +class ServerConfigParser { + get admins() { + return this[env.FLOCON_ADMIN]; + } + get accessControlAllowOrigin() { + return this[env.ACCESS_CONTROL_ALLOW_ORIGIN]; + } + get autoMigration() { + return this[env.AUTO_MIGRATION]; + } + get databaseUrl() { + return this[env.DATABASE_URL]; + } + get uploaderCountQuota() { + return this[env.EMBUPLOADER_COUNT_QUOTA]; + } + get uploaderEnabled() { + return this[env.EMBUPLOADER_ENABLED]; + } + get uploaderMaxSize() { + return this[env.EMBUPLOADER_MAX_SIZE]; + } + get uploaderSizeQuota() { + return this[env.EMBUPLOADER_SIZE_QUOTA]; + } + get uploaderPath() { + return this[env.EMBUPLOADER_PATH]; + } + get entryPassword() { + return this[env.ENTRY_PASSWORD]; + } + get firebaseAdminSecret() { + return this[env.FIREBASE_ADMIN_SECRET]; + } + get firebaseProjectId() { + return this[env.FIREBASE_PROJECT_ID]; + } + get disableRateLimit() { + return this[env.FLOCON_API_DISABLE_RATE_LIMIT_EXPERIMENTAL]; + } + get heroku() { + return this[env.HEROKU]; + } + get mysql() { + return this[env.MYSQL]; + } + get roomHistCount() { + return this[env.ROOMHIST_COUNT]; + } + get postgresql() { + return this[env.POSTGRESQL]; + } + get sqlite() { + return this[env.SQLITE]; + } + constructor(env$1) { + const simpleProps = [env.ACCESS_CONTROL_ALLOW_ORIGIN, env.DATABASE_URL, env.EMBUPLOADER_PATH]; + for (const prop of simpleProps) { + this[prop] = env$1[prop]; + } + const intProps = [ + env.EMBUPLOADER_COUNT_QUOTA, + env.EMBUPLOADER_MAX_SIZE, + env.EMBUPLOADER_SIZE_QUOTA, + env.ROOMHIST_COUNT, + ]; + for (const prop of intProps) { + const value = env$1[prop]; + if (value == null) { + this[prop] = undefined; + continue; + } + const intValue = utils.filterInt(value.trim()); + if (intValue == null) { + this[prop] = result.Result.error(undefined); + } + else { + this[prop] = result.Result.ok(intValue); + } + } + const booleanProps = [ + env.AUTO_MIGRATION, + env.EMBUPLOADER_ENABLED, + env.FLOCON_API_DISABLE_RATE_LIMIT_EXPERIMENTAL, + env.HEROKU, + ]; + for (const prop of booleanProps) { + const value = env$1[prop]; + if (value == null) { + this[prop] = undefined; + continue; + } + const propValue = utils.parseStringToBoolean(value); + if (propValue.isError) { + this[prop] = result.Result.error(undefined); + } + else { + this[prop] = propValue; + } + } + this[env.FLOCON_ADMIN] = ServerConfigParser.admin(env$1); + this[env.FIREBASE_ADMIN_SECRET] = ServerConfigParser.firebaseAdminSecretProp(env$1); + this[env.FIREBASE_PROJECT_ID] = ServerConfigParser.firebaseProjectId(env$1); + this[env.ENTRY_PASSWORD] = ServerConfigParser.entryPasswordProp(env$1); + this[env.MYSQL] = ServerConfigParser.mysqlProp(env$1); + this[env.POSTGRESQL] = ServerConfigParser.postgresqlProp(env$1); + this[env.SQLITE] = ServerConfigParser.sqliteProp(env$1); + } + static admin(env$1) { + const adminValue = env$1[env.FLOCON_ADMIN]; + if (adminValue == null) { + return result.Result.ok([]); + } + if (/[^a-zA-Z0-9 ,]/.test(adminValue)) { + return result.Result.error(`${env.FLOCON_ADMIN} contains invalid characters. Valid characters are [^a-zA-Z0-9 ,]. Make sure firebase UIDs are set. To set multiple UIDs, separate them by commas.`); + } + return result.Result.ok(adminValue + .split(',') + .map(s => s.trim()) + .filter(s => s !== '')); + } + static entryPasswordProp(env$1) { + const entryPasswordObject = env$1[env.ENTRY_PASSWORD]; + if (entryPasswordObject == null) { + return undefined; + } + const json = tryParseJSON(entryPasswordObject); + if (json.isError) { + return result.Result.error(undefined); + } + const j = types.entryPassword.safeParse(json.value); + if (!j.success) { + return result.Result.error(undefined); + } + if (j.data.type !== types.none) { + return result.Result.ok(j.data); + } + return undefined; + } + static firebaseAdminSecretProp(env$1) { + const firebaseAdminSecretObject = env$1[env.FIREBASE_ADMIN_SECRET]; + if (firebaseAdminSecretObject == null) { + return undefined; + } + const json = tryParseJSON(firebaseAdminSecretObject); + if (json.isError) { + return result.Result.error(undefined); + } + const j = types.firebaseAdminSecret.safeParse(json.value); + if (!j.success) { + return result.Result.error(undefined); + } + return result.Result.ok(j.data); + } + static firebaseProjectId(env$1) { + const project_id = env$1[env.FIREBASE_PROJECT_ID]; + const projectid = env$1[env.FIREBASE_PROJECTID]; + if (project_id != null && projectid != null) { + utils.loggerRef.warn(`${env.FIREBASE_PROJECT_ID} と ${env.FIREBASE_PROJECTID} が両方ともセットされているため、${env.FIREBASE_PROJECT_ID} の値のみが参照されます。`); + } + return project_id ?? projectid; + } + static mysqlProp(env$1) { + const mysqlObject = env$1[env.MYSQL]; + if (mysqlObject == null) { + return undefined; + } + const json = tryParseJSON(mysqlObject); + if (json.isError) { + return result.Result.error(undefined); + } + const j = types.mysqlDatabase.safeParse(json.value); + if (!j.success) { + return result.Result.error(undefined); + } + return result.Result.ok(j.data); + } + static postgresqlProp(env$1) { + const postgresqlObject = env$1[env.POSTGRESQL]; + if (postgresqlObject == null) { + return undefined; + } + const json = tryParseJSON(postgresqlObject); + if (json.isError) { + return result.Result.error(undefined); + } + const j = types.postgresqlDatabase.safeParse(json.value); + if (!j.success) { + return result.Result.error(undefined); + } + return result.Result.ok(j.data); + } + static sqliteProp(env$1) { + const sqliteObject = env$1[env.SQLITE]; + if (sqliteObject == null) { + return undefined; + } + const json = tryParseJSON(sqliteObject); + if (json.isError) { + return result.Result.error(undefined); + } + const j = types.sqliteDatabase.safeParse(json.value); + if (!j.success) { + return result.Result.error(undefined); + } + return result.Result.ok(j.data); + } + parseError(envKey) { + return result.Result.error(`${envKey} の値の記入方法が誤っています。`); + } + parseErrorFromBoolean(envKey) { + return result.Result.error(`${envKey} で、次のエラーが発生しました: ` + utils.parseStringToBooleanError.ja); + } + parseErrorFromInteger(envKey) { + return result.Result.error(`${envKey} の値を整数値に変換できませんでした。`); + } + createServerConfigForMigration() { + if (this.heroku?.isError === true) { + return this.parseErrorFromBoolean(env.HEROKU); + } + if (this.mysql?.isError === true) { + return this.parseError(env.MYSQL); + } + if (this.sqlite?.isError === true) { + return this.parseError(env.SQLITE); + } + if (this.postgresql?.isError === true) { + return this.parseError(env.POSTGRESQL); + } + const result$1 = { + databaseUrl: this.databaseUrl, + heroku: ensureOk(this.heroku) ?? false, + mysql: ensureOk(this.mysql), + postgresql: ensureOk(this.postgresql), + sqlite: ensureOk(this.sqlite), + }; + return result.Result.ok(result$1); + } + get serverConfigForMigration() { + if (this.serverConfigForMigrationCache == null) { + this.serverConfigForMigrationCache = this.createServerConfigForMigration(); + } + return this.serverConfigForMigrationCache; + } + createServerConfig() { + if (this.admins?.isError === true) { + return this.admins; + } + if (this.autoMigration?.isError === true) { + return this.parseErrorFromBoolean(env.AUTO_MIGRATION); + } + if (this.disableRateLimit?.isError === true) { + return this.parseErrorFromBoolean(env.FLOCON_API_DISABLE_RATE_LIMIT_EXPERIMENTAL); + } + if (this.entryPassword?.isError === true) { + return this.parseError(env.ENTRY_PASSWORD); + } + if (this.firebaseAdminSecret?.isError === true) { + return this.parseError(env.FIREBASE_ADMIN_SECRET); + } + if (this.heroku?.isError === true) { + return this.parseErrorFromBoolean(env.HEROKU); + } + if (this.mysql?.isError === true) { + return this.parseError(env.MYSQL); + } + if (this.postgresql?.isError === true) { + return this.parseError(env.POSTGRESQL); + } + if (this.roomHistCount?.isError === true) { + return this.parseError(env.ROOMHIST_COUNT); + } + if (this.sqlite?.isError === true) { + return this.parseError(env.SQLITE); + } + if (this.uploaderCountQuota?.isError === true) { + return this.parseErrorFromInteger(env.EMBUPLOADER_COUNT_QUOTA); + } + if (this.uploaderEnabled?.isError === true) { + return this.parseErrorFromBoolean(env.EMBUPLOADER_ENABLED); + } + if (this.uploaderSizeQuota?.isError === true) { + return this.parseErrorFromInteger(env.EMBUPLOADER_SIZE_QUOTA); + } + if (this.uploaderMaxSize?.isError === true) { + return this.parseErrorFromInteger(env.EMBUPLOADER_MAX_SIZE); + } + const uploaderConfig = { + enabled: ensureOk(this.uploaderEnabled) ?? false, + directory: this.uploaderPath, + countQuota: ensureOk(this.uploaderCountQuota), + sizeQuota: ensureOk(this.uploaderSizeQuota), + maxFileSize: ensureOk(this.uploaderMaxSize), + }; + const result$1 = { + accessControlAllowOrigin: this.accessControlAllowOrigin, + admins: ensureOk(this.admins) ?? [], + autoMigration: ensureOk(this.autoMigration) ?? false, + databaseUrl: this.databaseUrl, + entryPassword: ensureOk(this.entryPassword), + firebaseAdminSecret: ensureOk(this.firebaseAdminSecret), + firebaseProjectId: this.firebaseProjectId, + heroku: ensureOk(this.heroku) ?? false, + mysql: ensureOk(this.mysql), + roomHistCount: ensureOk(this.roomHistCount), + postgresql: ensureOk(this.postgresql), + sqlite: ensureOk(this.sqlite), + uploader: uploaderConfig, + disableRateLimitExperimental: ensureOk(this.disableRateLimit) ?? false, + }; + return result.Result.ok(result$1); + } + get serverConfig() { + if (this.serverConfigCache == null) { + this.serverConfigCache = this.createServerConfig(); + } + return this.serverConfigCache; + } +} + +exports.ServerConfigParser = ServerConfigParser; +//# sourceMappingURL=serverConfigParser.js.map diff --git a/apps/api-server/dist/config/serverConfigParser.js.map b/apps/api-server/dist/config/serverConfigParser.js.map new file mode 100644 index 000000000..15f89ffe8 --- /dev/null +++ b/apps/api-server/dist/config/serverConfigParser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"serverConfigParser.js","sources":["../../src/config/serverConfigParser.ts"],"sourcesContent":[null],"names":["loadDotenv","Result","FLOCON_ADMIN","ACCESS_CONTROL_ALLOW_ORIGIN","AUTO_MIGRATION","DATABASE_URL","EMBUPLOADER_COUNT_QUOTA","EMBUPLOADER_ENABLED","EMBUPLOADER_MAX_SIZE","EMBUPLOADER_SIZE_QUOTA","EMBUPLOADER_PATH","ENTRY_PASSWORD","FIREBASE_ADMIN_SECRET","FIREBASE_PROJECT_ID","FLOCON_API_DISABLE_RATE_LIMIT_EXPERIMENTAL","HEROKU","MYSQL","ROOMHIST_COUNT","POSTGRESQL","SQLITE","env","filterInt","parseStringToBoolean","entryPassword","none","firebaseAdminSecret","FIREBASE_PROJECTID","loggerRef","mysqlDatabase","postgresqlDatabase","sqliteDatabase","parseStringToBooleanError","result"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/config/types.js b/apps/api-server/dist/config/types.js new file mode 100644 index 000000000..53f5b7db7 --- /dev/null +++ b/apps/api-server/dist/config/types.js @@ -0,0 +1,74 @@ +'use strict'; + +var zod = require('zod'); + +const postgresql = 'postgresql'; +const sqlite = 'sqlite'; +const mysql = 'mysql'; +const plain = 'plain'; +const bcrypt = 'bcrypt'; +const none = 'none'; +const driverOptionsConfig = zod.z + .object({ + driverOptions: zod.z.record(zod.z.unknown()), +}) + .partial(); +const clientUrlType = zod.z.object({ + clientUrl: zod.z.string(), +}); +const dbNamePartial = zod.z + .object({ + dbName: zod.z.string(), +}) + .partial(); +const mysqlDatabase = driverOptionsConfig.merge(dbNamePartial).merge(clientUrlType); +const postgresqlDatabase = driverOptionsConfig.merge(dbNamePartial).merge(clientUrlType); +const sqliteDatabaseCore = zod.z.union([ + zod.z.object({ + dbName: zod.z.string(), + clientUrl: zod.z.undefined(), + }), + zod.z.object({ + dbName: zod.z.undefined(), + clientUrl: zod.z.string(), + }), + zod.z.object({ + dbName: zod.z.string(), + clientUrl: zod.z.string(), + }), +]); +const sqliteDatabase = driverOptionsConfig.and(sqliteDatabaseCore); +const firebaseAdminSecret = zod.z + .object({ + client_email: zod.z.string(), + private_key: zod.z.string(), +}) + .merge(zod.z + .object({ + project_id: zod.z.string(), +}) + .partial()); +const entryPassword = zod.z.union([ + zod.z.object({ type: zod.z.literal(none) }), + zod.z.object({ + type: zod.z.union([zod.z.literal(plain), zod.z.literal(bcrypt)]), + value: zod.z.string(), + }), +]); +const json = 'json'; +const $default = 'default'; + +exports.$default = $default; +exports.bcrypt = bcrypt; +exports.entryPassword = entryPassword; +exports.firebaseAdminSecret = firebaseAdminSecret; +exports.json = json; +exports.mysql = mysql; +exports.mysqlDatabase = mysqlDatabase; +exports.none = none; +exports.plain = plain; +exports.postgresql = postgresql; +exports.postgresqlDatabase = postgresqlDatabase; +exports.sqlite = sqlite; +exports.sqliteDatabase = sqliteDatabase; +//# sourceMappingURL=types.js.map diff --git a/apps/api-server/dist/config/types.js.map b/apps/api-server/dist/config/types.js.map new file mode 100644 index 000000000..53474843c --- /dev/null +++ b/apps/api-server/dist/config/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sources":["../../src/config/types.ts"],"sourcesContent":[null],"names":["z"],"mappings":";;;;AAMO,MAAM,UAAU,GAAG;AACnB,MAAM,MAAM,GAAG;AACf,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,GAAG;AACd,MAAM,MAAM,GAAG;AAGf,MAAM,IAAI,GAAG;AAEpB,MAAM,mBAAmB,GAAGA;AACvB,KAAA,MAAM,CAAC;IACJ,aAAa,EAAEA,KAAC,CAAC,MAAM,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;CACvC;AACA,KAAA,OAAO,EAAE;AAEd,MAAM,aAAa,GAAGA,KAAC,CAAC,MAAM,CAAC;AAC3B,IAAA,SAAS,EAAEA,KAAC,CAAC,MAAM,EAAE;AACxB,CAAA,CAAC;AAEF,MAAM,aAAa,GAAGA;AACjB,KAAA,MAAM,CAAC;AACJ,IAAA,MAAM,EAAEA,KAAC,CAAC,MAAM,EAAE;CACrB;AACA,KAAA,OAAO,EAAE;AAEP,MAAM,aAAa,GAAG,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,aAAa;AAIlF,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,aAAa;AAI9F,MAAM,kBAAkB,GAAGA,KAAC,CAAC,KAAK,CAAC;IAC/BA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,MAAM,EAAEA,KAAC,CAAC,MAAM,EAAE;AAClB,QAAA,SAAS,EAAEA,KAAC,CAAC,SAAS,EAAE;KAC3B,CAAC;IACFA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,MAAM,EAAEA,KAAC,CAAC,SAAS,EAAE;AACrB,QAAA,SAAS,EAAEA,KAAC,CAAC,MAAM,EAAE;KACxB,CAAC;IACFA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,MAAM,EAAEA,KAAC,CAAC,MAAM,EAAE;AAClB,QAAA,SAAS,EAAEA,KAAC,CAAC,MAAM,EAAE;KACxB,CAAC;AACL,CAAA,CAAC;AAEW,MAAA,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,kBAAkB;AAIjE,MAAM,mBAAmB,GAAGA;AAC9B,KAAA,MAAM,CAAC;AACJ,IAAA,YAAY,EAAEA,KAAC,CAAC,MAAM,EAAE;AACxB,IAAA,WAAW,EAAEA,KAAC,CAAC,MAAM,EAAE;CAC1B;AACA,KAAA,KAAK,CACFA;AACK,KAAA,MAAM,CAAC;AACJ,IAAA,UAAU,EAAEA,KAAC,CAAC,MAAM,EAAE;CACzB;KACA,OAAO,EAAE;AAKT,MAAA,aAAa,GAAGA,KAAC,CAAC,KAAK,CAAC;AACjC,IAAAA,KAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACnCA,KAAC,CAAC,MAAM,CAAC;QACL,IAAI,EAAEA,KAAC,CAAC,KAAK,CAAC,CAACA,KAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACpD,QAAA,KAAK,EAAEA,KAAC,CAAC,MAAM,EAAE;KACpB,CAAC;AACL,CAAA;AAmDM,MAAM,IAAI,GAAG;AACb,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/connection/main.js b/apps/api-server/dist/connection/main.js new file mode 100644 index 000000000..d83b211dd --- /dev/null +++ b/apps/api-server/dist/connection/main.js @@ -0,0 +1,161 @@ +'use strict'; + +var cache = require('@flocon-trpg/cache'); +var graphqlSubscriptions = require('graphql-subscriptions'); +var WritingMessageStatusType = require('../enums/WritingMessageStatusType.js'); +var topics = require('../graphql/resolvers/subsciptions/roomEvent/topics.js'); +var types = require('../graphql/resolvers/types.js'); + +const pubSub = new graphqlSubscriptions.PubSub(); +class ConnectionIdDatabase { + constructor() { + this.userUidDatabase = cache.createNodeCache({ stdTTL: 60 * 60 * 48 }); + this.roomIdDatabase = cache.createNodeCache({ stdTTL: 60 * 60 * 48 }); + } + async set({ roomId, connectionId, userUid, }) { + await this.userUidDatabase.set(connectionId, userUid); + await this.roomIdDatabase.set(connectionId, roomId); + } + async del({ connectionId, }) { + const userUid = await this.userUidDatabase.getAsString(connectionId); + await this.userUidDatabase.del(connectionId); + const roomId = await this.roomIdDatabase.getAsString(connectionId); + await this.userUidDatabase.del(connectionId); + if (typeof userUid === 'string' && typeof roomId === 'string') { + return { userUid, roomId }; + } + return null; + } +} +class ConnectionCountDatabase { + constructor() { + this.database = cache.createNodeCache({}); + } + async incr({ roomId, userUid }) { + const key = `${roomId}@${userUid}`; + return await this.database.incrby(key, 1); + } + async decr({ roomId, userUid, }) { + const key = `${roomId}@${userUid}`; + const newValue = await this.database.decrby(key, 1); + if (newValue <= 0) { + await this.database.del(key); + return newValue === 0 ? 0 : null; + } + return newValue; + } + async list({ roomId }) { + const result = new Map(); + const keys = await this.database.keys(); + for (const key of keys) { + const split = key.split('@'); + const [roomIdKey, userUid, ...rest] = split; + if (roomIdKey == null || userUid == null || rest.length > 0) { + continue; + } + if (roomIdKey !== roomId) { + continue; + } + const value = await this.database.getAsNumber(key); + if (value == null) { + continue; + } + result.set(userUid, value); + } + return result; + } +} +class WritingMessageStatusDatabase { + constructor() { + this.database = cache.createNodeCache({ stdTTL: 600, maxKeys: 10000, checkperiod: 299 }); + } + async set({ roomId, status, userUid, }) { + const key = `${roomId}@${userUid}`; + const oldValue = await this.database.getAsString(key); + if (oldValue === status && status !== WritingMessageStatusType.WritingMessageStatusType.Writing) { + return null; + } + await this.database.set(key, status); + return status; + } + async onDisconnect({ userUid, roomId, }) { + const keys = await this.database.keys(); + for (const key of keys) { + const split = key.split('@'); + if (split.length !== 2) { + return undefined; + } + const roomIdKey = split[0]; + const userUidKey = split[1]; + if (roomIdKey !== roomId) { + return undefined; + } + if (userUidKey !== userUid) { + return undefined; + } + await this.database.del(key); + } + } +} +class InMemoryConnectionManager { + constructor() { + this.connectionIdDatabase = new ConnectionIdDatabase(); + this.connectionCountDatabase = new ConnectionCountDatabase(); + this.writingMessageStatusDatabase = new WritingMessageStatusDatabase(); + } + async onConnectToRoom({ connectionId, userUid, roomId, }) { + await this.connectionIdDatabase.set({ roomId, connectionId, userUid }); + const newValue = await this.connectionCountDatabase.incr({ roomId, userUid }); + if (newValue !== 1) { + return; + } + const payload = { + type: 'roomConnectionUpdatePayload', + sendTo: types.all, + roomId, + userUid, + isConnected: true, + updatedAt: new Date().getTime(), + }; + await pubSub.publish(topics.ROOM_EVENT, payload); + } + async onLeaveRoom({ connectionId }) { + const deleted = await this.connectionIdDatabase.del({ connectionId }); + if (deleted == null) { + return; + } + const newConnectionCount = await this.connectionCountDatabase.decr(deleted); + if (newConnectionCount !== 0) { + return; + } + const payload1 = { + type: 'roomConnectionUpdatePayload', + sendTo: types.all, + roomId: deleted.roomId, + userUid: deleted.userUid, + isConnected: false, + updatedAt: new Date().getTime(), + }; + await pubSub.publish(topics.ROOM_EVENT, payload1); + await this.writingMessageStatusDatabase.onDisconnect(deleted); + const payload2 = { + type: 'writingMessageStatusUpdatePayload', + sendTo: types.all, + roomId: deleted.roomId, + userUid: deleted.userUid, + status: WritingMessageStatusType.WritingMessageStatusType.Disconnected, + updatedAt: new Date().getTime(), + }; + await pubSub.publish(topics.ROOM_EVENT, payload2); + } + onWritingMessageStatusUpdate(params) { + return this.writingMessageStatusDatabase.set(params); + } + listRoomConnections({ roomId, }) { + return this.connectionCountDatabase.list({ roomId }); + } +} + +exports.InMemoryConnectionManager = InMemoryConnectionManager; +exports.pubSub = pubSub; +//# sourceMappingURL=main.js.map diff --git a/apps/api-server/dist/connection/main.js.map b/apps/api-server/dist/connection/main.js.map new file mode 100644 index 000000000..c1c317e5e --- /dev/null +++ b/apps/api-server/dist/connection/main.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.js","sources":["../../src/connection/main.ts"],"sourcesContent":[null],"names":["PubSub","createNodeCache","WritingMessageStatusType","all","ROOM_EVENT"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/createServer.js b/apps/api-server/dist/createServer.js new file mode 100644 index 000000000..93c72abac --- /dev/null +++ b/apps/api-server/dist/createServer.js @@ -0,0 +1,418 @@ +'use strict'; + +var http = require('http'); +var path = require('path'); +var utils = require('@flocon-trpg/utils'); +var apolloServerExpress = require('apollo-server-express'); +var express = require('express'); +var fs = require('fs-extra'); +var graphql = require('graphql'); +var ws$1 = require('graphql-ws/lib/use/ws'); +var multer = require('multer'); +var pinoHttp = require('pino-http'); +var rateLimiterFlexible = require('rate-limiter-flexible'); +var sanitize = require('sanitize-filename'); +var sharp = require('sharp'); +var ws = require('ws'); +var entity = require('./entities/file/entity.js'); +var entity$1 = require('./entities/user/entity.js'); +var getUserIfEntry = require('./entities/user/getUserIfEntry.js'); +var BaasType = require('./enums/BaasType.js'); +var FilePermissionType = require('./enums/FilePermissionType.js'); +var env = require('./env.js'); +var Html = require('./html/Html.js'); +var consume = require('./rateLimit/consume.js'); +var appConsole = require('./utils/appConsole.js'); +var easyFlake = require('./utils/easyFlake.js'); +var thumbsDir = require('./utils/thumbsDir.js'); + +const set401Status = (res) => { + return res.status(401).setHeader('WWW-Authenticate', 'Bearer'); +}; +const isRoomEventSubscription = (query) => { + const parsedQuery = graphql.parse(query); + return parsedQuery.definitions.some(t => { + if (t.kind !== 'OperationDefinition') { + return false; + } + return t.name?.value.toLowerCase() === 'roomevent'; + }); +}; +const setupIndexAsSuccess = (app) => { + app.get('/', (req, res) => { + res.send(Html.Html.success); + }); +}; +const setupIndexAsError = (app) => { + app.get('/', (req, res) => { + res.send(Html.Html.error); + }); +}; +const loggingPlugin = { + async requestDidStart() { + return { + async didEncounterErrors(requestContext) { + utils.loggerRef.info({ + request: requestContext.request, + response: requestContext.response, + errors: requestContext.errors, + }, 'GraphQL error encountered'); + }, + async willSendResponse(requestContext) { + utils.loggerRef.info({ + request: requestContext.request, + response: requestContext.response, + errors: requestContext.errors, + }, 'GraphQL request completed'); + }, + }; + }, +}; +const createServerAsError = async ({ port }) => { + const app = express(); + setupIndexAsError(app); + const server = app.listen(port, () => { + utils.loggerRef.warn(`⚠️ Server ready at http://localhost:${port}, but API is not working. Please see error messages.`); + }); + return server; +}; +const createServer = async ({ serverConfig, promiseQueue, connectionManager, em, schema, debug, getDecodedIdTokenFromExpressRequest, getDecodedIdTokenFromWsContext, port, quiet, httpServerOptions, }) => { + let rateLimiter = null; + if (!serverConfig.disableRateLimitExperimental) { + rateLimiter = new rateLimiterFlexible.RateLimiterMemory({ + duration: 60, + points: 3000, + }); + } + const context = async (context) => { + return { + decodedIdToken: await getDecodedIdTokenFromExpressRequest(context.req), + rateLimiter, + serverConfig, + promiseQueue, + connectionManager, + em: em.fork(), + authorizedUser: null, + }; + }; + const apolloServer = new apolloServerExpress.ApolloServer({ + schema, + context, + debug, + csrfPrevention: true, + cache: 'bounded', + plugins: [loggingPlugin], + }); + await apolloServer.start(); + const app = express(); + app.use(pinoHttp({ + logger: utils.loggerRef.value, + })); + apolloServer.applyMiddleware({ app }); + if (serverConfig.accessControlAllowOrigin == null) { + if (!quiet) { + appConsole.AppConsole.infoAsNotice({ + en: '"accessControlAllowOrigin" config was not found. "Access-Control-Allow-Origin" header will be empty.', + ja: '"accessControlAllowOrigin" のコンフィグが見つかりませんでした。"Access-Control-Allow-Origin" ヘッダーは空になります。', + }); + } + } + else { + if (!quiet) { + appConsole.AppConsole.infoAsNotice({ + en: `"accessControlAllowOrigin" config was found. "Access-Control-Allow-Origin" header will be "${serverConfig.accessControlAllowOrigin}".`, + ja: `"accessControlAllowOrigin" のコンフィグが見つかりました。"Access-Control-Allow-Origin" ヘッダーは "${serverConfig.accessControlAllowOrigin}" になります。`, + }); + } + const accessControlAllowOrigin = serverConfig.accessControlAllowOrigin; + app.use((req, res, next) => { + res.header('Access-Control-Allow-Origin', accessControlAllowOrigin); + res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization'); + next(); + }); + } + const applyUploader = async () => { + const uploaderConfig = serverConfig.uploader; + if (uploaderConfig == null || !uploaderConfig.enabled) { + if (!quiet) { + appConsole.AppConsole.infoAsNotice({ + en: `The uploader of API server is disabled.`, + ja: `APIサーバーのアップローダーは無効化されています。`, + }); + } + return; + } + const directory = uploaderConfig.directory; + if (directory == null) { + if (!quiet) { + appConsole.AppConsole.warn({ + en: `The uploader of API server is disabled because "${env.EMBUPLOADER_PATH}" is empty.`, + ja: `"${env.EMBUPLOADER_PATH}"の値が空なので、APIサーバーのアップローダーは無効化されています。`, + }); + } + return; + } + if (!quiet) { + appConsole.AppConsole.infoAsNotice({ + en: `The uploader of API server is enabled.`, + ja: `APIサーバーのアップローダーは有効化されています。`, + }); + } + await fs.ensureDir(path.resolve(directory)); + const storage = multer.diskStorage({ + destination: function (req, file, cb) { + cb(null, path.resolve(directory)); + }, + filename: function (req, file, cb) { + cb(null, easyFlake.easyFlake() + path.extname(file.originalname)); + }, + }); + const permission = { + unlisted: 'unlisted', + public: 'public', + }; + app.post('/uploader/upload/:permission', async (req, res, next) => { + switch (req.params.permission) { + case permission.unlisted: + case permission.public: + break; + default: + res.sendStatus(404); + return; + } + const decodedIdToken = await getDecodedIdTokenFromExpressRequest(req); + if (decodedIdToken == null || decodedIdToken.isError) { + set401Status(res).send('Invalid Authorization header'); + return; + } + const rateLimitError = await consume.consume(rateLimiter, decodedIdToken.value.uid, 10); + if (rateLimitError != null) { + res.status(429).send(rateLimitError.errorMessage); + return; + } + const forkedEm = em.fork(); + const userUid = decodedIdToken.value.uid; + const user = await getUserIfEntry.getUserIfEntry({ + em: forkedEm, + userUid, + baasType: BaasType.BaasType.Firebase, + serverConfig, + }); + if (user == null) { + res.status(403).send('Requires entry'); + return; + } + res.locals.user = user; + res.locals.forkedEm = forkedEm; + const [files, filesCount] = await forkedEm.findAndCount(entity.File, { + createdBy: { userUid: user.userUid }, + }); + const upload = multer({ + storage, + limits: { + fileSize: uploaderConfig.maxFileSize, + }, + fileFilter: (req, file, cb) => { + if (uploaderConfig.countQuota != null && + uploaderConfig.countQuota <= filesCount) { + cb(null, false); + res.status(400).send('File count quota exceeded'); + return; + } + const totalSize = files.reduce((seed, elem) => seed + elem.size, 0); + if (uploaderConfig.sizeQuota != null && + uploaderConfig.sizeQuota <= totalSize) { + cb(null, false); + res.status(400).send('File size quota exceeded'); + return; + } + cb(null, true); + }, + }); + upload.single('file')(req, res, next); + }, async (req, res) => { + const forkedEm = res.locals.forkedEm; + const user = res.locals.user; + const file = req.file; + if (file == null) { + res.sendStatus(400); + return; + } + const thumbFileName = `${file.filename}.webp`; + const thumbsDirPath = path.join(path.dirname(file.path), thumbsDir.thumbsDir); + await fs.ensureDir(thumbsDirPath); + const thumbPath = path.join(thumbsDirPath, thumbFileName); + sharp.cache(false); + const thumbnailSaved = await sharp(file.path) + .resize(80) + .webp() + .toFile(thumbPath) + .then(() => true) + .catch((err) => { + utils.loggerRef.debug(err); + return false; + }); + const permissionType = req.params.permission === permission.public + ? FilePermissionType.FilePermissionType.Entry + : FilePermissionType.FilePermissionType.Private; + const entity$1 = forkedEm.create(entity.File, { + ...file, + screenname: file.originalname, + createdBy: user, + thumbFilename: thumbnailSaved ? thumbFileName : undefined, + filesize: file.size, + deletePermission: permissionType, + listPermission: permissionType, + renamePermission: permissionType, + }); + await forkedEm.persistAndFlush(entity$1); + res.sendStatus(200); + }); + app.get('/uploader/:type/:file_name', async (req, res) => { + let typeParam; + switch (req.params.type) { + case 'files': + typeParam = 'files'; + break; + case 'thumbs': + typeParam = 'thumbs'; + break; + default: + res.sendStatus(404); + return; + } + if (directory == null) { + res.status(403).send('Flocon uploader is disabled by server config'); + return; + } + const decodedIdToken = await getDecodedIdTokenFromExpressRequest(req); + if (decodedIdToken == null || decodedIdToken.isError) { + set401Status(res).send('Invalid Authorization header'); + return; + } + const rateLimitError = await consume.consume(rateLimiter, decodedIdToken.value.uid, 5); + if (rateLimitError != null) { + res.status(429).send(rateLimitError.errorMessage); + return; + } + const forkedEm = em.fork(); + const user = await forkedEm.findOne(entity$1.User, { userUid: decodedIdToken.value.uid }); + if (user?.isEntry !== true) { + res.status(403).send('Requires entry'); + return; + } + const filename = sanitize(req.params.file_name); + if (filename !== req.params.file_name) { + res.status(400).send('file_name is invalid'); + return; + } + let filepath; + if (typeParam === 'files') { + const fileCount = await forkedEm.count(entity.File, { filename }); + if (fileCount === 0) { + res.sendStatus(404); + return; + } + filepath = path.join(path.resolve(directory), filename); + } + else { + const fileCount = await forkedEm.count(entity.File, { thumbFilename: filename }); + if (fileCount === 0) { + res.sendStatus(404); + return; + } + filepath = path.join(path.resolve(directory), 'thumbs', filename); + } + res.header('Content-Security-Policy', "default-src 'self'; img-src *; media-src *"); + res.sendFile(filepath, () => { + res.end(); + }); + }); + }; + await applyUploader(); + setupIndexAsSuccess(app); + const httpServer = http.createServer(app); + const subscriptionsPath = '/graphql'; + const wsServer = new ws.Server({ + server: httpServer, + path: subscriptionsPath, + }); + ws$1.useServer({ + schema, + execute: graphql.execute, + subscribe: graphql.subscribe, + context: async (ctx) => { + const decodedIdToken = await getDecodedIdTokenFromWsContext(ctx); + const result = { + decodedIdToken, + rateLimiter, + serverConfig, + promiseQueue, + connectionManager, + em: em.fork(), + authorizedUser: null, + }; + return result; + }, + onSubscribe: async (ctx, message) => { + utils.loggerRef.info({ message }, 'graphql-ws onSubscribe'); + if (!isRoomEventSubscription(message.payload.query)) { + return; + } + const decodedIdToken = await getDecodedIdTokenFromWsContext(ctx); + if (decodedIdToken?.isError !== false) { + return; + } + const roomId = message.payload.variables?.id; + if (typeof roomId === 'string') { + await connectionManager.onConnectToRoom({ + connectionId: message.id, + userUid: decodedIdToken.value.uid, + roomId, + }); + } + else { + utils.loggerRef.warn('(typeof RoomEvent.id) should be string'); + } + }, + onNext(ctx, message, args, result) { + utils.loggerRef.info({ message, result }, 'graphql-ws onNext'); + }, + onComplete: (ctx, message) => { + utils.loggerRef.info({ message }, 'graphql-ws onComplete'); + return connectionManager.onLeaveRoom({ connectionId: message.id }); + }, + onClose: async (ctx, code, reason) => { + utils.loggerRef.info({ code, reason }, 'graphql-ws onClose'); + for (const key in ctx.subscriptions) { + await connectionManager.onLeaveRoom({ connectionId: key }); + } + }, + }, wsServer); + if (httpServerOptions?.keepAliveTimeout != null) { + httpServer.keepAliveTimeout = httpServerOptions.keepAliveTimeout; + } + const server = httpServer.listen(port, () => { + if (!quiet) { + utils.loggerRef.infoAsNotice(`🚀 Server ready at http://localhost:${port}${apolloServer.graphqlPath}`); + utils.loggerRef.infoAsNotice(`🚀 Subscriptions ready at ws://localhost:${port}${subscriptionsPath}`); + } + }); + const close = async () => { + await new Promise((resolve, reject) => { + server.close(err => { + if (err == null) { + resolve(undefined); + return; + } + reject(err); + }); + }); + await apolloServer.stop(); + }; + return { close }; +}; + +exports.createServer = createServer; +exports.createServerAsError = createServerAsError; +//# sourceMappingURL=createServer.js.map diff --git a/apps/api-server/dist/createServer.js.map b/apps/api-server/dist/createServer.js.map new file mode 100644 index 000000000..1454940bf --- /dev/null +++ b/apps/api-server/dist/createServer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"createServer.js","sources":["../src/createServer.ts"],"sourcesContent":[null],"names":["parse","Html","loggerRef","RateLimiterMemory","ApolloServer","AppConsole","EMBUPLOADER_PATH","ensureDir","easyFlake","consume","getUserIfEntry","BaasType","File","thumbsDir","FilePermissionType","entity","User","createHttpServer","useServer","execute","subscribe"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/entities-graphql/room.js b/apps/api-server/dist/entities-graphql/room.js new file mode 100644 index 000000000..57a1482ad --- /dev/null +++ b/apps/api-server/dist/entities-graphql/room.js @@ -0,0 +1,252 @@ +'use strict'; + +var FilePathModule = require('@flocon-trpg/core'); +var utils = require('@flocon-trpg/utils'); +var result = require('@kizahasi/result'); +var core = require('@mikro-orm/core'); +var entity = require('../entities/participant/entity.js'); +var entity$1 = require('../entities/room/entity.js'); +var entity$2 = require('../entities/user/entity.js'); +var ParticipantRoleType = require('../enums/ParticipantRoleType.js'); +var convertToMaxLength100String = require('../utils/convertToMaxLength100String.js'); + +const isSequential = (array, getIndex) => { + const sorted = array + .map(value => ({ index: getIndex(value), value })) + .sort((x, y) => x.index - y.index); + if (!utils.isReadonlyNonEmptyArray(sorted)) { + throw new Error('this should not happen'); + } + const minIndex = sorted[0].index; + let maxIndex = minIndex; + let previousElement = null; + for (const elem of sorted) { + if (previousElement != null) { + if (elem.index === previousElement.index) { + return { type: 'DuplicateElement' }; + } + if (elem.index - previousElement.index !== 1) { + return { + type: 'NotSequential', + minIndex, + }; + } + } + maxIndex = elem.index; + previousElement = elem; + } + return { + type: 'Sequential', + minIndex, + maxIndex, + sortedResult: sorted, + }; +}; +exports.GlobalRoom = void 0; +(function (GlobalRoom) { + (function (MikroORM) { + (function (ToGlobal) { + ToGlobal.state = async (roomEntity, em) => { + const result = FilePathModule.decodeDbState(roomEntity.value); + const participants = {}; + const participantEntities = await em.find(entity.Participant, { + room: { id: roomEntity.id }, + }); + for (const participantEntity of participantEntities) { + const name = participantEntity?.name; + const userUid = await participantEntity.user.loadProperty('userUid'); + participants[userUid] = { + $v: 2, + $r: 1, + name: name == null ? undefined : convertToMaxLength100String.convertToMaxLength100String(name), + role: participantEntity?.role, + }; + } + return { + ...result, + createdBy: roomEntity.createdBy, + name: roomEntity.name, + participants, + }; + }; + const downOperation = (entity) => { + const result = FilePathModule.decodeDownOperation(entity.value); + return result; + }; + ToGlobal.downOperationMany = async ({ em, roomId, revisionRange, }) => { + if (revisionRange.expectedTo != null) { + if (revisionRange.from > revisionRange.expectedTo) { + throw new Error('Must be "revisionRange.from > revisionRange.expectedTo"'); + } + if (revisionRange.from === revisionRange.expectedTo) { + return result.Result.ok(undefined); + } + } + const operationEntities = await em.find(entity$1.RoomOp, { + room: { id: roomId }, + prevRevision: { $gte: revisionRange.from }, + }); + if (!utils.isReadonlyNonEmptyArray(operationEntities)) { + if (revisionRange.expectedTo == null) { + return result.Result.ok(undefined); + } + return result.Result.error('Some operations are not found. Maybe your request is too old, or ROOMHIST_COUNT is too small?'); + } + if (revisionRange.expectedTo != null) { + const expectedOperationEntitiesLength = revisionRange.expectedTo - revisionRange.from; + if (expectedOperationEntitiesLength < operationEntities.length) { + return result.Result.error('There are duplicate operations. Multiple apps tried to update same database simultaneously?'); + } + if (expectedOperationEntitiesLength > operationEntities.length) { + return result.Result.error('Some operations are not found. Maybe your request is too old, or ROOMHIST_COUNT is too small?'); + } + } + const isSequentialResult = isSequential(operationEntities, o => o.prevRevision); + if (isSequentialResult.type === 'NotSequential') { + return result.Result.error('There are missing operations. Multiple apps tried to update same database simultaneously?'); + } + if (isSequentialResult.type === 'DuplicateElement') { + return result.Result.error('There are duplicate operations. Multiple apps tried to update same database simultaneously?'); + } + const sortedOperationEntities = operationEntities.sort((x, y) => x.prevRevision - y.prevRevision); + let operation = sortedOperationEntities.length === 0 + ? undefined + : downOperation(sortedOperationEntities[0]); + for (const model of sortedOperationEntities) { + const second = downOperation(model); + if (operation === undefined) { + operation = second; + continue; + } + const composed = FilePathModule.composeDownOperation(FilePathModule.roomTemplate)({ + first: operation, + second, + }); + if (composed.isError) { + return composed; + } + operation = composed.value; + } + return result.Result.ok(operation); + }; + })(MikroORM.ToGlobal || (MikroORM.ToGlobal = {})); + })(GlobalRoom.MikroORM || (GlobalRoom.MikroORM = {})); + (function (Global) { + (function (ToGraphQL) { + ToGraphQL.state = ({ source, requestedBy, }) => { + return { + stateJson: FilePathModule.stringifyState(FilePathModule.toClientState(requestedBy)(source)), + }; + }; + ToGraphQL.operation = ({ prevState, nextState, requestedBy, }) => { + const prevClientState = FilePathModule.toClientState(requestedBy)(prevState); + const nextClientState = FilePathModule.toClientState(requestedBy)(nextState); + const diffOperation = FilePathModule.diff(FilePathModule.roomTemplate)({ + prevState: prevClientState, + nextState: nextClientState, + }); + const upOperation = diffOperation == null ? undefined : FilePathModule.toUpOperation(FilePathModule.roomTemplate)(diffOperation); + return FilePathModule.stringifyUpOperation(upOperation ?? { $v: 2, $r: 1 }); + }; + })(Global.ToGraphQL || (Global.ToGraphQL = {})); + class EnsureParticipantEntity { + constructor(em, room, participantKey) { + this.em = em; + this.room = room; + this.participantKey = participantKey; + this.participantEntity = null; + } + async get() { + if (this.participantEntity == null) { + this.participantEntity = await this.em.findOne(entity.Participant, { + room: { id: this.room.id }, + user: { userUid: this.participantKey }, + }); + if (this.participantEntity == null) { + const user = await this.em.findOne(entity$2.User, { userUid: this.participantKey }); + if (user == null) { + throw new Error(`Tried to apply a Participant entity, but User was not found. roomId: ${this.room.id}, participantKey:${this.participantKey}`); + } + this.participantEntity = new entity.Participant(); + this.room.participants.add(this.participantEntity); + user.participants.add(this.participantEntity); + this.em.persist(this.participantEntity); + } + } + return this.participantEntity; + } + } + const maxJsonLength = 1000000; + Global.applyToEntity = async ({ em, target, prevState, operation, }) => { + const nextState = FilePathModule.apply(FilePathModule.roomTemplate)({ + state: prevState, + operation: FilePathModule.toUpOperation(FilePathModule.roomTemplate)(operation), + }); + if (nextState.isError) { + throw FilePathModule.toOtError(nextState.error); + } + target.name = nextState.value.name; + const newValue = FilePathModule.exactDbState(nextState.value); + const newValueJson = JSON.stringify(newValue); + if (newValueJson.length > maxJsonLength) { + const oldValue = target.value; + const oldValueJson = JSON.stringify(oldValue); + if (oldValueJson.length < maxJsonLength) { + throw new Error('value size limit exceeded'); + } + } + target.value = newValue; + const prevRevision = target.revision; + target.revision += 1; + target.completeUpdatedAt = new Date(); + await utils.recordForEachAsync(operation.participants ?? {}, async (participant, participantKey) => { + const ensureEntity = new EnsureParticipantEntity(em, target, participantKey); + if (participant.type === FilePathModule.update) { + if (participant.update.name != null) { + (await ensureEntity.get()).name = + participant.update.name.newValue ?? undefined; + } + if (participant.update.role != null) { + (await ensureEntity.get()).role = + ParticipantRoleType.nullableStringToParticipantRoleType(participant.update.role.newValue) ?? undefined; + } + return; + } + if (participant.replace.newValue == null) { + em.remove(await ensureEntity.get()); + return; + } + const newParticipant = await ensureEntity.get(); + newParticipant.name = participant.replace.newValue.name ?? undefined; + newParticipant.role = + ParticipantRoleType.nullableStringToParticipantRoleType(participant.replace.newValue.role) ?? + undefined; + }); + const op = new entity$1.RoomOp({ + prevRevision, + value: FilePathModule.toDownOperation(FilePathModule.roomTemplate)(operation), + }); + op.room = core.ref(target); + em.persist(op); + return nextState.value; + }; + Global.cleanOldRoomOp = async ({ em, room, roomHistCount, }) => { + if (roomHistCount == null || roomHistCount < 0) { + return; + } + const toRemove = await em.find(entity$1.RoomOp, { + room: { id: room.id }, + prevRevision: { $lt: room.revision - roomHistCount }, + }); + if (toRemove.length === 0) { + return; + } + await room.roomOperations.init(); + for (const tr of toRemove) { + em.remove(tr); + room.roomOperations.remove(tr); + } + }; + })(GlobalRoom.Global || (GlobalRoom.Global = {})); +})(exports.GlobalRoom || (exports.GlobalRoom = {})); +//# sourceMappingURL=room.js.map diff --git a/apps/api-server/dist/entities-graphql/room.js.map b/apps/api-server/dist/entities-graphql/room.js.map new file mode 100644 index 000000000..5f0efdc7c --- /dev/null +++ b/apps/api-server/dist/entities-graphql/room.js.map @@ -0,0 +1 @@ +{"version":3,"file":"room.js","sources":["../../src/entities-graphql/room.ts"],"sourcesContent":[null],"names":["isReadonlyNonEmptyArray","GlobalRoom","decodeDbState","Participant","convertToMaxLength100String","decodeDownOperation","Result","RoomOp","composeDownOperation","roomTemplate","stringifyState","toClientState","diff","toUpOperation","stringifyUpOperation","User","apply","toOtError","exactDbState","recordForEachAsync","update","nullableStringToParticipantRoleType","toDownOperation","ref"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/entities-graphql/roomAsListItem.js b/apps/api-server/dist/entities-graphql/roomAsListItem.js new file mode 100644 index 000000000..54871a679 --- /dev/null +++ b/apps/api-server/dist/entities-graphql/roomAsListItem.js @@ -0,0 +1,19 @@ +'use strict'; + +var isBookmarked = require('../entities/room/isBookmarked.js'); +var role = require('../entities/room/role.js'); + +const stateToGraphQL = async ({ roomEntity, myUserUid, }) => { + return { + ...roomEntity, + createdAt: roomEntity.createdAt?.getTime(), + updatedAt: roomEntity.completeUpdatedAt?.getTime(), + requiresPlayerPassword: roomEntity.playerPasswordHash != null, + requiresSpectatorPassword: roomEntity.spectatorPasswordHash != null, + role: await role.role({ roomEntity, myUserUid }), + isBookmarked: await isBookmarked.isBookmarked({ roomEntity, myUserUid }), + }; +}; + +exports.stateToGraphQL = stateToGraphQL; +//# sourceMappingURL=roomAsListItem.js.map diff --git a/apps/api-server/dist/entities-graphql/roomAsListItem.js.map b/apps/api-server/dist/entities-graphql/roomAsListItem.js.map new file mode 100644 index 000000000..cbbab27b2 --- /dev/null +++ b/apps/api-server/dist/entities-graphql/roomAsListItem.js.map @@ -0,0 +1 @@ +{"version":3,"file":"roomAsListItem.js","sources":["../../src/entities-graphql/roomAsListItem.ts"],"sourcesContent":[null],"names":["role","isBookmarked"],"mappings":";;;;;AAKO,MAAM,cAAc,GAAG,OAAO,EACjC,UAAU,EACV,SAAS,GAIZ,KAA6B;IAC1B,OAAO;AACH,QAAA,GAAG,UAAU;AACb,QAAA,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE;AAC1C,QAAA,SAAS,EAAE,UAAU,CAAC,iBAAiB,EAAE,OAAO,EAAE;AAClD,QAAA,sBAAsB,EAAE,UAAU,CAAC,kBAAkB,IAAI,IAAI;AAC7D,QAAA,yBAAyB,EAAE,UAAU,CAAC,qBAAqB,IAAI,IAAI;QACnE,IAAI,EAAE,MAAMA,SAAI,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QAC3C,YAAY,EAAE,MAAMC,yBAAY,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;KAC9D;AACL;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/entities-graphql/roomMessage.js b/apps/api-server/dist/entities-graphql/roomMessage.js new file mode 100644 index 000000000..157e95a93 --- /dev/null +++ b/apps/api-server/dist/entities-graphql/roomMessage.js @@ -0,0 +1,41 @@ +'use strict'; + +var FilePathModule = require('@flocon-trpg/core'); +var PieceLogType = require('../enums/PieceLogType.js'); +var roomMessage = require('../graphql/objects/roomMessage.js'); + +exports.DicePieceLog = void 0; +(function (DicePieceLog) { + (function (MikroORM) { + (function (ToGraphQL) { + ToGraphQL.state = (entity) => { + return { + __tstype: roomMessage.PieceLogType, + messageId: entity.id, + stateId: entity.stateId, + createdAt: entity.createdAt.getTime(), + logType: PieceLogType.PieceLogType.Dice, + valueJson: JSON.stringify(FilePathModule.decodeDicePiece(entity.value)), + }; + }; + })(MikroORM.ToGraphQL || (MikroORM.ToGraphQL = {})); + })(DicePieceLog.MikroORM || (DicePieceLog.MikroORM = {})); +})(exports.DicePieceLog || (exports.DicePieceLog = {})); +exports.StringPieceLog = void 0; +(function (StringPieceLog) { + (function (MikroORM) { + (function (ToGraphQL) { + ToGraphQL.state = (entity) => { + return { + __tstype: roomMessage.PieceLogType, + messageId: entity.id, + stateId: entity.stateId, + createdAt: entity.createdAt.getTime(), + logType: PieceLogType.PieceLogType.String, + valueJson: JSON.stringify(FilePathModule.decodeStringPiece(entity.value)), + }; + }; + })(MikroORM.ToGraphQL || (MikroORM.ToGraphQL = {})); + })(StringPieceLog.MikroORM || (StringPieceLog.MikroORM = {})); +})(exports.StringPieceLog || (exports.StringPieceLog = {})); +//# sourceMappingURL=roomMessage.js.map diff --git a/apps/api-server/dist/entities-graphql/roomMessage.js.map b/apps/api-server/dist/entities-graphql/roomMessage.js.map new file mode 100644 index 000000000..a1299154a --- /dev/null +++ b/apps/api-server/dist/entities-graphql/roomMessage.js.map @@ -0,0 +1 @@ +{"version":3,"file":"roomMessage.js","sources":["../../src/entities-graphql/roomMessage.ts"],"sourcesContent":[null],"names":["DicePieceLog","PieceLogType","PieceLogTypeEnum","decodeDicePiece","StringPieceLog","decodeStringPiece"],"mappings":";;;;;;AASiBA;AAAjB,CAAA,UAAiB,YAAY,EAAA;AACzB,IAAA,CAAA,UAAiB,QAAQ,EAAA;AACrB,QAAA,CAAA,UAAiB,SAAS,EAAA;AACT,YAAA,SAAA,CAAA,KAAK,GAAG,CAAC,MAA6B,KAAc;gBAC7D,OAAO;AACH,oBAAA,QAAQ,EAAEC,wBAAY;oBACtB,SAAS,EAAE,MAAM,CAAC,EAAE;oBACpB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,oBAAA,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;oBACrC,OAAO,EAAEC,yBAAgB,CAAC,IAAI;oBAC9B,SAAS,EAAE,IAAI,CAAC,SAAS,CAACC,8BAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC3D;AACL,aAAC;AACL,SAAC,EAXgB,QAAS,CAAA,SAAA,KAAT,kBAAS,GAWzB,EAAA,CAAA,CAAA;AACL,KAAC,EAbgB,YAAQ,CAAA,QAAA,KAAR,qBAAQ,GAaxB,EAAA,CAAA,CAAA;AACL,CAAC,EAfgBH,oBAAY,KAAZA,oBAAY,GAe5B,EAAA,CAAA,CAAA;AAEgBI;AAAjB,CAAA,UAAiB,cAAc,EAAA;AAC3B,IAAA,CAAA,UAAiB,QAAQ,EAAA;AACrB,QAAA,CAAA,UAAiB,SAAS,EAAA;AACT,YAAA,SAAA,CAAA,KAAK,GAAG,CAAC,MAA+B,KAAc;gBAC/D,OAAO;AACH,oBAAA,QAAQ,EAAEH,wBAAY;oBACtB,SAAS,EAAE,MAAM,CAAC,EAAE;oBACpB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,oBAAA,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;oBACrC,OAAO,EAAEC,yBAAgB,CAAC,MAAM;oBAChC,SAAS,EAAE,IAAI,CAAC,SAAS,CAACG,gCAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC7D;AACL,aAAC;AACL,SAAC,EAXgB,QAAS,CAAA,SAAA,KAAT,kBAAS,GAWzB,EAAA,CAAA,CAAA;AACL,KAAC,EAbgB,cAAQ,CAAA,QAAA,KAAR,uBAAQ,GAaxB,EAAA,CAAA,CAAA;AACL,CAAC,EAfgBD,sBAAc,KAAdA,sBAAc,GAe9B,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/entities/file/entity.js b/apps/api-server/dist/entities/file/entity.js new file mode 100644 index 000000000..bf4154598 --- /dev/null +++ b/apps/api-server/dist/entities/file/entity.js @@ -0,0 +1,88 @@ +'use strict'; + +var tslib = require('tslib'); +var core = require('@mikro-orm/core'); +require('../../enums/FilePermissionType.js'); +var entity$1 = require('../fileTag/entity.js'); +var entity = require('../user/entity.js'); + +exports.File = class File { + constructor({ createdBy, deletePermission, encoding, filename, filesize, listPermission, thumbFilename, mimetype, renamePermission, screenname, size, }) { + this.fileTags = new core.Collection(this); + this.createdBy = createdBy; + this.deletePermission = deletePermission; + this.encoding = encoding; + this.filename = filename; + this.filesize = filesize; + this.listPermission = listPermission; + this.thumbFilename = thumbFilename; + this.mimetype = mimetype; + this.renamePermission = renamePermission; + this.screenname = screenname; + this.size = size; + } +}; +tslib.__decorate([ + core.PrimaryKey(), + tslib.__metadata("design:type", String) +], exports.File.prototype, "filename", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType }), + tslib.__metadata("design:type", String) +], exports.File.prototype, "screenname", void 0); +tslib.__decorate([ + core.Property({ type: Date, nullable: true, onCreate: () => new Date() }), + core.Index(), + tslib.__metadata("design:type", Date) +], exports.File.prototype, "createdAt", void 0); +tslib.__decorate([ + core.Property(), + tslib.__metadata("design:type", String) +], exports.File.prototype, "encoding", void 0); +tslib.__decorate([ + core.Property(), + tslib.__metadata("design:type", Number) +], exports.File.prototype, "size", void 0); +tslib.__decorate([ + core.Property({ nullable: true }), + core.Index(), + tslib.__metadata("design:type", String) +], exports.File.prototype, "thumbFilename", void 0); +tslib.__decorate([ + core.Property(), + core.Index(), + tslib.__metadata("design:type", String) +], exports.File.prototype, "mimetype", void 0); +tslib.__decorate([ + core.Property(), + core.Index(), + tslib.__metadata("design:type", Number) +], exports.File.prototype, "filesize", void 0); +tslib.__decorate([ + core.Property({ type: 'string' }), + core.Index(), + tslib.__metadata("design:type", String) +], exports.File.prototype, "listPermission", void 0); +tslib.__decorate([ + core.Property({ type: 'string' }), + core.Index(), + tslib.__metadata("design:type", String) +], exports.File.prototype, "renamePermission", void 0); +tslib.__decorate([ + core.Property({ type: 'string' }), + core.Index(), + tslib.__metadata("design:type", String) +], exports.File.prototype, "deletePermission", void 0); +tslib.__decorate([ + core.ManyToOne(() => entity.User, { ref: true }), + tslib.__metadata("design:type", Object) +], exports.File.prototype, "createdBy", void 0); +tslib.__decorate([ + core.ManyToMany(() => entity$1.FileTag, x => x.files, { owner: true }), + tslib.__metadata("design:type", Object) +], exports.File.prototype, "fileTags", void 0); +exports.File = tslib.__decorate([ + core.Entity(), + tslib.__metadata("design:paramtypes", [Object]) +], exports.File); +//# sourceMappingURL=entity.js.map diff --git a/apps/api-server/dist/entities/file/entity.js.map b/apps/api-server/dist/entities/file/entity.js.map new file mode 100644 index 000000000..382ffe92b --- /dev/null +++ b/apps/api-server/dist/entities/file/entity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"entity.js","sources":["../../../src/entities/file/entity.ts"],"sourcesContent":[null],"names":["File","Collection","__decorate","PrimaryKey","Property","TextType","Index","ManyToOne","User","ManyToMany","FileTag","Entity"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/entities/fileTag/entity.js b/apps/api-server/dist/entities/fileTag/entity.js new file mode 100644 index 000000000..7c5fedb08 --- /dev/null +++ b/apps/api-server/dist/entities/fileTag/entity.js @@ -0,0 +1,36 @@ +'use strict'; + +var tslib = require('tslib'); +var core = require('@mikro-orm/core'); +var uuid = require('uuid'); +var entity$1 = require('../file/entity.js'); +var entity = require('../user/entity.js'); + +exports.FileTag = class FileTag { + constructor({ name }) { + this.id = uuid.v4(); + this.files = new core.Collection(this); + this.name = name; + } +}; +tslib.__decorate([ + core.PrimaryKey(), + tslib.__metadata("design:type", String) +], exports.FileTag.prototype, "id", void 0); +tslib.__decorate([ + core.Property(), + tslib.__metadata("design:type", String) +], exports.FileTag.prototype, "name", void 0); +tslib.__decorate([ + core.ManyToOne(() => entity.User, { ref: true }), + tslib.__metadata("design:type", Object) +], exports.FileTag.prototype, "user", void 0); +tslib.__decorate([ + core.ManyToMany(() => entity$1.File, x => x.fileTags), + tslib.__metadata("design:type", Object) +], exports.FileTag.prototype, "files", void 0); +exports.FileTag = tslib.__decorate([ + core.Entity(), + tslib.__metadata("design:paramtypes", [Object]) +], exports.FileTag); +//# sourceMappingURL=entity.js.map diff --git a/apps/api-server/dist/entities/fileTag/entity.js.map b/apps/api-server/dist/entities/fileTag/entity.js.map new file mode 100644 index 000000000..4aa16b379 --- /dev/null +++ b/apps/api-server/dist/entities/fileTag/entity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"entity.js","sources":["../../../src/entities/fileTag/entity.ts"],"sourcesContent":[null],"names":["FileTag","v4","Collection","__decorate","PrimaryKey","Property","ManyToOne","User","ManyToMany","File","Entity"],"mappings":";;;;;;;;AAeaA,eAAO,GAAb,MAAM,OAAO,CAAA;IAChB,WAAmB,CAAA,EAAE,IAAI,EAAoB,EAAA;QAKtC,IAAE,CAAA,EAAA,GAAWC,OAAE,EAAE;AASjB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAIC,eAAU,CAAO,IAAI,CAAC;AAbrC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;;AAIbC,gBAAA,CAAA;AADN,IAAAC,eAAU,EAAE;;AACY,CAAA,EAAAJ,eAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAGlBG,gBAAA,CAAA;AADN,IAAAE,aAAQ,EAAE;;AACU,CAAA,EAAAL,eAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAGdG,gBAAA,CAAA;IADNG,cAAS,CAAC,MAAMC,WAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;;AACb,CAAA,EAAAP,eAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAGjBG,gBAAA,CAAA;AADN,IAAAK,eAAU,CAAC,MAAMC,aAAI,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;;AACE,CAAA,EAAAT,eAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAfjCA,eAAO,GAAAG,gBAAA,CAAA;AADnB,IAAAO,WAAM,EAAE;;AACI,CAAA,EAAAV,eAAO,CAgBnB;;"} \ No newline at end of file diff --git a/apps/api-server/dist/entities/participant/entity.js b/apps/api-server/dist/entities/participant/entity.js new file mode 100644 index 000000000..de0b500f9 --- /dev/null +++ b/apps/api-server/dist/entities/participant/entity.js @@ -0,0 +1,39 @@ +'use strict'; + +var tslib = require('tslib'); +var core = require('@mikro-orm/core'); +var uuid = require('uuid'); +require('../../enums/ParticipantRoleType.js'); +var entity = require('../room/entity.js'); +var entity$1 = require('../user/entity.js'); + +exports.Participant = class Participant { + constructor() { + this.id = uuid.v4(); + } +}; +tslib.__decorate([ + core.PrimaryKey(), + tslib.__metadata("design:type", String) +], exports.Participant.prototype, "id", void 0); +tslib.__decorate([ + core.Property({ type: 'string', index: true, nullable: true }), + tslib.__metadata("design:type", String) +], exports.Participant.prototype, "role", void 0); +tslib.__decorate([ + core.Property({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.Participant.prototype, "name", void 0); +tslib.__decorate([ + core.ManyToOne(() => entity.Room, { ref: true }), + tslib.__metadata("design:type", Object) +], exports.Participant.prototype, "room", void 0); +tslib.__decorate([ + core.ManyToOne(() => entity$1.User, { ref: true }), + tslib.__metadata("design:type", Object) +], exports.Participant.prototype, "user", void 0); +exports.Participant = tslib.__decorate([ + core.Entity(), + core.Unique({ properties: ['room', 'user'] }) +], exports.Participant); +//# sourceMappingURL=entity.js.map diff --git a/apps/api-server/dist/entities/participant/entity.js.map b/apps/api-server/dist/entities/participant/entity.js.map new file mode 100644 index 000000000..07a17747e --- /dev/null +++ b/apps/api-server/dist/entities/participant/entity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"entity.js","sources":["../../../src/entities/participant/entity.ts"],"sourcesContent":[null],"names":["Participant","v4","__decorate","PrimaryKey","Property","ManyToOne","Room","User","Entity","Unique"],"mappings":";;;;;;;;;AAUaA,mBAAW,GAAjB,MAAM,WAAW,CAAA;AAAjB,IAAA,WAAA,GAAA;QAEI,IAAE,CAAA,EAAA,GAAWC,OAAE,EAAE;;;AAAjBC,gBAAA,CAAA;AADN,IAAAC,eAAU,EAAE;;AACY,CAAA,EAAAH,mBAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAGlBE,gBAAA,CAAA;AADN,IAAAE,aAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACxB,CAAA,EAAAJ,mBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAG3BE,gBAAA,CAAA;AADN,IAAAE,aAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACR,CAAA,EAAAJ,mBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAGdE,gBAAA,CAAA;IADNG,cAAS,CAAC,MAAMC,WAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;;AACb,CAAA,EAAAN,mBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAGjBE,gBAAA,CAAA;IADNG,cAAS,CAAC,MAAME,aAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;;AACb,CAAA,EAAAP,mBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAdfA,mBAAW,GAAAE,gBAAA,CAAA;AAFvB,IAAAM,WAAM,EAAE;IACRC,WAAM,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;AAC3B,CAAA,EAAAT,mBAAW,CAevB;;"} \ No newline at end of file diff --git a/apps/api-server/dist/entities/room/entity.js b/apps/api-server/dist/entities/room/entity.js new file mode 100644 index 000000000..d955e664e --- /dev/null +++ b/apps/api-server/dist/entities/room/entity.js @@ -0,0 +1,177 @@ +'use strict'; + +var tslib = require('tslib'); +var core = require('@mikro-orm/core'); +var uuid = require('uuid'); +var easyFlake = require('../../utils/easyFlake.js'); +var entity = require('../participant/entity.js'); +var entity$1 = require('../roomMessage/entity.js'); +var entity$2 = require('../user/entity.js'); + +exports.Room = class Room { + constructor({ createdBy, name, value, }) { + this.id = easyFlake.easyFlake(); + this.version = 1; + this.revision = 0; + this.participants = new core.Collection(this); + this.roomOperations = new core.Collection(this); + this.roomChatChs = new core.Collection(this); + this.roomPrvMsgs = new core.Collection(this); + this.dicePieceLogs = new core.Collection(this); + this.stringPieceLogs = new core.Collection(this); + this.roomSes = new core.Collection(this); + this.bookmarkedBy = new core.Collection(this); + this.createdBy = createdBy; + this.name = name; + this.value = value; + } +}; +tslib.__decorate([ + core.PrimaryKey(), + tslib.__metadata("design:type", String) +], exports.Room.prototype, "id", void 0); +tslib.__decorate([ + core.Property({ version: true, index: true }), + tslib.__metadata("design:type", Number) +], exports.Room.prototype, "version", void 0); +tslib.__decorate([ + core.Property({ type: Date, nullable: true, onCreate: () => new Date(), index: true }), + tslib.__metadata("design:type", Date) +], exports.Room.prototype, "createdAt", void 0); +tslib.__decorate([ + core.Property({ type: Date, nullable: true, onUpdate: () => new Date(), index: true }), + tslib.__metadata("design:type", Date) +], exports.Room.prototype, "updatedAt", void 0); +tslib.__decorate([ + core.Property({ type: Date, nullable: true, index: true }), + tslib.__metadata("design:type", Date) +], exports.Room.prototype, "completeUpdatedAt", void 0); +tslib.__decorate([ + core.Property({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.Room.prototype, "playerPasswordHash", void 0); +tslib.__decorate([ + core.Property({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.Room.prototype, "spectatorPasswordHash", void 0); +tslib.__decorate([ + core.Property({ index: true }), + tslib.__metadata("design:type", String) +], exports.Room.prototype, "createdBy", void 0); +tslib.__decorate([ + core.Property(), + tslib.__metadata("design:type", String) +], exports.Room.prototype, "name", void 0); +tslib.__decorate([ + core.Property({ type: core.JsonType }), + tslib.__metadata("design:type", Object) +], exports.Room.prototype, "value", void 0); +tslib.__decorate([ + core.Property(), + tslib.__metadata("design:type", Number) +], exports.Room.prototype, "revision", void 0); +tslib.__decorate([ + core.OneToMany(() => entity.Participant, x => x.room, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.Room.prototype, "participants", void 0); +tslib.__decorate([ + core.OneToMany(() => exports.RoomOp, x => x.room, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.Room.prototype, "roomOperations", void 0); +tslib.__decorate([ + core.OneToMany(() => entity$1.RoomPubCh, x => x.room, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.Room.prototype, "roomChatChs", void 0); +tslib.__decorate([ + core.OneToMany(() => entity$1.RoomPrvMsg, x => x.room, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.Room.prototype, "roomPrvMsgs", void 0); +tslib.__decorate([ + core.OneToMany(() => entity$1.DicePieceLog, x => x.room, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.Room.prototype, "dicePieceLogs", void 0); +tslib.__decorate([ + core.OneToMany(() => entity$1.StringPieceLog, x => x.room, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.Room.prototype, "stringPieceLogs", void 0); +tslib.__decorate([ + core.OneToMany(() => entity$1.RoomSe, x => x.room, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.Room.prototype, "roomSes", void 0); +tslib.__decorate([ + core.ManyToMany(() => entity$2.User, user => user.bookmarkedRooms), + tslib.__metadata("design:type", Object) +], exports.Room.prototype, "bookmarkedBy", void 0); +exports.Room = tslib.__decorate([ + core.Entity(), + tslib.__metadata("design:paramtypes", [Object]) +], exports.Room); +exports.RoomOp = class RoomOp { + constructor({ prevRevision, value, }) { + this.id = uuid.v4(); + this.prevRevision = prevRevision; + this.value = value; + } +}; +tslib.__decorate([ + core.PrimaryKey(), + tslib.__metadata("design:type", String) +], exports.RoomOp.prototype, "id", void 0); +tslib.__decorate([ + core.Property({ + type: Date, + nullable: true, + onCreate: () => new Date(), + index: true, + default: null, + }), + tslib.__metadata("design:type", Date) +], exports.RoomOp.prototype, "createdAt", void 0); +tslib.__decorate([ + core.Property({ index: true }), + tslib.__metadata("design:type", Number) +], exports.RoomOp.prototype, "prevRevision", void 0); +tslib.__decorate([ + core.Property({ type: core.JsonType }), + tslib.__metadata("design:type", Object) +], exports.RoomOp.prototype, "value", void 0); +tslib.__decorate([ + core.ManyToOne(() => exports.Room, { ref: true }), + tslib.__metadata("design:type", Object) +], exports.RoomOp.prototype, "room", void 0); +exports.RoomOp = tslib.__decorate([ + core.Entity(), + core.Unique({ properties: ['prevRevision', 'room'] }), + tslib.__metadata("design:paramtypes", [Object]) +], exports.RoomOp); +const deleteRoom = async (em, room) => { + await room.roomOperations.init(); + room.roomOperations.getItems().forEach(x => em.remove(x)); + room.roomOperations.removeAll(); + for (const roomChatCh of await room.roomChatChs.loadItems()) { + await roomChatCh.roomPubMsgs.init(); + roomChatCh.roomPubMsgs.getItems().forEach(x => em.remove(x)); + roomChatCh.roomPubMsgs.removeAll(); + } + room.roomChatChs.getItems().forEach(x => em.remove(x)); + room.roomChatChs.removeAll(); + await room.roomPrvMsgs.init(); + room.roomPrvMsgs.getItems().forEach(x => em.remove(x)); + room.roomPrvMsgs.removeAll(); + await room.roomSes.init(); + room.roomSes.getItems().forEach(x => em.remove(x)); + room.roomSes.removeAll(); + await room.participants.init(); + room.participants.getItems().forEach(x => em.remove(x)); + room.participants.removeAll(); + await room.dicePieceLogs.init(); + room.dicePieceLogs.getItems().forEach(x => em.remove(x)); + room.dicePieceLogs.removeAll(); + await room.stringPieceLogs.init(); + room.stringPieceLogs.getItems().forEach(x => em.remove(x)); + room.stringPieceLogs.removeAll(); + em.remove(room); +}; + +exports.deleteRoom = deleteRoom; +//# sourceMappingURL=entity.js.map diff --git a/apps/api-server/dist/entities/room/entity.js.map b/apps/api-server/dist/entities/room/entity.js.map new file mode 100644 index 000000000..32e0732b3 --- /dev/null +++ b/apps/api-server/dist/entities/room/entity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"entity.js","sources":["../../../src/entities/room/entity.ts"],"sourcesContent":[null],"names":["Room","easyFlake","Collection","__decorate","PrimaryKey","Property","JsonType","OneToMany","Participant","RoomOp","RoomPubCh","RoomPrvMsg","DicePieceLogEntity","StringPieceLogEntity","RoomSe","ManyToMany","User","Entity","v4","ManyToOne","Unique"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/entities/room/isBookmarked.js b/apps/api-server/dist/entities/room/isBookmarked.js new file mode 100644 index 000000000..4c0c0d0f0 --- /dev/null +++ b/apps/api-server/dist/entities/room/isBookmarked.js @@ -0,0 +1,8 @@ +'use strict'; + +const isBookmarked = async ({ roomEntity, myUserUid, }) => { + return (await roomEntity.bookmarkedBy.init({ where: { userUid: myUserUid } })).count() !== 0; +}; + +exports.isBookmarked = isBookmarked; +//# sourceMappingURL=isBookmarked.js.map diff --git a/apps/api-server/dist/entities/room/isBookmarked.js.map b/apps/api-server/dist/entities/room/isBookmarked.js.map new file mode 100644 index 000000000..069ba4a24 --- /dev/null +++ b/apps/api-server/dist/entities/room/isBookmarked.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isBookmarked.js","sources":["../../../src/entities/room/isBookmarked.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEO,MAAM,YAAY,GAAG,OAAO,EAC/B,UAAU,EACV,SAAS,GAIZ,KAAI;IACD,OAAO,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;AAChG;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/entities/room/role.js b/apps/api-server/dist/entities/room/role.js new file mode 100644 index 000000000..5a1ace4f0 --- /dev/null +++ b/apps/api-server/dist/entities/room/role.js @@ -0,0 +1,9 @@ +'use strict'; + +const role = async ({ roomEntity, myUserUid }) => { + const me = (await roomEntity.participants.init({ where: { user: { userUid: myUserUid } } }))[0]; + return me?.role; +}; + +exports.role = role; +//# sourceMappingURL=role.js.map diff --git a/apps/api-server/dist/entities/room/role.js.map b/apps/api-server/dist/entities/room/role.js.map new file mode 100644 index 000000000..df81b0b5b --- /dev/null +++ b/apps/api-server/dist/entities/room/role.js.map @@ -0,0 +1 @@ +{"version":3,"file":"role.js","sources":["../../../src/entities/room/role.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEO,MAAM,IAAI,GAAG,OAAO,EAAE,UAAU,EAAE,SAAS,EAA2C,KAAI;AAC7F,IAAA,MAAM,EAAE,GAAG,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/F,OAAO,EAAE,EAAE,IAAI;AACnB;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/entities/roomMessage/entity.js b/apps/api-server/dist/entities/roomMessage/entity.js new file mode 100644 index 000000000..be574f1a9 --- /dev/null +++ b/apps/api-server/dist/entities/roomMessage/entity.js @@ -0,0 +1,420 @@ +'use strict'; + +var tslib = require('tslib'); +var core = require('@mikro-orm/core'); +var uuid = require('uuid'); +var FileSourceType = require('../../enums/FileSourceType.js'); +var easyFlake = require('../../utils/easyFlake.js'); +var entity = require('../room/entity.js'); +var entity$1 = require('../user/entity.js'); + +exports.RoomPubCh = class RoomPubCh { + constructor({ key }) { + this.id = uuid.v4(); + this.version = 1; + this.roomPubMsgs = new core.Collection(this); + this.key = key; + } +}; +tslib.__decorate([ + core.PrimaryKey(), + tslib.__metadata("design:type", String) +], exports.RoomPubCh.prototype, "id", void 0); +tslib.__decorate([ + core.Property({ version: true, index: true }), + tslib.__metadata("design:type", Number) +], exports.RoomPubCh.prototype, "version", void 0); +tslib.__decorate([ + core.Property({ type: Date, nullable: true, onUpdate: () => new Date(), index: true }), + tslib.__metadata("design:type", Date) +], exports.RoomPubCh.prototype, "updatedAt", void 0); +tslib.__decorate([ + core.Property({ index: true }), + tslib.__metadata("design:type", String) +], exports.RoomPubCh.prototype, "key", void 0); +tslib.__decorate([ + core.Property({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPubCh.prototype, "name", void 0); +tslib.__decorate([ + core.OneToMany(() => exports.RoomPubMsg, x => x.roomPubCh, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.RoomPubCh.prototype, "roomPubMsgs", void 0); +tslib.__decorate([ + core.ManyToOne(() => entity.Room, { ref: true }), + tslib.__metadata("design:type", Object) +], exports.RoomPubCh.prototype, "room", void 0); +exports.RoomPubCh = tslib.__decorate([ + core.Entity(), + core.Unique({ properties: ['room', 'key'] }), + tslib.__metadata("design:paramtypes", [Object]) +], exports.RoomPubCh); +exports.RoomPubMsg = class RoomPubMsg { + constructor({ initText, initTextSource, }) { + this.id = easyFlake.easyFlake(); + this.version = 1; + this.createdAt = new Date(); + this.isSecret = false; + this.initText = initText; + this.initTextSource = initText === initTextSource ? undefined : initTextSource; + } + get textUpdatedAtValue() { + if (this.textUpdatedAt3 != null) { + return this.textUpdatedAt3.getTime(); + } + if (this.textUpdatedAt2 != null) { + return this.textUpdatedAt2.getTime(); + } + return this.textUpdatedAt; + } +}; +tslib.__decorate([ + core.PrimaryKey(), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "id", void 0); +tslib.__decorate([ + core.Property({ version: true, index: true }), + tslib.__metadata("design:type", Number) +], exports.RoomPubMsg.prototype, "version", void 0); +tslib.__decorate([ + core.Property({ type: Date, onCreate: () => new Date(), index: true }), + tslib.__metadata("design:type", Date) +], exports.RoomPubMsg.prototype, "createdAt", void 0); +tslib.__decorate([ + core.Property({ type: Date, nullable: true, onUpdate: () => new Date(), index: true }), + tslib.__metadata("design:type", Date) +], exports.RoomPubMsg.prototype, "updatedAt", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType, default: null }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "initTextSource", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType, default: null }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "initText", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "updatedText", void 0); +tslib.__decorate([ + core.Property({ nullable: true, default: null }), + tslib.__metadata("design:type", Number) +], exports.RoomPubMsg.prototype, "textUpdatedAt", void 0); +tslib.__decorate([ + core.Property({ type: core.DateType, nullable: true, default: null }), + tslib.__metadata("design:type", Date) +], exports.RoomPubMsg.prototype, "textUpdatedAt2", void 0); +tslib.__decorate([ + core.Property({ type: Date, nullable: true, default: null }), + tslib.__metadata("design:type", Date) +], exports.RoomPubMsg.prototype, "textUpdatedAt3", void 0); +tslib.__decorate([ + core.Property({ persist: false }), + tslib.__metadata("design:type", Object), + tslib.__metadata("design:paramtypes", []) +], exports.RoomPubMsg.prototype, "textUpdatedAtValue", null); +tslib.__decorate([ + core.Property({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "textColor", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "commandResult", void 0); +tslib.__decorate([ + core.Property({ nullable: true, default: null, index: true }), + tslib.__metadata("design:type", Boolean) +], exports.RoomPubMsg.prototype, "commandIsSuccess", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "altTextToSecret", void 0); +tslib.__decorate([ + core.Property({ index: true }), + tslib.__metadata("design:type", Boolean) +], exports.RoomPubMsg.prototype, "isSecret", void 0); +tslib.__decorate([ + core.Property({ nullable: true, index: true }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "charaStateId", void 0); +tslib.__decorate([ + core.Property({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "charaName", void 0); +tslib.__decorate([ + core.Property({ nullable: true, default: null }), + tslib.__metadata("design:type", Boolean) +], exports.RoomPubMsg.prototype, "charaIsPrivate", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType, default: null }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "charaImagePath", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType, default: null }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "charaImageSourceType", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType, default: null }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "charaPortraitImagePath", void 0); +tslib.__decorate([ + core.Property({ type: 'string', nullable: true, default: null }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "charaPortraitImageSourceType", void 0); +tslib.__decorate([ + core.Property({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPubMsg.prototype, "customName", void 0); +tslib.__decorate([ + core.ManyToOne(() => exports.RoomPubCh, { ref: true }), + tslib.__metadata("design:type", Object) +], exports.RoomPubMsg.prototype, "roomPubCh", void 0); +tslib.__decorate([ + core.ManyToOne(() => entity$1.User, { nullable: true, ref: true }), + tslib.__metadata("design:type", Object) +], exports.RoomPubMsg.prototype, "createdBy", void 0); +exports.RoomPubMsg = tslib.__decorate([ + core.Entity(), + tslib.__metadata("design:paramtypes", [Object]) +], exports.RoomPubMsg); +exports.RoomPrvMsg = class RoomPrvMsg { + constructor({ initText, initTextSource, }) { + this.id = easyFlake.easyFlake(); + this.version = 1; + this.createdAt = new Date(); + this.isSecret = false; + this.visibleTo = new core.Collection(this); + this.initText = initText; + this.initTextSource = initText === initTextSource ? undefined : initTextSource; + } + get textUpdatedAtValue() { + if (this.textUpdatedAt3 != null) { + return this.textUpdatedAt3.getTime(); + } + if (this.textUpdatedAt2 != null) { + return this.textUpdatedAt2.getTime(); + } + return this.textUpdatedAt; + } +}; +tslib.__decorate([ + core.PrimaryKey(), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "id", void 0); +tslib.__decorate([ + core.Property({ version: true, index: true }), + tslib.__metadata("design:type", Number) +], exports.RoomPrvMsg.prototype, "version", void 0); +tslib.__decorate([ + core.Property({ type: Date, onCreate: () => new Date(), index: true }), + tslib.__metadata("design:type", Date) +], exports.RoomPrvMsg.prototype, "createdAt", void 0); +tslib.__decorate([ + core.Property({ type: Date, nullable: true, onUpdate: () => new Date(), index: true }), + tslib.__metadata("design:type", Date) +], exports.RoomPrvMsg.prototype, "updatedAt", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType, default: null }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "initTextSource", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType, default: null }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "initText", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "updatedText", void 0); +tslib.__decorate([ + core.Property({ nullable: true, default: null }), + tslib.__metadata("design:type", Number) +], exports.RoomPrvMsg.prototype, "textUpdatedAt", void 0); +tslib.__decorate([ + core.Property({ type: core.DateType, nullable: true, default: null }), + tslib.__metadata("design:type", Date) +], exports.RoomPrvMsg.prototype, "textUpdatedAt2", void 0); +tslib.__decorate([ + core.Property({ type: Date, nullable: true, default: null }), + tslib.__metadata("design:type", Date) +], exports.RoomPrvMsg.prototype, "textUpdatedAt3", void 0); +tslib.__decorate([ + core.Property({ persist: false }), + tslib.__metadata("design:type", Object), + tslib.__metadata("design:paramtypes", []) +], exports.RoomPrvMsg.prototype, "textUpdatedAtValue", null); +tslib.__decorate([ + core.Property({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "textColor", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "commandResult", void 0); +tslib.__decorate([ + core.Property({ nullable: true, default: null }), + tslib.__metadata("design:type", Boolean) +], exports.RoomPrvMsg.prototype, "commandIsSuccess", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "altTextToSecret", void 0); +tslib.__decorate([ + core.Property({ index: true }), + tslib.__metadata("design:type", Boolean) +], exports.RoomPrvMsg.prototype, "isSecret", void 0); +tslib.__decorate([ + core.Property({ nullable: true, index: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "charaStateId", void 0); +tslib.__decorate([ + core.Property({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "charaName", void 0); +tslib.__decorate([ + core.Property({ nullable: true, default: null }), + tslib.__metadata("design:type", Boolean) +], exports.RoomPrvMsg.prototype, "charaIsPrivate", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType, default: null }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "charaImagePath", void 0); +tslib.__decorate([ + core.Property({ type: () => FileSourceType.FileSourceType, nullable: true, default: null }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "charaImageSourceType", void 0); +tslib.__decorate([ + core.Property({ nullable: true, type: core.TextType, default: null }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "charaPortraitImagePath", void 0); +tslib.__decorate([ + core.Property({ type: 'string', nullable: true, default: null }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "charaPortraitImageSourceType", void 0); +tslib.__decorate([ + core.Property({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrvMsg.prototype, "customName", void 0); +tslib.__decorate([ + core.ManyToOne(() => entity$1.User, { ref: true, nullable: true }), + tslib.__metadata("design:type", Object) +], exports.RoomPrvMsg.prototype, "createdBy", void 0); +tslib.__decorate([ + core.ManyToMany(() => entity$1.User, x => x.visibleRoomPrvMsgs), + tslib.__metadata("design:type", Object) +], exports.RoomPrvMsg.prototype, "visibleTo", void 0); +tslib.__decorate([ + core.ManyToOne(() => entity.Room, { ref: true }), + tslib.__metadata("design:type", Object) +], exports.RoomPrvMsg.prototype, "room", void 0); +exports.RoomPrvMsg = tslib.__decorate([ + core.Entity(), + tslib.__metadata("design:paramtypes", [Object]) +], exports.RoomPrvMsg); +exports.DicePieceLog = class DicePieceLog { + constructor({ room, stateId, value, }) { + this.id = easyFlake.easyFlake(); + this.createdAt = new Date(); + this.room = core.ref(room); + this.stateId = stateId; + this.value = value; + } +}; +tslib.__decorate([ + core.PrimaryKey(), + tslib.__metadata("design:type", String) +], exports.DicePieceLog.prototype, "id", void 0); +tslib.__decorate([ + core.Property({ type: Date, onCreate: () => new Date() }), + tslib.__metadata("design:type", Date) +], exports.DicePieceLog.prototype, "createdAt", void 0); +tslib.__decorate([ + core.Property({ index: true }), + tslib.__metadata("design:type", String) +], exports.DicePieceLog.prototype, "stateId", void 0); +tslib.__decorate([ + core.Property({ type: core.JsonType, nullable: true }), + tslib.__metadata("design:type", Object) +], exports.DicePieceLog.prototype, "value", void 0); +tslib.__decorate([ + core.ManyToOne(() => entity.Room, { ref: true }), + tslib.__metadata("design:type", Object) +], exports.DicePieceLog.prototype, "room", void 0); +exports.DicePieceLog = tslib.__decorate([ + core.Entity(), + tslib.__metadata("design:paramtypes", [Object]) +], exports.DicePieceLog); +exports.StringPieceLog = class StringPieceLog { + constructor({ room, stateId, value, }) { + this.id = easyFlake.easyFlake(); + this.createdAt = new Date(); + this.room = core.ref(room); + this.stateId = stateId; + this.value = value; + } +}; +tslib.__decorate([ + core.PrimaryKey(), + tslib.__metadata("design:type", String) +], exports.StringPieceLog.prototype, "id", void 0); +tslib.__decorate([ + core.Property({ type: Date, onCreate: () => new Date() }), + tslib.__metadata("design:type", Date) +], exports.StringPieceLog.prototype, "createdAt", void 0); +tslib.__decorate([ + core.Property({ index: true }), + tslib.__metadata("design:type", String) +], exports.StringPieceLog.prototype, "stateId", void 0); +tslib.__decorate([ + core.Property({ type: core.JsonType, nullable: true }), + tslib.__metadata("design:type", Object) +], exports.StringPieceLog.prototype, "value", void 0); +tslib.__decorate([ + core.ManyToOne(() => entity.Room, { ref: true }), + tslib.__metadata("design:type", Object) +], exports.StringPieceLog.prototype, "room", void 0); +exports.StringPieceLog = tslib.__decorate([ + core.Entity(), + tslib.__metadata("design:paramtypes", [Object]) +], exports.StringPieceLog); +exports.RoomSe = class RoomSe { + constructor({ filePath, fileSourceType, volume, }) { + this.id = easyFlake.easyFlake(); + this.createdAt = new Date(); + this.filePath = filePath; + this.fileSourceType = fileSourceType; + this.volume = volume; + } +}; +tslib.__decorate([ + core.PrimaryKey(), + tslib.__metadata("design:type", String) +], exports.RoomSe.prototype, "id", void 0); +tslib.__decorate([ + core.Property({ type: Date, onCreate: () => new Date() }), + tslib.__metadata("design:type", Date) +], exports.RoomSe.prototype, "createdAt", void 0); +tslib.__decorate([ + core.Property(), + tslib.__metadata("design:type", String) +], exports.RoomSe.prototype, "filePath", void 0); +tslib.__decorate([ + core.Property({ type: 'string' }), + tslib.__metadata("design:type", String) +], exports.RoomSe.prototype, "fileSourceType", void 0); +tslib.__decorate([ + core.Property(), + tslib.__metadata("design:type", Number) +], exports.RoomSe.prototype, "volume", void 0); +tslib.__decorate([ + core.ManyToOne(() => entity$1.User, { nullable: true, ref: true }), + tslib.__metadata("design:type", Object) +], exports.RoomSe.prototype, "createdBy", void 0); +tslib.__decorate([ + core.ManyToOne(() => entity.Room, { ref: true }), + tslib.__metadata("design:type", Object) +], exports.RoomSe.prototype, "room", void 0); +exports.RoomSe = tslib.__decorate([ + core.Entity(), + tslib.__metadata("design:paramtypes", [Object]) +], exports.RoomSe); +//# sourceMappingURL=entity.js.map diff --git a/apps/api-server/dist/entities/roomMessage/entity.js.map b/apps/api-server/dist/entities/roomMessage/entity.js.map new file mode 100644 index 000000000..13f17394c --- /dev/null +++ b/apps/api-server/dist/entities/roomMessage/entity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"entity.js","sources":["../../../src/entities/roomMessage/entity.ts"],"sourcesContent":[null],"names":["RoomPubCh","v4","Collection","__decorate","PrimaryKey","Property","OneToMany","RoomPubMsg","ManyToOne","Room","Entity","Unique","easyFlake","TextType","DateType","User","RoomPrvMsg","FileSourceType","ManyToMany","DicePieceLog","ref","JsonType","StringPieceLog","RoomSe"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/entities/user/entity.js b/apps/api-server/dist/entities/user/entity.js new file mode 100644 index 000000000..284d98fe7 --- /dev/null +++ b/apps/api-server/dist/entities/user/entity.js @@ -0,0 +1,75 @@ +'use strict'; + +var tslib = require('tslib'); +var core = require('@mikro-orm/core'); +require('../../enums/BaasType.js'); +var entity$1 = require('../file/entity.js'); +var entity$2 = require('../fileTag/entity.js'); +var entity = require('../participant/entity.js'); +var entity$4 = require('../room/entity.js'); +var entity$3 = require('../roomMessage/entity.js'); + +exports.User = class User { + constructor({ userUid, baasType }) { + this.isEntry = false; + this.participants = new core.Collection(this); + this.files = new core.Collection(this); + this.fileTags = new core.Collection(this); + this.roomPubMsgs = new core.Collection(this); + this.roomPrvMsgs = new core.Collection(this); + this.roomSEs = new core.Collection(this); + this.visibleRoomPrvMsgs = new core.Collection(this); + this.bookmarkedRooms = new core.Collection(this); + this.userUid = userUid; + this.baasType = baasType; + } +}; +tslib.__decorate([ + core.PrimaryKey(), + tslib.__metadata("design:type", String) +], exports.User.prototype, "userUid", void 0); +tslib.__decorate([ + core.Property({ type: 'string', index: true }), + tslib.__metadata("design:type", String) +], exports.User.prototype, "baasType", void 0); +tslib.__decorate([ + core.Property({ index: true }), + tslib.__metadata("design:type", Boolean) +], exports.User.prototype, "isEntry", void 0); +tslib.__decorate([ + core.OneToMany(() => entity.Participant, x => x.user, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.User.prototype, "participants", void 0); +tslib.__decorate([ + core.OneToMany(() => entity$1.File, x => x.createdBy, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.User.prototype, "files", void 0); +tslib.__decorate([ + core.OneToMany(() => entity$2.FileTag, x => x.user, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.User.prototype, "fileTags", void 0); +tslib.__decorate([ + core.OneToMany(() => entity$3.RoomPubMsg, x => x.createdBy, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.User.prototype, "roomPubMsgs", void 0); +tslib.__decorate([ + core.OneToMany(() => entity$3.RoomPrvMsg, x => x.createdBy, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.User.prototype, "roomPrvMsgs", void 0); +tslib.__decorate([ + core.OneToMany(() => entity$3.RoomPrvMsg, x => x.createdBy, { orphanRemoval: true }), + tslib.__metadata("design:type", Object) +], exports.User.prototype, "roomSEs", void 0); +tslib.__decorate([ + core.ManyToMany(() => entity$3.RoomPrvMsg, x => x.visibleTo, { owner: true }), + tslib.__metadata("design:type", Object) +], exports.User.prototype, "visibleRoomPrvMsgs", void 0); +tslib.__decorate([ + core.ManyToMany(() => entity$4.Room, x => x.bookmarkedBy, { owner: true }), + tslib.__metadata("design:type", Object) +], exports.User.prototype, "bookmarkedRooms", void 0); +exports.User = tslib.__decorate([ + core.Entity(), + tslib.__metadata("design:paramtypes", [Object]) +], exports.User); +//# sourceMappingURL=entity.js.map diff --git a/apps/api-server/dist/entities/user/entity.js.map b/apps/api-server/dist/entities/user/entity.js.map new file mode 100644 index 000000000..21971cb0b --- /dev/null +++ b/apps/api-server/dist/entities/user/entity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"entity.js","sources":["../../../src/entities/user/entity.ts"],"sourcesContent":[null],"names":["User","Collection","__decorate","PrimaryKey","Property","OneToMany","Participant","File","FileTag","RoomPubMsg","RoomPrvMsg","ManyToMany","Room","Entity"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/entities/user/getUserIfEntry.js b/apps/api-server/dist/entities/user/getUserIfEntry.js new file mode 100644 index 000000000..5ab512bb8 --- /dev/null +++ b/apps/api-server/dist/entities/user/getUserIfEntry.js @@ -0,0 +1,36 @@ +'use strict'; + +var entity = require('./entity.js'); + +const getUserIfEntry = async ({ em, userUid, baasType, serverConfig, noFlush, }) => { + const user = await em.findOne(entity.User, { userUid, baasType }); + const requiresEntryPassword = serverConfig.entryPassword != null; + if (user == null) { + if (!requiresEntryPassword) { + const newUser = new entity.User({ userUid, baasType }); + newUser.isEntry = true; + if (noFlush === true) { + em.persist(newUser); + } + else { + await em.persistAndFlush(newUser); + } + return newUser; + } + return null; + } + if (user.isEntry) { + return user; + } + if (!requiresEntryPassword) { + user.isEntry = true; + if (noFlush !== true) { + await em.flush(); + } + return user; + } + return null; +}; + +exports.getUserIfEntry = getUserIfEntry; +//# sourceMappingURL=getUserIfEntry.js.map diff --git a/apps/api-server/dist/entities/user/getUserIfEntry.js.map b/apps/api-server/dist/entities/user/getUserIfEntry.js.map new file mode 100644 index 000000000..f4896d0d0 --- /dev/null +++ b/apps/api-server/dist/entities/user/getUserIfEntry.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getUserIfEntry.js","sources":["../../../src/entities/user/getUserIfEntry.ts"],"sourcesContent":[null],"names":["User"],"mappings":";;;;AAMa,MAAA,cAAc,GAAG,OAAO,EACjC,EAAE,EACF,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,OAAO,GAOV,KAA0B;AACvB,IAAA,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAACA,WAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC1D,IAAA,MAAM,qBAAqB,GAAG,YAAY,CAAC,aAAa,IAAI,IAAI;AAEhE,IAAA,IAAI,IAAI,IAAI,IAAI,EAAE;QACd,IAAI,CAAC,qBAAqB,EAAE;YACxB,MAAM,OAAO,GAAG,IAAIA,WAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/C,YAAA,OAAO,CAAC,OAAO,GAAG,IAAI;AACtB,YAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;;iBAChB;AACH,gBAAA,MAAM,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;;AAErC,YAAA,OAAO,OAAO;;AAElB,QAAA,OAAO,IAAI;;AAGf,IAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,OAAO,IAAI;;IAGf,IAAI,CAAC,qBAAqB,EAAE;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AAClB,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE;;AAEpB,QAAA,OAAO,IAAI;;AAGf,IAAA,OAAO,IAAI;AACf;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/AnswerRollCallFailureType.js b/apps/api-server/dist/enums/AnswerRollCallFailureType.js new file mode 100644 index 000000000..df67188e2 --- /dev/null +++ b/apps/api-server/dist/enums/AnswerRollCallFailureType.js @@ -0,0 +1,10 @@ +'use strict'; + +exports.AnswerRollCallFailureType = void 0; +(function (AnswerRollCallFailureType) { + AnswerRollCallFailureType["RoomNotFound"] = "RoomNotFound"; + AnswerRollCallFailureType["RollCallNotFound"] = "RollCallNotFound"; + AnswerRollCallFailureType["NotAuthorizedParticipant"] = "NotAuthorizedParticipant"; + AnswerRollCallFailureType["TooManyRequests"] = "TooManyRequests"; +})(exports.AnswerRollCallFailureType || (exports.AnswerRollCallFailureType = {})); +//# sourceMappingURL=AnswerRollCallFailureType.js.map diff --git a/apps/api-server/dist/enums/AnswerRollCallFailureType.js.map b/apps/api-server/dist/enums/AnswerRollCallFailureType.js.map new file mode 100644 index 000000000..3a68fc276 --- /dev/null +++ b/apps/api-server/dist/enums/AnswerRollCallFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AnswerRollCallFailureType.js","sources":["../../src/enums/AnswerRollCallFailureType.ts"],"sourcesContent":[null],"names":["AnswerRollCallFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,yBAAyB,EAAA;AACjC,IAAA,yBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,yBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,yBAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD;AACrD,IAAA,yBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACvC,CAAC,EALWA,iCAAyB,KAAzBA,iCAAyB,GAKpC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/BaasType.js b/apps/api-server/dist/enums/BaasType.js new file mode 100644 index 000000000..2dba37146 --- /dev/null +++ b/apps/api-server/dist/enums/BaasType.js @@ -0,0 +1,7 @@ +'use strict'; + +exports.BaasType = void 0; +(function (BaasType) { + BaasType["Firebase"] = "Firebase"; +})(exports.BaasType || (exports.BaasType = {})); +//# sourceMappingURL=BaasType.js.map diff --git a/apps/api-server/dist/enums/BaasType.js.map b/apps/api-server/dist/enums/BaasType.js.map new file mode 100644 index 000000000..88bea5c1b --- /dev/null +++ b/apps/api-server/dist/enums/BaasType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BaasType.js","sources":["../../src/enums/BaasType.ts"],"sourcesContent":[null],"names":["BaasType"],"mappings":";;AACYA;AAAZ,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACzB,CAAC,EAFWA,gBAAQ,KAARA,gBAAQ,GAEnB,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/ChangeParticipantNameFailureType.js b/apps/api-server/dist/enums/ChangeParticipantNameFailureType.js new file mode 100644 index 000000000..b9242328b --- /dev/null +++ b/apps/api-server/dist/enums/ChangeParticipantNameFailureType.js @@ -0,0 +1,8 @@ +'use strict'; + +exports.ChangeParticipantNameFailureType = void 0; +(function (ChangeParticipantNameFailureType) { + ChangeParticipantNameFailureType["NotFound"] = "NotFound"; + ChangeParticipantNameFailureType["NotParticipant"] = "NotParticipant"; +})(exports.ChangeParticipantNameFailureType || (exports.ChangeParticipantNameFailureType = {})); +//# sourceMappingURL=ChangeParticipantNameFailureType.js.map diff --git a/apps/api-server/dist/enums/ChangeParticipantNameFailureType.js.map b/apps/api-server/dist/enums/ChangeParticipantNameFailureType.js.map new file mode 100644 index 000000000..f3a581186 --- /dev/null +++ b/apps/api-server/dist/enums/ChangeParticipantNameFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ChangeParticipantNameFailureType.js","sources":["../../src/enums/ChangeParticipantNameFailureType.ts"],"sourcesContent":[null],"names":["ChangeParticipantNameFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,gCAAgC,EAAA;AACxC,IAAA,gCAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,gCAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACrC,CAAC,EAHWA,wCAAgC,KAAhCA,wCAAgC,GAG3C,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/CloseRollCallFailureType.js b/apps/api-server/dist/enums/CloseRollCallFailureType.js new file mode 100644 index 000000000..bc0cef6e5 --- /dev/null +++ b/apps/api-server/dist/enums/CloseRollCallFailureType.js @@ -0,0 +1,11 @@ +'use strict'; + +exports.CloseRollCallFailureType = void 0; +(function (CloseRollCallFailureType) { + CloseRollCallFailureType["RoomNotFound"] = "RoomNotFound"; + CloseRollCallFailureType["RollCallNotFound"] = "RollCallNotFound"; + CloseRollCallFailureType["AlreadyClosed"] = "AlreadyClosed"; + CloseRollCallFailureType["NotAuthorizedParticipant"] = "NotAuthorizedParticipant"; + CloseRollCallFailureType["TooManyRequests"] = "TooManyRequests"; +})(exports.CloseRollCallFailureType || (exports.CloseRollCallFailureType = {})); +//# sourceMappingURL=CloseRollCallFailureType.js.map diff --git a/apps/api-server/dist/enums/CloseRollCallFailureType.js.map b/apps/api-server/dist/enums/CloseRollCallFailureType.js.map new file mode 100644 index 000000000..89012acd8 --- /dev/null +++ b/apps/api-server/dist/enums/CloseRollCallFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CloseRollCallFailureType.js","sources":["../../src/enums/CloseRollCallFailureType.ts"],"sourcesContent":[null],"names":["CloseRollCallFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAChC,IAAA,wBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,wBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,wBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,wBAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD;AACrD,IAAA,wBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACvC,CAAC,EANWA,gCAAwB,KAAxBA,gCAAwB,GAMnC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/CreateRoomFailureType.js b/apps/api-server/dist/enums/CreateRoomFailureType.js new file mode 100644 index 000000000..ce7f13c60 --- /dev/null +++ b/apps/api-server/dist/enums/CreateRoomFailureType.js @@ -0,0 +1,7 @@ +'use strict'; + +exports.CreateRoomFailureType = void 0; +(function (CreateRoomFailureType) { + CreateRoomFailureType["UnknownError"] = "UnknownError"; +})(exports.CreateRoomFailureType || (exports.CreateRoomFailureType = {})); +//# sourceMappingURL=CreateRoomFailureType.js.map diff --git a/apps/api-server/dist/enums/CreateRoomFailureType.js.map b/apps/api-server/dist/enums/CreateRoomFailureType.js.map new file mode 100644 index 000000000..0f52e8647 --- /dev/null +++ b/apps/api-server/dist/enums/CreateRoomFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CreateRoomFailureType.js","sources":["../../src/enums/CreateRoomFailureType.ts"],"sourcesContent":[null],"names":["CreateRoomFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC7B,IAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AACjC,CAAC,EAFWA,6BAAqB,KAArBA,6BAAqB,GAEhC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/DeleteMessageFailureType.js b/apps/api-server/dist/enums/DeleteMessageFailureType.js new file mode 100644 index 000000000..b0ed9397e --- /dev/null +++ b/apps/api-server/dist/enums/DeleteMessageFailureType.js @@ -0,0 +1,11 @@ +'use strict'; + +exports.DeleteMessageFailureType = void 0; +(function (DeleteMessageFailureType) { + DeleteMessageFailureType["RoomNotFound"] = "RoomNotFound"; + DeleteMessageFailureType["NotParticipant"] = "NotParticipant"; + DeleteMessageFailureType["MessageNotFound"] = "MessageNotFound"; + DeleteMessageFailureType["NotYourMessage"] = "NotYourMessage"; + DeleteMessageFailureType["MessageDeleted"] = "MessageDeleted"; +})(exports.DeleteMessageFailureType || (exports.DeleteMessageFailureType = {})); +//# sourceMappingURL=DeleteMessageFailureType.js.map diff --git a/apps/api-server/dist/enums/DeleteMessageFailureType.js.map b/apps/api-server/dist/enums/DeleteMessageFailureType.js.map new file mode 100644 index 000000000..914c6b072 --- /dev/null +++ b/apps/api-server/dist/enums/DeleteMessageFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DeleteMessageFailureType.js","sources":["../../src/enums/DeleteMessageFailureType.ts"],"sourcesContent":[null],"names":["DeleteMessageFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAChC,IAAA,wBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,wBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,wBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,wBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,wBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACrC,CAAC,EANWA,gCAAwB,KAAxBA,gCAAwB,GAMnC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/DeleteRoomAsAdminFailureType.js b/apps/api-server/dist/enums/DeleteRoomAsAdminFailureType.js new file mode 100644 index 000000000..349c8b9d5 --- /dev/null +++ b/apps/api-server/dist/enums/DeleteRoomAsAdminFailureType.js @@ -0,0 +1,7 @@ +'use strict'; + +exports.DeleteRoomAsAdminFailureType = void 0; +(function (DeleteRoomAsAdminFailureType) { + DeleteRoomAsAdminFailureType["NotFound"] = "NotFound"; +})(exports.DeleteRoomAsAdminFailureType || (exports.DeleteRoomAsAdminFailureType = {})); +//# sourceMappingURL=DeleteRoomAsAdminFailureType.js.map diff --git a/apps/api-server/dist/enums/DeleteRoomAsAdminFailureType.js.map b/apps/api-server/dist/enums/DeleteRoomAsAdminFailureType.js.map new file mode 100644 index 000000000..0745a552c --- /dev/null +++ b/apps/api-server/dist/enums/DeleteRoomAsAdminFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DeleteRoomAsAdminFailureType.js","sources":["../../src/enums/DeleteRoomAsAdminFailureType.ts"],"sourcesContent":[null],"names":["DeleteRoomAsAdminFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,4BAA4B,EAAA;AACpC,IAAA,4BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACzB,CAAC,EAFWA,oCAA4B,KAA5BA,oCAA4B,GAEvC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/DeleteRoomFailureType.js b/apps/api-server/dist/enums/DeleteRoomFailureType.js new file mode 100644 index 000000000..4f11d7a7e --- /dev/null +++ b/apps/api-server/dist/enums/DeleteRoomFailureType.js @@ -0,0 +1,8 @@ +'use strict'; + +exports.DeleteRoomFailureType = void 0; +(function (DeleteRoomFailureType) { + DeleteRoomFailureType["NotFound"] = "NotFound"; + DeleteRoomFailureType["NotCreatedByYou"] = "NotCreatedByYou"; +})(exports.DeleteRoomFailureType || (exports.DeleteRoomFailureType = {})); +//# sourceMappingURL=DeleteRoomFailureType.js.map diff --git a/apps/api-server/dist/enums/DeleteRoomFailureType.js.map b/apps/api-server/dist/enums/DeleteRoomFailureType.js.map new file mode 100644 index 000000000..5783c606d --- /dev/null +++ b/apps/api-server/dist/enums/DeleteRoomFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DeleteRoomFailureType.js","sources":["../../src/enums/DeleteRoomFailureType.ts"],"sourcesContent":[null],"names":["DeleteRoomFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC7B,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,qBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACvC,CAAC,EAHWA,6BAAqB,KAArBA,6BAAqB,GAGhC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/EditMessageFailureType.js b/apps/api-server/dist/enums/EditMessageFailureType.js new file mode 100644 index 000000000..aa2d3a2f3 --- /dev/null +++ b/apps/api-server/dist/enums/EditMessageFailureType.js @@ -0,0 +1,11 @@ +'use strict'; + +exports.EditMessageFailureType = void 0; +(function (EditMessageFailureType) { + EditMessageFailureType["RoomNotFound"] = "RoomNotFound"; + EditMessageFailureType["NotParticipant"] = "NotParticipant"; + EditMessageFailureType["MessageNotFound"] = "MessageNotFound"; + EditMessageFailureType["NotYourMessage"] = "NotYourMessage"; + EditMessageFailureType["MessageDeleted"] = "MessageDeleted"; +})(exports.EditMessageFailureType || (exports.EditMessageFailureType = {})); +//# sourceMappingURL=EditMessageFailureType.js.map diff --git a/apps/api-server/dist/enums/EditMessageFailureType.js.map b/apps/api-server/dist/enums/EditMessageFailureType.js.map new file mode 100644 index 000000000..d0586d957 --- /dev/null +++ b/apps/api-server/dist/enums/EditMessageFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EditMessageFailureType.js","sources":["../../src/enums/EditMessageFailureType.ts"],"sourcesContent":[null],"names":["EditMessageFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,sBAAsB,EAAA;AAC9B,IAAA,sBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,sBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACrC,CAAC,EANWA,8BAAsB,KAAtBA,8BAAsB,GAMjC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/EntryToServerResultType.js b/apps/api-server/dist/enums/EntryToServerResultType.js new file mode 100644 index 000000000..2b251f3dd --- /dev/null +++ b/apps/api-server/dist/enums/EntryToServerResultType.js @@ -0,0 +1,11 @@ +'use strict'; + +exports.EntryToServerResultType = void 0; +(function (EntryToServerResultType) { + EntryToServerResultType["Success"] = "Success"; + EntryToServerResultType["NotSignIn"] = "NotSignIn"; + EntryToServerResultType["AlreadyEntried"] = "AlreadyEntried"; + EntryToServerResultType["NoPasswordRequired"] = "NoPasswordRequired"; + EntryToServerResultType["WrongPassword"] = "WrongPassword"; +})(exports.EntryToServerResultType || (exports.EntryToServerResultType = {})); +//# sourceMappingURL=EntryToServerResultType.js.map diff --git a/apps/api-server/dist/enums/EntryToServerResultType.js.map b/apps/api-server/dist/enums/EntryToServerResultType.js.map new file mode 100644 index 000000000..4c82ff1e6 --- /dev/null +++ b/apps/api-server/dist/enums/EntryToServerResultType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EntryToServerResultType.js","sources":["../../src/enums/EntryToServerResultType.ts"],"sourcesContent":[null],"names":["EntryToServerResultType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,uBAAuB,EAAA;AAC/B,IAAA,uBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,uBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,uBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,uBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,uBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AACnC,CAAC,EANWA,+BAAuB,KAAvBA,+BAAuB,GAMlC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/FileListType.js b/apps/api-server/dist/enums/FileListType.js new file mode 100644 index 000000000..fc64825c1 --- /dev/null +++ b/apps/api-server/dist/enums/FileListType.js @@ -0,0 +1,8 @@ +'use strict'; + +exports.FileListType = void 0; +(function (FileListType) { + FileListType["Public"] = "Public"; + FileListType["Unlisted"] = "Unlisted"; +})(exports.FileListType || (exports.FileListType = {})); +//# sourceMappingURL=FileListType.js.map diff --git a/apps/api-server/dist/enums/FileListType.js.map b/apps/api-server/dist/enums/FileListType.js.map new file mode 100644 index 000000000..a17f58319 --- /dev/null +++ b/apps/api-server/dist/enums/FileListType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FileListType.js","sources":["../../src/enums/FileListType.ts"],"sourcesContent":[null],"names":["FileListType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACzB,CAAC,EAHWA,oBAAY,KAAZA,oBAAY,GAGvB,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/FilePermissionType.js b/apps/api-server/dist/enums/FilePermissionType.js new file mode 100644 index 000000000..697505a28 --- /dev/null +++ b/apps/api-server/dist/enums/FilePermissionType.js @@ -0,0 +1,8 @@ +'use strict'; + +exports.FilePermissionType = void 0; +(function (FilePermissionType) { + FilePermissionType["Private"] = "Private"; + FilePermissionType["Entry"] = "Entry"; +})(exports.FilePermissionType || (exports.FilePermissionType = {})); +//# sourceMappingURL=FilePermissionType.js.map diff --git a/apps/api-server/dist/enums/FilePermissionType.js.map b/apps/api-server/dist/enums/FilePermissionType.js.map new file mode 100644 index 000000000..41455f350 --- /dev/null +++ b/apps/api-server/dist/enums/FilePermissionType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FilePermissionType.js","sources":["../../src/enums/FilePermissionType.ts"],"sourcesContent":[null],"names":["FilePermissionType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAE1B,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AAGnB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACnB,CAAC,EANWA,0BAAkB,KAAlBA,0BAAkB,GAM7B,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/FileSourceType.js b/apps/api-server/dist/enums/FileSourceType.js new file mode 100644 index 000000000..22a22da29 --- /dev/null +++ b/apps/api-server/dist/enums/FileSourceType.js @@ -0,0 +1,52 @@ +'use strict'; + +var FilePathModule = require('@flocon-trpg/core'); + +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n.default = e; + return Object.freeze(n); +} + +var FilePathModule__namespace = /*#__PURE__*/_interopNamespaceDefault(FilePathModule); + +exports.FileSourceType = void 0; +(function (FileSourceType) { + FileSourceType["Default"] = "Default"; + FileSourceType["Uploader"] = "Uploader"; + FileSourceType["FirebaseStorage"] = "FirebaseStorage"; +})(exports.FileSourceType || (exports.FileSourceType = {})); +exports.FileSourceTypeModule = void 0; +(function (FileSourceTypeModule) { + FileSourceTypeModule.ofString = (source) => { + switch (source) { + case FilePathModule__namespace.Default: + return exports.FileSourceType.Default; + case FilePathModule__namespace.FirebaseStorage: + return exports.FileSourceType.FirebaseStorage; + case FilePathModule__namespace.Uploader: + return exports.FileSourceType.Uploader; + } + }; + FileSourceTypeModule.ofNullishString = (source) => { + switch (source) { + case null: + case undefined: + return undefined; + default: + return FileSourceTypeModule.ofString(source); + } + }; +})(exports.FileSourceTypeModule || (exports.FileSourceTypeModule = {})); +//# sourceMappingURL=FileSourceType.js.map diff --git a/apps/api-server/dist/enums/FileSourceType.js.map b/apps/api-server/dist/enums/FileSourceType.js.map new file mode 100644 index 000000000..6a748effc --- /dev/null +++ b/apps/api-server/dist/enums/FileSourceType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FileSourceType.js","sources":["../../src/enums/FileSourceType.ts"],"sourcesContent":[null],"names":["FileSourceType","FileSourceTypeModule","FilePathModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEYA;AAAZ,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACvC,CAAC,EAJWA,sBAAc,KAAdA,sBAAc,GAIzB,EAAA,CAAA,CAAA;AAGgBC;AAAjB,CAAA,UAAiB,oBAAoB,EAAA;AACpB,IAAA,oBAAA,CAAA,QAAQ,GAAG,CACpB,MAGoC,KACpC;QACA,QAAQ,MAAM;YACV,KAAKC,yBAAc,CAAC,OAAO;gBACvB,OAAOF,sBAAc,CAAC,OAAO;YACjC,KAAKE,yBAAc,CAAC,eAAe;gBAC/B,OAAOF,sBAAc,CAAC,eAAe;YACzC,KAAKE,yBAAc,CAAC,QAAQ;gBACxB,OAAOF,sBAAc,CAAC,QAAQ;;AAE1C,KAAC;AAEY,IAAA,oBAAA,CAAA,eAAe,GAAG,CAC3B,MAKe,KACf;QACA,QAAQ,MAAM;AACV,YAAA,KAAK,IAAI;AACT,YAAA,KAAK,SAAS;AACV,gBAAA,OAAO,SAAS;AACpB,YAAA;AACI,gBAAA,OAAO,oBAAA,CAAA,QAAQ,CAAC,MAAM,CAAC;;AAEnC,KAAC;AACL,CAAC,EAjCgBC,4BAAoB,KAApBA,4BAAoB,GAiCpC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/GetRoomConnectionFailureType.js b/apps/api-server/dist/enums/GetRoomConnectionFailureType.js new file mode 100644 index 000000000..9c5c3958d --- /dev/null +++ b/apps/api-server/dist/enums/GetRoomConnectionFailureType.js @@ -0,0 +1,8 @@ +'use strict'; + +exports.GetRoomConnectionFailureType = void 0; +(function (GetRoomConnectionFailureType) { + GetRoomConnectionFailureType["RoomNotFound"] = "RoomNotFound"; + GetRoomConnectionFailureType["NotParticipant"] = "NotParticipant"; +})(exports.GetRoomConnectionFailureType || (exports.GetRoomConnectionFailureType = {})); +//# sourceMappingURL=GetRoomConnectionFailureType.js.map diff --git a/apps/api-server/dist/enums/GetRoomConnectionFailureType.js.map b/apps/api-server/dist/enums/GetRoomConnectionFailureType.js.map new file mode 100644 index 000000000..1b54a2d3d --- /dev/null +++ b/apps/api-server/dist/enums/GetRoomConnectionFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GetRoomConnectionFailureType.js","sources":["../../src/enums/GetRoomConnectionFailureType.ts"],"sourcesContent":[null],"names":["GetRoomConnectionFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,4BAA4B,EAAA;AACpC,IAAA,4BAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,4BAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACrC,CAAC,EAHWA,oCAA4B,KAA5BA,oCAA4B,GAGvC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/GetRoomFailureType.js b/apps/api-server/dist/enums/GetRoomFailureType.js new file mode 100644 index 000000000..8bf5cf5c7 --- /dev/null +++ b/apps/api-server/dist/enums/GetRoomFailureType.js @@ -0,0 +1,7 @@ +'use strict'; + +exports.GetRoomFailureType = void 0; +(function (GetRoomFailureType) { + GetRoomFailureType["NotFound"] = "NotFound"; +})(exports.GetRoomFailureType || (exports.GetRoomFailureType = {})); +//# sourceMappingURL=GetRoomFailureType.js.map diff --git a/apps/api-server/dist/enums/GetRoomFailureType.js.map b/apps/api-server/dist/enums/GetRoomFailureType.js.map new file mode 100644 index 000000000..e37bcd99c --- /dev/null +++ b/apps/api-server/dist/enums/GetRoomFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GetRoomFailureType.js","sources":["../../src/enums/GetRoomFailureType.ts"],"sourcesContent":[null],"names":["GetRoomFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACzB,CAAC,EAFWA,0BAAkB,KAAlBA,0BAAkB,GAE7B,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/GetRoomLogFailureType.js b/apps/api-server/dist/enums/GetRoomLogFailureType.js new file mode 100644 index 000000000..0ae1dfd0d --- /dev/null +++ b/apps/api-server/dist/enums/GetRoomLogFailureType.js @@ -0,0 +1,10 @@ +'use strict'; + +exports.GetRoomLogFailureType = void 0; +(function (GetRoomLogFailureType) { + GetRoomLogFailureType["RoomNotFound"] = "RoomNotFound"; + GetRoomLogFailureType["NotParticipant"] = "NotParticipant"; + GetRoomLogFailureType["NotAuthorized"] = "NotAuthorized"; + GetRoomLogFailureType["UnknownError"] = "UnknownError"; +})(exports.GetRoomLogFailureType || (exports.GetRoomLogFailureType = {})); +//# sourceMappingURL=GetRoomLogFailureType.js.map diff --git a/apps/api-server/dist/enums/GetRoomLogFailureType.js.map b/apps/api-server/dist/enums/GetRoomLogFailureType.js.map new file mode 100644 index 000000000..f002e9a41 --- /dev/null +++ b/apps/api-server/dist/enums/GetRoomLogFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GetRoomLogFailureType.js","sources":["../../src/enums/GetRoomLogFailureType.ts"],"sourcesContent":[null],"names":["GetRoomLogFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC7B,IAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AACjC,CAAC,EALWA,6BAAqB,KAArBA,6BAAqB,GAKhC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/GetRoomMessagesFailureType.js b/apps/api-server/dist/enums/GetRoomMessagesFailureType.js new file mode 100644 index 000000000..4380c66f7 --- /dev/null +++ b/apps/api-server/dist/enums/GetRoomMessagesFailureType.js @@ -0,0 +1,8 @@ +'use strict'; + +exports.GetRoomMessagesFailureType = void 0; +(function (GetRoomMessagesFailureType) { + GetRoomMessagesFailureType["RoomNotFound"] = "RoomNotFound"; + GetRoomMessagesFailureType["NotParticipant"] = "NotParticipant"; +})(exports.GetRoomMessagesFailureType || (exports.GetRoomMessagesFailureType = {})); +//# sourceMappingURL=GetRoomMessagesFailureType.js.map diff --git a/apps/api-server/dist/enums/GetRoomMessagesFailureType.js.map b/apps/api-server/dist/enums/GetRoomMessagesFailureType.js.map new file mode 100644 index 000000000..c0a4d99d1 --- /dev/null +++ b/apps/api-server/dist/enums/GetRoomMessagesFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GetRoomMessagesFailureType.js","sources":["../../src/enums/GetRoomMessagesFailureType.ts"],"sourcesContent":[null],"names":["GetRoomMessagesFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,0BAA0B,EAAA;AAClC,IAAA,0BAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,0BAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACrC,CAAC,EAHWA,kCAA0B,KAA1BA,kCAA0B,GAGrC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/GetRoomsListFailureType.js b/apps/api-server/dist/enums/GetRoomsListFailureType.js new file mode 100644 index 000000000..1db6fdd85 --- /dev/null +++ b/apps/api-server/dist/enums/GetRoomsListFailureType.js @@ -0,0 +1,7 @@ +'use strict'; + +exports.GetRoomsListFailureType = void 0; +(function (GetRoomsListFailureType) { + GetRoomsListFailureType["UnknownError"] = "UnknownError"; +})(exports.GetRoomsListFailureType || (exports.GetRoomsListFailureType = {})); +//# sourceMappingURL=GetRoomsListFailureType.js.map diff --git a/apps/api-server/dist/enums/GetRoomsListFailureType.js.map b/apps/api-server/dist/enums/GetRoomsListFailureType.js.map new file mode 100644 index 000000000..f04d01ce2 --- /dev/null +++ b/apps/api-server/dist/enums/GetRoomsListFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GetRoomsListFailureType.js","sources":["../../src/enums/GetRoomsListFailureType.ts"],"sourcesContent":[null],"names":["GetRoomsListFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,uBAAuB,EAAA;AAC/B,IAAA,uBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AACjC,CAAC,EAFWA,+BAAuB,KAAvBA,+BAAuB,GAElC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/JoinRoomFailureType.js b/apps/api-server/dist/enums/JoinRoomFailureType.js new file mode 100644 index 000000000..487d34cd5 --- /dev/null +++ b/apps/api-server/dist/enums/JoinRoomFailureType.js @@ -0,0 +1,10 @@ +'use strict'; + +exports.JoinRoomFailureType = void 0; +(function (JoinRoomFailureType) { + JoinRoomFailureType["NotFound"] = "NotFound"; + JoinRoomFailureType["WrongPassword"] = "WrongPassword"; + JoinRoomFailureType["AlreadyParticipant"] = "AlreadyParticipant"; + JoinRoomFailureType["TransformError"] = "TransformError"; +})(exports.JoinRoomFailureType || (exports.JoinRoomFailureType = {})); +//# sourceMappingURL=JoinRoomFailureType.js.map diff --git a/apps/api-server/dist/enums/JoinRoomFailureType.js.map b/apps/api-server/dist/enums/JoinRoomFailureType.js.map new file mode 100644 index 000000000..55cc54b56 --- /dev/null +++ b/apps/api-server/dist/enums/JoinRoomFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"JoinRoomFailureType.js","sources":["../../src/enums/JoinRoomFailureType.ts"],"sourcesContent":[null],"names":["JoinRoomFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC3B,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,mBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AAEzC,IAAA,mBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACrC,CAAC,EANWA,2BAAmB,KAAnBA,2BAAmB,GAM9B,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/LeaveRoomFailureType.js b/apps/api-server/dist/enums/LeaveRoomFailureType.js new file mode 100644 index 000000000..d68dd95ed --- /dev/null +++ b/apps/api-server/dist/enums/LeaveRoomFailureType.js @@ -0,0 +1,8 @@ +'use strict'; + +exports.LeaveRoomFailureType = void 0; +(function (LeaveRoomFailureType) { + LeaveRoomFailureType["NotFound"] = "NotFound"; + LeaveRoomFailureType["NotParticipant"] = "NotParticipant"; +})(exports.LeaveRoomFailureType || (exports.LeaveRoomFailureType = {})); +//# sourceMappingURL=LeaveRoomFailureType.js.map diff --git a/apps/api-server/dist/enums/LeaveRoomFailureType.js.map b/apps/api-server/dist/enums/LeaveRoomFailureType.js.map new file mode 100644 index 000000000..26bc9edd8 --- /dev/null +++ b/apps/api-server/dist/enums/LeaveRoomFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LeaveRoomFailureType.js","sources":["../../src/enums/LeaveRoomFailureType.ts"],"sourcesContent":[null],"names":["LeaveRoomFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,oBAAoB,EAAA;AAC5B,IAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACrC,CAAC,EAHWA,4BAAoB,KAApBA,4BAAoB,GAG/B,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/MakeMessageNotSecretFailureType.js b/apps/api-server/dist/enums/MakeMessageNotSecretFailureType.js new file mode 100644 index 000000000..d8859ab12 --- /dev/null +++ b/apps/api-server/dist/enums/MakeMessageNotSecretFailureType.js @@ -0,0 +1,11 @@ +'use strict'; + +exports.MakeMessageNotSecretFailureType = void 0; +(function (MakeMessageNotSecretFailureType) { + MakeMessageNotSecretFailureType["RoomNotFound"] = "RoomNotFound"; + MakeMessageNotSecretFailureType["NotParticipant"] = "NotParticipant"; + MakeMessageNotSecretFailureType["MessageNotFound"] = "MessageNotFound"; + MakeMessageNotSecretFailureType["NotSecret"] = "NotSecret"; + MakeMessageNotSecretFailureType["NotYourMessage"] = "NotYourMessage"; +})(exports.MakeMessageNotSecretFailureType || (exports.MakeMessageNotSecretFailureType = {})); +//# sourceMappingURL=MakeMessageNotSecretFailureType.js.map diff --git a/apps/api-server/dist/enums/MakeMessageNotSecretFailureType.js.map b/apps/api-server/dist/enums/MakeMessageNotSecretFailureType.js.map new file mode 100644 index 000000000..8d6fcd1ad --- /dev/null +++ b/apps/api-server/dist/enums/MakeMessageNotSecretFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MakeMessageNotSecretFailureType.js","sources":["../../src/enums/MakeMessageNotSecretFailureType.ts"],"sourcesContent":[null],"names":["MakeMessageNotSecretFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,+BAA+B,EAAA;AACvC,IAAA,+BAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,+BAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,+BAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,+BAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,+BAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACrC,CAAC,EANWA,uCAA+B,KAA/BA,uCAA+B,GAM1C,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/OperateRoomFailureType.js b/apps/api-server/dist/enums/OperateRoomFailureType.js new file mode 100644 index 000000000..9f7ce12b0 --- /dev/null +++ b/apps/api-server/dist/enums/OperateRoomFailureType.js @@ -0,0 +1,7 @@ +'use strict'; + +exports.OperateRoomFailureType = void 0; +(function (OperateRoomFailureType) { + OperateRoomFailureType["NotFound"] = "NotFound"; +})(exports.OperateRoomFailureType || (exports.OperateRoomFailureType = {})); +//# sourceMappingURL=OperateRoomFailureType.js.map diff --git a/apps/api-server/dist/enums/OperateRoomFailureType.js.map b/apps/api-server/dist/enums/OperateRoomFailureType.js.map new file mode 100644 index 000000000..041e6895f --- /dev/null +++ b/apps/api-server/dist/enums/OperateRoomFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OperateRoomFailureType.js","sources":["../../src/enums/OperateRoomFailureType.ts"],"sourcesContent":[null],"names":["OperateRoomFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,sBAAsB,EAAA;AAC9B,IAAA,sBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACzB,CAAC,EAFWA,8BAAsB,KAAtBA,8BAAsB,GAEjC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/ParticipantRoleType.js b/apps/api-server/dist/enums/ParticipantRoleType.js new file mode 100644 index 000000000..91fa2dfad --- /dev/null +++ b/apps/api-server/dist/enums/ParticipantRoleType.js @@ -0,0 +1,36 @@ +'use strict'; + +var FilePathModule = require('@flocon-trpg/core'); + +exports.ParticipantRoleType = void 0; +(function (ParticipantRoleType) { + ParticipantRoleType["Master"] = "Master"; + ParticipantRoleType["Player"] = "Player"; + ParticipantRoleType["Spectator"] = "Spectator"; +})(exports.ParticipantRoleType || (exports.ParticipantRoleType = {})); +const stringToParticipantRoleType = (source) => { + switch (source) { + case FilePathModule.Master: + return exports.ParticipantRoleType.Master; + case FilePathModule.Player: + return exports.ParticipantRoleType.Player; + case FilePathModule.Spectator: + return exports.ParticipantRoleType.Spectator; + } +}; +const nullableStringToParticipantRoleType = (source) => { + switch (source) { + case FilePathModule.Master: + return exports.ParticipantRoleType.Master; + case FilePathModule.Player: + return exports.ParticipantRoleType.Player; + case FilePathModule.Spectator: + return exports.ParticipantRoleType.Spectator; + default: + return source; + } +}; + +exports.nullableStringToParticipantRoleType = nullableStringToParticipantRoleType; +exports.stringToParticipantRoleType = stringToParticipantRoleType; +//# sourceMappingURL=ParticipantRoleType.js.map diff --git a/apps/api-server/dist/enums/ParticipantRoleType.js.map b/apps/api-server/dist/enums/ParticipantRoleType.js.map new file mode 100644 index 000000000..a61b5070f --- /dev/null +++ b/apps/api-server/dist/enums/ParticipantRoleType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ParticipantRoleType.js","sources":["../../src/enums/ParticipantRoleType.ts"],"sourcesContent":[null],"names":["ParticipantRoleType","Master","Player","Spectator"],"mappings":";;;;AAEYA;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC3B,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AAC3B,CAAC,EAJWA,2BAAmB,KAAnBA,2BAAmB,GAI9B,EAAA,CAAA,CAAA;AAEY,MAAA,2BAA2B,GAAG,CACvC,MAAwD,KACxD;IACA,QAAQ,MAAM;AACV,QAAA,KAAKC,qBAAM;YACP,OAAOD,2BAAmB,CAAC,MAAM;AACrC,QAAA,KAAKE,qBAAM;YACP,OAAOF,2BAAmB,CAAC,MAAM;AACrC,QAAA,KAAKG,wBAAS;YACV,OAAOH,2BAAmB,CAAC,SAAS;;AAEhD;AAEa,MAAA,mCAAmC,GAAG,CAC/C,MAA2E,KAC3E;IACA,QAAQ,MAAM;AACV,QAAA,KAAKC,qBAAM;YACP,OAAOD,2BAAmB,CAAC,MAAM;AACrC,QAAA,KAAKE,qBAAM;YACP,OAAOF,2BAAmB,CAAC,MAAM;AACrC,QAAA,KAAKG,wBAAS;YACV,OAAOH,2BAAmB,CAAC,SAAS;AACxC,QAAA;AACI,YAAA,OAAO,MAAM;;AAEzB;;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/PerformRollCallFailureType.js b/apps/api-server/dist/enums/PerformRollCallFailureType.js new file mode 100644 index 000000000..7f2b2186d --- /dev/null +++ b/apps/api-server/dist/enums/PerformRollCallFailureType.js @@ -0,0 +1,10 @@ +'use strict'; + +exports.PerformRollCallFailureType = void 0; +(function (PerformRollCallFailureType) { + PerformRollCallFailureType["NotFound"] = "NotFound"; + PerformRollCallFailureType["NotAuthorizedParticipant"] = "NotAuthorizedParticipant"; + PerformRollCallFailureType["TooManyRequests"] = "TooManyRequests"; + PerformRollCallFailureType["HasOpenRollCall"] = "HasOpenRollCall"; +})(exports.PerformRollCallFailureType || (exports.PerformRollCallFailureType = {})); +//# sourceMappingURL=PerformRollCallFailureType.js.map diff --git a/apps/api-server/dist/enums/PerformRollCallFailureType.js.map b/apps/api-server/dist/enums/PerformRollCallFailureType.js.map new file mode 100644 index 000000000..9730e73a9 --- /dev/null +++ b/apps/api-server/dist/enums/PerformRollCallFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PerformRollCallFailureType.js","sources":["../../src/enums/PerformRollCallFailureType.ts"],"sourcesContent":[null],"names":["PerformRollCallFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,0BAA0B,EAAA;AAClC,IAAA,0BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,0BAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD;AACrD,IAAA,0BAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,0BAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACvC,CAAC,EALWA,kCAA0B,KAA1BA,kCAA0B,GAKrC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/PieceLogType.js b/apps/api-server/dist/enums/PieceLogType.js new file mode 100644 index 000000000..369e7a26e --- /dev/null +++ b/apps/api-server/dist/enums/PieceLogType.js @@ -0,0 +1,8 @@ +'use strict'; + +exports.PieceLogType = void 0; +(function (PieceLogType) { + PieceLogType["Dice"] = "Dice"; + PieceLogType["String"] = "String"; +})(exports.PieceLogType || (exports.PieceLogType = {})); +//# sourceMappingURL=PieceLogType.js.map diff --git a/apps/api-server/dist/enums/PieceLogType.js.map b/apps/api-server/dist/enums/PieceLogType.js.map new file mode 100644 index 000000000..6efd1815e --- /dev/null +++ b/apps/api-server/dist/enums/PieceLogType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PieceLogType.js","sources":["../../src/enums/PieceLogType.ts"],"sourcesContent":[null],"names":["PieceLogType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACrB,CAAC,EAHWA,oBAAY,KAAZA,oBAAY,GAGvB,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/PrereleaseType.js b/apps/api-server/dist/enums/PrereleaseType.js new file mode 100644 index 000000000..92c7cecb5 --- /dev/null +++ b/apps/api-server/dist/enums/PrereleaseType.js @@ -0,0 +1,9 @@ +'use strict'; + +exports.PrereleaseType = void 0; +(function (PrereleaseType) { + PrereleaseType["Alpha"] = "alpha"; + PrereleaseType["Beta"] = "beta"; + PrereleaseType["Rc"] = "rc"; +})(exports.PrereleaseType || (exports.PrereleaseType = {})); +//# sourceMappingURL=PrereleaseType.js.map diff --git a/apps/api-server/dist/enums/PrereleaseType.js.map b/apps/api-server/dist/enums/PrereleaseType.js.map new file mode 100644 index 000000000..58f273cc1 --- /dev/null +++ b/apps/api-server/dist/enums/PrereleaseType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PrereleaseType.js","sources":["../../src/enums/PrereleaseType.ts"],"sourcesContent":[null],"names":["PrereleaseType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,cAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACb,CAAC,EAJWA,sBAAc,KAAdA,sBAAc,GAIzB,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/PromoteFailureType.js b/apps/api-server/dist/enums/PromoteFailureType.js new file mode 100644 index 000000000..3bb7fcdbd --- /dev/null +++ b/apps/api-server/dist/enums/PromoteFailureType.js @@ -0,0 +1,10 @@ +'use strict'; + +exports.PromoteFailureType = void 0; +(function (PromoteFailureType) { + PromoteFailureType["NotFound"] = "NotFound"; + PromoteFailureType["WrongPassword"] = "WrongPassword"; + PromoteFailureType["NoNeedToPromote"] = "NoNeedToPromote"; + PromoteFailureType["NotParticipant"] = "NotParticipant"; +})(exports.PromoteFailureType || (exports.PromoteFailureType = {})); +//# sourceMappingURL=PromoteFailureType.js.map diff --git a/apps/api-server/dist/enums/PromoteFailureType.js.map b/apps/api-server/dist/enums/PromoteFailureType.js.map new file mode 100644 index 000000000..8dee0b375 --- /dev/null +++ b/apps/api-server/dist/enums/PromoteFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PromoteFailureType.js","sources":["../../src/enums/PromoteFailureType.ts"],"sourcesContent":[null],"names":["PromoteFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,kBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,kBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACrC,CAAC,EALWA,0BAAkB,KAAlBA,0BAAkB,GAK7B,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/ResetRoomMessagesFailureType.js b/apps/api-server/dist/enums/ResetRoomMessagesFailureType.js new file mode 100644 index 000000000..a85fb8d71 --- /dev/null +++ b/apps/api-server/dist/enums/ResetRoomMessagesFailureType.js @@ -0,0 +1,9 @@ +'use strict'; + +exports.ResetRoomMessagesFailureType = void 0; +(function (ResetRoomMessagesFailureType) { + ResetRoomMessagesFailureType["RoomNotFound"] = "RoomNotFound"; + ResetRoomMessagesFailureType["NotAuthorized"] = "NotAuthorized"; + ResetRoomMessagesFailureType["NotParticipant"] = "NotParticipant"; +})(exports.ResetRoomMessagesFailureType || (exports.ResetRoomMessagesFailureType = {})); +//# sourceMappingURL=ResetRoomMessagesFailureType.js.map diff --git a/apps/api-server/dist/enums/ResetRoomMessagesFailureType.js.map b/apps/api-server/dist/enums/ResetRoomMessagesFailureType.js.map new file mode 100644 index 000000000..e01ef52f1 --- /dev/null +++ b/apps/api-server/dist/enums/ResetRoomMessagesFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ResetRoomMessagesFailureType.js","sources":["../../src/enums/ResetRoomMessagesFailureType.ts"],"sourcesContent":[null],"names":["ResetRoomMessagesFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,4BAA4B,EAAA;AACpC,IAAA,4BAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,4BAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,4BAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACrC,CAAC,EAJWA,oCAA4B,KAA5BA,oCAA4B,GAIvC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/RoomParameterNameType.js b/apps/api-server/dist/enums/RoomParameterNameType.js new file mode 100644 index 000000000..1098ad326 --- /dev/null +++ b/apps/api-server/dist/enums/RoomParameterNameType.js @@ -0,0 +1,9 @@ +'use strict'; + +exports.RoomParameterNameType = void 0; +(function (RoomParameterNameType) { + RoomParameterNameType["Str"] = "Str"; + RoomParameterNameType["Num"] = "Num"; + RoomParameterNameType["Bool"] = "Bool"; +})(exports.RoomParameterNameType || (exports.RoomParameterNameType = {})); +//# sourceMappingURL=RoomParameterNameType.js.map diff --git a/apps/api-server/dist/enums/RoomParameterNameType.js.map b/apps/api-server/dist/enums/RoomParameterNameType.js.map new file mode 100644 index 000000000..3558aad1d --- /dev/null +++ b/apps/api-server/dist/enums/RoomParameterNameType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RoomParameterNameType.js","sources":["../../src/enums/RoomParameterNameType.ts"],"sourcesContent":[null],"names":["RoomParameterNameType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC7B,IAAA,qBAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,qBAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACjB,CAAC,EAJWA,6BAAqB,KAArBA,6BAAqB,GAIhC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/UpdateBookmarkFailureType.js b/apps/api-server/dist/enums/UpdateBookmarkFailureType.js new file mode 100644 index 000000000..7d082fe15 --- /dev/null +++ b/apps/api-server/dist/enums/UpdateBookmarkFailureType.js @@ -0,0 +1,7 @@ +'use strict'; + +exports.UpdateBookmarkFailureType = void 0; +(function (UpdateBookmarkFailureType) { + UpdateBookmarkFailureType["NotFound"] = "NotFound"; +})(exports.UpdateBookmarkFailureType || (exports.UpdateBookmarkFailureType = {})); +//# sourceMappingURL=UpdateBookmarkFailureType.js.map diff --git a/apps/api-server/dist/enums/UpdateBookmarkFailureType.js.map b/apps/api-server/dist/enums/UpdateBookmarkFailureType.js.map new file mode 100644 index 000000000..376a87ece --- /dev/null +++ b/apps/api-server/dist/enums/UpdateBookmarkFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UpdateBookmarkFailureType.js","sources":["../../src/enums/UpdateBookmarkFailureType.ts"],"sourcesContent":[null],"names":["UpdateBookmarkFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,yBAAyB,EAAA;AACjC,IAAA,yBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACzB,CAAC,EAFWA,iCAAyB,KAAzBA,iCAAyB,GAEpC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/WriteRoomPrivateMessageFailureType.js b/apps/api-server/dist/enums/WriteRoomPrivateMessageFailureType.js new file mode 100644 index 000000000..80e72f2c1 --- /dev/null +++ b/apps/api-server/dist/enums/WriteRoomPrivateMessageFailureType.js @@ -0,0 +1,10 @@ +'use strict'; + +exports.WriteRoomPrivateMessageFailureType = void 0; +(function (WriteRoomPrivateMessageFailureType) { + WriteRoomPrivateMessageFailureType["RoomNotFound"] = "RoomNotFound"; + WriteRoomPrivateMessageFailureType["VisibleToIsInvalid"] = "VisibleToIsInvalid"; + WriteRoomPrivateMessageFailureType["NotParticipant"] = "NotParticipant"; + WriteRoomPrivateMessageFailureType["SyntaxError"] = "SyntaxError"; +})(exports.WriteRoomPrivateMessageFailureType || (exports.WriteRoomPrivateMessageFailureType = {})); +//# sourceMappingURL=WriteRoomPrivateMessageFailureType.js.map diff --git a/apps/api-server/dist/enums/WriteRoomPrivateMessageFailureType.js.map b/apps/api-server/dist/enums/WriteRoomPrivateMessageFailureType.js.map new file mode 100644 index 000000000..8f379a3c6 --- /dev/null +++ b/apps/api-server/dist/enums/WriteRoomPrivateMessageFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WriteRoomPrivateMessageFailureType.js","sources":["../../src/enums/WriteRoomPrivateMessageFailureType.ts"],"sourcesContent":[null],"names":["WriteRoomPrivateMessageFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,kCAAkC,EAAA;AAC1C,IAAA,kCAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,kCAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,kCAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,kCAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC/B,CAAC,EALWA,0CAAkC,KAAlCA,0CAAkC,GAK7C,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/WriteRoomPublicMessageFailureType.js b/apps/api-server/dist/enums/WriteRoomPublicMessageFailureType.js new file mode 100644 index 000000000..2e5f9b520 --- /dev/null +++ b/apps/api-server/dist/enums/WriteRoomPublicMessageFailureType.js @@ -0,0 +1,11 @@ +'use strict'; + +exports.WriteRoomPublicMessageFailureType = void 0; +(function (WriteRoomPublicMessageFailureType) { + WriteRoomPublicMessageFailureType["RoomNotFound"] = "RoomNotFound"; + WriteRoomPublicMessageFailureType["NotAuthorized"] = "NotAuthorized"; + WriteRoomPublicMessageFailureType["NotParticipant"] = "NotParticipant"; + WriteRoomPublicMessageFailureType["NotAllowedChannelKey"] = "NotAllowedChannelKey"; + WriteRoomPublicMessageFailureType["SyntaxError"] = "SyntaxError"; +})(exports.WriteRoomPublicMessageFailureType || (exports.WriteRoomPublicMessageFailureType = {})); +//# sourceMappingURL=WriteRoomPublicMessageFailureType.js.map diff --git a/apps/api-server/dist/enums/WriteRoomPublicMessageFailureType.js.map b/apps/api-server/dist/enums/WriteRoomPublicMessageFailureType.js.map new file mode 100644 index 000000000..c8c3ba203 --- /dev/null +++ b/apps/api-server/dist/enums/WriteRoomPublicMessageFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WriteRoomPublicMessageFailureType.js","sources":["../../src/enums/WriteRoomPublicMessageFailureType.ts"],"sourcesContent":[null],"names":["WriteRoomPublicMessageFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,iCAAiC,EAAA;AACzC,IAAA,iCAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,iCAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,iCAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,iCAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,iCAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC/B,CAAC,EANWA,yCAAiC,KAAjCA,yCAAiC,GAM5C,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/WriteRoomSoundEffectFailureType.js b/apps/api-server/dist/enums/WriteRoomSoundEffectFailureType.js new file mode 100644 index 000000000..d18115adc --- /dev/null +++ b/apps/api-server/dist/enums/WriteRoomSoundEffectFailureType.js @@ -0,0 +1,9 @@ +'use strict'; + +exports.WriteRoomSoundEffectFailureType = void 0; +(function (WriteRoomSoundEffectFailureType) { + WriteRoomSoundEffectFailureType["RoomNotFound"] = "RoomNotFound"; + WriteRoomSoundEffectFailureType["NotAuthorized"] = "NotAuthorized"; + WriteRoomSoundEffectFailureType["NotParticipant"] = "NotParticipant"; +})(exports.WriteRoomSoundEffectFailureType || (exports.WriteRoomSoundEffectFailureType = {})); +//# sourceMappingURL=WriteRoomSoundEffectFailureType.js.map diff --git a/apps/api-server/dist/enums/WriteRoomSoundEffectFailureType.js.map b/apps/api-server/dist/enums/WriteRoomSoundEffectFailureType.js.map new file mode 100644 index 000000000..cfb5cbfaa --- /dev/null +++ b/apps/api-server/dist/enums/WriteRoomSoundEffectFailureType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WriteRoomSoundEffectFailureType.js","sources":["../../src/enums/WriteRoomSoundEffectFailureType.ts"],"sourcesContent":[null],"names":["WriteRoomSoundEffectFailureType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,+BAA+B,EAAA;AACvC,IAAA,+BAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,+BAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,+BAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACrC,CAAC,EAJWA,uCAA+B,KAA/BA,uCAA+B,GAI1C,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/WritingMessageStatusInputType.js b/apps/api-server/dist/enums/WritingMessageStatusInputType.js new file mode 100644 index 000000000..dd08d9bee --- /dev/null +++ b/apps/api-server/dist/enums/WritingMessageStatusInputType.js @@ -0,0 +1,9 @@ +'use strict'; + +exports.WritingMessageStatusInputType = void 0; +(function (WritingMessageStatusInputType) { + WritingMessageStatusInputType["StartWriting"] = "StartWriting"; + WritingMessageStatusInputType["KeepWriting"] = "KeepWriting"; + WritingMessageStatusInputType["Cleared"] = "Cleared"; +})(exports.WritingMessageStatusInputType || (exports.WritingMessageStatusInputType = {})); +//# sourceMappingURL=WritingMessageStatusInputType.js.map diff --git a/apps/api-server/dist/enums/WritingMessageStatusInputType.js.map b/apps/api-server/dist/enums/WritingMessageStatusInputType.js.map new file mode 100644 index 000000000..35ffe3be4 --- /dev/null +++ b/apps/api-server/dist/enums/WritingMessageStatusInputType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WritingMessageStatusInputType.js","sources":["../../src/enums/WritingMessageStatusInputType.ts"],"sourcesContent":[null],"names":["WritingMessageStatusInputType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,6BAA6B,EAAA;AACrC,IAAA,6BAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,6BAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,6BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACvB,CAAC,EAJWA,qCAA6B,KAA7BA,qCAA6B,GAIxC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/enums/WritingMessageStatusType.js b/apps/api-server/dist/enums/WritingMessageStatusType.js new file mode 100644 index 000000000..641990a1a --- /dev/null +++ b/apps/api-server/dist/enums/WritingMessageStatusType.js @@ -0,0 +1,10 @@ +'use strict'; + +exports.WritingMessageStatusType = void 0; +(function (WritingMessageStatusType) { + WritingMessageStatusType["Submit"] = "Submit"; + WritingMessageStatusType["Writing"] = "Writing"; + WritingMessageStatusType["Cleared"] = "Cleared"; + WritingMessageStatusType["Disconnected"] = "Disconnected"; +})(exports.WritingMessageStatusType || (exports.WritingMessageStatusType = {})); +//# sourceMappingURL=WritingMessageStatusType.js.map diff --git a/apps/api-server/dist/enums/WritingMessageStatusType.js.map b/apps/api-server/dist/enums/WritingMessageStatusType.js.map new file mode 100644 index 000000000..8c3c78c5c --- /dev/null +++ b/apps/api-server/dist/enums/WritingMessageStatusType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WritingMessageStatusType.js","sources":["../../src/enums/WritingMessageStatusType.ts"],"sourcesContent":[null],"names":["WritingMessageStatusType"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAChC,IAAA,wBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,wBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AACjC,CAAC,EALWA,gCAAwB,KAAxBA,gCAAwB,GAKnC,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/env.js b/apps/api-server/dist/env.js new file mode 100644 index 000000000..b8b7ef581 --- /dev/null +++ b/apps/api-server/dist/env.js @@ -0,0 +1,62 @@ +'use strict'; + +var fs = require('fs'); +var loggerBase = require('@flocon-trpg/logger-base'); +var dotenv = require('dotenv'); +var dotenvExpand = require('dotenv-expand'); + +const loadDotenv = () => { + const dotenvFiles = ['.env.local', '.env']; + dotenvFiles.forEach(dotenvFile => { + if (fs.existsSync(dotenvFile)) { + dotenvExpand.expand(dotenv.config({ + path: dotenvFile, + })); + } + }); +}; +const ACCESS_CONTROL_ALLOW_ORIGIN = 'ACCESS_CONTROL_ALLOW_ORIGIN'; +const AUTO_MIGRATION = 'AUTO_MIGRATION'; +const DATABASE_URL = 'DATABASE_URL'; +const EMBUPLOADER_ENABLED = 'EMBUPLOADER_ENABLED'; +const EMBUPLOADER_MAX_SIZE = 'EMBUPLOADER_MAX_SIZE'; +const EMBUPLOADER_SIZE_QUOTA = 'EMBUPLOADER_SIZE_QUOTA'; +const EMBUPLOADER_COUNT_QUOTA = 'EMBUPLOADER_COUNT_QUOTA'; +const EMBUPLOADER_PATH = 'EMBUPLOADER_PATH'; +const ENTRY_PASSWORD = 'ENTRY_PASSWORD'; +const FIREBASE_PROJECTID = 'FIREBASE_PROJECTID'; +const FIREBASE_PROJECT_ID = 'FIREBASE_PROJECT_ID'; +const FIREBASE_ADMIN_SECRET = 'FIREBASE_ADMIN_SECRET'; +const FLOCON_API_DISABLE_RATE_LIMIT_EXPERIMENTAL = 'FLOCON_API_DISABLE_RATE_LIMIT_EXPERIMENTAL'; +const FLOCON_ADMIN = 'FLOCON_ADMIN'; +const HEROKU = 'HEROKU'; +const LOG_FORMAT = loggerBase.LOG_FORMAT; +const LOG_LEVEL = 'LOG_LEVEL'; +const MYSQL = 'MYSQL'; +const POSTGRESQL = 'POSTGRESQL'; +const ROOMHIST_COUNT = 'ROOMHIST_COUNT'; +const SQLITE = 'SQLITE'; + +exports.ACCESS_CONTROL_ALLOW_ORIGIN = ACCESS_CONTROL_ALLOW_ORIGIN; +exports.AUTO_MIGRATION = AUTO_MIGRATION; +exports.DATABASE_URL = DATABASE_URL; +exports.EMBUPLOADER_COUNT_QUOTA = EMBUPLOADER_COUNT_QUOTA; +exports.EMBUPLOADER_ENABLED = EMBUPLOADER_ENABLED; +exports.EMBUPLOADER_MAX_SIZE = EMBUPLOADER_MAX_SIZE; +exports.EMBUPLOADER_PATH = EMBUPLOADER_PATH; +exports.EMBUPLOADER_SIZE_QUOTA = EMBUPLOADER_SIZE_QUOTA; +exports.ENTRY_PASSWORD = ENTRY_PASSWORD; +exports.FIREBASE_ADMIN_SECRET = FIREBASE_ADMIN_SECRET; +exports.FIREBASE_PROJECTID = FIREBASE_PROJECTID; +exports.FIREBASE_PROJECT_ID = FIREBASE_PROJECT_ID; +exports.FLOCON_ADMIN = FLOCON_ADMIN; +exports.FLOCON_API_DISABLE_RATE_LIMIT_EXPERIMENTAL = FLOCON_API_DISABLE_RATE_LIMIT_EXPERIMENTAL; +exports.HEROKU = HEROKU; +exports.LOG_FORMAT = LOG_FORMAT; +exports.LOG_LEVEL = LOG_LEVEL; +exports.MYSQL = MYSQL; +exports.POSTGRESQL = POSTGRESQL; +exports.ROOMHIST_COUNT = ROOMHIST_COUNT; +exports.SQLITE = SQLITE; +exports.loadDotenv = loadDotenv; +//# sourceMappingURL=env.js.map diff --git a/apps/api-server/dist/env.js.map b/apps/api-server/dist/env.js.map new file mode 100644 index 000000000..bef45e736 --- /dev/null +++ b/apps/api-server/dist/env.js.map @@ -0,0 +1 @@ +{"version":3,"file":"env.js","sources":["../src/env.ts"],"sourcesContent":[null],"names":["existsSync","expand","config","$LOG_FORMAT"],"mappings":";;;;;;;AAKO,MAAM,UAAU,GAAG,MAAW;AAGjC,IAAA,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC;AAE1C,IAAA,WAAW,CAAC,OAAO,CAAC,UAAU,IAAG;AAC7B,QAAA,IAAIA,aAAU,CAAC,UAAU,CAAC,EAAE;YACxBC,mBAAM,CACFC,aAAM,CAAC;AACH,gBAAA,IAAI,EAAE,UAAU;AACnB,aAAA,CAAC,CACL;;AAET,KAAC,CAAC;AACN;AAIO,MAAM,2BAA2B,GAAG;AACpC,MAAM,cAAc,GAAG;AACvB,MAAM,YAAY,GAAG;AACrB,MAAM,mBAAmB,GAAG;AAC5B,MAAM,oBAAoB,GAAG;AAC7B,MAAM,sBAAsB,GAAG;AAC/B,MAAM,uBAAuB,GAAG;AAChC,MAAM,gBAAgB,GAAG;AACzB,MAAM,cAAc,GAAG;AAEvB,MAAM,kBAAkB,GAAG;AAE3B,MAAM,mBAAmB,GAAG;AAC5B,MAAM,qBAAqB,GAAG;AAC9B,MAAM,0CAA0C,GACnD;AACG,MAAM,YAAY,GAAG;AACrB,MAAM,MAAM,GAAG;AACf,MAAM,UAAU,GAAGC;AACnB,MAAM,SAAS,GAAG;AAClB,MAAM,KAAK,GAAG;AACd,MAAM,UAAU,GAAG;AACnB,MAAM,cAAc,GAAG;AACvB,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/middlewares/QueueMiddleware.js b/apps/api-server/dist/graphql/middlewares/QueueMiddleware.js new file mode 100644 index 000000000..248079098 --- /dev/null +++ b/apps/api-server/dist/graphql/middlewares/QueueMiddleware.js @@ -0,0 +1,18 @@ +'use strict'; + +var promiseQueue = require('../../utils/promiseQueue.js'); + +const timeoutMs = 10000; +const QueueMiddleware = async ({ context }, next) => { + const result = await context.promiseQueue.nextWithTimeout(() => next(), timeoutMs); + switch (result.type) { + case promiseQueue.queueLimitReached: + throw new Error('PromiseQueue rejected your operation. Server is too busy or there is a bug. / リクエストされた処理は拒否されました。サーバーに負荷がかかっているか、ソースコードにバグがあります。'); + case promiseQueue.timeout: + throw new Error('PromiseQueue timeout. Requested operation is too heavy or there is a bug. / リクエストされた処理がタイムアウトしました。処理が非常に重いか、ソースコードにバグがあります。'); + } + return result.value; +}; + +exports.QueueMiddleware = QueueMiddleware; +//# sourceMappingURL=QueueMiddleware.js.map diff --git a/apps/api-server/dist/graphql/middlewares/QueueMiddleware.js.map b/apps/api-server/dist/graphql/middlewares/QueueMiddleware.js.map new file mode 100644 index 000000000..f16cd40b7 --- /dev/null +++ b/apps/api-server/dist/graphql/middlewares/QueueMiddleware.js.map @@ -0,0 +1 @@ +{"version":3,"file":"QueueMiddleware.js","sources":["../../../src/graphql/middlewares/QueueMiddleware.ts"],"sourcesContent":[null],"names":["queueLimitReached","timeout"],"mappings":";;;;AAGA,MAAM,SAAS,GAAG,KAAK;AAGhB,MAAM,eAAe,GAAkC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,KAAI;AACtF,IAAA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,IAAI,EAAE,EAAE,SAAS,CAAC;AAClF,IAAA,QAAQ,MAAM,CAAC,IAAI;AACf,QAAA,KAAKA,8BAAiB;AAClB,YAAA,MAAM,IAAI,KAAK,CACX,kIAAkI,CACrI;AACL,QAAA,KAAKC,oBAAO;AACR,YAAA,MAAM,IAAI,KAAK,CACX,6HAA6H,CAChI;;IAKT,OAAO,MAAM,CAAC,KAAK;AACvB;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/middlewares/RateLimitMiddleware.js b/apps/api-server/dist/graphql/middlewares/RateLimitMiddleware.js new file mode 100644 index 000000000..f04ccb37b --- /dev/null +++ b/apps/api-server/dist/graphql/middlewares/RateLimitMiddleware.js @@ -0,0 +1,21 @@ +'use strict'; + +var utils$1 = require('@flocon-trpg/utils'); +var consume = require('../../rateLimit/consume.js'); +var utils = require('../resolvers/utils/utils.js'); + +const RateLimitMiddleware = (consume$1) => async ({ context }, next) => { + const decodedIdToken = utils.checkSignIn(context); + if (decodedIdToken === utils.NotSignIn) { + utils$1.loggerRef.warn(`RateLimitMiddlewareにおいて、decondedIdTokenが見つかりませんでした。RateLimitMiddlewareが@Authorizedとともに使われていることを確認してください。`); + return await next(); + } + const error = await consume.consume(context.rateLimiter, decodedIdToken.uid, consume$1); + if (error != null) { + throw new Error(error.errorMessage); + } + return await next(); +}; + +exports.RateLimitMiddleware = RateLimitMiddleware; +//# sourceMappingURL=RateLimitMiddleware.js.map diff --git a/apps/api-server/dist/graphql/middlewares/RateLimitMiddleware.js.map b/apps/api-server/dist/graphql/middlewares/RateLimitMiddleware.js.map new file mode 100644 index 000000000..02511af75 --- /dev/null +++ b/apps/api-server/dist/graphql/middlewares/RateLimitMiddleware.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RateLimitMiddleware.js","sources":["../../../src/graphql/middlewares/RateLimitMiddleware.ts"],"sourcesContent":[null],"names":["consume","checkSignIn","NotSignIn","loggerRef","consumeFunction"],"mappings":";;;;;;AAOa,MAAA,mBAAmB,GAC5B,CAACA,SAAe,KAChB,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,KAAI;AACxB,IAAA,MAAM,cAAc,GAAGC,iBAAW,CAAC,OAAO,CAAC;AAC3C,IAAA,IAAI,cAAc,KAAKC,eAAS,EAAE;AAC9B,QAAAC,iBAAS,CAAC,IAAI,CACV,CAAA,wGAAA,CAA0G,CAC7G;QAED,OAAO,MAAM,IAAI,EAAE;;AAEvB,IAAA,MAAM,KAAK,GAAG,MAAMC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,EAAEJ,SAAO,CAAC;AACrF,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,QAAA,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;;IAGvC,OAAO,MAAM,IAAI,EAAE;AACvB;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/objects/fileItem.js b/apps/api-server/dist/graphql/objects/fileItem.js new file mode 100644 index 000000000..33fc17b76 --- /dev/null +++ b/apps/api-server/dist/graphql/objects/fileItem.js @@ -0,0 +1,43 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var FileListType = require('../../enums/FileListType.js'); + +exports.FileItem = class FileItem { +}; +tslib.__decorate([ + typeGraphql.Field(() => typeGraphql.ID, { + description: 'サーバーで管理されているファイル名。axiosなどでファイルを取得する際はこれを用いる。ソートするとアップロードした時系列順になる。', + }), + tslib.__metadata("design:type", String) +], exports.FileItem.prototype, "filename", void 0); +tslib.__decorate([ + typeGraphql.Field({ + nullable: true, + description: 'サムネイル画像のファイル名。axiosなどを用いてファイルを取得する。', + }), + tslib.__metadata("design:type", String) +], exports.FileItem.prototype, "thumbFilename", void 0); +tslib.__decorate([ + typeGraphql.Field({ description: 'ユーザーが名付けたファイル名。' }), + tslib.__metadata("design:type", String) +], exports.FileItem.prototype, "screenname", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", Number) +], exports.FileItem.prototype, "createdAt", void 0); +tslib.__decorate([ + typeGraphql.Field({ + description: 'ファイルをアップロードしたユーザー。Firebase AuthenticationのUserUidで表現される。', + }), + tslib.__metadata("design:type", String) +], exports.FileItem.prototype, "createdBy", void 0); +tslib.__decorate([ + typeGraphql.Field(() => FileListType.FileListType), + tslib.__metadata("design:type", String) +], exports.FileItem.prototype, "listType", void 0); +exports.FileItem = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.FileItem); +//# sourceMappingURL=fileItem.js.map diff --git a/apps/api-server/dist/graphql/objects/fileItem.js.map b/apps/api-server/dist/graphql/objects/fileItem.js.map new file mode 100644 index 000000000..fa4e682d5 --- /dev/null +++ b/apps/api-server/dist/graphql/objects/fileItem.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fileItem.js","sources":["../../../src/graphql/objects/fileItem.ts"],"sourcesContent":[null],"names":["FileItem","__decorate","Field","ID","FileListType","ObjectType"],"mappings":";;;;;;AAIaA,gBAAQ,GAAd,MAAM,QAAQ,CAAA;;AAKVC,gBAAA,CAAA;AAJN,IAAAC,iBAAK,CAAC,MAAMC,cAAE,EAAE;AACb,QAAA,WAAW,EACP,oEAAoE;KAC3E,CAAC;;AACuB,CAAA,EAAAH,gBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAMlBC,gBAAA,CAAA;AAJN,IAAAC,iBAAK,CAAC;AACH,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,WAAW,EAAE,qCAAqC;KACrD,CAAC;;AAC4B,CAAA,EAAAF,gBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA;AAGvBC,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;;AACf,CAAA,EAAAF,gBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAGpBC,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACA,CAAA,EAAAF,gBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAMnBC,gBAAA,CAAA;AAJN,IAAAC,iBAAK,CAAC;AACH,QAAA,WAAW,EACP,0DAA0D;KACjE,CAAC;;AACwB,CAAA,EAAAF,gBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAGnBC,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,MAAME,yBAAY,CAAC;;AACK,CAAA,EAAAJ,gBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AA1BtBA,gBAAQ,GAAAC,gBAAA,CAAA;AADpB,IAAAI,sBAAU;AACE,CAAA,EAAAL,gBAAQ,CA2BpB;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/objects/filePath.js b/apps/api-server/dist/graphql/objects/filePath.js new file mode 100644 index 000000000..70eed9c43 --- /dev/null +++ b/apps/api-server/dist/graphql/objects/filePath.js @@ -0,0 +1,23 @@ +'use strict'; + +var tslib = require('tslib'); +var classValidator = require('class-validator'); +var typeGraphql = require('type-graphql'); +var FileSourceType = require('../../enums/FileSourceType.js'); + +exports.FilePath = class FilePath { +}; +tslib.__decorate([ + typeGraphql.Field(), + classValidator.MaxLength(10000), + tslib.__metadata("design:type", String) +], exports.FilePath.prototype, "path", void 0); +tslib.__decorate([ + typeGraphql.Field(() => FileSourceType.FileSourceType), + tslib.__metadata("design:type", String) +], exports.FilePath.prototype, "sourceType", void 0); +exports.FilePath = tslib.__decorate([ + typeGraphql.ObjectType(), + typeGraphql.InputType('FilePathInput') +], exports.FilePath); +//# sourceMappingURL=filePath.js.map diff --git a/apps/api-server/dist/graphql/objects/filePath.js.map b/apps/api-server/dist/graphql/objects/filePath.js.map new file mode 100644 index 000000000..ea7ac9e8d --- /dev/null +++ b/apps/api-server/dist/graphql/objects/filePath.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filePath.js","sources":["../../../src/graphql/objects/filePath.ts"],"sourcesContent":[null],"names":["FilePath","__decorate","Field","MaxLength","FileSourceType","ObjectType","InputType"],"mappings":";;;;;;;AAMaA,gBAAQ,GAAd,MAAM,QAAQ,CAAA;;AAGVC,gBAAA,CAAA;AAFN,IAAAC,iBAAK,EAAE;IACPC,wBAAS,CAAC,KAAM,CAAC;;AACG,CAAA,EAAAH,gBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAGdC,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,MAAME,6BAAc,CAAC;;AACO,CAAA,EAAAJ,gBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAN1BA,gBAAQ,GAAAC,gBAAA,CAAA;AAFpB,IAAAI,sBAAU,EAAE;IACZC,qBAAS,CAAC,eAAe;AACb,CAAA,EAAAN,gBAAQ,CAOpB;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/objects/pong.js b/apps/api-server/dist/graphql/objects/pong.js new file mode 100644 index 000000000..e972627c4 --- /dev/null +++ b/apps/api-server/dist/graphql/objects/pong.js @@ -0,0 +1,19 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); + +exports.Pong = class Pong { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], exports.Pong.prototype, "value", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.Pong.prototype, "createdBy", void 0); +exports.Pong = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.Pong); +//# sourceMappingURL=pong.js.map diff --git a/apps/api-server/dist/graphql/objects/pong.js.map b/apps/api-server/dist/graphql/objects/pong.js.map new file mode 100644 index 000000000..50aa24c63 --- /dev/null +++ b/apps/api-server/dist/graphql/objects/pong.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pong.js","sources":["../../../src/graphql/objects/pong.ts"],"sourcesContent":[null],"names":["Pong","__decorate","Field","ObjectType"],"mappings":";;;;;AAGaA,YAAI,GAAV,MAAM,IAAI,CAAA;;AAENC,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACc,CAAA,EAAAF,YAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAGfC,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACA,CAAA,EAAAF,YAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AALjBA,YAAI,GAAAC,gBAAA,CAAA;AADhB,IAAAE,sBAAU;AACE,CAAA,EAAAH,YAAI,CAMhB;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/objects/room.js b/apps/api-server/dist/graphql/objects/room.js new file mode 100644 index 000000000..025e07c78 --- /dev/null +++ b/apps/api-server/dist/graphql/objects/room.js @@ -0,0 +1,124 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var ParticipantRoleType = require('../../enums/ParticipantRoleType.js'); + +exports.RoomGetState = class RoomGetState { +}; +tslib.__decorate([ + typeGraphql.Field({ + description: 'Current revision of Room. Whenever Room is updated, this value is incremented by 1. This value is required when you apply RoomOperation. / Roomの現在のリビジョン。Roomが更新されるたび、この値は1増加する。RoomOperationを適用する際に必要となる。', + }), + tslib.__metadata("design:type", Number) +], exports.RoomGetState.prototype, "revision", void 0); +tslib.__decorate([ + typeGraphql.Field({ description: 'この部屋の作成者。Firebase AuthenticationのUserUidで表現される。' }), + tslib.__metadata("design:type", String) +], exports.RoomGetState.prototype, "createdBy", void 0); +tslib.__decorate([ + typeGraphql.Field({ description: 'since v0.7.2', nullable: true }), + tslib.__metadata("design:type", Number) +], exports.RoomGetState.prototype, "createdAt", void 0); +tslib.__decorate([ + typeGraphql.Field({ + description: `データベースのRoomエンティティが最後に更新された日時。Roomエンティティのみが対象であるため、例えばメッセージの投稿などは反映されないことに注意。 +since v0.7.2`, + nullable: true, + }), + tslib.__metadata("design:type", Number) +], exports.RoomGetState.prototype, "updatedAt", void 0); +tslib.__decorate([ + typeGraphql.Field({ description: 'room.state をJSON化したもの' }), + tslib.__metadata("design:type", String) +], exports.RoomGetState.prototype, "stateJson", void 0); +tslib.__decorate([ + typeGraphql.Field({ description: 'since v0.7.2' }), + tslib.__metadata("design:type", Boolean) +], exports.RoomGetState.prototype, "isBookmarked", void 0); +tslib.__decorate([ + typeGraphql.Field(() => ParticipantRoleType.ParticipantRoleType, { description: 'since v0.7.2', nullable: true }), + tslib.__metadata("design:type", Object) +], exports.RoomGetState.prototype, "role", void 0); +exports.RoomGetState = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomGetState); +let OperatedBy = class OperatedBy { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], OperatedBy.prototype, "userUid", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], OperatedBy.prototype, "clientId", void 0); +OperatedBy = tslib.__decorate([ + typeGraphql.ObjectType() +], OperatedBy); +exports.RoomOperation = class RoomOperation { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], exports.RoomOperation.prototype, "revisionTo", void 0); +tslib.__decorate([ + typeGraphql.Field(() => OperatedBy, { + nullable: true, + description: 'operateRoomを呼んだ人物。promoteなどの結果の場合はnullishになる。', + }), + tslib.__metadata("design:type", OperatedBy) +], exports.RoomOperation.prototype, "operatedBy", void 0); +tslib.__decorate([ + typeGraphql.Field({ description: 'room.upOperationをJSONにしたもの。idならばnullish。' }), + tslib.__metadata("design:type", String) +], exports.RoomOperation.prototype, "valueJson", void 0); +exports.RoomOperation = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomOperation); +exports.RoomAsListItem = class RoomAsListItem { +}; +tslib.__decorate([ + typeGraphql.Field(() => typeGraphql.ID), + tslib.__metadata("design:type", String) +], exports.RoomAsListItem.prototype, "id", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.RoomAsListItem.prototype, "name", void 0); +tslib.__decorate([ + typeGraphql.Field({ description: 'since v0.7.2', nullable: true }), + tslib.__metadata("design:type", Number) +], exports.RoomAsListItem.prototype, "createdAt", void 0); +tslib.__decorate([ + typeGraphql.Field({ + description: `データベースのRoomエンティティが最後に更新された日時。Roomエンティティのみが対象であるため、例えばメッセージの投稿などは反映されないことに注意。 +since v0.7.2`, + nullable: true, + }), + tslib.__metadata("design:type", Number) +], exports.RoomAsListItem.prototype, "updatedAt", void 0); +tslib.__decorate([ + typeGraphql.Field({ description: 'この部屋の作成者。Firebase AuthenticationのUserUidで表現される。' }), + tslib.__metadata("design:type", String) +], exports.RoomAsListItem.prototype, "createdBy", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], exports.RoomAsListItem.prototype, "requiresPlayerPassword", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], exports.RoomAsListItem.prototype, "requiresSpectatorPassword", void 0); +tslib.__decorate([ + typeGraphql.Field({ description: 'since v0.7.2' }), + tslib.__metadata("design:type", Boolean) +], exports.RoomAsListItem.prototype, "isBookmarked", void 0); +tslib.__decorate([ + typeGraphql.Field(() => ParticipantRoleType.ParticipantRoleType, { description: 'since v0.7.2', nullable: true }), + tslib.__metadata("design:type", Object) +], exports.RoomAsListItem.prototype, "role", void 0); +exports.RoomAsListItem = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomAsListItem); +//# sourceMappingURL=room.js.map diff --git a/apps/api-server/dist/graphql/objects/room.js.map b/apps/api-server/dist/graphql/objects/room.js.map new file mode 100644 index 000000000..581630ce4 --- /dev/null +++ b/apps/api-server/dist/graphql/objects/room.js.map @@ -0,0 +1 @@ +{"version":3,"file":"room.js","sources":["../../../src/graphql/objects/room.ts"],"sourcesContent":[null],"names":["RoomGetState","__decorate","Field","ParticipantRoleType","ObjectType","RoomOperation","RoomAsListItem","ID"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/objects/roomMessage.js b/apps/api-server/dist/graphql/objects/roomMessage.js new file mode 100644 index 000000000..dc151ed81 --- /dev/null +++ b/apps/api-server/dist/graphql/objects/roomMessage.js @@ -0,0 +1,644 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var typeGraphql = require('type-graphql'); +var DeleteMessageFailureType = require('../../enums/DeleteMessageFailureType.js'); +var EditMessageFailureType = require('../../enums/EditMessageFailureType.js'); +var GetRoomLogFailureType = require('../../enums/GetRoomLogFailureType.js'); +var GetRoomMessagesFailureType = require('../../enums/GetRoomMessagesFailureType.js'); +var MakeMessageNotSecretFailureType = require('../../enums/MakeMessageNotSecretFailureType.js'); +var PieceLogType$1 = require('../../enums/PieceLogType.js'); +var ResetRoomMessagesFailureType = require('../../enums/ResetRoomMessagesFailureType.js'); +var WriteRoomPrivateMessageFailureType = require('../../enums/WriteRoomPrivateMessageFailureType.js'); +var WriteRoomPublicMessageFailureType = require('../../enums/WriteRoomPublicMessageFailureType.js'); +var WriteRoomSoundEffectFailureType = require('../../enums/WriteRoomSoundEffectFailureType.js'); +var filePath = require('./filePath.js'); + +exports.CommandResult = class CommandResult { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.CommandResult.prototype, "text", void 0); +tslib.__decorate([ + typeGraphql.Field({ + nullable: true, + description: '成功判定のないコマンドの場合はnullish。成功判定のあるコマンドの場合はその結果。', + }), + tslib.__metadata("design:type", Boolean) +], exports.CommandResult.prototype, "isSuccess", void 0); +exports.CommandResult = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.CommandResult); +const RoomPublicChannelType = 'RoomPublicChannel'; +exports.RoomPublicChannel = class RoomPublicChannel { +}; +tslib.__decorate([ + typeGraphql.Field({ + description: `現在の仕様では、${FilePathModule.$system}, ${FilePathModule.$free}, '1', … , '10' の12個のみをサポートしている。このうち、${FilePathModule.$system}はシステムメッセージ専用チャンネルであるため誰も書き込むことができない。'1', …, '10'はSpectatorが書き込むことはできないが、${FilePathModule.$free}はSpectatorも書き込むことができる。`, + }), + tslib.__metadata("design:type", String) +], exports.RoomPublicChannel.prototype, "key", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPublicChannel.prototype, "name", void 0); +exports.RoomPublicChannel = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomPublicChannel); +exports.CharacterValueForMessage = class CharacterValueForMessage { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.CharacterValueForMessage.prototype, "stateId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], exports.CharacterValueForMessage.prototype, "isPrivate", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.CharacterValueForMessage.prototype, "name", void 0); +tslib.__decorate([ + typeGraphql.Field(() => filePath.FilePath, { nullable: true }), + tslib.__metadata("design:type", filePath.FilePath) +], exports.CharacterValueForMessage.prototype, "image", void 0); +tslib.__decorate([ + typeGraphql.Field(() => filePath.FilePath, { nullable: true }), + tslib.__metadata("design:type", filePath.FilePath) +], exports.CharacterValueForMessage.prototype, "portraitImage", void 0); +exports.CharacterValueForMessage = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.CharacterValueForMessage); +exports.UpdatedText = class UpdatedText { +}; +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.UpdatedText.prototype, "currentText", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], exports.UpdatedText.prototype, "updatedAt", void 0); +exports.UpdatedText = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.UpdatedText); +const RoomPublicMessageType = 'RoomPublicMessage'; +exports.RoomPublicMessage = class RoomPublicMessage { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.RoomPublicMessage.prototype, "messageId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.RoomPublicMessage.prototype, "channelKey", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPublicMessage.prototype, "initText", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPublicMessage.prototype, "initTextSource", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", exports.UpdatedText) +], exports.RoomPublicMessage.prototype, "updatedText", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPublicMessage.prototype, "textColor", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", exports.CommandResult) +], exports.RoomPublicMessage.prototype, "commandResult", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPublicMessage.prototype, "altTextToSecret", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], exports.RoomPublicMessage.prototype, "isSecret", void 0); +tslib.__decorate([ + typeGraphql.Field({ + nullable: true, + description: `channelKeyが${FilePathModule.$system}以外のときは、システムメッセージならばnullishで、そうでないならばnullishではない。${FilePathModule.$system}のとき、原則として全てシステムメッセージであるため常にnullishになる。`, + }), + tslib.__metadata("design:type", String) +], exports.RoomPublicMessage.prototype, "createdBy", void 0); +tslib.__decorate([ + typeGraphql.Field({ + nullable: true, + description: '発言がCharacterと紐付いているときはnon-nullish。PLとしての発言、もしくはcreatedByがnullishのときはnullish。', + }), + tslib.__metadata("design:type", exports.CharacterValueForMessage) +], exports.RoomPublicMessage.prototype, "character", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPublicMessage.prototype, "customName", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], exports.RoomPublicMessage.prototype, "createdAt", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", Number) +], exports.RoomPublicMessage.prototype, "updatedAt", void 0); +exports.RoomPublicMessage = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomPublicMessage); +const RoomPrivateMessageType = 'RoomPrivateMessage'; +exports.RoomPrivateMessage = class RoomPrivateMessage { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.RoomPrivateMessage.prototype, "messageId", void 0); +tslib.__decorate([ + typeGraphql.Field(() => [String]), + tslib.__metadata("design:type", Array) +], exports.RoomPrivateMessage.prototype, "visibleTo", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrivateMessage.prototype, "initText", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrivateMessage.prototype, "initTextSource", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", exports.UpdatedText) +], exports.RoomPrivateMessage.prototype, "updatedText", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrivateMessage.prototype, "textColor", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", exports.CommandResult) +], exports.RoomPrivateMessage.prototype, "commandResult", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrivateMessage.prototype, "altTextToSecret", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], exports.RoomPrivateMessage.prototype, "isSecret", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrivateMessage.prototype, "createdBy", void 0); +tslib.__decorate([ + typeGraphql.Field({ + nullable: true, + description: '発言がCharacterと紐付いているときはnon-nullish。PLとしての発言、もしくはcreatedByがnullishのときはnullish。後からCharacterの値が更新されても、この値が更新されることはない。', + }), + tslib.__metadata("design:type", exports.CharacterValueForMessage) +], exports.RoomPrivateMessage.prototype, "character", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrivateMessage.prototype, "customName", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], exports.RoomPrivateMessage.prototype, "createdAt", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", Number) +], exports.RoomPrivateMessage.prototype, "updatedAt", void 0); +exports.RoomPrivateMessage = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomPrivateMessage); +const PieceLogType = 'PieceLog'; +exports.PieceLog = class PieceLog { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.PieceLog.prototype, "messageId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.PieceLog.prototype, "stateId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], exports.PieceLog.prototype, "createdAt", void 0); +tslib.__decorate([ + typeGraphql.Field(() => PieceLogType$1.PieceLogType), + tslib.__metadata("design:type", String) +], exports.PieceLog.prototype, "logType", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.PieceLog.prototype, "valueJson", void 0); +exports.PieceLog = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.PieceLog); +const RoomSoundEffectType = 'RoomSoundEffect'; +exports.RoomSoundEffect = class RoomSoundEffect { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.RoomSoundEffect.prototype, "messageId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", filePath.FilePath) +], exports.RoomSoundEffect.prototype, "file", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomSoundEffect.prototype, "createdBy", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], exports.RoomSoundEffect.prototype, "createdAt", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], exports.RoomSoundEffect.prototype, "volume", void 0); +exports.RoomSoundEffect = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomSoundEffect); +typeGraphql.createUnionType({ + name: 'RoomMessage', + types: () => [ + exports.RoomPublicMessage, + exports.RoomPrivateMessage, + exports.PieceLog, + exports.RoomPublicChannel, + exports.RoomSoundEffect, + ], + resolveType: value => { + switch (value.__tstype) { + case RoomPrivateMessageType: + return exports.RoomPrivateMessage; + case RoomPublicChannelType: + return exports.RoomPublicMessage; + case PieceLogType: + return exports.PieceLog; + case RoomPublicMessageType: + return exports.RoomPublicChannel; + case RoomSoundEffectType: + return exports.RoomSoundEffect; + } + }, +}); +const RoomMessagesType = 'RoomMessages'; +exports.RoomMessages = class RoomMessages { +}; +tslib.__decorate([ + typeGraphql.Field(() => [exports.RoomPublicMessage]), + tslib.__metadata("design:type", Array) +], exports.RoomMessages.prototype, "publicMessages", void 0); +tslib.__decorate([ + typeGraphql.Field(() => [exports.RoomPrivateMessage]), + tslib.__metadata("design:type", Array) +], exports.RoomMessages.prototype, "privateMessages", void 0); +tslib.__decorate([ + typeGraphql.Field(() => [exports.PieceLog]), + tslib.__metadata("design:type", Array) +], exports.RoomMessages.prototype, "pieceLogs", void 0); +tslib.__decorate([ + typeGraphql.Field(() => [exports.RoomPublicChannel]), + tslib.__metadata("design:type", Array) +], exports.RoomMessages.prototype, "publicChannels", void 0); +tslib.__decorate([ + typeGraphql.Field(() => [exports.RoomSoundEffect]), + tslib.__metadata("design:type", Array) +], exports.RoomMessages.prototype, "soundEffects", void 0); +exports.RoomMessages = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomMessages); +const GetRoomMessagesFailureResultType = 'GetRoomMessagesFailureResult'; +exports.GetRoomMessagesFailureResult = class GetRoomMessagesFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => GetRoomMessagesFailureType.GetRoomMessagesFailureType), + tslib.__metadata("design:type", String) +], exports.GetRoomMessagesFailureResult.prototype, "failureType", void 0); +exports.GetRoomMessagesFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.GetRoomMessagesFailureResult); +const GetRoomMessagesResult = typeGraphql.createUnionType({ + name: 'GetRoomMessagesResult', + types: () => [exports.RoomMessages, exports.GetRoomMessagesFailureResult], + resolveType: value => { + switch (value.__tstype) { + case RoomMessagesType: + return exports.RoomMessages; + case GetRoomMessagesFailureResultType: + return exports.GetRoomMessagesFailureResult; + } + }, +}); +const GetRoomLogFailureResultType = 'GetRoomLogFailureResultType'; +exports.GetRoomLogFailureResult = class GetRoomLogFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => GetRoomLogFailureType.GetRoomLogFailureType), + tslib.__metadata("design:type", String) +], exports.GetRoomLogFailureResult.prototype, "failureType", void 0); +exports.GetRoomLogFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.GetRoomLogFailureResult); +const GetRoomLogResult = typeGraphql.createUnionType({ + name: 'GetRoomLogResult', + types: () => [exports.RoomMessages, exports.GetRoomLogFailureResult], + resolveType: value => { + switch (value.__tstype) { + case RoomMessagesType: + return exports.RoomMessages; + case GetRoomLogFailureResultType: + return exports.GetRoomLogFailureResult; + } + }, +}); +const RoomMessageSyntaxErrorType = 'RoomMessageSyntaxError'; +exports.RoomMessageSyntaxError = class RoomMessageSyntaxError { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.RoomMessageSyntaxError.prototype, "errorMessage", void 0); +exports.RoomMessageSyntaxError = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomMessageSyntaxError); +const WriteRoomPrivateMessageFailureResultType = 'WriteRoomPrivateMessageFailureResult'; +exports.WriteRoomPrivateMessageFailureResult = class WriteRoomPrivateMessageFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => WriteRoomPrivateMessageFailureType.WriteRoomPrivateMessageFailureType), + tslib.__metadata("design:type", String) +], exports.WriteRoomPrivateMessageFailureResult.prototype, "failureType", void 0); +exports.WriteRoomPrivateMessageFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.WriteRoomPrivateMessageFailureResult); +const WriteRoomPrivateMessageResult = typeGraphql.createUnionType({ + name: 'WriteRoomPrivateMessageResult', + types: () => [exports.RoomPrivateMessage, exports.WriteRoomPrivateMessageFailureResult, exports.RoomMessageSyntaxError], + resolveType: value => { + switch (value.__tstype) { + case RoomPrivateMessageType: + return exports.RoomPrivateMessage; + case WriteRoomPrivateMessageFailureResultType: + return exports.WriteRoomPrivateMessageFailureResult; + case RoomMessageSyntaxErrorType: + return exports.RoomMessageSyntaxError; + } + }, +}); +const WriteRoomPublicMessageFailureResultType = 'WriteRoomPublicMessageFailureResult'; +exports.WriteRoomPublicMessageFailureResult = class WriteRoomPublicMessageFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => WriteRoomPublicMessageFailureType.WriteRoomPublicMessageFailureType), + tslib.__metadata("design:type", String) +], exports.WriteRoomPublicMessageFailureResult.prototype, "failureType", void 0); +exports.WriteRoomPublicMessageFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.WriteRoomPublicMessageFailureResult); +const WriteRoomPublicMessageResult = typeGraphql.createUnionType({ + name: 'WriteRoomPublicMessageResult', + types: () => [exports.RoomPublicMessage, exports.WriteRoomPublicMessageFailureResult, exports.RoomMessageSyntaxError], + resolveType: value => { + switch (value.__tstype) { + case RoomPublicMessageType: + return exports.RoomPublicMessage; + case WriteRoomPublicMessageFailureResultType: + return exports.WriteRoomPublicMessageFailureResult; + case RoomMessageSyntaxErrorType: + return exports.RoomMessageSyntaxError; + } + }, +}); +const WriteRoomSoundEffectFailureResultType = 'WriteRoomSoundEffectFailureResult'; +exports.WriteRoomSoundEffectFailureResult = class WriteRoomSoundEffectFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => WriteRoomSoundEffectFailureType.WriteRoomSoundEffectFailureType), + tslib.__metadata("design:type", String) +], exports.WriteRoomSoundEffectFailureResult.prototype, "failureType", void 0); +exports.WriteRoomSoundEffectFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.WriteRoomSoundEffectFailureResult); +const WriteRoomSoundEffectResult = typeGraphql.createUnionType({ + name: 'WriteRoomSoundEffectResult', + types: () => [exports.RoomSoundEffect, exports.WriteRoomSoundEffectFailureResult], + resolveType: value => { + switch (value.__tstype) { + case RoomSoundEffectType: + return exports.RoomSoundEffect; + case WriteRoomSoundEffectFailureResultType: + return exports.WriteRoomSoundEffectFailureResult; + } + }, +}); +exports.MakeMessageNotSecretResult = class MakeMessageNotSecretResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => MakeMessageNotSecretFailureType.MakeMessageNotSecretFailureType, { nullable: true }), + tslib.__metadata("design:type", String) +], exports.MakeMessageNotSecretResult.prototype, "failureType", void 0); +exports.MakeMessageNotSecretResult = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.MakeMessageNotSecretResult); +exports.DeleteMessageResult = class DeleteMessageResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => DeleteMessageFailureType.DeleteMessageFailureType, { nullable: true }), + tslib.__metadata("design:type", String) +], exports.DeleteMessageResult.prototype, "failureType", void 0); +exports.DeleteMessageResult = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.DeleteMessageResult); +exports.EditMessageResult = class EditMessageResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => EditMessageFailureType.EditMessageFailureType, { nullable: true }), + tslib.__metadata("design:type", String) +], exports.EditMessageResult.prototype, "failureType", void 0); +exports.EditMessageResult = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.EditMessageResult); +const ResetRoomMessagesResultType = 'ResetRoomMessagesResult'; +exports.ResetRoomMessagesResult = class ResetRoomMessagesResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => ResetRoomMessagesFailureType.ResetRoomMessagesFailureType, { nullable: true }), + tslib.__metadata("design:type", String) +], exports.ResetRoomMessagesResult.prototype, "failureType", void 0); +exports.ResetRoomMessagesResult = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.ResetRoomMessagesResult); +const RoomPublicChannelUpdateType = 'RoomPublicChannelUpdate'; +exports.RoomPublicChannelUpdate = class RoomPublicChannelUpdate { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.RoomPublicChannelUpdate.prototype, "key", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPublicChannelUpdate.prototype, "name", void 0); +exports.RoomPublicChannelUpdate = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomPublicChannelUpdate); +const RoomPublicMessageUpdateType = 'RoomPublicMessageUpdate'; +exports.RoomPublicMessageUpdate = class RoomPublicMessageUpdate { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.RoomPublicMessageUpdate.prototype, "messageId", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPublicMessageUpdate.prototype, "initText", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPublicMessageUpdate.prototype, "initTextSource", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", exports.UpdatedText) +], exports.RoomPublicMessageUpdate.prototype, "updatedText", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", exports.CommandResult) +], exports.RoomPublicMessageUpdate.prototype, "commandResult", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPublicMessageUpdate.prototype, "altTextToSecret", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], exports.RoomPublicMessageUpdate.prototype, "isSecret", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", Number) +], exports.RoomPublicMessageUpdate.prototype, "updatedAt", void 0); +exports.RoomPublicMessageUpdate = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomPublicMessageUpdate); +const RoomPrivateMessageUpdateType = 'RoomPrivateMessageUpdate'; +exports.RoomPrivateMessageUpdate = class RoomPrivateMessageUpdate { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.RoomPrivateMessageUpdate.prototype, "messageId", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrivateMessageUpdate.prototype, "initText", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrivateMessageUpdate.prototype, "initTextSource", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", exports.UpdatedText) +], exports.RoomPrivateMessageUpdate.prototype, "updatedText", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", exports.CommandResult) +], exports.RoomPrivateMessageUpdate.prototype, "commandResult", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], exports.RoomPrivateMessageUpdate.prototype, "altTextToSecret", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], exports.RoomPrivateMessageUpdate.prototype, "isSecret", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", Number) +], exports.RoomPrivateMessageUpdate.prototype, "updatedAt", void 0); +exports.RoomPrivateMessageUpdate = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomPrivateMessageUpdate); +const RoomMessagesResetType = 'RoomMessagesReset'; +exports.RoomMessagesReset = class RoomMessagesReset { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], exports.RoomMessagesReset.prototype, "publicMessagesDeleted", void 0); +exports.RoomMessagesReset = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.RoomMessagesReset); +const RoomMessageEvent = typeGraphql.createUnionType({ + name: 'RoomMessageEvent', + types: () => [ + exports.RoomPublicMessage, + exports.RoomPrivateMessage, + exports.RoomPublicChannel, + exports.PieceLog, + exports.RoomSoundEffect, + exports.RoomPublicChannelUpdate, + exports.RoomPublicMessageUpdate, + exports.RoomPrivateMessageUpdate, + exports.RoomMessagesReset, + ], + resolveType: value => { + switch (value.__tstype) { + case RoomPublicMessageType: + return exports.RoomPublicMessage; + case RoomPrivateMessageType: + return exports.RoomPrivateMessage; + case RoomPublicChannelType: + return exports.RoomPublicChannel; + case PieceLogType: + return exports.PieceLog; + case RoomSoundEffectType: + return exports.RoomSoundEffect; + case RoomPublicChannelUpdateType: + return exports.RoomPublicChannelUpdate; + case RoomPublicMessageUpdateType: + return exports.RoomPublicMessageUpdate; + case RoomPrivateMessageUpdateType: + return exports.RoomPrivateMessageUpdate; + case RoomMessagesResetType: + return exports.RoomMessagesReset; + } + }, +}); + +exports.GetRoomLogFailureResultType = GetRoomLogFailureResultType; +exports.GetRoomLogResult = GetRoomLogResult; +exports.GetRoomMessagesFailureResultType = GetRoomMessagesFailureResultType; +exports.GetRoomMessagesResult = GetRoomMessagesResult; +exports.PieceLogType = PieceLogType; +exports.ResetRoomMessagesResultType = ResetRoomMessagesResultType; +exports.RoomMessageEvent = RoomMessageEvent; +exports.RoomMessageSyntaxErrorType = RoomMessageSyntaxErrorType; +exports.RoomMessagesResetType = RoomMessagesResetType; +exports.RoomMessagesType = RoomMessagesType; +exports.RoomPrivateMessageType = RoomPrivateMessageType; +exports.RoomPrivateMessageUpdateType = RoomPrivateMessageUpdateType; +exports.RoomPublicChannelType = RoomPublicChannelType; +exports.RoomPublicChannelUpdateType = RoomPublicChannelUpdateType; +exports.RoomPublicMessageType = RoomPublicMessageType; +exports.RoomPublicMessageUpdateType = RoomPublicMessageUpdateType; +exports.RoomSoundEffectType = RoomSoundEffectType; +exports.WriteRoomPrivateMessageFailureResultType = WriteRoomPrivateMessageFailureResultType; +exports.WriteRoomPrivateMessageResult = WriteRoomPrivateMessageResult; +exports.WriteRoomPublicMessageFailureResultType = WriteRoomPublicMessageFailureResultType; +exports.WriteRoomPublicMessageResult = WriteRoomPublicMessageResult; +exports.WriteRoomSoundEffectFailureResultType = WriteRoomSoundEffectFailureResultType; +exports.WriteRoomSoundEffectResult = WriteRoomSoundEffectResult; +//# sourceMappingURL=roomMessage.js.map diff --git a/apps/api-server/dist/graphql/objects/roomMessage.js.map b/apps/api-server/dist/graphql/objects/roomMessage.js.map new file mode 100644 index 000000000..0ed54b965 --- /dev/null +++ b/apps/api-server/dist/graphql/objects/roomMessage.js.map @@ -0,0 +1 @@ +{"version":3,"file":"roomMessage.js","sources":["../../../src/graphql/objects/roomMessage.ts"],"sourcesContent":[null],"names":["CommandResult","__decorate","Field","ObjectType","RoomPublicChannel","$system","$free","CharacterValueForMessage","FilePath","UpdatedText","RoomPublicMessage","RoomPrivateMessage","PieceLog","PieceLogTypeEnum","RoomSoundEffect","createUnionType","RoomMessages","GetRoomMessagesFailureResult","GetRoomMessagesFailureType","GetRoomLogFailureResult","GetRoomLogFailureType","RoomMessageSyntaxError","WriteRoomPrivateMessageFailureResult","WriteRoomPrivateMessageFailureType","WriteRoomPublicMessageFailureResult","WriteRoomPublicMessageFailureType","WriteRoomSoundEffectFailureResult","WriteRoomSoundEffectFailureType","MakeMessageNotSecretResult","MakeMessageNotSecretFailureType","DeleteMessageResult","DeleteMessageFailureType","EditMessageResult","EditMessageFailureType","ResetRoomMessagesResult","ResetRoomMessagesFailureType","RoomPublicChannelUpdate","RoomPublicMessageUpdate","RoomPrivateMessageUpdate","RoomMessagesReset"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/objects/serverInfo.js b/apps/api-server/dist/graphql/objects/serverInfo.js new file mode 100644 index 000000000..00df62608 --- /dev/null +++ b/apps/api-server/dist/graphql/objects/serverInfo.js @@ -0,0 +1,56 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var PrereleaseType = require('../../enums/PrereleaseType.js'); + +exports.Prerelease = class Prerelease { +}; +tslib.__decorate([ + typeGraphql.Field(() => PrereleaseType.PrereleaseType), + tslib.__metadata("design:type", String) +], exports.Prerelease.prototype, "type", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], exports.Prerelease.prototype, "version", void 0); +exports.Prerelease = tslib.__decorate([ + typeGraphql.ObjectType(), + typeGraphql.InputType('PrereleaseInput') +], exports.Prerelease); +exports.SemVer = class SemVer { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], exports.SemVer.prototype, "major", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], exports.SemVer.prototype, "minor", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], exports.SemVer.prototype, "patch", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", exports.Prerelease) +], exports.SemVer.prototype, "prerelease", void 0); +exports.SemVer = tslib.__decorate([ + typeGraphql.ObjectType(), + typeGraphql.InputType('SemVerInput') +], exports.SemVer); +exports.ServerInfo = class ServerInfo { +}; +tslib.__decorate([ + typeGraphql.Field(() => exports.SemVer), + tslib.__metadata("design:type", exports.SemVer) +], exports.ServerInfo.prototype, "version", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], exports.ServerInfo.prototype, "uploaderEnabled", void 0); +exports.ServerInfo = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.ServerInfo); +//# sourceMappingURL=serverInfo.js.map diff --git a/apps/api-server/dist/graphql/objects/serverInfo.js.map b/apps/api-server/dist/graphql/objects/serverInfo.js.map new file mode 100644 index 000000000..5dfec8497 --- /dev/null +++ b/apps/api-server/dist/graphql/objects/serverInfo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"serverInfo.js","sources":["../../../src/graphql/objects/serverInfo.ts"],"sourcesContent":[null],"names":["Prerelease","__decorate","Field","PrereleaseType","ObjectType","InputType","SemVer","ServerInfo"],"mappings":";;;;;;AAKaA,kBAAU,GAAhB,MAAM,UAAU,CAAA;;AAEZC,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,MAAMC,6BAAc,CAAC;;AACC,CAAA,EAAAH,kBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAGtBC,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACgB,CAAA,EAAAF,kBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AALfA,kBAAU,GAAAC,gBAAA,CAAA;AAFtB,IAAAG,sBAAU,EAAE;IACZC,qBAAS,CAAC,iBAAiB;AACf,CAAA,EAAAL,kBAAU,CAMtB;AAIYM,cAAM,GAAZ,MAAM,MAAM,CAAA;;AAERL,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACc,CAAA,EAAAI,cAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAGfL,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACc,CAAA,EAAAI,cAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAGfL,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACc,CAAA,EAAAI,cAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAGfL,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oCACNF,kBAAU;AAAC,CAAA,EAAAM,cAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAXtBA,cAAM,GAAAL,gBAAA,CAAA;AAFlB,IAAAG,sBAAU,EAAE;IACZC,qBAAS,CAAC,aAAa;AACX,CAAA,EAAAC,cAAM,CAYlB;AAGYC,kBAAU,GAAhB,MAAM,UAAU,CAAA;;AAEZN,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,MAAMI,cAAM,CAAC;oCACHA,cAAM;AAAC,CAAA,EAAAC,kBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAGjBN,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACyB,CAAA,EAAAK,kBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AALxBA,kBAAU,GAAAN,gBAAA,CAAA;AADtB,IAAAG,sBAAU;AACE,CAAA,EAAAG,kBAAU,CAMtB;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/registerEnumTypes.js b/apps/api-server/dist/graphql/registerEnumTypes.js new file mode 100644 index 000000000..be9784c38 --- /dev/null +++ b/apps/api-server/dist/graphql/registerEnumTypes.js @@ -0,0 +1,150 @@ +'use strict'; + +var typeGraphql = require('type-graphql'); +var BaasType = require('../enums/BaasType.js'); +var ChangeParticipantNameFailureType = require('../enums/ChangeParticipantNameFailureType.js'); +var CreateRoomFailureType = require('../enums/CreateRoomFailureType.js'); +var DeleteMessageFailureType = require('../enums/DeleteMessageFailureType.js'); +var DeleteRoomAsAdminFailureType = require('../enums/DeleteRoomAsAdminFailureType.js'); +var DeleteRoomFailureType = require('../enums/DeleteRoomFailureType.js'); +var EditMessageFailureType = require('../enums/EditMessageFailureType.js'); +var EntryToServerResultType = require('../enums/EntryToServerResultType.js'); +var FileListType = require('../enums/FileListType.js'); +var FileSourceType = require('../enums/FileSourceType.js'); +var GetRoomConnectionFailureType = require('../enums/GetRoomConnectionFailureType.js'); +var GetRoomFailureType = require('../enums/GetRoomFailureType.js'); +var GetRoomLogFailureType = require('../enums/GetRoomLogFailureType.js'); +var GetRoomMessagesFailureType = require('../enums/GetRoomMessagesFailureType.js'); +var GetRoomsListFailureType = require('../enums/GetRoomsListFailureType.js'); +var JoinRoomFailureType = require('../enums/JoinRoomFailureType.js'); +var LeaveRoomFailureType = require('../enums/LeaveRoomFailureType.js'); +var MakeMessageNotSecretFailureType = require('../enums/MakeMessageNotSecretFailureType.js'); +var OperateRoomFailureType = require('../enums/OperateRoomFailureType.js'); +var ParticipantRoleType = require('../enums/ParticipantRoleType.js'); +var PieceLogType = require('../enums/PieceLogType.js'); +var PrereleaseType = require('../enums/PrereleaseType.js'); +var PromoteFailureType = require('../enums/PromoteFailureType.js'); +var ResetRoomMessagesFailureType = require('../enums/ResetRoomMessagesFailureType.js'); +var RoomParameterNameType = require('../enums/RoomParameterNameType.js'); +var UpdateBookmarkFailureType = require('../enums/UpdateBookmarkFailureType.js'); +var WriteRoomPrivateMessageFailureType = require('../enums/WriteRoomPrivateMessageFailureType.js'); +var WriteRoomPublicMessageFailureType = require('../enums/WriteRoomPublicMessageFailureType.js'); +var WriteRoomSoundEffectFailureType = require('../enums/WriteRoomSoundEffectFailureType.js'); +var WritingMessageStatusInputType = require('../enums/WritingMessageStatusInputType.js'); +var WritingMessageStatusType = require('../enums/WritingMessageStatusType.js'); +var AnswerRollCallFailureType = require('../enums/AnswerRollCallFailureType.js'); +var CloseRollCallFailureType = require('../enums/CloseRollCallFailureType.js'); +var PerformRollCallFailureType = require('../enums/PerformRollCallFailureType.js'); + +let hasRegistered = false; +const registerEnumTypes = () => { + if (hasRegistered) { + return; + } + hasRegistered = true; + typeGraphql.registerEnumType(AnswerRollCallFailureType.AnswerRollCallFailureType, { + name: 'AnswerRollCallFailureType', + }); + typeGraphql.registerEnumType(BaasType.BaasType, { + name: 'BaasType', + }); + typeGraphql.registerEnumType(ChangeParticipantNameFailureType.ChangeParticipantNameFailureType, { + name: 'ChangeParticipantNameFailureType', + }); + typeGraphql.registerEnumType(CloseRollCallFailureType.CloseRollCallFailureType, { + name: 'CloseRollCallFailureType', + }); + typeGraphql.registerEnumType(CreateRoomFailureType.CreateRoomFailureType, { + name: 'CreateRoomFailureType', + }); + typeGraphql.registerEnumType(DeleteMessageFailureType.DeleteMessageFailureType, { + name: 'DeleteMessageFailureType', + }); + typeGraphql.registerEnumType(DeleteRoomFailureType.DeleteRoomFailureType, { + name: 'DeleteRoomFailureType', + }); + typeGraphql.registerEnumType(DeleteRoomAsAdminFailureType.DeleteRoomAsAdminFailureType, { + name: 'DeleteRoomAsAdminFailureType', + }); + typeGraphql.registerEnumType(EditMessageFailureType.EditMessageFailureType, { + name: 'EditMessageFailureType', + }); + typeGraphql.registerEnumType(EntryToServerResultType.EntryToServerResultType, { + name: 'EntryToServerResultType', + }); + typeGraphql.registerEnumType(FileListType.FileListType, { + name: 'FileListType', + }); + typeGraphql.registerEnumType(FileSourceType.FileSourceType, { + name: 'FileSourceType', + }); + typeGraphql.registerEnumType(GetRoomConnectionFailureType.GetRoomConnectionFailureType, { + name: 'GetRoomConnectionFailureType', + }); + typeGraphql.registerEnumType(GetRoomFailureType.GetRoomFailureType, { + name: 'GetRoomFailureType', + }); + typeGraphql.registerEnumType(GetRoomLogFailureType.GetRoomLogFailureType, { + name: 'GetRoomLogFailureType', + }); + typeGraphql.registerEnumType(GetRoomMessagesFailureType.GetRoomMessagesFailureType, { + name: 'GetRoomMessagesFailureType', + }); + typeGraphql.registerEnumType(GetRoomsListFailureType.GetRoomsListFailureType, { + name: 'GetRoomsListFailureType', + }); + typeGraphql.registerEnumType(JoinRoomFailureType.JoinRoomFailureType, { + name: 'JoinRoomFailureType', + }); + typeGraphql.registerEnumType(LeaveRoomFailureType.LeaveRoomFailureType, { + name: 'LeaveRoomFailureType', + }); + typeGraphql.registerEnumType(MakeMessageNotSecretFailureType.MakeMessageNotSecretFailureType, { + name: 'MakeMessageNotSecretFailureType', + }); + typeGraphql.registerEnumType(OperateRoomFailureType.OperateRoomFailureType, { + name: 'OperateRoomFailureType', + }); + typeGraphql.registerEnumType(ParticipantRoleType.ParticipantRoleType, { + name: 'ParticipantRole', + }); + typeGraphql.registerEnumType(PerformRollCallFailureType.PerformRollCallFailureType, { + name: 'PerformRollCallFailureType', + }); + typeGraphql.registerEnumType(PieceLogType.PieceLogType, { + name: 'PieceLogType', + }); + typeGraphql.registerEnumType(PrereleaseType.PrereleaseType, { + name: 'PrereleaseType', + }); + typeGraphql.registerEnumType(PromoteFailureType.PromoteFailureType, { + name: 'PromoteFailureType', + }); + typeGraphql.registerEnumType(ResetRoomMessagesFailureType.ResetRoomMessagesFailureType, { + name: 'ResetRoomMessagesFailureType', + }); + typeGraphql.registerEnumType(RoomParameterNameType.RoomParameterNameType, { + name: 'RoomParameterNameType', + }); + typeGraphql.registerEnumType(UpdateBookmarkFailureType.UpdateBookmarkFailureType, { + name: 'UpdateBookmarkFailureType', + }); + typeGraphql.registerEnumType(WriteRoomPrivateMessageFailureType.WriteRoomPrivateMessageFailureType, { + name: 'WriteRoomPrivateMessageFailureType', + }); + typeGraphql.registerEnumType(WriteRoomPublicMessageFailureType.WriteRoomPublicMessageFailureType, { + name: 'WriteRoomPublicMessageFailureType', + }); + typeGraphql.registerEnumType(WriteRoomSoundEffectFailureType.WriteRoomSoundEffectFailureType, { + name: 'WriteRoomSoundEffectFailureType', + }); + typeGraphql.registerEnumType(WritingMessageStatusInputType.WritingMessageStatusInputType, { + name: 'WritingMessageStatusInputType', + }); + typeGraphql.registerEnumType(WritingMessageStatusType.WritingMessageStatusType, { + name: 'WritingMessageStatusType', + }); +}; + +exports.registerEnumTypes = registerEnumTypes; +//# sourceMappingURL=registerEnumTypes.js.map diff --git a/apps/api-server/dist/graphql/registerEnumTypes.js.map b/apps/api-server/dist/graphql/registerEnumTypes.js.map new file mode 100644 index 000000000..26bf39a7a --- /dev/null +++ b/apps/api-server/dist/graphql/registerEnumTypes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"registerEnumTypes.js","sources":["../../src/graphql/registerEnumTypes.ts"],"sourcesContent":[null],"names":["registerEnumType","AnswerRollCallFailureType","BaasType","ChangeParticipantNameFailureType","CloseRollCallFailureType","CreateRoomFailureType","DeleteMessageFailureType","DeleteRoomFailureType","DeleteRoomAsAdminFailureType","EditMessageFailureType","EntryToServerResultType","FileListType","FileSourceType","GetRoomConnectionFailureType","GetRoomFailureType","GetRoomLogFailureType","GetRoomMessagesFailureType","GetRoomsListFailureType","JoinRoomFailureType","LeaveRoomFailureType","MakeMessageNotSecretFailureType","OperateRoomFailureType","ParticipantRoleType","PerformRollCallFailureType","PieceLogType","PrereleaseType","PromoteFailureType","ResetRoomMessagesFailureType","RoomParameterNameType","UpdateBookmarkFailureType","WriteRoomPrivateMessageFailureType","WriteRoomPublicMessageFailureType","WriteRoomSoundEffectFailureType","WritingMessageStatusInputType","WritingMessageStatusType"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/allResolvers.js b/apps/api-server/dist/graphql/resolvers/allResolvers.js new file mode 100644 index 000000000..047a07103 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/allResolvers.js @@ -0,0 +1,90 @@ +'use strict'; + +var resolver = require('./mutations/answerRollCall/resolver.js'); +var resolver$1 = require('./mutations/changeParitipantName/resolver.js'); +var resolver$2 = require('./mutations/closeRollCall/resolver.js'); +var resolver$3 = require('./mutations/createFileTag/resolver.js'); +var resolver$4 = require('./mutations/createRoom/resolver.js'); +var resolver$6 = require('./mutations/deleteFileTag/resolver.js'); +var resolver$5 = require('./mutations/deleteFiles/resolver.js'); +var resolver$7 = require('./mutations/deleteMessage/resolver.js'); +var resolver$8 = require('./mutations/deleteRoom/resolver.js'); +var resolver$9 = require('./mutations/deleteRoomAsAdmin/resolver.js'); +var resolver$a = require('./mutations/editFileTags/resolver.js'); +var resolver$b = require('./mutations/editMessage/resolver.js'); +var resolver$c = require('./mutations/entryToServer/resolver.js'); +var resolver$d = require('./mutations/joinRoom/resolver.js'); +var resolver$e = require('./mutations/leaveRoom/resolver.js'); +var resolver$f = require('./mutations/makeMessageNotSecret/resolver.js'); +var resolver$g = require('./mutations/operate/resolver.js'); +var resolver$h = require('./mutations/performRollCall/resolver.js'); +var resolver$i = require('./mutations/ping/resolver.js'); +var resolver$j = require('./mutations/promoteToPlayer/resolver.js'); +var resolver$k = require('./mutations/renameFiles/resolver.js'); +var resolver$l = require('./mutations/resetMessages/resolver.js'); +var resolver$m = require('./mutations/updateBookmark/resolver.js'); +var resolver$n = require('./mutations/updateWritingMessageStatus/resolver.js'); +var resolver$o = require('./mutations/writePrivateMessage/resolver.js'); +var resolver$p = require('./mutations/writePublicMessage/resolver.js'); +var resolver$q = require('./mutations/writeRoomSoundEffect/resolver.js'); +var resolver$r = require('./queries/getAvailableGameSystems/resolver.js'); +var resolver$s = require('./queries/getDiceHelpMessage/resolver.js'); +var resolver$t = require('./queries/getFiles/resolver.js'); +var resolver$u = require('./queries/getLog/resolver.js'); +var resolver$v = require('./queries/getMessages/resolver.js'); +var resolver$w = require('./queries/getMyRoles/resolver.js'); +var resolver$x = require('./queries/getRoom/resolver.js'); +var resolver$y = require('./queries/getRoomAsListItem/resolver.js'); +var resolver$z = require('./queries/getRoomConnections/resolver.js'); +var resolver$A = require('./queries/getRoomsList/resolver.js'); +var resolver$B = require('./queries/getServerInfo/resolver.js'); +var resolver$C = require('./queries/isEntry/resolver.js'); +var resolver$D = require('./subsciptions/pong/resolver.js'); +var resolver$E = require('./subsciptions/roomEvent/resolver.js'); + +const allResolvers = [ + resolver.AnswerRollCallResolver, + resolver$1.ChangeParticipantNameResolver, + resolver$2.CloseRollCallResolver, + resolver$3.CreateFileTagResolver, + resolver$4.CreateRoomResolver, + resolver$5.DeleteFilesResolver, + resolver$6.DeleteFileTagResolver, + resolver$7.DeleteMessageResolver, + resolver$8.DeleteRoomResolver, + resolver$9.DeleteRoomAsAdminResolver, + resolver$a.EditFileTagsResolver, + resolver$b.EditMessageResolver, + resolver$c.EntryToServerResolver, + resolver$d.JoinRoomResolver, + resolver$e.LeaveRoomResolver, + resolver$f.MakeMessageNotSecretResolver, + resolver$g.OperateResolver, + resolver$h.PerformRollCallResolver, + resolver$i.PingResolver, + resolver$j.PromoteToPlayerResolver, + resolver$k.RenameFilesResolver, + resolver$l.ResetMessagesResolver, + resolver$m.UpdateBookmarkResolver, + resolver$n.UpdateWritingMessageStatusResolver, + resolver$o.WritePrivateMessageResolver, + resolver$p.WritePublicMessageResolver, + resolver$q.WriteRoomSoundEffectResolver, + resolver$r.GetAvailableGameSystemsResolver, + resolver$s.GetDiceHelpMessageResolver, + resolver$t.GetFilesResolver, + resolver$u.GetLogResolver, + resolver$v.GetRoomMessagesResolver, + resolver$w.GetMyRolesResolver, + resolver$x.GetRoomResolver, + resolver$y.GetRoomAsListItemResolver, + resolver$z.GetRoomConnectionsResolver, + resolver$A.GetRoomsListResolver, + resolver$B.GetServerInfoResolver, + resolver$C.IsEntryResolver, + resolver$D.PongResolver, + resolver$E.RoomEventResolver, +]; + +exports.allResolvers = allResolvers; +//# sourceMappingURL=allResolvers.js.map diff --git a/apps/api-server/dist/graphql/resolvers/allResolvers.js.map b/apps/api-server/dist/graphql/resolvers/allResolvers.js.map new file mode 100644 index 000000000..eaf2d5498 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/allResolvers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"allResolvers.js","sources":["../../../src/graphql/resolvers/allResolvers.ts"],"sourcesContent":[null],"names":["AnswerRollCallResolver","ChangeParticipantNameResolver","CloseRollCallResolver","CreateFileTagResolver","CreateRoomResolver","DeleteFilesResolver","DeleteFileTagResolver","DeleteMessageResolver","DeleteRoomResolver","DeleteRoomAsAdminResolver","EditFileTagsResolver","EditMessageResolver","EntryToServerResolver","JoinRoomResolver","LeaveRoomResolver","MakeMessageNotSecretResolver","OperateResolver","PerformRollCallResolver","PingResolver","PromoteToPlayerResolver","RenameFilesResolver","ResetMessagesResolver","UpdateBookmarkResolver","UpdateWritingMessageStatusResolver","WritePrivateMessageResolver","WritePublicMessageResolver","WriteRoomSoundEffectResolver","GetAvailableGameSystemsResolver","GetDiceHelpMessageResolver","GetFilesResolver","GetLogResolver","GetRoomMessagesResolver","GetMyRolesResolver","GetRoomResolver","GetRoomAsListItemResolver","GetRoomConnectionsResolver","GetRoomsListResolver","GetServerInfoResolver","IsEntryResolver","PongResolver","RoomEventResolver"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0Ca,MAAA,YAAY,GAAG;IACxBA,+BAAsB;IACtBC,wCAA6B;IAC7BC,gCAAqB;IACrBC,gCAAqB;IACrBC,6BAAkB;IAClBC,8BAAmB;IACnBC,gCAAqB;IACrBC,gCAAqB;IACrBC,6BAAkB;IAClBC,oCAAyB;IACzBC,+BAAoB;IACpBC,8BAAmB;IACnBC,gCAAqB;IACrBC,2BAAgB;IAChBC,4BAAiB;IACjBC,uCAA4B;IAC5BC,0BAAe;IACfC,kCAAuB;IACvBC,uBAAY;IACZC,kCAAuB;IACvBC,8BAAmB;IACnBC,gCAAqB;IACrBC,iCAAsB;IACtBC,6CAAkC;IAClCC,sCAA2B;IAC3BC,qCAA0B;IAC1BC,uCAA4B;IAE5BC,0CAA+B;IAC/BC,qCAA0B;IAC1BC,2BAAgB;IAChBC,yBAAc;IACdC,kCAAuB;IACvBC,6BAAkB;IAClBC,0BAAe;IACfC,oCAAyB;IACzBC,qCAA0B;IAC1BC,+BAAoB;IACpBC,gCAAqB;IACrBC,0BAAe;IAEfC,uBAAY;IACZC,4BAAiB;;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/answerRollCall/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/answerRollCall/resolver.js new file mode 100644 index 000000000..0a6b4ab92 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/answerRollCall/resolver.js @@ -0,0 +1,104 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var result = require('@kizahasi/result'); +var immer = require('immer'); +var typeGraphql = require('type-graphql'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); +var AnswerRollCallFailureType = require('../../../../enums/AnswerRollCallFailureType.js'); + +let AnswerRollCallResult = class AnswerRollCallResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => AnswerRollCallFailureType.AnswerRollCallFailureType, { nullable: true }), + tslib.__metadata("design:type", String) +], AnswerRollCallResult.prototype, "failureType", void 0); +AnswerRollCallResult = tslib.__decorate([ + typeGraphql.ObjectType() +], AnswerRollCallResult); +exports.AnswerRollCallResolver = class AnswerRollCallResolver { + async answerRollCall(roomId, rollCallId, answer, context, pubSub) { + const myUserUid = utils.ensureUserUid(context); + const result$1 = await utils.operateAsAdminAndFlush({ + em: context.em, + roomId, + roomHistCount: undefined, + operationType: 'state', + operation: roomState => { + const me = roomState.participants?.[myUserUid]; + switch (me?.role) { + case FilePathModule.Master: + case FilePathModule.Player: + break; + default: + return result.Result.error(AnswerRollCallFailureType.AnswerRollCallFailureType.NotAuthorizedParticipant); + } + const rollCall = roomState.rollCalls?.[rollCallId]; + if (rollCall == null) { + return result.Result.error(AnswerRollCallFailureType.AnswerRollCallFailureType.RollCallNotFound); + } + const nextRoomState = immer.produce(roomState, roomState => { + const rollCall = roomState.rollCalls?.[rollCallId]; + if (rollCall == null) { + return; + } + const prevValue = rollCall.participants?.[myUserUid]?.answeredAt; + const newValue = answer ? new Date().getTime() : undefined; + if (prevValue != null && newValue != null && newValue - prevValue < 1000) { + return; + } + if (rollCall.participants == null) { + rollCall.participants = {}; + } + const targetParticipant = rollCall.participants[myUserUid]; + if (targetParticipant == null) { + rollCall.participants[myUserUid] = { + $v: 1, + $r: 1, + answeredAt: newValue, + }; + } + else { + targetParticipant.answeredAt = newValue; + } + }); + return result.Result.ok(nextRoomState); + }, + }); + if (result$1.isError) { + if (result$1.error.type === 'custom') { + return { failureType: result$1.error.error }; + } + throw FilePathModule.toOtError(result$1.error.error); + } + switch (result$1.value) { + case utils.RoomNotFound: + return { failureType: AnswerRollCallFailureType.AnswerRollCallFailureType.RoomNotFound }; + case utils.IdOperation: + return {}; + } + await utils.publishRoomEvent(pubSub, result$1.value); + return {}; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => AnswerRollCallResult, { description: 'since v0.7.13' }), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Arg('roomId')), + tslib.__param(1, typeGraphql.Arg('rollCallId')), + tslib.__param(2, typeGraphql.Arg('answer')), + tslib.__param(3, typeGraphql.Ctx()), + tslib.__param(4, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [String, String, Boolean, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.AnswerRollCallResolver.prototype, "answerRollCall", null); +exports.AnswerRollCallResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.AnswerRollCallResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/answerRollCall/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/answerRollCall/resolver.js.map new file mode 100644 index 000000000..c08a92e14 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/answerRollCall/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/answerRollCall/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","AnswerRollCallFailureType","ObjectType","AnswerRollCallResolver","ensureUserUid","result","operateAsAdminAndFlush","Master","Player","Result","produce","toOtError","RoomNotFound","IdOperation","publishRoomEvent","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Arg","Ctx","PubSub","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/changeParitipantName/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/changeParitipantName/resolver.js new file mode 100644 index 000000000..31de58d8f --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/changeParitipantName/resolver.js @@ -0,0 +1,95 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var utils$1 = require('@flocon-trpg/utils'); +var result = require('@kizahasi/result'); +var immer = require('immer'); +var typeGraphql = require('type-graphql'); +var ChangeParticipantNameFailureType = require('../../../../enums/ChangeParticipantNameFailureType.js'); +var convertToMaxLength100String = require('../../../../utils/convertToMaxLength100String.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); + +let ChangeParticipantNameArgs = class ChangeParticipantNameArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], ChangeParticipantNameArgs.prototype, "roomId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], ChangeParticipantNameArgs.prototype, "newName", void 0); +ChangeParticipantNameArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], ChangeParticipantNameArgs); +let ChangeParticipantNameResult = class ChangeParticipantNameResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => ChangeParticipantNameFailureType.ChangeParticipantNameFailureType, { nullable: true }), + tslib.__metadata("design:type", String) +], ChangeParticipantNameResult.prototype, "failureType", void 0); +ChangeParticipantNameResult = tslib.__decorate([ + typeGraphql.ObjectType() +], ChangeParticipantNameResult); +exports.ChangeParticipantNameResolver = class ChangeParticipantNameResolver { + async changeParticipantName(args, context, pubSub) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const flushResult = await utils.operateAsAdminAndFlush({ + em, + operationType: 'state', + operation: roomState => { + const me = roomState.participants?.[authorizedUserUid]; + if (me == null || me.role == null) { + return result.Result.error(ChangeParticipantNameFailureType.ChangeParticipantNameFailureType.NotParticipant); + } + const result$1 = immer.produce(roomState, roomState => { + const me = roomState.participants?.[authorizedUserUid]; + if (me == null) { + return; + } + me.name = convertToMaxLength100String.convertToMaxLength100String(args.newName); + }); + return result.Result.ok(result$1); + }, + roomId: args.roomId, + roomHistCount: undefined, + }); + if (flushResult.isError) { + if (flushResult.error.type === 'custom') { + return { failureType: flushResult.error.error }; + } + throw FilePathModule.toOtError(flushResult.error.error); + } + switch (flushResult.value) { + case utils.RoomNotFound: + return { failureType: ChangeParticipantNameFailureType.ChangeParticipantNameFailureType.NotFound }; + case utils.IdOperation: + utils$1.loggerRef.debug('An operation in changeParticipantName is id. This should not happen.'); + return { failureType: ChangeParticipantNameFailureType.ChangeParticipantNameFailureType.NotParticipant }; + } + await utils.publishRoomEvent(pubSub, flushResult.value); + return { + failureType: undefined, + }; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => ChangeParticipantNameResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [ChangeParticipantNameArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.ChangeParticipantNameResolver.prototype, "changeParticipantName", null); +exports.ChangeParticipantNameResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.ChangeParticipantNameResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/changeParitipantName/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/changeParitipantName/resolver.js.map new file mode 100644 index 000000000..facd791b7 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/changeParitipantName/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/changeParitipantName/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ArgsType","ChangeParticipantNameFailureType","ObjectType","ChangeParticipantNameResolver","ensureAuthorizedUser","operateAsAdminAndFlush","Result","result","produce","convertToMaxLength100String","toOtError","RoomNotFound","IdOperation","loggerRef","publishRoomEvent","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/closeRollCall/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/closeRollCall/resolver.js new file mode 100644 index 000000000..09bb14144 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/closeRollCall/resolver.js @@ -0,0 +1,88 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var result = require('@kizahasi/result'); +var immer = require('immer'); +var typeGraphql = require('type-graphql'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); +var CloseRollCallFailureType = require('../../../../enums/CloseRollCallFailureType.js'); + +let CloseRollCallResult = class CloseRollCallResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => CloseRollCallFailureType.CloseRollCallFailureType, { nullable: true }), + tslib.__metadata("design:type", String) +], CloseRollCallResult.prototype, "failureType", void 0); +CloseRollCallResult = tslib.__decorate([ + typeGraphql.ObjectType() +], CloseRollCallResult); +exports.CloseRollCallResolver = class CloseRollCallResolver { + async closeRollCall(roomId, rollCallId, context, pubSub) { + const myUserUid = utils.ensureUserUid(context); + const result$1 = await utils.operateAsAdminAndFlush({ + em: context.em, + roomId, + roomHistCount: undefined, + operationType: 'state', + operation: roomState => { + const me = roomState.participants?.[myUserUid]; + switch (me?.role) { + case FilePathModule.Master: + case FilePathModule.Player: + break; + default: + return result.Result.error(CloseRollCallFailureType.CloseRollCallFailureType.NotAuthorizedParticipant); + } + const rollCall = roomState.rollCalls?.[rollCallId]; + if (rollCall == null) { + return result.Result.error(CloseRollCallFailureType.CloseRollCallFailureType.RollCallNotFound); + } + if (rollCall.closeStatus != null) { + return result.Result.error(CloseRollCallFailureType.CloseRollCallFailureType.AlreadyClosed); + } + const nextRoomState = immer.produce(roomState, roomState => { + const rollCall = roomState.rollCalls?.[rollCallId]; + if (rollCall == null) { + return; + } + rollCall.closeStatus = { closedBy: myUserUid, reason: 'Closed' }; + }); + return result.Result.ok(nextRoomState); + }, + }); + if (result$1.isError) { + if (result$1.error.type === 'custom') { + return { failureType: result$1.error.error }; + } + throw FilePathModule.toOtError(result$1.error.error); + } + switch (result$1.value) { + case utils.RoomNotFound: + return { failureType: CloseRollCallFailureType.CloseRollCallFailureType.RoomNotFound }; + case utils.IdOperation: + return {}; + } + await utils.publishRoomEvent(pubSub, result$1.value); + return {}; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => CloseRollCallResult, { description: 'since v0.7.13' }), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Arg('roomId')), + tslib.__param(1, typeGraphql.Arg('rollCallId')), + tslib.__param(2, typeGraphql.Ctx()), + tslib.__param(3, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [String, String, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.CloseRollCallResolver.prototype, "closeRollCall", null); +exports.CloseRollCallResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.CloseRollCallResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/closeRollCall/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/closeRollCall/resolver.js.map new file mode 100644 index 000000000..f40972183 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/closeRollCall/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/closeRollCall/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","CloseRollCallFailureType","ObjectType","CloseRollCallResolver","ensureUserUid","result","operateAsAdminAndFlush","Master","Player","Result","produce","toOtError","RoomNotFound","IdOperation","publishRoomEvent","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Arg","Ctx","PubSub","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/createFileTag/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/createFileTag/resolver.js new file mode 100644 index 000000000..3449c842f --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/createFileTag/resolver.js @@ -0,0 +1,56 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/fileTag/entity.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); + +exports.FileTag = class FileTag { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.FileTag.prototype, "id", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], exports.FileTag.prototype, "name", void 0); +exports.FileTag = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.FileTag); +exports.CreateFileTagResolver = class CreateFileTagResolver { + async createFileTag(context, tagName) { + const maxTagsCount = 10; + const user = utils.ensureAuthorizedUser(context); + const tagsCount = await context.em.count(entity.FileTag, { user }); + if (maxTagsCount <= tagsCount) { + return null; + } + const newFileTag = context.em.create(entity.FileTag, { name: tagName, user: user }); + await context.em.persistAndFlush(newFileTag); + return { + id: newFileTag.id, + name: newFileTag.name, + }; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => exports.FileTag, { + nullable: true, + deprecationReason: 'Use screenname to group files by folders instead.', + }), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Ctx()), + tslib.__param(1, typeGraphql.Arg('tagName')), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [Object, String]), + tslib.__metadata("design:returntype", Promise) +], exports.CreateFileTagResolver.prototype, "createFileTag", null); +exports.CreateFileTagResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.CreateFileTagResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/createFileTag/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/createFileTag/resolver.js.map new file mode 100644 index 000000000..8f6e57478 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/createFileTag/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/createFileTag/resolver.ts"],"sourcesContent":[null],"names":["FileTag","__decorate","Field","ObjectType","CreateFileTagResolver","ensureAuthorizedUser","FileTagEntity","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Ctx","Arg","Resolver"],"mappings":";;;;;;;;;;AAmBaA,eAAO,GAAb,MAAM,OAAO,CAAA;;AAETC,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACW,CAAA,EAAAF,eAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAGZC,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACa,CAAA,EAAAF,eAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AALZA,eAAO,GAAAC,gBAAA,CAAA;AADnB,IAAAE,sBAAU;AACE,CAAA,EAAAH,eAAO,CAMnB;AAGYI,6BAAqB,GAA3B,MAAM,qBAAqB,CAAA;AAOjB,IAAN,MAAM,aAAa,CACf,OAAwB,EACf,OAAe,EAAA;QAE/B,MAAM,YAAY,GAAG,EAAE;AAEvB,QAAA,MAAM,IAAI,GAAGC,0BAAoB,CAAC,OAAO,CAAC;AAC1C,QAAA,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,KAAK,CAACC,cAAa,EAAE,EAAE,IAAI,EAAE,CAAC;AACjE,QAAA,IAAI,YAAY,IAAI,SAAS,EAAE;AAC3B,YAAA,OAAO,IAAI;;QAEf,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,CAACA,cAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAClF,MAAM,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC;QAC5C,OAAO;YACH,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,IAAI,EAAE,UAAU,CAAC,IAAI;SACxB;;;AAhBQL,gBAAA,CAAA;AANZ,IAAAM,oBAAQ,CAAC,MAAMP,eAAO,EAAE;AACrB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,iBAAiB,EAAE,mDAAmD;KACzE,CAAC;IACDQ,sBAAU,CAACC,WAAK,CAAC;AACjB,IAAAC,yBAAa,CAACC,+BAAe,EAAEC,uCAAmB,CAAC,CAAC,CAAC,CAAC;IAElDC,aAAA,CAAA,CAAA,EAAAC,eAAG,EAAE,CAAA;AACL,IAAAD,aAAA,CAAA,CAAA,EAAAE,eAAG,CAAC,SAAS,CAAC,CAAA;;;;AAelB,CAAA,EAAAX,6BAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAxBQA,6BAAqB,GAAAH,gBAAA,CAAA;AADjC,IAAAe,oBAAQ;AACI,CAAA,EAAAZ,6BAAqB,CAyBjC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/createRoom/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/createRoom/resolver.js new file mode 100644 index 000000000..d59b8b9ea --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/createRoom/resolver.js @@ -0,0 +1,163 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var bcrypt = require('bcrypt'); +var typeGraphql = require('type-graphql'); +var entity$1 = require('../../../../entities/participant/entity.js'); +var entity = require('../../../../entities/room/entity.js'); +var room$1 = require('../../../../entities-graphql/room.js'); +var CreateRoomFailureType = require('../../../../enums/CreateRoomFailureType.js'); +var ParticipantRoleType = require('../../../../enums/ParticipantRoleType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var room = require('../../../objects/room.js'); +var utils = require('../../utils/utils.js'); + +const bcryptSaltRounds = 10; +let CreateRoomSuccessResult = class CreateRoomSuccessResult { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], CreateRoomSuccessResult.prototype, "id", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", room.RoomGetState) +], CreateRoomSuccessResult.prototype, "room", void 0); +CreateRoomSuccessResult = tslib.__decorate([ + typeGraphql.ObjectType() +], CreateRoomSuccessResult); +let CreateRoomFailureResult = class CreateRoomFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => CreateRoomFailureType.CreateRoomFailureType), + tslib.__metadata("design:type", String) +], CreateRoomFailureResult.prototype, "failureType", void 0); +CreateRoomFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], CreateRoomFailureResult); +const CreateRoomResult = typeGraphql.createUnionType({ + name: 'CreateRoomResult', + types: () => [CreateRoomSuccessResult, CreateRoomFailureResult], + resolveType: value => { + if ('room' in value) { + return CreateRoomSuccessResult; + } + if ('failureType' in value) { + return CreateRoomFailureResult; + } + return undefined; + }, +}); +let CreateRoomInput = class CreateRoomInput { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], CreateRoomInput.prototype, "roomName", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], CreateRoomInput.prototype, "participantName", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], CreateRoomInput.prototype, "playerPassword", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], CreateRoomInput.prototype, "spectatorPassword", void 0); +CreateRoomInput = tslib.__decorate([ + typeGraphql.InputType() +], CreateRoomInput); +exports.CreateRoomResolver = class CreateRoomResolver { + async createRoom(input, context) { + const em = context.em; + const authorizedUser = utils.ensureAuthorizedUser(context); + const newRoom = new entity.Room({ + name: input.roomName, + createdBy: authorizedUser.userUid, + value: { + $v: 2, + $r: 1, + activeBoardId: undefined, + characterTag1Name: 'NPC', + characterTag2Name: undefined, + characterTag3Name: undefined, + characterTag4Name: undefined, + characterTag5Name: undefined, + characterTag6Name: undefined, + characterTag7Name: undefined, + characterTag8Name: undefined, + characterTag9Name: undefined, + characterTag10Name: undefined, + publicChannel1Name: 'メイン', + publicChannel2Name: 'メイン2', + publicChannel3Name: 'メイン3', + publicChannel4Name: 'メイン4', + publicChannel5Name: 'メイン5', + publicChannel6Name: 'メイン6', + publicChannel7Name: 'メイン7', + publicChannel8Name: 'メイン8', + publicChannel9Name: 'メイン9', + publicChannel10Name: 'メイン10', + bgms: {}, + boolParamNames: {}, + boards: {}, + characters: {}, + numParamNames: {}, + rollCalls: {}, + strParamNames: {}, + memos: {}, + }, + }); + const newParticipant = new entity$1.Participant(); + newParticipant.name = input.participantName; + newParticipant.role = ParticipantRoleType.ParticipantRoleType.Master; + em.persist(newParticipant); + newRoom.participants.add(newParticipant); + authorizedUser.participants.add(newParticipant); + if (input.playerPassword != null) { + newRoom.playerPasswordHash = await bcrypt.hash(input.playerPassword, bcryptSaltRounds); + } + if (input.spectatorPassword != null) { + newRoom.spectatorPasswordHash = await bcrypt.hash(input.spectatorPassword, bcryptSaltRounds); + } + const revision = newRoom.revision; + em.persist(newRoom); + const roomState = await room$1.GlobalRoom.MikroORM.ToGlobal.state(newRoom, em); + const graphqlState = room$1.GlobalRoom.Global.ToGraphQL.state({ + source: roomState, + requestedBy: { type: FilePathModule.client, userUid: authorizedUser.userUid }, + }); + await em.flush(); + return { + room: { + ...graphqlState, + revision, + createdBy: authorizedUser.userUid, + createdAt: newRoom.createdAt?.getTime(), + updatedAt: newRoom.completeUpdatedAt?.getTime(), + role: newParticipant.role, + isBookmarked: false, + }, + id: newRoom.id, + }; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => CreateRoomResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Arg('input')), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [CreateRoomInput, Object]), + tslib.__metadata("design:returntype", Promise) +], exports.CreateRoomResolver.prototype, "createRoom", null); +exports.CreateRoomResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.CreateRoomResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/createRoom/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/createRoom/resolver.js.map new file mode 100644 index 000000000..13da0c9e0 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/createRoom/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/createRoom/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","RoomGetState","ObjectType","CreateRoomFailureType","createUnionType","InputType","CreateRoomResolver","ensureAuthorizedUser","Room$MikroORM.Room","Participant$MikroORM.Participant","ParticipantRoleType","hash","GlobalRoom","client","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Arg","Ctx","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/deleteFileTag/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/deleteFileTag/resolver.js new file mode 100644 index 000000000..dac339e4d --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/deleteFileTag/resolver.js @@ -0,0 +1,40 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/fileTag/entity.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); + +exports.DeleteFileTagResolver = class DeleteFileTagResolver { + async deleteFileTag(context, tagId) { + const user = utils.ensureAuthorizedUser(context); + const fileTagToDelete = await context.em.findOne(entity.FileTag, { user, id: tagId }); + if (fileTagToDelete == null) { + return false; + } + fileTagToDelete.files.getItems().forEach(x => context.em.remove(x)); + fileTagToDelete.files.removeAll(); + context.em.remove(fileTagToDelete); + await context.em.flush(); + return true; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => Boolean, { + deprecationReason: 'Use screenname to group files by folders instead.', + }), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Ctx()), + tslib.__param(1, typeGraphql.Arg('tagId')), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [Object, String]), + tslib.__metadata("design:returntype", Promise) +], exports.DeleteFileTagResolver.prototype, "deleteFileTag", null); +exports.DeleteFileTagResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.DeleteFileTagResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/deleteFileTag/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/deleteFileTag/resolver.js.map new file mode 100644 index 000000000..f32e7007e --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/deleteFileTag/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/deleteFileTag/resolver.ts"],"sourcesContent":[null],"names":["DeleteFileTagResolver","ensureAuthorizedUser","FileTag","__decorate","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Ctx","Arg","Resolver"],"mappings":";;;;;;;;;;AASaA,6BAAqB,GAA3B,MAAM,qBAAqB,CAAA;AAMjB,IAAN,MAAM,aAAa,CACf,OAAwB,EACjB,KAAa,EAAA;AAE3B,QAAA,MAAM,IAAI,GAAGC,0BAAoB,CAAC,OAAO,CAAC;AAE1C,QAAA,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,CAACC,cAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AAC9E,QAAA,IAAI,eAAe,IAAI,IAAI,EAAE;AACzB,YAAA,OAAO,KAAK;;QAEhB,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACnE,QAAA,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE;AACjC,QAAA,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;AAClC,QAAA,MAAM,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;AACxB,QAAA,OAAO,IAAI;;;AAdFC,gBAAA,CAAA;AALZ,IAAAC,oBAAQ,CAAC,MAAM,OAAO,EAAE;AACrB,QAAA,iBAAiB,EAAE,mDAAmD;KACzE,CAAC;IACDC,sBAAU,CAACC,WAAK,CAAC;AACjB,IAAAC,yBAAa,CAACC,+BAAe,EAAEC,uCAAmB,CAAC,CAAC,CAAC,CAAC;IAElDC,aAAA,CAAA,CAAA,EAAAC,eAAG,EAAE,CAAA;AACL,IAAAD,aAAA,CAAA,CAAA,EAAAE,eAAG,CAAC,OAAO,CAAC,CAAA;;;;AAahB,CAAA,EAAAZ,6BAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AArBQA,6BAAqB,GAAAG,gBAAA,CAAA;AADjC,IAAAU,oBAAQ;AACI,CAAA,EAAAb,6BAAqB,CAsBjC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/deleteFiles/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/deleteFiles/resolver.js new file mode 100644 index 000000000..345142c29 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/deleteFiles/resolver.js @@ -0,0 +1,90 @@ +'use strict'; + +var tslib = require('tslib'); +var path = require('path'); +var utils$1 = require('@flocon-trpg/utils'); +var fs = require('fs-extra'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/file/entity.js'); +var roles = require('../../../../utils/roles.js'); +var thumbsDir = require('../../../../utils/thumbsDir.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); + +exports.DeleteFilesResolver = class DeleteFilesResolver { + async deleteFiles(filenames, context) { + const directory = context.serverConfig.uploader?.directory; + if (directory == null) { + return []; + } + const filenamesToDelete = []; + const thumbFilenamesToDelete = []; + const user = utils.ensureAuthorizedUser(context); + for (const filename of filenames) { + const file = await context.em.findOne(entity.File, { + createdBy: user, + filename, + }); + if (file != null) { + if (file.thumbFilename != null) { + thumbFilenamesToDelete.push(file.thumbFilename); + } + filenamesToDelete.push(file.filename); + await user.files.init(); + user.files.remove(file); + await file.fileTags.init(); + file.fileTags.removeAll(); + context.em.remove(file); + } + } + await context.em.flush(); + for (const filename of filenamesToDelete) { + const filePath = path.resolve(directory, filename); + const statResult = await fs.stat(filePath).catch((err) => { + utils$1.loggerRef.warn(err, `stat(${filePath}) threw an error. Maybe the file was not found?`); + return false; + }); + if (statResult === false) { + continue; + } + if (statResult.isFile()) { + await fs.remove(filePath); + } + else { + utils$1.loggerRef.warn(`${filePath} is not a file`); + } + } + for (const filename of thumbFilenamesToDelete) { + const filePath = path.resolve(directory, thumbsDir.thumbsDir, filename); + const statResult = await fs.stat(filePath).catch((err) => { + utils$1.loggerRef.warn(err, `stat(${filePath}) threw an error. Maybe the file was not found?`); + return false; + }); + if (statResult === false) { + continue; + } + if (statResult.isFile()) { + await fs.remove(filePath); + } + else { + utils$1.loggerRef.warn(`${filePath} is not a file`); + } + } + return filenamesToDelete; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => [String], { description: 'since v0.7.8' }), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Arg('filenames', () => [String])), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [Array, Object]), + tslib.__metadata("design:returntype", Promise) +], exports.DeleteFilesResolver.prototype, "deleteFiles", null); +exports.DeleteFilesResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.DeleteFilesResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/deleteFiles/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/deleteFiles/resolver.js.map new file mode 100644 index 000000000..096078182 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/deleteFiles/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/deleteFiles/resolver.ts"],"sourcesContent":[null],"names":["DeleteFilesResolver","ensureAuthorizedUser","File","stat","loggerRef","remove","thumbsDir","__decorate","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Arg","Ctx","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/deleteMessage/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/deleteMessage/resolver.js new file mode 100644 index 000000000..b1e7f93b7 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/deleteMessage/resolver.js @@ -0,0 +1,121 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/roomMessage/entity.js'); +var DeleteMessageFailureType = require('../../../../enums/DeleteMessageFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var roomMessage = require('../../../objects/roomMessage.js'); +var utils = require('../../utils/utils.js'); + +let MessageIdArgs = class MessageIdArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], MessageIdArgs.prototype, "roomId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], MessageIdArgs.prototype, "messageId", void 0); +MessageIdArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], MessageIdArgs); +exports.DeleteMessageResolver = class DeleteMessageResolver { + async deleteMessage(args, context, pubSub) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const findResult = await utils.findRoomAndMyParticipant({ + em, + userUid: authorizedUserUid, + roomId: args.roomId, + }); + if (findResult == null) { + return { + failureType: DeleteMessageFailureType.DeleteMessageFailureType.RoomNotFound, + }; + } + const { room, me } = findResult; + if (me === undefined) { + return { + failureType: DeleteMessageFailureType.DeleteMessageFailureType.NotParticipant, + }; + } + const publicMsg = await em.findOne(entity.RoomPubMsg, { id: args.messageId }); + if (publicMsg != null) { + const createdBy = await publicMsg.createdBy?.loadProperty('userUid'); + if (createdBy !== authorizedUserUid) { + return { + failureType: DeleteMessageFailureType.DeleteMessageFailureType.NotYourMessage, + }; + } + if (publicMsg.updatedText == null && publicMsg.textUpdatedAtValue != null) { + return { + failureType: DeleteMessageFailureType.DeleteMessageFailureType.MessageDeleted, + }; + } + publicMsg.updatedText = undefined; + publicMsg.textUpdatedAt3 = new Date(); + room.completeUpdatedAt = new Date(); + await em.flush(); + const payloadValue = utils.createRoomPublicMessageUpdate(publicMsg); + await utils.publishRoomEvent(pubSub, { + type: 'messageUpdatePayload', + sendTo: findResult.participantIds(), + roomId: room.id, + visibleTo: undefined, + createdBy, + value: payloadValue, + }); + return {}; + } + const privateMsg = await em.findOne(entity.RoomPrvMsg, { id: args.messageId }); + if (privateMsg != null) { + const createdBy = await privateMsg.createdBy?.loadProperty('userUid'); + if (createdBy !== authorizedUserUid) { + return { + failureType: DeleteMessageFailureType.DeleteMessageFailureType.NotYourMessage, + }; + } + if (privateMsg.updatedText == null && privateMsg.textUpdatedAtValue != null) { + return { + failureType: DeleteMessageFailureType.DeleteMessageFailureType.MessageDeleted, + }; + } + privateMsg.updatedText = undefined; + privateMsg.textUpdatedAt3 = new Date(); + room.completeUpdatedAt = new Date(); + await em.flush(); + const payloadValue = utils.createRoomPrivateMessageUpdate(privateMsg); + await utils.publishRoomEvent(pubSub, { + type: 'messageUpdatePayload', + sendTo: findResult.participantIds(), + roomId: room.id, + visibleTo: (await privateMsg.visibleTo.loadItems()).map(user => user.userUid), + createdBy, + value: payloadValue, + }); + return {}; + } + return { + failureType: DeleteMessageFailureType.DeleteMessageFailureType.MessageNotFound, + }; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => roomMessage.DeleteMessageResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [MessageIdArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.DeleteMessageResolver.prototype, "deleteMessage", null); +exports.DeleteMessageResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.DeleteMessageResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/deleteMessage/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/deleteMessage/resolver.js.map new file mode 100644 index 000000000..5dd8f7c8e --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/deleteMessage/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/deleteMessage/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ArgsType","DeleteMessageResolver","ensureAuthorizedUser","findRoomAndMyParticipant","DeleteMessageFailureType","RoomPubMsg","createRoomPublicMessageUpdate","publishRoomEvent","RoomPrvMsg","createRoomPrivateMessageUpdate","Mutation","DeleteMessageResult","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/deleteRoom/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/deleteRoom/resolver.js new file mode 100644 index 000000000..2f73c3025 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/deleteRoom/resolver.js @@ -0,0 +1,73 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/room/entity.js'); +var DeleteRoomFailureType = require('../../../../enums/DeleteRoomFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var types = require('../../types.js'); +var utils = require('../../utils/utils.js'); + +let DeleteRoomArgs = class DeleteRoomArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], DeleteRoomArgs.prototype, "id", void 0); +DeleteRoomArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], DeleteRoomArgs); +let DeleteRoomResult = class DeleteRoomResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => DeleteRoomFailureType.DeleteRoomFailureType, { nullable: true }), + tslib.__metadata("design:type", String) +], DeleteRoomResult.prototype, "failureType", void 0); +DeleteRoomResult = tslib.__decorate([ + typeGraphql.ObjectType() +], DeleteRoomResult); +exports.DeleteRoomResolver = class DeleteRoomResolver { + async deleteRoom(args, context, pubSub) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const room = await em.findOne(entity.Room, { id: args.id }); + if (room == null) { + return { + failureType: DeleteRoomFailureType.DeleteRoomFailureType.NotFound, + }; + } + const roomId = room.id; + if (room.createdBy !== authorizedUserUid) { + return { + failureType: DeleteRoomFailureType.DeleteRoomFailureType.NotCreatedByYou, + }; + } + await entity.deleteRoom(em, room); + await em.flush(); + await utils.publishRoomEvent(pubSub, { + type: 'deleteRoomPayload', + roomId, + deletedBy: authorizedUserUid, + deletedByAdmin: false, + sendTo: types.all, + }); + return {}; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => DeleteRoomResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [DeleteRoomArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.DeleteRoomResolver.prototype, "deleteRoom", null); +exports.DeleteRoomResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.DeleteRoomResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/deleteRoom/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/deleteRoom/resolver.js.map new file mode 100644 index 000000000..7ae2e2ee6 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/deleteRoom/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/deleteRoom/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ArgsType","DeleteRoomFailureType","ObjectType","DeleteRoomResolver","ensureAuthorizedUser","Room$MikroORM.Room","Room$MikroORM.deleteRoom","publishRoomEvent","all","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":";;;;;;;;;;;;AAuBA,IAAM,cAAc,GAApB,MAAM,cAAc,CAAA;CAGnB;AADUA,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACW,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAFjB,cAAc,GAAAD,gBAAA,CAAA;AADnB,IAAAE,oBAAQ;AACH,CAAA,EAAA,cAAc,CAGnB;AAGD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB,CAAA;CAGrB;AADUF,gBAAA,CAAA;IADNC,iBAAK,CAAC,MAAME,2CAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACZ,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAFzC,gBAAgB,GAAAH,gBAAA,CAAA;AADrB,IAAAI,sBAAU;AACL,CAAA,EAAA,gBAAgB,CAGrB;AAGYC,0BAAkB,GAAxB,MAAM,kBAAkB,CAAA;IAId,MAAA,UAAU,CACX,IAAoB,EACrB,OAAwB,EACrB,MAAoB,EAAA;AAE9B,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE;QACrB,MAAM,iBAAiB,GAAGC,0BAAoB,CAAC,OAAO,CAAC,CAAC,OAAO;AAI/D,QAAA,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAACC,WAAkB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;AAClE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,OAAO;gBACH,WAAW,EAAEJ,2CAAqB,CAAC,QAAQ;aAC9C;;AAEL,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;AACtB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,iBAAiB,EAAE;YACtC,OAAO;gBACH,WAAW,EAAEA,2CAAqB,CAAC,eAAe;aACrD;;QAEL,MAAMK,iBAAwB,CAAC,EAAE,EAAE,IAAI,CAAC;AACxC,QAAA,MAAM,EAAE,CAAC,KAAK,EAAE;QAChB,MAAMC,sBAAgB,CAAC,MAAM,EAAE;AAC3B,YAAA,IAAI,EAAE,mBAAmB;YACzB,MAAM;AACN,YAAA,SAAS,EAAE,iBAAiB;AAC5B,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,MAAM,EAAEC,SAAG;AACd,SAAA,CAAC;AACF,QAAA,OAAO,EAAE;;;AA/BAV,gBAAA,CAAA;AAHZ,IAAAW,oBAAQ,CAAC,MAAM,gBAAgB,CAAC;IAChCC,sBAAU,CAACC,WAAK,CAAC;AACjB,IAAAC,yBAAa,CAACC,+BAAe,EAAEC,uCAAmB,CAAC,CAAC,CAAC,CAAC;IAElDC,aAAA,CAAA,CAAA,EAAAC,gBAAI,EAAE,CAAA;IACND,aAAA,CAAA,CAAA,EAAAE,eAAG,EAAE,CAAA;IACLF,aAAA,CAAA,CAAA,EAAAG,kBAAM,EAAE,CAAA;;AAFK,IAAAC,gBAAA,CAAA,mBAAA,EAAA,CAAA,cAAc,UAEVC,wBAAY,CAAA,CAAA;;AA6BjC,CAAA,EAAAjB,0BAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA;AApCQA,0BAAkB,GAAAL,gBAAA,CAAA;AAD9B,IAAAuB,oBAAQ;AACI,CAAA,EAAAlB,0BAAkB,CAqC9B;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/deleteRoomAsAdmin/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/deleteRoomAsAdmin/resolver.js new file mode 100644 index 000000000..4162a48cd --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/deleteRoomAsAdmin/resolver.js @@ -0,0 +1,68 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/room/entity.js'); +var DeleteRoomAsAdminFailureType = require('../../../../enums/DeleteRoomAsAdminFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var types = require('../../types.js'); +var utils = require('../../utils/utils.js'); + +let DeleteRoomAsAdminInput = class DeleteRoomAsAdminInput { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], DeleteRoomAsAdminInput.prototype, "id", void 0); +DeleteRoomAsAdminInput = tslib.__decorate([ + typeGraphql.ArgsType() +], DeleteRoomAsAdminInput); +let DeleteRoomAsAdminResult = class DeleteRoomAsAdminResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => DeleteRoomAsAdminFailureType.DeleteRoomAsAdminFailureType, { nullable: true }), + tslib.__metadata("design:type", String) +], DeleteRoomAsAdminResult.prototype, "failureType", void 0); +DeleteRoomAsAdminResult = tslib.__decorate([ + typeGraphql.ObjectType() +], DeleteRoomAsAdminResult); +exports.DeleteRoomAsAdminResolver = class DeleteRoomAsAdminResolver { + async deleteRoomAsAdmin(args, context, pubSub) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const room = await em.findOne(entity.Room, { id: args.id }); + if (room == null) { + return { + failureType: DeleteRoomAsAdminFailureType.DeleteRoomAsAdminFailureType.NotFound, + }; + } + const roomId = room.id; + await entity.deleteRoom(em, room); + await em.flush(); + await utils.publishRoomEvent(pubSub, { + type: 'deleteRoomPayload', + sendTo: types.all, + roomId, + deletedBy: authorizedUserUid, + deletedByAdmin: true, + }); + return {}; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => DeleteRoomAsAdminResult, { description: 'since v0.7.2' }), + typeGraphql.Authorized(roles.ADMIN), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [DeleteRoomAsAdminInput, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.DeleteRoomAsAdminResolver.prototype, "deleteRoomAsAdmin", null); +exports.DeleteRoomAsAdminResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.DeleteRoomAsAdminResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/deleteRoomAsAdmin/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/deleteRoomAsAdmin/resolver.js.map new file mode 100644 index 000000000..9288b53c7 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/deleteRoomAsAdmin/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/deleteRoomAsAdmin/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ArgsType","DeleteRoomAsAdminFailureType","ObjectType","DeleteRoomAsAdminResolver","ensureAuthorizedUser","Room$MikroORM.Room","Room$MikroORM.deleteRoom","publishRoomEvent","all","Mutation","Authorized","ADMIN","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":";;;;;;;;;;;;AAuBA,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB,CAAA;CAG3B;AADUA,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACW,CAAA,EAAA,sBAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAFjB,sBAAsB,GAAAD,gBAAA,CAAA;AAD3B,IAAAE,oBAAQ;AACH,CAAA,EAAA,sBAAsB,CAG3B;AAGD,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB,CAAA;CAG5B;AADUF,gBAAA,CAAA;IADNC,iBAAK,CAAC,MAAME,yDAA4B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACZ,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAFhD,uBAAuB,GAAAH,gBAAA,CAAA;AAD5B,IAAAI,sBAAU;AACL,CAAA,EAAA,uBAAuB,CAG5B;AAGYC,iCAAyB,GAA/B,MAAM,yBAAyB,CAAA;IAIrB,MAAA,iBAAiB,CAClB,IAA4B,EAC7B,OAAwB,EACrB,MAAoB,EAAA;AAE9B,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE;QACrB,MAAM,iBAAiB,GAAGC,0BAAoB,CAAC,OAAO,CAAC,CAAC,OAAO;AAE/D,QAAA,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAACC,WAAkB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;AAClE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,OAAO;gBACH,WAAW,EAAEJ,yDAA4B,CAAC,QAAQ;aACrD;;AAEL,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;QACtB,MAAMK,iBAAwB,CAAC,EAAE,EAAE,IAAI,CAAC;AACxC,QAAA,MAAM,EAAE,CAAC,KAAK,EAAE;QAChB,MAAMC,sBAAgB,CAAC,MAAM,EAAE;AAC3B,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAEC,SAAG;YACX,MAAM;AACN,YAAA,SAAS,EAAE,iBAAiB;AAC5B,YAAA,cAAc,EAAE,IAAI;AACvB,SAAA,CAAC;AACF,QAAA,OAAO,EAAE;;;AAxBAV,gBAAA,CAAA;IAHZW,oBAAQ,CAAC,MAAM,uBAAuB,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IACxEC,sBAAU,CAACC,WAAK,CAAC;AACjB,IAAAC,yBAAa,CAACC,+BAAe,EAAEC,uCAAmB,CAAC,CAAC,CAAC,CAAC;IAElDC,aAAA,CAAA,CAAA,EAAAC,gBAAI,EAAE,CAAA;IACND,aAAA,CAAA,CAAA,EAAAE,eAAG,EAAE,CAAA;IACLF,aAAA,CAAA,CAAA,EAAAG,kBAAM,EAAE,CAAA;;AAFK,IAAAC,gBAAA,CAAA,mBAAA,EAAA,CAAA,sBAAsB,UAElBC,wBAAY,CAAA,CAAA;;AAsBjC,CAAA,EAAAjB,iCAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA;AA7BQA,iCAAyB,GAAAL,gBAAA,CAAA;AADrC,IAAAuB,oBAAQ;AACI,CAAA,EAAAlB,iCAAyB,CA8BrC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/editFileTags/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/editFileTags/resolver.js new file mode 100644 index 000000000..d43fc1949 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/editFileTags/resolver.js @@ -0,0 +1,101 @@ +'use strict'; + +var tslib = require('tslib'); +var utils$1 = require('@flocon-trpg/utils'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/file/entity.js'); +var entity$1 = require('../../../../entities/fileTag/entity.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); + +let EditFileTagActionInput = class EditFileTagActionInput { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], EditFileTagActionInput.prototype, "filename", void 0); +tslib.__decorate([ + typeGraphql.Field(() => [String]), + tslib.__metadata("design:type", Array) +], EditFileTagActionInput.prototype, "add", void 0); +tslib.__decorate([ + typeGraphql.Field(() => [String]), + tslib.__metadata("design:type", Array) +], EditFileTagActionInput.prototype, "remove", void 0); +EditFileTagActionInput = tslib.__decorate([ + typeGraphql.InputType() +], EditFileTagActionInput); +let EditFileTagsInput = class EditFileTagsInput { +}; +tslib.__decorate([ + typeGraphql.Field(() => [EditFileTagActionInput]), + tslib.__metadata("design:type", Array) +], EditFileTagsInput.prototype, "actions", void 0); +EditFileTagsInput = tslib.__decorate([ + typeGraphql.InputType() +], EditFileTagsInput); +exports.EditFileTagsResolver = class EditFileTagsResolver { + async editFileTags(input, context) { + const user = utils.ensureAuthorizedUser(context); + const map = new utils$1.DualKeyMap(); + input.actions.forEach(action => { + action.add.forEach(a => { + const value = map.get({ first: action.filename, second: a }); + map.set({ first: action.filename, second: a }, (value ?? 0) + 1); + }); + action.remove.forEach(r => { + const value = map.get({ first: action.filename, second: r }); + map.set({ first: action.filename, second: r }, (value ?? 0) - 1); + }); + }); + for (const [filename, actions] of map.toMap()) { + let fileEntity = null; + for (const [fileTagId, action] of actions) { + if (action === 0) { + continue; + } + if (fileEntity == null) { + fileEntity = await context.em.findOne(entity.File, { + filename, + createdBy: { userUid: user.userUid }, + }); + } + if (fileEntity == null) { + break; + } + const fileTag = await context.em.findOne(entity$1.FileTag, { id: fileTagId }); + if (fileTag == null) { + continue; + } + if (0 < action) { + fileEntity.fileTags.add(fileTag); + fileTag.files.add(fileEntity); + } + else { + fileEntity.fileTags.remove(fileTag); + fileTag.files.remove(fileEntity); + } + } + } + await context.em.flush(); + return true; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => Boolean, { + deprecationReason: 'Use screenname to group files by folders instead.', + }), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Arg('input')), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [EditFileTagsInput, Object]), + tslib.__metadata("design:returntype", Promise) +], exports.EditFileTagsResolver.prototype, "editFileTags", null); +exports.EditFileTagsResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.EditFileTagsResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/editFileTags/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/editFileTags/resolver.js.map new file mode 100644 index 000000000..86fbf51c4 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/editFileTags/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/editFileTags/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","InputType","EditFileTagsResolver","ensureAuthorizedUser","DualKeyMap","File","FileTag","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Arg","Ctx","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/editMessage/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/editMessage/resolver.js new file mode 100644 index 000000000..1cb8d9fc2 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/editMessage/resolver.js @@ -0,0 +1,129 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/roomMessage/entity.js'); +var EditMessageFailureType = require('../../../../enums/EditMessageFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var roomMessage = require('../../../objects/roomMessage.js'); +var utils = require('../../utils/utils.js'); + +let EditMessageArgs = class EditMessageArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], EditMessageArgs.prototype, "roomId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], EditMessageArgs.prototype, "messageId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], EditMessageArgs.prototype, "text", void 0); +EditMessageArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], EditMessageArgs); +const isDeleted = (entity) => { + if (entity.textUpdatedAtValue == null) { + return false; + } + return entity.updatedText == null; +}; +exports.EditMessageResolver = class EditMessageResolver { + async editMessage(args, context, pubSub) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const findResult = await utils.findRoomAndMyParticipant({ + em, + userUid: authorizedUserUid, + roomId: args.roomId, + }); + if (findResult == null) { + return { + failureType: EditMessageFailureType.EditMessageFailureType.RoomNotFound, + }; + } + const { room, me } = findResult; + if (me === undefined) { + return { + failureType: EditMessageFailureType.EditMessageFailureType.NotParticipant, + }; + } + const publicMsg = await em.findOne(entity.RoomPubMsg, { id: args.messageId }); + if (publicMsg != null) { + if ((await publicMsg.createdBy?.loadProperty('userUid')) !== authorizedUserUid) { + return { + failureType: EditMessageFailureType.EditMessageFailureType.NotYourMessage, + }; + } + if (isDeleted(publicMsg)) { + return { + failureType: EditMessageFailureType.EditMessageFailureType.MessageDeleted, + }; + } + publicMsg.updatedText = args.text; + publicMsg.textUpdatedAt3 = new Date(); + room.completeUpdatedAt = new Date(); + await em.flush(); + const payloadValue = utils.createRoomPublicMessageUpdate(publicMsg); + await utils.publishRoomEvent(pubSub, { + type: 'messageUpdatePayload', + sendTo: findResult.participantIds(), + roomId: room.id, + visibleTo: undefined, + createdBy: await publicMsg.createdBy?.loadProperty('userUid'), + value: payloadValue, + }); + return {}; + } + const privateMsg = await em.findOne(entity.RoomPrvMsg, { id: args.messageId }); + if (privateMsg != null) { + if ((await privateMsg.createdBy?.loadProperty('userUid')) !== authorizedUserUid) { + return { + failureType: EditMessageFailureType.EditMessageFailureType.NotYourMessage, + }; + } + if (privateMsg.initText == null) { + return { + failureType: EditMessageFailureType.EditMessageFailureType.MessageDeleted, + }; + } + privateMsg.updatedText = args.text; + privateMsg.textUpdatedAt3 = new Date(); + room.completeUpdatedAt = new Date(); + await em.flush(); + const payloadValue = utils.createRoomPrivateMessageUpdate(privateMsg); + await utils.publishRoomEvent(pubSub, { + type: 'messageUpdatePayload', + sendTo: findResult.participantIds(), + roomId: room.id, + visibleTo: (await privateMsg.visibleTo.loadItems()).map(user => user.userUid), + createdBy: await privateMsg.createdBy?.loadProperty('userUid'), + value: payloadValue, + }); + return {}; + } + return { + failureType: EditMessageFailureType.EditMessageFailureType.MessageNotFound, + }; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => roomMessage.EditMessageResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [EditMessageArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.EditMessageResolver.prototype, "editMessage", null); +exports.EditMessageResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.EditMessageResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/editMessage/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/editMessage/resolver.js.map new file mode 100644 index 000000000..fa9119d10 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/editMessage/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/editMessage/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ArgsType","EditMessageResolver","ensureAuthorizedUser","findRoomAndMyParticipant","EditMessageFailureType","RoomPubMsg","createRoomPublicMessageUpdate","publishRoomEvent","RoomPrvMsg","createRoomPrivateMessageUpdate","Mutation","EditMessageResult","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/entryToServer/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/entryToServer/resolver.js new file mode 100644 index 000000000..b68cc063a --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/entryToServer/resolver.js @@ -0,0 +1,74 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/user/entity.js'); +var BaasType = require('../../../../enums/BaasType.js'); +var EntryToServerResultType = require('../../../../enums/EntryToServerResultType.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var utils = require('../../utils/utils.js'); + +let EntryToServerResult = class EntryToServerResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => EntryToServerResultType.EntryToServerResultType), + tslib.__metadata("design:type", String) +], EntryToServerResult.prototype, "type", void 0); +EntryToServerResult = tslib.__decorate([ + typeGraphql.ObjectType() +], EntryToServerResult); +exports.EntryToServerResolver = class EntryToServerResolver { + async entryToServer(password, context) { + const em = context.em; + const serverConfig = context.serverConfig; + const decodedIdToken = utils.checkSignIn(context); + if (decodedIdToken === utils.NotSignIn) { + return { + type: EntryToServerResultType.EntryToServerResultType.NotSignIn, + }; + } + let user = await em.findOne(entity.User, { userUid: decodedIdToken.uid }); + if (user == null) { + user = new entity.User({ userUid: decodedIdToken.uid, baasType: BaasType.BaasType.Firebase }); + user.isEntry = false; + em.persist(user); + } + if (user.isEntry) { + return { + type: EntryToServerResultType.EntryToServerResultType.AlreadyEntried, + }; + } + if (serverConfig.entryPassword == null) { + user.isEntry = true; + await em.flush(); + return { + type: password == null + ? EntryToServerResultType.EntryToServerResultType.Success + : EntryToServerResultType.EntryToServerResultType.NoPasswordRequired, + }; + } + if (password == null || !(await utils.comparePassword(password, serverConfig.entryPassword))) { + return { + type: EntryToServerResultType.EntryToServerResultType.WrongPassword, + }; + } + user.isEntry = true; + await em.flush(); + return { + type: EntryToServerResultType.EntryToServerResultType.Success, + }; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => EntryToServerResult), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware), + tslib.__param(0, typeGraphql.Arg('password', () => String, { nullable: true })), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [Object, Object]), + tslib.__metadata("design:returntype", Promise) +], exports.EntryToServerResolver.prototype, "entryToServer", null); +exports.EntryToServerResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.EntryToServerResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/entryToServer/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/entryToServer/resolver.js.map new file mode 100644 index 000000000..5ebd473f6 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/entryToServer/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/entryToServer/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","EntryToServerResultType","ObjectType","EntryToServerResolver","checkSignIn","NotSignIn","User","BaasType","comparePassword","Mutation","UseMiddleware","QueueMiddleware","__param","Arg","Ctx","Resolver"],"mappings":";;;;;;;;;;AASA,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB,CAAA;CAGxB;AADUA,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,MAAMC,+CAAuB,CAAC;;AACC,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAFpC,mBAAmB,GAAAF,gBAAA,CAAA;AADxB,IAAAG,sBAAU;AACL,CAAA,EAAA,mBAAmB,CAGxB;AAGYC,6BAAqB,GAA3B,MAAM,qBAAqB,CAAA;AAGjB,IAAN,MAAM,aAAa,CAC6B,QAAmC,EAC/E,OAAwB,EAAA;AAE/B,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE;AAErB,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY;AACzC,QAAA,MAAM,cAAc,GAAGC,iBAAW,CAAC,OAAO,CAAC;AAC3C,QAAA,IAAI,cAAc,KAAKC,eAAS,EAAE;YAC9B,OAAO;gBACH,IAAI,EAAEJ,+CAAuB,CAAC,SAAS;aAC1C;;AAGL,QAAA,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAACK,WAAI,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC;AAClE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,YAAA,IAAI,GAAG,IAAIA,WAAI,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAEC,iBAAQ,CAAC,QAAQ,EAAE,CAAC;AAC7E,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,YAAA,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;;AAEpB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAO;gBACH,IAAI,EAAEN,+CAAuB,CAAC,cAAc;aAC/C;;AAEL,QAAA,IAAI,YAAY,CAAC,aAAa,IAAI,IAAI,EAAE;AACpC,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE;YAChB,OAAO;gBACH,IAAI,EACA,QAAQ,IAAI;sBACNA,+CAAuB,CAAC;sBACxBA,+CAAuB,CAAC,kBAAkB;aACvD;;AAGL,QAAA,IAAI,QAAQ,IAAI,IAAI,IAAI,EAAE,MAAMO,qBAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,EAAE;YACpF,OAAO;gBACH,IAAI,EAAEP,+CAAuB,CAAC,aAAa;aAC9C;;AAGL,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,MAAM,EAAE,CAAC,KAAK,EAAE;QAChB,OAAO;YACH,IAAI,EAAEA,+CAAuB,CAAC,OAAO;SACxC;;;AA9CQF,gBAAA,CAAA;AAFZ,IAAAU,oBAAQ,CAAC,MAAM,mBAAmB,CAAC;IACnCC,yBAAa,CAACC,+BAAe,CAAC;AAE1B,IAAAC,aAAA,CAAA,CAAA,EAAAC,eAAG,CAAC,UAAU,EAAE,MAAM,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACjDD,aAAA,CAAA,CAAA,EAAAE,eAAG,EAAE,CAAA;;;;AA6CT,CAAA,EAAAX,6BAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAlDQA,6BAAqB,GAAAJ,gBAAA,CAAA;AADjC,IAAAgB,oBAAQ;AACI,CAAA,EAAAZ,6BAAqB,CAmDjC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/joinRoom/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/joinRoom/resolver.js new file mode 100644 index 000000000..13e956161 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/joinRoom/resolver.js @@ -0,0 +1,197 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var result = require('@kizahasi/result'); +var immer = require('immer'); +var typeGraphql = require('type-graphql'); +var JoinRoomFailureType = require('../../../../enums/JoinRoomFailureType.js'); +var convertToMaxLength100String = require('../../../../utils/convertToMaxLength100String.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var room = require('../../../objects/room.js'); +var utils = require('../../utils/utils.js'); + +let JoinRoomSuccessResult = class JoinRoomSuccessResult { +}; +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", room.RoomOperation) +], JoinRoomSuccessResult.prototype, "operation", void 0); +JoinRoomSuccessResult = tslib.__decorate([ + typeGraphql.ObjectType() +], JoinRoomSuccessResult); +let JoinRoomFailureResult = class JoinRoomFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => JoinRoomFailureType.JoinRoomFailureType), + tslib.__metadata("design:type", String) +], JoinRoomFailureResult.prototype, "failureType", void 0); +JoinRoomFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], JoinRoomFailureResult); +const JoinRoomResult = typeGraphql.createUnionType({ + name: 'JoinRoomResult', + types: () => [JoinRoomSuccessResult, JoinRoomFailureResult], + resolveType: value => { + if ('operation' in value) { + return JoinRoomSuccessResult; + } + if ('failureType' in value) { + return JoinRoomFailureResult; + } + return undefined; + }, +}); +let JoinRoomArgs = class JoinRoomArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], JoinRoomArgs.prototype, "id", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], JoinRoomArgs.prototype, "name", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], JoinRoomArgs.prototype, "password", void 0); +JoinRoomArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], JoinRoomArgs); +const joinRoomCore = async ({ args, context, strategy, }) => { + const em = context.em; + const authorizedUser = utils.ensureAuthorizedUser(context); + const result$1 = await utils.operateAsAdminAndFlush({ + em, + roomId: args.id, + roomHistCount: context.serverConfig.roomHistCount, + operationType: 'state', + operation: async (roomState, { room }) => { + const me = roomState.participants?.[authorizedUser.userUid]; + const strategyResult = await strategy({ room, args, me }); + switch (strategyResult) { + case JoinRoomFailureType.JoinRoomFailureType.WrongPassword: + case JoinRoomFailureType.JoinRoomFailureType.AlreadyParticipant: + return result.Result.error({ failureType: strategyResult }); + case 'id': + return result.Result.ok(roomState); + } + const nextRoomState = immer.produce(roomState, roomState => { + const target = roomState.participants?.[authorizedUser.userUid]; + if (target != null) { + target.role = strategyResult; + return; + } + if (roomState.participants == null) { + roomState.participants = {}; + } + roomState.participants[authorizedUser.userUid] = { + $v: 2, + $r: 1, + name: convertToMaxLength100String.convertToMaxLength100String(args.name), + role: strategyResult, + }; + }); + return result.Result.ok(nextRoomState); + }, + }); + if (result$1.isError) { + if (result$1.error.type === 'custom') { + return { result: { failureType: result$1.error.error.failureType }, payload: undefined }; + } + return { result: { failureType: JoinRoomFailureType.JoinRoomFailureType.TransformError }, payload: undefined }; + } + switch (result$1.value) { + case utils.RoomNotFound: + return { result: { failureType: JoinRoomFailureType.JoinRoomFailureType.NotFound }, payload: undefined }; + case utils.IdOperation: + return { result: {}, payload: undefined }; + } + return { + result: { + operation: result$1.value.generateOperation(authorizedUser.userUid), + }, + payload: result$1.value, + }; +}; +exports.JoinRoomResolver = class JoinRoomResolver { + async joinRoomAsPlayer(args, context, pubSub) { + const { result, payload } = await joinRoomCore({ + args, + context, + strategy: async ({ me, room }) => { + if (me != null) { + switch (me.role) { + case undefined: + break; + default: + return JoinRoomFailureType.JoinRoomFailureType.AlreadyParticipant; + } + } + if (!(await utils.bcryptCompareNullable(args.password, room.playerPasswordHash))) { + return JoinRoomFailureType.JoinRoomFailureType.WrongPassword; + } + return FilePathModule.Player; + }, + }); + if (payload != null) { + await utils.publishRoomEvent(pubSub, payload); + } + return result; + } + async joinRoomAsSpectator(args, context, pubSub) { + const { result, payload } = await joinRoomCore({ + args, + context, + strategy: async ({ me, room }) => { + if (me != null) { + switch (me.role) { + case undefined: + break; + default: + return JoinRoomFailureType.JoinRoomFailureType.AlreadyParticipant; + } + } + if (!(await utils.bcryptCompareNullable(args.password, room.spectatorPasswordHash))) { + return JoinRoomFailureType.JoinRoomFailureType.WrongPassword; + } + return FilePathModule.Spectator; + }, + }); + if (payload != null) { + await utils.publishRoomEvent(pubSub, payload); + } + return result; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => JoinRoomResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [JoinRoomArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.JoinRoomResolver.prototype, "joinRoomAsPlayer", null); +tslib.__decorate([ + typeGraphql.Mutation(() => JoinRoomResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [JoinRoomArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.JoinRoomResolver.prototype, "joinRoomAsSpectator", null); +exports.JoinRoomResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.JoinRoomResolver); + +exports.JoinRoomResult = JoinRoomResult; +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/joinRoom/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/joinRoom/resolver.js.map new file mode 100644 index 000000000..76f5bf15f --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/joinRoom/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/joinRoom/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","RoomOperation","ObjectType","JoinRoomFailureType","createUnionType","ArgsType","ensureAuthorizedUser","result","operateAsAdminAndFlush","Result","produce","convertToMaxLength100String","RoomNotFound","IdOperation","JoinRoomResolver","bcryptCompareNullable","Player","publishRoomEvent","Spectator","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/leaveRoom/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/leaveRoom/resolver.js new file mode 100644 index 000000000..069f3ab1b --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/leaveRoom/resolver.js @@ -0,0 +1,76 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var utils$1 = require('@flocon-trpg/utils'); +var result = require('@kizahasi/result'); +var immer = require('immer'); +var typeGraphql = require('type-graphql'); +var LeaveRoomFailureType = require('../../../../enums/LeaveRoomFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); + +let LeaveRoomResult = class LeaveRoomResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => LeaveRoomFailureType.LeaveRoomFailureType, { nullable: true }), + tslib.__metadata("design:type", String) +], LeaveRoomResult.prototype, "failureType", void 0); +LeaveRoomResult = tslib.__decorate([ + typeGraphql.ObjectType() +], LeaveRoomResult); +exports.LeaveRoomResolver = class LeaveRoomResolver { + async leaveRoom(id, context, pubSub) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const flushResult = await utils.operateAsAdminAndFlush({ + em, + roomId: id, + roomHistCount: context.serverConfig.roomHistCount, + operationType: 'state', + operation: async (roomState) => { + if (roomState.participants?.[authorizedUserUid] == null) { + return result.Result.error(LeaveRoomFailureType.LeaveRoomFailureType.NotParticipant); + } + const nextRoomState = immer.produce(roomState, roomState => { + delete roomState.participants?.[authorizedUserUid]; + }); + return result.Result.ok(nextRoomState); + }, + }); + if (flushResult.isError) { + if (flushResult.error.type === 'custom') { + return { failureType: LeaveRoomFailureType.LeaveRoomFailureType.NotParticipant }; + } + throw FilePathModule.toOtError(flushResult.error.error); + } + switch (flushResult.value) { + case utils.RoomNotFound: + return { + failureType: LeaveRoomFailureType.LeaveRoomFailureType.NotFound, + }; + case utils.IdOperation: + utils$1.loggerRef.debug('An operation in leaveRoom is id. This should not happen.'); + return { failureType: LeaveRoomFailureType.LeaveRoomFailureType.NotParticipant }; + } + await utils.publishRoomEvent(pubSub, flushResult.value); + return {}; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => LeaveRoomResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Arg('id')), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [String, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.LeaveRoomResolver.prototype, "leaveRoom", null); +exports.LeaveRoomResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.LeaveRoomResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/leaveRoom/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/leaveRoom/resolver.js.map new file mode 100644 index 000000000..c3cb43348 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/leaveRoom/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/leaveRoom/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","LeaveRoomFailureType","ObjectType","LeaveRoomResolver","ensureAuthorizedUser","operateAsAdminAndFlush","Result","produce","toOtError","RoomNotFound","IdOperation","loggerRef","publishRoomEvent","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Arg","Ctx","PubSub","PubSubEngine","Resolver"],"mappings":";;;;;;;;;;;;;;AA8BA,IAAM,eAAe,GAArB,MAAM,eAAe,CAAA;CAGpB;AADUA,gBAAA,CAAA;IADNC,iBAAK,CAAC,MAAMC,yCAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACZ,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAFxC,eAAe,GAAAF,gBAAA,CAAA;AADpB,IAAAG,sBAAU;AACL,CAAA,EAAA,eAAe,CAGpB;AAGYC,yBAAiB,GAAvB,MAAM,iBAAiB,CAAA;IAIb,MAAA,SAAS,CACP,EAAU,EACd,OAAwB,EACrB,MAAoB,EAAA;AAE9B,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE;QACrB,MAAM,iBAAiB,GAAGC,0BAAoB,CAAC,OAAO,CAAC,CAAC,OAAO;AAE/D,QAAA,MAAM,WAAW,GAAG,MAAMC,4BAAsB,CAAC;YAC7C,EAAE;AACF,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,aAAa;AACjD,YAAA,aAAa,EAAE,OAAO;AACtB,YAAA,SAAS,EAAE,OAAM,SAAS,KAAG;gBACzB,IAAI,SAAS,CAAC,YAAY,GAAG,iBAAiB,CAAC,IAAI,IAAI,EAAE;oBACrD,OAAOC,aAAM,CAAC,KAAK,CAACL,yCAAoB,CAAC,cAAc,CAAC;;gBAE5D,MAAM,aAAa,GAAGM,aAAO,CAAC,SAAS,EAAE,SAAS,IAAG;AACjD,oBAAA,OAAO,SAAS,CAAC,YAAY,GAAG,iBAAiB,CAAC;AACtD,iBAAC,CAAC;AACF,gBAAA,OAAOD,aAAM,CAAC,EAAE,CAAC,aAAa,CAAC;aAClC;AACJ,SAAA,CAAC;AACF,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE;YACrB,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AACrC,gBAAA,OAAO,EAAE,WAAW,EAAEL,yCAAoB,CAAC,cAAc,EAAE;;YAE/D,MAAMO,wBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;;AAE5C,QAAA,QAAQ,WAAW,CAAC,KAAK;AACrB,YAAA,KAAKC,kBAAY;gBACb,OAAO;oBACH,WAAW,EAAER,yCAAoB,CAAC,QAAQ;iBAC7C;AACL,YAAA,KAAKS,iBAAW;AACZ,gBAAAC,iBAAS,CAAC,KAAK,CAAC,0DAA0D,CAAC;AAC3E,gBAAA,OAAO,EAAE,WAAW,EAAEV,yCAAoB,CAAC,cAAc,EAAE;;QAInE,MAAMW,sBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;AACjD,QAAA,OAAO,EAAE;;;AAzCAb,gBAAA,CAAA;AAHZ,IAAAc,oBAAQ,CAAC,MAAM,eAAe,CAAC;IAC/BC,sBAAU,CAACC,WAAK,CAAC;AACjB,IAAAC,yBAAa,CAACC,+BAAe,EAAEC,uCAAmB,CAAC,CAAC,CAAC,CAAC;AAElD,IAAAC,aAAA,CAAA,CAAA,EAAAC,eAAG,CAAC,IAAI,CAAC,CAAA;IACTD,aAAA,CAAA,CAAA,EAAAE,eAAG,EAAE,CAAA;IACLF,aAAA,CAAA,CAAA,EAAAG,kBAAM,EAAE,CAAA;;2DAASC,wBAAY,CAAA,CAAA;;AAuCjC,CAAA,EAAApB,yBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AA9CQA,yBAAiB,GAAAJ,gBAAA,CAAA;AAD7B,IAAAyB,oBAAQ;AACI,CAAA,EAAArB,yBAAiB,CA+C7B;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/makeMessageNotSecret/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/makeMessageNotSecret/resolver.js new file mode 100644 index 000000000..3a9441a5c --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/makeMessageNotSecret/resolver.js @@ -0,0 +1,119 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/roomMessage/entity.js'); +var MakeMessageNotSecretFailureType = require('../../../../enums/MakeMessageNotSecretFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var roomMessage = require('../../../objects/roomMessage.js'); +var utils = require('../../utils/utils.js'); + +let MessageIdArgs = class MessageIdArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], MessageIdArgs.prototype, "roomId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], MessageIdArgs.prototype, "messageId", void 0); +MessageIdArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], MessageIdArgs); +exports.MakeMessageNotSecretResolver = class MakeMessageNotSecretResolver { + async makeMessageNotSecret(args, context, pubSub) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const findResult = await utils.findRoomAndMyParticipant({ + em, + userUid: authorizedUserUid, + roomId: args.roomId, + }); + if (findResult == null) { + return { + failureType: MakeMessageNotSecretFailureType.MakeMessageNotSecretFailureType.RoomNotFound, + }; + } + const { room, me } = findResult; + if (me === undefined) { + return { + failureType: MakeMessageNotSecretFailureType.MakeMessageNotSecretFailureType.NotParticipant, + }; + } + const publicMsg = await em.findOne(entity.RoomPubMsg, { id: args.messageId }); + if (publicMsg != null) { + const createdBy = await publicMsg.createdBy?.loadProperty('userUid'); + if (createdBy !== authorizedUserUid) { + return { + failureType: MakeMessageNotSecretFailureType.MakeMessageNotSecretFailureType.NotYourMessage, + }; + } + if (!publicMsg.isSecret) { + return { + failureType: MakeMessageNotSecretFailureType.MakeMessageNotSecretFailureType.NotSecret, + }; + } + publicMsg.isSecret = false; + room.completeUpdatedAt = new Date(); + await em.flush(); + const payloadValue = utils.createRoomPublicMessageUpdate(publicMsg); + await utils.publishRoomEvent(pubSub, { + type: 'messageUpdatePayload', + sendTo: findResult.participantIds(), + roomId: room.id, + visibleTo: undefined, + createdBy, + value: payloadValue, + }); + return {}; + } + const privateMsg = await em.findOne(entity.RoomPrvMsg, { id: args.messageId }); + if (privateMsg != null) { + const createdBy = await privateMsg.createdBy?.loadProperty('userUid'); + if (createdBy !== authorizedUserUid) { + return { + failureType: MakeMessageNotSecretFailureType.MakeMessageNotSecretFailureType.NotYourMessage, + }; + } + if (!privateMsg.isSecret) { + return { + failureType: MakeMessageNotSecretFailureType.MakeMessageNotSecretFailureType.NotSecret, + }; + } + privateMsg.isSecret = false; + room.completeUpdatedAt = new Date(); + await em.flush(); + const payloadValue = utils.createRoomPrivateMessageUpdate(privateMsg); + await utils.publishRoomEvent(pubSub, { + type: 'messageUpdatePayload', + sendTo: findResult.participantIds(), + roomId: room.id, + visibleTo: (await privateMsg.visibleTo.loadItems()).map(user => user.userUid), + createdBy, + value: payloadValue, + }); + return {}; + } + return { + failureType: MakeMessageNotSecretFailureType.MakeMessageNotSecretFailureType.MessageNotFound, + }; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => roomMessage.MakeMessageNotSecretResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [MessageIdArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.MakeMessageNotSecretResolver.prototype, "makeMessageNotSecret", null); +exports.MakeMessageNotSecretResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.MakeMessageNotSecretResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/makeMessageNotSecret/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/makeMessageNotSecret/resolver.js.map new file mode 100644 index 000000000..8e3ce5ffb --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/makeMessageNotSecret/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/makeMessageNotSecret/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ArgsType","MakeMessageNotSecretResolver","ensureAuthorizedUser","findRoomAndMyParticipant","MakeMessageNotSecretFailureType","RoomPubMsg","createRoomPublicMessageUpdate","publishRoomEvent","RoomPrvMsg","createRoomPrivateMessageUpdate","Mutation","MakeMessageNotSecretResult","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/operate/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/operate/resolver.js new file mode 100644 index 000000000..61fd55d39 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/operate/resolver.js @@ -0,0 +1,292 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var classValidator = require('class-validator'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/roomMessage/entity.js'); +var room$1 = require('../../../../entities-graphql/room.js'); +var roomAsListItem = require('../../../../entities-graphql/roomAsListItem.js'); +var roomMessage = require('../../../../entities-graphql/roomMessage.js'); +var OperateRoomFailureType = require('../../../../enums/OperateRoomFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var room = require('../../../objects/room.js'); +var utils = require('../../utils/utils.js'); + +exports.RoomOperationInput = class RoomOperationInput { +}; +tslib.__decorate([ + typeGraphql.Field({ description: 'room.upOperationをJSONにしたもの' }), + tslib.__metadata("design:type", String) +], exports.RoomOperationInput.prototype, "valueJson", void 0); +tslib.__decorate([ + typeGraphql.Field({ + description: 'クライアントを識別するID。適当なIDをクライアント側で生成して渡す。Operationごとに変える必要はない', + }), + classValidator.MaxLength(10), + tslib.__metadata("design:type", String) +], exports.RoomOperationInput.prototype, "clientId", void 0); +exports.RoomOperationInput = tslib.__decorate([ + typeGraphql.InputType() +], exports.RoomOperationInput); +let OperateArgs = class OperateArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], OperateArgs.prototype, "id", void 0); +tslib.__decorate([ + typeGraphql.Field(() => typeGraphql.Int), + tslib.__metadata("design:type", Number) +], OperateArgs.prototype, "prevRevision", void 0); +tslib.__decorate([ + typeGraphql.Field(() => exports.RoomOperationInput), + tslib.__metadata("design:type", exports.RoomOperationInput) +], OperateArgs.prototype, "operation", void 0); +tslib.__decorate([ + typeGraphql.Field(), + classValidator.MaxLength(10), + tslib.__metadata("design:type", String) +], OperateArgs.prototype, "requestId", void 0); +OperateArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], OperateArgs); +let OperateRoomSuccessResult = class OperateRoomSuccessResult { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", room.RoomOperation) +], OperateRoomSuccessResult.prototype, "operation", void 0); +OperateRoomSuccessResult = tslib.__decorate([ + typeGraphql.ObjectType() +], OperateRoomSuccessResult); +let OperateRoomIdResult = class OperateRoomIdResult { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], OperateRoomIdResult.prototype, "requestId", void 0); +OperateRoomIdResult = tslib.__decorate([ + typeGraphql.ObjectType() +], OperateRoomIdResult); +let OperateRoomNonJoinedResult = class OperateRoomNonJoinedResult { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", room.RoomAsListItem) +], OperateRoomNonJoinedResult.prototype, "roomAsListItem", void 0); +OperateRoomNonJoinedResult = tslib.__decorate([ + typeGraphql.ObjectType() +], OperateRoomNonJoinedResult); +let OperateRoomFailureResult = class OperateRoomFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => OperateRoomFailureType.OperateRoomFailureType), + tslib.__metadata("design:type", String) +], OperateRoomFailureResult.prototype, "failureType", void 0); +OperateRoomFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], OperateRoomFailureResult); +const OperateRoomResult = typeGraphql.createUnionType({ + name: 'OperateRoomResult', + types: () => [ + OperateRoomSuccessResult, + OperateRoomFailureResult, + OperateRoomNonJoinedResult, + OperateRoomIdResult, + ], + resolveType: value => { + if ('operation' in value) { + return OperateRoomSuccessResult; + } + if ('failureType' in value) { + return OperateRoomFailureResult; + } + if ('roomAsListItem' in value) { + return OperateRoomNonJoinedResult; + } + if ('requestId' in value) { + return OperateRoomIdResult; + } + return undefined; + }, +}); +async function operateCore({ args, context, }) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const findResult = await utils.findRoomAndMyParticipant({ + em, + userUid: authorizedUserUid, + roomId: args.id, + }); + if (findResult == null) { + return { + type: 'failure', + result: { failureType: OperateRoomFailureType.OperateRoomFailureType.NotFound }, + }; + } + const { room, me, roomState } = findResult; + if (me === undefined) { + return { + type: 'nonJoined', + result: { + roomAsListItem: await roomAsListItem.stateToGraphQL({ + roomEntity: room, + myUserUid: authorizedUserUid, + }), + }, + }; + } + const participantUserUids = findResult.participantIds(); + const clientOperation = FilePathModule.parseUpOperation(args.operation.valueJson); + const downOperation = await room$1.GlobalRoom.MikroORM.ToGlobal.downOperationMany({ + em, + roomId: room.id, + revisionRange: { from: args.prevRevision, expectedTo: room.revision }, + }); + if (downOperation.isError) { + throw FilePathModule.toOtError(downOperation.error); + } + let prevState = roomState; + let twoWayOperation = undefined; + if (downOperation.value !== undefined) { + const restoredRoom = FilePathModule.restore(FilePathModule.roomTemplate)({ + nextState: roomState, + downOperation: downOperation.value, + }); + if (restoredRoom.isError) { + throw FilePathModule.toOtError(restoredRoom.error); + } + prevState = restoredRoom.value.prevState; + twoWayOperation = restoredRoom.value.twoWayOperation; + } + const transformed = FilePathModule.serverTransform({ type: FilePathModule.client, userUid: authorizedUserUid })({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: roomState, + clientOperation: clientOperation, + serverOperation: twoWayOperation, + }); + if (transformed.isError) { + throw FilePathModule.toOtError(transformed.error); + } + if (transformed.value === undefined) { + return { type: 'id', result: { requestId: args.requestId } }; + } + const operation = transformed.value; + const prevRevision = room.revision; + const nextRoomState = await room$1.GlobalRoom.Global.applyToEntity({ + em, + target: room, + prevState: roomState, + operation, + }); + const logs = FilePathModule.createLogs({ prevState: roomState, nextState: nextRoomState }); + const dicePieceLogEntities = []; + logs?.dicePieceLogs.forEach(log => { + const entity$1 = new entity.DicePieceLog({ + stateId: log.stateId, + room, + value: log.value, + }); + dicePieceLogEntities.push(entity$1); + em.persist(entity$1); + }); + const stringPieceLogEntities = []; + logs?.stringPieceLogs.forEach(log => { + const entity$1 = new entity.StringPieceLog({ + stateId: log.stateId, + room, + value: log.value, + }); + stringPieceLogEntities.push(entity$1); + em.persist(entity$1); + }); + await em.flush(); + await room$1.GlobalRoom.Global.cleanOldRoomOp({ + em: em.fork(), + room, + roomHistCount: context.serverConfig.roomHistCount, + }); + await em.flush(); + const generateOperation = (deliverTo) => { + return { + __tstype: 'RoomOperation', + revisionTo: prevRevision + 1, + operatedBy: { + userUid: authorizedUserUid, + clientId: args.operation.clientId, + }, + valueJson: room$1.GlobalRoom.Global.ToGraphQL.operation({ + prevState: roomState, + nextState: nextRoomState, + requestedBy: { type: FilePathModule.client, userUid: deliverTo }, + }), + }; + }; + const roomOperationPayload = { + type: 'roomOperationPayload', + roomId: args.id, + generateOperation, + }; + return { + type: 'success', + sendTo: participantUserUids, + roomOperationPayload, + messageUpdatePayload: [ + ...dicePieceLogEntities.map(log => ({ + type: 'messageUpdatePayload', + roomId: room.id, + createdBy: undefined, + visibleTo: undefined, + value: roomMessage.DicePieceLog.MikroORM.ToGraphQL.state(log), + })), + ...stringPieceLogEntities.map(log => ({ + type: 'messageUpdatePayload', + roomId: room.id, + createdBy: undefined, + visibleTo: undefined, + value: roomMessage.StringPieceLog.MikroORM.ToGraphQL.state(log), + })), + ], + result: { + operation: generateOperation(authorizedUserUid), + }, + }; +} +exports.OperateResolver = class OperateResolver { + async operate(args, context, pubSub) { + const operateResult = await operateCore({ + args, + context, + }); + if (operateResult.type === 'success') { + await utils.publishRoomEvent(pubSub, { + ...operateResult.roomOperationPayload, + sendTo: operateResult.sendTo, + }); + for (const messageUpdate of operateResult.messageUpdatePayload) { + await utils.publishRoomEvent(pubSub, { ...messageUpdate, sendTo: operateResult.sendTo }); + } + } + return operateResult.result; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => OperateRoomResult, { + description: 'この Mutation を直接実行することは非推奨です。代わりに @flocon-trpg/sdk を用いてください。', + }), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(3)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [OperateArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.OperateResolver.prototype, "operate", null); +exports.OperateResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.OperateResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/operate/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/operate/resolver.js.map new file mode 100644 index 000000000..7c84aaebf --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/operate/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/operate/resolver.ts"],"sourcesContent":[null],"names":["RoomOperationInput","__decorate","Field","MaxLength","InputType","Int","ArgsType","RoomOperation","ObjectType","RoomAsListItem","OperateRoomFailureType","createUnionType","ensureAuthorizedUser","findRoomAndMyParticipant","RoomAsListItemGlobal.stateToGraphQL","parseUpOperation","GlobalRoom","toOtError","restore","roomTemplate","serverTransform","client","createLogs","entity","DicePieceLog$MikroORM","StringPieceLog$MikroORM","DicePieceLogNameSpace","StringPieceLogNameSpace","OperateResolver","publishRoomEvent","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/performRollCall/performRollCall.js b/apps/api-server/dist/graphql/resolvers/mutations/performRollCall/performRollCall.js new file mode 100644 index 000000000..3a5dea628 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/performRollCall/performRollCall.js @@ -0,0 +1,69 @@ +'use strict'; + +var FilePathModule = require('@flocon-trpg/core'); +var utils = require('@flocon-trpg/utils'); +var result = require('@kizahasi/result'); +var esToolkit = require('es-toolkit'); +var immer = require('immer'); +var PerformRollCallFailureType = require('../../../../enums/PerformRollCallFailureType.js'); + +const maxRollCallHistoryCount = 3; +const minimumTimeWindow = 60000; +const performRollCall = (source, myUserUid, soundEffect) => { + const me = source.participants?.[myUserUid]; + switch (me?.role) { + case FilePathModule.Master: + case FilePathModule.Player: + break; + default: + return result.Result.error(PerformRollCallFailureType.PerformRollCallFailureType.NotAuthorizedParticipant); + } + const openRollCall = FilePathModule.getOpenRollCall(source.rollCalls ?? {}); + if (openRollCall != null) { + return result.Result.error(PerformRollCallFailureType.PerformRollCallFailureType.HasOpenRollCall); + } + const maxCreatedAt = esToolkit.maxBy(utils.recordToArray(source.rollCalls ?? {}), ({ value }) => value.createdAt)?.value.createdAt; + if (maxCreatedAt != null) { + const elapsed = new Date().getTime() - maxCreatedAt; + if (elapsed < minimumTimeWindow) { + return result.Result.error(PerformRollCallFailureType.PerformRollCallFailureType.TooManyRequests); + } + } + const result$1 = immer.produce(source, source => { + const openRollCall = FilePathModule.getOpenRollCall(source.rollCalls ?? {}); + if (openRollCall != null) { + return; + } + const key = FilePathModule.simpleId(); + if (source.rollCalls == null) { + source.rollCalls = {}; + } + utils.recordToArray(source.rollCalls) + .slice(maxRollCallHistoryCount) + .forEach(({ key }) => { + if (source.rollCalls == null) { + return; + } + source.rollCalls[key] = undefined; + }); + source.rollCalls[key] = { + $v: 1, + $r: 1, + createdAt: new Date().getTime(), + createdBy: myUserUid, + participants: { + [myUserUid]: { + $v: 1, + $r: 1, + answeredAt: new Date().getTime(), + }, + }, + closeStatus: undefined, + soundEffect, + }; + }); + return result.Result.ok(result$1); +}; + +exports.performRollCall = performRollCall; +//# sourceMappingURL=performRollCall.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/performRollCall/performRollCall.js.map b/apps/api-server/dist/graphql/resolvers/mutations/performRollCall/performRollCall.js.map new file mode 100644 index 000000000..e096c6176 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/performRollCall/performRollCall.js.map @@ -0,0 +1 @@ +{"version":3,"file":"performRollCall.js","sources":["../../../../../src/graphql/resolvers/mutations/performRollCall/performRollCall.ts"],"sourcesContent":[null],"names":["Master","Player","Result","PerformRollCallFailureType","getOpenRollCall","maxBy","recordToArray","result","produce","simpleId"],"mappings":";;;;;;;;;AAOA,MAAM,uBAAuB,GAAG,CAAC;AACjC,MAAM,iBAAiB,GAAG,KAAM;AAMnB,MAAA,eAAe,GAAG,CAC3B,MAAiB,EACjB,SAAiB,EACjB,WAAyC,KACM;IAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;AAC3C,IAAA,QAAQ,EAAE,EAAE,IAAI;AACZ,QAAA,KAAKA,qBAAM;AACX,QAAA,KAAKC,qBAAM;YACP;AACJ,QAAA;YACI,OAAOC,aAAM,CAAC,KAAK,CAACC,qDAA0B,CAAC,wBAAwB,CAAC;;IAEhF,MAAM,YAAY,GAAGC,8BAAe,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;AAC5D,IAAA,IAAI,YAAY,IAAI,IAAI,EAAE;QACtB,OAAOF,aAAM,CAAC,KAAK,CAACC,qDAA0B,CAAC,eAAe,CAAC;;AAEnE,IAAA,MAAM,YAAY,GAAGE,eAAK,CACtBC,mBAAa,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,EACrC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS,CACjC,EAAE,KAAK,CAAC,SAAS;AAClB,IAAA,IAAI,YAAY,IAAI,IAAI,EAAE;QACtB,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,YAAY;AACnD,QAAA,IAAI,OAAO,GAAG,iBAAiB,EAAE;YAC7B,OAAOJ,aAAM,CAAC,KAAK,CAACC,qDAA0B,CAAC,eAAe,CAAC;;;IAGvE,MAAMI,QAAM,GAAGC,aAAO,CAAC,MAAM,EAAE,MAAM,IAAG;QACpC,MAAM,YAAY,GAAGJ,8BAAe,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;AAC5D,QAAA,IAAI,YAAY,IAAI,IAAI,EAAE;YACtB;;AAEJ,QAAA,MAAM,GAAG,GAAGK,uBAAQ,EAAE;AACtB,QAAA,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,MAAM,CAAC,SAAS,GAAG,EAAE;;AAGzB,QAAAH,mBAAa,CAAC,MAAM,CAAC,SAAS;aACzB,KAAK,CAAC,uBAAuB;AAC7B,aAAA,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,KAAI;AACjB,YAAA,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC1B;;AAEJ,YAAA,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS;AACrC,SAAC,CAAC;AAEN,QAAA,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;AACpB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AAC/B,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,YAAY,EAAE;gBACV,CAAC,SAAS,GAAG;AACT,oBAAA,EAAE,EAAE,CAAC;AACL,oBAAA,EAAE,EAAE,CAAC;AACL,oBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AACnC,iBAAA;AACJ,aAAA;AACD,YAAA,WAAW,EAAE,SAAS;YACtB,WAAW;SACd;AACL,KAAC,CAAC;AACF,IAAA,OAAOJ,aAAM,CAAC,EAAE,CAACK,QAAM,CAAC;AAC5B;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/performRollCall/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/performRollCall/resolver.js new file mode 100644 index 000000000..5bb24abe2 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/performRollCall/resolver.js @@ -0,0 +1,94 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var typeGraphql = require('type-graphql'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); +var performRollCall = require('./performRollCall.js'); +var PerformRollCallFailureType = require('../../../../enums/PerformRollCallFailureType.js'); +var filePath = require('../../../objects/filePath.js'); + +let PerformRollCallResult = class PerformRollCallResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => PerformRollCallFailureType.PerformRollCallFailureType, { nullable: true }), + tslib.__metadata("design:type", String) +], PerformRollCallResult.prototype, "failureType", void 0); +PerformRollCallResult = tslib.__decorate([ + typeGraphql.ObjectType() +], PerformRollCallResult); +let PerformRollCallInput = class PerformRollCallInput { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], PerformRollCallInput.prototype, "roomId", void 0); +tslib.__decorate([ + typeGraphql.Field(() => filePath.FilePath, { + nullable: true, + description: 'SE を設定する場合、これと併せて soundEffectVolume もセットする必要があります。', + }), + tslib.__metadata("design:type", filePath.FilePath) +], PerformRollCallInput.prototype, "soundEffectFile", void 0); +tslib.__decorate([ + typeGraphql.Field({ + nullable: true, + description: 'SE を設定する場合、これと併せて soundEffectFile もセットする必要があります。', + }), + tslib.__metadata("design:type", Number) +], PerformRollCallInput.prototype, "soundEffectVolume", void 0); +PerformRollCallInput = tslib.__decorate([ + typeGraphql.InputType() +], PerformRollCallInput); +exports.PerformRollCallResolver = class PerformRollCallResolver { + async performRollCall(input, context, pubSub) { + const myUserUid = utils.ensureUserUid(context); + const result = await utils.operateAsAdminAndFlush({ + em: context.em, + roomId: input.roomId, + roomHistCount: undefined, + operationType: 'state', + operation: roomState => { + const soundEffect = input.soundEffectFile != null && input.soundEffectVolume != null + ? { + file: { ...input.soundEffectFile, $v: 1, $r: 1 }, + volume: input.soundEffectVolume, + } + : undefined; + return performRollCall.performRollCall(roomState, myUserUid, soundEffect); + }, + }); + if (result.isError) { + if (result.error.type === 'custom') { + return { failureType: result.error.error }; + } + throw FilePathModule.toOtError(result.error.error); + } + switch (result.value) { + case utils.RoomNotFound: + return { failureType: PerformRollCallFailureType.PerformRollCallFailureType.NotFound }; + case utils.IdOperation: + return {}; + } + await utils.publishRoomEvent(pubSub, result.value); + return {}; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => PerformRollCallResult, { description: 'since v0.7.13' }), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Arg('input')), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [PerformRollCallInput, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.PerformRollCallResolver.prototype, "performRollCall", null); +exports.PerformRollCallResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.PerformRollCallResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/performRollCall/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/performRollCall/resolver.js.map new file mode 100644 index 000000000..250a24855 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/performRollCall/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/performRollCall/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","PerformRollCallFailureType","ObjectType","FilePath","InputType","PerformRollCallResolver","ensureUserUid","operateAsAdminAndFlush","performRollCall","toOtError","RoomNotFound","IdOperation","publishRoomEvent","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Arg","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/ping/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/ping/resolver.js new file mode 100644 index 000000000..bbb8bf98a --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/ping/resolver.js @@ -0,0 +1,32 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var pong = require('../../../objects/pong.js'); +var topics = require('../../subsciptions/pong/topics.js'); + +exports.PingResolver = class PingResolver { + async ping(value, context, pubSub) { + const createdBy = context.decodedIdToken?.isError === false + ? context.decodedIdToken.value.uid + : undefined; + const payload = { value, createdBy }; + await pubSub.publish(topics.PONG, payload); + return payload; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => pong.Pong, { + description: 'GraphQL の動作テストに用いられます。3rd-party の Web サーバーを作成する際は利用しなくて構いません。', + }), + tslib.__param(0, typeGraphql.Arg('value')), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [Number, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.PingResolver.prototype, "ping", null); +exports.PingResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.PingResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/ping/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/ping/resolver.js.map new file mode 100644 index 000000000..bdbb05e44 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/ping/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/ping/resolver.ts"],"sourcesContent":[null],"names":["PingResolver","PONG","__decorate","Mutation","Pong","__param","Arg","Ctx","PubSub","PubSubEngine","Resolver"],"mappings":";;;;;;;AAOaA,oBAAY,GAAlB,MAAM,YAAY,CAAA;IAKR,MAAA,IAAI,CACC,KAAa,EACpB,OAAwB,EACrB,MAAoB,EAAA;QAE9B,MAAM,SAAS,GACX,OAAO,CAAC,cAAc,EAAE,OAAO,KAAK;AAChC,cAAE,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;cAC7B,SAAS;AACnB,QAAA,MAAM,OAAO,GAAgB,EAAE,KAAK,EAAE,SAAS,EAAE;QACjD,MAAM,MAAM,CAAC,OAAO,CAACC,WAAI,EAAE,OAAO,CAAC;AACnC,QAAA,OAAO,OAAO;;;AAXLC,gBAAA,CAAA;AAJZ,IAAAC,oBAAQ,CAAC,MAAMC,SAAI,EAAE;AAClB,QAAA,WAAW,EACP,+DAA+D;KACtE,CAAC;AAEG,IAAAC,aAAA,CAAA,CAAA,EAAAC,eAAG,CAAC,OAAO,CAAC,CAAA;IACZD,aAAA,CAAA,CAAA,EAAAE,eAAG,EAAE,CAAA;IACLF,aAAA,CAAA,CAAA,EAAAG,kBAAM,EAAE,CAAA;;2DAASC,wBAAY,CAAA,CAAA;;AASjC,CAAA,EAAAT,oBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,IAAA,CAAA;AAjBQA,oBAAY,GAAAE,gBAAA,CAAA;AADxB,IAAAQ,oBAAQ;AACI,CAAA,EAAAV,oBAAY,CAkBxB;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/promoteToPlayer/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/promoteToPlayer/resolver.js new file mode 100644 index 000000000..96f2db306 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/promoteToPlayer/resolver.js @@ -0,0 +1,128 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var result = require('@kizahasi/result'); +var immer = require('immer'); +var typeGraphql = require('type-graphql'); +var PromoteFailureType = require('../../../../enums/PromoteFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); + +let PromoteArgs = class PromoteArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], PromoteArgs.prototype, "roomId", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], PromoteArgs.prototype, "password", void 0); +PromoteArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], PromoteArgs); +let PromoteResult = class PromoteResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => PromoteFailureType.PromoteFailureType, { nullable: true }), + tslib.__metadata("design:type", String) +], PromoteResult.prototype, "failureType", void 0); +PromoteResult = tslib.__decorate([ + typeGraphql.ObjectType() +], PromoteResult); +const promoteMeCore = async ({ roomId, context, strategy, }) => { + const em = context.em; + const authorizedUser = utils.ensureAuthorizedUser(context); + const flushResult = await utils.operateAsAdminAndFlush({ + operationType: 'state', + em, + roomId, + roomHistCount: undefined, + operation: async (roomState, { room }) => { + const me = roomState.participants?.[authorizedUser.userUid]; + if (me == null) { + return result.Result.error(PromoteFailureType.PromoteFailureType.NotParticipant); + } + const strategyResult = await strategy({ me, room }); + switch (strategyResult) { + case 'Master': + case 'Player': + case 'Spectator': { + const result$1 = immer.produce(roomState, roomState => { + const me = roomState.participants?.[authorizedUser.userUid]; + if (me == null) { + return; + } + me.role = strategyResult; + }); + return result.Result.ok(result$1); + } + default: + return result.Result.error(strategyResult); + } + }, + }); + if (flushResult.isError) { + if (flushResult.error.type === 'custom') { + return { result: { failureType: flushResult.error.error }, payload: undefined }; + } + throw FilePathModule.toOtError(flushResult.error.error); + } + switch (flushResult.value) { + case utils.RoomNotFound: + return { result: { failureType: PromoteFailureType.PromoteFailureType.NotFound }, payload: undefined }; + case utils.IdOperation: + return { + result: { failureType: PromoteFailureType.PromoteFailureType.NoNeedToPromote }, + payload: undefined, + }; + default: + return { result: {}, payload: flushResult.value }; + } +}; +exports.PromoteToPlayerResolver = class PromoteToPlayerResolver { + async promoteToPlayer(args, context, pubSub) { + const { result, payload } = await promoteMeCore({ + ...args, + context, + strategy: async ({ me, room }) => { + switch (me.role) { + case FilePathModule.Master: + case FilePathModule.Player: + return PromoteFailureType.PromoteFailureType.NoNeedToPromote; + case FilePathModule.Spectator: { + if (!(await utils.bcryptCompareNullable(args.password, room.playerPasswordHash))) { + return PromoteFailureType.PromoteFailureType.WrongPassword; + } + return FilePathModule.Player; + } + case null: + case undefined: + return PromoteFailureType.PromoteFailureType.NotParticipant; + } + }, + }); + if (payload != null) { + await utils.publishRoomEvent(pubSub, payload); + } + return result; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => PromoteResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [PromoteArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.PromoteToPlayerResolver.prototype, "promoteToPlayer", null); +exports.PromoteToPlayerResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.PromoteToPlayerResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/promoteToPlayer/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/promoteToPlayer/resolver.js.map new file mode 100644 index 000000000..56e7a5341 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/promoteToPlayer/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/promoteToPlayer/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ArgsType","PromoteFailureType","ObjectType","ensureAuthorizedUser","operateAsAdminAndFlush","Result","result","produce","toOtError","RoomNotFound","IdOperation","PromoteToPlayerResolver","Master","Player","Spectator","bcryptCompareNullable","publishRoomEvent","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/renameFiles/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/renameFiles/resolver.js new file mode 100644 index 000000000..b7e46ffd0 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/renameFiles/resolver.js @@ -0,0 +1,59 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/file/entity.js'); +var FilePermissionType = require('../../../../enums/FilePermissionType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); + +let RenameFileInput = class RenameFileInput { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], RenameFileInput.prototype, "filename", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], RenameFileInput.prototype, "newScreenname", void 0); +RenameFileInput = tslib.__decorate([ + typeGraphql.InputType() +], RenameFileInput); +exports.RenameFilesResolver = class RenameFilesResolver { + async renameFiles(input, context) { + const result = []; + const user = utils.ensureAuthorizedUser(context); + for (const elem of input) { + const file = await context.em.findOne(entity.File, { filename: elem.filename }); + if (file == null) { + continue; + } + const createdByUserUid = await file.createdBy.loadProperty('userUid'); + if (createdByUserUid !== user.userUid && + file.renamePermission !== FilePermissionType.FilePermissionType.Entry) { + continue; + } + file.screenname = elem.newScreenname; + result.push(elem.filename); + } + await context.em.flush(); + return result; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => [String]), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Arg('input', () => [RenameFileInput])), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [Array, Object]), + tslib.__metadata("design:returntype", Promise) +], exports.RenameFilesResolver.prototype, "renameFiles", null); +exports.RenameFilesResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.RenameFilesResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/renameFiles/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/renameFiles/resolver.js.map new file mode 100644 index 000000000..3bfb7128c --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/renameFiles/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/renameFiles/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","InputType","RenameFilesResolver","ensureAuthorizedUser","File","FilePermissionType","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Arg","Ctx","Resolver"],"mappings":";;;;;;;;;;;AAmBA,IAAM,eAAe,GAArB,MAAM,eAAe,CAAA;CAMpB;AAJUA,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACiB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAGlBD,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACsB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA;AAL5B,eAAe,GAAAD,gBAAA,CAAA;AADpB,IAAAE,qBAAS;AACJ,CAAA,EAAA,eAAe,CAMpB;AAGYC,2BAAmB,GAAzB,MAAM,mBAAmB,CAAA;AAIf,IAAN,MAAM,WAAW,CACmB,KAAwB,EACxD,OAAwB,EAAA;QAE/B,MAAM,MAAM,GAAa,EAAE;AAC3B,QAAA,MAAM,IAAI,GAAGC,0BAAoB,CAAC,OAAO,CAAC;AAC1C,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,CAACC,WAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxE,YAAA,IAAI,IAAI,IAAI,IAAI,EAAE;gBACd;;YAEJ,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC;AACrE,YAAA,IACI,gBAAgB,KAAK,IAAI,CAAC,OAAO;AACjC,gBAAA,IAAI,CAAC,gBAAgB,KAAKC,qCAAkB,CAAC,KAAK,EACpD;gBACE;;AAEJ,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa;AACpC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAE9B,QAAA,MAAM,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;AACxB,QAAA,OAAO,MAAM;;;AAtBJN,gBAAA,CAAA;AAHZ,IAAAO,oBAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxBC,sBAAU,CAACC,WAAK,CAAC;AACjB,IAAAC,yBAAa,CAACC,+BAAe,EAAEC,uCAAmB,CAAC,CAAC,CAAC,CAAC;IAElDC,aAAA,CAAA,CAAA,EAAAC,eAAG,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAA;IACrCD,aAAA,CAAA,CAAA,EAAAE,eAAG,EAAE,CAAA;;;;AAqBT,CAAA,EAAAZ,2BAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA;AA3BQA,2BAAmB,GAAAH,gBAAA,CAAA;AAD/B,IAAAgB,oBAAQ;AACI,CAAA,EAAAb,2BAAmB,CA4B/B;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/resetMessages/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/resetMessages/resolver.js new file mode 100644 index 000000000..d028f4074 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/resetMessages/resolver.js @@ -0,0 +1,83 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var typeGraphql = require('type-graphql'); +var ResetRoomMessagesFailureType = require('../../../../enums/ResetRoomMessagesFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var roomMessage = require('../../../objects/roomMessage.js'); +var utils = require('../../utils/utils.js'); + +exports.ResetMessagesResolver = class ResetMessagesResolver { + async resetMessages(roomId, context, pubSub) { + const em = context.em; + const authorizedUser = utils.ensureAuthorizedUser(context); + const findResult = await utils.findRoomAndMyParticipant({ + em, + userUid: authorizedUser.userUid, + roomId, + }); + if (findResult == null) { + return { + __tstype: roomMessage.ResetRoomMessagesResultType, + failureType: ResetRoomMessagesFailureType.ResetRoomMessagesFailureType.RoomNotFound, + }; + } + const { room, me } = findResult; + if (me === undefined) { + return { + __tstype: roomMessage.ResetRoomMessagesResultType, + failureType: ResetRoomMessagesFailureType.ResetRoomMessagesFailureType.NotParticipant, + }; + } + if (me.role === FilePathModule.Spectator) { + return { + __tstype: roomMessage.ResetRoomMessagesResultType, + failureType: ResetRoomMessagesFailureType.ResetRoomMessagesFailureType.NotAuthorized, + }; + } + for (const chatCh of await room.roomChatChs.loadItems()) { + await chatCh.roomPubMsgs.init(); + chatCh.roomPubMsgs.getItems().forEach(x => em.remove(x)); + chatCh.roomPubMsgs.removeAll(); + em.persist(chatCh); + } + await room.roomPrvMsgs.init(); + room.roomPrvMsgs.getItems().forEach(x => em.remove(x)); + room.roomPrvMsgs.removeAll(); + await room.dicePieceLogs.init(); + room.dicePieceLogs.getItems().forEach(x => em.remove(x)); + room.dicePieceLogs.removeAll(); + await room.stringPieceLogs.init(); + room.stringPieceLogs.getItems().forEach(x => em.remove(x)); + room.stringPieceLogs.removeAll(); + room.completeUpdatedAt = new Date(); + em.persist(room); + await em.flush(); + await utils.publishRoomEvent(pubSub, { + type: 'roomMessagesResetPayload', + sendTo: findResult.participantIds(), + roomId, + }); + return { + __tstype: 'ResetRoomMessagesResult', + }; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => roomMessage.ResetRoomMessagesResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(5)), + tslib.__param(0, typeGraphql.Arg('roomId')), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [String, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.ResetMessagesResolver.prototype, "resetMessages", null); +exports.ResetMessagesResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.ResetMessagesResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/resetMessages/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/resetMessages/resolver.js.map new file mode 100644 index 000000000..bd8612bf7 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/resetMessages/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/resetMessages/resolver.ts"],"sourcesContent":[null],"names":["ResetMessagesResolver","ensureAuthorizedUser","findRoomAndMyParticipant","ResetRoomMessagesResultType","ResetRoomMessagesFailureType","Spectator","publishRoomEvent","__decorate","Mutation","ResetRoomMessagesResult","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Arg","Ctx","PubSub","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/updateBookmark/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/updateBookmark/resolver.js new file mode 100644 index 000000000..9e8c9d08f --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/updateBookmark/resolver.js @@ -0,0 +1,107 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/room/entity.js'); +var UpdateBookmarkFailureType = require('../../../../enums/UpdateBookmarkFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); + +let UpdateBookmarkArgs = class UpdateBookmarkArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], UpdateBookmarkArgs.prototype, "roomId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], UpdateBookmarkArgs.prototype, "newValue", void 0); +UpdateBookmarkArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], UpdateBookmarkArgs); +let UpdateBookmarkSuccessResult = class UpdateBookmarkSuccessResult { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], UpdateBookmarkSuccessResult.prototype, "prevValue", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], UpdateBookmarkSuccessResult.prototype, "currentValue", void 0); +UpdateBookmarkSuccessResult = tslib.__decorate([ + typeGraphql.ObjectType() +], UpdateBookmarkSuccessResult); +let UpdateBookmarkFailureResult = class UpdateBookmarkFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => UpdateBookmarkFailureType.UpdateBookmarkFailureType), + tslib.__metadata("design:type", String) +], UpdateBookmarkFailureResult.prototype, "failureType", void 0); +UpdateBookmarkFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], UpdateBookmarkFailureResult); +const UpdateBookmarkResult = typeGraphql.createUnionType({ + name: 'UpdateBookmarkResult', + types: () => [UpdateBookmarkSuccessResult, UpdateBookmarkFailureResult], + resolveType: value => { + if ('currentValue' in value) { + return UpdateBookmarkSuccessResult; + } + if ('failureType' in value) { + return UpdateBookmarkFailureResult; + } + return undefined; + }, +}); +exports.UpdateBookmarkResolver = class UpdateBookmarkResolver { + async updateBookmark(args, context) { + const em = context.em; + const authorizedUser = utils.ensureAuthorizedUser(context); + const room = await em.findOne(entity.Room, { id: args.roomId }); + if (room == null) { + return { + failureType: UpdateBookmarkFailureType.UpdateBookmarkFailureType.NotFound, + }; + } + await authorizedUser.bookmarkedRooms.init(); + const isBookmarked = authorizedUser.bookmarkedRooms.contains(room); + if (args.newValue) { + if (isBookmarked) { + return { prevValue: isBookmarked, currentValue: isBookmarked }; + } + } + else { + if (!isBookmarked) { + return { prevValue: isBookmarked, currentValue: isBookmarked }; + } + } + if (args.newValue) { + authorizedUser.bookmarkedRooms.add(room); + } + else { + authorizedUser.bookmarkedRooms.remove(room); + } + await em.flush(); + return { prevValue: isBookmarked, currentValue: args.newValue }; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => UpdateBookmarkResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [UpdateBookmarkArgs, Object]), + tslib.__metadata("design:returntype", Promise) +], exports.UpdateBookmarkResolver.prototype, "updateBookmark", null); +exports.UpdateBookmarkResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.UpdateBookmarkResolver); + +exports.UpdateBookmarkResult = UpdateBookmarkResult; +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/updateBookmark/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/updateBookmark/resolver.js.map new file mode 100644 index 000000000..ca350a61b --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/updateBookmark/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/updateBookmark/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ArgsType","ObjectType","UpdateBookmarkFailureType","createUnionType","UpdateBookmarkResolver","ensureAuthorizedUser","Room$MikroORM.Room","Mutation","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/updateWritingMessageStatus/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/updateWritingMessageStatus/resolver.js new file mode 100644 index 000000000..e4ac8eb17 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/updateWritingMessageStatus/resolver.js @@ -0,0 +1,74 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var WritingMessageStatusInputType = require('../../../../enums/WritingMessageStatusInputType.js'); +var WritingMessageStatusType = require('../../../../enums/WritingMessageStatusType.js'); +var roles = require('../../../../utils/roles.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var types = require('../../types.js'); +var utils = require('../../utils/utils.js'); + +let UpdateWritingMessageStateArgs = class UpdateWritingMessageStateArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], UpdateWritingMessageStateArgs.prototype, "roomId", void 0); +tslib.__decorate([ + typeGraphql.Field(() => WritingMessageStatusInputType.WritingMessageStatusInputType), + tslib.__metadata("design:type", String) +], UpdateWritingMessageStateArgs.prototype, "newStatus", void 0); +UpdateWritingMessageStateArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], UpdateWritingMessageStateArgs); +exports.UpdateWritingMessageStatusResolver = class UpdateWritingMessageStatusResolver { + async updateWritingMessageStatus(args, context, pubSub) { + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + let status; + switch (args.newStatus) { + case WritingMessageStatusInputType.WritingMessageStatusInputType.Cleared: + status = WritingMessageStatusType.WritingMessageStatusType.Cleared; + break; + case WritingMessageStatusInputType.WritingMessageStatusInputType.StartWriting: + status = WritingMessageStatusType.WritingMessageStatusType.Writing; + break; + case WritingMessageStatusInputType.WritingMessageStatusInputType.KeepWriting: + status = WritingMessageStatusType.WritingMessageStatusType.Writing; + break; + } + const returns = await context.connectionManager.onWritingMessageStatusUpdate({ + roomId: args.roomId, + userUid: authorizedUserUid, + status, + }); + if (returns != null) { + await utils.publishRoomEvent(pubSub, { + type: 'writingMessageStatusUpdatePayload', + roomId: args.roomId, + userUid: authorizedUserUid, + status: returns, + updatedAt: new Date().getTime(), + sendTo: types.all, + }); + } + return true; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => Boolean, { + description: 'この Mutation を直接実行することは非推奨です。代わりに @flocon-trpg/sdk を用いてください。', + }), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [UpdateWritingMessageStateArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.UpdateWritingMessageStatusResolver.prototype, "updateWritingMessageStatus", null); +exports.UpdateWritingMessageStatusResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.UpdateWritingMessageStatusResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/updateWritingMessageStatus/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/updateWritingMessageStatus/resolver.js.map new file mode 100644 index 000000000..f5b2276cc --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/updateWritingMessageStatus/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/updateWritingMessageStatus/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","WritingMessageStatusInputType","ArgsType","UpdateWritingMessageStatusResolver","ensureAuthorizedUser","WritingMessageStatusType","publishRoomEvent","all","Mutation","Authorized","ENTRY","UseMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":";;;;;;;;;;;AAqBA,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B,CAAA;CAMlC;AAJUA,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACe,CAAA,EAAA,6BAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAGhBD,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,MAAMC,2DAA6B,CAAC;;AACM,CAAA,EAAA,6BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAL/C,6BAA6B,GAAAF,gBAAA,CAAA;AADlC,IAAAG,oBAAQ;AACH,CAAA,EAAA,6BAA6B,CAMlC;AAGYC,0CAAkC,GAAxC,MAAM,kCAAkC,CAAA;IAO9B,MAAA,0BAA0B,CAC3B,IAAmC,EACpC,OAAwB,EACrB,MAAoB,EAAA;QAE9B,MAAM,iBAAiB,GAAGC,0BAAoB,CAAC,OAAO,CAAC,CAAC,OAAO;AAC/D,QAAA,IAAI,MAAgC;AACpC,QAAA,QAAQ,IAAI,CAAC,SAAS;YAClB,KAAKH,2DAA6B,CAAC,OAAO;AACtC,gBAAA,MAAM,GAAGI,iDAAwB,CAAC,OAAO;gBACzC;YACJ,KAAKJ,2DAA6B,CAAC,YAAY;AAC3C,gBAAA,MAAM,GAAGI,iDAAwB,CAAC,OAAO;gBACzC;YACJ,KAAKJ,2DAA6B,CAAC,WAAW;AAC1C,gBAAA,MAAM,GAAGI,iDAAwB,CAAC,OAAO;gBACzC;;QAGR,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,4BAA4B,CAAC;YACzE,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,OAAO,EAAE,iBAAiB;YAC1B,MAAM;AACT,SAAA,CAAC;AACF,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;YACjB,MAAMC,sBAAgB,CAAC,MAAM,EAAE;AAC3B,gBAAA,IAAI,EAAE,mCAAmC;gBACzC,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AAG/B,gBAAA,MAAM,EAAEC,SAAG;AACd,aAAA,CAAC;;AAEN,QAAA,OAAO,IAAI;;;AApCFR,gBAAA,CAAA;AANZ,IAAAS,oBAAQ,CAAC,MAAM,OAAO,EAAE;AACrB,QAAA,WAAW,EACP,6DAA6D;KACpE,CAAC;IACDC,sBAAU,CAACC,WAAK,CAAC;AACjB,IAAAC,yBAAa,CAACC,uCAAmB,CAAC,CAAC,CAAC,CAAC;IAEjCC,aAAA,CAAA,CAAA,EAAAC,gBAAI,EAAE,CAAA;IACND,aAAA,CAAA,CAAA,EAAAE,eAAG,EAAE,CAAA;IACLF,aAAA,CAAA,CAAA,EAAAG,kBAAM,EAAE,CAAA;;AAFK,IAAAC,gBAAA,CAAA,mBAAA,EAAA,CAAA,6BAA6B,UAEzBC,wBAAY,CAAA,CAAA;;AAkCjC,CAAA,EAAAf,0CAAA,CAAA,SAAA,EAAA,4BAAA,EAAA,IAAA,CAAA;AA5CQA,0CAAkC,GAAAJ,gBAAA,CAAA;AAD9C,IAAAoB,oBAAQ;AACI,CAAA,EAAAhB,0CAAkC,CA6C9C;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/writePrivateMessage/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/writePrivateMessage/resolver.js new file mode 100644 index 000000000..59f179563 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/writePrivateMessage/resolver.js @@ -0,0 +1,164 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var core = require('@mikro-orm/core'); +var classValidator = require('class-validator'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/user/entity.js'); +var FileSourceType = require('../../../../enums/FileSourceType.js'); +var WriteRoomPrivateMessageFailureType = require('../../../../enums/WriteRoomPrivateMessageFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var roomMessage = require('../../../objects/roomMessage.js'); +var utils = require('../../utils/utils.js'); + +let WritePrivateMessageArgs = class WritePrivateMessageArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], WritePrivateMessageArgs.prototype, "roomId", void 0); +tslib.__decorate([ + typeGraphql.Field(() => [String]), + tslib.__metadata("design:type", Array) +], WritePrivateMessageArgs.prototype, "visibleTo", void 0); +tslib.__decorate([ + typeGraphql.Field(), + classValidator.MaxLength(10000), + tslib.__metadata("design:type", String) +], WritePrivateMessageArgs.prototype, "text", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + classValidator.MaxLength(50), + tslib.__metadata("design:type", String) +], WritePrivateMessageArgs.prototype, "textColor", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], WritePrivateMessageArgs.prototype, "characterId", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + classValidator.MaxLength(1000), + tslib.__metadata("design:type", String) +], WritePrivateMessageArgs.prototype, "customName", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true, description: 'BCDiceのgameType。' }), + tslib.__metadata("design:type", String) +], WritePrivateMessageArgs.prototype, "gameType", void 0); +WritePrivateMessageArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], WritePrivateMessageArgs); +exports.WritePrivateMessageResolver = class WritePrivateMessageResolver { + async writePrivateMessage(args, context, pubSub) { + if (args.visibleTo.length >= 1000) { + throw new Error('visibleTo.length is too large'); + } + const em = context.em; + const authorizedUser = utils.ensureAuthorizedUser(context); + const findResult = await utils.findRoomAndMyParticipant({ + em, + userUid: authorizedUser.userUid, + roomId: args.roomId, + }); + if (findResult == null) { + return { + __tstype: roomMessage.WriteRoomPrivateMessageFailureResultType, + failureType: WriteRoomPrivateMessageFailureType.WriteRoomPrivateMessageFailureType.RoomNotFound, + }; + } + const { room, me, roomState } = findResult; + if (me === undefined) { + return { + __tstype: roomMessage.WriteRoomPrivateMessageFailureResultType, + failureType: WriteRoomPrivateMessageFailureType.WriteRoomPrivateMessageFailureType.NotParticipant, + }; + } + const visibleTo = new Set(args.visibleTo); + visibleTo.add(authorizedUser.userUid); + await authorizedUser.visibleRoomPrvMsgs.init({ where: { room: { id: room.id } } }); + let chara = undefined; + if (args.characterId != null) { + if (FilePathModule.isCharacterOwner({ + requestedBy: { type: FilePathModule.client, userUid: authorizedUser.userUid }, + characterId: args.characterId, + currentRoomState: roomState, + }) === true) { + chara = roomState.characters?.[args.characterId]; + } + } + const entityResult = await utils.analyzeTextAndSetToEntity({ + type: 'RoomPrvMsg', + textSource: args.text, + context: chara == null ? null : { type: 'chara', value: chara }, + createdBy: authorizedUser, + room: roomState, + gameType: args.gameType, + }); + if (entityResult.isError) { + return { + __tstype: roomMessage.RoomMessageSyntaxErrorType, + errorMessage: entityResult.error, + }; + } + const entity$1 = entityResult.value; + if (args.textColor != null) { + utils.fixTextColor(args.textColor); + } + for (const visibleToElement of visibleTo) { + const user = await em.findOne(entity.User, { userUid: visibleToElement }); + if (user == null) { + return { + __tstype: roomMessage.WriteRoomPrivateMessageFailureResultType, + failureType: WriteRoomPrivateMessageFailureType.WriteRoomPrivateMessageFailureType.VisibleToIsInvalid, + }; + } + entity$1.visibleTo.add(user); + user.visibleRoomPrvMsgs.add(entity$1); + } + entity$1.customName = args.customName; + if (chara != null) { + entity$1.charaStateId = args.characterId; + entity$1.charaName = chara.name; + entity$1.charaIsPrivate = chara.isPrivate; + entity$1.charaImagePath = chara.image?.path; + entity$1.charaImageSourceType = FileSourceType.FileSourceTypeModule.ofNullishString(chara.portraitImage?.sourceType); + entity$1.charaPortraitImagePath = chara.portraitImage?.path; + entity$1.charaPortraitImageSourceType = FileSourceType.FileSourceTypeModule.ofNullishString(chara.portraitImage?.sourceType); + } + entity$1.room = core.ref(room); + room.completeUpdatedAt = new Date(); + await em.persistAndFlush(entity$1); + const visibleToArray = [...visibleTo].sort(); + const result = await utils.createRoomPrivateMessage({ + msg: entity$1, + visibleTo: visibleToArray, + }); + const payload = { + type: 'messageUpdatePayload', + sendTo: findResult.participantIds(), + roomId: args.roomId, + createdBy: authorizedUser.userUid, + visibleTo: visibleToArray, + value: result, + }; + await utils.publishRoomEvent(pubSub, payload); + return result; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => roomMessage.WriteRoomPrivateMessageResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(3)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [WritePrivateMessageArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.WritePrivateMessageResolver.prototype, "writePrivateMessage", null); +exports.WritePrivateMessageResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.WritePrivateMessageResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/writePrivateMessage/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/writePrivateMessage/resolver.js.map new file mode 100644 index 000000000..4241cf94a --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/writePrivateMessage/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/writePrivateMessage/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","MaxLength","ArgsType","WritePrivateMessageResolver","ensureAuthorizedUser","findRoomAndMyParticipant","WriteRoomPrivateMessageFailureResultType","WriteRoomPrivateMessageFailureType","isCharacterOwner","client","analyzeTextAndSetToEntity","RoomMessageSyntaxErrorType","entity","fixTextColor","User","FileSourceTypeModule","ref","createRoomPrivateMessage","publishRoomEvent","Mutation","WriteRoomPrivateMessageResult","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/writePublicMessage/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/writePublicMessage/resolver.js new file mode 100644 index 000000000..917e63cd1 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/writePublicMessage/resolver.js @@ -0,0 +1,181 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var core = require('@mikro-orm/core'); +var classValidator = require('class-validator'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/roomMessage/entity.js'); +var FileSourceType = require('../../../../enums/FileSourceType.js'); +var WriteRoomPublicMessageFailureType = require('../../../../enums/WriteRoomPublicMessageFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var roomMessage = require('../../../objects/roomMessage.js'); +var utils = require('../../utils/utils.js'); + +let WritePublicMessageArgs = class WritePublicMessageArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], WritePublicMessageArgs.prototype, "roomId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + classValidator.MaxLength(10000), + tslib.__metadata("design:type", String) +], WritePublicMessageArgs.prototype, "text", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + classValidator.MaxLength(50), + tslib.__metadata("design:type", String) +], WritePublicMessageArgs.prototype, "textColor", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], WritePublicMessageArgs.prototype, "channelKey", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + tslib.__metadata("design:type", String) +], WritePublicMessageArgs.prototype, "characterId", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true }), + classValidator.MaxLength(1000), + tslib.__metadata("design:type", String) +], WritePublicMessageArgs.prototype, "customName", void 0); +tslib.__decorate([ + typeGraphql.Field({ nullable: true, description: 'BCDiceのgameType。' }), + tslib.__metadata("design:type", String) +], WritePublicMessageArgs.prototype, "gameType", void 0); +WritePublicMessageArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], WritePublicMessageArgs); +const checkChannelKey = (channelKey, isSpectator) => { + switch (channelKey) { + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '10': + if (isSpectator) { + return WriteRoomPublicMessageFailureType.WriteRoomPublicMessageFailureType.NotAuthorized; + } + return null; + case FilePathModule.$free: + return null; + case FilePathModule.$system: + return WriteRoomPublicMessageFailureType.WriteRoomPublicMessageFailureType.NotAuthorized; + default: + return WriteRoomPublicMessageFailureType.WriteRoomPublicMessageFailureType.NotAllowedChannelKey; + } +}; +exports.WritePublicMessageResolver = class WritePublicMessageResolver { + async writePublicMessage(args, context, pubSub) { + const channelKey = args.channelKey; + const em = context.em; + const authorizedUser = utils.ensureAuthorizedUser(context); + const findResult = await utils.findRoomAndMyParticipant({ + em, + userUid: authorizedUser.userUid, + roomId: args.roomId, + }); + if (findResult == null) { + return { + __tstype: roomMessage.WriteRoomPublicMessageFailureResultType, + failureType: WriteRoomPublicMessageFailureType.WriteRoomPublicMessageFailureType.RoomNotFound, + }; + } + const { room, me, roomState } = findResult; + if (me === undefined) { + return { + __tstype: roomMessage.WriteRoomPublicMessageFailureResultType, + failureType: WriteRoomPublicMessageFailureType.WriteRoomPublicMessageFailureType.NotParticipant, + }; + } + const channelKeyFailureType = checkChannelKey(channelKey, me.role === FilePathModule.Spectator); + if (channelKeyFailureType != null) { + return { + __tstype: roomMessage.WriteRoomPublicMessageFailureResultType, + failureType: WriteRoomPublicMessageFailureType.WriteRoomPublicMessageFailureType.NotAuthorized, + }; + } + let chara = undefined; + if (args.characterId != null) { + if (FilePathModule.isCharacterOwner({ + requestedBy: { type: FilePathModule.client, userUid: authorizedUser.userUid }, + characterId: args.characterId, + currentRoomState: roomState, + }) === true) + chara = roomState.characters?.[args.characterId]; + } + const entityResult = await utils.analyzeTextAndSetToEntity({ + type: 'RoomPubMsg', + textSource: args.text, + context: chara == null ? null : { type: 'chara', value: chara }, + createdBy: authorizedUser, + room: roomState, + gameType: args.gameType, + }); + if (entityResult.isError) { + return { + __tstype: roomMessage.RoomMessageSyntaxErrorType, + errorMessage: entityResult.error, + }; + } + const entity$1 = entityResult.value; + entity$1.textColor = args.textColor == null ? undefined : utils.fixTextColor(args.textColor); + let ch = await em.findOne(entity.RoomPubCh, { key: channelKey, room: room.id }); + if (ch == null) { + ch = new entity.RoomPubCh({ key: channelKey }); + ch.room = core.ref(room); + em.persist(ch); + } + entity$1.customName = args.customName; + if (chara != null) { + entity$1.charaStateId = args.characterId; + entity$1.charaName = chara.name; + entity$1.charaIsPrivate = chara.isPrivate; + entity$1.charaImagePath = chara.image?.path; + entity$1.charaImageSourceType = FileSourceType.FileSourceTypeModule.ofNullishString(chara.image?.sourceType); + entity$1.charaPortraitImagePath = chara.portraitImage?.path; + entity$1.charaPortraitImageSourceType = FileSourceType.FileSourceTypeModule.ofNullishString(chara.portraitImage?.sourceType); + } + entity$1.roomPubCh = core.ref(ch); + room.completeUpdatedAt = new Date(); + await em.persistAndFlush(entity$1); + const result = await utils.createRoomPublicMessage({ + msg: entity$1, + channelKey, + }); + const payload = { + type: 'messageUpdatePayload', + sendTo: findResult.participantIds(), + roomId: args.roomId, + createdBy: authorizedUser.userUid, + visibleTo: undefined, + value: result, + }; + await utils.publishRoomEvent(pubSub, payload); + return result; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => roomMessage.WriteRoomPublicMessageResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(3)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [WritePublicMessageArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.WritePublicMessageResolver.prototype, "writePublicMessage", null); +exports.WritePublicMessageResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.WritePublicMessageResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/writePublicMessage/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/writePublicMessage/resolver.js.map new file mode 100644 index 000000000..738a46e5d --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/writePublicMessage/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/writePublicMessage/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","MaxLength","ArgsType","WriteRoomPublicMessageFailureType","$free","$system","WritePublicMessageResolver","ensureAuthorizedUser","findRoomAndMyParticipant","WriteRoomPublicMessageFailureResultType","Spectator","isCharacterOwner","client","analyzeTextAndSetToEntity","RoomMessageSyntaxErrorType","entity","fixTextColor","RoomPubCh","ref","FileSourceTypeModule","createRoomPublicMessage","publishRoomEvent","Mutation","WriteRoomPublicMessageResult","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/mutations/writeRoomSoundEffect/resolver.js b/apps/api-server/dist/graphql/resolvers/mutations/writeRoomSoundEffect/resolver.js new file mode 100644 index 000000000..8eb00ee0b --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/writeRoomSoundEffect/resolver.js @@ -0,0 +1,107 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var core = require('@mikro-orm/core'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/roomMessage/entity.js'); +var WriteRoomSoundEffectFailureType = require('../../../../enums/WriteRoomSoundEffectFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var filePath = require('../../../objects/filePath.js'); +var roomMessage = require('../../../objects/roomMessage.js'); +var utils = require('../../utils/utils.js'); + +let WriteRoomSoundEffectArgs = class WriteRoomSoundEffectArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], WriteRoomSoundEffectArgs.prototype, "roomId", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", filePath.FilePath) +], WriteRoomSoundEffectArgs.prototype, "file", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], WriteRoomSoundEffectArgs.prototype, "volume", void 0); +WriteRoomSoundEffectArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], WriteRoomSoundEffectArgs); +exports.WriteRoomSoundEffectResolver = class WriteRoomSoundEffectResolver { + async writeRoomSoundEffect(args, context, pubSub) { + const em = context.em; + const authorizedUser = utils.ensureAuthorizedUser(context); + const findResult = await utils.findRoomAndMyParticipant({ + em, + userUid: authorizedUser.userUid, + roomId: args.roomId, + }); + if (findResult == null) { + return { + __tstype: roomMessage.WriteRoomSoundEffectFailureResultType, + failureType: WriteRoomSoundEffectFailureType.WriteRoomSoundEffectFailureType.RoomNotFound, + }; + } + const { room, me } = findResult; + if (me === undefined) { + return { + __tstype: roomMessage.WriteRoomSoundEffectFailureResultType, + failureType: WriteRoomSoundEffectFailureType.WriteRoomSoundEffectFailureType.NotParticipant, + }; + } + if (me.role === FilePathModule.Spectator) { + return { + __tstype: roomMessage.WriteRoomSoundEffectFailureResultType, + failureType: WriteRoomSoundEffectFailureType.WriteRoomSoundEffectFailureType.NotAuthorized, + }; + } + const entity$1 = new entity.RoomSe({ + filePath: args.file.path, + fileSourceType: args.file.sourceType, + volume: args.volume, + }); + entity$1.createdBy = core.ref(authorizedUser); + entity$1.room = core.ref(room); + room.completeUpdatedAt = new Date(); + await em.persistAndFlush(entity$1); + const result = { + ...entity$1, + __tstype: roomMessage.RoomSoundEffectType, + messageId: entity$1.id, + createdBy: authorizedUser.userUid, + createdAt: entity$1.createdAt.getTime(), + file: { + path: entity$1.filePath, + sourceType: entity$1.fileSourceType, + }, + }; + const payload = { + type: 'messageUpdatePayload', + sendTo: findResult.participantIds(), + roomId: args.roomId, + createdBy: authorizedUser.userUid, + visibleTo: undefined, + value: result, + }; + await utils.publishRoomEvent(pubSub, payload); + return result; + } +}; +tslib.__decorate([ + typeGraphql.Mutation(() => roomMessage.WriteRoomSoundEffectResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(3)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [WriteRoomSoundEffectArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.WriteRoomSoundEffectResolver.prototype, "writeRoomSoundEffect", null); +exports.WriteRoomSoundEffectResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.WriteRoomSoundEffectResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/mutations/writeRoomSoundEffect/resolver.js.map b/apps/api-server/dist/graphql/resolvers/mutations/writeRoomSoundEffect/resolver.js.map new file mode 100644 index 000000000..604d190a7 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/mutations/writeRoomSoundEffect/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/mutations/writeRoomSoundEffect/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","FilePath","ArgsType","WriteRoomSoundEffectResolver","ensureAuthorizedUser","findRoomAndMyParticipant","WriteRoomSoundEffectFailureResultType","WriteRoomSoundEffectFailureType","Spectator","entity","RoomSe","ref","RoomSoundEffectType","publishRoomEvent","Mutation","WriteRoomSoundEffectResult","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/queries/getAvailableGameSystems/resolver.js b/apps/api-server/dist/graphql/resolvers/queries/getAvailableGameSystems/resolver.js new file mode 100644 index 000000000..65336f429 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getAvailableGameSystems/resolver.js @@ -0,0 +1,49 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var messageAnalyzer = require('../../utils/messageAnalyzer.js'); + +let AvailableGameSystem = class AvailableGameSystem { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], AvailableGameSystem.prototype, "id", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], AvailableGameSystem.prototype, "sortKey", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], AvailableGameSystem.prototype, "name", void 0); +AvailableGameSystem = tslib.__decorate([ + typeGraphql.ObjectType() +], AvailableGameSystem); +let GetAvailableGameSystemsResult = class GetAvailableGameSystemsResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => [AvailableGameSystem]), + tslib.__metadata("design:type", Array) +], GetAvailableGameSystemsResult.prototype, "value", void 0); +GetAvailableGameSystemsResult = tslib.__decorate([ + typeGraphql.ObjectType() +], GetAvailableGameSystemsResult); +exports.GetAvailableGameSystemsResolver = class GetAvailableGameSystemsResolver { + async getAvailableGameSystems() { + return { + value: messageAnalyzer.listAvailableGameSystems(), + }; + } +}; +tslib.__decorate([ + typeGraphql.Query(() => GetAvailableGameSystemsResult), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", []), + tslib.__metadata("design:returntype", Promise) +], exports.GetAvailableGameSystemsResolver.prototype, "getAvailableGameSystems", null); +exports.GetAvailableGameSystemsResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.GetAvailableGameSystemsResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/queries/getAvailableGameSystems/resolver.js.map b/apps/api-server/dist/graphql/resolvers/queries/getAvailableGameSystems/resolver.js.map new file mode 100644 index 000000000..27de501f6 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getAvailableGameSystems/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/queries/getAvailableGameSystems/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ObjectType","GetAvailableGameSystemsResolver","listAvailableGameSystems","Query","Resolver"],"mappings":";;;;;;AAIA,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB,CAAA;CASxB;AAPUA,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACW,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAGZD,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACgB,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAGjBD,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACa,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AARnB,mBAAmB,GAAAD,gBAAA,CAAA;AADxB,IAAAE,sBAAU;AACL,CAAA,EAAA,mBAAmB,CASxB;AAGD,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B,CAAA;CAGlC;AADUF,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;;AACE,CAAA,EAAA,6BAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAFnC,6BAA6B,GAAAD,gBAAA,CAAA;AADlC,IAAAE,sBAAU;AACL,CAAA,EAAA,6BAA6B,CAGlC;AAGYC,uCAA+B,GAArC,MAAM,+BAA+B,CAAA;IAE3B,MAAA,uBAAuB,GAAA;QAChC,OAAO;YACH,KAAK,EAAEC,wCAAwB,EAAE;SACpC;;;AAHQJ,gBAAA,CAAA;AADZ,IAAAK,iBAAK,CAAC,MAAM,6BAA6B,CAAC;;;;AAK1C,CAAA,EAAAF,uCAAA,CAAA,SAAA,EAAA,yBAAA,EAAA,IAAA,CAAA;AANQA,uCAA+B,GAAAH,gBAAA,CAAA;AAD3C,IAAAM,oBAAQ;AACI,CAAA,EAAAH,uCAA+B,CAO3C;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/queries/getDiceHelpMessage/resolver.js b/apps/api-server/dist/graphql/resolvers/queries/getDiceHelpMessage/resolver.js new file mode 100644 index 000000000..4be9372b2 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getDiceHelpMessage/resolver.js @@ -0,0 +1,29 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var messageAnalyzer = require('../../utils/messageAnalyzer.js'); + +exports.GetDiceHelpMessageResolver = class GetDiceHelpMessageResolver { + async getDiceHelpMessage(id) { + return await messageAnalyzer.helpMessage(id).catch(err => { + if (err instanceof Error) { + if (err.message === 'GameSystem is not found') { + return null; + } + } + throw err; + }); + } +}; +tslib.__decorate([ + typeGraphql.Query(() => String, { nullable: true }), + tslib.__param(0, typeGraphql.Arg('id')), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [String]), + tslib.__metadata("design:returntype", Promise) +], exports.GetDiceHelpMessageResolver.prototype, "getDiceHelpMessage", null); +exports.GetDiceHelpMessageResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.GetDiceHelpMessageResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/queries/getDiceHelpMessage/resolver.js.map b/apps/api-server/dist/graphql/resolvers/queries/getDiceHelpMessage/resolver.js.map new file mode 100644 index 000000000..d55222b58 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getDiceHelpMessage/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/queries/getDiceHelpMessage/resolver.ts"],"sourcesContent":[null],"names":["GetDiceHelpMessageResolver","helpMessage","__decorate","Query","__param","Arg","Resolver"],"mappings":";;;;;;AAIaA,kCAA0B,GAAhC,MAAM,0BAA0B,CAAA;AAEtB,IAAN,MAAM,kBAAkB,CAAY,EAAU,EAAA;QACjD,OAAO,MAAMC,2BAAW,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,IAAG;AACrC,YAAA,IAAI,GAAG,YAAY,KAAK,EAAE;AACtB,gBAAA,IAAI,GAAG,CAAC,OAAO,KAAK,yBAAyB,EAAE;AAC3C,oBAAA,OAAO,IAAI;;;AAGnB,YAAA,MAAM,GAAG;AACb,SAAC,CAAC;;;AAROC,gBAAA,CAAA;IADZC,iBAAK,CAAC,MAAM,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACP,IAAAC,aAAA,CAAA,CAAA,EAAAC,eAAG,CAAC,IAAI,CAAC,CAAA;;;;AASzC,CAAA,EAAAL,kCAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA;AAXQA,kCAA0B,GAAAE,gBAAA,CAAA;AADtC,IAAAI,oBAAQ;AACI,CAAA,EAAAN,kCAA0B,CAYtC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/queries/getFiles/resolver.js b/apps/api-server/dist/graphql/resolvers/queries/getFiles/resolver.js new file mode 100644 index 000000000..41c0b5d85 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getFiles/resolver.js @@ -0,0 +1,80 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/file/entity.js'); +var FileListType = require('../../../../enums/FileListType.js'); +var FilePermissionType = require('../../../../enums/FilePermissionType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var fileItem = require('../../../objects/fileItem.js'); +var utils = require('../../utils/utils.js'); + +let GetFilesInput = class GetFilesInput { +}; +tslib.__decorate([ + typeGraphql.Field(() => [String], { + description: 'FileTagのidを指定することで、指定したタグが付いているファイルのみを抽出して表示する。例えばidがx,yの3つのタグが付いているファイルは、[]や[x]や[x,y]と指定した場合にマッチするが、[x,y,z]と指定された場合は除外される。', + }), + tslib.__metadata("design:type", Array) +], GetFilesInput.prototype, "fileTagIds", void 0); +GetFilesInput = tslib.__decorate([ + typeGraphql.InputType() +], GetFilesInput); +let GetFilesResult = class GetFilesResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => [fileItem.FileItem]), + tslib.__metadata("design:type", Array) +], GetFilesResult.prototype, "files", void 0); +GetFilesResult = tslib.__decorate([ + typeGraphql.ObjectType() +], GetFilesResult); +exports.GetFilesResolver = class GetFilesResolver { + async getFiles(input, context) { + const user = utils.ensureAuthorizedUser(context); + const fileTagsFilter = input.fileTagIds.map(id => ({ + fileTags: { + id, + }, + })); + const files = await context.em.find(entity.File, { + $and: [ + ...fileTagsFilter, + { + $or: [ + { listPermission: FilePermissionType.FilePermissionType.Entry }, + { createdBy: { userUid: user.userUid } }, + ], + }, + ], + }); + const filePromises = files.map(async (file) => ({ + ...file, + screenname: file.screenname ?? 'null', + createdBy: await file.createdBy.loadProperty('userUid'), + createdAt: file.createdAt?.getTime(), + listType: file.listPermission === FilePermissionType.FilePermissionType.Private + ? FileListType.FileListType.Unlisted + : FileListType.FileListType.Public, + })); + return { + files: await Promise.all(filePromises), + }; + } +}; +tslib.__decorate([ + typeGraphql.Query(() => GetFilesResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Arg('input')), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [GetFilesInput, Object]), + tslib.__metadata("design:returntype", Promise) +], exports.GetFilesResolver.prototype, "getFiles", null); +exports.GetFilesResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.GetFilesResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/queries/getFiles/resolver.js.map b/apps/api-server/dist/graphql/resolvers/queries/getFiles/resolver.js.map new file mode 100644 index 000000000..984625f12 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getFiles/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/queries/getFiles/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","InputType","FileItem","ObjectType","GetFilesResolver","ensureAuthorizedUser","File","FilePermissionType","FileListType","Query","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Arg","Ctx","Resolver"],"mappings":";;;;;;;;;;;;;AAsBA,IAAM,aAAa,GAAnB,MAAM,aAAa,CAAA;CAMlB;AADUA,gBAAA,CAAA;AAJN,IAAAC,iBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AACnB,QAAA,WAAW,EACP,6HAA6H;KACpI,CAAC;;AAC2B,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAL3B,aAAa,GAAAD,gBAAA,CAAA;AADlB,IAAAE,qBAAS;AACJ,CAAA,EAAA,aAAa,CAMlB;AAGD,IAAM,cAAc,GAApB,MAAM,cAAc,CAAA;CAGnB;AADUF,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,MAAM,CAACE,iBAAQ,CAAC,CAAC;;AACE,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAFxB,cAAc,GAAAH,gBAAA,CAAA;AADnB,IAAAI,sBAAU;AACL,CAAA,EAAA,cAAc,CAGnB;AAGYC,wBAAgB,GAAtB,MAAM,gBAAgB,CAAA;AAIZ,IAAN,MAAM,QAAQ,CACH,KAAoB,EAC3B,OAAwB,EAAA;AAE/B,QAAA,MAAM,IAAI,GAAGC,0BAAoB,CAAC,OAAO,CAAC;AAC1C,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CACvC,EAAE,KACG;AACG,YAAA,QAAQ,EAAE;gBACN,EAAE;AACL,aAAA;AACJ,SAAA,CAAU,CAClB;QACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,IAAI,CAACC,WAAI,EAAE;AACtC,YAAA,IAAI,EAAE;AACF,gBAAA,GAAG,cAAc;AACjB,gBAAA;AACI,oBAAA,GAAG,EAAE;AACD,wBAAA,EAAE,cAAc,EAAEC,qCAAkB,CAAC,KAAK,EAAE;wBAC5C,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE;AAC3C,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACJ,SAAA,CAAC;AACF,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,OAAM,IAAI,MAAK;AAC1C,YAAA,GAAG,IAAI;AACP,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,MAAM;YACrC,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC;AACvD,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AACpC,YAAA,QAAQ,EACJ,IAAI,CAAC,cAAc,KAAKA,qCAAkB,CAAC;kBACrCC,yBAAY,CAAC;kBACbA,yBAAY,CAAC,MAAM;AAChC,SAAA,CAAC,CAAC;QACH,OAAO;AACH,YAAA,KAAK,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;SACzC;;;AApCQT,gBAAA,CAAA;AAHZ,IAAAU,iBAAK,CAAC,MAAM,cAAc,CAAC;IAC3BC,sBAAU,CAACC,WAAK,CAAC;AACjB,IAAAC,yBAAa,CAACC,+BAAe,EAAEC,uCAAmB,CAAC,CAAC,CAAC,CAAC;AAElD,IAAAC,aAAA,CAAA,CAAA,EAAAC,eAAG,CAAC,OAAO,CAAC,CAAA;IACZD,aAAA,CAAA,CAAA,EAAAE,eAAG,EAAE,CAAA;;2CADe,aAAa,EAAA,MAAA,CAAA,CAAA;;AAoCrC,CAAA,EAAAb,wBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA;AAzCQA,wBAAgB,GAAAL,gBAAA,CAAA;AAD5B,IAAAmB,oBAAQ;AACI,CAAA,EAAAd,wBAAgB,CA0C5B;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/queries/getLog/resolver.js b/apps/api-server/dist/graphql/resolvers/queries/getLog/resolver.js new file mode 100644 index 000000000..ecac27c44 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getLog/resolver.js @@ -0,0 +1,103 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var core = require('@mikro-orm/core'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/roomMessage/entity.js'); +var GetRoomLogFailureType = require('../../../../enums/GetRoomLogFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var roomMessage = require('../../../objects/roomMessage.js'); +var utils = require('../../utils/utils.js'); + +let GetLogArgs = class GetLogArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], GetLogArgs.prototype, "roomId", void 0); +GetLogArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], GetLogArgs); +const writeSystemMessage = async ({ em, text, room, }) => { + const entity$1 = new entity.RoomPubMsg({ initText: text, initTextSource: undefined }); + entity$1.initText = text; + let ch = await em.findOne(entity.RoomPubCh, { key: FilePathModule.$system, room: room.id }); + if (ch == null) { + ch = new entity.RoomPubCh({ key: FilePathModule.$system }); + ch.room = core.ref(room); + em.persist(ch); + } + entity$1.roomPubCh = core.ref(ch); + em.persist(entity$1); + return entity$1; +}; +exports.GetLogResolver = class GetLogResolver { + async getLog(args, context, pubSub) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const findResult = await utils.findRoomAndMyParticipant({ + em, + userUid: authorizedUserUid, + roomId: args.roomId, + }); + if (findResult == null) { + return { + __tstype: roomMessage.GetRoomLogFailureResultType, + failureType: GetRoomLogFailureType.GetRoomLogFailureType.RoomNotFound, + }; + } + const { room, me } = findResult; + if (me?.role === undefined) { + return { + __tstype: roomMessage.GetRoomLogFailureResultType, + failureType: GetRoomLogFailureType.GetRoomLogFailureType.NotParticipant, + }; + } + if (me.role === FilePathModule.Spectator) { + return { + __tstype: roomMessage.GetRoomLogFailureResultType, + failureType: GetRoomLogFailureType.GetRoomLogFailureType.NotAuthorized, + }; + } + const messages = await utils.getRoomMessagesFromDb(room, authorizedUserUid, 'log'); + em.clear(); + const systemMessageEntity = await writeSystemMessage({ + em, + text: `${me.name}(${authorizedUserUid}) が全てのログを出力しました。`, + room: room, + }); + await em.flush(); + await utils.publishRoomEvent(pubSub, { + type: 'messageUpdatePayload', + sendTo: findResult.participantIds(), + roomId: room.id, + value: await utils.createRoomPublicMessage({ + msg: systemMessageEntity, + channelKey: FilePathModule.$system, + }), + createdBy: undefined, + visibleTo: undefined, + }); + return messages; + } +}; +tslib.__decorate([ + typeGraphql.Query(() => roomMessage.GetRoomLogResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(10)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__param(2, typeGraphql.PubSub()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [GetLogArgs, Object, typeGraphql.PubSubEngine]), + tslib.__metadata("design:returntype", Promise) +], exports.GetLogResolver.prototype, "getLog", null); +exports.GetLogResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.GetLogResolver); + +exports.writeSystemMessage = writeSystemMessage; +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/queries/getLog/resolver.js.map b/apps/api-server/dist/graphql/resolvers/queries/getLog/resolver.js.map new file mode 100644 index 000000000..7dcc5168a --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getLog/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/queries/getLog/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ArgsType","entity","RoomPubMsg","RoomPubCh","$system","ref","GetLogResolver","ensureAuthorizedUser","findRoomAndMyParticipant","GetRoomLogFailureResultType","GetRoomLogFailureType","Spectator","getRoomMessagesFromDb","publishRoomEvent","createRoomPublicMessage","Query","GetRoomLogResult","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","PubSub","__metadata","PubSubEngine","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/queries/getMessages/resolver.js b/apps/api-server/dist/graphql/resolvers/queries/getMessages/resolver.js new file mode 100644 index 000000000..35df1210e --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getMessages/resolver.js @@ -0,0 +1,60 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var GetRoomMessagesFailureType = require('../../../../enums/GetRoomMessagesFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var roomMessage = require('../../../objects/roomMessage.js'); +var utils = require('../../utils/utils.js'); + +let GetMessagesArgs = class GetMessagesArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], GetMessagesArgs.prototype, "roomId", void 0); +GetMessagesArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], GetMessagesArgs); +exports.GetRoomMessagesResolver = class GetRoomMessagesResolver { + async getMessages(args, context) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const findResult = await utils.findRoomAndMyParticipant({ + em, + userUid: authorizedUserUid, + roomId: args.roomId, + }); + if (findResult == null) { + return { + __tstype: roomMessage.GetRoomMessagesFailureResultType, + failureType: GetRoomMessagesFailureType.GetRoomMessagesFailureType.RoomNotFound, + }; + } + const { room, me } = findResult; + if (me?.role === undefined) { + return { + __tstype: roomMessage.GetRoomMessagesFailureResultType, + failureType: GetRoomMessagesFailureType.GetRoomMessagesFailureType.NotParticipant, + }; + } + const messages = await utils.getRoomMessagesFromDb(room, authorizedUserUid, 'default'); + return messages; + } +}; +tslib.__decorate([ + typeGraphql.Query(() => roomMessage.GetRoomMessagesResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(10)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [GetMessagesArgs, Object]), + tslib.__metadata("design:returntype", Promise) +], exports.GetRoomMessagesResolver.prototype, "getMessages", null); +exports.GetRoomMessagesResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.GetRoomMessagesResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/queries/getMessages/resolver.js.map b/apps/api-server/dist/graphql/resolvers/queries/getMessages/resolver.js.map new file mode 100644 index 000000000..4a1914338 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getMessages/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/queries/getMessages/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ArgsType","GetRoomMessagesResolver","ensureAuthorizedUser","findRoomAndMyParticipant","GetRoomMessagesFailureResultType","GetRoomMessagesFailureType","getRoomMessagesFromDb","Query","GetRoomMessagesResult","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","Resolver"],"mappings":";;;;;;;;;;;AA0BA,IAAM,eAAe,GAArB,MAAM,eAAe,CAAA;CAGpB;AADUA,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACe,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAFrB,eAAe,GAAAD,gBAAA,CAAA;AADpB,IAAAE,oBAAQ;AACH,CAAA,EAAA,eAAe,CAGpB;AAGYC,+BAAuB,GAA7B,MAAM,uBAAuB,CAAA;AAInB,IAAN,MAAM,WAAW,CACZ,IAAqB,EACtB,OAAwB,EAAA;AAE/B,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE;QACrB,MAAM,iBAAiB,GAAGC,0BAAoB,CAAC,OAAO,CAAC,CAAC,OAAO;AAC/D,QAAA,MAAM,UAAU,GAAG,MAAMC,8BAAwB,CAAC;YAC9C,EAAE;AACF,YAAA,OAAO,EAAE,iBAAiB;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;AACtB,SAAA,CAAC;AACF,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;YACpB,OAAO;AACH,gBAAA,QAAQ,EAAEC,4CAAgC;gBAC1C,WAAW,EAAEC,qDAA0B,CAAC,YAAY;aACvD;;AAEL,QAAA,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,UAAU;AAC/B,QAAA,IAAI,EAAE,EAAE,IAAI,KAAK,SAAS,EAAE;YACxB,OAAO;AACH,gBAAA,QAAQ,EAAED,4CAAgC;gBAC1C,WAAW,EAAEC,qDAA0B,CAAC,cAAc;aACzD;;QAGL,MAAM,QAAQ,GAAG,MAAMC,2BAAqB,CAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,CAAC;AAChF,QAAA,OAAO,QAAQ;;;AA1BNR,gBAAA,CAAA;AAHZ,IAAAS,iBAAK,CAAC,MAAMC,iCAAqB,CAAC;IAClCC,sBAAU,CAACC,WAAK,CAAC;AACjB,IAAAC,yBAAa,CAACC,+BAAe,EAAEC,uCAAmB,CAAC,EAAE,CAAC,CAAC;IAEnDC,aAAA,CAAA,CAAA,EAAAC,gBAAI,EAAE,CAAA;IACND,aAAA,CAAA,CAAA,EAAAE,eAAG,EAAE,CAAA;;2CADQ,eAAe,EAAA,MAAA,CAAA,CAAA;;AA0BhC,CAAA,EAAAf,+BAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA;AA/BQA,+BAAuB,GAAAH,gBAAA,CAAA;AADnC,IAAAmB,oBAAQ;AACI,CAAA,EAAAhB,+BAAuB,CAgCnC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/queries/getMyRoles/resolver.js b/apps/api-server/dist/graphql/resolvers/queries/getMyRoles/resolver.js new file mode 100644 index 000000000..660112a6c --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getMyRoles/resolver.js @@ -0,0 +1,41 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var roles = require('../../../../utils/roles.js'); +var utils = require('../../utils/utils.js'); + +exports.Roles = class Roles { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], exports.Roles.prototype, "admin", void 0); +exports.Roles = tslib.__decorate([ + typeGraphql.ObjectType() +], exports.Roles); +exports.GetMyRolesResolver = class GetMyRolesResolver { + async getMyRoles(context) { + const roles$1 = roles.getRoles({ context, isEntry: false }); + if (roles$1 === utils.NotSignIn) { + throw new Error('This should not happen'); + } + return { + admin: roles$1.value.has(roles.ADMIN), + }; + } +}; +tslib.__decorate([ + typeGraphql.Query(() => exports.Roles, { + description: 'since v0.7.2', + }), + typeGraphql.Authorized(), + tslib.__param(0, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [Object]), + tslib.__metadata("design:returntype", Promise) +], exports.GetMyRolesResolver.prototype, "getMyRoles", null); +exports.GetMyRolesResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.GetMyRolesResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/queries/getMyRoles/resolver.js.map b/apps/api-server/dist/graphql/resolvers/queries/getMyRoles/resolver.js.map new file mode 100644 index 000000000..942307793 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getMyRoles/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/queries/getMyRoles/resolver.ts"],"sourcesContent":[null],"names":["Roles","__decorate","Field","ObjectType","GetMyRolesResolver","roles","getRoles","NotSignIn","ADMIN","Query","Authorized","__param","Ctx","Resolver"],"mappings":";;;;;;;AAMaA,aAAK,GAAX,MAAM,KAAK,CAAA;;AAEPC,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACe,CAAA,EAAAF,aAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAFdA,aAAK,GAAAC,gBAAA,CAAA;AADjB,IAAAE,sBAAU;AACE,CAAA,EAAAH,aAAK,CAGjB;AAGYI,0BAAkB,GAAxB,MAAM,kBAAkB,CAAA;AAKd,IAAN,MAAM,UAAU,CAAQ,OAAwB,EAAA;AACnD,QAAA,MAAMC,OAAK,GAAGC,cAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACnD,QAAA,IAAID,OAAK,KAAKE,eAAS,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;QAE7C,OAAO;YACH,KAAK,EAAEF,OAAK,CAAC,KAAK,CAAC,GAAG,CAACG,WAAK,CAAC;SAChC;;;AAPQP,gBAAA,CAAA;AAJZ,IAAAQ,iBAAK,CAAC,MAAMT,aAAK,EAAE;AAChB,QAAA,WAAW,EAAE,cAAc;KAC9B,CAAC;AACD,IAAAU,sBAAU,EAAE;IACYC,aAAA,CAAA,CAAA,EAAAC,eAAG,EAAE,CAAA;;;;AAQ7B,CAAA,EAAAR,0BAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA;AAbQA,0BAAkB,GAAAH,gBAAA,CAAA;AAD9B,IAAAY,oBAAQ;AACI,CAAA,EAAAT,0BAAkB,CAc9B;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/queries/getRoom/resolver.js b/apps/api-server/dist/graphql/resolvers/queries/getRoom/resolver.js new file mode 100644 index 000000000..ca0e07f3d --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getRoom/resolver.js @@ -0,0 +1,138 @@ +'use strict'; + +var tslib = require('tslib'); +var FilePathModule = require('@flocon-trpg/core'); +var typeGraphql = require('type-graphql'); +var isBookmarked = require('../../../../entities/room/isBookmarked.js'); +var role = require('../../../../entities/room/role.js'); +var room$1 = require('../../../../entities-graphql/room.js'); +var roomAsListItem = require('../../../../entities-graphql/roomAsListItem.js'); +var GetRoomFailureType = require('../../../../enums/GetRoomFailureType.js'); +var ParticipantRoleType = require('../../../../enums/ParticipantRoleType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var room = require('../../../objects/room.js'); +var utils = require('../../utils/utils.js'); + +let GetRoomArgs = class GetRoomArgs { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], GetRoomArgs.prototype, "id", void 0); +GetRoomArgs = tslib.__decorate([ + typeGraphql.ArgsType() +], GetRoomArgs); +let GetJoinedRoomResult = class GetJoinedRoomResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => ParticipantRoleType.ParticipantRoleType, { + description: '自分の現在のParticipantRoleType。room.roleと同じ値をとる。', + }), + tslib.__metadata("design:type", String) +], GetJoinedRoomResult.prototype, "role", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", room.RoomGetState) +], GetJoinedRoomResult.prototype, "room", void 0); +GetJoinedRoomResult = tslib.__decorate([ + typeGraphql.ObjectType() +], GetJoinedRoomResult); +let GetNonJoinedRoomResult = class GetNonJoinedRoomResult { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", room.RoomAsListItem) +], GetNonJoinedRoomResult.prototype, "roomAsListItem", void 0); +GetNonJoinedRoomResult = tslib.__decorate([ + typeGraphql.ObjectType() +], GetNonJoinedRoomResult); +let GetRoomFailureResult = class GetRoomFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => GetRoomFailureType.GetRoomFailureType), + tslib.__metadata("design:type", String) +], GetRoomFailureResult.prototype, "failureType", void 0); +GetRoomFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], GetRoomFailureResult); +const GetRoomResult = typeGraphql.createUnionType({ + name: 'GetRoomResult', + types: () => [GetJoinedRoomResult, GetNonJoinedRoomResult, GetRoomFailureResult], + resolveType: value => { + if ('room' in value) { + return GetJoinedRoomResult; + } + if ('roomAsListItem' in value) { + return GetNonJoinedRoomResult; + } + if ('failureType' in value) { + return GetRoomFailureResult; + } + return undefined; + }, +}); +exports.GetRoomResolver = class GetRoomResolver { + async getRoom(args, context) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const findResult = await utils.findRoomAndMyParticipant({ + em, + userUid: authorizedUserUid, + roomId: args.id, + }); + if (findResult == null) { + return { + failureType: GetRoomFailureType.GetRoomFailureType.NotFound, + }; + } + const { room, me } = findResult; + if (me?.role == null) { + return { + roomAsListItem: await roomAsListItem.stateToGraphQL({ + roomEntity: room, + myUserUid: authorizedUserUid, + }), + }; + } + const roomState = await room$1.GlobalRoom.MikroORM.ToGlobal.state(room, em); + return { + role: ParticipantRoleType.stringToParticipantRoleType(me.role), + room: { + ...room$1.GlobalRoom.Global.ToGraphQL.state({ + source: roomState, + requestedBy: { type: FilePathModule.client, userUid: authorizedUserUid }, + }), + revision: room.revision, + createdBy: room.createdBy, + createdAt: room.createdAt?.getTime(), + updatedAt: room.completeUpdatedAt?.getTime(), + role: await role.role({ + roomEntity: room, + myUserUid: authorizedUserUid, + }), + isBookmarked: await isBookmarked.isBookmarked({ + roomEntity: room, + myUserUid: authorizedUserUid, + }), + }, + }; + } +}; +tslib.__decorate([ + typeGraphql.Query(() => GetRoomResult, { + description: '通常はこの Query を直接実行する必要はありません。@flocon-trpg/sdk を用いることで、リアルタイムに Room を取得および自動更新できます。', + }), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Args()), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [GetRoomArgs, Object]), + tslib.__metadata("design:returntype", Promise) +], exports.GetRoomResolver.prototype, "getRoom", null); +exports.GetRoomResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.GetRoomResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/queries/getRoom/resolver.js.map b/apps/api-server/dist/graphql/resolvers/queries/getRoom/resolver.js.map new file mode 100644 index 000000000..c94423ea2 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getRoom/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/queries/getRoom/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ArgsType","ParticipantRoleType","RoomGetState","ObjectType","RoomAsListItem","GetRoomFailureType","createUnionType","GetRoomResolver","ensureAuthorizedUser","findRoomAndMyParticipant","stateToGraphQL","GlobalRoom","stringToParticipantRoleType","client","role","isBookmarked","Query","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Args","Ctx","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/queries/getRoomAsListItem/resolver.js b/apps/api-server/dist/graphql/resolvers/queries/getRoomAsListItem/resolver.js new file mode 100644 index 000000000..72246f39a --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getRoomAsListItem/resolver.js @@ -0,0 +1,75 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/room/entity.js'); +var roomAsListItem = require('../../../../entities-graphql/roomAsListItem.js'); +var GetRoomFailureType = require('../../../../enums/GetRoomFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var room = require('../../../objects/room.js'); +var utils = require('../../utils/utils.js'); + +let GetRoomAsListItemSuccessResult = class GetRoomAsListItemSuccessResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => room.RoomAsListItem), + tslib.__metadata("design:type", room.RoomAsListItem) +], GetRoomAsListItemSuccessResult.prototype, "room", void 0); +GetRoomAsListItemSuccessResult = tslib.__decorate([ + typeGraphql.ObjectType() +], GetRoomAsListItemSuccessResult); +let GetRoomAsListItemFailureResult = class GetRoomAsListItemFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => GetRoomFailureType.GetRoomFailureType), + tslib.__metadata("design:type", String) +], GetRoomAsListItemFailureResult.prototype, "failureType", void 0); +GetRoomAsListItemFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], GetRoomAsListItemFailureResult); +const GetRoomAsListItemResult = typeGraphql.createUnionType({ + name: 'GetRoomAsListItemResult', + types: () => [GetRoomAsListItemSuccessResult, GetRoomAsListItemFailureResult], + resolveType: value => { + if ('room' in value) { + return GetRoomAsListItemSuccessResult; + } + if ('failureType' in value) { + return GetRoomAsListItemFailureResult; + } + return undefined; + }, +}); +exports.GetRoomAsListItemResolver = class GetRoomAsListItemResolver { + async getRoomAsListItem(roomId, context) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const roomEntity = await em.findOne(entity.Room, { id: roomId }); + if (roomEntity == null) { + return { + failureType: GetRoomFailureType.GetRoomFailureType.NotFound, + }; + } + const room = await roomAsListItem.stateToGraphQL({ + roomEntity: roomEntity, + myUserUid: authorizedUserUid, + }); + return { room }; + } +}; +tslib.__decorate([ + typeGraphql.Query(() => GetRoomAsListItemResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(1)), + tslib.__param(0, typeGraphql.Arg('roomId')), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [String, Object]), + tslib.__metadata("design:returntype", Promise) +], exports.GetRoomAsListItemResolver.prototype, "getRoomAsListItem", null); +exports.GetRoomAsListItemResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.GetRoomAsListItemResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/queries/getRoomAsListItem/resolver.js.map b/apps/api-server/dist/graphql/resolvers/queries/getRoomAsListItem/resolver.js.map new file mode 100644 index 000000000..52d877aaa --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getRoomAsListItem/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/queries/getRoomAsListItem/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","RoomAsListItem","ObjectType","GetRoomFailureType","createUnionType","GetRoomAsListItemResolver","ensureAuthorizedUser","Room$MikroORM.Room","RoomAsListItemGlobal.stateToGraphQL","Query","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Arg","Ctx","Resolver"],"mappings":";;;;;;;;;;;;;AAsBA,IAAM,8BAA8B,GAApC,MAAM,8BAA8B,CAAA;CAGnC;AADUA,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,MAAMC,mBAAc,CAAC;oCACdA,mBAAc;AAAC,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAF3B,8BAA8B,GAAAF,gBAAA,CAAA;AADnC,IAAAG,sBAAU;AACL,CAAA,EAAA,8BAA8B,CAGnC;AAGD,IAAM,8BAA8B,GAApC,MAAM,8BAA8B,CAAA;CAGnC;AADUH,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,MAAMG,qCAAkB,CAAC;;AACQ,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAFtC,8BAA8B,GAAAJ,gBAAA,CAAA;AADnC,IAAAG,sBAAU;AACL,CAAA,EAAA,8BAA8B,CAGnC;AAED,MAAM,uBAAuB,GAAGE,2BAAe,CAAC;AAC5C,IAAA,IAAI,EAAE,yBAAyB;IAC/B,KAAK,EAAE,MAAM,CAAC,8BAA8B,EAAE,8BAA8B,CAAU;IACtF,WAAW,EAAE,KAAK,IAAG;AACjB,QAAA,IAAI,MAAM,IAAI,KAAK,EAAE;AACjB,YAAA,OAAO,8BAA8B;;AAEzC,QAAA,IAAI,aAAa,IAAI,KAAK,EAAE;AACxB,YAAA,OAAO,8BAA8B;;AAEzC,QAAA,OAAO,SAAS;KACnB;AACJ,CAAA,CAAC;AAGWC,iCAAyB,GAA/B,MAAM,yBAAyB,CAAA;AAIrB,IAAN,MAAM,iBAAiB,CACX,MAAc,EACtB,OAAwB,EAAA;AAE/B,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE;QACrB,MAAM,iBAAiB,GAAGC,0BAAoB,CAAC,OAAO,CAAC,CAAC,OAAO;AAC/D,QAAA,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAACC,WAAkB,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACvE,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;YACpB,OAAO;gBACH,WAAW,EAAEJ,qCAAkB,CAAC,QAAQ;aAC3C;;AAEL,QAAA,MAAM,IAAI,GAAG,MAAMK,6BAAmC,CAAC;AACnD,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,SAAS,EAAE,iBAAiB;AAC/B,SAAA,CAAC;QACF,OAAO,EAAE,IAAI,EAAE;;;AAhBNT,gBAAA,CAAA;AAHZ,IAAAU,iBAAK,CAAC,MAAM,uBAAuB,CAAC;IACpCC,sBAAU,CAACC,WAAK,CAAC;AACjB,IAAAC,yBAAa,CAACC,+BAAe,EAAEC,uCAAmB,CAAC,CAAC,CAAC,CAAC;AAElD,IAAAC,aAAA,CAAA,CAAA,EAAAC,eAAG,CAAC,QAAQ,CAAC,CAAA;IACbD,aAAA,CAAA,CAAA,EAAAE,eAAG,EAAE,CAAA;;;;AAeT,CAAA,EAAAZ,iCAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA;AArBQA,iCAAyB,GAAAN,gBAAA,CAAA;AADrC,IAAAmB,oBAAQ;AACI,CAAA,EAAAb,iCAAyB,CAsBrC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/queries/getRoomConnections/resolver.js b/apps/api-server/dist/graphql/resolvers/queries/getRoomConnections/resolver.js new file mode 100644 index 000000000..d18d8e65b --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getRoomConnections/resolver.js @@ -0,0 +1,95 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var GetRoomConnectionFailureType = require('../../../../enums/GetRoomConnectionFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); + +const GetRoomConnectionSuccessResultType = 'GetRoomConnectionSuccessResultType'; +let GetRoomConnectionsSuccessResult = class GetRoomConnectionsSuccessResult { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], GetRoomConnectionsSuccessResult.prototype, "fetchedAt", void 0); +tslib.__decorate([ + typeGraphql.Field(() => [String]), + tslib.__metadata("design:type", Array) +], GetRoomConnectionsSuccessResult.prototype, "connectedUserUids", void 0); +GetRoomConnectionsSuccessResult = tslib.__decorate([ + typeGraphql.ObjectType() +], GetRoomConnectionsSuccessResult); +const GetRoomConnectionFailureResultType = 'GetRoomConnectionFailureResultType'; +let GetRoomConnectionsFailureResult = class GetRoomConnectionsFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => GetRoomConnectionFailureType.GetRoomConnectionFailureType), + tslib.__metadata("design:type", String) +], GetRoomConnectionsFailureResult.prototype, "failureType", void 0); +GetRoomConnectionsFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], GetRoomConnectionsFailureResult); +const GetRoomConnectionsResult = typeGraphql.createUnionType({ + name: 'GetRoomConnectionsResult', + types: () => [GetRoomConnectionsSuccessResult, GetRoomConnectionsFailureResult], + resolveType: value => { + switch (value.__tstype) { + case GetRoomConnectionSuccessResultType: + return GetRoomConnectionsSuccessResult; + case GetRoomConnectionFailureResultType: + return GetRoomConnectionsFailureResult; + } + }, +}); +exports.GetRoomConnectionsResolver = class GetRoomConnectionsResolver { + async getRoomConnections(roomId, context) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const findResult = await utils.findRoomAndMyParticipant({ + em, + userUid: authorizedUserUid, + roomId, + }); + if (findResult == null) { + return { + __tstype: GetRoomConnectionFailureResultType, + failureType: GetRoomConnectionFailureType.GetRoomConnectionFailureType.RoomNotFound, + }; + } + const { me } = findResult; + if (me?.role === undefined) { + return { + __tstype: GetRoomConnectionFailureResultType, + failureType: GetRoomConnectionFailureType.GetRoomConnectionFailureType.NotParticipant, + }; + } + return { + __tstype: GetRoomConnectionSuccessResultType, + connectedUserUids: [ + ...(await context.connectionManager.listRoomConnections({ roomId })), + ] + .filter(([, value]) => value > 0) + .map(([key]) => key), + fetchedAt: new Date().getTime(), + }; + } +}; +tslib.__decorate([ + typeGraphql.Query(() => GetRoomConnectionsResult, { + description: '通常はこの Query を直接実行する必要はありません。@flocon-trpg/sdk を用いることで、リアルタイムに値を取得および自動更新できます。', + }), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Arg('roomId')), + tslib.__param(1, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [String, Object]), + tslib.__metadata("design:returntype", Promise) +], exports.GetRoomConnectionsResolver.prototype, "getRoomConnections", null); +exports.GetRoomConnectionsResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.GetRoomConnectionsResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/queries/getRoomConnections/resolver.js.map b/apps/api-server/dist/graphql/resolvers/queries/getRoomConnections/resolver.js.map new file mode 100644 index 000000000..c119e223f --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getRoomConnections/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/queries/getRoomConnections/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ObjectType","GetRoomConnectionFailureType","createUnionType","GetRoomConnectionsResolver","ensureAuthorizedUser","findRoomAndMyParticipant","Query","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Arg","Ctx","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/queries/getRoomsList/resolver.js b/apps/api-server/dist/graphql/resolvers/queries/getRoomsList/resolver.js new file mode 100644 index 000000000..9ae0b224c --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getRoomsList/resolver.js @@ -0,0 +1,74 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var entity = require('../../../../entities/room/entity.js'); +var roomAsListItem = require('../../../../entities-graphql/roomAsListItem.js'); +var GetRoomFailureType = require('../../../../enums/GetRoomFailureType.js'); +var roles = require('../../../../utils/roles.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var room = require('../../../objects/room.js'); +var utils = require('../../utils/utils.js'); + +let GetRoomsListSuccessResult = class GetRoomsListSuccessResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => [room.RoomAsListItem]), + tslib.__metadata("design:type", Array) +], GetRoomsListSuccessResult.prototype, "rooms", void 0); +GetRoomsListSuccessResult = tslib.__decorate([ + typeGraphql.ObjectType() +], GetRoomsListSuccessResult); +let GetRoomsListFailureResult = class GetRoomsListFailureResult { +}; +tslib.__decorate([ + typeGraphql.Field(() => GetRoomFailureType.GetRoomFailureType), + tslib.__metadata("design:type", String) +], GetRoomsListFailureResult.prototype, "failureType", void 0); +GetRoomsListFailureResult = tslib.__decorate([ + typeGraphql.ObjectType() +], GetRoomsListFailureResult); +const GetRoomsListResult = typeGraphql.createUnionType({ + name: 'GetRoomsListResult', + types: () => [GetRoomsListSuccessResult, GetRoomsListFailureResult], + resolveType: value => { + if ('rooms' in value) { + return GetRoomsListSuccessResult; + } + if ('failureType' in value) { + return GetRoomsListFailureResult; + } + return undefined; + }, +}); +exports.GetRoomsListResolver = class GetRoomsListResolver { + async getRoomsList(context) { + const em = context.em; + const authorizedUserUid = utils.ensureAuthorizedUser(context).userUid; + const roomModels = await em.find(entity.Room, {}); + const rooms = []; + for (const model of roomModels) { + rooms.push(await roomAsListItem.stateToGraphQL({ + roomEntity: model, + myUserUid: authorizedUserUid, + })); + } + return { + rooms, + }; + } +}; +tslib.__decorate([ + typeGraphql.Query(() => GetRoomsListResult), + typeGraphql.Authorized(roles.ENTRY), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(2)), + tslib.__param(0, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [Object]), + tslib.__metadata("design:returntype", Promise) +], exports.GetRoomsListResolver.prototype, "getRoomsList", null); +exports.GetRoomsListResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.GetRoomsListResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/queries/getRoomsList/resolver.js.map b/apps/api-server/dist/graphql/resolvers/queries/getRoomsList/resolver.js.map new file mode 100644 index 000000000..198f9a1d8 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getRoomsList/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/queries/getRoomsList/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","RoomAsListItem","ObjectType","GetRoomFailureType","createUnionType","GetRoomsListResolver","ensureAuthorizedUser","Room$MikroORM.Room","RoomAsListItemGlobal.stateToGraphQL","Query","Authorized","ENTRY","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Ctx","Resolver"],"mappings":";;;;;;;;;;;;;AAqBA,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB,CAAA;CAG9B;AADUA,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,MAAM,CAACC,mBAAc,CAAC,CAAC;;AACE,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAF9B,yBAAyB,GAAAF,gBAAA,CAAA;AAD9B,IAAAG,sBAAU;AACL,CAAA,EAAA,yBAAyB,CAG9B;AAGD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB,CAAA;CAG9B;AADUH,gBAAA,CAAA;AADN,IAAAC,iBAAK,CAAC,MAAMG,qCAAkB,CAAC;;AACQ,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAFtC,yBAAyB,GAAAJ,gBAAA,CAAA;AAD9B,IAAAG,sBAAU;AACL,CAAA,EAAA,yBAAyB,CAG9B;AAED,MAAM,kBAAkB,GAAGE,2BAAe,CAAC;AACvC,IAAA,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,MAAM,CAAC,yBAAyB,EAAE,yBAAyB,CAAU;IAC5E,WAAW,EAAE,KAAK,IAAG;AACjB,QAAA,IAAI,OAAO,IAAI,KAAK,EAAE;AAClB,YAAA,OAAO,yBAAyB;;AAEpC,QAAA,IAAI,aAAa,IAAI,KAAK,EAAE;AACxB,YAAA,OAAO,yBAAyB;;AAEpC,QAAA,OAAO,SAAS;KACnB;AACJ,CAAA,CAAC;AAGWC,4BAAoB,GAA1B,MAAM,oBAAoB,CAAA;AAIhB,IAAN,MAAM,YAAY,CAAQ,OAAwB,EAAA;AACrD,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE;QACrB,MAAM,iBAAiB,GAAGC,0BAAoB,CAAC,OAAO,CAAC,CAAC,OAAO;AAG/D,QAAA,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,IAAI,CAACC,WAAkB,EAAE,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,EAAE;AAChB,QAAA,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE;AAC5B,YAAA,KAAK,CAAC,IAAI,CACN,MAAMC,6BAAmC,CAAC;AACtC,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,SAAS,EAAE,iBAAiB;AAC/B,aAAA,CAAC,CACL;;QAEL,OAAO;YACH,KAAK;SACR;;;AAjBQT,gBAAA,CAAA;AAHZ,IAAAU,iBAAK,CAAC,MAAM,kBAAkB,CAAC;IAC/BC,sBAAU,CAACC,WAAK,CAAC;AACjB,IAAAC,yBAAa,CAACC,+BAAe,EAAEC,uCAAmB,CAAC,CAAC,CAAC,CAAC;IAC5BC,aAAA,CAAA,CAAA,EAAAC,eAAG,EAAE,CAAA;;;;AAkB/B,CAAA,EAAAX,4BAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA;AAtBQA,4BAAoB,GAAAN,gBAAA,CAAA;AADhC,IAAAkB,oBAAQ;AACI,CAAA,EAAAZ,4BAAoB,CAuBhC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/queries/getServerInfo/resolver.js b/apps/api-server/dist/graphql/resolvers/queries/getServerInfo/resolver.js new file mode 100644 index 000000000..9614c53b6 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getServerInfo/resolver.js @@ -0,0 +1,53 @@ +'use strict'; + +var tslib = require('tslib'); +var utils = require('@flocon-trpg/utils'); +var typeGraphql = require('type-graphql'); +var VERSION = require('../../../../VERSION.js'); +var PrereleaseType = require('../../../../enums/PrereleaseType.js'); +var serverInfo = require('../../../objects/serverInfo.js'); + +exports.GetServerInfoResolver = class GetServerInfoResolver { + async getServerInfo(context) { + const prerelease = (() => { + if (VERSION.VERSION.prerelease == null) { + return undefined; + } + switch (VERSION.VERSION.prerelease.type) { + case utils.alpha: + return { + ...VERSION.VERSION.prerelease, + type: PrereleaseType.PrereleaseType.Alpha, + }; + case utils.beta: + return { + ...VERSION.VERSION.prerelease, + type: PrereleaseType.PrereleaseType.Beta, + }; + case utils.rc: + return { + ...VERSION.VERSION.prerelease, + type: PrereleaseType.PrereleaseType.Rc, + }; + } + })(); + return { + version: { + ...VERSION.VERSION, + prerelease, + }, + uploaderEnabled: context.serverConfig.uploader != null, + }; + } +}; +tslib.__decorate([ + typeGraphql.Query(() => serverInfo.ServerInfo), + tslib.__param(0, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [Object]), + tslib.__metadata("design:returntype", Promise) +], exports.GetServerInfoResolver.prototype, "getServerInfo", null); +exports.GetServerInfoResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.GetServerInfoResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/queries/getServerInfo/resolver.js.map b/apps/api-server/dist/graphql/resolvers/queries/getServerInfo/resolver.js.map new file mode 100644 index 000000000..6c43ef7a8 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/getServerInfo/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/queries/getServerInfo/resolver.ts"],"sourcesContent":[null],"names":["GetServerInfoResolver","VERSION","alpha","PrereleaseType","beta","rc","__decorate","Query","ServerInfo","__param","Ctx","Resolver"],"mappings":";;;;;;;;;AAQaA,6BAAqB,GAA3B,MAAM,qBAAqB,CAAA;AAGjB,IAAN,MAAM,aAAa,CAAQ,OAAwB,EAAA;AACtD,QAAA,MAAM,UAAU,GAAG,CAAC,MAAK;AACrB,YAAA,IAAIC,eAAO,CAAC,UAAU,IAAI,IAAI,EAAE;AAC5B,gBAAA,OAAO,SAAS;;AAEpB,YAAA,QAAQA,eAAO,CAAC,UAAU,CAAC,IAAI;AAC3B,gBAAA,KAAKC,WAAK;oBACN,OAAO;wBACH,GAAGD,eAAO,CAAC,UAAU;wBACrB,IAAI,EAAEE,6BAAc,CAAC,KAAK;qBAC7B;AACL,gBAAA,KAAKC,UAAI;oBACL,OAAO;wBACH,GAAGH,eAAO,CAAC,UAAU;wBACrB,IAAI,EAAEE,6BAAc,CAAC,IAAI;qBAC5B;AACL,gBAAA,KAAKE,QAAE;oBACH,OAAO;wBACH,GAAGJ,eAAO,CAAC,UAAU;wBACrB,IAAI,EAAEE,6BAAc,CAAC,EAAE;qBAC1B;;SAEZ,GAAG;QACJ,OAAO;AACH,YAAA,OAAO,EAAE;AACL,gBAAA,GAAGF,eAAO;gBACV,UAAU;AACb,aAAA;AACD,YAAA,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI;SACzD;;;AA7BQK,gBAAA,CAAA;AADZ,IAAAC,iBAAK,CAAC,MAAMC,qBAAU,CAAC;IACIC,aAAA,CAAA,CAAA,EAAAC,eAAG,EAAE,CAAA;;;;AA8BhC,CAAA,EAAAV,6BAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAjCQA,6BAAqB,GAAAM,gBAAA,CAAA;AADjC,IAAAK,oBAAQ;AACI,CAAA,EAAAX,6BAAqB,CAkCjC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/queries/isEntry/resolver.js b/apps/api-server/dist/graphql/resolvers/queries/isEntry/resolver.js new file mode 100644 index 000000000..87bdeb9bc --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/isEntry/resolver.js @@ -0,0 +1,33 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var BaasType = require('../../../../enums/BaasType.js'); +var QueueMiddleware = require('../../../middlewares/QueueMiddleware.js'); +var RateLimitMiddleware = require('../../../middlewares/RateLimitMiddleware.js'); +var utils = require('../../utils/utils.js'); + +exports.IsEntryResolver = class IsEntryResolver { + async isEntry(context) { + const userUid = utils.ensureUserUid(context); + return await utils.checkEntry({ + em: context.em, + userUid, + baasType: BaasType.BaasType.Firebase, + serverConfig: context.serverConfig, + }); + } +}; +tslib.__decorate([ + typeGraphql.Query(() => Boolean), + typeGraphql.Authorized(), + typeGraphql.UseMiddleware(QueueMiddleware.QueueMiddleware, RateLimitMiddleware.RateLimitMiddleware(1)), + tslib.__param(0, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [Object]), + tslib.__metadata("design:returntype", Promise) +], exports.IsEntryResolver.prototype, "isEntry", null); +exports.IsEntryResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.IsEntryResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/queries/isEntry/resolver.js.map b/apps/api-server/dist/graphql/resolvers/queries/isEntry/resolver.js.map new file mode 100644 index 000000000..7b2846d50 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/queries/isEntry/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/queries/isEntry/resolver.ts"],"sourcesContent":[null],"names":["IsEntryResolver","ensureUserUid","checkEntry","BaasType","__decorate","Query","Authorized","UseMiddleware","QueueMiddleware","RateLimitMiddleware","__param","Ctx","Resolver"],"mappings":";;;;;;;;;AAQaA,uBAAe,GAArB,MAAM,eAAe,CAAA;AAIX,IAAN,MAAM,OAAO,CAAQ,OAAwB,EAAA;AAChD,QAAA,MAAM,OAAO,GAAGC,mBAAa,CAAC,OAAO,CAAC;QACtC,OAAO,MAAMC,gBAAU,CAAC;YACpB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO;YACP,QAAQ,EAAEC,iBAAQ,CAAC,QAAQ;YAC3B,YAAY,EAAE,OAAO,CAAC,YAAY;AACrC,SAAA,CAAC;;;AAPOC,gBAAA,CAAA;AAHZ,IAAAC,iBAAK,CAAC,MAAM,OAAO,CAAC;AACpB,IAAAC,sBAAU,EAAE;AACZ,IAAAC,yBAAa,CAACC,+BAAe,EAAEC,uCAAmB,CAAC,CAAC,CAAC,CAAC;IACjCC,aAAA,CAAA,CAAA,EAAAC,eAAG,EAAE,CAAA;;;;AAQ1B,CAAA,EAAAX,uBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,IAAA,CAAA;AAZQA,uBAAe,GAAAI,gBAAA,CAAA;AAD3B,IAAAQ,oBAAQ;AACI,CAAA,EAAAZ,uBAAe,CAa3B;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/subsciptions/pong/resolver.js b/apps/api-server/dist/graphql/resolvers/subsciptions/pong/resolver.js new file mode 100644 index 000000000..8df5a5a0d --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/subsciptions/pong/resolver.js @@ -0,0 +1,26 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var pong = require('../../../objects/pong.js'); +var topics = require('./topics.js'); + +exports.PongResolver = class PongResolver { + pong(payload) { + return payload; + } +}; +tslib.__decorate([ + typeGraphql.Subscription(() => pong.Pong, { + topics: topics.PONG, + description: 'GraphQL の動作テストに用いられます。3rd-party の Web サーバーを作成する際は利用しなくて構いません。', + }), + tslib.__param(0, typeGraphql.Root()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [Object]), + tslib.__metadata("design:returntype", pong.Pong) +], exports.PongResolver.prototype, "pong", null); +exports.PongResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.PongResolver); +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/subsciptions/pong/resolver.js.map b/apps/api-server/dist/graphql/resolvers/subsciptions/pong/resolver.js.map new file mode 100644 index 000000000..1722b1eb7 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/subsciptions/pong/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/subsciptions/pong/resolver.ts"],"sourcesContent":[null],"names":["PongResolver","__decorate","Subscription","Pong","PONG","__param","Root","Resolver"],"mappings":";;;;;;;AAMaA,oBAAY,GAAlB,MAAM,YAAY,CAAA;AAMd,IAAA,IAAI,CAAS,OAAoB,EAAA;AACpC,QAAA,OAAO,OAAO;;;AADXC,gBAAA,CAAA;AALN,IAAAC,wBAAY,CAAC,MAAMC,SAAI,EAAE;AACtB,QAAA,MAAM,EAAEC,WAAI;AACZ,QAAA,WAAW,EACP,+DAA+D;KACtE,CAAC;IACWC,aAAA,CAAA,CAAA,EAAAC,gBAAI,EAAE,CAAA;;;0CAAwBH,SAAI;AAE9C,CAAA,EAAAH,oBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,IAAA,CAAA;AARQA,oBAAY,GAAAC,gBAAA,CAAA;AADxB,IAAAM,oBAAQ;AACI,CAAA,EAAAP,oBAAY,CASxB;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/subsciptions/pong/topics.js b/apps/api-server/dist/graphql/resolvers/subsciptions/pong/topics.js new file mode 100644 index 000000000..5b3776ba2 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/subsciptions/pong/topics.js @@ -0,0 +1,6 @@ +'use strict'; + +const PONG = 'PONG'; + +exports.PONG = PONG; +//# sourceMappingURL=topics.js.map diff --git a/apps/api-server/dist/graphql/resolvers/subsciptions/pong/topics.js.map b/apps/api-server/dist/graphql/resolvers/subsciptions/pong/topics.js.map new file mode 100644 index 000000000..3b69c76c2 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/subsciptions/pong/topics.js.map @@ -0,0 +1 @@ +{"version":3,"file":"topics.js","sources":["../../../../../src/graphql/resolvers/subsciptions/pong/topics.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAO,MAAM,IAAI,GAAG;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/resolver.js b/apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/resolver.js new file mode 100644 index 000000000..1b0bcae65 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/resolver.js @@ -0,0 +1,211 @@ +'use strict'; + +var tslib = require('tslib'); +var typeGraphql = require('type-graphql'); +var WritingMessageStatusType = require('../../../../enums/WritingMessageStatusType.js'); +var room = require('../../../objects/room.js'); +var roomMessage = require('../../../objects/roomMessage.js'); +var types = require('../../types.js'); +var utils = require('../../utils/utils.js'); +var topics = require('./topics.js'); + +const deleteRoomOperation = 'DeleteRoomOperation'; +let DeleteRoomOperation = class DeleteRoomOperation { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], DeleteRoomOperation.prototype, "deletedBy", void 0); +tslib.__decorate([ + typeGraphql.Field({ description: 'since v0.7.2' }), + tslib.__metadata("design:type", Boolean) +], DeleteRoomOperation.prototype, "deletedByAdmin", void 0); +DeleteRoomOperation = tslib.__decorate([ + typeGraphql.ObjectType() +], DeleteRoomOperation); +let RoomConnectionEvent = class RoomConnectionEvent { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], RoomConnectionEvent.prototype, "userUid", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], RoomConnectionEvent.prototype, "isConnected", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], RoomConnectionEvent.prototype, "updatedAt", void 0); +RoomConnectionEvent = tslib.__decorate([ + typeGraphql.ObjectType() +], RoomConnectionEvent); +let WritingMessageStatus = class WritingMessageStatus { +}; +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", String) +], WritingMessageStatus.prototype, "userUid", void 0); +tslib.__decorate([ + typeGraphql.Field(() => WritingMessageStatusType.WritingMessageStatusType), + tslib.__metadata("design:type", String) +], WritingMessageStatus.prototype, "status", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Number) +], WritingMessageStatus.prototype, "updatedAt", void 0); +WritingMessageStatus = tslib.__decorate([ + typeGraphql.ObjectType() +], WritingMessageStatus); +let RoomEvent = class RoomEvent { +}; +tslib.__decorate([ + typeGraphql.Field(() => room.RoomOperation, { nullable: true }), + tslib.__metadata("design:type", room.RoomOperation) +], RoomEvent.prototype, "roomOperation", void 0); +tslib.__decorate([ + typeGraphql.Field(() => DeleteRoomOperation, { nullable: true }), + tslib.__metadata("design:type", DeleteRoomOperation) +], RoomEvent.prototype, "deleteRoomOperation", void 0); +tslib.__decorate([ + typeGraphql.Field(() => roomMessage.RoomMessageEvent, { nullable: true }), + tslib.__metadata("design:type", Object) +], RoomEvent.prototype, "roomMessageEvent", void 0); +tslib.__decorate([ + typeGraphql.Field(), + tslib.__metadata("design:type", Boolean) +], RoomEvent.prototype, "isRoomMessagesResetEvent", void 0); +tslib.__decorate([ + typeGraphql.Field(() => RoomConnectionEvent, { nullable: true }), + tslib.__metadata("design:type", RoomConnectionEvent) +], RoomEvent.prototype, "roomConnectionEvent", void 0); +tslib.__decorate([ + typeGraphql.Field(() => WritingMessageStatus, { nullable: true }), + tslib.__metadata("design:type", WritingMessageStatus) +], RoomEvent.prototype, "writingMessageStatus", void 0); +RoomEvent = tslib.__decorate([ + typeGraphql.ObjectType() +], RoomEvent); +exports.RoomEventResolver = class RoomEventResolver { + roomEvent(payload, id, context) { + if (payload == null) { + return undefined; + } + if (id !== payload.roomId) { + return undefined; + } + if (context.decodedIdToken == null || context.decodedIdToken.isError) { + return undefined; + } + const userUid = context.decodedIdToken.value.uid; + if (payload.sendTo !== types.all) { + if (!payload.sendTo.has(userUid)) { + return undefined; + } + } + switch (payload.type) { + case 'roomConnectionUpdatePayload': + return { + roomConnectionEvent: { + userUid: payload.userUid, + isConnected: payload.isConnected, + updatedAt: payload.updatedAt, + }, + isRoomMessagesResetEvent: false, + }; + case 'writingMessageStatusUpdatePayload': + return { + writingMessageStatus: { + userUid: payload.userUid, + status: payload.status, + updatedAt: payload.updatedAt, + }, + isRoomMessagesResetEvent: false, + }; + case 'roomMessagesResetPayload': + return { + isRoomMessagesResetEvent: true, + }; + case 'messageUpdatePayload': { + if (payload.value.__tstype === roomMessage.RoomPrivateMessageType) { + if (payload.value.visibleTo.every(vt => vt !== userUid)) { + return undefined; + } + } + if (payload.value.__tstype === roomMessage.RoomPrivateMessageUpdateType) { + if (payload.visibleTo == null) { + throw new Error('payload.visibleTo is required.'); + } + if (payload.visibleTo.every(vt => vt !== userUid)) { + return undefined; + } + } + switch (payload.value.__tstype) { + case roomMessage.RoomPrivateMessageType: + case roomMessage.RoomPublicMessageType: { + if (payload.value.isSecret && payload.value.createdBy !== userUid) { + const roomMessageEvent = { ...payload.value }; + utils.deleteSecretValues(roomMessageEvent); + return { + roomMessageEvent, + isRoomMessagesResetEvent: false, + }; + } + break; + } + case roomMessage.RoomPrivateMessageUpdateType: + case roomMessage.RoomPublicMessageUpdateType: + if (payload.value.isSecret && payload.createdBy !== userUid) { + const roomMessageEvent = { ...payload.value }; + utils.deleteSecretValues(roomMessageEvent); + return { + roomMessageEvent: { + ...payload.value, + commandResult: undefined, + }, + isRoomMessagesResetEvent: false, + }; + } + break; + } + return { + roomMessageEvent: payload.value, + isRoomMessagesResetEvent: false, + }; + } + case 'deleteRoomPayload': + return { + deleteRoomOperation: { + __tstype: deleteRoomOperation, + deletedBy: payload.deletedBy, + deletedByAdmin: payload.deletedByAdmin, + }, + isRoomMessagesResetEvent: false, + }; + case 'roomOperationPayload': + return { + roomOperation: payload.generateOperation(userUid), + isRoomMessagesResetEvent: false, + }; + } + } +}; +tslib.__decorate([ + typeGraphql.Subscription(() => RoomEvent, { + topics: topics.ROOM_EVENT, + nullable: true, + description: 'この Subscription を直接実行することは非推奨です。代わりに @flocon-trpg/sdk を用いてください。', + }), + tslib.__param(0, typeGraphql.Root()), + tslib.__param(1, typeGraphql.Arg('id')), + tslib.__param(2, typeGraphql.Ctx()), + tslib.__metadata("design:type", Function), + tslib.__metadata("design:paramtypes", [Object, String, Object]), + tslib.__metadata("design:returntype", Object) +], exports.RoomEventResolver.prototype, "roomEvent", null); +exports.RoomEventResolver = tslib.__decorate([ + typeGraphql.Resolver() +], exports.RoomEventResolver); + +exports.deleteRoomOperation = deleteRoomOperation; +//# sourceMappingURL=resolver.js.map diff --git a/apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/resolver.js.map b/apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/resolver.js.map new file mode 100644 index 000000000..4ecb82187 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/resolver.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolver.js","sources":["../../../../../src/graphql/resolvers/subsciptions/roomEvent/resolver.ts"],"sourcesContent":[null],"names":["__decorate","Field","ObjectType","WritingMessageStatusType","RoomOperation","RoomMessageEvent","RoomEventResolver","all","RoomPrivateMessageType","RoomPrivateMessageUpdateType","RoomPublicMessageType","deleteSecretValues","RoomPublicMessageUpdateType","Subscription","ROOM_EVENT","__param","Root","Arg","Ctx","Resolver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/topics.js b/apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/topics.js new file mode 100644 index 000000000..c2e646734 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/topics.js @@ -0,0 +1,6 @@ +'use strict'; + +const ROOM_EVENT = 'ROOM_EVENT'; + +exports.ROOM_EVENT = ROOM_EVENT; +//# sourceMappingURL=topics.js.map diff --git a/apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/topics.js.map b/apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/topics.js.map new file mode 100644 index 000000000..2faedaa98 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/subsciptions/roomEvent/topics.js.map @@ -0,0 +1 @@ +{"version":3,"file":"topics.js","sources":["../../../../../src/graphql/resolvers/subsciptions/roomEvent/topics.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAO,MAAM,UAAU,GAAG;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/types.js b/apps/api-server/dist/graphql/resolvers/types.js new file mode 100644 index 000000000..6928f057e --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/types.js @@ -0,0 +1,6 @@ +'use strict'; + +const all = 'all'; + +exports.all = all; +//# sourceMappingURL=types.js.map diff --git a/apps/api-server/dist/graphql/resolvers/types.js.map b/apps/api-server/dist/graphql/resolvers/types.js.map new file mode 100644 index 000000000..9b1d8093b --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sources":["../../../src/graphql/resolvers/types.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAO,MAAM,GAAG,GAAG;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/utils/messageAnalyzer.js b/apps/api-server/dist/graphql/resolvers/utils/messageAnalyzer.js new file mode 100644 index 000000000..ccf223b86 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/utils/messageAnalyzer.js @@ -0,0 +1,129 @@ +'use strict'; + +var FilePathModule = require('@flocon-trpg/core'); +var utils = require('@flocon-trpg/utils'); +var result = require('@kizahasi/result'); +var bcdice = require('bcdice'); + +const loader = new bcdice.DynamicLoader(); +const listAvailableGameSystems = () => { + return loader.listAvailableGameSystems(); +}; +const helpMessage = async (gameSystemId) => { + const gameSystem = await loader.dynamicLoad(gameSystemId); + return gameSystem.HELP_MESSAGE; +}; +const roll = async (text, gameType) => { + if (text.trim() === '') { + return null; + } + const gameSystemInfo = listAvailableGameSystems().find(info => info.id === gameType); + if (gameSystemInfo == null) { + return null; + } + const gameSystem = await loader.dynamicLoad(gameSystemInfo.id); + return gameSystem.eval(text); +}; +const chara = 'chara'; +const getParameter = async ({ parameterPath, context, room, }) => { + if (parameterPath.length === 0) { + throw new Error('parameterPath.length === 0'); + } + const parameter = parameterPath[0]; + const privateVarValue = await (async () => { + if (context?.type !== chara) { + return null; + } + if ((context.value.privateVarToml ?? '').trim() === '') { + return null; + } + const tomlObject = FilePathModule.parseToml(context.value.privateVarToml ?? ''); + if (tomlObject.isError) { + return null; + } + const result = FilePathModule.getVariableFromVarTomlObject(tomlObject.value, parameterPath); + if (result.isError) { + return null; + } + return result.value ?? null; + })(); + if (privateVarValue != null && typeof privateVarValue !== 'object') { + return result.Result.ok({ value: privateVarValue, stringValue: privateVarValue.toString() }); + } + const paramNameValue = await (async () => { + if (parameterPath.length >= 2) { + return result.Result.ok(undefined); + } + if (context?.type !== chara) { + return result.Result.ok(undefined); + } + const matchedBoolParams = utils.recordToArray(room.boolParamNames ?? {}).filter(({ value }) => value.name === parameter); + const matchedNumParams = utils.recordToArray(room.numParamNames ?? {}).filter(({ value }) => value.name === parameter); + const matchedStrParams = utils.recordToArray(room.strParamNames ?? {}).filter(({ value }) => value.name === parameter); + const totalLength = matchedBoolParams.length + matchedNumParams.length + matchedStrParams.length; + if (totalLength >= 2) { + return result.Result.error(`"${parameter}"という名前のパラメーターが複数存在します。パラメーターの名前を変えることを検討してください`); + } + const matchedBoolParams0 = matchedBoolParams[0]; + if (matchedBoolParams0 != null) { + return result.Result.ok(context.value.boolParams?.[matchedBoolParams0.key]?.value ?? undefined); + } + const matchedNumParams0 = matchedNumParams[0]; + if (matchedNumParams0 != null) { + return result.Result.ok(context.value.numParams?.[matchedNumParams0.key]?.value ?? undefined); + } + const matchedStrParams0 = matchedStrParams[0]; + if (matchedStrParams0 != null) { + return result.Result.ok(context.value.strParams?.[matchedStrParams0.key]?.value ?? undefined); + } + return result.Result.ok(undefined); + })(); + if (paramNameValue.isError) { + return paramNameValue; + } + if (paramNameValue.value !== undefined) { + return result.Result.ok({ + stringValue: paramNameValue.value.toString(), + value: paramNameValue.value, + }); + } + return undefined; +}; +const analyze = async (params) => { + const expressions = FilePathModule.analyze(params.text); + if (expressions.isError) { + return expressions; + } + let message = ''; + for (const expr of expressions.value) { + if (expr.type === FilePathModule.plain) { + message += expr.text; + continue; + } + const parameterValue = await getParameter({ ...params, parameterPath: expr.path }); + if (parameterValue == null) { + continue; + } + if (parameterValue.isError) { + return parameterValue; + } + message += parameterValue.value.stringValue; + } + const rolled = await roll(message, params.gameType); + return result.Result.ok({ + message, + diceResult: rolled == null + ? null + : { + result: rolled.text, + isSecret: rolled.secret, + isSuccess: rolled.success === rolled.failure ? null : rolled.success, + }, + }); +}; + +exports.analyze = analyze; +exports.chara = chara; +exports.helpMessage = helpMessage; +exports.listAvailableGameSystems = listAvailableGameSystems; +//# sourceMappingURL=messageAnalyzer.js.map diff --git a/apps/api-server/dist/graphql/resolvers/utils/messageAnalyzer.js.map b/apps/api-server/dist/graphql/resolvers/utils/messageAnalyzer.js.map new file mode 100644 index 000000000..e97121cb7 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/utils/messageAnalyzer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"messageAnalyzer.js","sources":["../../../../src/graphql/resolvers/utils/messageAnalyzer.ts"],"sourcesContent":[null],"names":["DynamicLoader","parseToml","getVariableFromVarTomlObject","Result","recordToArray","analyzeToExpression","plain"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/graphql/resolvers/utils/utils.js b/apps/api-server/dist/graphql/resolvers/utils/utils.js new file mode 100644 index 000000000..88da8390a --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/utils/utils.js @@ -0,0 +1,430 @@ +'use strict'; + +var FilePathModule = require('@flocon-trpg/core'); +var utils = require('@flocon-trpg/utils'); +var result = require('@kizahasi/result'); +var core = require('@mikro-orm/core'); +var bcrypt = require('bcrypt'); +var Color = require('color'); +var safeCompare = require('safe-compare'); +var types = require('../../../config/types.js'); +var entity = require('../../../entities/room/entity.js'); +var entity$1 = require('../../../entities/roomMessage/entity.js'); +var getUserIfEntry = require('../../../entities/user/getUserIfEntry.js'); +var room = require('../../../entities-graphql/room.js'); +var roomMessage$1 = require('../../../entities-graphql/roomMessage.js'); +var roomMessage = require('../../objects/roomMessage.js'); +var topics = require('../subsciptions/roomEvent/topics.js'); +var messageAnalyzer = require('./messageAnalyzer.js'); + +const RoomNotFound = 'RoomNotFound'; +const IdOperation = 'IdOperation'; +const NotSignIn = 'NotSignIn'; +const checkSignIn = (context) => { + if (context.decodedIdToken == null || context.decodedIdToken.isError) { + return NotSignIn; + } + return context.decodedIdToken.value; +}; +const checkEntry = async ({ em, userUid, baasType, serverConfig, noFlush, }) => { + return (await getUserIfEntry.getUserIfEntry({ em, userUid, baasType, serverConfig, noFlush })) != null; +}; +class FindRoomAndMyParticipantResult { + constructor(room, roomState, me) { + this.room = room; + this.roomState = roomState; + this.me = me; + } + participantIds() { + if (this.roomState.participants == null) { + return new Set(); + } + return new Set(utils.recordToArray(this.roomState.participants).map(({ key }) => key)); + } +} +const findRoomAndMyParticipant = async ({ em, userUid, roomId, }) => { + const room$1 = await em.findOne(entity.Room, { id: roomId }); + if (room$1 == null) { + return null; + } + const state = await room.GlobalRoom.MikroORM.ToGlobal.state(room$1, em); + const me = userUid == null ? undefined : state.participants?.[userUid]; + return new FindRoomAndMyParticipantResult(room$1, state, me); +}; +const ensureUserUid = (context) => { + const decodedIdToken = checkSignIn(context); + if (decodedIdToken === NotSignIn) { + throw new Error('Not sign in. "@Attribute()" might be missing.'); + } + return decodedIdToken.uid; +}; +const ensureAuthorizedUser = (context) => { + if (context.authorizedUser == null) { + throw new Error('authorizedUser was not found. "@Attribute(ENTRY or ADMIN)" might be missing.'); + } + return context.authorizedUser; +}; +const comparePassword = async (plainPassword, config) => { + if (config.type === types.plain) { + return safeCompare(plainPassword, config.value); + } + return await bcrypt.compare(plainPassword, config.value); +}; +const bcryptCompareNullable = async (plainPassword, hash) => { + if (hash == null) { + return true; + } + if (plainPassword == null) { + return false; + } + return await bcrypt.compare(plainPassword, hash); +}; +const publishRoomEvent = async (pubSub, payload) => { + await pubSub.publish(topics.ROOM_EVENT, payload); +}; +const deleteSecretValues = (message) => { + message.initText = undefined; + message.initTextSource = undefined; + message.updatedText = undefined; + message.commandResult = undefined; +}; +const createUpdatedText = (entity) => { + if (entity.textUpdatedAtValue == null) { + return undefined; + } + return { currentText: entity.updatedText, updatedAt: entity.textUpdatedAtValue }; +}; +const createRoomPublicMessage = async ({ msg, channelKey, }) => { + const createdBy = await msg.createdBy?.loadProperty('userUid'); + return { + __tstype: roomMessage.RoomPublicMessageType, + channelKey, + messageId: msg.id, + initText: msg.initText, + initTextSource: msg.initTextSource ?? msg.initText, + updatedText: createUpdatedText(msg), + textColor: msg.textColor ?? undefined, + commandResult: msg.commandResult == null + ? undefined + : { + text: msg.commandResult, + isSuccess: msg.commandIsSuccess, + }, + altTextToSecret: msg.altTextToSecret ?? undefined, + isSecret: msg.isSecret, + createdBy, + character: toCharacterValueForMessage(msg), + customName: msg.customName, + createdAt: msg.createdAt.getTime(), + updatedAt: msg.updatedAt?.getTime(), + }; +}; +const toCharacterValueForMessage = (message) => { + if (message.charaStateId == null || + message.charaName == null || + message.charaIsPrivate == null) { + return undefined; + } + return { + stateId: message.charaStateId, + isPrivate: message.charaIsPrivate, + name: message.charaName, + image: message.charaImagePath == null || message.charaImageSourceType == null + ? undefined + : { + path: message.charaImagePath, + sourceType: message.charaImageSourceType, + }, + portraitImage: message.charaPortraitImagePath == null || message.charaPortraitImageSourceType == null + ? undefined + : { + path: message.charaPortraitImagePath, + sourceType: message.charaPortraitImageSourceType, + }, + }; +}; +const createRoomPrivateMessage = async ({ msg, visibleTo, }) => { + const createdBy = await msg.createdBy?.loadProperty('userUid'); + return { + __tstype: roomMessage.RoomPrivateMessageType, + messageId: msg.id, + visibleTo: [...visibleTo].sort(), + createdBy, + character: toCharacterValueForMessage(msg), + customName: msg.customName, + createdAt: msg.createdAt.getTime(), + updatedAt: msg.updatedAt?.getTime(), + initText: msg.initText ?? undefined, + initTextSource: msg.initTextSource ?? msg.initText, + updatedText: createUpdatedText(msg), + textColor: msg.textColor ?? undefined, + commandResult: msg.commandResult == null + ? undefined + : { + text: msg.commandResult, + isSuccess: msg.commandIsSuccess, + }, + altTextToSecret: msg.altTextToSecret ?? undefined, + isSecret: msg.isSecret, + }; +}; +const createRoomPublicMessageUpdate = (msg) => { + return { + __tstype: roomMessage.RoomPublicMessageUpdateType, + messageId: msg.id, + initText: msg.initText, + initTextSource: msg.initTextSource ?? msg.initText, + updatedAt: msg.updatedAt?.getTime(), + updatedText: createUpdatedText(msg), + commandResult: msg.commandResult == null + ? undefined + : { + text: msg.commandResult, + isSuccess: msg.commandIsSuccess, + }, + altTextToSecret: msg.altTextToSecret ?? undefined, + isSecret: msg.isSecret, + }; +}; +const createRoomPrivateMessageUpdate = (msg) => { + return { + __tstype: roomMessage.RoomPrivateMessageUpdateType, + messageId: msg.id, + initText: msg.initText ?? undefined, + initTextSource: msg.initTextSource ?? msg.initText, + updatedAt: msg.updatedAt?.getTime(), + updatedText: createUpdatedText(msg), + commandResult: msg.commandResult == null + ? undefined + : { + text: msg.commandResult, + isSuccess: msg.commandIsSuccess, + }, + altTextToSecret: msg.altTextToSecret ?? undefined, + isSecret: msg.isSecret, + }; +}; +async function getRoomMessagesFromDb(room, userUid, mode) { + const publicMessages = []; + const publicChannels = []; + for (const ch of await room.roomChatChs.loadItems()) { + publicChannels.push({ + __tstype: roomMessage.RoomPublicChannelType, + key: ch.key, + name: ch.name, + }); + for (const msg of await ch.roomPubMsgs.loadItems()) { + const createdBy = await msg.createdBy?.loadProperty('userUid'); + const graphqlMessage = await createRoomPublicMessage({ msg, channelKey: ch.key }); + if (mode === 'default' && msg.isSecret && createdBy !== userUid) { + deleteSecretValues(graphqlMessage); + } + publicMessages.push(graphqlMessage); + } + } + const privateMessages = []; + for (const msg of await room.roomPrvMsgs.loadItems()) { + const visibleTo = await msg.visibleTo.loadItems(); + if (mode === 'default') { + if (visibleTo.every(v => v.userUid !== userUid)) { + continue; + } + } + const createdBy = await msg.createdBy?.loadProperty('userUid'); + const graphqlMessage = await createRoomPrivateMessage({ + msg, + visibleTo: visibleTo.map(user => user.userUid), + }); + if (mode === 'default' && msg.isSecret && createdBy !== userUid) { + deleteSecretValues(graphqlMessage); + } + privateMessages.push(graphqlMessage); + } + const pieceLogs = []; + for (const msg of await room.dicePieceLogs.loadItems()) { + pieceLogs.push(roomMessage$1.DicePieceLog.MikroORM.ToGraphQL.state(msg)); + } + for (const msg of await room.stringPieceLogs.loadItems()) { + pieceLogs.push(roomMessage$1.StringPieceLog.MikroORM.ToGraphQL.state(msg)); + } + const soundEffects = []; + for (const se of await room.roomSes.loadItems()) { + const createdBy = await se.createdBy?.loadProperty('userUid'); + const graphQLValue = { + __tstype: roomMessage.RoomSoundEffectType, + messageId: se.id, + createdBy, + createdAt: se.createdAt.getTime(), + file: { + path: se.filePath, + sourceType: se.fileSourceType, + }, + volume: se.volume, + }; + soundEffects.push(graphQLValue); + } + return { + __tstype: roomMessage.RoomMessagesType, + publicMessages, + privateMessages, + pieceLogs: pieceLogs, + publicChannels, + soundEffects, + }; +} +const operateAsAdminAndFlushCore = async ({ operation: operationSource, em, room: room$1, roomState, roomHistCount, }) => { + const prevRevision = room$1.revision; + const operation = await operationSource(roomState); + if (operation.isError) { + return result.Result.error({ type: 'custom', error: operation.error }); + } + if (operation.value == null) { + return result.Result.ok(IdOperation); + } + const transformed = FilePathModule.serverTransform({ type: FilePathModule.admin })({ + stateBeforeServerOperation: roomState, + stateAfterServerOperation: roomState, + clientOperation: operation.value, + serverOperation: undefined, + }); + if (transformed.isError) { + return result.Result.error({ type: 'OT', error: transformed.error }); + } + const transformedValue = transformed.value; + if (transformedValue == null) { + return result.Result.ok(IdOperation); + } + const nextRoomState = await room.GlobalRoom.Global.applyToEntity({ + em, + target: room$1, + prevState: roomState, + operation: transformedValue, + }); + await em.flush(); + await room.GlobalRoom.Global.cleanOldRoomOp({ + em: em.fork(), + room: room$1, + roomHistCount, + }); + await em.flush(); + const generateOperation = (deliverTo) => { + return { + __tstype: 'RoomOperation', + revisionTo: prevRevision + 1, + operatedBy: undefined, + valueJson: room.GlobalRoom.Global.ToGraphQL.operation({ + prevState: roomState, + nextState: nextRoomState, + requestedBy: { type: FilePathModule.client, userUid: deliverTo }, + }), + }; + }; + return result.Result.ok(generateOperation); +}; +const operateAsAdminAndFlush = async ({ operation, operationType, em, roomId, roomHistCount, }) => { + const findResult = await findRoomAndMyParticipant({ em, roomId, userUid: undefined }); + if (findResult == null) { + return result.Result.ok(RoomNotFound); + } + const generateOperationResult = await operateAsAdminAndFlushCore({ + operation: async (state) => { + if (operationType === 'operation') { + return await operation(state, { room: findResult.room }); + } + const nextState = await operation(state, { room: findResult.room }); + if (nextState.isError) { + return nextState; + } + if (nextState.value === state) { + return result.Result.ok(undefined); + } + const diffResult = FilePathModule.diff(FilePathModule.roomTemplate)({ prevState: state, nextState: nextState.value }); + if (diffResult == null) { + return result.Result.ok(undefined); + } + return result.Result.ok(FilePathModule.toUpOperation(FilePathModule.roomTemplate)(diffResult)); + }, + em, + room: findResult.room, + roomState: findResult.roomState, + roomHistCount, + }); + if (generateOperationResult.isError) { + return generateOperationResult; + } + if (generateOperationResult.value === IdOperation) { + return generateOperationResult; + } + const payload = { + type: 'roomOperationPayload', + generateOperation: x => generateOperationResult.value(x), + sendTo: findResult.participantIds(), + roomId, + }; + return result.Result.ok(payload); +}; +const fixTextColor = (color) => { + try { + return Color(color).hex(); + } + catch { + return undefined; + } +}; +const analyzeTextAndSetToEntity = async (params) => { + const defaultGameType = 'DiceBot'; + const analyzed = await messageAnalyzer.analyze({ + ...params, + gameType: params.gameType ?? defaultGameType, + text: params.textSource, + }); + if (analyzed.isError) { + return analyzed; + } + const targetEntity = params.type === 'RoomPubMsg' + ? new entity$1.RoomPubMsg({ + initTextSource: params.textSource, + initText: analyzed.value.message, + }) + : new entity$1.RoomPrvMsg({ + initTextSource: params.textSource, + initText: analyzed.value.message, + }); + targetEntity.createdBy = core.ref(params.createdBy); + if (analyzed.value.diceResult != null) { + if (analyzed.value.diceResult.isSecret) { + targetEntity.isSecret = true; + targetEntity.altTextToSecret = 'シークレットダイス'; + targetEntity.commandResult = analyzed.value.diceResult.result; + targetEntity.commandIsSuccess = analyzed.value.diceResult.isSuccess ?? undefined; + } + else { + targetEntity.commandResult = analyzed.value.diceResult.result; + targetEntity.commandIsSuccess = analyzed.value.diceResult.isSuccess ?? undefined; + } + } + return result.Result.ok(targetEntity); +}; + +exports.IdOperation = IdOperation; +exports.NotSignIn = NotSignIn; +exports.RoomNotFound = RoomNotFound; +exports.analyzeTextAndSetToEntity = analyzeTextAndSetToEntity; +exports.bcryptCompareNullable = bcryptCompareNullable; +exports.checkEntry = checkEntry; +exports.checkSignIn = checkSignIn; +exports.comparePassword = comparePassword; +exports.createRoomPrivateMessage = createRoomPrivateMessage; +exports.createRoomPrivateMessageUpdate = createRoomPrivateMessageUpdate; +exports.createRoomPublicMessage = createRoomPublicMessage; +exports.createRoomPublicMessageUpdate = createRoomPublicMessageUpdate; +exports.createUpdatedText = createUpdatedText; +exports.deleteSecretValues = deleteSecretValues; +exports.ensureAuthorizedUser = ensureAuthorizedUser; +exports.ensureUserUid = ensureUserUid; +exports.findRoomAndMyParticipant = findRoomAndMyParticipant; +exports.fixTextColor = fixTextColor; +exports.getRoomMessagesFromDb = getRoomMessagesFromDb; +exports.operateAsAdminAndFlush = operateAsAdminAndFlush; +exports.publishRoomEvent = publishRoomEvent; +//# sourceMappingURL=utils.js.map diff --git a/apps/api-server/dist/graphql/resolvers/utils/utils.js.map b/apps/api-server/dist/graphql/resolvers/utils/utils.js.map new file mode 100644 index 000000000..800d28cd3 --- /dev/null +++ b/apps/api-server/dist/graphql/resolvers/utils/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sources":["../../../../src/graphql/resolvers/utils/utils.ts"],"sourcesContent":[null],"names":["getUserIfEntry","recordToArray","room","Room$MikroORM.Room","GlobalRoom","plain","ROOM_EVENT","RoomPublicMessageType","RoomPrivateMessageType","RoomPublicMessageUpdateType","RoomPrivateMessageUpdateType","RoomPublicChannelType","DicePieceLogNameSpace","StringPieceLogNameSpace","RoomSoundEffectType","RoomMessagesType","Result","serverTransform","admin","client","diff","roomTemplate","toUpOperation","analyze","RoomPubMsg","RoomPrvMsg","ref"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/html/Html.js b/apps/api-server/dist/html/Html.js new file mode 100644 index 000000000..88bf7bcdd --- /dev/null +++ b/apps/api-server/dist/html/Html.js @@ -0,0 +1,38 @@ +'use strict'; + +exports.Html = void 0; +(function (Html) { + Html.success = ` + + + Flocon APIサーバー + +

    Flocon APIサーバー

    +
    +

    + APIサーバーは稼働しています😊 +

    +
    + +`; + Html.error = ` + + + Flocon APIサーバー + +

    Flocon APIサーバー

    +
    +

    + ⚠️ エラーが発生したため、APIサーバーを稼働させることができませんでした。サーバーに出力されたエラーメッセージを確認して、環境変数や.env.localファイルなどに問題がないか確認してください。 +

    +
    +

    fly.ioにデプロイした方へ

    +
    +

    + おそらくFIREBASE_PROJECT_IDもしくはENTRY_PASSWORDの設定に誤りがあると思われます。fly.ioのダッシュボードに出力されたエラーログを参照して、設定に問題がないか確認してください。 +

    +
    + +`; +})(exports.Html || (exports.Html = {})); +//# sourceMappingURL=Html.js.map diff --git a/apps/api-server/dist/html/Html.js.map b/apps/api-server/dist/html/Html.js.map new file mode 100644 index 000000000..c3496e374 --- /dev/null +++ b/apps/api-server/dist/html/Html.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Html.js","sources":["../../src/html/Html.ts"],"sourcesContent":[null],"names":["Html"],"mappings":";;AAAiBA;AAAjB,CAAA,UAAiB,IAAI,EAAA;AACJ,IAAA,IAAA,CAAA,OAAO,GAAG;;;;;;;;;;;;CAY1B;AAEgB,IAAA,IAAA,CAAA,KAAK,GAAG;;;;;;;;;;;;;;;;;;CAkBxB;AACD,CAAC,EAlCgBA,YAAI,KAAJA,YAAI,GAkCpB,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/index.js b/apps/api-server/dist/index.js new file mode 100644 index 000000000..fb35ba26f --- /dev/null +++ b/apps/api-server/dist/index.js @@ -0,0 +1,11 @@ +'use strict'; + +var utils = require('@flocon-trpg/utils'); +require('reflect-metadata'); +var main = require('./main.js'); +var commandLineArgs = require('./utils/commandLineArgs.js'); + +void commandLineArgs.loadAsMain().then(args => { + main.main(args).catch((err) => utils.loggerRef.error(err)); +}); +//# sourceMappingURL=index.js.map diff --git a/apps/api-server/dist/index.js.map b/apps/api-server/dist/index.js.map new file mode 100644 index 000000000..4598b8110 --- /dev/null +++ b/apps/api-server/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["loadAsMain","main","loggerRef"],"mappings":";;;;;;;AAKA,KAAKA,0BAAU,EAAE,CAAC,IAAI,CAAC,IAAI,IAAG;AAC1B,IAAAC,SAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,KAAKC,eAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC,CAAC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/initializeLogger.js b/apps/api-server/dist/initializeLogger.js new file mode 100644 index 000000000..5fe315847 --- /dev/null +++ b/apps/api-server/dist/initializeLogger.js @@ -0,0 +1,30 @@ +'use strict'; + +var utils = require('@flocon-trpg/utils'); +var pino = require('pino'); + +let isLoggerInitialized = false; +const initializeLogger = (logConfigResult) => { + if (isLoggerInitialized) { + utils.loggerRef.warn('initializeLogger has been called multiple times.'); + } + if (logConfigResult.isError) { + throw new Error(logConfigResult.error); + } + isLoggerInitialized = true; + const logLevel = logConfigResult.value.logLevel ?? 'info'; + switch (logConfigResult.value.logFormat) { + case 'json': { + utils.loggerRef.value = pino.pino({ level: logLevel }); + break; + } + case 'default': + case undefined: { + utils.loggerRef.value = utils.createDefaultLogger({ logLevel }); + break; + } + } +}; + +exports.initializeLogger = initializeLogger; +//# sourceMappingURL=initializeLogger.js.map diff --git a/apps/api-server/dist/initializeLogger.js.map b/apps/api-server/dist/initializeLogger.js.map new file mode 100644 index 000000000..30cc3a179 --- /dev/null +++ b/apps/api-server/dist/initializeLogger.js.map @@ -0,0 +1 @@ +{"version":3,"file":"initializeLogger.js","sources":["../src/initializeLogger.ts"],"sourcesContent":[null],"names":["loggerRef","pino","createDefaultLogger"],"mappings":";;;;;AAKA,IAAI,mBAAmB,GAAG,KAAK;AAGlB,MAAA,gBAAgB,GAAG,CAAC,eAAkC,KAAI;IACnE,IAAI,mBAAmB,EAAE;AACrB,QAAAA,eAAS,CAAC,IAAI,CAAC,kDAAkD,CAAC;;AAGtE,IAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC;;IAG1C,mBAAmB,GAAG,IAAI;IAE1B,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM;AACzD,IAAA,QAAQ,eAAe,CAAC,KAAK,CAAC,SAAS;QACnC,KAAK,MAAM,EAAE;YACTA,eAAS,CAAC,KAAK,GAAGC,SAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YAC3C;;AAEJ,QAAA,KAAK,SAAS;QACd,KAAK,SAAS,EAAE;YACZD,eAAS,CAAC,KAAK,GAAGE,yBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC;YACnD;;;AAGZ;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/main.js b/apps/api-server/dist/main.js new file mode 100644 index 000000000..a3c2faecb --- /dev/null +++ b/apps/api-server/dist/main.js @@ -0,0 +1,138 @@ +'use strict'; + +var FilePathModule = require('@flocon-trpg/core'); +var utils = require('@flocon-trpg/utils'); +var result = require('@kizahasi/result'); +var admin = require('firebase-admin'); +var VERSION = require('./VERSION.js'); +var buildSchema = require('./buildSchema.js'); +var createORM = require('./config/createORM.js'); +var createORMOptions = require('./config/createORMOptions.js'); +var logConfigParser = require('./config/logConfigParser.js'); +var serverConfigParser = require('./config/serverConfigParser.js'); +var main$1 = require('./connection/main.js'); +var createServer = require('./createServer.js'); +var BaasType = require('./enums/BaasType.js'); +var env = require('./env.js'); +var initializeLogger = require('./initializeLogger.js'); +var migrate = require('./migrate.js'); +var appConsole = require('./utils/appConsole.js'); +var commandLineArgs = require('./utils/commandLineArgs.js'); +var promiseQueue = require('./utils/promiseQueue.js'); + +const logEntryPasswordConfig = (serverConfig) => { + if (serverConfig.entryPassword == null) { + appConsole.AppConsole.infoAsNotice({ + icon: '🔓', + en: 'Entry password is disabled.', + ja: 'エントリーパスワードは無効化されています。', + }); + } + else { + appConsole.AppConsole.infoAsNotice({ + icon: '🔐', + en: 'Entry password is enabled.', + ja: 'エントリーパスワードは有効化されています。', + }); + } +}; +const main = async (params) => { + const logConfigResult = new logConfigParser.LogConfigParser(process.env).logConfig; + initializeLogger.initializeLogger(logConfigResult); + appConsole.AppConsole.infoAsNotice({ + en: `Flocon API Server v${VERSION.VERSION.toString()}`, + }); + const port = process.env.PORT ?? 4000; + const onError = async (message) => { + utils.loggerRef.error(message); + await createServer.createServerAsError({ + port, + }); + }; + const commandLineArgs$1 = await commandLineArgs.loadAsMain(); + const serverConfigParser$1 = new serverConfigParser.ServerConfigParser(process.env); + const serverConfigResult = serverConfigParser$1.serverConfig; + if (serverConfigResult.isError) { + await onError(serverConfigResult.error); + return; + } + const serverConfig = serverConfigResult.value; + const orm = await createORM.createORM(createORMOptions.createORMOptions(serverConfig, commandLineArgs$1.db, 'dist')); + if (orm.isError) { + await onError(orm.error); + return; + } + if (serverConfig.firebaseAdminSecret == null) { + if (serverConfig.firebaseProjectId == null) { + await onError(`FirebaseのプロジェクトIDを取得できませんでした。${env.FIREBASE_PROJECT_ID} にプロジェクトIDをセットしてください。`); + return; + } + admin.initializeApp({ + projectId: serverConfig.firebaseProjectId, + }); + } + else { + const projectId = serverConfig.firebaseAdminSecret.project_id ?? serverConfig.firebaseProjectId; + admin.initializeApp({ + projectId, + credential: admin.credential.cert({ + projectId, + clientEmail: serverConfig.firebaseAdminSecret.client_email, + privateKey: serverConfig.firebaseAdminSecret.private_key, + }), + }); + } + const schema = await buildSchema.buildSchema(serverConfig)({ emitSchemaFile: false, pubSub: main$1.pubSub }); + if (serverConfig.autoMigration) { + await migrate.doAutoMigrationBeforeStart(orm.value); + } + await migrate.checkMigrationsBeforeStart(orm.value); + logEntryPasswordConfig(serverConfig); + const getDecodedIdToken = async (idToken) => { + const decodedIdToken = await admin + .auth() + .verifyIdToken(idToken) + .then(result.Result.ok) + .catch(result.Result.error); + if (decodedIdToken.isError) { + return decodedIdToken; + } + return result.Result.ok({ + ...decodedIdToken.value, + type: BaasType.BaasType.Firebase, + }); + }; + const getDecodedIdTokenFromBearer = async (bearer) => { + if (bearer == null || !bearer.startsWith('Bearer ')) { + return undefined; + } + const idToken = bearer.replace('Bearer ', ''); + return await getDecodedIdToken(idToken); + }; + const getDecodedIdTokenFromWsContext = async (ctx) => { + let authTokenValue; + if (ctx.connectionParams != null) { + const authTokenValueAsUnknown = ctx.connectionParams[FilePathModule.authToken]; + if (typeof authTokenValueAsUnknown === 'string') { + authTokenValue = authTokenValueAsUnknown; + } + } + return authTokenValue == null ? undefined : await getDecodedIdToken(authTokenValue); + }; + const connectionManager = new main$1.InMemoryConnectionManager(); + const promiseQueue$1 = new promiseQueue.PromiseQueue({ queueLimit: 50 }); + await createServer.createServer({ + promiseQueue: promiseQueue$1, + serverConfig, + connectionManager, + em: orm.value.em, + schema, + debug: params.debug, + port: process.env.PORT ?? 4000, + getDecodedIdTokenFromExpressRequest: context => getDecodedIdTokenFromBearer(context.headers.authorization), + getDecodedIdTokenFromWsContext, + }); +}; + +exports.main = main; +//# sourceMappingURL=main.js.map diff --git a/apps/api-server/dist/main.js.map b/apps/api-server/dist/main.js.map new file mode 100644 index 000000000..b5ac8ad92 --- /dev/null +++ b/apps/api-server/dist/main.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.js","sources":["../src/main.ts"],"sourcesContent":[null],"names":["AppConsole","LogConfigParser","initializeLogger","VERSION","loggerRef","createServerAsError","commandLineArgs","loadAsMain","serverConfigParser","ServerConfigParser","createORM","createORMOptions","FIREBASE_PROJECT_ID","buildSchema","pubSub","doAutoMigrationBeforeStart","checkMigrationsBeforeStart","Result","BaasType","authToken","InMemoryConnectionManager","promiseQueue","PromiseQueue","createServer"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/migrate.js b/apps/api-server/dist/migrate.js new file mode 100644 index 000000000..bdd790ee3 --- /dev/null +++ b/apps/api-server/dist/migrate.js @@ -0,0 +1,191 @@ +'use strict'; + +var createORM = require('./config/createORM.js'); +var createORMOptions = require('./config/createORMOptions.js'); +var logConfigParser = require('./config/logConfigParser.js'); +var serverConfigParser = require('./config/serverConfigParser.js'); +var initializeLogger = require('./initializeLogger.js'); +var appConsole = require('./utils/appConsole.js'); +var commandLineArgs = require('./utils/commandLineArgs.js'); + +const check = 'check'; +const create = 'create'; +const createInitial = 'create-initial'; +const up = 'up'; +const down = 'down'; +const autoMigrationAlways = 'autoMigrationAlways'; +const migrationCheckErrorMessage = { + icon: '❗', + en: `Pending migrations were found. You need to execute "migration-up" command to run the server. It is recommended to backup the DB before executing the command if the DB has some data you don't want to lose.`, + ja: `適用すべきマイグレーションが見つかりました。サーバーを稼働させるには"migration-up"コマンドを実行する必要があります。もし失いたくないデータがDBにある場合、そのコマンドを実行する前にDBをバックアップしておくことを推奨します。`, +}; +const migrationCheckOkMessage = { + icon: '✔️', + en: `No pending migrations were found.`, + ja: `適用すべきマイグレーションはありません。`, +}; +const hasMigrations = async (orm) => { + const migrator = orm.getMigrator(); + const migrations = await migrator.getPendingMigrations(); + return migrations && migrations.length > 0; +}; +const migrateUpCore = async ({ type, orm, }) => { + appConsole.AppConsole.infoAsNotice({ + en: `Migration-up is started${type === autoMigrationAlways ? '(reason: AUTO_MIGRATION is enabled)' : ''}.`, + ja: `マイグレーションのupを開始します${type === autoMigrationAlways ? '(reason: AUTO_MIGRATION is enabled)' : ''}。`, + }); + const migrator = orm.getMigrator(); + const migrations = await migrator.getPendingMigrations(); + if (migrations && migrations.length > 0) { + appConsole.AppConsole.infoAsNotice({ + en: 'Pending migrations were found. Migrating...', + ja: '適用すべきマイグレーションが見つかりました。マイグレーションを行います…', + }); + await migrator.up(); + } + else { + appConsole.AppConsole.infoAsNotice({ + icon: '✔️', + en: 'No migration found.', + ja: '適用すべきマイグレーションはありません。', + }); + } + appConsole.AppConsole.infoAsNotice({ + icon: '😊', + en: `Migration-up has been successfully finished.`, + ja: `マイグレーションのupが正常に完了しました。`, + }); +}; +const migrateByNpmScript = async (type) => { + const logConfigResult = new logConfigParser.LogConfigParser(process.env).logConfig; + initializeLogger.initializeLogger(logConfigResult); + const serverConfigParser$1 = new serverConfigParser.ServerConfigParser(process.env); + const serverConfig = serverConfigParser$1.serverConfigForMigration; + if (serverConfig.isError) { + throw new Error(serverConfig.error); + } + const createORM$1 = (...[serverConfig, databaseArg, dirName]) => { + return createORM.createORM(createORMOptions.createORMOptions(serverConfig, databaseArg, dirName)); + }; + let orm = undefined; + try { + switch (type) { + case create: { + appConsole.AppConsole.infoAsNotice({ + en: `Migration-create is started.`, + ja: `マイグレーションの作成を開始します。`, + }); + const commandLineArgs$1 = await commandLineArgs.loadMigrationCreate(); + orm = await createORM$1(serverConfig.value, commandLineArgs$1.db, 'src'); + if (orm.isError) { + throw new Error(orm.error); + } + const migrator = orm.value.getMigrator(); + await migrator.createMigration(); + appConsole.AppConsole.infoAsNotice({ + icon: '😊', + en: `Migration-create has been successfully finished.`, + ja: `マイグレーションの作成が正常に完了しました。`, + }); + return; + } + case createInitial: { + appConsole.AppConsole.infoAsNotice({ + en: `Migration-create-init is started. `, + ja: `マイグレーションの新規作成を開始します。`, + }); + const commandLineArgs$1 = await commandLineArgs.loadMigrationCreate(); + orm = await createORM$1(serverConfig.value, commandLineArgs$1.db, 'src'); + if (orm.isError) { + throw new Error(orm.error); + } + const migrator = orm.value.getMigrator(); + await migrator.createInitialMigration(); + appConsole.AppConsole.infoAsNotice({ + icon: '😊', + en: `Migration-create-init has been successfully finished.`, + ja: `マイグレーションの新規作成が正常に完了しました。`, + }); + return; + } + case up: + case autoMigrationAlways: { + const commandLineArgs$1 = await commandLineArgs.loadMigrationUpOrCheck(); + orm = await createORM$1(serverConfig.value, commandLineArgs$1.db, 'dist'); + if (orm.isError) { + throw new Error(orm.error); + } + await migrateUpCore({ + orm: orm.value, + type, + }); + return; + } + case down: { + appConsole.AppConsole.infoAsNotice({ + en: `Migration-down is started. `, + ja: `マイグレーションのdownを開始します。`, + }); + const commandLineArgs$1 = await commandLineArgs.loadMigrationDown(); + orm = await createORM$1(serverConfig.value, commandLineArgs$1.db, 'dist'); + if (orm.isError) { + throw new Error(orm.error); + } + if (!Number.isInteger(commandLineArgs$1.count)) { + appConsole.AppConsole.fatal({ en: '"--count" must be integer' }); + return; + } + if (commandLineArgs$1.count < 0) { + appConsole.AppConsole.fatal({ en: '"--count" must not be negative' }); + return; + } + const migrator = orm.value.getMigrator(); + for (const _ of new Array(commandLineArgs$1.count).fill('')) { + await migrator.down(); + appConsole.AppConsole.infoAsNotice({ en: 'A migration-down is finished.' }); + } + appConsole.AppConsole.infoAsNotice({ + icon: '😊', + en: `Migration-down has been successfully finished.`, + ja: `マイグレーションのdownが正常に完了しました。`, + }); + return; + } + case check: { + const commandLineArgs$1 = await commandLineArgs.loadMigrationUpOrCheck(); + orm = await createORM$1(serverConfig.value, commandLineArgs$1.db, 'dist'); + if (orm.isError) { + throw new Error(orm.error); + } + if (await hasMigrations(orm.value)) { + appConsole.AppConsole.infoAsNotice(migrationCheckErrorMessage); + } + else { + appConsole.AppConsole.infoAsNotice(migrationCheckOkMessage); + } + return; + } + } + } + finally { + void orm?.value?.close(); + } +}; +const checkMigrationsBeforeStart = async (orm) => { + if (await hasMigrations(orm)) { + await orm.close(); + throw new Error(appConsole.AppConsole.messageToString(migrationCheckErrorMessage)); + } + appConsole.AppConsole.infoAsNotice(migrationCheckOkMessage); +}; +const doAutoMigrationBeforeStart = async (orm) => { + await migrateUpCore({ + orm, + type: autoMigrationAlways, + }); +}; + +exports.checkMigrationsBeforeStart = checkMigrationsBeforeStart; +exports.doAutoMigrationBeforeStart = doAutoMigrationBeforeStart; +exports.migrateByNpmScript = migrateByNpmScript; +//# sourceMappingURL=migrate.js.map diff --git a/apps/api-server/dist/migrate.js.map b/apps/api-server/dist/migrate.js.map new file mode 100644 index 000000000..a6e1e4592 --- /dev/null +++ b/apps/api-server/dist/migrate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"migrate.js","sources":["../src/migrate.ts"],"sourcesContent":[null],"names":["AppConsole","LogConfigParser","initializeLogger","serverConfigParser","ServerConfigParser","createORM","createORMCore","createORMOptions","commandLineArgs","loadMigrationCreate","loadMigrationUpOrCheck","loadMigrationDown"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/mikro-orm.js b/apps/api-server/dist/mikro-orm.js new file mode 100644 index 000000000..3d57fb307 --- /dev/null +++ b/apps/api-server/dist/mikro-orm.js @@ -0,0 +1,136 @@ +'use strict'; + +var utils = require('@flocon-trpg/utils'); +var mysql = require('@mikro-orm/mysql'); +var postgresql = require('@mikro-orm/postgresql'); +var sqlite = require('@mikro-orm/sqlite'); +var esToolkit = require('es-toolkit'); +var entity$4 = require('./entities/file/entity.js'); +var entity$5 = require('./entities/fileTag/entity.js'); +var entity$3 = require('./entities/participant/entity.js'); +var entity = require('./entities/room/entity.js'); +var entity$1 = require('./entities/roomMessage/entity.js'); +var entity$2 = require('./entities/user/entity.js'); + +const entities = [ + entity.Room, + entity.RoomOp, + entity$1.RoomPubMsg, + entity$1.RoomPrvMsg, + entity$1.DicePieceLog, + entity$1.StringPieceLog, + entity$1.RoomPubCh, + entity$1.RoomSe, + entity$2.User, + entity$3.Participant, + entity$4.File, + entity$5.FileTag, +]; +const migrations = ({ dirName, dbType, }) => { + return { + path: `./${dirName}/__migrations__/${dbType}`, + }; +}; +const loggerFactory = () => { + const logBase = (methodName, namespace, message, context) => { + const text = message; + if (context == null) { + utils.loggerRef[methodName]({ namespace }, text); + } + else { + utils.loggerRef[methodName]({ + context: { + ...context, + level: undefined, + }, + namespace, + }, text); + } + }; + return { + log(namespace, message, context) { + logBase('debug', namespace, message, context); + }, + error(namespace, message, context) { + logBase('error', namespace, message, context); + }, + warn(namespace, message, context) { + logBase('warn', namespace, message, context); + }, + logQuery(context) { + let methodName; + switch (context.level) { + case 'error': + methodName = 'error'; + break; + case 'info': + case undefined: + methodName = 'info'; + break; + case 'warning': + methodName = 'warn'; + break; + } + utils.loggerRef[methodName]({ + ...context, + level: undefined, + }, 'MikroORM logQuery'); + }, + setDebugMode() { + return; + }, + isEnabled() { + return true; + }, + }; +}; +const optionsBase = { + loggerFactory, + debug: true, +}; +const createSQLiteOptions = ({ sqliteConfig, dirName, }) => { + const opts = { + ...optionsBase, + entities, + dbName: sqliteConfig.dbName, + clientUrl: sqliteConfig.clientUrl, + migrations: migrations({ dbType: 'sqlite', dirName }), + driver: sqlite.SqliteDriver, + forceUndefined: true, + }; + return esToolkit.pickBy(opts, x => x !== undefined); +}; +const createPostgreSQLOptions = ({ dbName, dirName, clientUrl, driverOptions, }) => { + const opts = { + ...optionsBase, + entities, + dbName, + migrations: { + ...migrations({ dbType: 'postgresql', dirName }), + disableForeignKeys: false, + }, + driver: postgresql.PostgreSqlDriver, + forceUndefined: true, + clientUrl, + driverOptions, + }; + return esToolkit.pickBy(opts, x => x !== undefined); +}; +const createMySQLOptions = ({ dbName, dirName, clientUrl, driverOptions, }) => { + const opts = { + ...optionsBase, + entities, + dbName, + migrations: migrations({ dbType: 'mysql', dirName }), + driver: mysql.MySqlDriver, + forceUndefined: true, + clientUrl, + driverOptions, + }; + return esToolkit.pickBy(opts, x => x !== undefined); +}; + +exports.createMySQLOptions = createMySQLOptions; +exports.createPostgreSQLOptions = createPostgreSQLOptions; +exports.createSQLiteOptions = createSQLiteOptions; +//# sourceMappingURL=mikro-orm.js.map diff --git a/apps/api-server/dist/mikro-orm.js.map b/apps/api-server/dist/mikro-orm.js.map new file mode 100644 index 000000000..ada6bb3ee --- /dev/null +++ b/apps/api-server/dist/mikro-orm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mikro-orm.js","sources":["../src/mikro-orm.ts"],"sourcesContent":[null],"names":["Room","RoomOp","RoomPubMsg","RoomPrvMsg","DicePieceLog","StringPieceLog","RoomPubCh","RoomSe","User","Participant","File","FileTag","loggerRef","SqliteDriver","pickBy","PostgreSqlDriver","MySqlDriver"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/rateLimit/consume.js b/apps/api-server/dist/rateLimit/consume.js new file mode 100644 index 000000000..f580eeea3 --- /dev/null +++ b/apps/api-server/dist/rateLimit/consume.js @@ -0,0 +1,21 @@ +'use strict'; + +const createErrorMessage = (res) => { + return `Rate limit exceeded. Please wait for ${res.msBeforeNext / 1000} seconds.`; +}; +const consume = async (rateLimiter, userUid, consume) => { + if (rateLimiter == null) { + return undefined; + } + const errorRes = await rateLimiter + .consume(userUid, consume) + .then(() => null) + .catch((res) => res); + if (errorRes == null) { + return undefined; + } + return { errorMessage: createErrorMessage(errorRes) }; +}; + +exports.consume = consume; +//# sourceMappingURL=consume.js.map diff --git a/apps/api-server/dist/rateLimit/consume.js.map b/apps/api-server/dist/rateLimit/consume.js.map new file mode 100644 index 000000000..9bc932feb --- /dev/null +++ b/apps/api-server/dist/rateLimit/consume.js.map @@ -0,0 +1 @@ +{"version":3,"file":"consume.js","sources":["../../src/rateLimit/consume.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,kBAAkB,GAAG,CAAC,GAAmB,KAAY;AACvD,IAAA,OAAO,wCAAwC,GAAG,CAAC,YAAY,GAAG,IAAI,WAAW;AACrF,CAAC;AAEM,MAAM,OAAO,GAAG,OACnB,WAAuC,EACvC,OAAe,EACf,OAAe,KACf;AACA,IAAA,IAAI,WAAW,IAAI,IAAI,EAAE;AACrB,QAAA,OAAO,SAAS;;IAEpB,MAAM,QAAQ,GAAG,MAAM;AAClB,SAAA,OAAO,CAAC,OAAO,EAAE,OAAO;AACxB,SAAA,IAAI,CAAC,MAAM,IAAI;SACf,KAAK,CAAC,CAAC,GAAmB,KAAK,GAAG,CAAC;AACxC,IAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAClB,QAAA,OAAO,SAAS;;IAEpB,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE;AACzD;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/run-bcryptInteractive.js b/apps/api-server/dist/run-bcryptInteractive.js new file mode 100644 index 000000000..532ebd549 --- /dev/null +++ b/apps/api-server/dist/run-bcryptInteractive.js @@ -0,0 +1,108 @@ +'use strict'; + +var fs = require('fs'); +var promises = require('fs/promises'); +var bcrypt = require('bcrypt'); +var inquirer = require('inquirer'); + +const ja = 'ja'; +const en = 'en'; +const filename = 'bcrypt-hash.txt'; +const startApp = async () => { + console.info('To exit without saving to a file, press Ctrl+C. / ファイルに保存せず途中で終了する場合は Ctrl+C を押してください。'); + let lang; + { + const name = 'name'; + const p = await inquirer.prompt([ + { + type: 'list', + name, + message: 'Choose your language', + choices: [ + { name: 'English', value: en }, + { name: 'Japanese', value: ja }, + ], + }, + ]); + const result = p[name]; + switch (result) { + case en: + lang = result; + break; + case ja: + lang = result; + break; + default: + throw new Error('this should not happen'); + } + } + const fileExists = fs.existsSync(filename); + if (fileExists) { + let message; + switch (lang) { + case en: + message = `\`${filename}\` already exists. Overwrite?`; + break; + case ja: + message = `\`${filename}\` はすでに存在します。上書きしますか?`; + break; + } + const name = 'overwriteConfirm'; + const result = await inquirer.prompt([ + { + type: 'confirm', + name, + message, + default: false, + }, + ]); + if (result[name] !== true) { + return; + } + } + let hash; + { + let message; + switch (lang) { + case en: + message = `Enter password to generate hash`; + break; + case ja: + message = `ハッシュを生成するパスワードを入力してください`; + break; + } + const name = 'password'; + const result = await inquirer.prompt([ + { + type: 'password', + name, + message, + mask: '*', + }, + ]); + const password = result[name]; + const rounds = 10; + hash = await bcrypt.hash(password, rounds); + } + { + switch (lang) { + case ja: + console.info(`\`${filename}\` への書き込みを開始します…`); + break; + case en: + console.info(`Started writing to \`${filename}\`...`); + break; + } + await promises.writeFile(filename, hash); + switch (lang) { + case ja: + console.info('書き込みが成功しました'); + break; + case en: + console.info('Successfully finished'); + break; + } + } +}; +startApp().catch(err => console.error(err)); +//# sourceMappingURL=run-bcryptInteractive.js.map diff --git a/apps/api-server/dist/run-bcryptInteractive.js.map b/apps/api-server/dist/run-bcryptInteractive.js.map new file mode 100644 index 000000000..a253c2b02 --- /dev/null +++ b/apps/api-server/dist/run-bcryptInteractive.js.map @@ -0,0 +1 @@ +{"version":3,"file":"run-bcryptInteractive.js","sources":["../src/run-bcryptInteractive.ts"],"sourcesContent":[null],"names":["prompt","existsSync","writeFile"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/run-buildSchemaSync.js b/apps/api-server/dist/run-buildSchemaSync.js new file mode 100644 index 000000000..7634adcbb --- /dev/null +++ b/apps/api-server/dist/run-buildSchemaSync.js @@ -0,0 +1,10 @@ +'use strict'; + +require('reflect-metadata'); +var buildSchema = require('./buildSchema.js'); +var registerEnumTypes = require('./graphql/registerEnumTypes.js'); + +console.log('building GraphQL schema...'); +registerEnumTypes.registerEnumTypes(); +buildSchema.buildSchemaSync(buildSchema.noAuthCheck)({ emitSchemaFile: true }); +//# sourceMappingURL=run-buildSchemaSync.js.map diff --git a/apps/api-server/dist/run-buildSchemaSync.js.map b/apps/api-server/dist/run-buildSchemaSync.js.map new file mode 100644 index 000000000..ff07e1d15 --- /dev/null +++ b/apps/api-server/dist/run-buildSchemaSync.js.map @@ -0,0 +1 @@ +{"version":3,"file":"run-buildSchemaSync.js","sources":["../src/run-buildSchemaSync.ts"],"sourcesContent":[null],"names":["registerEnumTypes","buildSchemaSync","noAuthCheck"],"mappings":";;;;;;AAKA,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;AAEzCA,mCAAiB,EAAE;AACnBC,2BAAe,CAACC,uBAAW,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/run-generateFlyioDockerfile.js b/apps/api-server/dist/run-generateFlyioDockerfile.js new file mode 100644 index 000000000..99e667b3e --- /dev/null +++ b/apps/api-server/dist/run-generateFlyioDockerfile.js @@ -0,0 +1,12 @@ +'use strict'; + +var fs = require('fs-extra'); +var VERSION = require('./VERSION.js'); + +const main = () => { + const version = VERSION.VERSION.toString(); + const text = `FROM kizahasi/flocon-api-swap256mb:v${version}`; + fs.writeFileSync('./flyio.Dockerfile', text); +}; +main(); +//# sourceMappingURL=run-generateFlyioDockerfile.js.map diff --git a/apps/api-server/dist/run-generateFlyioDockerfile.js.map b/apps/api-server/dist/run-generateFlyioDockerfile.js.map new file mode 100644 index 000000000..ad9309b12 --- /dev/null +++ b/apps/api-server/dist/run-generateFlyioDockerfile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"run-generateFlyioDockerfile.js","sources":["../src/run-generateFlyioDockerfile.ts"],"sourcesContent":[null],"names":["VERSION"],"mappings":";;;;;AAGA,MAAM,IAAI,GAAG,MAAW;AACpB,IAAA,MAAM,OAAO,GAAGA,eAAO,CAAC,QAAQ,EAAE;AAClC,IAAA,MAAM,IAAI,GAAG,CAAuC,oCAAA,EAAA,OAAO,EAAE;AAC7D,IAAA,EAAE,CAAC,aAAa,CAAC,oBAAoB,EAAE,IAAI,CAAC;AAChD,CAAC;AAED,IAAI,EAAE;;"} \ No newline at end of file diff --git a/apps/api-server/dist/run-migrationCheck.js b/apps/api-server/dist/run-migrationCheck.js new file mode 100644 index 000000000..8580deca4 --- /dev/null +++ b/apps/api-server/dist/run-migrationCheck.js @@ -0,0 +1,14 @@ +'use strict'; + +var migrate = require('./migrate.js'); +var appConsole = require('./utils/appConsole.js'); + +migrate.migrateByNpmScript('check').catch((err) => { + appConsole.AppConsole.fatal({ + en: 'migration-check failed. ', + ja: 'マイグレーションのチェックに失敗しました。', + errorObject: err, + }); + process.exit(1); +}); +//# sourceMappingURL=run-migrationCheck.js.map diff --git a/apps/api-server/dist/run-migrationCheck.js.map b/apps/api-server/dist/run-migrationCheck.js.map new file mode 100644 index 000000000..414949f0f --- /dev/null +++ b/apps/api-server/dist/run-migrationCheck.js.map @@ -0,0 +1 @@ +{"version":3,"file":"run-migrationCheck.js","sources":["../src/run-migrationCheck.ts"],"sourcesContent":[null],"names":["migrateByNpmScript","AppConsole"],"mappings":";;;;;AAGAA,0BAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,KAAI;IAC7CC,qBAAU,CAAC,KAAK,CAAC;AACb,QAAA,EAAE,EAAE,0BAA0B;AAC9B,QAAA,EAAE,EAAE,uBAAuB;AAC3B,QAAA,WAAW,EAAE,GAAG;AACnB,KAAA,CAAC;AACF,IAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/run-migrationCreate.js b/apps/api-server/dist/run-migrationCreate.js new file mode 100644 index 000000000..c87c447f7 --- /dev/null +++ b/apps/api-server/dist/run-migrationCreate.js @@ -0,0 +1,19 @@ +'use strict'; + +var migrate = require('./migrate.js'); +var appConsole = require('./utils/appConsole.js'); +var commandLineArgs = require('./utils/commandLineArgs.js'); + +const main = async () => { + const commandLineArgs$1 = await commandLineArgs.loadMigrationCreate(); + migrate.migrateByNpmScript(commandLineArgs$1.init ? 'create-initial' : 'create').catch((err) => { + appConsole.AppConsole.fatal({ + en: 'migration failed. ', + ja: 'マイグレーションに失敗しました。', + errorObject: err, + }); + process.exit(1); + }); +}; +void main(); +//# sourceMappingURL=run-migrationCreate.js.map diff --git a/apps/api-server/dist/run-migrationCreate.js.map b/apps/api-server/dist/run-migrationCreate.js.map new file mode 100644 index 000000000..47ee55219 --- /dev/null +++ b/apps/api-server/dist/run-migrationCreate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"run-migrationCreate.js","sources":["../src/run-migrationCreate.ts"],"sourcesContent":[null],"names":["commandLineArgs","loadMigrationCreate","migrateByNpmScript","AppConsole"],"mappings":";;;;;;AAIA,MAAM,IAAI,GAAG,YAAW;AACpB,IAAA,MAAMA,iBAAe,GAAG,MAAMC,mCAAmB,EAAE;AAEnD,IAAAC,0BAAkB,CAACF,iBAAe,CAAC,IAAI,GAAG,gBAAgB,GAAG,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,KAAI;QACxFG,qBAAU,CAAC,KAAK,CAAC;AACb,YAAA,EAAE,EAAE,oBAAoB;AACxB,YAAA,EAAE,EAAE,kBAAkB;AACtB,YAAA,WAAW,EAAE,GAAG;AACnB,SAAA,CAAC;AACF,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,KAAC,CAAC;AACN,CAAC;AAED,KAAK,IAAI,EAAE;;"} \ No newline at end of file diff --git a/apps/api-server/dist/run-migrationDown.js b/apps/api-server/dist/run-migrationDown.js new file mode 100644 index 000000000..155b84fc2 --- /dev/null +++ b/apps/api-server/dist/run-migrationDown.js @@ -0,0 +1,13 @@ +'use strict'; + +var migrate = require('./migrate.js'); +var appConsole = require('./utils/appConsole.js'); + +migrate.migrateByNpmScript('down').catch((err) => { + appConsole.AppConsole.fatal({ + en: 'migration-down failed. ', + errorObject: err, + }); + process.exit(1); +}); +//# sourceMappingURL=run-migrationDown.js.map diff --git a/apps/api-server/dist/run-migrationDown.js.map b/apps/api-server/dist/run-migrationDown.js.map new file mode 100644 index 000000000..60fddde67 --- /dev/null +++ b/apps/api-server/dist/run-migrationDown.js.map @@ -0,0 +1 @@ +{"version":3,"file":"run-migrationDown.js","sources":["../src/run-migrationDown.ts"],"sourcesContent":[null],"names":["migrateByNpmScript","AppConsole"],"mappings":";;;;;AAGAA,0BAAkB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,KAAI;IAC5CC,qBAAU,CAAC,KAAK,CAAC;AACb,QAAA,EAAE,EAAE,yBAAyB;AAC7B,QAAA,WAAW,EAAE,GAAG;AACnB,KAAA,CAAC;AACF,IAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/run-migrationUp.js b/apps/api-server/dist/run-migrationUp.js new file mode 100644 index 000000000..2a17c147b --- /dev/null +++ b/apps/api-server/dist/run-migrationUp.js @@ -0,0 +1,14 @@ +'use strict'; + +var migrate = require('./migrate.js'); +var appConsole = require('./utils/appConsole.js'); + +migrate.migrateByNpmScript('up').catch((err) => { + appConsole.AppConsole.error({ + en: '❌ migration failed. ', + ja: '❌ マイグレーションに失敗しました。', + errorObject: err, + }); + process.exit(1); +}); +//# sourceMappingURL=run-migrationUp.js.map diff --git a/apps/api-server/dist/run-migrationUp.js.map b/apps/api-server/dist/run-migrationUp.js.map new file mode 100644 index 000000000..1e4e307ac --- /dev/null +++ b/apps/api-server/dist/run-migrationUp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"run-migrationUp.js","sources":["../src/run-migrationUp.ts"],"sourcesContent":[null],"names":["migrateByNpmScript","AppConsole"],"mappings":";;;;;AAGAA,0BAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,KAAI;IAC1CC,qBAAU,CAAC,KAAK,CAAC;AACb,QAAA,EAAE,EAAE,sBAAsB;AAC1B,QAAA,EAAE,EAAE,oBAAoB;AACxB,QAAA,WAAW,EAAE,GAAG;AACnB,KAAA,CAAC;AACF,IAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;;"} \ No newline at end of file diff --git a/apps/api-server/dist/utils/appConsole.js b/apps/api-server/dist/utils/appConsole.js new file mode 100644 index 000000000..6d5698740 --- /dev/null +++ b/apps/api-server/dist/utils/appConsole.js @@ -0,0 +1,42 @@ +'use strict'; + +var utils = require('@flocon-trpg/utils'); + +exports.AppConsole = void 0; +(function (AppConsole) { + AppConsole.messageToString = (source) => { + const icon = source.icon == null ? '' : `${source.icon} `; + if (source.ja == null) { + return `${icon}${source.en}`; + } + return `${icon}${source.en} / ${icon}${source.ja}`; + }; + const logCore = (consoleMethodName, message) => { + const messageStr = AppConsole.messageToString(message); + if (message.errorObject == null) { + utils.loggerRef[consoleMethodName](messageStr); + } + else { + utils.loggerRef[consoleMethodName](message.errorObject, messageStr); + } + }; + AppConsole.info = (message) => { + logCore('info', message); + }; + AppConsole.infoAsNotice = (message) => { + utils.loggerRef.infoAsNotice(AppConsole.messageToString(message)); + }; + AppConsole.infoAsNoticeJa = (message) => { + utils.loggerRef.infoAsNotice(message); + }; + AppConsole.warn = (message) => { + logCore('warn', message); + }; + AppConsole.error = (message) => { + logCore('error', message); + }; + AppConsole.fatal = (message) => { + logCore('fatal', message); + }; +})(exports.AppConsole || (exports.AppConsole = {})); +//# sourceMappingURL=appConsole.js.map diff --git a/apps/api-server/dist/utils/appConsole.js.map b/apps/api-server/dist/utils/appConsole.js.map new file mode 100644 index 000000000..805740fa3 --- /dev/null +++ b/apps/api-server/dist/utils/appConsole.js.map @@ -0,0 +1 @@ +{"version":3,"file":"appConsole.js","sources":["../../src/utils/appConsole.ts"],"sourcesContent":[null],"names":["AppConsole","loggerRef"],"mappings":";;;;AAEiBA;AAAjB,CAAA,UAAiB,UAAU,EAAA;AAQV,IAAA,UAAA,CAAA,eAAe,GAAG,CAAC,MAAe,KAAY;AACvD,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,CAAA,EAAG,MAAM,CAAC,IAAI,GAAG;AACzD,QAAA,IAAI,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE;AACnB,YAAA,OAAO,GAAG,IAAI,CAAA,EAAG,MAAM,CAAC,EAAE,EAAE;;AAEhC,QAAA,OAAO,CAAG,EAAA,IAAI,CAAG,EAAA,MAAM,CAAC,EAAE,CAAM,GAAA,EAAA,IAAI,CAAG,EAAA,MAAM,CAAC,EAAE,EAAE;AACtD,KAAC;AAED,IAAA,MAAM,OAAO,GAAG,CACZ,iBAAsD,EACtD,OAAgB,KACV;AACN,QAAA,MAAM,UAAU,GAAG,UAAA,CAAA,eAAe,CAAC,OAAO,CAAC;AAC3C,QAAA,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE;AAC7B,YAAAC,eAAS,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC;;aACrC;YACHA,eAAS,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC;;AAErE,KAAC;AAEY,IAAA,UAAA,CAAA,IAAI,GAAG,CAAC,OAAgB,KAAU;AAC3C,QAAA,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;AAC5B,KAAC;AAEY,IAAA,UAAA,CAAA,YAAY,GAAG,CAAC,OAAqC,KAAU;QACxEA,eAAS,CAAC,YAAY,CAAC,UAAA,CAAA,eAAe,CAAC,OAAO,CAAC,CAAC;AACpD,KAAC;AAEY,IAAA,UAAA,CAAA,cAAc,GAAG,CAAC,OAAe,KAAU;AACpD,QAAAA,eAAS,CAAC,YAAY,CAAC,OAAO,CAAC;AACnC,KAAC;AAEY,IAAA,UAAA,CAAA,IAAI,GAAG,CAAC,OAAgB,KAAU;AAC3C,QAAA,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;AAC5B,KAAC;AAEY,IAAA,UAAA,CAAA,KAAK,GAAG,CAAC,OAAgB,KAAU;AAC5C,QAAA,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;AAC7B,KAAC;AAEY,IAAA,UAAA,CAAA,KAAK,GAAG,CAAC,OAAgB,KAAU;AAC5C,QAAA,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;AAC7B,KAAC;AACL,CAAC,EAnDgBD,kBAAU,KAAVA,kBAAU,GAmD1B,EAAA,CAAA,CAAA;;"} \ No newline at end of file diff --git a/apps/api-server/dist/utils/commandLineArgs.js b/apps/api-server/dist/utils/commandLineArgs.js new file mode 100644 index 000000000..8e29096fb --- /dev/null +++ b/apps/api-server/dist/utils/commandLineArgs.js @@ -0,0 +1,127 @@ +'use strict'; + +var yargs = require('yargs'); +var VERSION = require('../VERSION.js'); + +const auto = 'auto'; +const mysql = 'mysql'; +const postgresql = 'postgresql'; +const sqlite = 'sqlite'; +const allDbOrAutoTypes = [auto, mysql, postgresql, sqlite]; +const toDbType = (source) => { + switch (source) { + case mysql: + return mysql; + case postgresql: + return postgresql; + case sqlite: + return sqlite; + case auto: + return null; + default: + throw new Error(`"${source}" is an unrecognized value.`); + } +}; +const getMain = async () => { + const options = await yargs(process.argv.slice(2)) + .option('db', { + type: 'string', + nargs: 1, + choices: allDbOrAutoTypes, + default: auto, + }) + .option('debug', { type: 'boolean' }) + .version(VERSION.VERSION.toString()).argv; + const result = { + debug: options.debug === true, + db: toDbType(options.db), + }; + return result; +}; +let mainCache = null; +const loadAsMain = async () => { + if (mainCache == null) { + mainCache = await getMain(); + } + return mainCache; +}; +const getMigrationUp = async () => { + const options = await yargs(process.argv.slice(2)).option('db', { + type: 'string', + nargs: 1, + choices: allDbOrAutoTypes, + default: auto, + }).argv; + return { + db: toDbType(options.db), + }; +}; +let migrationUpCache = null; +const loadMigrationUpOrCheck = async () => { + if (migrationUpCache == null) { + migrationUpCache = await getMigrationUp(); + } + return migrationUpCache; +}; +const getMigrationDown = async () => { + const options = await yargs(process.argv.slice(2)) + .option('db', { + type: 'string', + nargs: 1, + choices: allDbOrAutoTypes, + default: auto, + }) + .option('count', { + type: 'number', + demandOption: true, + nargs: 1, + }).argv; + const countOption = options.count; + let count; + if (typeof countOption === 'number') { + count = countOption; + } + else { + throw new Error('This should not happen'); + } + return { + db: toDbType(options.db), + count, + }; +}; +let migrationDownCache = null; +const loadMigrationDown = async () => { + if (migrationDownCache == null) { + migrationDownCache = await getMigrationDown(); + } + return migrationDownCache; +}; +const getMigrationCreate = async () => { + const options = await yargs(process.argv.slice(2)) + .option('db', { + type: 'string', + nargs: 1, + choices: allDbOrAutoTypes, + default: auto, + }) + .option('init', { + type: 'boolean', + }).argv; + return { + db: toDbType(options.db), + init: options.init === true, + }; +}; +let migrationCreateCache = null; +const loadMigrationCreate = async () => { + if (migrationCreateCache == null) { + migrationCreateCache = await getMigrationCreate(); + } + return migrationCreateCache; +}; + +exports.loadAsMain = loadAsMain; +exports.loadMigrationCreate = loadMigrationCreate; +exports.loadMigrationDown = loadMigrationDown; +exports.loadMigrationUpOrCheck = loadMigrationUpOrCheck; +//# sourceMappingURL=commandLineArgs.js.map diff --git a/apps/api-server/dist/utils/commandLineArgs.js.map b/apps/api-server/dist/utils/commandLineArgs.js.map new file mode 100644 index 000000000..cfe28ff95 --- /dev/null +++ b/apps/api-server/dist/utils/commandLineArgs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"commandLineArgs.js","sources":["../../src/utils/commandLineArgs.ts"],"sourcesContent":[null],"names":["VERSION"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/utils/convertToMaxLength100String.js b/apps/api-server/dist/utils/convertToMaxLength100String.js new file mode 100644 index 000000000..7974314a5 --- /dev/null +++ b/apps/api-server/dist/utils/convertToMaxLength100String.js @@ -0,0 +1,15 @@ +'use strict'; + +var FilePathModule = require('@flocon-trpg/core'); + +const convertToMaxLength100String = (source) => { + const parsed = FilePathModule.maxLength100String.safeParse(source); + if (parsed.success) { + return parsed.data; + } + const sourceLengthIs100 = source.slice(0, 100); + return FilePathModule.maxLength100String.parse(sourceLengthIs100); +}; + +exports.convertToMaxLength100String = convertToMaxLength100String; +//# sourceMappingURL=convertToMaxLength100String.js.map diff --git a/apps/api-server/dist/utils/convertToMaxLength100String.js.map b/apps/api-server/dist/utils/convertToMaxLength100String.js.map new file mode 100644 index 000000000..104db3d9f --- /dev/null +++ b/apps/api-server/dist/utils/convertToMaxLength100String.js.map @@ -0,0 +1 @@ +{"version":3,"file":"convertToMaxLength100String.js","sources":["../../src/utils/convertToMaxLength100String.ts"],"sourcesContent":[null],"names":["maxLength100String"],"mappings":";;;;AAEa,MAAA,2BAA2B,GAAG,CAAC,MAAc,KAAwB;IAC9E,MAAM,MAAM,GAAGA,iCAAkB,CAAC,SAAS,CAAC,MAAM,CAAC;AACnD,IAAA,IAAI,MAAM,CAAC,OAAO,EAAE;QAChB,OAAO,MAAM,CAAC,IAAI;;IAEtB,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;AAC9C,IAAA,OAAOA,iCAAkB,CAAC,KAAK,CAAC,iBAAiB,CAAC;AACtD;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/utils/easyFlake.js b/apps/api-server/dist/utils/easyFlake.js new file mode 100644 index 000000000..5405e2eb2 --- /dev/null +++ b/apps/api-server/dist/utils/easyFlake.js @@ -0,0 +1,10 @@ +'use strict'; + +var uuid = require('uuid'); + +const easyFlake = () => { + return `${new Date().getTime()}_${uuid.v4()}`; +}; + +exports.easyFlake = easyFlake; +//# sourceMappingURL=easyFlake.js.map diff --git a/apps/api-server/dist/utils/easyFlake.js.map b/apps/api-server/dist/utils/easyFlake.js.map new file mode 100644 index 000000000..203248729 --- /dev/null +++ b/apps/api-server/dist/utils/easyFlake.js.map @@ -0,0 +1 @@ +{"version":3,"file":"easyFlake.js","sources":["../../src/utils/easyFlake.ts"],"sourcesContent":[null],"names":["v4"],"mappings":";;;;AAKO,MAAM,SAAS,GAAG,MAAK;IAC1B,OAAO,CAAA,EAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAI,CAAA,EAAAA,OAAE,EAAE,CAAA,CAAE;AAC5C;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/utils/migrations.js b/apps/api-server/dist/utils/migrations.js new file mode 100644 index 000000000..71e54a03a --- /dev/null +++ b/apps/api-server/dist/utils/migrations.js @@ -0,0 +1,13 @@ +'use strict'; + +const alterColumnToText = ({ tableName, columnName, self, }) => { + self.addSql(`alter table \`${tableName}\` add column \`${columnName}_temp\` text null default null;`); + self.addSql(`update \`${tableName}\` set \`${columnName}_temp\` = \`${columnName}\`;`); + self.addSql(`alter table \`${tableName}\` drop column \`${columnName}\`;`); + self.addSql(`alter table \`${tableName}\` add column \`${columnName}\` text null default null;`); + self.addSql(`update \`${tableName}\` set \`${columnName}\` = \`${columnName}_temp\`;`); + self.addSql(`alter table \`${tableName}\` drop column \`${columnName}_temp\`;`); +}; + +exports.alterColumnToText = alterColumnToText; +//# sourceMappingURL=migrations.js.map diff --git a/apps/api-server/dist/utils/migrations.js.map b/apps/api-server/dist/utils/migrations.js.map new file mode 100644 index 000000000..d8b6a8073 --- /dev/null +++ b/apps/api-server/dist/utils/migrations.js.map @@ -0,0 +1 @@ +{"version":3,"file":"migrations.js","sources":["../../src/utils/migrations.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIO,MAAM,iBAAiB,GAAG,CAAC,EAC9B,SAAS,EACT,UAAU,EACV,IAAI,GAKP,KAAI;IACD,IAAI,CAAC,MAAM,CACP,CAAA,cAAA,EAAiB,SAAS,CAAmB,gBAAA,EAAA,UAAU,CAAiC,+BAAA,CAAA,CAC3F;IACD,IAAI,CAAC,MAAM,CAAC,CAAY,SAAA,EAAA,SAAS,CAAY,SAAA,EAAA,UAAU,CAAe,YAAA,EAAA,UAAU,CAAK,GAAA,CAAA,CAAC;IACtF,IAAI,CAAC,MAAM,CAAC,CAAA,cAAA,EAAiB,SAAS,CAAoB,iBAAA,EAAA,UAAU,CAAK,GAAA,CAAA,CAAC;IAC1E,IAAI,CAAC,MAAM,CACP,CAAA,cAAA,EAAiB,SAAS,CAAmB,gBAAA,EAAA,UAAU,CAA4B,0BAAA,CAAA,CACtF;IACD,IAAI,CAAC,MAAM,CAAC,CAAY,SAAA,EAAA,SAAS,CAAY,SAAA,EAAA,UAAU,CAAU,OAAA,EAAA,UAAU,CAAU,QAAA,CAAA,CAAC;IACtF,IAAI,CAAC,MAAM,CAAC,CAAA,cAAA,EAAiB,SAAS,CAAoB,iBAAA,EAAA,UAAU,CAAU,QAAA,CAAA,CAAC;AACnF;;;;"} \ No newline at end of file diff --git a/apps/api-server/dist/utils/promiseQueue.js b/apps/api-server/dist/utils/promiseQueue.js new file mode 100644 index 000000000..a4e1d2357 --- /dev/null +++ b/apps/api-server/dist/utils/promiseQueue.js @@ -0,0 +1,119 @@ +'use strict'; + +var Rx = require('rxjs'); +var uuid = require('uuid'); + +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n.default = e; + return Object.freeze(n); +} + +var Rx__namespace = /*#__PURE__*/_interopNamespaceDefault(Rx); + +const executed = 'executed'; +const timeout = 'timeout'; +const queueLimitReached = 'queueLimitReached'; +class PromiseQueue { + constructor({ queueLimit }) { + this._promises = new Rx.Subject(); + this._pendingPromises = new Set(); + this._queueLimit = queueLimit ?? null; + this._result = this._promises.pipe(Rx__namespace.map(({ id, execute, timeout }) => { + const rawObservable = new Rx.Observable(observer => { + execute() + .then(result => observer.next({ + id, + result: { type: executed, value: result, isError: false }, + })) + .catch(reason => observer.next({ + id, + result: { type: executed, value: reason, isError: true }, + })) + .finally(() => { + this._pendingPromises.delete(id); + observer.complete(); + }); + }); + if (timeout == null) { + return rawObservable; + } + const timeoutValue = { + id, + result: { type: 'timeout' }, + }; + return rawObservable.pipe(Rx__namespace.timeout({ + each: timeout, + with: () => Rx.defer(() => { + this._pendingPromises.delete(id); + return Rx.of(timeoutValue); + }), + })); + }), Rx__namespace.concatAll(), Rx__namespace.share()); + this._result.subscribe({ + next: () => undefined, + error: reason => { + throw reason; + }, + complete: () => { + throw new Error('PromiseQueue observable completed for an unknown reason.'); + }, + }); + } + nextCore(execute, timeout) { + if (this._queueLimit != null && this._queueLimit <= this._pendingPromises.size) { + return Promise.resolve({ type: queueLimitReached }); + } + const id = uuid.v4(); + this._pendingPromises.add(id); + const result = new Promise((resolver, reject) => { + this._result.pipe(Rx__namespace.first(x => x.id === id)).subscribe({ + next: r => { + switch (r.result.type) { + case executed: + if (r.result.isError) { + reject(r.result.value); + return; + } + resolver({ type: executed, value: r.result.value }); + return; + case 'timeout': + resolver({ type: 'timeout' }); + return; + } + }, + error: () => reject(new Error('PromiseQueue observable has thrown an error for an unknown reason.')), + complete: () => reject(new Error('PromiseQueue observable has completed for an unknown reason.')), + }); + }); + this._promises.next({ id, execute, timeout }); + return result; + } + nextWithTimeout(execute, timeout) { + return this.nextCore(execute, timeout); + } + async next(execute) { + const result = await this.nextCore(execute, undefined); + if (result.type === timeout) { + throw new Error('not expected timeout. ObjectId collision?'); + } + return result; + } +} + +exports.PromiseQueue = PromiseQueue; +exports.executed = executed; +exports.queueLimitReached = queueLimitReached; +exports.timeout = timeout; +//# sourceMappingURL=promiseQueue.js.map diff --git a/apps/api-server/dist/utils/promiseQueue.js.map b/apps/api-server/dist/utils/promiseQueue.js.map new file mode 100644 index 000000000..52dd7a962 --- /dev/null +++ b/apps/api-server/dist/utils/promiseQueue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"promiseQueue.js","sources":["../../src/utils/promiseQueue.ts"],"sourcesContent":[null],"names":["Subject","Rx","Observable","defer","of","v4"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/utils/roles.js b/apps/api-server/dist/utils/roles.js new file mode 100644 index 000000000..70c0a6a0d --- /dev/null +++ b/apps/api-server/dist/utils/roles.js @@ -0,0 +1,79 @@ +'use strict'; + +var tslib = require('tslib'); +var getUserIfEntry = require('../entities/user/getUserIfEntry.js'); +var BaasType = require('../enums/BaasType.js'); +var utils = require('../graphql/resolvers/utils/utils.js'); + +var _Roles_roles; +const ADMIN = 'ADMIN'; +const ENTRY = 'ENTRY'; +class Roles { + constructor(params) { + _Roles_roles.set(this, void 0); + const roles = new Set(params.roles); + if (params.isEntry === true) { + roles.add(ENTRY); + } + tslib.__classPrivateFieldSet(this, _Roles_roles, roles, "f"); + } + isPermitted(roles) { + if (roles.includes(ADMIN)) { + return tslib.__classPrivateFieldGet(this, _Roles_roles, "f").has(ADMIN); + } + if (roles.includes(ENTRY)) { + return tslib.__classPrivateFieldGet(this, _Roles_roles, "f").has(ENTRY); + } + return true; + } + get value() { + return tslib.__classPrivateFieldGet(this, _Roles_roles, "f"); + } +} +_Roles_roles = new WeakMap(); +const getRolesCore = ({ context, serverConfig, }) => { + const roles = new Set(); + const decodedIdToken = utils.checkSignIn(context); + if (decodedIdToken === utils.NotSignIn) { + return utils.NotSignIn; + } + const adminUserUids = (serverConfig ?? context.serverConfig).admins; + if (adminUserUids.includes(decodedIdToken.uid)) { + roles.add(ADMIN); + } + return { roles, decodedIdToken }; +}; +const getRoles = (params) => { + const result = getRolesCore(params); + if (result === utils.NotSignIn) { + return utils.NotSignIn; + } + return new Roles({ roles: result.roles, isEntry: params.isEntry }); +}; +const getRolesAndCheckEntry = async ({ context, serverConfig, setAuthorizedUserToResolverContext, }) => { + const rolesCoreResult = getRolesCore({ context, serverConfig }); + if (rolesCoreResult === utils.NotSignIn) { + return utils.NotSignIn; + } + const result = rolesCoreResult.roles; + const user = await getUserIfEntry.getUserIfEntry({ + em: context.em, + userUid: rolesCoreResult.decodedIdToken.uid, + baasType: BaasType.BaasType.Firebase, + serverConfig: serverConfig ?? context.serverConfig, + }); + if (user == null) { + return new Roles({ roles: result }); + } + result.add(ENTRY); + if (setAuthorizedUserToResolverContext) { + context.authorizedUser = user; + } + return new Roles({ roles: result }); +}; + +exports.ADMIN = ADMIN; +exports.ENTRY = ENTRY; +exports.getRoles = getRoles; +exports.getRolesAndCheckEntry = getRolesAndCheckEntry; +//# sourceMappingURL=roles.js.map diff --git a/apps/api-server/dist/utils/roles.js.map b/apps/api-server/dist/utils/roles.js.map new file mode 100644 index 000000000..911b25c7e --- /dev/null +++ b/apps/api-server/dist/utils/roles.js.map @@ -0,0 +1 @@ +{"version":3,"file":"roles.js","sources":["../../src/utils/roles.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","checkSignIn","NotSignIn","getUserIfEntry","BaasType"],"mappings":"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"} \ No newline at end of file diff --git a/apps/api-server/dist/utils/thumbsDir.js b/apps/api-server/dist/utils/thumbsDir.js new file mode 100644 index 000000000..274aea58f --- /dev/null +++ b/apps/api-server/dist/utils/thumbsDir.js @@ -0,0 +1,6 @@ +'use strict'; + +const thumbsDir = 'thumbs'; + +exports.thumbsDir = thumbsDir; +//# sourceMappingURL=thumbsDir.js.map diff --git a/apps/api-server/dist/utils/thumbsDir.js.map b/apps/api-server/dist/utils/thumbsDir.js.map new file mode 100644 index 000000000..8e71cbe2e --- /dev/null +++ b/apps/api-server/dist/utils/thumbsDir.js.map @@ -0,0 +1 @@ +{"version":3,"file":"thumbsDir.js","sources":["../../src/utils/thumbsDir.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAO,MAAM,SAAS,GAAG;;;;"} \ No newline at end of file diff --git a/packages/cache/dist/cjs/index.d.ts b/packages/cache/dist/cjs/index.d.ts new file mode 100644 index 000000000..d9c8fd5ab --- /dev/null +++ b/packages/cache/dist/cjs/index.d.ts @@ -0,0 +1,2 @@ +export { Cache, createNodeCache, createRedisCache } from './main'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cache/dist/cjs/index.d.ts.map b/packages/cache/dist/cjs/index.d.ts.map new file mode 100644 index 000000000..1ab86c882 --- /dev/null +++ b/packages/cache/dist/cjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC"} \ No newline at end of file diff --git a/packages/cache/dist/cjs/index.js b/packages/cache/dist/cjs/index.js new file mode 100644 index 000000000..fa7987dc7 --- /dev/null +++ b/packages/cache/dist/cjs/index.js @@ -0,0 +1,129 @@ +'use strict'; + +var utils = require('@flocon-trpg/utils'); +var NodeCacheCore = require('node-cache'); + +function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } + +var NodeCacheCore__default = /*#__PURE__*/_interopDefault(NodeCacheCore); + +const stringToNumber = (source) => { + return parseFloat(source); +}; +class NodeCache { + cache; + constructor(config) { + this.cache = new NodeCacheCore__default.default(config); + } + async getAsString(key) { + const result = await this.cache.get(key); + if (result == null) { + return null; + } + // redisの挙動に近づけるため、numberはstringとなるべく同一視している + return result.toString(); + } + async getAsNumber(key) { + const result = await this.cache.get(key); + if (result == null) { + return null; + } + if (typeof result === 'number') { + return result; + } + // redisの挙動に近づけるため、こちらでもstringToNumberを用いて変換している + return stringToNumber(result); + } + async set(key, value) { + return this.cache.set(key, value); + } + // redisの値はすべてstringであり、INCRは整数のみに実行可能(小数には実行不可)なので、それをなるべく再現している + async incrby(key, increment) { + if (!Number.isInteger(increment)) { + throw new Error('not an integer'); + } + const value = this.cache.get(key); + if (value == null) { + this.cache.set(key, increment); + return increment; + } + let valueAsInt = null; + if (typeof value === 'string') { + valueAsInt = utils.filterInt(value); + } + else if (typeof value === 'number') { + if (Number.isInteger(value)) { + valueAsInt = value; + } + } + if (valueAsInt == null) { + throw new Error('not an integer'); + } + const newValue = valueAsInt + increment; + this.cache.set(key, newValue); + return newValue; + } + async decrby(key, decrement) { + return this.incrby(key, -decrement); + } + async del(key) { + return this.cache.del(key) !== 0; + } + async keys() { + return this.cache.keys(); + } +} +class RedisCache { + redis; + config; + constructor(redis, config) { + this.redis = redis; + this.config = config; + } + key(keyArg) { + return `${this.config.keyPrefix}:${keyArg}`; + } + async getAsString(key) { + return await this.redis.get(this.key(key)); + } + async getAsNumber(key) { + const valueAsString = await this.getAsString(key); + if (valueAsString == null) { + return valueAsString; + } + return stringToNumber(valueAsString); + } + async set(key, value) { + let isOk; + if (this.config.stdTTL == null) { + isOk = await this.redis.set(this.key(key), value); + } + else { + isOk = await this.redis.set(this.key(key), value, 'EX', this.config.stdTTL); + } + return isOk === 'OK'; + } + async incrby(key, increment) { + return this.redis.incrby(this.key(key), increment); + } + async decrby(key, decrement) { + return this.redis.decrby(this.key(key), decrement); + } + async del(key) { + const result = await this.redis.del(this.key(key)); + return result !== 0; + } + async keys() { + return await this.redis.keys(`${this.config.keyPrefix}:*`); + } +} +const createNodeCache = (config) => { + return new NodeCache(config); +}; +const createRedisCache = (config) => { + return new RedisCache(config.redis, config); +}; + +exports.createNodeCache = createNodeCache; +exports.createRedisCache = createRedisCache; +//# sourceMappingURL=index.js.map diff --git a/packages/cache/dist/cjs/index.js.map b/packages/cache/dist/cjs/index.js.map new file mode 100644 index 000000000..ec79c89ac --- /dev/null +++ b/packages/cache/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/main.ts"],"sourcesContent":[null],"names":["NodeCacheCore","filterInt"],"mappings":"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"} \ No newline at end of file diff --git a/packages/cache/dist/cjs/main.d.ts b/packages/cache/dist/cjs/main.d.ts new file mode 100644 index 000000000..752ddcfea --- /dev/null +++ b/packages/cache/dist/cjs/main.d.ts @@ -0,0 +1,27 @@ +import Redis from 'ioredis'; +type Key = string; +type Value = string | number; +type NodeCacheConfig = { + checkperiod?: number; + stdTTL?: number; + maxKeys?: number; +}; +type RedisConfig = { + keyPrefix: string; + stdTTL?: number; +}; +export type Cache = { + getAsString(key: Key): Promise; + getAsNumber(key: Key): Promise; + set(key: Key, value: Value): Promise; + incrby(key: Key, increment: number): Promise; + decrby(key: Key, decrement: number): Promise; + del(key: Key): Promise; + keys(): Promise; +}; +export declare const createNodeCache: (config: NodeCacheConfig) => Cache; +export declare const createRedisCache: (config: RedisConfig & { + redis: Redis; +}) => Cache; +export {}; +//# sourceMappingURL=main.d.ts.map \ No newline at end of file diff --git a/packages/cache/dist/cjs/main.d.ts.map b/packages/cache/dist/cjs/main.d.ts.map new file mode 100644 index 000000000..bd49f9507 --- /dev/null +++ b/packages/cache/dist/cjs/main.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAG5B,KAAK,GAAG,GAAG,MAAM,CAAC;AAClB,KAAK,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAM7B,KAAK,eAAe,GAAG;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,WAAW,GAAG;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAChB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC7B,CAAC;AA6HF,eAAO,MAAM,eAAe,WAAY,eAAe,KAAG,KAEzD,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,WAAW,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,KAAG,KAEzE,CAAC"} \ No newline at end of file diff --git a/packages/cache/dist/esm/index.d.ts b/packages/cache/dist/esm/index.d.ts new file mode 100644 index 000000000..d9c8fd5ab --- /dev/null +++ b/packages/cache/dist/esm/index.d.ts @@ -0,0 +1,2 @@ +export { Cache, createNodeCache, createRedisCache } from './main'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cache/dist/esm/index.d.ts.map b/packages/cache/dist/esm/index.d.ts.map new file mode 100644 index 000000000..1ab86c882 --- /dev/null +++ b/packages/cache/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC"} \ No newline at end of file diff --git a/packages/cache/dist/esm/index.js b/packages/cache/dist/esm/index.js new file mode 100644 index 000000000..b8baeebce --- /dev/null +++ b/packages/cache/dist/esm/index.js @@ -0,0 +1,122 @@ +import { filterInt } from '@flocon-trpg/utils'; +import NodeCacheCore from 'node-cache'; + +const stringToNumber = (source) => { + return parseFloat(source); +}; +class NodeCache { + cache; + constructor(config) { + this.cache = new NodeCacheCore(config); + } + async getAsString(key) { + const result = await this.cache.get(key); + if (result == null) { + return null; + } + // redisの挙動に近づけるため、numberはstringとなるべく同一視している + return result.toString(); + } + async getAsNumber(key) { + const result = await this.cache.get(key); + if (result == null) { + return null; + } + if (typeof result === 'number') { + return result; + } + // redisの挙動に近づけるため、こちらでもstringToNumberを用いて変換している + return stringToNumber(result); + } + async set(key, value) { + return this.cache.set(key, value); + } + // redisの値はすべてstringであり、INCRは整数のみに実行可能(小数には実行不可)なので、それをなるべく再現している + async incrby(key, increment) { + if (!Number.isInteger(increment)) { + throw new Error('not an integer'); + } + const value = this.cache.get(key); + if (value == null) { + this.cache.set(key, increment); + return increment; + } + let valueAsInt = null; + if (typeof value === 'string') { + valueAsInt = filterInt(value); + } + else if (typeof value === 'number') { + if (Number.isInteger(value)) { + valueAsInt = value; + } + } + if (valueAsInt == null) { + throw new Error('not an integer'); + } + const newValue = valueAsInt + increment; + this.cache.set(key, newValue); + return newValue; + } + async decrby(key, decrement) { + return this.incrby(key, -decrement); + } + async del(key) { + return this.cache.del(key) !== 0; + } + async keys() { + return this.cache.keys(); + } +} +class RedisCache { + redis; + config; + constructor(redis, config) { + this.redis = redis; + this.config = config; + } + key(keyArg) { + return `${this.config.keyPrefix}:${keyArg}`; + } + async getAsString(key) { + return await this.redis.get(this.key(key)); + } + async getAsNumber(key) { + const valueAsString = await this.getAsString(key); + if (valueAsString == null) { + return valueAsString; + } + return stringToNumber(valueAsString); + } + async set(key, value) { + let isOk; + if (this.config.stdTTL == null) { + isOk = await this.redis.set(this.key(key), value); + } + else { + isOk = await this.redis.set(this.key(key), value, 'EX', this.config.stdTTL); + } + return isOk === 'OK'; + } + async incrby(key, increment) { + return this.redis.incrby(this.key(key), increment); + } + async decrby(key, decrement) { + return this.redis.decrby(this.key(key), decrement); + } + async del(key) { + const result = await this.redis.del(this.key(key)); + return result !== 0; + } + async keys() { + return await this.redis.keys(`${this.config.keyPrefix}:*`); + } +} +const createNodeCache = (config) => { + return new NodeCache(config); +}; +const createRedisCache = (config) => { + return new RedisCache(config.redis, config); +}; + +export { createNodeCache, createRedisCache }; +//# sourceMappingURL=index.js.map diff --git a/packages/cache/dist/esm/index.js.map b/packages/cache/dist/esm/index.js.map new file mode 100644 index 000000000..8b767968a --- /dev/null +++ b/packages/cache/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/main.ts"],"sourcesContent":[null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/cache/dist/esm/main.d.ts b/packages/cache/dist/esm/main.d.ts new file mode 100644 index 000000000..752ddcfea --- /dev/null +++ b/packages/cache/dist/esm/main.d.ts @@ -0,0 +1,27 @@ +import Redis from 'ioredis'; +type Key = string; +type Value = string | number; +type NodeCacheConfig = { + checkperiod?: number; + stdTTL?: number; + maxKeys?: number; +}; +type RedisConfig = { + keyPrefix: string; + stdTTL?: number; +}; +export type Cache = { + getAsString(key: Key): Promise; + getAsNumber(key: Key): Promise; + set(key: Key, value: Value): Promise; + incrby(key: Key, increment: number): Promise; + decrby(key: Key, decrement: number): Promise; + del(key: Key): Promise; + keys(): Promise; +}; +export declare const createNodeCache: (config: NodeCacheConfig) => Cache; +export declare const createRedisCache: (config: RedisConfig & { + redis: Redis; +}) => Cache; +export {}; +//# sourceMappingURL=main.d.ts.map \ No newline at end of file diff --git a/packages/cache/dist/esm/main.d.ts.map b/packages/cache/dist/esm/main.d.ts.map new file mode 100644 index 000000000..bd49f9507 --- /dev/null +++ b/packages/cache/dist/esm/main.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAG5B,KAAK,GAAG,GAAG,MAAM,CAAC;AAClB,KAAK,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAM7B,KAAK,eAAe,GAAG;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,WAAW,GAAG;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAChB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC7B,CAAC;AA6HF,eAAO,MAAM,eAAe,WAAY,eAAe,KAAG,KAEzD,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,WAAW,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,KAAG,KAEzE,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/index.d.ts b/packages/core/dist/cjs/index.d.ts new file mode 100644 index 000000000..c82106a01 --- /dev/null +++ b/packages/core/dist/cjs/index.d.ts @@ -0,0 +1,59 @@ +export { anonymous, authToken, $free, $system } from './internal/constants'; +export { firebaseConfig, FirebaseConfig } from './internal/firebaseConfig'; +export { StrIndex5, strIndex5Array, isStrIndex5, StrIndex10, strIndex10Array, isStrIndex10, StrIndex20, strIndex20Array, isStrIndex20, StrIndex100, strIndex100Array, isStrIndex100, } from './internal/indexes'; +export { MaxLength100String, maxLength100String } from './internal/maxLengthString'; +export { forceMaxLength100String } from './internal/forceMaxLength100String'; +export { maybe, Maybe } from './internal/maybe'; +export { PublicChannelKey } from './internal/publicChannelKey'; +export { simpleId } from './internal/simpleId'; +export { isValidVarToml, parseToml, getVariableFromVarTomlObject, generateChatPalette, } from './internal/toml'; +export { testCommand, execCharacterCommand } from './internal/command/main'; +export { env } from './internal/env'; +export { Expression, plain, expr1, analyze } from './internal/expression'; +export { sanitizeFilename, sanitizeFoldername, trySanitizePath, joinPath, UploaderPathSource, } from './internal/uploaderPath'; +export { fakeFirebaseConfig1, fakeFirebaseConfig2 } from './internal/fake/fakeFirebaseConfig'; +export { $index, arrayToIndexObjects, indexObjectsToArray, IndexObject } from './internal/ot/array'; +export { Default, Uploader, FirebaseStorage, filePathTemplate, } from './internal/ot/flocon/filePath/types'; +export { $v, $r, toDownOperation, toUpOperation, apply, applyBack, composeDownOperation, restore, diff, clientTransform, } from './internal/ot/generator/functions'; +export { atomic, ot, record, paramRecord, object, state, State, upOperation, UpOperation, downOperation, DownOperation, TwoWayOperation, createObjectValueTemplate, createTextValueTemplate, createParamRecordValueTemplate, createRecordValueTemplate, createReplaceValueTemplate, } from './internal/ot/generator/types'; +export { OmitVersion } from './internal/ot/generator/omitVersion'; +export { toClientState, serverTransform } from './internal/ot/flocon/room/functions'; +export { template as roomTemplate, dbTemplate as roomDbTemplate, } from './internal/ot/flocon/room/types'; +export { template as bgmTemplate } from './internal/ot/flocon/room/bgm/types'; +export { template as paramNameTemplate } from './internal/ot/flocon/room/paramName/types'; +export { parseState, stringifyState, decodeDbState, exactDbState, parseUpOperation, stringifyUpOperation, decodeDownOperation, exactDownOperation, } from './internal/ot/flocon/room/converter'; +export { template as boardPositionTemplate } from './internal/ot/flocon/boardPosition/types'; +export { template as pieceTemplate } from './internal/ot/flocon/piece/types'; +export { Master, Player, Spectator, ParticipantRole, template as participantTemplate, } from './internal/ot/flocon/room/participant/types'; +export { template as boardTemplate } from './internal/ot/flocon/room/board/types'; +export { template as characterTemplate } from './internal/ot/flocon/room/character/types'; +export { template as boolParamTemplate } from './internal/ot/flocon/room/character/boolParam/types'; +export { template as characterPieceTemplate } from './internal/ot/flocon/room/character/characterPiece/types'; +export { template as commandTemplate } from './internal/ot/flocon/room/character/command/types'; +export { template as numParamTemplate } from './internal/ot/flocon/room/character/numParam/types'; +export { template as strParamTemplate } from './internal/ot/flocon/room/character/strParam/types'; +export { template as portraitPieceTemplate } from './internal/ot/flocon/room/character/portraitPiece/types'; +export { template as shapeTemplate } from './internal/ot/flocon/shape/types'; +export { template as shapePieceTemplate } from './internal/ot/flocon/room/board/shapePiece/types'; +export { template as dicePieceTemplate, dicePieceStrIndexes, } from './internal/ot/flocon/room/board/dicePiece/types'; +export { decode as decodeDicePiece, parse as parseDicePiece, } from './internal/ot/flocon/room/board/dicePiece/converter'; +export { template as dieValueTemplate } from './internal/ot/flocon/room/board/dicePiece/dieValue/types'; +export { type as dicePieceLog, Type as DicePieceLog, } from './internal/ot/flocon/room/board/dicePiece/log'; +export { template as imagePieceTemplate } from './internal/ot/flocon/room/board/imagePiece/types'; +export { template as stringPieceTemplate, String, Number, } from './internal/ot/flocon/room/board/stringPiece/types'; +export { decode as decodeStringPiece, parse as parseStringPiece, } from './internal/ot/flocon/room/board/stringPiece/converter'; +export { type as stringPieceLog, Type as StringPieceLog, } from './internal/ot/flocon/room/board/stringPiece/log'; +export { template as memoTemplate, Plain, Markdown } from './internal/ot/flocon/room/memo/types'; +export { getOpenRollCall } from './internal/ot/flocon/room/rollCall/getOpenRollCall'; +export { isOpenRollCall } from './internal/ot/flocon/room/rollCall/isOpenRollCall'; +export { OtError, toOtError } from './internal/ot/otError'; +export { DownOperation as NullableTextDownOperation, UpOperation as NullableTextUpOperation, TwoWayOperation as NullableTextTwoWayOperation, apply as applyNullableText, diff as nullableTextDiff, toUpOperation as toNullableTextUpOperation, } from './internal/ot/nullableTextOperation'; +export { isIdRecord } from './internal/ot/record'; +export { replace, update, RecordDownOperationElement, RecordTwoWayOperationElement, RecordUpOperationElement, } from './internal/ot/recordOperationElement'; +export { RecordDownOperation, RecordUpOperation, RecordTwoWayOperation, } from './internal/ot/recordOperation'; +export { DownOperation as TextDownOperation, UpOperation as TextUpOperation, TwoWayOperation as TextTwoWayOperation, apply as applyText, diff as textDiff, toUpOperation as toTextUpOperation, } from './internal/ot/textOperation'; +export { client, admin, restrict, RequestedBy, isCharacterOwner } from './internal/ot/requestedBy'; +export { path, shape } from './internal/ot/shape'; +export { updateType, createType, deleteType } from './internal/ot/flocon/piece/log'; +export { createLogs } from './internal/ot/flocon/room/log'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/index.d.ts.map b/packages/core/dist/cjs/index.d.ts.map new file mode 100644 index 000000000..67813496a --- /dev/null +++ b/packages/core/dist/cjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/core/dist/cjs/index.js b/packages/core/dist/cjs/index.js new file mode 100644 index 000000000..e5f44fbc9 --- /dev/null +++ b/packages/core/dist/cjs/index.js @@ -0,0 +1,7166 @@ +'use strict'; + +var zod = require('zod'); +var result = require('@kizahasi/result'); +var jToml = require('@ltd/j-toml'); +var floconScript = require('@flocon-trpg/flocon-script'); +var utils = require('@flocon-trpg/utils'); +var esToolkit = require('es-toolkit'); +var otString = require('@kizahasi/ot-string'); +var truncate = require('truncate-utf8-bytes'); +var immer = require('immer'); +var otCore = require('@kizahasi/ot-core'); + +function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } + +var truncate__default = /*#__PURE__*/_interopDefault(truncate); + +const anonymous = 'anonymous'; +const authToken = 'authToken'; +const $free = '$free'; +const $system = '$system'; + +const env = { + // @flocon-trpg/web-server にはこれらを import せずに環境変数のキーを文字列として直接入力している箇所があるため、そちらも合わせる必要があることに注意。 + NEXT_PUBLIC_FIREBASE_CONFIG: 'NEXT_PUBLIC_FIREBASE_CONFIG', + NEXT_PUBLIC_API_HTTP: 'NEXT_PUBLIC_API_HTTP', + NEXT_PUBLIC_API_WS: 'NEXT_PUBLIC_API_WS', + NEXT_PUBLIC_AUTH_PROVIDERS: 'NEXT_PUBLIC_AUTH_PROVIDERS', + NEXT_PUBLIC_FIREBASE_STORAGE_ENABLED: 'NEXT_PUBLIC_FIREBASE_STORAGE_ENABLED', + NEXT_PUBLIC_LOG_LEVEL: 'NEXT_PUBLIC_LOG_LEVEL', + firebaseConfig: { + apiKey: 'apiKey', + authDomain: 'authDomain', + projectId: 'projectId', + storageBucket: 'storageBucket', + messagingSenderId: 'messagingSenderId', + appId: 'appId', + }, + authProviders: { + // TODO: これら以外にも対応させる + anonymous: 'anonymous', + email: 'email', + google: 'google', + facebook: 'facebook', + github: 'github', + twitter: 'twitter', + phone: 'phone', + }, +}; + +const firebaseConfig = zod.z.object({ + // databaseURLというキーはおそらくFirestoreを有効化しないと含まれないため、除外している。 + [env.firebaseConfig.apiKey]: zod.z.string(), + [env.firebaseConfig.authDomain]: zod.z.string(), + [env.firebaseConfig.projectId]: zod.z.string(), + [env.firebaseConfig.storageBucket]: zod.z.string(), + [env.firebaseConfig.messagingSenderId]: zod.z.string(), + [env.firebaseConfig.appId]: zod.z.string(), +}); + +const strIndex5Array = ['1', '2', '3', '4', '5']; +const strIndex5Set = new Set(strIndex5Array); +const isStrIndex5 = (source) => { + return strIndex5Set.has(source); +}; +const strIndex10Array = [ + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '10', +]; +const strIndex10Set = new Set(strIndex10Array); +const isStrIndex10 = (source) => { + return strIndex10Set.has(source); +}; +const strIndex20Array = [ + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '10', + '11', + '12', + '13', + '14', + '15', + '16', + '17', + '18', + '19', + '20', +]; +const strIndex20Set = new Set(strIndex20Array); +const isStrIndex20 = (source) => { + return strIndex20Set.has(source); +}; +const strIndex100Array = [ + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '10', + '11', + '12', + '13', + '14', + '15', + '16', + '17', + '18', + '19', + '20', + '21', + '22', + '23', + '24', + '25', + '26', + '27', + '28', + '29', + '30', + '31', + '32', + '33', + '34', + '35', + '36', + '37', + '38', + '39', + '40', + '41', + '42', + '43', + '44', + '45', + '46', + '47', + '48', + '49', + '50', + '51', + '52', + '53', + '54', + '55', + '56', + '57', + '58', + '59', + '60', + '61', + '62', + '63', + '64', + '65', + '66', + '67', + '68', + '69', + '70', + '71', + '72', + '73', + '74', + '75', + '76', + '77', + '78', + '79', + '80', + '81', + '82', + '83', + '84', + '85', + '86', + '87', + '88', + '89', + '90', + '91', + '92', + '93', + '94', + '95', + '96', + '97', + '98', + '99', + '100', +]; +const strIndex100Set = new Set(strIndex100Array); +const isStrIndex100 = (source) => { + return strIndex100Set.has(source); +}; + +// 𩸽や😀のようなサロゲートペアで表現される文字はlengthで2とカウントされるが、欲しい情報は文字数ではなく消費容量であるためlengthで問題ない +const maxLengthString = (maxLength) => zod.z.string().max(maxLength).brand(); +const maxLength100String = maxLengthString(100); +const maxLength1000String = maxLengthString(1000); +const emptyString = ''; +maxLength100String.parse(emptyString); +maxLength1000String.parse(emptyString); + +const forceMaxLength100String = (source) => { + return maxLength100String.parse(source); +}; + +/** @deprecated Use `optional` method in zod. */ +const maybe = (source) => source.optional(); + +exports.PublicChannelKey = void 0; +(function (PublicChannelKey) { + (function (Without$System) { + Without$System.publicChannelKeys = [ + ...strIndex10Array, + $free, + ]; + Without$System.isPublicChannelKey = (source) => { + return Without$System.publicChannelKeys.find(key => key === source) !== undefined; + }; + })(PublicChannelKey.Without$System || (PublicChannelKey.Without$System = {})); + (function (With$System) { + With$System.publicChannelKeys = [ + ...strIndex10Array, + $free, + $system, + ]; + With$System.isPublicChannelKey = (source) => { + return With$System.publicChannelKeys.find(key => key === source) !== undefined; + }; + })(PublicChannelKey.With$System || (PublicChannelKey.With$System = {})); +})(exports.PublicChannelKey || (exports.PublicChannelKey = {})); + +// NOT cryptographically secure +const simpleId = () => { + const idLength = 9; + let result = Math.random() + .toString(36) + .substring(2, 2 + idLength); + while (result.length < idLength) { + result = result + '0'; + } + return result; +}; + +const plain = 'plain'; +const expr1 = 'expr1'; +const expr2 = 'expr2'; +const toExpressionCore = (text) => { + const bareKey = /[a-zA-Z0-9_-]/; + const head = []; // plainが連続して続くことはない。 + let tail = { + type: plain, + text: '', + }; + const charArray = Array.from(text); + let cursor = 0; + for (; cursor < charArray.length; cursor++) { + const char = charArray[cursor]; + if (char === undefined) { + throw new Error('this should not happen. charArray out of range.'); + } + switch (tail.type) { + case plain: + switch (char) { + case '\\': { + const nextChar = charArray[cursor + 1]; + if (nextChar == null) { + return result.Result.error({ + message: '末尾を \\ にすることはできません。', + index: cursor, + }); + } + cursor++; + tail = { ...tail, text: tail.text + nextChar }; + continue; + } + case '{': { + const nextChar = charArray[cursor + 1]; + head.push(tail); + if (nextChar === '{') { + cursor++; + tail = { + type: expr2, + path: [], + raw: '{{', + reading: { + type: 'Begin', + }, + }; + continue; + } + tail = { + type: expr1, + path: [], + raw: '{', + reading: { + type: 'Begin', + }, + }; + continue; + } + case '}': { + return result.Result.error({ + message: '} に対応する { が見つかりません。', + index: cursor, + }); + } + default: { + tail = { ...tail, text: tail.text + char }; + continue; + } + } + case expr1: + case expr2: { + // 基本的に、まずtail.reading.typeで分類して、その次にcharごとに処理を行っている。 + // ただし、char === '}' のケースは、共通処理が複雑なため、同じコードをコピペしたくないので例外的にここでまず処理してしまっている。 + if (char === '}') { + switch (tail.reading.type) { + case 'Begin': + return result.Result.error({ + message: 'プロパティを空にすることはできません。', + index: cursor, + }); + case 'Bare': + case 'EndOfProp': { + if (tail.type === expr1) { + head.push({ + type: expr1, + path: tail.reading.type === 'Bare' + ? [...tail.path, tail.reading.text] + : tail.path, + raw: tail.raw + '}', + }); + tail = { type: plain, text: '' }; + continue; + } + const nextChar = charArray[cursor + 1]; + if (nextChar !== '}') { + return result.Result.error({ + message: '{{ を } で閉じることはできません。', + index: cursor, + }); + } + continue; + } + } + } + switch (tail.reading.type) { + case 'Begin': { + switch (char) { + // { が3つ以上続いていた場合は char === '{' になる。 + case ' ': + continue; + case "'": { + tail = { + ...tail, + reading: { + type: 'InSingleQuote', + text: '', + }, + raw: tail.raw + char, + }; + continue; + } + case '"': { + tail = { + ...tail, + reading: { + type: 'InDoubleQuote', + text: '', + }, + raw: tail.raw + char, + }; + continue; + } + default: { + if (!bareKey.test(char)) { + return result.Result.error({ + message: `${char} はこの場所で使うことはできません。`, + index: cursor, + }); + } + tail = { + ...tail, + reading: { + type: 'Bare', + text: char, + }, + raw: tail.raw + char, + }; + continue; + } + } + } + case 'EndOfProp': { + switch (char) { + case ' ': + continue; + case '.': { + tail = { + ...tail, + reading: { type: 'Begin' }, + raw: tail.raw + char, + }; + continue; + } + default: { + return result.Result.error({ + message: `${char} はこの場所で使うことはできません。`, + index: cursor, + }); + } + } + } + case 'Bare': { + switch (char) { + case ' ': { + tail = { + ...tail, + path: [...tail.path, tail.reading.text], + raw: tail.raw + char, + reading: { type: 'EndOfProp' }, + }; + continue; + } + case '.': + tail = { + type: tail.type, + path: [...tail.path, tail.reading.text], + raw: tail.raw + char, + reading: { + type: 'Begin', + }, + }; + continue; + default: { + if (!bareKey.test(char)) { + return result.Result.error({ + message: `${char} は ' か " で囲む必要があります。`, + index: cursor, + }); + } + tail = { + ...tail, + raw: tail.raw + char, + reading: { + type: 'Bare', + text: tail.reading.text + char, + }, + }; + continue; + } + } + } + case 'InDoubleQuote': { + switch (char) { + case '"': { + tail = { + ...tail, + path: [...tail.path, tail.reading.text], + raw: tail.raw + char, + reading: { + type: 'EndOfProp', + }, + }; + continue; + } + case '\\': { + const nextChar = charArray[cursor + 1]; + switch (nextChar) { + case '"': + tail = { + ...tail, + raw: tail.raw + char, + reading: { + type: tail.reading.type, + text: tail.reading.text + '"', + }, + }; + cursor++; + continue; + case '\\': { + tail = { + ...tail, + raw: tail.raw + char, + reading: { + type: tail.reading.type, + text: tail.reading.text + '\\', + }, + }; + cursor++; + continue; + } + case undefined: + return result.Result.error({ + message: 'エスケープ文字の次に文字がありません。', + index: cursor, + }); + default: + // TOMLでは\uXXXXなどでunicodeを直接指定できるが、面倒なので今のところ実装は省略している。 + return result.Result.error({ + message: `\\${nextChar} は無効なエスケープシーケンスです。`, + index: cursor, + }); + } + } + default: + tail = { + ...tail, + raw: tail.raw + char, + reading: { + type: tail.reading.type, + text: tail.reading.text + char, + }, + }; + continue; + } + } + case 'InSingleQuote': { + switch (char) { + case "'": + tail = { + ...tail, + path: [...tail.path, tail.reading.text], + raw: tail.raw + char, + reading: { type: 'EndOfProp' }, + }; + continue; + default: + tail = { + ...tail, + raw: tail.raw + char, + reading: { + type: tail.reading.type, + text: tail.reading.text + char, + }, + }; + continue; + } + } + } + } + } + } + switch (tail.type) { + case plain: + return result.Result.ok([...head, tail]); + case expr1: + return result.Result.error({ + index: cursor + 1, + message: '} に対応する { がありません。', + }); + case expr2: + return result.Result.error({ + index: cursor + 1, + message: '}} に対応する {{ がありません。', + }); + } +}; +const analyze = (text) => { + const expressions = toExpressionCore(text); + if (expressions.isError) { + return result.Result.error(`${expressions.error.index}: ${expressions.error.message}`); + } + const result$1 = []; + for (const expr of expressions.value) { + switch (expr.type) { + case expr2: + return result.Result.error('{{と}}で囲む構文は将来のために予約されているため、現在は使用することはできません。'); + case expr1: + result$1.push({ type: expr1, path: expr.path, raw: expr.raw }); + continue; + default: + if (expr.text !== '') { + result$1.push({ type: plain, text: expr.text }); + } + continue; + } + } + return result.Result.ok(result$1); +}; + +const isTomlDateTime = (source) => { + return (source instanceof jToml.LocalDate || + source instanceof jToml.LocalDateTime || + source instanceof jToml.LocalTime || + source instanceof jToml.OffsetDateTime); +}; +const parseTomlCore = (toml) => { + let object; + try { + object = jToml.parse(toml, 1.0, '\r\n', false); + } + catch (error) { + if (typeof error === 'string') { + return result.Result.error(error); + } + if (error instanceof Error) { + return result.Result.error(error.message); + } + throw error; + } + return result.Result.ok(object); +}; +const parseToml = (toml) => { + const core = parseTomlCore(toml); + if (core.isError) { + return core; + } + return result.Result.ok(core.value); +}; +const isValidVarToml = (toml) => { + const parsed = parseTomlCore(toml); + if (parsed.isError) { + return parsed; + } + return result.Result.ok(undefined); +}; +const tomlDateTime = zod.z.union([ + zod.z.instanceof(jToml.LocalDate), + zod.z.instanceof(jToml.LocalDateTime), + zod.z.instanceof(jToml.LocalTime), + zod.z.instanceof(jToml.OffsetDateTime), +]); +const tomlObjectType = zod.z.union([ + // zod は Date や Map などを z.record(z.unknown()) に変換しようとすると失敗するが、独自のクラスでは失敗しない(JavaScript の仕様を考えると当然ではあるが)。そのため、パース処理そのものは tomlDateTime の有無は影響しないと考えられるが、tomlObjectType.parse の戻り値の型を扱いやすくする目的で付け加えている。 + tomlDateTime, + zod.z.record(zod.z.unknown()), + zod.z.number(), + zod.z.string(), + zod.z.null(), + zod.z.undefined(), +]); +const getVariableFromVarTomlObject = (tomlObject, path) => { + let current = tomlObject; + for (const key of path) { + const parsed = tomlObjectType.safeParse(current); + if (!parsed.success) { + return result.Result.error(parsed.error.message); + } + if (parsed.data == null) { + return result.Result.ok(undefined); + } + if (typeof parsed.data === 'string' || typeof parsed.data === 'number') { + return result.Result.ok(undefined); + } + if (isTomlDateTime(parsed.data)) { + return result.Result.ok(undefined); + } + current = parsed.data[key]; + } + const parsed = tomlObjectType.safeParse(current); + if (!parsed.success) { + return result.Result.error(parsed.error.message); + } + return result.Result.ok(parsed.data); +}; +const chatPalette = zod.z.object({ + var: maybe(zod.z.record(zod.z.unknown())), + // textではなくわざわざ冗長なtext.valueにしたのは、[var]→チャットパレットの文字列 の順で書けるようにするため。 + // また、将来的に例えばtext.typeに何かをセットして…という拡張もできる余地がある。 + text: zod.z.object({ + value: zod.z.string(), + }), +}); +// text.valueに例えば {foo} のような文字列が含まれている場合、varで定義されていればそれに置き換える。定義が見つからなければそのまま残す。 +/** @deprecated We no longer use TOML in chat palettes. */ +const generateChatPalette = (toml) => { + // CONSIDER: TOMLのDateTimeに未対応 + const object = parseTomlCore(toml); + if (object.isError) { + return object; + } + const decoded = chatPalette.parse(object.value); + const lines = decoded.text.value.split(/(?:\r\n|\r|\n)/).map(line => { + const analyzeResult = analyze(line); + if (analyzeResult.isError) { + return line; + } + return analyzeResult.value + .map(expr => { + switch (expr.type) { + case expr1: { + const replaced = getVariableFromVarTomlObject(decoded.var, expr.path); + if (replaced.isError) { + return expr.raw; + } + // TODO: replaced.valueがstring以外のときの処理の仕様が今は曖昧 + switch (typeof replaced.value) { + case 'string': + case 'number': + case 'boolean': + return replaced.value.toString(); + default: + return ''; + } + } + default: { + return expr.text; + } + } + }) + .reduce((seed, elem) => seed + elem, ''); + }); + return result.Result.ok(lines); +}; + +const value$2 = 'value'; +const isValueSecret$2 = 'isValueSecret'; +class FBoolParam extends floconScript.FObject { + boolParam; + constructor(boolParam) { + super(); + this.boolParam = boolParam; + } + getCore({ key }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case value$2: + return this.boolParam.value == null + ? undefined + : new floconScript.FBoolean(this.boolParam.value); + case isValueSecret$2: + return new floconScript.FBoolean(this.boolParam.isValuePrivate); + default: + return undefined; + } + } + setCore({ key, newValue, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case value$2: + this.boolParam.value = floconScript.beginCast(newValue, astInfo) + .addBoolean() + .addUndefined() + .cast(); + return; + case isValueSecret$2: + this.boolParam.isValuePrivate = floconScript.beginCast(newValue, astInfo).addBoolean().cast(); + return; + default: + throw new floconScript.ScriptError(`${typeof key === 'symbol' ? 'symbol' : key}への値のセットは制限されています。`); + } + } + toJObject() { + return this.boolParam; + } +} + +const createDefaultState$2 = () => ({ + $v: 2, + $r: 1, + value: false, + isValuePrivate: false, + overriddenParameterName: undefined, +}); +class FBoolParams extends floconScript.FObject { + boolParams; + room; + constructor(boolParams, room) { + super(); + this.boolParams = boolParams; + this.room = room; + } + findKeysByNameOrKey(nameOrKey) { + if (this.room.boolParamNames == null) { + return []; + } + return utils.recordToArray(this.room.boolParamNames) + .filter(({ value }, i) => value.name === nameOrKey || i + 1 === nameOrKey) + .map(({ key }) => key); + } + findByNameOrKey(nameOrKeyValue, astInfo) { + const nameOrKey = floconScript.beginCast(nameOrKeyValue, astInfo).addString().addNumber().cast(); + const keys = this.findKeysByNameOrKey(nameOrKey); + for (const key of keys) { + const found = (this.boolParams ?? {})[key]; + if (found == null) { + const newValue = createDefaultState$2(); + this.boolParams[key] = newValue; + return newValue; + } + return found; + } + return undefined; + } + toggleValue(nameOrKeyValue, astInfo) { + const found = this.findByNameOrKey(nameOrKeyValue, astInfo); + if (found == null) { + return; + } + found.value = !(found.value ?? createDefaultState$2().value); + } + setIsValuePrivate(nameOrKeyValue, newValue, astInfo) { + const $newValue = floconScript.beginCast(newValue, astInfo).addBoolean().cast(); + const found = this.findByNameOrKey(nameOrKeyValue, astInfo); + if (found == null) { + return; + } + found.isValuePrivate = $newValue; + } + getCore({ key, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case 'find': + return new floconScript.FFunction(({ args }) => { + const result = this.findByNameOrKey(args[0], astInfo); + if (result == null) { + return undefined; + } + return new FBoolParam(result); + }); + case 'toggleValue': + return new floconScript.FFunction(({ args }) => { + this.toggleValue(args[0], astInfo); + return undefined; + }); + case 'setValue': + return new floconScript.FFunction(({ args }) => { + const newValue = floconScript.beginCast(args[1], astInfo).addBoolean().cast(); + const found = this.findByNameOrKey(args[0], astInfo); + if (found == null) { + return; + } + found.value = newValue; + return undefined; + }); + case 'setIsValueSecret': + return new floconScript.FFunction(({ args }) => { + this.setIsValuePrivate(args[0], args[1], astInfo); + return undefined; + }); + } + return undefined; + } + setCore() { + throw new floconScript.ScriptError('値のセットは制限されています。'); + } + toJObject() { + return this.boolParams; + } +} + +const update$2 = 'update'; +const replace$1 = 'replace'; +const recordDownOperationElementFactory = (state, operation) => zod.z.union([ + zod.z.object({ + type: zod.z.literal(replace$1), + replace: zod.z + .object({ + oldValue: state, + }) + .partial(), + }), + zod.z.object({ + type: zod.z.literal(update$2), + update: operation, + }), +]); +const recordUpOperationElementFactory = (state, operation) => zod.z.union([ + zod.z.object({ + type: zod.z.literal(replace$1), + replace: zod.z + .object({ + newValue: state, + }) + .partial(), + }), + zod.z.object({ + type: zod.z.literal(update$2), + update: operation, + }), +]); + +const r = 'r'; +const i = 'i'; +const d = 'd'; +const downOperationUnit = zod.z.union([ + zod.z.object({ + t: zod.z.literal(r), + r: zod.z.number(), + }), + zod.z.object({ + t: zod.z.literal(i), + i: zod.z.number(), + }), + zod.z.object({ + t: zod.z.literal(d), + d: zod.z.string(), + }), +]); +const downOperation$2 = zod.z.array(downOperationUnit); +const upOperationUnit = zod.z.union([ + zod.z.object({ + t: zod.z.literal(r), + r: zod.z.number(), + }), + zod.z.object({ + t: zod.z.literal(i), + i: zod.z.string(), + }), + zod.z.object({ + t: zod.z.literal(d), + d: zod.z.number(), + }), +]); +const upOperation$2 = zod.z.array(upOperationUnit); +const apply$5 = (state, action) => { + const action$ = otString.deserializeUpOperation(action); + if (action$ == null) { + return result.Result.ok(state); + } + return otString.apply({ + prevState: state, + upOperation: action$, + }); +}; +const applyBack$4 = (state, action) => { + const action$ = otString.deserializeDownOperation(action); + if (action$ == null) { + return result.Result.ok(state); + } + return otString.applyBack({ + nextState: state, + downOperation: action$, + }); +}; +const composeDownOperation$3 = (first, second) => { + const first$ = first == null ? undefined : otString.deserializeDownOperation(first); + const second$ = second == null ? undefined : otString.deserializeDownOperation(second); + if (first$ == null) { + return result.Result.ok(second); + } + if (second$ == null) { + return result.Result.ok(first); + } + const result$1 = otString.composeDownOperation({ + first: first$, + second: second$, + }); + if (result$1.isError) { + return result$1; + } + return result.Result.ok(otString.serializeDownOperation(result$1.value)); +}; +const restore$4 = ({ nextState, downOperation, }) => { + const downOperation$ = downOperation == null ? undefined : otString.deserializeDownOperation(downOperation); + if (downOperation$ == null) { + return result.Result.ok({ + prevState: nextState, + twoWayOperation: undefined, + }); + } + const result$1 = otString.applyBackAndRestore({ + nextState, + downOperation: downOperation$, + }); + if (result$1.isError) { + return result$1; + } + return result.Result.ok({ + prevState: result$1.value.prevState, + twoWayOperation: otString.serializeTwoWayOperation(result$1.value.restored), + }); +}; +// 元々はこの関数自身がserverTransformとしてexportされていたが、firstPrimeは必要ないためexportを外した。ただし将来使うことがあるかもしれないため一応残している。 +const serverTransformCore = ({ first, second, prevState, }) => { + const first$ = first == null ? undefined : otString.deserializeTwoWayOperation(first); + if (first$ === undefined) { + const second$ = second == null ? undefined : otString.deserializeUpOperation(second); + if (second$ === undefined) { + return result.Result.ok({ + firstPrime: undefined, + secondPrime: undefined, + }); + } + const restoreResult = otString.applyAndRestore({ + prevState, + upOperation: second$, + }); + if (restoreResult.isError) { + return restoreResult; + } + return result.Result.ok({ + firstPrime: undefined, + secondPrime: otString.serializeTwoWayOperation(restoreResult.value.restored), + }); + } + const second$ = second == null ? undefined : otString.deserializeUpOperation(second); + if (second$ === undefined) { + return result.Result.ok({ + firstPrime: first$, + secondPrime: undefined, + }); + } + const secondResult = otString.applyAndRestore({ + prevState, + upOperation: second$, + }); + if (secondResult.isError) { + return secondResult; + } + const result$1 = otString.transformTwoWayOperation({ + first: first$, + second: secondResult.value.restored, + }); + if (result$1.isError) { + return result$1; + } + return result.Result.ok({ + firstPrime: otString.serializeTwoWayOperation(result$1.value.firstPrime), + secondPrime: otString.serializeTwoWayOperation(result$1.value.secondPrime), + }); +}; +const serverTransform$r = ({ first, second, prevState, }) => { + const result$1 = serverTransformCore({ first, second, prevState }); + if (result$1.isError) { + return result$1; + } + return result.Result.ok(result$1.value.secondPrime); +}; +const clientTransform$5 = ({ first, second, }) => { + const first$ = first == null ? undefined : otString.deserializeUpOperation(first); + if (first$ === undefined) { + const second$ = second == null ? undefined : otString.deserializeUpOperation(second); + if (second$ === undefined) { + return result.Result.ok({ + firstPrime: undefined, + secondPrime: undefined, + }); + } + return result.Result.ok({ + firstPrime: undefined, + secondPrime: otString.serializeUpOperation(second$), + }); + } + const second$ = second == null ? undefined : otString.deserializeUpOperation(second); + if (second$ === undefined) { + return result.Result.ok({ + firstPrime: otString.serializeUpOperation(first$), + secondPrime: undefined, + }); + } + const result$1 = otString.transformUpOperation({ + first: first$, + second: second$, + }); + if (result$1.isError) { + return result$1; + } + return result.Result.ok({ + firstPrime: otString.serializeUpOperation(result$1.value.firstPrime), + secondPrime: otString.serializeUpOperation(result$1.value.secondPrime), + }); +}; +const diff$4 = ({ prev, next, }) => { + if (prev === next) { + return undefined; + } + return otString.serializeTwoWayOperation(otString.diff({ + prevState: prev, + nextState: next, + })); +}; +const toUpOperation$2 = (source) => { + const twoWayOperation = otString.deserializeTwoWayOperation(source); + if (twoWayOperation == null) { + throw new Error('This should not happen'); + } + const upOperation = otString.toUpOperation(twoWayOperation); + return otString.serializeUpOperation(upOperation); +}; +const toDownOperation$2 = (source) => { + const twoWayOperation = otString.deserializeTwoWayOperation(source); + if (twoWayOperation == null) { + throw new Error('This should not happen'); + } + const downOperation = otString.toDownOperation(twoWayOperation); + return otString.serializeDownOperation(downOperation); +}; + +// CONSIDER: keyが1つのみのrecordOperationを用いることでこのコードを大幅に簡略化できないか? +const stateShouldNotBeUndefinedMessage = 'state should not be undefined'; +const firstTypeShouldBeSameAsSecondType = 'first type and second type should be same'; +const stringOrUndefined = zod.z.union([zod.z.string(), zod.z.undefined()]); +const downOperation$1 = zod.z.union([ + zod.z.object({ + type: zod.z.literal(replace$1), + replace: zod.z.object({ + oldValue: stringOrUndefined, + }), + }), + zod.z.object({ + type: zod.z.literal(update$2), + update: downOperation$2, + }), +]); +const upOperation$1 = zod.z.union([ + zod.z.object({ + type: zod.z.literal(replace$1), + replace: zod.z.object({ + newValue: stringOrUndefined, + }), + }), + zod.z.object({ + type: zod.z.literal(update$2), + update: upOperation$2, + }), +]); +const toUpOperation$1 = (source) => { + if (source.type === replace$1) { + return { + type: replace$1, + replace: { + newValue: source.replace.newValue, + }, + }; + } + return { + type: update$2, + update: toUpOperation$2(source.update), + }; +}; +const toDownOperation$1 = (source) => { + if (source.type === replace$1) { + return { + type: replace$1, + replace: { + oldValue: source.replace.oldValue, + }, + }; + } + return { + type: update$2, + update: toDownOperation$2(source.update), + }; +}; +const apply$4 = (state, action) => { + if (action.type === replace$1) { + return result.Result.ok(action.replace.newValue); + } + if (state == null) { + return result.Result.error(stateShouldNotBeUndefinedMessage); + } + return apply$5(state, action.update); +}; +const applyBack$3 = (state, action) => { + if (action.type === replace$1) { + return result.Result.ok(action.replace.oldValue); + } + if (state == null) { + return result.Result.error(stateShouldNotBeUndefinedMessage); + } + return applyBack$4(state, action.update); +}; +// stateが必要ないため処理を高速化&簡略化できるが、その代わり戻り値のreplaceにおいて oldValue === undefined && newValue === undefined もしくは oldValue !== undefined && newValue !== undefinedになるケースがある。 +const composeDownOperation$2 = (first, second) => { + if (first == null) { + return result.Result.ok(second); + } + if (second == null) { + return result.Result.ok(first); + } + switch (first.type) { + case replace$1: + return result.Result.ok(first); + case update$2: + switch (second.type) { + case replace$1: { + if (second.replace.oldValue == null) { + return result.Result.error('Because first is update, second.oldValue should not be undefined'); + } + const oldValue = applyBack$4(second.replace.oldValue, first.update); + if (oldValue.isError) { + return oldValue; + } + return result.Result.ok({ + type: replace$1, + replace: { + oldValue: oldValue.value, + }, + }); + } + case 'update': { + const composed = composeDownOperation$3(first.update, second.update); + if (composed.isError) { + return composed; + } + if (composed.value == null) { + return result.Result.ok(undefined); + } + return result.Result.ok({ + type: update$2, + update: composed.value, + }); + } + } + } +}; +const diff$3 = ({ prev, next, }) => { + if (prev == null) { + if (next == null) { + return undefined; + } + return { + type: replace$1, + replace: { + oldValue: prev, + newValue: next, + }, + }; + } + if (next == null) { + return { + type: replace$1, + replace: { + oldValue: prev, + newValue: next, + }, + }; + } + const diff = diff$4({ prev, next }); + if (diff == null) { + return undefined; + } + return { + type: update$2, + update: diff, + }; +}; +// composeDownOperationは、時系列順でremove→addしたものをcomposeすると、本来はupdateになるべきだが、replaceになってしまうという仕様がある。だが、このrestore関数ではそれをupdateに変換してくれる。 +const restore$3 = ({ nextState, downOperation, }) => { + if (downOperation == null) { + return result.Result.ok({ + prevState: nextState, + twoWayOperation: undefined, + }); + } + if (downOperation.type === replace$1) { + return result.Result.ok({ + prevState: downOperation.replace.oldValue, + twoWayOperation: diff$3({ prev: downOperation.replace.oldValue, next: nextState }), + }); + } + if (nextState == null) { + return result.Result.error(stateShouldNotBeUndefinedMessage); + } + const restoredResult = restore$4({ + nextState, + downOperation: downOperation.update, + }); + if (restoredResult.isError) { + return restoredResult; + } + return result.Result.ok({ + prevState: restoredResult.value.prevState, + twoWayOperation: restoredResult.value.twoWayOperation == null + ? undefined + : { + type: update$2, + update: restoredResult.value.twoWayOperation, + }, + }); +}; +const serverTransform$q = ({ first, second, prevState, }) => { + if (second == null) { + return result.Result.ok(undefined); + } + if (second.type === replace$1) { + const oldValue = prevState; + const newValue = second.replace.newValue; + if (oldValue == null) { + if (newValue == null) { + return result.Result.ok(undefined); + } + return result.Result.ok({ + type: replace$1, + replace: { + oldValue, + newValue, + }, + }); + } + if (newValue == null) { + return result.Result.ok({ + type: replace$1, + replace: { + oldValue, + newValue, + }, + }); + } + const diff = diff$4({ prev: oldValue, next: newValue }); + if (diff == null) { + return result.Result.ok(undefined); + } + return result.Result.ok({ + type: update$2, + update: diff, + }); + } + if (prevState == null) { + return result.Result.error(stateShouldNotBeUndefinedMessage); + } + if (first?.type === replace$1) { + return result.Result.error(firstTypeShouldBeSameAsSecondType); + } + const xformResult = serverTransform$r({ + first: first?.update, + second: second.update, + prevState: prevState, + }); + if (xformResult.isError) { + return xformResult; + } + if (xformResult.value == null) { + return result.Result.ok(undefined); + } + return result.Result.ok({ + type: update$2, + update: xformResult.value, + }); +}; +const clientTransform$4 = ({ first, second, }) => { + if (first == null || second == null) { + return result.Result.ok({ + firstPrime: first, + secondPrime: second, + }); + } + if (first.type === replace$1) { + if (second.type === update$2) { + if (first.replace.newValue != null) { + throw new Error('because second is update, first replace.newValue must not be undefined'); + } + return result.Result.ok({ + firstPrime: first, + }); + } + if (first.replace.newValue == null) { + if (second.replace.newValue != null) { + throw new Error('first or second should be update'); + } + return result.Result.ok({}); + } + if (second.replace.newValue == null) { + throw new Error('first or second should be update'); + } + const diff = diff$4({ + prev: second.replace.newValue, + next: first.replace.newValue, + }); + return result.Result.ok({ + firstPrime: diff == null + ? undefined + : { + type: update$2, + update: toUpOperation$2(diff), + }, + }); + } + if (second.type === update$2) { + const xformResult = clientTransform$5({ + first: first.update, + second: second.update, + }); + if (xformResult.isError) { + return xformResult; + } + return result.Result.ok({ + firstPrime: xformResult.value.firstPrime == null + ? undefined + : { + type: update$2, + update: xformResult.value.firstPrime, + }, + secondPrime: xformResult.value.secondPrime == null + ? undefined + : { + type: update$2, + update: xformResult.value.secondPrime, + }, + }); + } + if (second.replace.newValue != null) { + throw new Error('because first is update, second replace.newValue must not be undefined'); + } + return result.Result.ok({ + secondPrime: second, + }); +}; + +const isEmptyRecord = (source) => { + for (const key in source) { + const value = source[key]; + if (value !== undefined) { + return false; + } + } + return true; +}; +const isIdRecord = (source) => { + for (const key in source) { + if (key === '$v' || key === '$r') { + continue; + } + const value = source[key]; + if (value !== undefined) { + return false; + } + } + return true; +}; +const record$1 = (value) => zod.z.record(value.optional()); + +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ +/* eslint-disable @typescript-eslint/no-unsafe-return */ +const atomic = 'atomic'; +const replace = 'replace'; +const ot = 'ot'; +const record = 'record'; +const paramRecord = 'paramRecord'; +const object = 'object'; +/** Stateならば`T`に、TwoWayOperationならば`{ oldValue:T; newValue:T }`に変換されるtemplateを作成します。*/ +const createReplaceValueTemplate = (value) => { + return { + type: atomic, + mode: replace, + value, + }; +}; +/** Stateならば`string`(ただし`nullable === true`のときは代わりに`string | undefined`となます。`undefined`は`''`と同一として扱われます)に、TwoWayOperationならば変化のある部分のみを抽出したOperationに変換されるtemplateを作成します。*/ +const createTextValueTemplate = (nullable) => ({ + type: atomic, + mode: ot, + nullable, +}); +/** `Record`を表すtemplateを作成します。*/ +const createRecordValueTemplate = (value) => { + return { + type: record, + value, + }; +}; +/** `Record`を表すtemplateを作成します。存在しない要素はdefaultStateがセットされているとみなされます。 */ +const createParamRecordValueTemplate = (value, defaultState) => { + return { + type: paramRecord, + value, + defaultState, + }; +}; +/** 複数のtemplateから構成される新たなtemplateを作成します。 */ +const createObjectValueTemplate = (value, $v, $r) => { + return { + type: object, + $v, + $r, + value, + }; +}; +const state = (source) => { + switch (source.type) { + case atomic: { + switch (source.mode) { + case replace: + return source.value; + case ot: + return source.nullable + ? zod.z.union([zod.z.string(), zod.z.undefined()]) + : zod.z.string(); + } + break; + } + case record: + case paramRecord: { + return zod.z.union([record$1(state(source.value)), zod.z.undefined()]); + } + case object: { + return zod.z + .object({ + $v: source.$v == null ? zod.z.undefined() : zod.z.literal(source.$v), + $r: source.$r == null ? zod.z.undefined() : zod.z.literal(source.$r), + }) + .and(zod.z.object(utils.mapRecord(source.value, value => state(value)))); + } + } +}; +const upOperation = (source) => { + switch (source.type) { + case atomic: { + switch (source.mode) { + case replace: + return zod.z.object({ newValue: source.value }); + case ot: + return source.nullable + ? upOperation$1 + : upOperation$2; + } + break; + } + case record: { + return record$1(recordUpOperationElementFactory(state(source.value), upOperation(source.value))); + } + case paramRecord: + return record$1(upOperation(source.value)); + case object: { + return zod.z + .object({ + $v: source.$v == null ? zod.z.undefined() : zod.z.literal(source.$v), + $r: source.$r == null ? zod.z.undefined() : zod.z.literal(source.$r), + }) + .and(zod.z.object(utils.mapRecord(source.value, value => upOperation(value))).partial()); + } + } +}; +const downOperation = (source) => { + switch (source.type) { + case atomic: { + switch (source.mode) { + case replace: + return zod.z.object({ oldValue: source.value }); + case ot: + return source.nullable + ? downOperation$1 + : downOperation$2; + } + break; + } + case record: { + return record$1(recordDownOperationElementFactory(state(source.value), downOperation(source.value))); + } + case paramRecord: { + return record$1(downOperation(source.value)); + } + case object: { + const base = zod.z + .object({ + $v: source.$v == null ? zod.z.undefined() : zod.z.literal(source.$v), + $r: source.$r == null ? zod.z.undefined() : zod.z.literal(source.$r), + }) + .and(zod.z.object(utils.mapRecord(source.value, value => downOperation(value))).partial()); + return base; + } + } +}; + +const Default = 'Default'; +const Uploader = 'Uploader'; +const FirebaseStorage = 'FirebaseStorage'; +const sourceType = zod.z.union([zod.z.literal(Default), zod.z.literal(Uploader), zod.z.literal(FirebaseStorage)]); +const filePathValue = zod.z.object({ + $v: zod.z.literal(1), + $r: zod.z.literal(1), + path: zod.z.string(), + sourceType, +}); +const filePathTemplate = createReplaceValueTemplate(filePathValue); + +const toFFilePath = (source, astInfo) => { + const result = new floconScript.FRecord(); + result.set({ property: new floconScript.FString('path'), newValue: new floconScript.FString(source.path), astInfo }); + result.set({ + property: new floconScript.FString('sourceType'), + newValue: new floconScript.FString(source.sourceType), + astInfo, + }); + return result; +}; +const toFilePathOrUndefined = (source, astInfo) => { + if (source === undefined) { + return undefined; + } + if (source?.type !== floconScript.FType.Object) { + throw new floconScript.ScriptError(); + } + const path = floconScript.beginCast(source.get({ property: new floconScript.FString('path'), astInfo }), astInfo) + .addString() + .cast(); + const sourceType = floconScript.beginCast(source.get({ property: new floconScript.FString('sourceType'), astInfo }), astInfo) + .addString() + .cast(); + if (sourceType !== Default && sourceType !== FirebaseStorage) { + throw new floconScript.ScriptError(`File type must be '${Default}' or '${FirebaseStorage}'`, astInfo?.range); + } + return { + $v: 1, + $r: 1, + path, + sourceType, + }; +}; + +const value$1 = 'value'; +const isValueSecret$1 = 'isValueSecret'; +class FNumParam extends floconScript.FObject { + numParam; + constructor(numParam) { + super(); + this.numParam = numParam; + } + getCore({ key }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case value$1: + return this.numParam.value == null ? undefined : new floconScript.FNumber(this.numParam.value); + case isValueSecret$1: + return new floconScript.FBoolean(this.numParam.isValuePrivate); + default: + return undefined; + } + } + setCore({ key, newValue, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case value$1: + this.numParam.value = floconScript.beginCast(newValue, astInfo) + .addNumber() + .addUndefined() + .cast(); + return; + case isValueSecret$1: + this.numParam.isValuePrivate = floconScript.beginCast(newValue, astInfo).addBoolean().cast(); + return; + default: + throw new floconScript.ScriptError(`${typeof key === 'symbol' ? 'symbol' : key}への値のセットは制限されています。`); + } + } + toJObject() { + return this.numParam; + } +} + +const createDefaultState$1 = () => ({ + $v: 2, + $r: 1, + value: 0, + isValuePrivate: false, + overriddenParameterName: undefined, +}); +class FNumParams extends floconScript.FObject { + numParams; + room; + constructor(numParams, room) { + super(); + this.numParams = numParams; + this.room = room; + } + findKeysByName(nameOrKey) { + if (this.room.numParamNames == null) { + return []; + } + return utils.recordToArray(this.room.numParamNames) + .filter(({ value }, i) => value.name === nameOrKey || i + 1 === nameOrKey) + .map(({ key }) => key); + } + findByName(nameOrKeyValue, astInfo) { + const name = floconScript.beginCast(nameOrKeyValue, astInfo).addString().addNumber().cast(); + const keys = this.findKeysByName(name); + for (const key of keys) { + const found = this.numParams[key]; + if (found == null) { + const newValue = createDefaultState$1(); + this.numParams[key] = newValue; + return newValue; + } + return found; + } + return undefined; + } + incrOrDecrValue(nameOrKeyValue, diffValue, isIncr, astInfo) { + const diff = floconScript.beginCast(diffValue, astInfo).addNumber().cast(); + const found = this.findByName(nameOrKeyValue, astInfo); + if (found == null) { + return; + } + if (found.value == null) { + return; + } + if (isIncr) { + found.value += diff; + } + else { + found.value -= diff; + } + } + setIsValuePrivate(nameOrKeyValue, newValue, astInfo) { + const $newValue = floconScript.beginCast(newValue, astInfo).addBoolean().cast(); + const found = this.findByName(nameOrKeyValue, astInfo); + if (found == null) { + return; + } + found.isValuePrivate = $newValue; + } + getCore({ key, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case 'find': + return new floconScript.FFunction(({ args }) => { + const result = this.findByName(args[0], astInfo); + if (result == null) { + return undefined; + } + return new FNumParam(result); + }); + case 'incrementValue': + return new floconScript.FFunction(({ args }) => { + this.incrOrDecrValue(args[0], args[1], true, astInfo); + return undefined; + }); + case 'decrementValue': + return new floconScript.FFunction(({ args }) => { + this.incrOrDecrValue(args[0], args[1], false, astInfo); + return undefined; + }); + case 'setValue': + return new floconScript.FFunction(({ args }) => { + const newValue = floconScript.beginCast(args[1], astInfo).addNumber().cast(); + const found = this.findByName(args[0], astInfo); + if (found == null) { + return; + } + found.value = newValue; + return undefined; + }); + case 'setIsValueSecret': + return new floconScript.FFunction(({ args }) => { + this.setIsValuePrivate(args[0], args[1], astInfo); + return undefined; + }); + } + return undefined; + } + setCore() { + throw new floconScript.ScriptError('値のセットは制限されています。'); + } + toJObject() { + return this.numParams; + } +} + +const value = 'value'; +const isValueSecret = 'isValueSecret'; +class FStrParam extends floconScript.FObject { + strParam; + constructor(strParam) { + super(); + this.strParam = strParam; + } + getCore({ key }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case value: + return this.strParam.value == null ? undefined : new floconScript.FString(this.strParam.value); + case isValueSecret: + return new floconScript.FBoolean(this.strParam.isValuePrivate); + default: + return undefined; + } + } + setCore({ key, newValue, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case value: + this.strParam.value = floconScript.beginCast(newValue, astInfo).addString().cast(); + return; + case isValueSecret: + this.strParam.isValuePrivate = floconScript.beginCast(newValue, astInfo).addBoolean().cast(); + return; + default: + throw new floconScript.ScriptError(`${typeof key === 'symbol' ? 'symbol' : key}への値のセットは制限されています。`); + } + } + toJObject() { + return this.strParam; + } +} + +const createDefaultState = () => ({ + $v: 2, + $r: 1, + value: '', + isValuePrivate: false, + overriddenParameterName: undefined, +}); +class FStrParams extends floconScript.FObject { + strParams; + room; + constructor(strParams, room) { + super(); + this.strParams = strParams; + this.room = room; + } + findKeysByName(nameOrKey) { + if (this.room.strParamNames == null) { + return []; + } + return utils.recordToArray(this.room.strParamNames) + .filter(({ value }, i) => value.name === nameOrKey || i + 1 === nameOrKey) + .map(({ key }) => key); + } + findByName(nameOrKeyValue, astInfo) { + const name = floconScript.beginCast(nameOrKeyValue, astInfo).addString().cast(); + const keys = this.findKeysByName(name); + for (const key of keys) { + const found = this.strParams[key]; + if (found == null) { + const newValue = createDefaultState(); + this.strParams[key] = newValue; + return newValue; + } + return found; + } + return undefined; + } + setIsValuePrivate(nameOrKeyValue, newValue, astInfo) { + const $newValue = floconScript.beginCast(newValue, astInfo).addBoolean().cast(); + const found = this.findByName(nameOrKeyValue, astInfo); + if (found == null) { + return; + } + found.isValuePrivate = $newValue; + } + getCore({ key, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case 'find': + return new floconScript.FFunction(({ args }) => { + const result = this.findByName(args[0], astInfo); + if (result == null) { + return undefined; + } + return new FStrParam(result); + }); + case 'setValue': + return new floconScript.FFunction(({ args }) => { + const newValue = floconScript.beginCast(args[1], astInfo).addString().cast(); + const found = this.findByName(args[0], astInfo); + if (found == null) { + return; + } + found.value = newValue; + return undefined; + }); + case 'setIsValueSecret': + return new floconScript.FFunction(({ args }) => { + this.setIsValuePrivate(args[0], args[1], astInfo); + return undefined; + }); + } + return undefined; + } + setCore() { + throw new floconScript.ScriptError('値のセットは制限されています。'); + } + toJObject() { + return this.strParams; + } +} + +const icon = 'icon'; +const name$2 = 'name'; +const booleanParameters = 'booleanParameters'; +const numberParameters = 'numberParameters'; +const maxNumberParameters = 'maxNumberParameters'; +const portrait = 'portrait'; +const stringParameters = 'stringParameters'; +class FCharacter extends floconScript.FObject { + character; + room; + constructor(character, room) { + super(); + this.character = character; + this.room = room; + } + getCore({ key, astInfo }) { + switch (key) { + case booleanParameters: { + if (this.character.boolParams == null) { + this.character.boolParams = {}; + } + return new FBoolParams(this.character.boolParams, this.room); + } + case icon: + return this.character.image == null + ? null + : toFFilePath(this.character.image, astInfo); + case maxNumberParameters: { + if (this.character.numMaxParams == null) { + this.character.numMaxParams = {}; + } + return new FNumParams(this.character.numMaxParams, this.room); + } + case name$2: + return new floconScript.FString(this.character.name); + case numberParameters: { + if (this.character.numParams == null) { + this.character.numParams = {}; + } + return new FNumParams(this.character.numParams, this.room); + } + case portrait: + return this.character.portraitImage == null + ? null + : toFFilePath(this.character.portraitImage, astInfo); + case stringParameters: { + if (this.character.strParams == null) { + this.character.strParams = {}; + } + return new FStrParams(this.character.strParams, this.room); + } + default: + return undefined; + } + } + setCore({ key, newValue, astInfo }) { + switch (key) { + case icon: { + const $newValue = floconScript.beginCast(newValue, astInfo).addObject().cast(); + this.character.image = toFilePathOrUndefined($newValue, astInfo); + return; + } + case name$2: { + const $newValue = floconScript.beginCast(newValue, astInfo).addString().cast(); + this.character.name = $newValue; + return; + } + case booleanParameters: + case maxNumberParameters: + case numberParameters: + case stringParameters: { + throw new floconScript.ScriptError(`${key}は読み取り専用プロパティです。`); + } + case portrait: { + const $newValue = floconScript.beginCast(newValue, astInfo).addObject().cast(); + this.character.portraitImage = toFilePathOrUndefined($newValue, astInfo); + return; + } + default: + throw new floconScript.ScriptError(`'${typeof key === 'symbol' ? 'symbol' : key}' is not supported.`, astInfo?.range); + } + } + toJObject() { + return this.character; + } +} + +class FParamNames extends floconScript.FObject { + room; + mode; + constructor(room, mode) { + super(); + this.room = room; + this.mode = mode; + } + getParamNames() { + switch (this.mode) { + case 'Boolean': { + if (this.room.boolParamNames == null) { + this.room.boolParamNames = {}; + } + return this.room.boolParamNames; + } + case 'Number': { + if (this.room.numParamNames == null) { + this.room.numParamNames = {}; + } + return this.room.numParamNames; + } + case 'String': { + if (this.room.strParamNames == null) { + this.room.strParamNames = {}; + } + return this.room.strParamNames; + } + } + } + find(key, astInfo) { + const keyAsString = floconScript.beginCast(key, astInfo).addNumber().cast().toString(); + if (!isStrIndex20(keyAsString)) { + return undefined; + } + return this.getParamNames()[keyAsString]; + } + ensure(key, astInfo) { + const keyAsString = floconScript.beginCast(key, astInfo).addNumber().cast().toString(); + if (!isStrIndex20(keyAsString)) { + return undefined; + } + const found = this.getParamNames()[keyAsString]; + if (found != null) { + return found; + } + const result = { + $v: 1, + $r: 1, + name: '', + }; + this.getParamNames()[keyAsString] = result; + return result; + } + delete(key, astInfo) { + const keyAsString = floconScript.beginCast(key, astInfo).addNumber().cast().toString(); + if (!isStrIndex20(keyAsString)) { + return false; + } + const found = this.getParamNames()[keyAsString]; + if (found == null) { + return false; + } + this.getParamNames()[keyAsString] = undefined; + return true; + } + getCore({ key, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case 'getName': + return new floconScript.FFunction(({ args }) => { + const result = this.find(args[0], astInfo); + if (result == null) { + return undefined; + } + return new floconScript.FString(result.name); + }); + case 'setName': + return new floconScript.FFunction(({ args }) => { + const result = this.ensure(args[0], astInfo); + const newName = floconScript.beginCast(args[1], astInfo).addString().cast(); + if (result == null) { + return undefined; + } + result.name = newName; + return undefined; + }); + case 'delete': + return new floconScript.FFunction(({ args }) => { + return new floconScript.FBoolean(this.delete(args[0], astInfo)); + }); + } + return undefined; + } + setCore() { + throw new floconScript.ScriptError('値のセットは制限されています。'); + } + toJObject() { + return this.getParamNames(); + } +} + +const name$1 = 'name'; +class FParticipant extends floconScript.FObject { + participant; + constructor(participant) { + super(); + this.participant = participant; + } + getCore({ key }) { + switch (key) { + case name$1: { + const name = this.participant.name; + if (name == null) { + return null; + } + return new floconScript.FString(name); + } + default: + return undefined; + } + } + setCore({ key, newValue, astInfo }) { + switch (key) { + case name$1: { + const $newValue = floconScript.beginCast(newValue, astInfo).addString().addNull().cast(); + if ($newValue === null) { + this.participant.name = undefined; + return; + } + const parsed = maxLength100String.safeParse($newValue); + if (!parsed.success) { + throw new floconScript.ScriptError(`${key}は100文字以下にする必要があります。`); + } + this.participant.name = parsed.data; + return; + } + default: + throw new floconScript.ScriptError(`'${typeof key === 'symbol' ? 'symbol' : key}' is not supported.`, astInfo?.range); + } + } + toJObject() { + return this.participant; + } +} + +class FStateRecord extends floconScript.FRecordRef { + createNewState; + toRef; + constructor({ states, createNewState, toRef, unRef, }) { + super(states, state => (state === undefined ? undefined : toRef(state)), fValue => unRef(fValue)); + this.createNewState = createNewState; + this.toRef = toRef; + } + getCore({ key, astInfo }) { + switch (key) { + case 'set': + // setを有効化すると、不正なStateをセットし放題になってしまうため、代わりにcreateを使ってもらうようにしている。 + return undefined; + case 'create': { + const createNewState = this.createNewState; + if (createNewState == null) { + return undefined; + } + /* + createメソッドの代わりにaddメソッドを実装してユーザーが作成したStateを代入できるようにする作戦は不採用とした。理由は、下のようなコードを書かれた場合に困るため。 + + let states; // FStatesRecordのインスタンス + let newState; // Stateのインスタンス + states.add(newState); + states.add(newState); + newState.name = 'foo'; + + newStateはFRecordであり、それをFStatesRecord.statesに追加する場合はJavaScriptオブジェクトに変換するかFRecordのまま保持するしかない。だが、前者の場合はnewStateの参照の同一性が保持できず、後者はFStatesRecord.statesに2つの型が混在するためコードが複雑化するという問題がある。 + */ + return new floconScript.FFunction(({ isNew, astInfo }) => { + this.prepareInstanceMethod(isNew, astInfo); + const newState = createNewState(); + const record = this.source; + const id = simpleId(); + record[id] = newState; + const result = new floconScript.FRecord(); + result.set({ property: new floconScript.FString('id'), newValue: new floconScript.FString(id), astInfo }); + result.set({ + property: new floconScript.FString('value'), + newValue: this.toRef(newState), + astInfo, + }); + return result; + }); + } + default: + return super.getCore({ key, astInfo }); + } + } +} + +const name = 'name'; +const characters = 'characters'; +class FRoom extends floconScript.FObject { + myUserUid; + // FRoom内の State は全てmutableとして扱う。FCharacter内のCharacter.Stateなども同様。 + _room; + constructor(source, myUserUid) { + super(); + this.myUserUid = myUserUid; + this._room = esToolkit.cloneDeep(source); + } + get room() { + return this._room; + } + findCharacter(stateId) { + const character = (this._room.characters ?? {})[stateId]; + if (character == null) { + return undefined; + } + return new FCharacter(character, this.room); + } + getCore({ key }) { + switch (key) { + case name: + return new floconScript.FString(this._room.name); + case 'booleanParameterNames': + return new FParamNames(this.room, 'Boolean'); + case characters: + return new FStateRecord({ + states: (() => { + if (this.room.characters == null) { + this.room.characters = {}; + } + return this.room.characters; + })(), + createNewState: () => ({ + $v: 2, + $r: 1, + ownerParticipantId: this.myUserUid, + image: undefined, + isPrivate: false, + memo: '', + name: '', + chatPalette: '', + dicePieceValues: {}, + hasTag1: false, + hasTag2: false, + hasTag3: false, + hasTag4: false, + hasTag5: false, + hasTag6: false, + hasTag7: false, + hasTag8: false, + hasTag9: false, + hasTag10: false, + pieces: {}, + privateCommands: {}, + privateVarToml: '', + portraitImage: undefined, + portraitPieces: {}, + boolParams: {}, + numParams: {}, + numMaxParams: {}, + strParams: {}, + stringPieceValues: {}, + }), + toRef: x => new FCharacter(x, this.room), + unRef: x => { + if (x instanceof FCharacter) { + return x.character; + } + throw new Error('this should not happen'); + }, + }); + case 'numberParameterNames': + return new FParamNames(this.room, 'Number'); + case 'stringParameterNames': + return new FParamNames(this.room, 'String'); + case 'participants': + return new FStateRecord({ + states: (() => { + if (this.room.participants == null) { + this.room.participants = {}; + } + return this.room.participants; + })(), + createNewState: undefined, + toRef: x => new FParticipant(x), + unRef: x => { + if (x instanceof FParticipant) { + return x.participant; + } + throw new Error('this should not happen'); + }, + }); + default: + return undefined; + } + } + setCore({ key, newValue, astInfo }) { + switch (key) { + case name: { + const $newValue = floconScript.beginCast(newValue, astInfo).addString().cast(); + this._room.name = $newValue; + return; + } + default: + throw new floconScript.ScriptError(`${typeof key === 'symbol' ? 'symbol' : key}への値のセットは制限されています。`, astInfo?.range); + } + } + toJObject() { + return this._room; + } +} + +class CommandError extends Error { + range; + constructor(message, range) { + super(message); + this.range = range; + this.name = 'CommandError'; + } +} +const testCommand = (script) => { + try { + floconScript.test(script); + } + catch (e) { + if (e instanceof floconScript.ScriptError) { + return result.Result.error(new CommandError(e.message, e.range)); + } + if (e instanceof Error) { + return result.Result.error(new CommandError(e.message)); + } + throw e; + } + return result.Result.ok(undefined); +}; +const execCharacterCommand = ({ script, room, characterId, myUserUid, }) => { + const fRoom = new FRoom(room, myUserUid); + const fCharacter = fRoom.findCharacter(characterId); + if (fCharacter == null) { + throw new Error(`character(${utils.keyNames(characterId)}) not found`); + } + const globalThis = { + room: fRoom, + character: fCharacter, + Array: floconScript.arrayClass, + console: floconScript.createConsoleClass('[Floconスクリプト]'), + }; + try { + floconScript.exec(script, globalThis); + } + catch (e) { + if (e instanceof floconScript.ScriptError) { + return result.Result.error(new CommandError(e.message, e.range)); + } + if (e instanceof Error) { + return result.Result.error(new CommandError(e.message)); + } + throw e; + } + const result$1 = fRoom.room; + return result.Result.ok(result$1); +}; + +const toPathArray = (source) => { + let result; + if (typeof source === 'string') { + result = source.replace(/(^\/)|(\/$)/g, '').split('/'); + } + else { + result = source; + } + return result.filter(name => name !== ''); +}; +const replacement = '_'; +const sanitizeCore = (input) => { + /* + npm の sanitize-filename(https://github.com/parshap/node-sanitize-filename/blob/209c39b914c8eb48ee27bcbde64b2c7822fdf3de/index.js ライセンスは WTFPL or ISC)を参考にしている。 + sanitize-filename からの主な変更点は次の通り。 + + - no-useless-escapeのwarningが出る\を消去。 + - windowsReservedReとwindowsTrailingReを消去。 + */ + const illegalRe = /[/?<>\\:*|"]/g; + // eslint-disable-next-line no-control-regex + const controlRe = /[\x00-\x1f\x80-\x9f]/g; + const reservedRe = /^\.+$/; + return input + .replace(illegalRe, replacement) + .replace(controlRe, replacement) + .replace(reservedRe, replacement); +}; +const sanitizeFoldername = (input) => { + const sanitized = sanitizeCore(input); + // 255という数値は、実用的な長さの中で最大値だとこちらで判断した値 + return truncate__default.default(sanitized, 255); +}; +const sanitizeFilename = (input) => { + const sanitized = sanitizeCore(input); + // 255という数値は、実用的な長さの中で最大値だとこちらで判断した値 + const result = truncate__default.default(sanitized, 255); + if (sanitized !== result) { + // truncateが発生したファイル名をそのまま返すと、拡張子が消えて混乱を招くおそれがあるため代わりにnullを返している。 + return null; + } + return result; +}; +const toResult = (path) => { + const arrayResult = toPathArray(path); + return { + string: arrayResult.join('/'), + array: arrayResult, + }; +}; +const trySanitizePath = (path) => { + const pathArray = toPathArray(path); + const sanitizedArray = []; + for (const elem of pathArray) { + const next = sanitizeCore(elem); + sanitizedArray.push(next); + } + const result = toResult(sanitizedArray); + if (result.string != null) { + // Firebase および Cloud Storage には length 1-1024 bytes when UTF-8 encoded という制限があるので1024を指定している + const truncated = truncate__default.default(result.string, 1024); + if (result.string !== truncated) { + // truncateが発生したファイルパスをそのまま返すと、末尾のほうのフォルダがなくなったり、拡張子が消えて混乱を招くおそれがあるため代わりにnullを返している。 + return null; + } + } + return result; +}; +/** + * + * @returns Sanitizeされていない値を返します。 + */ +const joinPath = (left, ...right) => { + let source = toPathArray(left); + for (const r of right) { + const next = toPathArray(r); + source = [...source, ...next]; + } + return toResult(source); +}; + +const createFakeFirebaseConfig1 = () => { + const json = '{"apiKey": "1abcde-ghijk-lmno-1234","authDomain": "1***.firebaseapp.com","projectId": "1***","storageBucket": "1***.appspot.com","messagingSenderId": "11234567890","appId": "1:1234567890:web:1234567890abcdef"}'; + const parsed = firebaseConfig.parse(JSON.parse(json)); + return [parsed, json]; +}; +const fakeFirebaseConfig1 = createFakeFirebaseConfig1(); +const createFakeFirebaseConfig2 = () => { + const json = '{"apiKey": "2abcde-ghijk-lmno-1234","authDomain": "2***.firebaseapp.com","projectId": "2***","storageBucket": "2***.appspot.com","messagingSenderId": "21234567890","appId": "2:1234567890:web:1234567890abcdef"}'; + const parsed = firebaseConfig.parse(JSON.parse(json)); + return [parsed, json]; +}; +const fakeFirebaseConfig2 = createFakeFirebaseConfig2(); + +// (不正な|悪意のある)キーが混入するおそれがあるのはserverTransformのときのみなので、serverTransform以外では使わなくてよい +const isValidKey = (key) => { + // Firebase Authenticationのuidは28文字のようなので、最低でもその文字数は許容しなければならない + if (key.length >= 40) { + return false; + } + return key.match(/^([0-9a-zA-Z]|-|_)+$/g) != null; +}; + +const restore$2 = ({ nextState: unsafeNextState, downOperation: unsafeDownOperation, innerRestore, }) => { + const nextState = utils.recordToMap(unsafeNextState); + if (unsafeDownOperation == null) { + return result.Result.ok({ + prevState: utils.mapToRecord(nextState), + twoWayOperation: undefined, + }); + } + const prevState = new Map(nextState); + const twoWayOperation = new Map(); + for (const [key, value] of utils.recordToMap(unsafeDownOperation)) { + const nextStateElement = nextState.get(key); + if (nextStateElement === undefined) { + return result.Result.error(`tried to update "${key}", but nextState does not have such a key`); + } + const restored = innerRestore({ + downOperation: value, + nextState: nextStateElement, + key, + }); + if (restored.isError) { + return restored; + } + if (restored.value === undefined) { + continue; + } + prevState.set(key, restored.value.prevState); + if (restored.value.twoWayOperation !== undefined) { + twoWayOperation.set(key, restored.value.twoWayOperation); + } + } + return result.Result.ok({ + prevState: utils.mapToRecord(prevState), + twoWayOperation: twoWayOperation.size === 0 ? undefined : utils.mapToRecord(twoWayOperation), + }); +}; +const apply$3 = ({ prevState: unsafePrevState, operation, innerApply, defaultState, }) => { + if (operation == null) { + return result.Result.ok(unsafePrevState); + } + const prevState = utils.recordToMap(unsafePrevState); + const nextState = new Map(prevState); + for (const [key, value] of utils.recordToMap(operation)) { + const prevStateElement = prevState.get(key) ?? defaultState; + const newValue = innerApply({ + operation: value, + prevState: prevStateElement, + key, + }); + if (newValue.isError) { + return newValue; + } + nextState.set(key, newValue.value); + } + return result.Result.ok(utils.mapToRecord(nextState)); +}; +const applyBack$2 = ({ nextState: unsafeNextState, operation, innerApplyBack, defaultState, }) => { + if (operation == null) { + return result.Result.ok(unsafeNextState); + } + const nextState = utils.recordToMap(unsafeNextState); + const prevState = new Map(nextState); + for (const [key, value] of utils.recordToMap(operation)) { + const nextStateElement = nextState.get(key) ?? defaultState; + const oldValue = innerApplyBack({ + operation: value, + nextState: nextStateElement, + key, + }); + if (oldValue.isError) { + return oldValue; + } + prevState.set(key, oldValue.value); + } + return result.Result.ok(utils.mapToRecord(prevState)); +}; +// UpOperation、DownOperation、TwoWayOperation のいずれにも使用可能なので、composeDownOperationではなくcomposeという汎用的な名前を付けている。 +const compose$1 = ({ first, second, innerCompose, }) => { + if (first == null) { + return result.Result.ok(second == null || isEmptyRecord(second) ? undefined : second); + } + if (second == null) { + return result.Result.ok(first == null || isEmptyRecord(first) ? undefined : first); + } + const result$1 = new Map(); + for (const [key, groupJoined] of utils.groupJoinMap(utils.recordToMap(first), utils.recordToMap(second))) { + switch (groupJoined.type) { + case utils.left: + result$1.set(key, groupJoined.left); + continue; + case utils.right: + result$1.set(key, groupJoined.right); + continue; + case utils.both: { + const update = innerCompose({ + first: groupJoined.left, + second: groupJoined.right, + key, + }); + if (update.isError) { + return update; + } + if (update.value !== undefined) { + result$1.set(key, update.value); + } + continue; + } + } + } + return result.Result.ok(result$1.size === 0 ? undefined : utils.mapToRecord(result$1)); +}; +/** Make sure `apply(stateBeforeFirst, first) = stateAfterFirst` */ +const serverTransform$p = ({ first: unsafeFirst, second: unsafeSecond, stateBeforeFirst: unsafeStateBeforeFirst, stateAfterFirst: unsafeStateAfterFirst, innerTransform, defaultState, }) => { + if (unsafeSecond === undefined) { + return result.Result.ok(undefined); + } + const result$1 = new Map(); + const prevState = utils.recordToMap(unsafeStateBeforeFirst); + const nextState = utils.recordToMap(unsafeStateAfterFirst); + const first = unsafeFirst == null ? undefined : utils.recordToMap(unsafeFirst); + for (const [key, operation] of utils.recordToMap(unsafeSecond)) { + if (!isValidKey(key)) { + return result.Result.error(`${key} is not a valid key.`); + } + const innerPrevState = prevState.get(key) ?? defaultState; + const innerNextState = nextState.get(key) ?? defaultState; + const innerFirst = first == null ? undefined : first.get(key); + const transformed = innerTransform({ + first: innerFirst, + second: operation, + prevState: innerPrevState, + nextState: innerNextState, + key, + }); + if (transformed.isError) { + return transformed; + } + const transformedUpdate = transformed.value; + if (transformedUpdate !== undefined) { + result$1.set(key, transformedUpdate); + } + } + return result.Result.ok(result$1.size === 0 ? undefined : utils.mapToRecord(result$1)); +}; +const clientTransform$3 = ({ state, first, second, innerTransform, defaultState, }) => { + if (first === undefined || second === undefined) { + return result.Result.ok({ + firstPrime: first === undefined || isEmptyRecord(first) ? undefined : first, + secondPrime: second === undefined || isEmptyRecord(second) ? undefined : second, + }); + } + const firstPrime = new Map(); + const secondPrime = new Map(); + let error = undefined; + utils.groupJoinMap(utils.recordToMap(first), utils.recordToMap(second)).forEach((group, key) => { + if (error != null) { + return; + } + switch (group.type) { + case utils.left: { + firstPrime.set(key, group.left); + return; + } + case utils.right: { + secondPrime.set(key, group.right); + return; + } + case utils.both: { + const s = state[key] ?? defaultState; + const xform = innerTransform({ + state: s, + first: group.left, + second: group.right, + }); + if (xform.isError) { + error = { error: xform.error }; + return; + } + if (xform.value.firstPrime !== undefined) { + firstPrime.set(key, xform.value.firstPrime); + } + if (xform.value.secondPrime !== undefined) { + secondPrime.set(key, xform.value.secondPrime); + } + return; + } + } + }); + if (error != null) { + return result.Result.error(error.error); + } + return result.Result.ok({ + firstPrime: firstPrime.size === 0 ? undefined : utils.mapToRecord(firstPrime), + secondPrime: secondPrime.size === 0 ? undefined : utils.mapToRecord(secondPrime), + }); +}; +const diff$2 = ({ prevState, nextState, innerDiff, }) => { + const result = new Map(); + for (const [key, value] of utils.groupJoinMap(utils.recordToMap(prevState), utils.recordToMap(nextState))) { + let prevState = undefined; + let nextState = undefined; + switch (value.type) { + case utils.left: + prevState = value.left; + break; + case utils.right: { + nextState = value.right; + break; + } + case utils.both: { + prevState = value.left; + nextState = value.right; + break; + } + } + const diffResult = innerDiff({ prevState, nextState, key }); + if (diffResult === undefined) { + continue; + } + result.set(key, diffResult); + continue; + } + if (result.size === 0) { + return undefined; + } + return utils.mapToRecord(result); +}; + +/** Make sure `apply(prevState, source) = nextState` */ +const toClientState$i = ({ serverState, isPrivate, toClientState, }) => { + if (serverState == null) { + return undefined; + } + const result = new Map(); + utils.recordForEach(serverState, (value, key) => { + if (isPrivate(value, key)) { + return; + } + result.set(key, toClientState({ state: value, key })); + }); + return utils.mapToRecord(result); +}; +// composeDownOperationは、レコード内の同一キーを時系列順でremove→addしたものをcomposeすると、本来はupdateになるべきだが、replaceになってしまうという仕様がある。だが、このrestore関数ではそれをupdateに変換してくれる。その代わり、innerDiffはdownでなくtwoWayである必要がある。 +const restore$1 = ({ nextState, downOperation, innerRestore, innerDiff, }) => { + if (downOperation == null) { + return result.Result.ok({ + prevState: nextState, + twoWayOperation: undefined, + }); + } + const prevState = utils.recordToMap(nextState); + const twoWayOperation = new Map(); + for (const [key, value] of utils.recordToMap(downOperation)) { + switch (value.type) { + case 'replace': { + const oldValue = value.replace.oldValue; + const newValue = nextState[key]; + if (oldValue === undefined) { + prevState.delete(key); + } + else { + prevState.set(key, oldValue); + } + if (oldValue === undefined) { + if (newValue === undefined) { + break; + } + twoWayOperation.set(key, { + type: 'replace', + replace: { oldValue, newValue }, + }); + break; + } + if (newValue === undefined) { + twoWayOperation.set(key, { + type: 'replace', + replace: { oldValue, newValue: undefined }, + }); + break; + } + const diff = innerDiff({ + key, + prevState: oldValue, + nextState: newValue, + }); + if (diff !== undefined) { + twoWayOperation.set(key, { type: 'update', update: diff }); + } + break; + } + case 'update': { + const nextStateElement = nextState[key]; + if (nextStateElement === undefined) { + return result.Result.error(`tried to update "${key}", but nextState does not have such a key`); + } + const restored = innerRestore({ + key, + downOperation: value.update, + nextState: nextStateElement, + }); + if (restored.isError) { + return restored; + } + prevState.set(key, restored.value.prevState); + if (restored.value.twoWayOperation !== undefined) { + twoWayOperation.set(key, { + type: 'update', + update: restored.value.twoWayOperation, + }); + } + break; + } + } + } + return result.Result.ok({ + prevState: utils.mapToRecord(prevState), + twoWayOperation: twoWayOperation.size === 0 ? undefined : utils.mapToRecord(twoWayOperation), + }); +}; +// replace によって、存在しないキーを削除しようとしたり、すでに存在するキーに上書きするような operation は、現時点では許容している。だが、将来禁止するかもしれない。 +const apply$2 = ({ prevState, operation, innerApply, }) => { + if (operation == null) { + return result.Result.ok(prevState); + } + const nextState = utils.recordToMap(prevState); + for (const [key, value] of utils.recordToMap(operation)) { + switch (value.type) { + case 'replace': { + if (value.replace.newValue === undefined) { + nextState.delete(key); + } + else { + nextState.set(key, value.replace.newValue); + } + break; + } + case 'update': { + const prevStateElement = prevState[key]; + if (prevStateElement === undefined) { + return result.Result.error(`tried to update "${key}", but prevState does not have such a key`); + } + const newValue = innerApply({ + key, + operation: value.update, + prevState: prevStateElement, + }); + if (newValue.isError) { + return newValue; + } + nextState.set(key, newValue.value); + break; + } + } + } + return result.Result.ok(utils.mapToRecord(nextState)); +}; +// replace によって、存在しないキーを削除しようとしたり、すでに存在するキーに上書きするような operation は、現時点では許容している。だが、将来禁止するかもしれない。 +const applyBack$1 = ({ nextState, operation, innerApplyBack, }) => { + if (operation == null) { + return result.Result.ok(nextState); + } + const prevState = utils.recordToMap(nextState); + for (const [key, value] of utils.recordToMap(operation)) { + switch (value.type) { + case 'replace': { + if (value.replace.oldValue === undefined) { + prevState.delete(key); + } + else { + prevState.set(key, value.replace.oldValue); + } + break; + } + case 'update': { + const nextStateElement = nextState[key]; + if (nextStateElement === undefined) { + return result.Result.error(`tried to update "${key}", but nextState does not have such a key`); + } + const oldValue = innerApplyBack({ + key, + operation: value.update, + state: nextStateElement, + }); + if (oldValue.isError) { + return oldValue; + } + prevState.set(key, oldValue.value); + break; + } + } + } + return result.Result.ok(utils.mapToRecord(prevState)); +}; +// stateが必要ないため処理を高速化&簡略化できるが、その代わり戻り値のreplaceにおいて oldValue === undefined && newValue === undefined もしくは oldValue !== undefined && newValue !== undefinedになるケースがある。 +const compose = ({ first, second, composeReplaceReplace, composeReplaceUpdate, composeUpdateReplace, composeUpdateUpdate, }) => { + if (first == null) { + return result.Result.ok(second == null || isEmptyRecord(second) ? undefined : second); + } + if (second == null) { + return result.Result.ok(first == null || isEmptyRecord(first) ? undefined : first); + } + const result$1 = new Map(); + for (const [key, groupJoined] of utils.groupJoinMap(utils.recordToMap(first), utils.recordToMap(second))) { + switch (groupJoined.type) { + case utils.left: + switch (groupJoined.left.type) { + case 'replace': + result$1.set(key, { + type: 'replace', + replace: groupJoined.left.replace, + }); + continue; + case 'update': + result$1.set(key, { + type: 'update', + update: groupJoined.left.update, + }); + continue; + } + break; + case utils.right: + switch (groupJoined.right.type) { + case 'replace': + result$1.set(key, { + type: 'replace', + replace: groupJoined.right.replace, + }); + continue; + case 'update': + result$1.set(key, { + type: 'update', + update: groupJoined.right.update, + }); + continue; + } + break; + case utils.both: + switch (groupJoined.left.type) { + case 'replace': + switch (groupJoined.right.type) { + case 'replace': { + const composed = composeReplaceReplace({ + first: groupJoined.left.replace, + second: groupJoined.right.replace, + key, + }); + if (composed.isError) { + return composed; + } + if (composed.value === undefined) { + continue; + } + result$1.set(key, { + type: 'replace', + replace: composed.value, + }); + continue; + } + case 'update': { + const composed = composeReplaceUpdate({ + first: groupJoined.left.replace, + second: groupJoined.right.update, + key, + }); + if (composed.isError) { + return composed; + } + if (composed.value === undefined) { + continue; + } + result$1.set(key, { + type: 'replace', + replace: composed.value, + }); + continue; + } + } + continue; + case 'update': + switch (groupJoined.right.type) { + case 'replace': { + const composed = composeUpdateReplace({ + first: groupJoined.left.update, + second: groupJoined.right.replace, + key, + }); + if (composed.isError) { + return composed; + } + if (composed.value === undefined) { + continue; + } + result$1.set(key, { + type: 'replace', + replace: composed.value, + }); + continue; + } + case 'update': { + const composed = composeUpdateUpdate({ + first: groupJoined.left.update, + second: groupJoined.right.update, + key, + }); + if (composed.isError) { + return composed; + } + if (composed.value === undefined) { + continue; + } + result$1.set(key, { + type: 'update', + update: composed.value, + }); + continue; + } + } + } + break; + } + } + return result.Result.ok(result$1.size === 0 ? undefined : utils.mapToRecord(result$1)); +}; +const composeDownOperation$1 = ({ first, second, innerApplyBack, innerCompose, }) => { + return compose({ + first, + second, + composeReplaceReplace: params => { + return result.Result.ok(params.first); + }, + composeReplaceUpdate: params => { + return result.Result.ok(params.first); + }, + composeUpdateReplace: params => { + if (params.second.oldValue === undefined) { + return result.Result.error(`first is update, but second.oldValue is null. the key is "${params.key}".`); + } + const firstOldValue = innerApplyBack({ + key: params.key, + operation: params.first, + state: params.second.oldValue, + }); + if (firstOldValue.isError) { + return firstOldValue; + } + return result.Result.ok({ oldValue: firstOldValue.value }); + }, + composeUpdateUpdate: params => { + return innerCompose({ + key: params.key, + first: params.first, + second: params.second, + }); + }, + }); +}; +/** Make sure `apply(stateBeforeFirst, first) = stateAfterFirst` */ +const serverTransformWithoutValidation = ({ first, second, stateBeforeFirst, stateAfterFirst, innerTransform, toServerState, cancellationPolicy, }) => { + // 現在のCharacterの全体Privateの仕組みだと、PrivateになっているCharacterをupdateもしくはremoveしようとしてもエラーは出ない(最新の状態でPrivateになっているかどうかはクライアント側はわからないので、代わりにエラーを返すのは問題がある)。だが、現在のこのtransformのコードだと、存在しないCharacterをupdateもしくはremoveしようとするとエラーを返す。このため、keyを Brute-force attackすることで、PrivateになっているCharacterが存在することを理論上は判別できてしまう。だが、中の値は見ることができないので、現状のままでも問題ないと考えている。 + if (second === undefined) { + return result.Result.ok(undefined); + } + const result$1 = new Map(); + for (const [key, operation] of utils.recordToMap(second)) { + if (!isValidKey(key)) { + return result.Result.error(`"${key}" is not a valid key.`); + } + switch (operation.type) { + case replace$1: { + const innerPrevState = stateBeforeFirst?.[key]; + const innerNextState = stateAfterFirst?.[key]; + /**** requested to remove ****/ + if (operation.replace.newValue === undefined) { + if (innerPrevState === undefined) { + return result.Result.error(`"${key}" was not found at requested revision. It is not allowed to try to remove non-existing element.`); + } + if (innerNextState === undefined) { + // removeを試みたが、既に誰かによってremoveされているので何もする必要がない。よって終了。 + break; + } + if (cancellationPolicy.cancelRemove) { + if (cancellationPolicy.cancelRemove({ + key, + state: innerNextState, + })) { + break; + } + } + result$1.set(key, { + type: replace$1, + replace: { + oldValue: innerNextState, + newValue: undefined, + }, + }); + break; + } + /**** requested to add ****/ + if (innerPrevState !== undefined) { + return result.Result.error(`"${key}" was found at requested revision. When adding a state, old value must be empty.`); + } + if (innerNextState !== undefined) { + // addを試みたが、既に誰かによってaddされているので何もする必要がない。よって終了。 + break; + } + const newValue = toServerState(operation.replace.newValue, key); + if (cancellationPolicy.cancelCreate) { + if (cancellationPolicy.cancelCreate({ key, newState: newValue })) { + break; + } + } + result$1.set(key, { + type: replace$1, + replace: { + oldValue: undefined, + newValue, + }, + }); + break; + } + case update$2: { + const innerPrevState = stateBeforeFirst?.[key]; + const innerNextState = stateAfterFirst?.[key]; + const innerFirst = first?.[key]; + if (innerPrevState === undefined) { + return result.Result.error(`tried to update "${key}", but not found.`); + } + if (innerNextState === undefined) { + // updateを試みたが、既に誰かによってremoveされているのでupdateは行われない。よって終了。 + break; + } + // Type guard。事前条件が満たされていれば、innerPrevState !== undefinedかつinnerNextState !== undefinedならばこれは必ずfalseになるので、下のbreakには来ない。 + if (innerFirst !== undefined && innerFirst.type === replace$1) { + break; + } + if (cancellationPolicy.cancelUpdate) { + if (cancellationPolicy.cancelUpdate({ + key, + prevState: innerPrevState, + nextState: innerNextState, + })) { + break; + } + } + const transformed = innerTransform({ + first: innerFirst?.update, + second: operation.update, + prevState: innerPrevState, + nextState: innerNextState, + key, + }); + if (transformed.isError) { + return transformed; + } + const transformedUpdate = transformed.value; + if (transformedUpdate !== undefined) { + result$1.set(key, { + type: update$2, + update: transformedUpdate, + }); + } + } + } + } + return result.Result.ok(result$1.size === 0 ? undefined : utils.mapToRecord(result$1)); +}; +/** Make sure `apply(stateBeforeFirst, first) = stateAfterFirst` */ +const serverTransform$o = (params) => { + const result$1 = serverTransformWithoutValidation(params); + if (result$1.isError) { + return result$1; + } + if (result$1.value == null) { + return result$1; + } + if (params.validation?.maxRecordLength != null) { + const prevStateLength = utils.recordToArray(params.stateAfterFirst).length; + let nextStateLength = prevStateLength; + utils.recordForEach(result$1.value, operation => { + if (operation.type === update$2) { + return; + } + if (operation.replace.oldValue != null) { + nextStateLength--; + } + if (operation.replace.newValue != null) { + nextStateLength++; + } + }); + if (params.validation.maxRecordLength < nextStateLength && + prevStateLength < nextStateLength) { + return result.Result.error(`${params.validation.recordName} の要素の数が多すぎるため、これ以上追加することはできません。追加するには、不要な要素を削除してください。`); + } + } + return result$1; +}; +const transformElement = ({ state, first, second, innerTransform, innerDiff, errorMessageOnStateNotFound, }) => { + switch (first.type) { + case replace$1: + switch (second.type) { + case replace$1: + // 通常、片方がnon-undefinedならばもう片方もnon-undefined。 + if (first.replace.newValue !== undefined && + second.replace.newValue !== undefined) { + const diffResult = innerDiff({ + nextState: first.replace.newValue, + prevState: second.replace.newValue, + }); + if (diffResult === undefined) { + return result.Result.ok({ + firstPrime: undefined, + secondPrime: undefined, + }); + } + return result.Result.ok({ + firstPrime: { type: update$2, update: diffResult }, + secondPrime: undefined, + }); + } + // 通常、ここに来る場合は first.newValue === undefined && second.newValue === undefined + return result.Result.ok({ + firstPrime: undefined, + secondPrime: undefined, + }); + case update$2: + return result.Result.ok({ + firstPrime: first, + secondPrime: undefined, + }); + } + break; + case update$2: + switch (second.type) { + case replace$1: { + if (second.replace.newValue !== undefined) { + throw new Error('Tried to add an element, but already exists another value.'); + } + return result.Result.ok({ + firstPrime: undefined, + secondPrime: { + type: replace$1, + replace: { + newValue: undefined, + }, + }, + }); + } + case update$2: { + if (state === undefined) { + return result.Result.error(errorMessageOnStateNotFound); + } + const xform = innerTransform({ + state, + first: first.update, + second: second.update, + }); + if (xform.isError) { + return xform; + } + return result.Result.ok({ + firstPrime: xform.value.firstPrime == null + ? undefined + : { + type: update$2, + update: xform.value.firstPrime, + }, + secondPrime: xform.value.secondPrime == null + ? undefined + : { + type: update$2, + update: xform.value.secondPrime, + }, + }); + } + } + break; + } +}; +const clientTransform$2 = ({ state, first, second, innerTransform, innerDiff, }) => { + if (first == null || second == null) { + return result.Result.ok({ + firstPrime: first == null || isEmptyRecord(first) ? undefined : first, + secondPrime: second == null || isEmptyRecord(second) ? undefined : second, + }); + } + const firstPrime = new Map(); + const secondPrime = new Map(); + let error = undefined; + utils.groupJoinMap(utils.recordToMap(first), utils.recordToMap(second)).forEach((group, key) => { + if (error != null) { + return; + } + switch (group.type) { + case utils.left: { + firstPrime.set(key, group.left); + return; + } + case utils.right: { + secondPrime.set(key, group.right); + return; + } + case utils.both: { + const xform = transformElement({ + state: state[key], + first: group.left, + second: group.right, + innerTransform, + innerDiff, + errorMessageOnStateNotFound: `"${key}" is not found at RecordOperation.clientTransform.`, + }); + if (xform.isError) { + error = { error: xform.error }; + return; + } + if (xform.value.firstPrime !== undefined) { + firstPrime.set(key, xform.value.firstPrime); + } + if (xform.value.secondPrime !== undefined) { + secondPrime.set(key, xform.value.secondPrime); + } + return; + } + } + }); + if (error != null) { + return result.Result.error(error.error); + } + return result.Result.ok({ + firstPrime: firstPrime.size === 0 ? undefined : utils.mapToRecord(firstPrime), + secondPrime: secondPrime.size === 0 ? undefined : utils.mapToRecord(secondPrime), + }); +}; +const diff$1 = ({ prevState, nextState, innerDiff, }) => { + const result = new Map(); + for (const [key, value] of utils.groupJoinMap(utils.recordToMap(prevState), utils.recordToMap(nextState))) { + switch (value.type) { + case utils.left: + result.set(key, { + type: replace$1, + replace: { oldValue: value.left, newValue: undefined }, + }); + continue; + case utils.right: { + result.set(key, { + type: replace$1, + replace: { oldValue: undefined, newValue: value.right }, + }); + continue; + } + case utils.both: { + const diffResult = innerDiff({ + key, + prevState: value.left, + nextState: value.right, + }); + if (diffResult === undefined) { + continue; + } + result.set(key, { type: update$2, update: diffResult }); + continue; + } + } + } + if (result.size === 0) { + return undefined; + } + return utils.mapToRecord(result); +}; +const mapRecordUpOperation = ({ source, mapState, mapOperation, }) => { + return utils.chooseRecord(source, element => { + if (element.type === replace$1) { + return { + type: replace$1, + replace: { + newValue: element.replace.newValue == null + ? undefined + : mapState(element.replace.newValue), + }, + }; + } + return { + type: update$2, + update: mapOperation(element.update), + }; + }); +}; +const mapRecordDownOperation = ({ source, mapState, mapOperation, }) => { + return utils.chooseRecord(source, element => { + if (element.type === replace$1) { + return { + type: replace$1, + replace: { + oldValue: element.replace.oldValue == null + ? undefined + : mapState(element.replace.oldValue), + }, + }; + } + return { + type: update$2, + update: mapOperation(element.update), + }; + }); +}; + +/* eslint-disable @typescript-eslint/no-unsafe-argument */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +/* eslint-disable @typescript-eslint/no-unsafe-return */ +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ +const $v = '$v'; +const $r = '$r'; +const isKeyToIgnore = (key) => key === $v || key === $r; +const warnNotFoundTemplate = ({ key, objectType, }) => { + utils.loggerRef.warn(`"${key}" key was found at ${objectType} object, but template not found. It seems that the template is invalid or the ${objectType} object has keys which are not in the template.`); +}; +/** TwoWayOperationをUpOperationに変換します。 */ +const toUpOperation = (template) => (twoWayOperation) => { + const twoWayOperationAsAny = twoWayOperation; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return { + newValue: twoWayOperationAsAny.newValue, + }; + case ot: + return template.nullable + ? toUpOperation$1(twoWayOperationAsAny) + : toUpOperation$2(twoWayOperationAsAny); + } + break; + } + case record: { + return mapRecordUpOperation({ + source: twoWayOperation, + mapState: x => x, + mapOperation: operation => toUpOperation(template.value)(operation), + }); + } + case paramRecord: { + return utils.mapRecord(twoWayOperation, x => toUpOperation(template.value)(x)); + } + case object: { + return utils.mapRecord(twoWayOperation, (operationElement, key) => { + if (isKeyToIgnore(key)) { + return operationElement; + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + return undefined; + } + return toUpOperation(templateElement)(operationElement); + }); + } + } +}; +/** TwoWayOperationをDownOperationに変換します。 */ +const toDownOperation = (template) => (twoWayOperation) => { + const twoWayOperationAsAny = twoWayOperation; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return { + oldValue: twoWayOperationAsAny.oldValue, + }; + case ot: + return template.nullable + ? toDownOperation$1(twoWayOperationAsAny) + : toDownOperation$2(twoWayOperationAsAny); + } + break; + } + case record: { + return mapRecordDownOperation({ + source: twoWayOperation, + mapState: x => x, + mapOperation: operation => toDownOperation(template.value)(operation), + }); + } + case paramRecord: { + return utils.mapRecord(twoWayOperation, x => toDownOperation(template.value)(x)); + } + case object: { + return utils.mapRecord(twoWayOperation, (operationElement, key) => { + if (isKeyToIgnore(key)) { + return operationElement; + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + return undefined; + } + return toDownOperation(templateElement)(operationElement); + }); + } + } +}; +/** StateにUpOperationを適用します。破壊的な処理は行われません。 */ +const apply$1 = (template) => ({ state, operation }) => { + const operationAsAny = operation; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return result.Result.ok(operationAsAny.newValue); + case ot: + return template.nullable + ? apply$4(state, operationAsAny) + : apply$5(state, operationAsAny); + } + break; + } + case record: { + return apply$2({ + prevState: (state ?? {}), + operation: operation, + innerApply: ({ prevState, operation }) => apply$1(template.value)({ + state: prevState, + operation: operation, + }), + }); + } + case paramRecord: { + return apply$3({ + prevState: state ?? {}, + operation: operation, + innerApply: ({ prevState, operation }) => apply$1(template.value)({ + state: prevState, + operation: operation, + }), + defaultState: template.defaultState, + }); + } + case object: { + const result$1 = { ...state }; + for (const { key, value } of utils.recordToArray(operation)) { + if (isKeyToIgnore(key)) { + continue; + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + continue; + } + const applied = apply$1(templateElement)({ + state: state[key], + operation: value, + }); + if (applied.isError) { + return applied; + } + result$1[key] = applied.value; + } + return result.Result.ok(result$1); + } + } +}; +/** StateにDownOperationを適用します。破壊的な処理は行われません。 */ +const applyBack = (template) => ({ state, operation }) => { + const operationAsAny = operation; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return result.Result.ok(operationAsAny.oldValue); + case ot: + return template.nullable + ? applyBack$3(state, operationAsAny) + : applyBack$4(state, operationAsAny); + } + break; + } + case record: { + return applyBack$1({ + nextState: (state ?? {}), + operation: operation, + innerApplyBack: ({ state, operation }) => applyBack(template.value)({ + state, + operation: operation, + }), + }); + } + case paramRecord: { + return applyBack$2({ + nextState: state ?? {}, + operation: operation, + innerApplyBack: ({ nextState, operation }) => applyBack(template.value)({ + state: nextState, + operation: operation, + }), + defaultState: template.defaultState, + }); + } + case object: { + const result$1 = { ...state }; + for (const { key, value } of utils.recordToArray(operation)) { + if (isKeyToIgnore(key)) { + continue; + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + continue; + } + const applied = applyBack(templateElement)({ + state: state[key], + operation: value, + }); + if (applied.isError) { + return applied; + } + result$1[key] = applied.value; + } + return result.Result.ok(result$1); + } + } +}; +/** 連続する2つのDownOperationを合成します。破壊的な処理は行われません。 */ +const composeDownOperation = (template) => ({ first, second }) => { + const firstAsAny = first; + const secondAsAny = second; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return result.Result.ok({ + oldValue: firstAsAny.oldValue, + }); + case ot: + return template.nullable + ? composeDownOperation$2(firstAsAny, secondAsAny) + : composeDownOperation$3(firstAsAny, secondAsAny); + } + break; + } + case record: { + return composeDownOperation$1({ + first: first, + second: second, + innerApplyBack: ({ state, operation }) => applyBack(template.value)({ state, operation }), + innerCompose: ({ first, second }) => composeDownOperation(template.value)({ first, second }), + }); + } + case paramRecord: { + return compose$1({ + first, + second, + innerCompose: ({ first, second }) => composeDownOperation(template.value)({ first, second }), + }); + } + case object: { + const firstMap = utils.recordToMap(first); + const secondMap = utils.recordToMap(second); + const result$1 = { + [$v]: template.$v, + [$r]: template.$r, + }; + for (const [key, value] of utils.groupJoinMap(firstMap, secondMap)) { + if (isKeyToIgnore(key)) { + continue; + } + switch (value.type) { + case utils.left: + result$1[key] = value.left; + break; + case utils.right: + result$1[key] = value.right; + break; + default: { + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + continue; + } + const composed = composeDownOperation(templateElement)({ + first: value.left, + second: value.right, + }); + if (composed.isError) { + return composed; + } + result$1[key] = composed.value; + } + } + } + return result.Result.ok(result$1); + } + } +}; +/** + * Stateの情報を用いて、DownOperationをTwoWayOperationに変換します。破壊的な処理は行われません。 + * @param nextState DownOperationが適用される前の状態のState。 + */ +const restore = (template) => ({ nextState, downOperation }) => { + const nextStateAsAny = nextState; + const downOperationAsAny = downOperation; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return result.Result.ok({ + prevState: downOperationAsAny.oldValue, + twoWayOperation: { + oldValue: downOperationAsAny.oldValue, + newValue: nextState, + }, + }); + case ot: + return template.nullable + ? restore$3({ + nextState: nextStateAsAny, + downOperation: downOperationAsAny, + }) + : restore$4({ + nextState: nextStateAsAny, + downOperation: downOperationAsAny, + }); + } + break; + } + case record: { + return restore$1({ + nextState: (nextState ?? {}), + downOperation: downOperation, + innerDiff: ({ prevState, nextState }) => diff(template.value)({ prevState, nextState }), + innerRestore: ({ downOperation, nextState }) => restore(template.value)({ downOperation: downOperation, nextState }), + }); + } + case paramRecord: { + return restore$2({ + nextState: nextState ?? {}, + downOperation: downOperation, + innerRestore: ({ downOperation, nextState }) => restore(template.value)({ downOperation: downOperation, nextState }), + }); + } + case object: { + const prevState = { ...nextState }; + const twoWayOperation = { + [$v]: template.$v, + [$r]: template.$r, + }; + for (const { key, value } of utils.recordToArray(downOperation)) { + if (isKeyToIgnore(key)) { + continue; + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + continue; + } + const restored = restore(templateElement)({ + nextState: nextState[key], + downOperation: value, + }); + if (restored.isError) { + return restored; + } + prevState[key] = restored.value.prevState; + twoWayOperation[key] = restored.value.twoWayOperation; + } + return result.Result.ok({ prevState, twoWayOperation }); + } + } +}; +/** 2つのStateオブジェクトの差分を取ります。 + * @returns 2つのオブジェクトが意味上で同一であればundefinedを返します。 + */ +const diff = (template) => ({ prevState, nextState }) => { + const prevStateAsAny = prevState; + const nextStateAsAny = nextState; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return prevState === nextState + ? undefined + : { + oldValue: prevState, + newValue: nextState, + }; + case ot: + return template.nullable + ? diff$3({ + prev: prevStateAsAny, + next: nextStateAsAny, + }) + : diff$4({ prev: prevStateAsAny, next: nextStateAsAny }); + } + break; + } + case record: { + return diff$1({ + prevState: (prevState ?? {}), + nextState: (nextState ?? {}), + innerDiff: ({ prevState, nextState }) => diff(template.value)({ prevState, nextState }), + }); + } + case paramRecord: { + return diff$2({ + prevState: (prevState ?? {}), + nextState: (nextState ?? {}), + innerDiff: ({ prevState, nextState }) => diff(template.value)({ + prevState: prevState ?? template.defaultState, + nextState: nextState ?? template.defaultState, + }), + }); + } + case object: { + const prevStateMap = utils.recordToMap(prevState); + const nextStateMap = utils.recordToMap(nextState); + const result = { + [$v]: template.$v, + [$r]: template.$r, + }; + for (const [key, value] of utils.groupJoinMap(prevStateMap, nextStateMap)) { + if (isKeyToIgnore(key)) { + continue; + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'state' }); + continue; + } + result[key] = diff(templateElement)({ + prevState: value.left, + nextState: value.right, + }); + } + if (isIdRecord(result)) { + return undefined; + } + return result; + } + } +}; +const requiresArrayTransformation = (operations) => { + for (const operation of operations) { + if (operation == null) { + continue; + } + for (const operationElement of utils.recordToArray(operation)) { + if (operationElement.value.type === replace) { + const newValue = operationElement.value.replace.newValue; + if (typeof newValue === 'object' && + newValue != null && + $index in newValue && + newValue[$index] !== undefined) { + return true; + } + continue; + } + const update = operationElement.value.update; + if (typeof update === 'object' && + update != null && + $index in update && + update[$index] !== undefined) { + return true; + } + } + } + return false; +}; +/** + * ユーザーの権限を考慮せずに、通常のOperational Transformを行います。主にクライアント側で使われます。破壊的な処理は行われません。 + * + * この関数は次の2つの制約があります。 + * - `first`適用前のStateと`second`適用前のStateは等しい。 + * - このStateに対して`first`と`secondPrime`を順に適用したStateと、`second`と`firstPrime`を順に適用したStateは等しい。 + * + * Record の template の場合、state や operation に `$index` というキーのプロパティがある場合はIndexObject(配列の要素)であるとみなされ、`$index`を調整する operation が自動的に追加されることがあります。そのため、配列の要素とみなしたい場合を除いて`$index`というキーをオブジェクトに含めないようにしてください。 + */ +const clientTransform$1 = (template) => ({ state, first, second }) => { + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return result.Result.ok({ + firstPrime: { + newValue: first.newValue, + }, + secondPrime: undefined, + }); + case ot: + return template.nullable + ? clientTransform$4({ + first: first, + second: second, + }) + : clientTransform$5({ + first: first, + second: second, + }); + } + break; + } + case record: { + const $first = first; + const $second = second; + const args = { + state, + first: $first, + second: $second, + innerTransform: ({ state, first, second }) => clientTransform$1(template.value)({ + state, + first, + second, + }), + innerDiff: ({ prevState, nextState }) => { + const d = diff(template.value)({ prevState, nextState }); + if (d == null) { + return undefined; + } + return toUpOperation(template.value)(d); + }, + }; + if (requiresArrayTransformation([$first, $second])) { + return clientTransform({ + ...args, + innerApply: ({ prevState, operation }) => apply$1(template.value)({ state: prevState, operation }), + }); + } + return clientTransform$2(args); + } + case paramRecord: { + return clientTransform$3({ + state, + defaultState: template.defaultState, + first: first, + second: second, + innerTransform: ({ state, first, second }) => clientTransform$1(template.value)({ + state, + first, + second, + }), + }); + } + case object: { + const firstMap = utils.recordToMap(first); + const secondMap = utils.recordToMap(second); + const firstPrime = { + [$v]: template.$v, + [$r]: template.$r, + }; + const secondPrime = { + [$v]: template.$v, + [$r]: template.$r, + }; + for (const [key, value] of utils.groupJoinMap(firstMap, secondMap)) { + if (isKeyToIgnore(key)) { + continue; + } + switch (value.type) { + case utils.left: + firstPrime[key] = value.left; + break; + case utils.right: + secondPrime[key] = value.right; + break; + default: { + const s = state[key]; + if (s === undefined) { + return result.Result.error(`${key} is not found at object client transform.`); + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + continue; + } + const xformed = clientTransform$1(templateElement)({ + state: s, + first: value.left, + second: value.right, + }); + if (xformed.isError) { + return xformed; + } + firstPrime[key] = xformed.value.firstPrime; + secondPrime[key] = xformed.value.secondPrime; + } + } + } + return result.Result.ok({ + firstPrime: isIdRecord(firstPrime) ? undefined : firstPrime, + secondPrime: isIdRecord(secondPrime) ? undefined : secondPrime, + }); + } + } +}; + +class OtError extends Error { + otError; + constructor(content) { + // TODO: よりわかりやすいメッセージを表示する + const message = content.type; + super(message); + this.otError = content; + this.name = 'OtError'; + } +} +const toOtError = (content) => { + if (typeof content === 'string') { + return new Error(content); + } + return new OtError(content); +}; + +class NodeAndEdges { + node; + edgeTargetNodes; + constructor(node, + /** この node が始点となる edge の全てのうち、それらの終点を表します。 */ + edgeTargetNodes) { + this.node = node; + this.edgeTargetNodes = edgeTargetNodes; + } + #longestPathsMemo = null; + /** この node を始点とした、最長の path を返します。この node は含まれます。最長の path が複数ある場合はすべて返します。 */ + // 値はメモ化されるため、longestPath を実行した後に edgeTargetNodes を変更してはならない。 + longestPaths() { + if (this.#longestPathsMemo != null) { + return this.#longestPathsMemo; + } + let longestPaths = [{ path: [this.node] }]; + let longestPathLength = 1; + for (const edgeTargetNode of this.edgeTargetNodes) { + for (const longestPath of edgeTargetNode.longestPaths()) { + const path = [this.node, ...longestPath.path]; + if (path.length < longestPathLength) { + continue; + } + if (path.length === longestPathLength) { + longestPaths.push({ path }); + continue; + } + longestPaths = [{ path }]; + longestPathLength = path.length; + } + } + this.#longestPathsMemo = longestPaths; + return this.#longestPathsMemo; + } +} +/** + * 与えられた配列について、次のすべての条件を満たした有向グラフを作成します。 + * + * 条件1. 配列の要素はすべてグラフの node である。例: [1,4,2] の場合は 1,4,2 の3つが node。 + * + * 条件2. edge の方向は、必ず配列内の位置で左から右の向き。例: [1,4,2] の場合は 1→4,4→2,1→2 のみが edge になりうる。4→1 や 1→1 などは決して edge にならない。 + * + * 条件3. 2つの edge があり、それを a, b とする。前者の edge の両端の node を x_a, y_a、後者のそれを x_b, y_b とする。このとき、a = b ⇔ x_a = x_b かつ y_a = y_b が成り立つ。つまり、2つの node を結ぶ edge は最大でも1つまでしか存在しない。 + * + * 条件4. edge は、(edge の始点) < (edge の終点) という順序関係を満たす。なお、(edge の始点) = (edge の終点) という順序関係を満たすことは許容されていない。 例: [1,4,2] の場合は、条件3もあわせて考慮すると、1→4,1→2 のみが edge になりうる。4→2 は決して edge にならない。 + * + * 条件5. edge は可能な限り多くする。例: [1,4,2,3] の場合は、条件1~4 もあわせて考慮すると、node は 1,4,2,3 で、edge は 1→4, 1→2, 1→3, 2→3 である。 + * + * なお、次の条件は理論的には必須ではありませんが、この関数を必要とする関数での処理の高速化のために設けています。 + * + * 条件6. 2つの相異なる node 間を結ぶ path が複数ある場合、最も edge の数が多い path を構成する edge のみを残し、他の edge はすべて削除する。これは条件5より優先される。例: [1,4,2,3] の場合は、条件1~4 のみを考慮すると edge は 1→4, 1→2, 1→3, 2→3 であるが、このうち1→3は1→2→3よりedgeの数が少ないため取り除く。「ショートカットできる経路はすべて削除する」と考えてもよい。 + */ +const createGraph = (source, comparer) => { + const memoized = source.map(() => null); + function getOrCreateNode(sourceIndex) { + const memoizedElement = memoized[sourceIndex]; + if (memoizedElement != null) { + return memoizedElement; + } + const startingNode = source[sourceIndex]; + const edgeTargetNodes = []; + for (let i = sourceIndex + 1; i < source.length; i++) { + const edgeTargetNode = getOrCreateNode(i); + const lastEdgeTargetNode = edgeTargetNodes[edgeTargetNodes.length - 1]; + // 上の条件6を満たすような edge の追加はせず continue する + if (lastEdgeTargetNode != null && + comparer(lastEdgeTargetNode.node, edgeTargetNode.node) === '<') { + continue; + } + if (comparer(startingNode, edgeTargetNode.node) === '<') { + edgeTargetNodes.push(edgeTargetNode); + } + } + const result = new NodeAndEdges(startingNode, edgeTargetNodes); + memoized[sourceIndex] = result; + return result; + } + source.forEach((_, index) => getOrCreateNode(index)); + return memoized.map(elem => { + if (elem == null) { + throw new Error('This should not happen'); + } + return elem; + }); +}; +const getBetterFixedPoints = ({ x, y, getIndex, }) => { + if (x.length < y.length) { + return 'yIsBetter'; + } + if (x.length > y.length) { + return 'xIsBetter'; + } + const getGaps = (path) => [...utils.pairwiseIterable(path)] + .flatMap(pair => { + if (pair.prev == null) { + return []; + } + return [getIndex(pair.current) - getIndex(pair.prev)]; + }) + .sort((i, j) => i - j); + const gapsOfPrev = getGaps(x); + const gapsOfNext = getGaps(y); + for (const group of utils.groupJoinArray(gapsOfPrev, gapsOfNext)) { + if (group.type !== utils.both) { + throw new Error(`group.type should be "${utils.both}", but actually "${group.type}".`); + } + if (group.left === group.right) { + continue; + } + return group.left < group.right ? 'yIsBetter' : 'xIsBetter'; + } + return 'same'; +}; +/** 配列が `prev` の状態から `next` の状態に変更されたとみなしたときに、動かすべきでない要素の一覧を返します。undefined である要素は無視されます。 */ +const getBestFixedPoints = ({ prev, next, getKey, comparer, }) => { + const nextMap = new Map(next.map((value, index) => [getKey(value), { value, index }])); + const graph = createGraph(prev.filter(value => nextMap.has(getKey(value))).map((value, index) => ({ value, index })), (x, y) => { + const nextX = nextMap.get(getKey(x.value)); + const nextY = nextMap.get(getKey(y.value)); + // nextX = nextY = null のときでも '>' を返せば edge は生成されないので問題ない + if (nextY === undefined) { + return '>'; + } + if (nextX === undefined) { + return '<'; + } + return comparer(nextX, nextY); + }); + let longestPath = []; + for (const g of graph) { + for (const { path } of g.longestPaths()) { + const compareResult = getBetterFixedPoints({ + x: longestPath, + y: path, + getIndex: x => x.index, + }); + switch (compareResult) { + case 'xIsBetter': + break; + case 'yIsBetter': + longestPath = path; + break; + } + } + } + return longestPath.map(({ value }) => value); +}; +/** + * + * 配列を最初の要素から順番に見ていって、`predicate` が満たされなくなるまで配列から要素を取り除きます。 + * + * @returns 取り除かれた要素。 + * + */ +const removeUntil = (source, predicate) => { + const result = []; + while (source.length !== 0) { + const first = source[0]; + if (!predicate(first)) { + return result; + } + result.push(first); + source.splice(0, 1); + } + return result; +}; +const arrayDiff = ({ prev, next, getKey, }) => { + const clonedPrev = [...prev]; + const clonedNext = [...next]; + const fixedPoints = getBestFixedPoints({ + prev: clonedPrev, + next: clonedNext, + getKey, + comparer: (x, y) => (x.index < y.index ? '<' : '>'), + }); + const builder = new otCore.OperationBuilder({ + getInsertLength: insert => new otCore.PositiveInt(insert.length), + getDeleteLength: del => new otCore.PositiveInt(del.length), + concatInsert: (x, y) => [...x, ...y], + concatDelete: (x, y) => [...x, ...y], + }); + for (const fixedPoint of fixedPoints) { + const deleted = removeUntil(clonedPrev, x => getKey(x) !== getKey(fixedPoint)); + if (utils.isReadonlyNonEmptyArray(deleted)) { + builder.delete(deleted); + } + clonedPrev.splice(0, 1); + const inserted = removeUntil(clonedNext, x => getKey(x) !== getKey(fixedPoint)); + if (utils.isReadonlyNonEmptyArray(inserted)) { + builder.insert(inserted); + } + clonedNext.splice(0, 1); + builder.retain(otCore.PositiveInt.one); + } + if (utils.isReadonlyNonEmptyArray(clonedPrev)) { + builder.delete(clonedPrev); + } + if (utils.isReadonlyNonEmptyArray(clonedNext)) { + builder.insert(clonedNext); + } + return { + value: builder.build(), + iterate: () => builder.toIterable(), + toUnits: () => builder.toUnits(), + }; +}; + +const apply = (state, operation) => { + const builder = new otCore.OperationBuilder({ + getInsertLength: insert => new otCore.PositiveInt(insert.length), + getDeleteLength: del => new otCore.PositiveInt(del.length), + concatInsert: (first, second) => [...first, ...second], + concatDelete: (first, second) => [...first, ...second], + }, operation); + const applied = otCore.apply({ + state, + action: [...builder.toIterable()], + getStateLength: state => state.length, + getInsertLength: insert => insert.length, + getDeleteLength: del => new otCore.PositiveInt(del.length), + insert: ({ state, start, replacement }) => { + const result = [...state.slice(0, start), ...replacement, ...state.slice(start)]; + return { newState: result }; + }, + replace: ({ state, start, replacement, deleteCount }) => { + const deleted = state.slice(start, deleteCount.value); + const result = [ + ...state.slice(0, start), + ...(replacement.isNone ? [] : replacement.value), + ...state.slice(start + deleteCount.value), + ]; + return { newState: result, deleted: deleted }; + }, + }); + if (applied.isError) { + return applied; + } + return result.Result.ok(applied.value.newState); +}; +const transform = (state, stateAppliedFirst, stateAppliedSecond, getKey) => { + const tagKey = '$tag'; + const $state = state.map(value => ({ value, [tagKey]: 0 })); + const $stateAppliedFirst = stateAppliedFirst.map(value => ({ value, [tagKey]: 1 })); + const $stateAppliedSecond = stateAppliedSecond.map(value => ({ value, [tagKey]: 2 })); + const $getKey = (x) => getKey(x.value); + const first = arrayDiff({ + prev: $state, + next: $stateAppliedFirst, + getKey: $getKey, + }); + const firstUnits = [...first.toUnits()]; + const second = arrayDiff({ + prev: $state, + next: $stateAppliedSecond, + getKey: $getKey, + }); + const secondUnits = [...second.toUnits()]; + const transformed = otCore.transform({ + first: firstUnits, + second: secondUnits, + splitDelete: (target, index) => { + const left = target.slice(0, index.value); + const right = target.slice(index.value); + return [ + left, + right, + ]; + }, + factory: { + getInsertLength: insert => new otCore.PositiveInt(insert.length), + getDeleteLength: del => new otCore.PositiveInt(del.length), + concatInsert: (first, second) => [...first, ...second], + concatDelete: (first, second) => [...first, ...second], + }, + }); + if (transformed.isError) { + return transformed; + } + // stateAppliedFirst に secondPrime を apply しているが、代わりに stateAppliedSecond に firstPrime を apply したものでも構わない。 + const nonDistictedLastState = apply($stateAppliedFirst, transformed.value.secondPrime); + if (nonDistictedLastState.isError) { + return nonDistictedLastState; + } + /* + @kizahasi/ot-core の transform の仕様では要素の同一性は考慮されないため、もし nonDistictedLastState.value をそのまま返してしまうと次のような問題が生じる。 + - 例えば first が [insert 'x', retain 1, delete 'x', retain 1] で、second が [retain 1, delete 'x', retain 1, insert 'x'] のとき(つまり、同一の要素が同時に移動されたとき)、nonDistictedLastState.value に 'x' が2つ存在することになってしまう。そのため、二重に存在する要素は1つのみにしなければならない。 + - first が [delete 'x', retain 1] で、second が [delete 'x', retain 1, insert 'x'] のように、片方が移動で片方が削除の場合は最終的に削除されてほしいが、insert 'x' が残るため nonDistictedLastState.value に 'x' が含まれてしまう。 + そのため、これより下で、nonDistictedLastState.value からそのような要素を取り除く処理を行っている。 + */ + const deletedElemets = new utils.DualKeyMap(); + for (const operation of firstUnits) { + if (operation.type === otCore.delete$) { + for (const d of operation.delete) { + deletedElemets.set({ first: getKey(d.value), second: 1 }, null); + } + } + } + for (const operation of secondUnits) { + if (operation.type === otCore.delete$) { + for (const d of operation.delete) { + deletedElemets.set({ first: getKey(d.value), second: 2 }, null); + } + } + } + const groupedLastState = new utils.DualKeyMap(); + for (const { value, $tag } of nonDistictedLastState.value) { + if ($tag === 0) { + // 0 は使わないのでスキップ。 + continue; + } + groupedLastState.set({ first: getKey(value), second: $tag }, null); + } + const result$1 = nonDistictedLastState.value.flatMap(({ value, $tag }) => { + const key = getKey(value); + const deletedSimultaneously = deletedElemets.getByFirst(key).size >= 2; + if (!deletedSimultaneously) { + return [value]; + } + const tags = groupedLastState.getByFirst(key); + switch (tags.size) { + case 0: + // 両方のOperationで削除となったケース。 + // この場合は削除とする。 + return []; + case 1: + // 片方のOperationでは移動だが、もう片方のOperationでは削除されたケース。 + // この場合は削除を優先する。 + return []; + case 2: + // 両方のOperationで移動となったケース。 + // この場合は常にfirstを優先することにしている(問題があれば変えるかも)。 + // ここで $tag === 0 になることはない(もし $tag === 0 であればこの要素を削除するOperationはないことになるが、その場合は deletedSimultaneously === false になるため)。 + return $tag === 1 ? [value] : []; + default: + // ここに来ることはない。 + return []; + } + }); + return result.Result.ok(result$1); +}; + +// サーバーとクライアントで書き換え可能だが特殊な値であるため、他のプロパティとの衝突を避ける目的で文字列の頭に $ を頭に付けている。 +const $index = '$index'; +/** + * Record を 配列とみなすときに、その要素として必要な値が入った template を作成する際に用いる値。 + * + * @example + * ``` + * const indexObjectTemplate = createRecordValueTemplate( + * createObjectValueTemplate( + * { + * ...indexObjectTemplateValue, + * + * // add more properies... + * }, + * 1, + * 1 + * ) + * ); + * ``` + */ +/* +配列の表現方法には { $key: string, ...otherProperties }[] と Record の2種類が考えられたが、後者を採用している。 +前者はデータをエクスポートした際にテキストエディタで比較的編集しやすいというメリットがある。ただし、replace と update の2種類だけでは、要素が移動した際に要素を丸ごと delete と insert する必要があるため Operation の容量がかさばるという問題点がある。move のような Operation も定義すれば解決すると思われるが、手間がかかる。いっぽう、後者の方法だと $index を変更するだけで済むため容量がかさばる問題は存在せず、既存の Record の Operational Transformation のシステムに乗っかれるというメリットがある。よって単純化を重視して後者を採用した。 +*/ +const indexObjectTemplateValue = { + /** + * 自身の要素のインデックス。一般的な配列と同様に、0 から始まります。 + * + * インデックスが他の要素と重複してはなりません。また、0 から順に連続的に割り当てる必要があります。 + */ + [$index]: createReplaceValueTemplate(zod.z.number().nonnegative().int()), +}; +const dummyVersion = undefined; +const indexObjectTemplate = createObjectValueTemplate(indexObjectTemplateValue, dummyVersion, dummyVersion); +const indexObjectsToArray = (record) => { + const groupBy$index = utils.recordToMap(esToolkit.groupBy(utils.recordToArray(record), ({ value }) => value[$index].toString())); + const result$1 = []; + for (let i = 0; groupBy$index.size >= 1; i++) { + const groupValue = groupBy$index.get(i.toString()); + groupBy$index.delete(i.toString()); + if (groupValue == null || groupValue.length !== 1) { + return result.Result.error(`Just one element where index is ${i} should exist, but there are ${groupValue?.length ?? 0} such elements.`); + } + const element = groupValue[0]; + result$1.push(element); + } + return result.Result.ok(result$1); +}; +/** + * 配列を Record に変換します。 + * + * 引数に渡された `$index` は誤っていてもエラーにはならず、自動的かつ非破壊的に調整されます。 + */ +const arrayToIndexObjects = (array) => { + const result = {}; + array.forEach((element, index) => { + if (result[element.key] !== undefined) { + throw new Error(`"${element.key}" key is duplicated.`); + } + result[element.key] = immer.produce(element.value, value => { + value[$index] = index; + }); + }); + return result; +}; +const generateArrayDiff = ({ prevState, nextState, mapOperation, }) => { + const execDiff = diff(createRecordValueTemplate(indexObjectTemplate)); + const diffResult = execDiff({ + prevState: utils.mapRecord(prevState, ({ $index }) => ({ + $v: dummyVersion, + $r: dummyVersion, + $index, + })), + nextState: utils.mapRecord(nextState, ({ $index }) => ({ + $v: dummyVersion, + $r: dummyVersion, + $index, + })), + }); + // replaceは存在しないので、updateだけ抽出する + return utils.mapRecord(diffResult ?? {}, x => x.type === update$2 + ? { + ...x, + // RecordOperation.compose で型エラーを起こさないためだけに行っている変換。 + update: mapOperation(x.update), + } + : undefined); +}; +/** + * 配列に対して clientTransform を行います。 + * + * 通常の Record の serverTransform の処理(つまり、`$index` 以外のプロパティの処理など)も内部で行われるため、通常の Record の serverTransform を別途実行することは避けてください。 + */ +const clientTransform = (params) => { + // いったん通常のRecordOperation.clientTransformを行い、エラーがないかどうか確かめる。 + // Operationの内容に問題がなくともresultFirstの時点では不正な$indexが存在する可能性があるが、この後のresultSecondをcomposeすることで正常になる。 + const recordOperationTransformResult = clientTransform$2(params); + if (recordOperationTransformResult.isError) { + return recordOperationTransformResult; + } + const execApply = apply$1(createRecordValueTemplate(indexObjectTemplate)); + const arrayObjectAfterFirst = execApply({ + state: utils.mapRecord(params.state, ({ $index }) => ({ + $v: dummyVersion, + $r: dummyVersion, + $index, + })), + operation: mapRecordUpOperation({ + source: params.first ?? {}, + mapState: ({ $index }) => ({ $v: dummyVersion, $r: dummyVersion, $index }), + mapOperation: ({ $index }) => ({ $v: dummyVersion, $r: dummyVersion, $index }), + }), + }); + if (arrayObjectAfterFirst.isError) { + // ここに来るということは、クライアントから受け取った Operation が不正(存在しない State に対して update しようとしたなど)であることを示す。だが、その場合は上のRecordOperation.clientTransformですでに弾かれているので、ここには来ないはず。 + return result.Result.error('Error at applying first as an array operation. This is probablly a bug. Message: ' + + toOtError(arrayObjectAfterFirst.error).message); + } + const arrayObjectAfterSecond = execApply({ + state: utils.mapRecord(params.state, ({ $index }) => ({ + $v: dummyVersion, + $r: dummyVersion, + $index, + })), + operation: mapRecordUpOperation({ + source: params.second ?? {}, + mapState: ({ $index }) => ({ $v: dummyVersion, $r: dummyVersion, $index }), + mapOperation: ({ $index }) => ({ $v: dummyVersion, $r: dummyVersion, $index }), + }), + }); + if (arrayObjectAfterSecond.isError) { + // ここに来るということは、クライアントから受け取った Operation が不正(存在しない State に対して update しようとしたなど)であることを示す。だが、その場合は上のRecordOperation.clientTransformですでに弾かれているので、ここには来ないはず。 + return result.Result.error('Error at applying second as an array operation. This is probablly a bug. Message: ' + + toOtError(arrayObjectAfterSecond.error).message); + } + const baseArray = indexObjectsToArray(utils.mapRecord(params.state, ({ $index }) => ({ $index }))); + if (baseArray.isError) { + return result.Result.error('state is invalid as an array. Message: ' + baseArray.error); + } + const arrayAfterFirst = indexObjectsToArray(utils.mapRecord(arrayObjectAfterFirst.value ?? {}, ({ $index }) => ({ $index }))); + if (arrayAfterFirst.isError) { + return result.Result.error('state applied first is invalid as an array. Message: ' + arrayAfterFirst.error); + } + const arrayAfterSecond = indexObjectsToArray(utils.mapRecord(arrayObjectAfterSecond.value ?? {}, ({ $index }) => ({ $index }))); + if (arrayAfterSecond.isError) { + return result.Result.error('state applied second is invalid as an array. Message: ' + arrayAfterFirst.error); + } + const finalArrayResult = transform(baseArray.value, arrayAfterFirst.value, arrayAfterSecond.value, x => x.key); + if (finalArrayResult.isError) { + // 配列のtransformでエラーが発生することは通常はない。 + return result.Result.error('Error at transforming an array operation. This is probablly a bug. Message: ' + + JSON.stringify(finalArrayResult.error)); + } + const stateAfterFirst = apply$2({ + prevState: params.state, + operation: params.first ?? {}, + innerApply: ({ prevState, operation }) => params.innerApply({ prevState, operation }), + }); + if (stateAfterFirst.isError) { + throw new Error('This should not happen. Message: ' + stateAfterFirst.error); + } + const finalStateBeforeIndexRearrangement = apply$2({ + prevState: stateAfterFirst.value, + operation: recordOperationTransformResult.value.secondPrime, + innerApply: ({ prevState, operation }) => params.innerApply({ prevState, operation }), + }); + if (finalStateBeforeIndexRearrangement.isError) { + throw new Error('This should not happen. Message: ' + finalStateBeforeIndexRearrangement.error); + } + const resultSecond = generateArrayDiff({ + prevState: finalStateBeforeIndexRearrangement.value, + nextState: arrayToIndexObjects(finalArrayResult.value), + mapOperation: x => ({ + [$index]: x[$index] == null ? undefined : { newValue: x[$index].newValue }, + }), + }); + const compose$1 = (first) => compose({ + first, + second: resultSecond, + composeReplaceUpdate: ({ first, second }) => { + if (first.newValue === undefined) { + // 通常はここには来ない + return result.Result.ok(first); + } + return result.Result.ok(immer.produce(first, first => { + if (second.$index === undefined) { + return; + } + if (first.newValue === undefined) { + return; + } + first.newValue.$index = second.$index.newValue; + })); + }, + composeUpdateUpdate: ({ first, second }) => { + let composed$indexOperation; + if (second[$index] === undefined) { + composed$indexOperation = first[$index]; + } + else { + composed$indexOperation = second[$index]; + } + const result$1 = immer.produce(first, first => { + first.$index = composed$indexOperation; + }); + return result.Result.ok(isIdRecord(result$1) ? undefined : result$1); + }, + composeReplaceReplace: () => { + throw new Error('This should not happen.'); + }, + composeUpdateReplace: () => { + throw new Error('This should not happen.'); + }, + }); + const firstPrime = compose$1(recordOperationTransformResult.value.firstPrime ?? {}); + if (firstPrime.isError) { + return firstPrime; + } + const secondPrime = compose$1(recordOperationTransformResult.value.secondPrime ?? {}); + if (secondPrime.isError) { + return secondPrime; + } + return result.Result.ok({ + firstPrime: isIdRecord(firstPrime.value ?? {}) ? undefined : firstPrime.value, + secondPrime: isIdRecord(secondPrime.value ?? {}) ? undefined : secondPrime.value, + }); +}; + +/** 全てのStateに完全にアクセスできる。*/ +const admin = 'admin'; +/** userUidに基づき、一部のStateへのアクセスを制限する。*/ +const client = 'client'; +/** アクセス制限のあるStateへのアクセスを全て制限する。*/ +const restrict = 'restrict'; +const anyValue = { type: 'anyValue' }; +const none = { type: 'none' }; +const isAuthorized = ({ requestedBy, participantId, }) => { + if (typeof participantId === 'string' || participantId.type === 'none') { + if (requestedBy.type === admin) { + return true; + } + if (requestedBy.type === restrict) { + return false; + } + return requestedBy.userUid === participantId; + } + return true; +}; +/** @deprecated Use `isAuthorized` instead. */ +// 元々は isAuthorized 関数は存在せず、isAuthorized 関数に相当する処理は isOwner 関数で行っていた。だが、isOwner という名前と引数がしっくり来ない場面もあったので、isAuthorized 関数に移した。isOwner 関数は削除するとしっくり来ない場面が生じるかもしれないため、現時点では残している。 +const isOwner = ({ requestedBy, ownerParticipantId, }) => { + return isAuthorized({ requestedBy, participantId: ownerParticipantId }); +}; +const isBoardOwner = ({ boardId, requestedBy, currentRoomState, }) => { + if (requestedBy.type === admin) { + return true; + } + const userUid = requestedBy.type === client ? requestedBy.userUid : undefined; + const board = (currentRoomState.boards ?? {})[boardId]; + if (board != null) { + if (board.ownerParticipantId == null) { + return true; + } + if (board.ownerParticipantId === userUid) { + return true; + } + return false; + } + return false; +}; +const isBoardVisible = ({ boardId, requestedBy, currentRoomState, }) => { + if (isBoardOwner({ boardId: boardId, requestedBy, currentRoomState }) !== false) { + return true; + } + return currentRoomState.activeBoardId === boardId; +}; +const characterNotFound = 'characterNotFound'; +const isCharacterOwner = ({ requestedBy, characterId, currentRoomState, }) => { + if (requestedBy.type === admin) { + return true; + } + if (typeof characterId !== 'string') { + return characterId.type === 'anyValue'; + } + const userUid = requestedBy.type === client ? requestedBy.userUid : undefined; + const character = (currentRoomState.characters ?? {})[characterId]; + if (character == null) { + return characterNotFound; + } + if (character.ownerParticipantId == null) { + return true; + } + if (character.ownerParticipantId === userUid) { + return true; + } + return false; +}; +const canChangeCharacterValue = (args) => { + return !!isCharacterOwner(args); +}; +const canChangeOwnerParticipantId = ({ requestedBy, currentOwnerParticipant, }) => { + if (requestedBy.type === admin) { + return true; + } + let currentOwnerParticipantId; + if (typeof currentOwnerParticipant === 'string') { + currentOwnerParticipantId = currentOwnerParticipant; + } + else { + currentOwnerParticipantId = currentOwnerParticipant?.ownerParticipantId; + } + return isOwner({ requestedBy, ownerParticipantId: currentOwnerParticipantId ?? anyValue }); +}; +const canChangeOwnerCharacterId = ({ requestedBy, currentOwnerCharacter, currentRoomState, }) => { + if (requestedBy.type === admin) { + return true; + } + let currentOwnerCharacterId; + if (typeof currentOwnerCharacter === 'string') { + currentOwnerCharacterId = currentOwnerCharacter; + } + else { + currentOwnerCharacterId = currentOwnerCharacter?.ownerCharacterId; + } + return canChangeCharacterValue({ + requestedBy, + characterId: currentOwnerCharacterId ?? anyValue, + currentRoomState, + }); +}; + +const serverTransform$n = ({ first, second, prevState, }) => { + if (first === undefined && second !== undefined) { + const newOperation = { oldValue: prevState, newValue: second.newValue }; + if (newOperation.oldValue !== newOperation.newValue) { + return { oldValue: prevState, newValue: second.newValue }; + } + } + return undefined; +}; + +const toClientState$h = (source) => source; +const serverTransform$m = ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { $v: 1, $r: 1 }; + twoWayOperation.isPaused = serverTransform$n({ + first: serverOperation?.isPaused, + second: clientOperation.isPaused, + prevState: stateBeforeServerOperation.isPaused, + }); + twoWayOperation.files = serverTransform$n({ + first: serverOperation?.files, + second: clientOperation.files, + prevState: stateBeforeServerOperation.files, + }); + twoWayOperation.volume = serverTransform$n({ + first: serverOperation?.volume, + second: clientOperation.volume, + prevState: stateBeforeServerOperation.volume, + }); + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const serverTransform$l = ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { $v: undefined, $r: undefined }; + twoWayOperation.h = serverTransform$n({ + first: serverOperation?.h, + second: clientOperation.h, + prevState: stateBeforeServerOperation.h, + }); + twoWayOperation.isPositionLocked = serverTransform$n({ + first: serverOperation?.isPositionLocked, + second: clientOperation.isPositionLocked, + prevState: stateBeforeServerOperation.isPositionLocked, + }); + const transformedMemo = serverTransform$q({ + first: serverOperation?.memo, + second: clientOperation.memo, + prevState: stateBeforeServerOperation.memo, + }); + if (transformedMemo.isError) { + return transformedMemo; + } + twoWayOperation.memo = transformedMemo.value; + const transformedName = serverTransform$q({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (transformedName.isError) { + return transformedName; + } + twoWayOperation.name = transformedName.value; + twoWayOperation.opacity = serverTransform$n({ + first: serverOperation?.opacity, + second: clientOperation.opacity, + prevState: stateBeforeServerOperation.opacity, + }); + twoWayOperation.w = serverTransform$n({ + first: serverOperation?.w, + second: clientOperation.w, + prevState: stateBeforeServerOperation.w, + }); + twoWayOperation.x = serverTransform$n({ + first: serverOperation?.x, + second: clientOperation.x, + prevState: stateBeforeServerOperation.x, + }); + twoWayOperation.y = serverTransform$n({ + first: serverOperation?.y, + second: clientOperation.y, + prevState: stateBeforeServerOperation.y, + }); + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const serverTransform$k = ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const boardPosition = serverTransform$l({ + stateBeforeServerOperation: stateBeforeServerOperation, + stateAfterServerOperation: stateAfterServerOperation, + clientOperation, + serverOperation, + }); + if (boardPosition.isError) { + return boardPosition; + } + const twoWayOperation = { + ...boardPosition.value, + $v: undefined, + $r: undefined, + }; + twoWayOperation.cellH = serverTransform$n({ + first: serverOperation?.cellH, + second: clientOperation.cellH, + prevState: stateBeforeServerOperation.cellH, + }); + twoWayOperation.cellW = serverTransform$n({ + first: serverOperation?.cellW, + second: clientOperation.cellW, + prevState: stateBeforeServerOperation.cellW, + }); + twoWayOperation.cellX = serverTransform$n({ + first: serverOperation?.cellX, + second: clientOperation.cellX, + prevState: stateBeforeServerOperation.cellX, + }); + twoWayOperation.cellY = serverTransform$n({ + first: serverOperation?.cellY, + second: clientOperation.cellY, + prevState: stateBeforeServerOperation.cellY, + }); + twoWayOperation.isCellMode = serverTransform$n({ + first: serverOperation?.isCellMode, + second: clientOperation.isCellMode, + prevState: stateBeforeServerOperation.isCellMode, + }); + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const toClientState$g = (isAuthorized) => (source) => { + return { + ...source, + value: source.isValuePrivate && !isAuthorized ? undefined : source.value, + }; +}; +const serverTransform$j = (isAuthorized) => ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { + $v: 1, + $r: 1, + }; + twoWayOperation.dieType = serverTransform$n({ + first: serverOperation?.dieType ?? undefined, + second: clientOperation.dieType ?? undefined, + prevState: stateBeforeServerOperation.dieType, + }); + twoWayOperation.isValuePrivate = serverTransform$n({ + first: serverOperation?.isValuePrivate ?? undefined, + second: clientOperation.isValuePrivate ?? undefined, + prevState: stateBeforeServerOperation.isValuePrivate, + }); + // !isAuthorized の場合は最初の方ですべて弾いているため、isValuePrivateのチェックをする必要はない。 + twoWayOperation.value = serverTransform$n({ + first: serverOperation?.value ?? undefined, + second: clientOperation.value ?? undefined, + prevState: stateBeforeServerOperation.value, + }); + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok({ ...twoWayOperation }); +}; + +const templateValue$1 = { + h: createReplaceValueTemplate(zod.z.number()), + isPositionLocked: createReplaceValueTemplate(zod.z.boolean()), + /** + * @description To 3rd-party developers: Please always set undefined to this if it is CharacterPiece or PortraitPiece. + */ + memo: createTextValueTemplate(true), + /** + * @description To 3rd-party developers: Please always set undefined to this if it is CharacterPiece or PortraitPiece. + */ + name: createTextValueTemplate(true), + /** + * @description To 3rd-party developers: Please always set undefined to this because it is not implemented yet in the official web-server. + */ + opacity: createReplaceValueTemplate(maybe(zod.z.number())), + w: createReplaceValueTemplate(zod.z.number()), + x: createReplaceValueTemplate(zod.z.number()), + y: createReplaceValueTemplate(zod.z.number()), +}; +const template$m = createObjectValueTemplate(templateValue$1, undefined, undefined); + +const templateValue = { + ...templateValue$1, + cellH: createReplaceValueTemplate(zod.z.number()), + cellW: createReplaceValueTemplate(zod.z.number()), + cellX: createReplaceValueTemplate(zod.z.number()), + cellY: createReplaceValueTemplate(zod.z.number()), + isCellMode: createReplaceValueTemplate(zod.z.boolean()), +}; +const template$l = createObjectValueTemplate(templateValue, undefined, undefined); + +// 今の所D6しか対応していない。D4は将来のために予約されている。 +const D4 = 'D4'; +const D6 = 'D6'; +const dieType = zod.z.union([zod.z.literal(D4), zod.z.literal(D6)]); +const template$k = createObjectValueTemplate({ + dieType: createReplaceValueTemplate(dieType), + isValuePrivate: createReplaceValueTemplate(zod.z.boolean()), + // undefined になるのは、次の2つのいずれかもしくは両方のケース。 + // 1. isValuePrivate === trueになっておりvalueが隠されているとき + // 2. 目なしのとき + value: createReplaceValueTemplate(maybe(zod.z.number())), +}, 1, 1); + +const dicePieceStrIndexes = ['1', '2', '3', '4']; +const template$j = createObjectValueTemplate({ + ...templateValue, + ownerCharacterId: createReplaceValueTemplate(maybe(zod.z.string())), + dice: createRecordValueTemplate(template$k), +}, 2, 1); + +const toClientState$f = (requestedBy, currentRoomState) => (source) => { + const isAuthorized = canChangeCharacterValue({ + requestedBy, + characterId: source.ownerCharacterId ?? anyValue, + currentRoomState, + }); + return { + ...source, + dice: utils.chooseRecord(source.dice ?? {}, state => toClientState$g(isAuthorized)(state)), + }; +}; +const serverTransform$i = (requestedBy, currentRoomState) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const isAuthorized = canChangeCharacterValue({ + requestedBy, + characterId: stateAfterServerOperation.ownerCharacterId ?? anyValue, + currentRoomState, + }); + const dice = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.dice ?? {}, + stateAfterFirst: stateAfterServerOperation.dice ?? {}, + first: serverOperation?.dice, + second: clientOperation.dice, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$j()({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ key }) => !isAuthorized || dicePieceStrIndexes.every(x => x !== key), + cancelRemove: () => !isAuthorized, + cancelUpdate: () => !isAuthorized, + }, + }); + if (dice.isError) { + return dice; + } + const piece = serverTransform$k({ + stateBeforeServerOperation: { + ...stateBeforeServerOperation, + $v: undefined, + $r: undefined, + }, + stateAfterServerOperation: { + ...stateAfterServerOperation, + $v: undefined, + $r: undefined, + }, + clientOperation: { ...clientOperation, $v: undefined, $r: undefined }, + serverOperation: { ...serverOperation, $v: undefined, $r: undefined }, + }); + if (piece.isError) { + return piece; + } + const twoWayOperation = { + $v: 2, + $r: 1, + ...piece.value, + dice: dice.value, + }; + if (canChangeOwnerCharacterId({ + requestedBy, + currentOwnerCharacter: stateAfterServerOperation, + currentRoomState, + })) { + twoWayOperation.ownerCharacterId = serverTransform$n({ + first: serverOperation?.ownerCharacterId, + second: clientOperation.ownerCharacterId, + prevState: stateBeforeServerOperation.ownerCharacterId, + }); + } + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const toClientState$e = (source) => { + return source; +}; +const serverTransform$h = (requestedBy) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const piece = serverTransform$k({ + stateBeforeServerOperation: { + ...stateBeforeServerOperation, + $v: undefined, + $r: undefined, + }, + stateAfterServerOperation: { + ...stateAfterServerOperation, + $v: undefined, + $r: undefined, + }, + clientOperation: { ...clientOperation, $v: undefined, $r: undefined }, + serverOperation: { ...serverOperation, $v: undefined, $r: undefined }, + }); + if (piece.isError) { + return piece; + } + const twoWayOperation = { + $v: 2, + $r: 1, + ...piece.value, + }; + if (canChangeOwnerParticipantId({ + requestedBy, + currentOwnerParticipant: stateAfterServerOperation, + })) { + twoWayOperation.ownerParticipantId = serverTransform$n({ + first: serverOperation?.ownerParticipantId, + second: clientOperation.ownerParticipantId, + prevState: stateBeforeServerOperation.ownerParticipantId, + }); + } + twoWayOperation.image = serverTransform$n({ + first: serverOperation?.image, + second: clientOperation.image, + prevState: stateBeforeServerOperation.image, + }); + twoWayOperation.isPrivate = serverTransform$n({ + first: serverOperation?.isPrivate, + second: clientOperation.isPrivate, + prevState: stateBeforeServerOperation.isPrivate, + }); + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const serverTransform$g = ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { + $v: 1, + $r: 1, + }; + twoWayOperation.fill = serverTransform$n({ + first: serverOperation?.fill, + second: clientOperation.fill, + prevState: stateBeforeServerOperation.fill, + }); + twoWayOperation.shape = serverTransform$n({ + first: serverOperation?.shape, + second: clientOperation.shape, + prevState: stateBeforeServerOperation.shape, + }); + twoWayOperation.stroke = serverTransform$n({ + first: serverOperation?.stroke, + second: clientOperation.stroke, + prevState: stateBeforeServerOperation.stroke, + }); + twoWayOperation.strokeWidth = serverTransform$n({ + first: serverOperation?.strokeWidth, + second: clientOperation.strokeWidth, + prevState: stateBeforeServerOperation.strokeWidth, + }); + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +// 現時点では、Webサーバー側ではshapeを最大でも1個までしかセットしていないため、1~9の9個のkeyだけ許可している。 +const validateShapeKey = (key) => { + const regex = /^[1-9]$/; + return regex.test(key); +}; +const toClientState$d = (source) => { + return source; +}; +const serverTransform$f = (requestedBy) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const piece = serverTransform$k({ + stateBeforeServerOperation: { + ...stateBeforeServerOperation, + $v: undefined, + $r: undefined, + }, + stateAfterServerOperation: { + ...stateAfterServerOperation, + $v: undefined, + $r: undefined, + }, + clientOperation: { ...clientOperation, $v: undefined, $r: undefined }, + serverOperation: { ...serverOperation, $v: undefined, $r: undefined }, + }); + if (piece.isError) { + return piece; + } + const twoWayOperation = { + $v: 1, + $r: 1, + ...piece.value, + }; + if (canChangeOwnerParticipantId({ + requestedBy, + currentOwnerParticipant: stateAfterServerOperation, + })) { + twoWayOperation.ownerParticipantId = serverTransform$n({ + first: serverOperation?.ownerParticipantId, + second: clientOperation.ownerParticipantId, + prevState: stateBeforeServerOperation.ownerParticipantId, + }); + } + twoWayOperation.isPrivate = serverTransform$n({ + first: serverOperation?.isPrivate, + second: clientOperation.isPrivate, + prevState: stateBeforeServerOperation.isPrivate, + }); + const shapes = serverTransform$o({ + first: serverOperation?.shapes, + second: clientOperation.shapes, + stateBeforeFirst: stateBeforeServerOperation.shapes ?? {}, + stateAfterFirst: stateAfterServerOperation.shapes ?? {}, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$g({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + // shapeが大量に作られるのを防ぐための保険的対策を行っている + cancelCreate: ({ key }) => !validateShapeKey(key), + }, + }); + if (shapes.isError) { + return shapes; + } + twoWayOperation.shapes = shapes.value; + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const toClientState$c = (requestedBy, currentRoomState) => (source) => { + const isAuthorized = canChangeCharacterValue({ + requestedBy, + characterId: source.ownerCharacterId ?? anyValue, + currentRoomState, + }); + return { + ...source, + value: source.isValuePrivate && !isAuthorized ? '' : source.value, + }; +}; +const serverTransform$e = (requestedBy, currentRoomState) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const piece = serverTransform$k({ + stateBeforeServerOperation: { + ...stateBeforeServerOperation, + $v: undefined, + $r: undefined, + }, + stateAfterServerOperation: { + ...stateAfterServerOperation, + $v: undefined, + $r: undefined, + }, + clientOperation: { ...clientOperation, $v: undefined, $r: undefined }, + serverOperation: { ...serverOperation, $v: undefined, $r: undefined }, + }); + if (piece.isError) { + return piece; + } + const twoWayOperation = { + $v: 2, + $r: 1, + ...piece.value, + }; + if (canChangeOwnerCharacterId({ + requestedBy, + currentOwnerCharacter: stateAfterServerOperation, + currentRoomState, + })) { + twoWayOperation.ownerCharacterId = serverTransform$n({ + first: serverOperation?.ownerCharacterId, + second: clientOperation.ownerCharacterId, + prevState: stateBeforeServerOperation.ownerCharacterId, + }); + } + twoWayOperation.isValuePrivate = serverTransform$n({ + first: serverOperation?.isValuePrivate ?? undefined, + second: clientOperation.isValuePrivate ?? undefined, + prevState: stateBeforeServerOperation.isValuePrivate, + }); + // !isAuthorized の場合は最初の方ですべて弾いているため、isValuePrivateのチェックをする必要はない。 + const valueResult = serverTransform$r({ + first: serverOperation?.value ?? undefined, + second: clientOperation.value ?? undefined, + prevState: stateBeforeServerOperation.value, + }); + if (valueResult.isError) { + return valueResult; + } + twoWayOperation.value = valueResult.value; + twoWayOperation.valueInputType = serverTransform$n({ + first: serverOperation?.valueInputType ?? undefined, + second: clientOperation.valueInputType ?? undefined, + prevState: stateBeforeServerOperation.valueInputType, + }); + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const toClientState$b = (requestedBy, currentRoomState) => (source) => { + return { + ...source, + dicePieces: toClientState$i({ + serverState: source.dicePieces, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$f(requestedBy, currentRoomState)(state), + }), + imagePieces: toClientState$i({ + serverState: source.imagePieces, + isPrivate: state => state.isPrivate && + !isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }), + toClientState: ({ state }) => toClientState$e(state), + }), + shapePieces: toClientState$i({ + serverState: source.shapePieces, + isPrivate: state => state.isPrivate && + !isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }), + toClientState: ({ state }) => toClientState$d(state), + }), + stringPieces: toClientState$i({ + serverState: source.stringPieces, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$c(requestedBy, currentRoomState)(state), + }), + }; +}; +const serverTransform$d = (requestedBy, currentRoomState) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const cancellationPolicyOfCharacterPieces = { + cancelCreate: ({ newState }) => !canChangeCharacterValue({ + requestedBy, + characterId: newState.ownerCharacterId ?? none, + currentRoomState, + }), + cancelRemove: ({ state }) => !canChangeCharacterValue({ + requestedBy, + characterId: state.ownerCharacterId ?? anyValue, + currentRoomState, + }), + }; + const cancellationPolicyOfParticipantPieces = { + cancelCreate: ({ newState }) => !isOwner({ + requestedBy, + ownerParticipantId: newState.ownerParticipantId ?? none, + }), + cancelRemove: ({ state }) => !isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }), + }; + const dicePieces = serverTransform$o({ + first: serverOperation?.dicePieces, + second: clientOperation.dicePieces, + stateBeforeFirst: stateBeforeServerOperation.dicePieces ?? {}, + stateAfterFirst: stateAfterServerOperation.dicePieces ?? {}, + innerTransform: ({ first, second, prevState, nextState }) => serverTransform$i(requestedBy, currentRoomState)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: cancellationPolicyOfCharacterPieces, + }); + if (dicePieces.isError) { + return dicePieces; + } + const imagePieces = serverTransform$o({ + first: serverOperation?.imagePieces, + second: clientOperation.imagePieces, + stateBeforeFirst: stateBeforeServerOperation.imagePieces ?? {}, + stateAfterFirst: stateAfterServerOperation.imagePieces ?? {}, + innerTransform: ({ first, second, prevState, nextState }) => serverTransform$h(requestedBy)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: cancellationPolicyOfParticipantPieces, + }); + if (imagePieces.isError) { + return imagePieces; + } + const shapePieces = serverTransform$o({ + first: serverOperation?.shapePieces, + second: clientOperation.shapePieces, + stateBeforeFirst: stateBeforeServerOperation.shapePieces ?? {}, + stateAfterFirst: stateAfterServerOperation.shapePieces ?? {}, + innerTransform: ({ first, second, prevState, nextState }) => serverTransform$f(requestedBy)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: cancellationPolicyOfParticipantPieces, + }); + if (shapePieces.isError) { + return shapePieces; + } + const stringPieces = serverTransform$o({ + first: serverOperation?.stringPieces, + second: clientOperation.stringPieces, + stateBeforeFirst: stateBeforeServerOperation.stringPieces ?? {}, + stateAfterFirst: stateAfterServerOperation.stringPieces ?? {}, + innerTransform: ({ first, second, prevState, nextState }) => serverTransform$e(requestedBy, currentRoomState)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: cancellationPolicyOfCharacterPieces, + }); + if (stringPieces.isError) { + return stringPieces; + } + const twoWayOperation = { + $v: 2, + $r: 1, + dicePieces: dicePieces.value, + imagePieces: imagePieces.value, + shapePieces: shapePieces.value, + stringPieces: stringPieces.value, + }; + twoWayOperation.backgroundImage = serverTransform$n({ + first: serverOperation?.backgroundImage, + second: clientOperation.backgroundImage, + prevState: stateBeforeServerOperation.backgroundImage, + }); + twoWayOperation.backgroundImageZoom = serverTransform$n({ + first: serverOperation?.backgroundImageZoom, + second: clientOperation.backgroundImageZoom, + prevState: stateBeforeServerOperation.backgroundImageZoom, + }); + twoWayOperation.cellColumnCount = serverTransform$n({ + first: serverOperation?.cellColumnCount, + second: clientOperation.cellColumnCount, + prevState: stateBeforeServerOperation.cellColumnCount, + }); + twoWayOperation.cellHeight = serverTransform$n({ + first: serverOperation?.cellHeight, + second: clientOperation.cellHeight, + prevState: stateBeforeServerOperation.cellHeight, + }); + twoWayOperation.cellOffsetX = serverTransform$n({ + first: serverOperation?.cellOffsetX, + second: clientOperation.cellOffsetX, + prevState: stateBeforeServerOperation.cellOffsetX, + }); + twoWayOperation.cellOffsetY = serverTransform$n({ + first: serverOperation?.cellOffsetY, + second: clientOperation.cellOffsetY, + prevState: stateBeforeServerOperation.cellOffsetY, + }); + twoWayOperation.cellRowCount = serverTransform$n({ + first: serverOperation?.cellRowCount, + second: clientOperation.cellRowCount, + prevState: stateBeforeServerOperation.cellRowCount, + }); + twoWayOperation.cellWidth = serverTransform$n({ + first: serverOperation?.cellWidth, + second: clientOperation.cellWidth, + prevState: stateBeforeServerOperation.cellWidth, + }); + const name = serverTransform$r({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (name.isError) { + return name; + } + twoWayOperation.name = name.value; + if (canChangeOwnerParticipantId({ + requestedBy, + currentOwnerParticipant: stateAfterServerOperation, + })) { + twoWayOperation.ownerParticipantId = serverTransform$n({ + first: serverOperation?.ownerParticipantId, + second: clientOperation.ownerParticipantId, + prevState: stateBeforeServerOperation.ownerParticipantId, + }); + } + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const toClientState$a = (isAuthorized, defaultValue) => (source) => { + return { + ...source, + value: source.isValuePrivate && !isAuthorized ? defaultValue : source.value, + }; +}; +const serverTransform$c = (isAuthorized) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const twoWayOperation = { $v: 2, $r: 1 }; + if (isAuthorized) { + twoWayOperation.isValuePrivate = serverTransform$n({ + first: serverOperation?.isValuePrivate, + second: clientOperation.isValuePrivate, + prevState: stateBeforeServerOperation.isValuePrivate, + }); + } + if (isAuthorized || !stateAfterServerOperation.isValuePrivate) { + twoWayOperation.value = serverTransform$n({ + first: serverOperation?.value, + second: clientOperation.value, + prevState: stateBeforeServerOperation.value, + }); + } + { + const xformResult = serverTransform$q({ + first: serverOperation?.overriddenParameterName, + second: clientOperation.overriddenParameterName, + prevState: stateBeforeServerOperation.overriddenParameterName, + }); + if (xformResult.isError) { + return xformResult; + } + twoWayOperation.overriddenParameterName = xformResult.value; + } + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok({ ...twoWayOperation }); +}; + +const toClientState$9 = (source) => { + return source; +}; +const serverTransform$b = ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const boardPosition = serverTransform$k({ + stateBeforeServerOperation: { ...stateBeforeServerOperation, $v: undefined, $r: undefined }, + stateAfterServerOperation: { ...stateAfterServerOperation, $v: undefined, $r: undefined }, + clientOperation: { ...clientOperation, $v: undefined, $r: undefined }, + serverOperation: { ...serverOperation, $v: undefined, $r: undefined }, + }); + if (boardPosition.isError) { + return boardPosition; + } + const twoWayOperation = { + ...boardPosition.value, + $v: 2, + $r: 1, + }; + twoWayOperation.isPrivate = serverTransform$n({ + first: serverOperation?.isPrivate, + second: clientOperation.isPrivate, + prevState: stateBeforeServerOperation.isPrivate, + }); + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const toClientState$8 = (source) => { + return source; +}; +const serverTransform$a = ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { + $v: 1, + $r: 1, + }; + const name = serverTransform$r({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (name.isError) { + return name; + } + twoWayOperation.name = name.value; + const value = serverTransform$r({ + first: serverOperation?.value, + second: clientOperation.value, + prevState: stateBeforeServerOperation.value, + }); + if (value.isError) { + return value; + } + twoWayOperation.value = value.value; + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const toClientState$7 = (isAuthorized, defaultValue) => (source) => { + return { + ...source, + value: source.isValuePrivate && !isAuthorized ? defaultValue : source.value, + }; +}; +const serverTransform$9 = (isAuthorized) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const twoWayOperation = { $v: 2, $r: 1 }; + if (isAuthorized) { + twoWayOperation.isValuePrivate = serverTransform$n({ + first: serverOperation?.isValuePrivate, + second: clientOperation.isValuePrivate, + prevState: stateBeforeServerOperation.isValuePrivate, + }); + } + if (isAuthorized || !stateAfterServerOperation.isValuePrivate) { + twoWayOperation.value = serverTransform$n({ + first: serverOperation?.value, + second: clientOperation.value, + prevState: stateBeforeServerOperation.value, + }); + } + { + const xformResult = serverTransform$q({ + first: serverOperation?.overriddenParameterName, + second: clientOperation.overriddenParameterName, + prevState: stateBeforeServerOperation.overriddenParameterName, + }); + if (xformResult.isError) { + return xformResult; + } + twoWayOperation.overriddenParameterName = xformResult.value; + } + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok({ ...twoWayOperation }); +}; + +const toClientState$6 = (source) => { + return source; +}; +const serverTransform$8 = ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const boardPosition = serverTransform$l({ + stateBeforeServerOperation: { ...stateBeforeServerOperation, $v: undefined, $r: undefined }, + stateAfterServerOperation: { ...stateAfterServerOperation, $v: undefined, $r: undefined }, + clientOperation: { ...clientOperation, $v: undefined, $r: undefined }, + serverOperation: { ...serverOperation, $v: undefined, $r: undefined }, + }); + if (boardPosition.isError) { + return boardPosition; + } + const twoWayOperation = { + ...boardPosition.value, + $v: 2, + $r: 1, + }; + twoWayOperation.isPrivate = serverTransform$n({ + first: serverOperation?.isPrivate, + second: clientOperation.isPrivate, + prevState: stateBeforeServerOperation.isPrivate, + }); + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const toClientState$5 = (isAuthorized) => (source) => { + return { + ...source, + value: source.isValuePrivate && !isAuthorized ? '' : source.value, + }; +}; +const serverTransform$7 = (isAuthorized) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const twoWayOperation = { $v: 2, $r: 1 }; + if (isAuthorized) { + twoWayOperation.isValuePrivate = serverTransform$n({ + first: serverOperation?.isValuePrivate, + second: clientOperation.isValuePrivate, + prevState: stateBeforeServerOperation.isValuePrivate, + }); + } + if (isAuthorized || !stateAfterServerOperation.isValuePrivate) { + const transformed = serverTransform$q({ + first: serverOperation?.value, + second: clientOperation.value, + prevState: stateBeforeServerOperation.value, + }); + if (transformed.isError) { + return transformed; + } + twoWayOperation.value = transformed.value; + } + { + const xformResult = serverTransform$q({ + first: serverOperation?.overriddenParameterName, + second: clientOperation.overriddenParameterName, + prevState: stateBeforeServerOperation.overriddenParameterName, + }); + if (xformResult.isError) { + return xformResult; + } + twoWayOperation.overriddenParameterName = xformResult.value; + } + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const template$i = createObjectValueTemplate({ + isValuePrivate: createReplaceValueTemplate(zod.z.boolean()), + value: createReplaceValueTemplate(zod.z.boolean().optional()), + overriddenParameterName: createTextValueTemplate(true), +}, 2, 1); + +const template$h = createObjectValueTemplate({ + ...templateValue, + boardId: createReplaceValueTemplate(zod.z.string()), + isPrivate: createReplaceValueTemplate(zod.z.boolean()), +}, 2, 1); + +const template$g = createObjectValueTemplate({ + name: createTextValueTemplate(false), + value: createTextValueTemplate(false), +}, 1, 1); + +const template$f = createObjectValueTemplate({ + isValuePrivate: createReplaceValueTemplate(zod.z.boolean()), + value: createReplaceValueTemplate(zod.z.number().optional()), + /** + * @description Do not use this value for numMaxParam. + */ + overriddenParameterName: createTextValueTemplate(true), +}, 2, 1); + +const template$e = createObjectValueTemplate({ + ...templateValue$1, + boardId: createReplaceValueTemplate(zod.z.string()), + isPrivate: createReplaceValueTemplate(zod.z.boolean()), +}, 2, 1); + +const template$d = createObjectValueTemplate({ + isValuePrivate: createReplaceValueTemplate(zod.z.boolean()), + value: createTextValueTemplate(true), + overriddenParameterName: createTextValueTemplate(true), +}, 2, 1); + +// boolParams, numParams, numMaxParams, strParams: keyはstrIndex20などの固定キーを想定。 +// pieces, portraitPositions: 誰でも作成できる値。keyはboardのkey。 +// キャラクター全体非公開機能との兼ね合いがあるため、piecesとportraitPositionsをStateに置くのは綺麗ではない。 +const defaultBoolParamState = { + $v: 2, + $r: 1, + isValuePrivate: false, + value: undefined, + overriddenParameterName: undefined, +}; +const defaultNumParamState = { + $v: 2, + $r: 1, + isValuePrivate: false, + value: undefined, + overriddenParameterName: undefined, +}; +const defaultStrParamState = { + $v: 2, + $r: 1, + isValuePrivate: false, + value: undefined, + overriddenParameterName: undefined, +}; +const template$c = createObjectValueTemplate({ + ownerParticipantId: createReplaceValueTemplate(zod.z.string().optional()), + image: createReplaceValueTemplate(filePathValue.optional()), + isPrivate: createReplaceValueTemplate(zod.z.boolean()), + memo: createTextValueTemplate(false), + name: createTextValueTemplate(false), + chatPalette: createTextValueTemplate(false), + privateVarToml: createTextValueTemplate(false), + portraitImage: createReplaceValueTemplate(filePathValue.optional()), + hasTag1: createReplaceValueTemplate(zod.z.boolean()), + hasTag2: createReplaceValueTemplate(zod.z.boolean()), + hasTag3: createReplaceValueTemplate(zod.z.boolean()), + hasTag4: createReplaceValueTemplate(zod.z.boolean()), + hasTag5: createReplaceValueTemplate(zod.z.boolean()), + hasTag6: createReplaceValueTemplate(zod.z.boolean()), + hasTag7: createReplaceValueTemplate(zod.z.boolean()), + hasTag8: createReplaceValueTemplate(zod.z.boolean()), + hasTag9: createReplaceValueTemplate(zod.z.boolean()), + hasTag10: createReplaceValueTemplate(zod.z.boolean()), + boolParams: createParamRecordValueTemplate(template$i, defaultBoolParamState), + numParams: createParamRecordValueTemplate(template$f, defaultNumParamState), + numMaxParams: createParamRecordValueTemplate(template$f, defaultNumParamState), + strParams: createParamRecordValueTemplate(template$d, defaultStrParamState), + pieces: createRecordValueTemplate(template$h), + privateCommands: createRecordValueTemplate(template$g), + portraitPieces: createRecordValueTemplate(template$e), +}, 2, 1); + +const oneToTenArray$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +const toClientState$4 = (isAuthorized, requestedBy, currentRoomState) => (source) => { + return { + ...source, + chatPalette: isAuthorized ? source.chatPalette : '', + privateVarToml: isAuthorized ? source.privateVarToml : '', + boolParams: toClientState$i({ + serverState: source.boolParams, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$a(isAuthorized, undefined)(state), + }), + numParams: toClientState$i({ + serverState: source.numParams, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$7(isAuthorized, undefined)(state), + }), + numMaxParams: toClientState$i({ + serverState: source.numMaxParams, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$7(isAuthorized, undefined)(state), + }), + strParams: toClientState$i({ + serverState: source.strParams, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$5(isAuthorized)(state), + }), + pieces: toClientState$i({ + serverState: source.pieces, + isPrivate: state => !isBoardVisible({ + requestedBy, + boardId: state.boardId, + currentRoomState, + }), + toClientState: ({ state }) => toClientState$9(state), + }), + privateCommands: toClientState$i({ + serverState: source.privateCommands, + isPrivate: () => !isAuthorized, + toClientState: ({ state }) => toClientState$8(state), + }), + portraitPieces: toClientState$i({ + serverState: source.portraitPieces, + isPrivate: state => !isBoardVisible({ + requestedBy, + boardId: state.boardId, + currentRoomState, + }), + toClientState: ({ state }) => toClientState$6(state), + }), + }; +}; +const serverTransform$6 = (isAuthorized, requestedBy, currentRoomState) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + if (!isAuthorized && stateAfterServerOperation.isPrivate) { + return result.Result.ok(undefined); + } + const boolParams = serverTransform$p({ + stateBeforeFirst: stateBeforeServerOperation.boolParams ?? {}, + stateAfterFirst: stateAfterServerOperation.boolParams ?? {}, + first: serverOperation?.boolParams, + second: clientOperation.boolParams, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$c(isAuthorized)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: { ...first, $v: 2, $r: 1 }, + clientOperation: { ...second, $v: 2, $r: 1 }, + }), + defaultState: defaultBoolParamState, + }); + if (boolParams.isError) { + return boolParams; + } + const numParams = serverTransform$p({ + stateBeforeFirst: stateBeforeServerOperation.numParams ?? {}, + stateAfterFirst: stateAfterServerOperation.numParams ?? {}, + first: serverOperation?.numParams, + second: clientOperation.numParams, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$9(isAuthorized)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + defaultState: defaultNumParamState, + }); + if (numParams.isError) { + return numParams; + } + const numMaxParams = serverTransform$p({ + stateBeforeFirst: stateBeforeServerOperation.numMaxParams ?? {}, + stateAfterFirst: stateAfterServerOperation.numMaxParams ?? {}, + first: serverOperation?.numMaxParams, + second: clientOperation.numMaxParams, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$9(isAuthorized)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + defaultState: defaultNumParamState, + }); + if (numMaxParams.isError) { + return numMaxParams; + } + const strParams = serverTransform$p({ + stateBeforeFirst: stateBeforeServerOperation.strParams ?? {}, + stateAfterFirst: stateAfterServerOperation.strParams ?? {}, + first: serverOperation?.strParams, + second: clientOperation.strParams, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$7(isAuthorized)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + defaultState: defaultStrParamState, + }); + if (strParams.isError) { + return strParams; + } + const pieces = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.pieces ?? {}, + stateAfterFirst: stateAfterServerOperation.pieces ?? {}, + first: serverOperation?.pieces, + second: clientOperation.pieces, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$b({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ newState }) => !isBoardVisible({ + requestedBy, + currentRoomState, + boardId: newState.boardId, + }) || + !isOwner({ + requestedBy, + ownerParticipantId: stateAfterServerOperation.ownerParticipantId ?? none, + }), + cancelRemove: params => { + if (!isBoardVisible({ + requestedBy, + currentRoomState, + boardId: params.state.boardId, + })) { + return true; + } + return !isAuthorized && params.state.isPrivate; + }, + cancelUpdate: params => { + if (!isBoardVisible({ + requestedBy, + currentRoomState, + boardId: params.nextState.boardId, + })) { + return true; + } + return !isAuthorized && params.nextState.isPrivate; + }, + }, + }); + if (pieces.isError) { + return pieces; + } + const privateCommands = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.privateCommands ?? {}, + stateAfterFirst: stateAfterServerOperation.privateCommands ?? {}, + first: serverOperation?.privateCommands, + second: clientOperation.privateCommands, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$a({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: () => !isAuthorized, + cancelRemove: () => !isAuthorized, + cancelUpdate: () => !isAuthorized, + }, + }); + if (privateCommands.isError) { + return privateCommands; + } + const portraitPositions = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.portraitPieces ?? {}, + stateAfterFirst: stateAfterServerOperation.portraitPieces ?? {}, + first: serverOperation?.portraitPieces, + second: clientOperation.portraitPieces, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$8({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ newState }) => !isBoardVisible({ + requestedBy, + currentRoomState, + boardId: newState.boardId, + }) || + !isOwner({ + requestedBy, + ownerParticipantId: stateAfterServerOperation.ownerParticipantId ?? none, + }), + cancelRemove: params => { + if (!isBoardVisible({ + requestedBy, + currentRoomState, + boardId: params.state.boardId, + })) { + return true; + } + return !isAuthorized && params.state.isPrivate; + }, + cancelUpdate: params => { + if (!isBoardVisible({ + requestedBy, + currentRoomState, + boardId: params.nextState.boardId, + })) { + return true; + } + return !isAuthorized && params.nextState.isPrivate; + }, + }, + }); + if (portraitPositions.isError) { + return portraitPositions; + } + const twoWayOperation = { + $v: 2, + $r: 1, + boolParams: boolParams.value, + numParams: numParams.value, + numMaxParams: numMaxParams.value, + strParams: strParams.value, + pieces: pieces.value, + privateCommands: privateCommands.value, + portraitPieces: portraitPositions.value, + }; + if (canChangeOwnerParticipantId({ + requestedBy, + currentOwnerParticipant: stateAfterServerOperation, + })) { + twoWayOperation.ownerParticipantId = serverTransform$n({ + first: serverOperation?.ownerParticipantId, + second: clientOperation.ownerParticipantId, + prevState: stateBeforeServerOperation.ownerParticipantId, + }); + } + twoWayOperation.image = serverTransform$n({ + first: serverOperation?.image, + second: clientOperation.image, + prevState: stateBeforeServerOperation.image, + }); + twoWayOperation.portraitImage = serverTransform$n({ + first: serverOperation?.portraitImage, + second: clientOperation.portraitImage, + prevState: stateBeforeServerOperation.portraitImage, + }); + twoWayOperation.isPrivate = serverTransform$n({ + first: serverOperation?.isPrivate, + second: clientOperation.isPrivate, + prevState: stateBeforeServerOperation.isPrivate, + }); + for (const index of oneToTenArray$1) { + const key = `hasTag${index}`; + twoWayOperation[key] = serverTransform$n({ + first: serverOperation?.[key], + second: clientOperation[key], + prevState: stateBeforeServerOperation[key], + }); + } + const transformedMemo = serverTransform$r({ + first: serverOperation?.memo, + second: clientOperation.memo, + prevState: stateBeforeServerOperation.memo, + }); + if (transformedMemo.isError) { + return transformedMemo; + } + twoWayOperation.memo = transformedMemo.value; + const transformedName = serverTransform$r({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (transformedName.isError) { + return transformedName; + } + twoWayOperation.name = transformedName.value; + if (isAuthorized) { + const transformedChatPalette = serverTransform$r({ + first: serverOperation?.chatPalette, + second: clientOperation.chatPalette, + prevState: stateBeforeServerOperation.chatPalette, + }); + if (transformedChatPalette.isError) { + return transformedChatPalette; + } + twoWayOperation.chatPalette = transformedChatPalette.value; + } + if (isAuthorized) { + const transformed = serverTransform$r({ + first: serverOperation?.privateVarToml, + second: clientOperation.privateVarToml, + prevState: stateBeforeServerOperation.privateVarToml, + }); + if (transformed.isError) { + return transformed; + } + twoWayOperation.privateVarToml = transformed.value; + } + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const toClientState$3 = (source) => source; +const serverTransform$5 = ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { $v: 1, $r: 1 }; + // 暫定的にディレクトリの深さは1までとしている + if ((clientOperation.dir?.newValue.length ?? 0) <= 1) { + twoWayOperation.dir = serverTransform$n({ + first: serverOperation?.dir, + second: clientOperation.dir, + prevState: stateBeforeServerOperation.dir, + }); + } + const name = serverTransform$r({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (name.isError) { + return name; + } + twoWayOperation.name = name.value; + const text = serverTransform$r({ + first: serverOperation?.text, + second: clientOperation.text, + prevState: stateBeforeServerOperation.text, + }); + if (text.isError) { + return text; + } + twoWayOperation.text = text.value; + twoWayOperation.textType = serverTransform$n({ + first: serverOperation?.textType, + second: clientOperation.textType, + prevState: stateBeforeServerOperation.textType, + }); + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok({ ...twoWayOperation }); +}; + +const toClientState$2 = (source) => source; +const serverTransform$4 = ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { $v: 1, $r: 1 }; + const name = serverTransform$r({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (name.isError) { + return name; + } + twoWayOperation.name = name.value; + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok({ ...twoWayOperation }); +}; + +const toClientState$1 = (source) => { + return source; +}; +const serverTransform$3 = ({ requestedBy, participantKey, }) => ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const isAuthorized = isOwner({ + requestedBy, + ownerParticipantId: participantKey, + }); + const twoWayOperation = { + $v: 2, + $r: 1, + }; + if (isAuthorized) { + // CONSIDER: ユーザーがnameをnullishに変更することは禁止すべきかもしれない + twoWayOperation.name = serverTransform$n({ + first: serverOperation?.name ?? undefined, + second: clientOperation.name ?? undefined, + prevState: stateBeforeServerOperation.name, + }); + } + if (requestedBy.type === admin) { + twoWayOperation.role = serverTransform$n({ + first: serverOperation?.role ?? undefined, + second: clientOperation.role ?? undefined, + prevState: stateBeforeServerOperation.role, + }); + } + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +// Participantとは、そのRoomに入っているユーザーのこと。通常は、Player、Spectatorなどのroleを持っている。 +// nameはJSONのあるエンティティとは別に保存される想定であるため、nameが見つからないもしくは一時的に取得できないという状況がありうる。そのため、maybeを付けており、TextOperationではなくReplaceOperationとして定義している。ReplaceOperationは文字数が多いと非効率化するため、maxLength100Stringとしている。 +const Player = 'Player'; +const Spectator = 'Spectator'; +const Master = 'Master'; +const participantRole = zod.z.union([zod.z.literal(Player), zod.z.literal(Spectator), zod.z.literal(Master)]); +const template$b = createObjectValueTemplate({ + name: createReplaceValueTemplate(maybe(maxLength100String)), + role: createReplaceValueTemplate(maybe(participantRole)), +}, 2, 1); + +const getOpenRollCalls = (source) => { + return utils.recordToArray(source).filter(({ value }) => { + return value.closeStatus == null; + }); +}; +/** + * 現在行われている点呼があればそれを返します。 + * + * 原則として、現在行われている点呼は最大でも 1 つまでしか存在できません。 + */ +const getOpenRollCall = (source) => { + const activeRollCalls = getOpenRollCalls(source); + return esToolkit.maxBy(activeRollCalls, ({ value }) => value.createdAt); +}; + +const isOpenRollCall = (source) => { + // キーは何でもいいので、適当なキーを指定している。 + const r = getOpenRollCall({ key: source }); + return r != null; +}; + +const serverTransform$2 = ({ requestedBy, }) => ({ stateBeforeServerOperation, serverOperation, clientOperation }) => { + const isAdmin = requestedBy.type === admin; + if (!isAdmin) { + return result.Result.ok(undefined); + } + const twoWayOperation = { $v: 1, $r: 1 }; + twoWayOperation.answeredAt = serverTransform$n({ + first: serverOperation?.answeredAt, + second: clientOperation.answeredAt, + prevState: stateBeforeServerOperation.answeredAt, + }); + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const serverTransform$1 = ({ requestedBy, }) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const isOpenRollCallValue = isOpenRollCall(stateAfterServerOperation); + const isAdmin = requestedBy.type === admin; + const participants = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.participants ?? {}, + stateAfterFirst: stateAfterServerOperation.participants ?? {}, + first: serverOperation?.participants, + second: clientOperation.participants, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$2({ + requestedBy, + })({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + // Master および Player は自分の userUid であれば追加できる。 + // Spectator は Operate Mutation を実行しても無視されるため、Spectator を弾く処理は必要ない。 + cancelCreate: ({ key }) => !(isOpenRollCallValue && isAuthorized({ requestedBy, participantId: key })), + cancelRemove: () => !isAdmin, + }, + }); + if (participants.isError) { + return participants; + } + const twoWayOperation = { + $v: 1, + $r: 1, + participants: participants.value, + }; + if (isAdmin) { + twoWayOperation.closeStatus = serverTransform$n({ + first: serverOperation?.closeStatus, + second: clientOperation.closeStatus, + prevState: stateBeforeServerOperation.closeStatus, + }); + twoWayOperation.createdAt = serverTransform$n({ + first: serverOperation?.createdAt, + second: clientOperation.createdAt, + prevState: stateBeforeServerOperation.createdAt, + }); + twoWayOperation.createdBy = serverTransform$n({ + first: serverOperation?.createdBy, + second: clientOperation.createdBy, + prevState: stateBeforeServerOperation.createdBy, + }); + } + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const oneToTenArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +/** + * Stateから、指定されたユーザーが閲覧できないデータを取り除いた新しいStateを返す。 + * @param requestedBy 生成されたStateを渡すユーザーの種類。権限を確認するために用いられる。 + */ +const toClientState = (requestedBy) => (source) => { + return { + ...source, + bgms: toClientState$i({ + serverState: source.bgms, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$h(state), + }), + boolParamNames: toClientState$i({ + serverState: source.boolParamNames, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$2(state), + }), + boards: toClientState$i({ + serverState: source.boards, + isPrivate: (_, boardId) => !isBoardVisible({ + boardId, + requestedBy, + currentRoomState: source, + }), + toClientState: ({ state }) => toClientState$b(requestedBy, source)(state), + }), + characters: toClientState$i({ + serverState: source.characters, + isPrivate: state => !isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }) && state.isPrivate, + toClientState: ({ state }) => toClientState$4(isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }), requestedBy, source)(state), + }), + memos: toClientState$i({ + serverState: source.memos, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$3(state), + }), + numParamNames: toClientState$i({ + serverState: source.numParamNames, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$2(state), + }), + participants: toClientState$i({ + serverState: source.participants, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$1(state), + }), + strParamNames: toClientState$i({ + serverState: source.strParamNames, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$2(state), + }), + }; +}; +/** + * クライアントによる変更の要求を表すOperationを受け取り、APIサーバーのStateに対してapplyできる状態のOperationに変換して返す。変換処理では、主に次の2つが行われる。 + * - クライアントから受け取ったOperationのうち、不正なもの(例: そのユーザーが本来削除できないはずのキャラクターを削除しようとする)があった場合に、取り除くか拒否してエラーを返す + * - 編集競合が発生している場合は解決する + * + * @param requestedBy 変更を要求したユーザーの種類。権限を確認するために用いられる。 + * @param stateBeforeServerOperation クライアントがStateを変更しようとしたときに用いられたState。 + * @param stateAfterServerOperation APIサーバーにおける実際の最新のState。 + * @param serverOperation `stateBeforeServerOperation`と`stateAfterServerOperation`のDiff。`stateBeforeServerOperation`と`stateAfterServerOperation`が等しい場合はundefined。 + * @param clientOperation クライアントが要求している変更。 + * @returns `stateAfterServerOperation`に対してapplyできる状態のOperation。 + */ +const serverTransform = (requestedBy) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + switch (requestedBy.type) { + case restrict: + // エラーを返すべきかもしれない + return result.Result.ok(undefined); + case client: { + const me = (stateAfterServerOperation.participants ?? {})[requestedBy.userUid]; + if (me == null || me.role == null || me.role === Spectator) { + // エラーを返すべきかもしれない + return result.Result.ok(undefined); + } + break; + } + } + const isAdmin = requestedBy.type === admin; + const bgms = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.bgms ?? {}, + stateAfterFirst: stateAfterServerOperation.bgms ?? {}, + first: serverOperation?.bgms, + second: clientOperation.bgms, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$m({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ key }) => !isStrIndex5(key), + }, + }); + if (bgms.isError) { + return bgms; + } + const boolParamNames = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.boolParamNames ?? {}, + stateAfterFirst: stateAfterServerOperation.boolParamNames ?? {}, + first: serverOperation?.boolParamNames, + second: clientOperation.boolParamNames, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$4({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ key }) => !isStrIndex20(key), + }, + }); + if (boolParamNames.isError) { + return boolParamNames; + } + const boards = serverTransform$o({ + first: serverOperation?.boards, + second: clientOperation.boards, + stateBeforeFirst: stateBeforeServerOperation.boards ?? {}, + stateAfterFirst: stateAfterServerOperation.boards ?? {}, + innerTransform: ({ first, second, prevState, nextState }) => serverTransform$d(requestedBy, stateAfterServerOperation)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ newState }) => !isOwner({ + requestedBy, + ownerParticipantId: newState.ownerParticipantId ?? none, + }), + cancelUpdate: ({ key }) => { + return !isBoardVisible({ + boardId: key, + currentRoomState: stateAfterServerOperation, + requestedBy, + }); + }, + cancelRemove: ({ state }) => !isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }), + }, + }); + if (boards.isError) { + return boards; + } + const characters = serverTransform$o({ + first: serverOperation?.characters, + second: clientOperation.characters, + stateBeforeFirst: stateBeforeServerOperation.characters ?? {}, + stateAfterFirst: stateAfterServerOperation.characters ?? {}, + innerTransform: ({ first, second, prevState, nextState }) => serverTransform$6(isOwner({ + requestedBy, + ownerParticipantId: nextState.ownerParticipantId ?? anyValue, + }), requestedBy, stateAfterServerOperation)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ newState }) => !isOwner({ + requestedBy, + ownerParticipantId: newState.ownerParticipantId ?? none, + }), + cancelUpdate: ({ nextState }) => !isOwner({ + requestedBy, + ownerParticipantId: nextState.ownerParticipantId ?? anyValue, + }) && nextState.isPrivate, + cancelRemove: ({ state }) => !isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }) && state.isPrivate, + }, + }); + if (characters.isError) { + return characters; + } + // TODO: ファイルサイズが巨大になりそうなときに拒否する機能 + const memos = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.memos ?? {}, + stateAfterFirst: stateAfterServerOperation.memos ?? {}, + first: serverOperation?.memos, + second: clientOperation.memos, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$5({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: {}, + }); + if (memos.isError) { + return memos; + } + const numParamNames = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.numParamNames ?? {}, + stateAfterFirst: stateAfterServerOperation.numParamNames ?? {}, + first: serverOperation?.numParamNames, + second: clientOperation.numParamNames, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$4({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ key }) => !isStrIndex20(key), + }, + }); + if (numParamNames.isError) { + return numParamNames; + } + const strParamNames = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.strParamNames ?? {}, + stateAfterFirst: stateAfterServerOperation.strParamNames ?? {}, + first: serverOperation?.strParamNames, + second: clientOperation.strParamNames, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$4({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ key }) => !isStrIndex20(key), + }, + }); + if (strParamNames.isError) { + return strParamNames; + } + const participants = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.participants ?? {}, + stateAfterFirst: stateAfterServerOperation.participants ?? {}, + first: serverOperation?.participants, + second: clientOperation.participants, + innerTransform: ({ prevState, nextState, first, second, key }) => serverTransform$3({ + requestedBy, + participantKey: key, + })({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: {}, + }); + if (participants.isError) { + return participants; + } + const hasNoOpenRollCall = getOpenRollCall(stateAfterServerOperation.rollCalls ?? {}) == null; + const rollCalls = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.rollCalls ?? {}, + stateAfterFirst: stateAfterServerOperation.rollCalls ?? {}, + first: serverOperation?.rollCalls, + second: clientOperation.rollCalls, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$1({ + requestedBy, + })({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: () => !(isAdmin && hasNoOpenRollCall), + cancelRemove: () => !(isAdmin && hasNoOpenRollCall), + }, + }); + if (rollCalls.isError) { + return rollCalls; + } + const twoWayOperation = { + $v: 2, + $r: 1, + bgms: bgms.value, + boards: boards.value, + characters: characters.value, + boolParamNames: boolParamNames.value, + memos: memos.value, + numParamNames: numParamNames.value, + strParamNames: strParamNames.value, + participants: participants.value, + rollCalls: rollCalls.value, + }; + // activeBoardIdには、自分が作成したBoardしか設定できない。ただし、nullishにするのは誰でもできる。 + if (clientOperation.activeBoardId != null) { + if (clientOperation.activeBoardId.newValue == null || + isBoardOwner({ + requestedBy, + boardId: clientOperation.activeBoardId.newValue, + currentRoomState: stateAfterServerOperation, + }) === true) { + twoWayOperation.activeBoardId = serverTransform$n({ + first: serverOperation?.activeBoardId, + second: clientOperation.activeBoardId, + prevState: stateBeforeServerOperation.activeBoardId, + }); + } + } + const name = serverTransform$r({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (name.isError) { + return name; + } + twoWayOperation.name = name.value; + for (const i of oneToTenArray) { + const key = `characterTag${i}Name`; + const transformed = serverTransform$q({ + first: serverOperation?.[key], + second: clientOperation[key], + prevState: stateBeforeServerOperation[key], + }); + if (transformed.isError) { + return transformed; + } + twoWayOperation[key] = transformed.value; + } + for (const i of oneToTenArray) { + const key = `publicChannel${i}Name`; + const transformed = serverTransform$r({ + first: serverOperation?.[key], + second: clientOperation[key], + prevState: stateBeforeServerOperation[key], + }); + if (transformed.isError) { + return transformed; + } + twoWayOperation[key] = transformed.value; + } + if (isIdRecord(twoWayOperation)) { + return result.Result.ok(undefined); + } + return result.Result.ok(twoWayOperation); +}; + +const template$a = createObjectValueTemplate({ + isPaused: createReplaceValueTemplate(zod.z.boolean()), + files: createReplaceValueTemplate(zod.z.array(filePathValue)), + volume: createReplaceValueTemplate(zod.z.number()), +}, 1, 1); + +const template$9 = createObjectValueTemplate({ + ...templateValue, + ownerParticipantId: createReplaceValueTemplate(maybe(zod.z.string())), + image: createReplaceValueTemplate(maybe(filePathValue)), + isPrivate: createReplaceValueTemplate(zod.z.boolean()), +}, 2, 1); + +const path = 'path'; +const $path = zod.z.object({ + type: zod.z.literal(path), + // SVG pathのdと同様の値 + data: zod.z.string(), +}); +const shape = $path; + +const template$8 = createObjectValueTemplate({ + shape: createReplaceValueTemplate(shape), + fill: createReplaceValueTemplate(maybe(zod.z.string())), + stroke: createReplaceValueTemplate(maybe(zod.z.string())), + strokeWidth: createReplaceValueTemplate(maybe(zod.z.number())), +}, 1, 1); + +const template$7 = createObjectValueTemplate({ + ...templateValue, + ownerParticipantId: createReplaceValueTemplate(zod.z.string().optional()), + isPrivate: createReplaceValueTemplate(zod.z.boolean()), + /** + * keyは`'1'`から`'9'`の9個のみをサポートしています。詳細は`./functions.ts`を参照してください。 + * + * ShapeのPath.dataは、widthとheightがともに100pxの正方形として記述します。コマなどの大きさに応じて自動的にscaleされます。 + * */ + shapes: createRecordValueTemplate(template$8), +}, 1, 1); + +const String = 'String'; +const Number = 'Number'; +const valueInputType = zod.z.union([zod.z.literal(String), zod.z.literal(Number)]); +const template$6 = createObjectValueTemplate({ + ...templateValue, + ownerCharacterId: createReplaceValueTemplate(maybe(zod.z.string())), + isValuePrivate: createReplaceValueTemplate(zod.z.boolean()), + value: createTextValueTemplate(false), + valueInputType: createReplaceValueTemplate(maybe(valueInputType)), +}, 2, 1); + +const template$5 = createObjectValueTemplate({ + backgroundImage: createReplaceValueTemplate(maybe(filePathValue)), + backgroundImageZoom: createReplaceValueTemplate(zod.z.number()), + cellColumnCount: createReplaceValueTemplate(zod.z.number()), + cellHeight: createReplaceValueTemplate(zod.z.number()), + cellOffsetX: createReplaceValueTemplate(zod.z.number()), + cellOffsetY: createReplaceValueTemplate(zod.z.number()), + cellRowCount: createReplaceValueTemplate(zod.z.number()), + cellWidth: createReplaceValueTemplate(zod.z.number()), + name: createTextValueTemplate(false), + ownerParticipantId: createReplaceValueTemplate(maybe(zod.z.string())), + dicePieces: createRecordValueTemplate(template$j), + imagePieces: createRecordValueTemplate(template$9), + shapePieces: createRecordValueTemplate(template$7), + stringPieces: createRecordValueTemplate(template$6), +}, 2, 1); + +const Plain = 'Plain'; +const Markdown = 'Markdown'; +/** + * @description To 3rd-party developers: Please always set 'Plain' to this because 'Markdown' is not implemented yet in the official web-server. + */ +const textType = zod.z.union([zod.z.literal(Plain), zod.z.literal(Markdown)]); +// メモのパスは、/を区切りとして例えば グループ1/グループ2/メモ であれば dir=['グループ1', 'グループ2'], name='メモ' とする。 +const template$4 = createObjectValueTemplate({ + name: createTextValueTemplate(false), + dir: createReplaceValueTemplate(zod.z.array(zod.z.string())), + text: createTextValueTemplate(false), + /** + * @description To 3rd-party developers: Please always set 'Plain' to this because 'Markdown' is not implemented yet in the official web-server. + */ + textType: createReplaceValueTemplate(textType), +}, 1, 1); + +const template$3 = createObjectValueTemplate({ + name: createTextValueTemplate(false), +}, 1, 1); + +const template$2 = createObjectValueTemplate({ + /** 点呼に返事したかどうか。`number` の場合は返事をしたことを表し、値は返事した日時となります。 `undefined` の場合は返事をしていないことを表します。`number` から `undefined` に戻すことで返事を撤回することもできます。また、`number` から `number` に変更することで、返事をした時間を更新することもできます。 */ + answeredAt: createReplaceValueTemplate(zod.z.number().optional()), +}, 1, 1); + +// # 点呼機能と投票機能(未実装)の違いに関する考察 +// +// 点呼機能は投票機能(複数の選択肢があってそこから選ぶ機能)も兼ねようと考えたが、次の点が異なるため、もし投票機能を実装する場合は分けたほうがいいと結論付けた。 +// - 投票機能は、何らかのアクションの許可と関連付ける可能性がある。例えば、GMを変更する、デッキの内容を変更していいか確認をとるなど。対して点呼はそのような機能は必要なさそう。 +// - 投票機能は、締め切られるまで他の人がどちらに投票したかわからないようにすると理想的(必須ではない)。対して点呼はそのような必要がない。 +// - 点呼は全員が返事するかどうかが最も大事。投票はその限りではなく、もし多数決であれば無投票があっても問題ない。 +// - 投票は複数が同時進行しても構わないが、点呼は基本的に1つまで。 +const closeReason = zod.z.object({ + closedBy: zod.z.string(), + /** + * ユーザーが明示的に点呼を終了させたときは `Closed`。 + * + * 現時点では `Closed` のみに対応していますが、将来、他の点呼が開始されたため自動終了したときの値として `Replaced` が追加される可能性があります。 + */ + reason: zod.z.literal('Closed'), +}); +const soundEffect = zod.z.object({ + file: filePathValue, + volume: zod.z.number(), +}); +/** 点呼の状況。 */ +const template$1 = createObjectValueTemplate({ + createdAt: createReplaceValueTemplate(zod.z.number()), + // Participant ID + createdBy: createReplaceValueTemplate(zod.z.string()), + /** + * 締め切られたかどうか。nullish ならば締め切られていないことを表します。原則として、締め切られていない点呼は、最大で1つまでしか存在できません。 + * + * 締め切られていない場合、参加者は誰でも締め切ることができます(ただし、締め切るには GraphQL の Mutation から実行する必要があります)。すでに締め切られている場合は、再開させることはできません。 + */ + closeStatus: createReplaceValueTemplate(closeReason.optional()), + /** + * 各ユーザーの点呼の状況です。keyはParticipantのIDです。 + * + * 原則として、`Spectator` もしくは存在しない Participant を追加すること、値を削除すること、すでに締め切られている場合に値を追加および変更することはできません。 + * + * この Record に存在しない `Player` や `Master` も点呼に参加できます。 + */ + participants: createRecordValueTemplate(template$2), + // このプロパティを実装せず、代わりにクライアント側で点呼開始と同時に通常時の SE 機能から流す案は、次の理由で却下した。もし点呼開始の mutation 実行開始と同時に流す場合は、点呼開始に失敗したときにも SE が流れてしまう。mutation の応答を待って成功していたときのみ流す場合は、点呼開始直後にブラウザを閉じたりしたときに SE が流れないという問題点がある。 + /** 点呼開始時に流す SE。 */ + soundEffect: createReplaceValueTemplate(soundEffect.optional()), +}, 1, 1); + +const templateBase = { + activeBoardId: createReplaceValueTemplate(maybe(zod.z.string())), + bgms: createRecordValueTemplate(template$a), // keyはStrIndex5 + boolParamNames: createRecordValueTemplate(template$3), //keyはStrIndex20 + boards: createRecordValueTemplate(template$5), // keyはランダムなID + characters: createRecordValueTemplate(template$c), // keyはランダムなID + characterTag1Name: createTextValueTemplate(true), + characterTag2Name: createTextValueTemplate(true), + characterTag3Name: createTextValueTemplate(true), + characterTag4Name: createTextValueTemplate(true), + characterTag5Name: createTextValueTemplate(true), + characterTag6Name: createTextValueTemplate(true), + characterTag7Name: createTextValueTemplate(true), + characterTag8Name: createTextValueTemplate(true), + characterTag9Name: createTextValueTemplate(true), + characterTag10Name: createTextValueTemplate(true), + memos: createRecordValueTemplate(template$4), // keyはランダムなID + numParamNames: createRecordValueTemplate(template$3), // keyはStrIndex20 + rollCalls: createRecordValueTemplate(template$1), // keyはランダムなID + publicChannel1Name: createTextValueTemplate(false), + publicChannel2Name: createTextValueTemplate(false), + publicChannel3Name: createTextValueTemplate(false), + publicChannel4Name: createTextValueTemplate(false), + publicChannel5Name: createTextValueTemplate(false), + publicChannel6Name: createTextValueTemplate(false), + publicChannel7Name: createTextValueTemplate(false), + publicChannel8Name: createTextValueTemplate(false), + publicChannel9Name: createTextValueTemplate(false), + publicChannel10Name: createTextValueTemplate(false), + strParamNames: createRecordValueTemplate(template$3), //keyはStrIndex20 +}; +const dbTemplate = createObjectValueTemplate(templateBase, 2, 1); +// nameとcreatedByはDBから頻繁に取得されると思われる値なので独立させている。 +const template = createObjectValueTemplate({ + ...templateBase, + createdBy: createReplaceValueTemplate(zod.z.string()), + name: createTextValueTemplate(false), + participants: createRecordValueTemplate(template$b), +}, 2, 1); + +const decodeState = (source) => { + return state(template).parse(source); +}; +const parseState = (source) => { + return decodeState(JSON.parse(source)); +}; +const stringifyState = (source) => { + const result = state(template).parse(source); + return JSON.stringify(result); +}; +const decodeDbState = (source) => { + return state(dbTemplate).parse(source); +}; +const exactDbState = (source) => { + return state(dbTemplate).parse(source); +}; +const decodeUpOperation = (source) => { + return upOperation(template).parse(source); +}; +const parseUpOperation = (source) => { + return decodeUpOperation(JSON.parse(source)); +}; +const stringifyUpOperation = (source) => { + const result = upOperation(template).parse(source); + return JSON.stringify(result); +}; +const decodeDownOperation = (source) => { + return downOperation(template).parse(source); +}; +const exactDownOperation = (source) => { + return downOperation(template).parse(source); +}; + +const createOperation = (version, revision, props) => zod.z + .object(props) + .partial() + .merge(zod.z.object({ + $v: zod.z.literal(version), + $r: zod.z.literal(revision), +})); + +const updateType = 'update'; +const createType = 'create'; +const deleteType = 'delete'; + +const dieValueUpOperation = createOperation(1, 1, { + dieType: zod.z.object({ newValue: dieType }), + isValuePrivateChanged: zod.z.object({ newValue: maybe(zod.z.number()) }), + isValueChanged: zod.z.boolean(), +}); +const update$1 = zod.z + .object({ + $v: zod.z.literal(2), + $r: zod.z.literal(1), + type: zod.z.literal(updateType), +}) + .and(upOperation(createObjectValueTemplate(templateValue, 2, 1))) + .and(zod.z + .object({ + ownerCharacterId: zod.z.object({ newValue: maybe(zod.z.string()) }), + dice: record$1(recordUpOperationElementFactory(state(template$k), dieValueUpOperation)), +}) + .partial()); +const type$1 = zod.z.union([ + zod.z.object({ + $v: zod.z.literal(2), + $r: zod.z.literal(1), + type: zod.z.literal(createType), + value: state(template$j), + }), + zod.z.object({ + $v: zod.z.literal(2), + $r: zod.z.literal(1), + type: zod.z.literal(deleteType), + value: state(template$j), + }), + update$1, +]); +const ofOperation$1 = (operation, currentState) => { + const result = { + ...toUpOperation(template$j)(operation), + $v: 2, + $r: 1, + type: updateType, + ownerCharacterId: operation.ownerCharacterId, + dice: operation.dice == null + ? undefined + : utils.chooseRecord(operation.dice, (element, key) => { + switch (element.type) { + case update$2: { + const currentDiceState = (currentState.dice ?? {})[key]; + if (currentDiceState == null) { + throw new Error('this should not happen'); + } + const update = { + $v: 1, + $r: 1, + dieType: element.update.dieType, + isValuePrivateChanged: element.update.isValuePrivate == null || + element.update.isValuePrivate.oldValue === + element.update.isValuePrivate.newValue + ? undefined + : { + newValue: element.update.isValuePrivate.newValue + ? undefined + : currentDiceState.value, + }, + isValueChanged: element.update.value != null, + }; + return { + type: update$2, + update, + }; + } + case replace$1: { + const newValue = element.replace.newValue == null + ? undefined + : toClientState$g(false)(element.replace.newValue); + return { + type: replace$1, + replace: { + newValue, + }, + }; + } + } + }), + }; + return type$1.parse(result); +}; + +const decode$1 = (source) => { + return type$1.parse(source); +}; +const parse$1 = (source) => { + return decode$1(JSON.parse(source)); +}; + +const update = zod.z + .object({ + $v: zod.z.literal(2), + $r: zod.z.literal(1), + type: zod.z.literal(updateType), +}) + .and(upOperation(createObjectValueTemplate(templateValue, 2, 1))) + .and(zod.z + .object({ + ownerCharacterId: zod.z.object({ newValue: maybe(zod.z.string()) }), + isValuePrivateChanged: zod.z.object({ newValue: maybe(zod.z.string()) }), + isValueChanged: zod.z.boolean(), +}) + .partial()); +const type = zod.z.union([ + zod.z.object({ + $v: zod.z.literal(2), + $r: zod.z.literal(1), + type: zod.z.literal(createType), + value: state(template$6), + }), + zod.z.object({ + $v: zod.z.literal(2), + $r: zod.z.literal(1), + type: zod.z.literal(deleteType), + value: state(template$6), + }), + update, +]); +const ofOperation = (operation, currentState) => { + const result = { + ...toUpOperation(template$6)(operation), + $v: 2, + $r: 1, + type: updateType, + ownerCharacterId: operation.ownerCharacterId, + isValueChanged: operation.value != null, + isValuePrivateChanged: operation.isValuePrivate == null || + operation.isValuePrivate.oldValue === operation.isValuePrivate.newValue + ? undefined + : { + newValue: operation.isValuePrivate.newValue ? undefined : currentState.value, + }, + }; + return type.parse(result); +}; + +const decode = (source) => { + return type.parse(source); +}; +const parse = (source) => { + return decode(JSON.parse(source)); +}; + +const createLogs = ({ prevState, nextState, }) => { + const boardsDiff = diff$1({ + prevState: prevState.boards ?? {}, + nextState: nextState.boards ?? {}, + innerDiff: params => diff(template$5)(params), + }); + if (boardsDiff == null) { + return undefined; + } + const dicePieceLogs = []; + const stringPieceLogs = []; + utils.recordForEach(boardsDiff, (diff, boardId) => { + if (diff.type === replace$1) { + utils.recordForEach(diff.replace.oldValue?.dicePieces ?? {}, (value, stateId) => { + dicePieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: deleteType, + value: toClientState$f({ type: restrict }, prevState)(value), + }, + }); + }); + utils.recordForEach(diff.replace.newValue?.dicePieces ?? {}, (value, stateId) => { + dicePieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: createType, + value: toClientState$f({ type: restrict }, prevState)(value), + }, + }); + }); + utils.recordForEach(diff.replace.oldValue?.stringPieces ?? {}, (value, stateId) => { + stringPieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: deleteType, + value: toClientState$c({ type: restrict }, prevState)(value), + }, + }); + }); + utils.recordForEach(diff.replace.newValue?.stringPieces ?? {}, (value, stateId) => { + stringPieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: createType, + value: toClientState$c({ type: restrict }, prevState)(value), + }, + }); + }); + return; + } + const nextBoard = (nextState.boards ?? {})[boardId]; + if (nextBoard == null) { + throw new Error('this should not happen. Board.diff has some bugs?'); + } + utils.recordForEach(diff.update.dicePieces ?? {}, (operation, stateId) => { + if (operation.type === replace$1) { + if (operation.replace.oldValue != null) { + dicePieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: deleteType, + value: toClientState$f({ type: restrict }, prevState)(operation.replace.oldValue), + }, + }); + } + if (operation.replace.newValue != null) { + dicePieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: createType, + value: toClientState$f({ type: restrict }, prevState)(operation.replace.newValue), + }, + }); + } + return; + } + const nextDicePiece = (nextBoard.dicePieces ?? {})[stateId]; + if (nextDicePiece == null) { + throw new Error('this should not happen'); + } + dicePieceLogs.push({ + boardId, + stateId, + value: ofOperation$1(operation.update, nextDicePiece), + }); + }); + utils.recordForEach(diff.update.stringPieces ?? {}, (operation, stateId) => { + if (operation.type === replace$1) { + if (operation.replace.oldValue != null) { + stringPieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: deleteType, + value: toClientState$c({ type: restrict }, prevState)(operation.replace.oldValue), + }, + }); + } + if (operation.replace.newValue != null) { + stringPieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: createType, + value: toClientState$c({ type: restrict }, prevState)(operation.replace.newValue), + }, + }); + } + return; + } + const nextStringPiece = (nextBoard.stringPieces ?? {})[stateId]; + if (nextStringPiece == null) { + throw new Error('this should not happen'); + } + stringPieceLogs.push({ + boardId, + stateId, + value: ofOperation(operation.update, nextStringPiece), + }); + }); + }); + return { + dicePieceLogs, + stringPieceLogs, + }; +}; + +exports.$free = $free; +exports.$index = $index; +exports.$r = $r; +exports.$system = $system; +exports.$v = $v; +exports.Default = Default; +exports.FirebaseStorage = FirebaseStorage; +exports.Markdown = Markdown; +exports.Master = Master; +exports.Number = Number; +exports.OtError = OtError; +exports.Plain = Plain; +exports.Player = Player; +exports.Spectator = Spectator; +exports.String = String; +exports.Uploader = Uploader; +exports.admin = admin; +exports.analyze = analyze; +exports.anonymous = anonymous; +exports.apply = apply$1; +exports.applyBack = applyBack; +exports.applyNullableText = apply$4; +exports.applyText = apply$5; +exports.arrayToIndexObjects = arrayToIndexObjects; +exports.atomic = atomic; +exports.authToken = authToken; +exports.bgmTemplate = template$a; +exports.boardPositionTemplate = template$m; +exports.boardTemplate = template$5; +exports.boolParamTemplate = template$i; +exports.characterPieceTemplate = template$h; +exports.characterTemplate = template$c; +exports.client = client; +exports.clientTransform = clientTransform$1; +exports.commandTemplate = template$g; +exports.composeDownOperation = composeDownOperation; +exports.createLogs = createLogs; +exports.createObjectValueTemplate = createObjectValueTemplate; +exports.createParamRecordValueTemplate = createParamRecordValueTemplate; +exports.createRecordValueTemplate = createRecordValueTemplate; +exports.createReplaceValueTemplate = createReplaceValueTemplate; +exports.createTextValueTemplate = createTextValueTemplate; +exports.createType = createType; +exports.decodeDbState = decodeDbState; +exports.decodeDicePiece = decode$1; +exports.decodeDownOperation = decodeDownOperation; +exports.decodeStringPiece = decode; +exports.deleteType = deleteType; +exports.dicePieceLog = type$1; +exports.dicePieceStrIndexes = dicePieceStrIndexes; +exports.dicePieceTemplate = template$j; +exports.dieValueTemplate = template$k; +exports.diff = diff; +exports.downOperation = downOperation; +exports.env = env; +exports.exactDbState = exactDbState; +exports.exactDownOperation = exactDownOperation; +exports.execCharacterCommand = execCharacterCommand; +exports.expr1 = expr1; +exports.fakeFirebaseConfig1 = fakeFirebaseConfig1; +exports.fakeFirebaseConfig2 = fakeFirebaseConfig2; +exports.filePathTemplate = filePathTemplate; +exports.firebaseConfig = firebaseConfig; +exports.forceMaxLength100String = forceMaxLength100String; +exports.generateChatPalette = generateChatPalette; +exports.getOpenRollCall = getOpenRollCall; +exports.getVariableFromVarTomlObject = getVariableFromVarTomlObject; +exports.imagePieceTemplate = template$9; +exports.indexObjectsToArray = indexObjectsToArray; +exports.isCharacterOwner = isCharacterOwner; +exports.isIdRecord = isIdRecord; +exports.isOpenRollCall = isOpenRollCall; +exports.isStrIndex10 = isStrIndex10; +exports.isStrIndex100 = isStrIndex100; +exports.isStrIndex20 = isStrIndex20; +exports.isStrIndex5 = isStrIndex5; +exports.isValidVarToml = isValidVarToml; +exports.joinPath = joinPath; +exports.maxLength100String = maxLength100String; +exports.maybe = maybe; +exports.memoTemplate = template$4; +exports.nullableTextDiff = diff$3; +exports.numParamTemplate = template$f; +exports.object = object; +exports.ot = ot; +exports.paramNameTemplate = template$3; +exports.paramRecord = paramRecord; +exports.parseDicePiece = parse$1; +exports.parseState = parseState; +exports.parseStringPiece = parse; +exports.parseToml = parseToml; +exports.parseUpOperation = parseUpOperation; +exports.participantTemplate = template$b; +exports.path = path; +exports.pieceTemplate = template$l; +exports.plain = plain; +exports.portraitPieceTemplate = template$e; +exports.record = record; +exports.replace = replace$1; +exports.restore = restore; +exports.restrict = restrict; +exports.roomDbTemplate = dbTemplate; +exports.roomTemplate = template; +exports.sanitizeFilename = sanitizeFilename; +exports.sanitizeFoldername = sanitizeFoldername; +exports.serverTransform = serverTransform; +exports.shape = shape; +exports.shapePieceTemplate = template$7; +exports.shapeTemplate = template$8; +exports.simpleId = simpleId; +exports.state = state; +exports.strIndex100Array = strIndex100Array; +exports.strIndex10Array = strIndex10Array; +exports.strIndex20Array = strIndex20Array; +exports.strIndex5Array = strIndex5Array; +exports.strParamTemplate = template$d; +exports.stringPieceLog = type; +exports.stringPieceTemplate = template$6; +exports.stringifyState = stringifyState; +exports.stringifyUpOperation = stringifyUpOperation; +exports.testCommand = testCommand; +exports.textDiff = diff$4; +exports.toClientState = toClientState; +exports.toDownOperation = toDownOperation; +exports.toNullableTextUpOperation = toUpOperation$1; +exports.toOtError = toOtError; +exports.toTextUpOperation = toUpOperation$2; +exports.toUpOperation = toUpOperation; +exports.trySanitizePath = trySanitizePath; +exports.upOperation = upOperation; +exports.update = update$2; +exports.updateType = updateType; +//# sourceMappingURL=index.js.map diff --git a/packages/core/dist/cjs/index.js.map b/packages/core/dist/cjs/index.js.map new file mode 100644 index 000000000..44a09f547 --- /dev/null +++ b/packages/core/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/constants.ts","../../../src/internal/env.ts","../../../src/internal/firebaseConfig.ts","../../../src/internal/indexes.ts","../../../src/internal/maxLengthString.ts","../../../src/internal/forceMaxLength100String.ts","../../../src/internal/maybe.ts","../../../src/internal/publicChannelKey.ts","../../../src/internal/simpleId.ts","../../../src/internal/expression.ts","../../../src/internal/toml.ts","../../../src/internal/command/boolParam.ts","../../../src/internal/command/boolParams.ts","../../../src/internal/ot/recordOperationElement.ts","../../../src/internal/ot/textOperation.ts","../../../src/internal/ot/nullableTextOperation.ts","../../../src/internal/ot/record.ts","../../../src/internal/ot/generator/types.ts","../../../src/internal/ot/flocon/filePath/types.ts","../../../src/internal/command/filePath.ts","../../../src/internal/command/numParam.ts","../../../src/internal/command/numParams.ts","../../../src/internal/command/strParam.ts","../../../src/internal/command/strParams.ts","../../../src/internal/command/character.ts","../../../src/internal/command/paramNames.ts","../../../src/internal/command/participant.ts","../../../src/internal/command/stateRecord.ts","../../../src/internal/command/room.ts","../../../src/internal/command/main.ts","../../../src/internal/uploaderPath.ts","../../../src/internal/fake/fakeFirebaseConfig.ts","../../../src/internal/ot/util/isValidKey.ts","../../../src/internal/ot/paramRecordOperation.ts","../../../src/internal/ot/recordOperation.ts","../../../src/internal/ot/generator/functions.ts","../../../src/internal/ot/otError.ts","../../../src/internal/ot/util/array/arrayDiff.ts","../../../src/internal/ot/util/array/arrayTransform.ts","../../../src/internal/ot/array.ts","../../../src/internal/ot/requestedBy.ts","../../../src/internal/ot/util/replaceOperation.ts","../../../src/internal/ot/flocon/room/bgm/functions.ts","../../../src/internal/ot/flocon/boardPosition/functions.ts","../../../src/internal/ot/flocon/piece/functions.ts","../../../src/internal/ot/flocon/room/board/dicePiece/dieValue/functions.ts","../../../src/internal/ot/flocon/boardPosition/types.ts","../../../src/internal/ot/flocon/piece/types.ts","../../../src/internal/ot/flocon/room/board/dicePiece/dieValue/types.ts","../../../src/internal/ot/flocon/room/board/dicePiece/types.ts","../../../src/internal/ot/flocon/room/board/dicePiece/functions.ts","../../../src/internal/ot/flocon/room/board/imagePiece/functions.ts","../../../src/internal/ot/flocon/shape/functions.ts","../../../src/internal/ot/flocon/room/board/shapePiece/functions.ts","../../../src/internal/ot/flocon/room/board/stringPiece/functions.ts","../../../src/internal/ot/flocon/room/board/functions.ts","../../../src/internal/ot/flocon/room/character/boolParam/functions.ts","../../../src/internal/ot/flocon/room/character/characterPiece/functions.ts","../../../src/internal/ot/flocon/room/character/command/functions.ts","../../../src/internal/ot/flocon/room/character/numParam/functions.ts","../../../src/internal/ot/flocon/room/character/portraitPiece/functions.ts","../../../src/internal/ot/flocon/room/character/strParam/functions.ts","../../../src/internal/ot/flocon/room/character/boolParam/types.ts","../../../src/internal/ot/flocon/room/character/characterPiece/types.ts","../../../src/internal/ot/flocon/room/character/command/types.ts","../../../src/internal/ot/flocon/room/character/numParam/types.ts","../../../src/internal/ot/flocon/room/character/portraitPiece/types.ts","../../../src/internal/ot/flocon/room/character/strParam/types.ts","../../../src/internal/ot/flocon/room/character/types.ts","../../../src/internal/ot/flocon/room/character/functions.ts","../../../src/internal/ot/flocon/room/memo/functions.ts","../../../src/internal/ot/flocon/room/paramName/functions.ts","../../../src/internal/ot/flocon/room/participant/functions.ts","../../../src/internal/ot/flocon/room/participant/types.ts","../../../src/internal/ot/flocon/room/rollCall/getOpenRollCall.ts","../../../src/internal/ot/flocon/room/rollCall/isOpenRollCall.ts","../../../src/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.ts","../../../src/internal/ot/flocon/room/rollCall/functions.ts","../../../src/internal/ot/flocon/room/functions.ts","../../../src/internal/ot/flocon/room/bgm/types.ts","../../../src/internal/ot/flocon/room/board/imagePiece/types.ts","../../../src/internal/ot/shape.ts","../../../src/internal/ot/flocon/shape/types.ts","../../../src/internal/ot/flocon/room/board/shapePiece/types.ts","../../../src/internal/ot/flocon/room/board/stringPiece/types.ts","../../../src/internal/ot/flocon/room/board/types.ts","../../../src/internal/ot/flocon/room/memo/types.ts","../../../src/internal/ot/flocon/room/paramName/types.ts","../../../src/internal/ot/flocon/room/rollCall/rollCallParticipant/types.ts","../../../src/internal/ot/flocon/room/rollCall/types.ts","../../../src/internal/ot/flocon/room/types.ts","../../../src/internal/ot/flocon/room/converter.ts","../../../src/internal/ot/util/createOperation.ts","../../../src/internal/ot/flocon/piece/log.ts","../../../src/internal/ot/flocon/room/board/dicePiece/log.ts","../../../src/internal/ot/flocon/room/board/dicePiece/converter.ts","../../../src/internal/ot/flocon/room/board/stringPiece/log.ts","../../../src/internal/ot/flocon/room/board/stringPiece/converter.ts","../../../src/internal/ot/flocon/room/log.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["z","PublicChannelKey","Result","result","TomlLocalDate","TomlLocalDateTime","TomlLocalTime","TomlOffsetDateTime","parseCore","value","isValueSecret","FObject","FBoolean","beginCast","ScriptError","createDefaultState","recordToArray","FFunction","update","replace","downOperation","upOperation","apply","deserializeUpOperation","applyCore","applyBack","deserializeDownOperation","applyBackCore","composeDownOperation","composeDownOperationCore","serializeDownOperation","restore","applyBackAndRestore","serializeTwoWayOperation","deserializeTwoWayOperation","applyAndRestore","transformTwoWayOperation","serverTransform","clientTransform","serializeUpOperation","transformUpOperation","diff","diffCore","toUpOperation","toUpOperationCore","toDownOperation","toDownOperationCore","TextOperation.downOperation","TextOperation.upOperation","TextOperation.toUpOperation","TextOperation.toDownOperation","TextOperation.apply","TextOperation.applyBack","TextOperation.composeDownOperation","TextOperation.diff","TextOperation.restore","TextOperation.serverTransform","TextOperation.clientTransform","record","zrecord","mapRecord","NullableTextOperation.upOperation","NullableTextOperation.downOperation","FRecord","FString","FType","FilePath.Default","FilePath.FirebaseStorage","FNumber","name","FRecordRef","cloneDeep","test","keyNames","arrayClass","createConsoleClass","exec","truncate","recordToMap","mapToRecord","compose","groupJoinMap","left","right","both","toClientState","recordForEach","chooseRecord","loggerRef","NullableTextOperation.toUpOperation","RecordOperation.mapRecordUpOperation","NullableTextOperation.toDownOperation","RecordOperation.mapRecordDownOperation","NullableTextOperation.apply","RecordOperation.apply","ParamRecordOperation.apply","NullableTextOperation.applyBack","RecordOperation.applyBack","ParamRecordOperation.applyBack","NullableTextOperation.composeDownOperation","RecordOperation.composeDownOperation","ParamRecordOperation.compose","NullableTextOperation.restore","RecordOperation.restore","ParamRecordOperation.restore","NullableTextOperation.diff","RecordOperation.diff","ParamRecordOperation.diff","NullableTextOperation.clientTransform","ArrayOperation.clientTransform","RecordOperation.clientTransform","ParamRecordOperation.clientTransform","pairwiseIterable","groupJoinArray","OperationBuilder","PositiveInt","isReadonlyNonEmptyArray","transformCore","DualKeyMap","delete$","groupBy","produce","RecordOperation.compose","ReplaceOperation.serverTransform","NullableTextOperation.serverTransform","BoardPosition.serverTransform","templateValue","template","BoardPosition.templateValue","Piece.templateValue","DieValueTypes.template","DieValue.toClientState","RecordOperation.serverTransform","DieValue.serverTransform","Piece.serverTransform","Shape.serverTransform","RecordOperation.toClientState","DicePiece.toClientState","ImagePiece.toClientState","ShapePiece.toClientState","StringPiece.toClientState","DicePiece.serverTransform","ImagePiece.serverTransform","ShapePiece.serverTransform","StringPiece.serverTransform","ReplaceValueOperation.serverTransform","PieceBase.serverTransform","BoardPositionBase.serverTransform","BoardPositionBase.templateValue","BoolParam.template","NumParam.template","StrParam.template","CharacterPiece.template","Command.template","PortraitPiece.template","oneToTenArray","BoolParam.toClientState","NumParam.toClientState","StrParam.toClientState","CharacterPiece.toClientState","Command.toClientState","PortraitPiece.toClientState","ParamRecordOperation.serverTransform","BoolParam.serverTransform","NumParam.serverTransform","StrParam.serverTransform","CharacterPiece.serverTransform","Command.serverTransform","PortraitPiece.serverTransform","maxBy","Participant.serverTransform","Bgm.toClientState","ParamNames.toClientState","Board.toClientState","Character.toClientState","Memo.toClientState","Participant.toClientState","ParticipantTypes.Spectator","Bgm.serverTransform","ParamNames.serverTransform","Board.serverTransform","Character.serverTransform","Memo.serverTransform","RollCalls.serverTransform","Shape.template","DicePiece.template","ImagePiece.template","ShapePiece.template","StringPiece.template","RollCallParticipant.template","Bgm.template","ParamNames.template","Board.template","Character.template","Memo.template","RollCall.template","Participant.template","Room.template","Room.dbTemplate","DieValueTypes.dieType","PieceBaseTypes.templateValue","type","DicePieceValueTypes.template","ofOperation","updateKey","replaceKey","decode","DiePieceValueLog.type","parse","StringPieceValueTypes.template","StringPieceValueLog.type","BoardTypes.template","DicePieceLog.ofOperation","StringPieceLog.ofOperation"],"mappings":"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"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/__test__/fixtures.d.ts b/packages/core/dist/cjs/internal/__test__/fixtures.d.ts new file mode 100644 index 000000000..cf7efe2e0 --- /dev/null +++ b/packages/core/dist/cjs/internal/__test__/fixtures.d.ts @@ -0,0 +1,34 @@ +import { State, boardTemplate, characterTemplate, roomDbTemplate, roomTemplate } from '../..'; +export declare namespace Fixtures { + namespace Participant { + namespace Spectator { + const userUid = "SPECTATOR"; + const name: string & import("zod").BRAND<"MaxLength100String">; + } + namespace Player1 { + const userUid = "PLAYER1"; + const name: string & import("zod").BRAND<"MaxLength100String">; + } + namespace Player2 { + const userUid = "PLAYER2"; + const name: string & import("zod").BRAND<"MaxLength100String">; + } + namespace Null { + const userUid = "NULL_PARTICIPANT"; + const name: string & import("zod").BRAND<"MaxLength100String">; + } + namespace None { + const userUid = "NONE_PARTICIPANT"; + } + } + namespace Board { + const emptyState: (ownerParticipantId: string | undefined) => State; + } + namespace Character { + const emptyState: (ownerParticipantId: string | undefined) => State; + } + const minimumState: State; + const complexDbState: State; + const complexState: State; +} +//# sourceMappingURL=fixtures.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/__test__/fixtures.d.ts.map b/packages/core/dist/cjs/internal/__test__/fixtures.d.ts.map new file mode 100644 index 000000000..501df6232 --- /dev/null +++ b/packages/core/dist/cjs/internal/__test__/fixtures.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../../src/internal/__test__/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,EACL,aAAa,EACb,iBAAiB,EAEjB,cAAc,EACd,YAAY,EACf,MAAM,OAAO,CAAC;AAEf,yBAAiB,QAAQ,CAAC;IAGtB,UAAiB,WAAW,CAAC;QACzB,UAAiB,SAAS,CAAC;YAChB,MAAM,OAAO,cAAc,CAAC;YAC5B,MAAM,IAAI,oDAA4C,CAAC;SACjE;QAED,UAAiB,OAAO,CAAC;YACd,MAAM,OAAO,YAAY,CAAC;YAC1B,MAAM,IAAI,oDAA0C,CAAC;SAC/D;QAED,UAAiB,OAAO,CAAC;YACd,MAAM,OAAO,YAAY,CAAC;YAC1B,MAAM,IAAI,oDAA0C,CAAC;SAC/D;QAED,UAAiB,IAAI,CAAC;YACX,MAAM,OAAO,qBAAqB,CAAC;YACnC,MAAM,IAAI,oDAAmD,CAAC;SACxE;QAED,UAAiB,IAAI,CAAC;YACX,MAAM,OAAO,qBAAqB,CAAC;SAC7C;KACJ;IAED,UAAiB,KAAK,CAAC;QACZ,MAAM,UAAU,uBACC,MAAM,GAAG,SAAS,KACvC,KAAK,CAAC,OAAO,aAAa,CAiB3B,CAAC;KACN;IAED,UAAiB,SAAS,CAAC;QAChB,MAAM,UAAU,uBACC,MAAM,GAAG,SAAS,KACvC,KAAK,CAAC,OAAO,iBAAiB,CA4B/B,CAAC;KACN;IAEM,MAAM,YAAY,EAAE,KAAK,CAAC,OAAO,YAAY,CA4DnD,CAAC;IAEK,MAAM,cAAc,EAAE,KAAK,CAAC,OAAO,cAAc,CA4RvD,CAAC;IAEK,MAAM,YAAY,EAAE,KAAK,CAAC,OAAO,YAAY,CAmBnD,CAAC;CACL"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/__test__/normalizeRoomState.d.ts b/packages/core/dist/cjs/internal/__test__/normalizeRoomState.d.ts new file mode 100644 index 000000000..81a6badb6 --- /dev/null +++ b/packages/core/dist/cjs/internal/__test__/normalizeRoomState.d.ts @@ -0,0 +1,2 @@ +export declare const normalizeRoomState: (source: unknown) => any; +//# sourceMappingURL=normalizeRoomState.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/__test__/normalizeRoomState.d.ts.map b/packages/core/dist/cjs/internal/__test__/normalizeRoomState.d.ts.map new file mode 100644 index 000000000..2aca72d9e --- /dev/null +++ b/packages/core/dist/cjs/internal/__test__/normalizeRoomState.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"normalizeRoomState.d.ts","sourceRoot":"","sources":["../../../../src/internal/__test__/normalizeRoomState.ts"],"names":[],"mappings":"AAwDA,eAAO,MAAM,kBAAkB,WAAY,OAAO,KAAG,GA8BpD,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/bgm.d.ts b/packages/core/dist/cjs/internal/command/bgm.d.ts new file mode 100644 index 000000000..6bb034646 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/bgm.d.ts @@ -0,0 +1,11 @@ +import { FObject, FValue, OnGettingParams, OnSettingParams } from '@flocon-trpg/flocon-script'; +import * as BgmTypes from '../ot/flocon/room/bgm/types'; +import { State } from '../ot/generator/types'; +export declare class FBgm extends FObject { + private readonly bgm; + constructor(bgm: State); + getCore({ key }: OnGettingParams): FValue; + setCore({ key, newValue, astInfo }: OnSettingParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=bgm.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/bgm.d.ts.map b/packages/core/dist/cjs/internal/command/bgm.d.ts.map new file mode 100644 index 000000000..2c90ff967 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/bgm.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bgm.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/bgm.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EAEP,MAAM,EACN,eAAe,EACf,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAO9C,qBAAa,IAAK,SAAQ,OAAO;IACV,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAI/D,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,eAAe,GAAG,MAAM;IAmBzC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,IAAI;IAwB1D,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/bgms.d.ts b/packages/core/dist/cjs/internal/command/bgms.d.ts new file mode 100644 index 000000000..70212785a --- /dev/null +++ b/packages/core/dist/cjs/internal/command/bgms.d.ts @@ -0,0 +1,14 @@ +import { FObject, FValue, OnGettingParams } from '@flocon-trpg/flocon-script'; +import * as RoomTypes from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +export declare class FBgms extends FObject { + private readonly room; + constructor(room: State); + private find; + private ensure; + private delete; + getCore({ key, astInfo }: OnGettingParams): FValue; + setCore(): void; + toJObject(): unknown; +} +//# sourceMappingURL=bgms.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/bgms.d.ts.map b/packages/core/dist/cjs/internal/command/bgms.d.ts.map new file mode 100644 index 000000000..b2d17b383 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/bgms.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bgms.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/bgms.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,OAAO,EACP,MAAM,EACN,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG9C,qBAAa,KAAM,SAAQ,OAAO;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC;IAI1E,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,MAAM;IAuBd,OAAO,CAAC,MAAM;IAgBL,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;IA6BlD,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/boolParam.d.ts b/packages/core/dist/cjs/internal/command/boolParam.d.ts new file mode 100644 index 000000000..7b06e4022 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/boolParam.d.ts @@ -0,0 +1,11 @@ +import { FObject, FValue, OnGettingParams, OnSettingParams } from '@flocon-trpg/flocon-script'; +import * as BoolParam from '../ot/flocon/room/character/boolParam/types'; +import { State } from '../ot/generator/types'; +export declare class FBoolParam extends FObject { + private readonly boolParam; + constructor(boolParam: State); + getCore({ key }: OnGettingParams): FValue; + setCore({ key, newValue, astInfo }: OnSettingParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=boolParam.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/boolParam.d.ts.map b/packages/core/dist/cjs/internal/command/boolParam.d.ts.map new file mode 100644 index 000000000..0b05a0a43 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/boolParam.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"boolParam.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/boolParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,OAAO,EACP,MAAM,EACN,eAAe,EACf,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAK9C,qBAAa,UAAW,SAAQ,OAAO;IAChB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC;IAItE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,eAAe,GAAG,MAAM;IAczC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,IAAI;IAmB1D,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/boolParams.d.ts b/packages/core/dist/cjs/internal/command/boolParams.d.ts new file mode 100644 index 000000000..aad7805b2 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/boolParams.d.ts @@ -0,0 +1,17 @@ +import { FObject, FValue, OnGettingParams } from '@flocon-trpg/flocon-script'; +import * as Character from '../ot/flocon/room/character/types'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +export declare class FBoolParams extends FObject { + private readonly boolParams; + private readonly room; + constructor(boolParams: NonNullable['boolParams']>, room: State); + private findKeysByNameOrKey; + private findByNameOrKey; + private toggleValue; + private setIsValuePrivate; + getCore({ key, astInfo }: OnGettingParams): FValue; + setCore(): void; + toJObject(): unknown; +} +//# sourceMappingURL=boolParams.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/boolParams.d.ts.map b/packages/core/dist/cjs/internal/command/boolParams.d.ts.map new file mode 100644 index 000000000..602cccde3 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/boolParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"boolParams.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/boolParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EACP,MAAM,EACN,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAW9C,qBAAa,WAAY,SAAQ,OAAO;IAEhC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,EACvE,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC;IAKtD,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,iBAAiB;IAahB,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;IAqClD,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/character.d.ts b/packages/core/dist/cjs/internal/command/character.d.ts new file mode 100644 index 000000000..357631ec0 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/character.d.ts @@ -0,0 +1,13 @@ +import { FObject, FValue, OnGettingParams, OnSettingParams } from '@flocon-trpg/flocon-script'; +import * as Character from '../ot/flocon/room/character/types'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +export declare class FCharacter extends FObject { + readonly character: State; + private readonly room; + constructor(character: State, room: State); + getCore({ key, astInfo }: OnGettingParams): FValue; + setCore({ key, newValue, astInfo }: OnSettingParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=character.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/character.d.ts.map b/packages/core/dist/cjs/internal/command/character.d.ts.map new file mode 100644 index 000000000..15b7bc288 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/character.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"character.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/character.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAEP,MAAM,EACN,eAAe,EACf,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAc9C,qBAAa,UAAW,SAAQ,OAAO;aAEf,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADL,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,EAC1C,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC;IAK7C,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;IAyClD,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,IAAI;IA+B1D,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/filePath.d.ts b/packages/core/dist/cjs/internal/command/filePath.d.ts new file mode 100644 index 000000000..d62a1b660 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/filePath.d.ts @@ -0,0 +1,7 @@ +import { AstInfo, FObject, FValue } from '@flocon-trpg/flocon-script'; +import * as FilePath from '../ot/flocon/filePath/types'; +import { State } from '../ot/generator/types'; +export declare const toFFilePath: (source: State, astInfo: AstInfo | undefined) => FObject; +export declare const toFilePathOrUndefined: (source: FValue, astInfo: AstInfo | undefined) => State | undefined; +export declare const toFilePath: (source: FValue, astInfo: AstInfo | undefined) => State; +//# sourceMappingURL=filePath.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/filePath.d.ts.map b/packages/core/dist/cjs/internal/command/filePath.d.ts.map new file mode 100644 index 000000000..aa549783b --- /dev/null +++ b/packages/core/dist/cjs/internal/command/filePath.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"filePath.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/filePath.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EACP,OAAO,EAIP,MAAM,EAGT,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,eAAO,MAAM,WAAW,WACZ,KAAK,CAAC,OAAO,QAAQ,CAAC,gBAAgB,CAAC,WACtC,OAAO,GAAG,SAAS,KAC7B,OASF,CAAC;AAEF,eAAO,MAAM,qBAAqB,WACtB,MAAM,WACL,OAAO,GAAG,SAAS,KAC7B,KAAK,CAAC,OAAO,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SA4B5C,CAAC;AAEF,eAAO,MAAM,UAAU,WACX,MAAM,WACL,OAAO,GAAG,SAAS,KAC7B,KAAK,CAAC,OAAO,QAAQ,CAAC,gBAAgB,CAMxC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/main.d.ts b/packages/core/dist/cjs/internal/command/main.d.ts new file mode 100644 index 000000000..bc36b21f6 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/main.d.ts @@ -0,0 +1,19 @@ +import { Result } from '@kizahasi/result'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +type RoomState = State; +declare class CommandError extends Error { + readonly range?: readonly [number, number] | undefined; + constructor(message: string, range?: readonly [number, number] | undefined); +} +export declare const testCommand: (script: string) => Result; +type CharacterCommandParams = { + script: string; + room: RoomState; + characterId: string; + myUserUid: string; +}; +type CommandResult = Result; +export declare const execCharacterCommand: ({ script, room, characterId, myUserUid, }: CharacterCommandParams) => CommandResult; +export {}; +//# sourceMappingURL=main.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/main.d.ts.map b/packages/core/dist/cjs/internal/command/main.d.ts.map new file mode 100644 index 000000000..0c4177f71 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/main.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/main.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG9C,KAAK,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;AAE7C,cAAM,YAAa,SAAQ,KAAK;aAGR,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBADjD,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,YAAA;CAKxD;AAED,eAAO,MAAM,WAAW,WAAY,MAAM,KAAG,MAAM,CAAC,SAAS,EAAE,YAAY,CAa1E,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,aAAa,GAAG,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAErD,eAAO,MAAM,oBAAoB,8CAK9B,sBAAsB,KAAG,aAyB3B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/numParam.d.ts b/packages/core/dist/cjs/internal/command/numParam.d.ts new file mode 100644 index 000000000..f3ede7679 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/numParam.d.ts @@ -0,0 +1,11 @@ +import { FObject, FValue, OnGettingParams, OnSettingParams } from '@flocon-trpg/flocon-script'; +import * as NumParam from '../ot/flocon/room/character/numParam/types'; +import { State } from '../ot/generator/types'; +export declare class FNumParam extends FObject { + private readonly numParam; + constructor(numParam: State); + getCore({ key }: OnGettingParams): FValue; + setCore({ key, newValue, astInfo }: OnSettingParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=numParam.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/numParam.d.ts.map b/packages/core/dist/cjs/internal/command/numParam.d.ts.map new file mode 100644 index 000000000..e1ecdeaa6 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/numParam.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"numParam.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/numParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EACP,MAAM,EACN,eAAe,EACf,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,4CAA4C,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAK9C,qBAAa,SAAU,SAAQ,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAIpE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,eAAe,GAAG,MAAM;IAYzC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,IAAI;IAmB1D,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/numParams.d.ts b/packages/core/dist/cjs/internal/command/numParams.d.ts new file mode 100644 index 000000000..f1314b4ff --- /dev/null +++ b/packages/core/dist/cjs/internal/command/numParams.d.ts @@ -0,0 +1,17 @@ +import { FObject, FValue, OnGettingParams } from '@flocon-trpg/flocon-script'; +import * as Character from '../ot/flocon/room/character/types'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +export declare class FNumParams extends FObject { + private readonly numParams; + private readonly room; + constructor(numParams: NonNullable['numParams']>, room: State); + private findKeysByName; + private findByName; + private incrOrDecrValue; + private setIsValuePrivate; + getCore({ key, astInfo }: OnGettingParams): FValue; + setCore(): void; + toJObject(): unknown; +} +//# sourceMappingURL=numParams.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/numParams.d.ts.map b/packages/core/dist/cjs/internal/command/numParams.d.ts.map new file mode 100644 index 000000000..30221aea9 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/numParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"numParams.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/numParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EACP,MAAM,EACN,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAW9C,qBAAa,UAAW,SAAQ,OAAO;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,EACrE,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC;IAKtD,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,iBAAiB;IAahB,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;IA0ClD,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/paramNames.d.ts b/packages/core/dist/cjs/internal/command/paramNames.d.ts new file mode 100644 index 000000000..3b71e831f --- /dev/null +++ b/packages/core/dist/cjs/internal/command/paramNames.d.ts @@ -0,0 +1,16 @@ +import { FObject, FValue, OnGettingParams } from '@flocon-trpg/flocon-script'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +export declare class FParamNames extends FObject { + private readonly room; + private readonly mode; + constructor(room: State, mode: 'Boolean' | 'Number' | 'String'); + private getParamNames; + private find; + private ensure; + private delete; + getCore({ key, astInfo }: OnGettingParams): FValue; + setCore(): void; + toJObject(): unknown; +} +//# sourceMappingURL=paramNames.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/paramNames.d.ts.map b/packages/core/dist/cjs/internal/command/paramNames.d.ts.map new file mode 100644 index 000000000..295350cf7 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/paramNames.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"paramNames.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/paramNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,OAAO,EAEP,MAAM,EACN,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,qBAAa,WAAY,SAAQ,OAAO;IAEhC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,EACjC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ;IAK1D,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,MAAM;IAkBd,OAAO,CAAC,MAAM;IAaL,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;IA+BlD,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/participant.d.ts b/packages/core/dist/cjs/internal/command/participant.d.ts new file mode 100644 index 000000000..888b2e745 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/participant.d.ts @@ -0,0 +1,11 @@ +import { FObject, FValue, OnGettingParams, OnSettingParams } from '@flocon-trpg/flocon-script'; +import * as Participant from '../ot/flocon/room/participant/types'; +import { State } from '../ot/generator/types'; +export declare class FParticipant extends FObject { + readonly participant: State; + constructor(participant: State); + getCore({ key }: OnGettingParams): FValue; + setCore({ key, newValue, astInfo }: OnSettingParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=participant.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/participant.d.ts.map b/packages/core/dist/cjs/internal/command/participant.d.ts.map new file mode 100644 index 000000000..fef84b212 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/participant.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"participant.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/participant.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAEP,MAAM,EACN,eAAe,EACf,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,WAAW,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAI9C,qBAAa,YAAa,SAAQ,OAAO;aACF,WAAW,EAAE,KAAK,CAAC,OAAO,WAAW,CAAC,QAAQ,CAAC;gBAA/C,WAAW,EAAE,KAAK,CAAC,OAAO,WAAW,CAAC,QAAQ,CAAC;IAIzE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,eAAe,GAAG,MAAM;IAczC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,IAAI;IAuB1D,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/room.d.ts b/packages/core/dist/cjs/internal/command/room.d.ts new file mode 100644 index 000000000..a6519b6c8 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/room.d.ts @@ -0,0 +1,15 @@ +import { FObject, FValue, GetCoreParams, SetCoreParams } from '@flocon-trpg/flocon-script'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +import { FCharacter } from './character'; +export declare class FRoom extends FObject { + private readonly myUserUid; + private readonly _room; + constructor(source: State, myUserUid: string); + get room(): State; + findCharacter(stateId: string): FCharacter | undefined; + getCore({ key }: GetCoreParams): FValue; + setCore({ key, newValue, astInfo }: SetCoreParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=room.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/room.d.ts.map b/packages/core/dist/cjs/internal/command/room.d.ts.map new file mode 100644 index 000000000..fa7242298 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/room.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/room.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAEP,MAAM,EACN,aAAa,EAEb,aAAa,EAEhB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQzC,qBAAa,KAAM,SAAQ,OAAO;IAM1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJ9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;gBAGhD,MAAM,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAClB,SAAS,EAAE,MAAM;IAMtC,IAAW,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAE7C;IAEM,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAQpD,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,aAAa,GAAG,MAAM;IA+EvC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,IAAI;IAexD,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/stateRecord.d.ts b/packages/core/dist/cjs/internal/command/stateRecord.d.ts new file mode 100644 index 000000000..804200a94 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/stateRecord.d.ts @@ -0,0 +1,13 @@ +import { FRecordRef, FValue, OnGettingParams } from '@flocon-trpg/flocon-script'; +export declare class FStateRecord extends FRecordRef { + private readonly createNewState?; + private readonly toRef; + constructor({ states, createNewState, toRef, unRef, }: { + states: Record; + createNewState?: () => TSource; + toRef: (source: TSource) => TRef; + unRef: (ref: FValue) => TSource; + }); + getCore({ key, astInfo }: OnGettingParams): FValue; +} +//# sourceMappingURL=stateRecord.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/stateRecord.d.ts.map b/packages/core/dist/cjs/internal/command/stateRecord.d.ts.map new file mode 100644 index 000000000..3d9148868 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/stateRecord.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"stateRecord.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/stateRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EAEV,MAAM,EACN,eAAe,EAClB,MAAM,4BAA4B,CAAC;AAGpC,qBAAa,YAAY,CAAC,OAAO,EAAE,IAAI,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3F,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4B;gBAE/B,EACf,MAAM,EACN,cAAc,EACd,KAAK,EACL,KAAK,GACR,EAAE;QACC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;QAG5C,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;QAE/B,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACjC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;KACnC;IAUQ,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;CA2C9D"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/strParam.d.ts b/packages/core/dist/cjs/internal/command/strParam.d.ts new file mode 100644 index 000000000..17571afcd --- /dev/null +++ b/packages/core/dist/cjs/internal/command/strParam.d.ts @@ -0,0 +1,11 @@ +import { FObject, FValue, OnGettingParams, OnSettingParams } from '@flocon-trpg/flocon-script'; +import * as StrParam from '../ot/flocon/room/character/strParam/types'; +import { State } from '../ot/generator/types'; +export declare class FStrParam extends FObject { + private readonly strParam; + constructor(strParam: State); + getCore({ key }: OnGettingParams): FValue; + setCore({ key, newValue, astInfo }: OnSettingParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=strParam.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/strParam.d.ts.map b/packages/core/dist/cjs/internal/command/strParam.d.ts.map new file mode 100644 index 000000000..b4bfe076c --- /dev/null +++ b/packages/core/dist/cjs/internal/command/strParam.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"strParam.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/strParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,OAAO,EAEP,MAAM,EACN,eAAe,EACf,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,4CAA4C,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAK9C,qBAAa,SAAU,SAAQ,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAIpE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,eAAe,GAAG,MAAM;IAYzC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,IAAI;IAgB1D,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/strParams.d.ts b/packages/core/dist/cjs/internal/command/strParams.d.ts new file mode 100644 index 000000000..7b3cc6307 --- /dev/null +++ b/packages/core/dist/cjs/internal/command/strParams.d.ts @@ -0,0 +1,16 @@ +import { FObject, FValue, OnGettingParams } from '@flocon-trpg/flocon-script'; +import * as Character from '../ot/flocon/room/character/types'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +export declare class FStrParams extends FObject { + private readonly strParams; + private readonly room; + constructor(strParams: NonNullable['strParams']>, room: State); + private findKeysByName; + private findByName; + private setIsValuePrivate; + getCore({ key, astInfo }: OnGettingParams): FValue; + setCore(): void; + toJObject(): unknown; +} +//# sourceMappingURL=strParams.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/command/strParams.d.ts.map b/packages/core/dist/cjs/internal/command/strParams.d.ts.map new file mode 100644 index 000000000..33b62668c --- /dev/null +++ b/packages/core/dist/cjs/internal/command/strParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"strParams.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/strParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EACP,MAAM,EACN,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAW9C,qBAAa,UAAW,SAAQ,OAAO;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,EACrE,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC;IAKtD,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,iBAAiB;IAahB,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;IAiClD,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/constants.d.ts b/packages/core/dist/cjs/internal/constants.d.ts new file mode 100644 index 000000000..7bb65ebfe --- /dev/null +++ b/packages/core/dist/cjs/internal/constants.d.ts @@ -0,0 +1,5 @@ +export declare const anonymous = "anonymous"; +export declare const authToken = "authToken"; +export declare const $free = "$free"; +export declare const $system = "$system"; +//# sourceMappingURL=constants.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/constants.d.ts.map b/packages/core/dist/cjs/internal/constants.d.ts.map new file mode 100644 index 000000000..ff3cc607b --- /dev/null +++ b/packages/core/dist/cjs/internal/constants.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,OAAO,YAAY,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/env.d.ts b/packages/core/dist/cjs/internal/env.d.ts new file mode 100644 index 000000000..9d86a6347 --- /dev/null +++ b/packages/core/dist/cjs/internal/env.d.ts @@ -0,0 +1,26 @@ +export declare const env: { + readonly NEXT_PUBLIC_FIREBASE_CONFIG: "NEXT_PUBLIC_FIREBASE_CONFIG"; + readonly NEXT_PUBLIC_API_HTTP: "NEXT_PUBLIC_API_HTTP"; + readonly NEXT_PUBLIC_API_WS: "NEXT_PUBLIC_API_WS"; + readonly NEXT_PUBLIC_AUTH_PROVIDERS: "NEXT_PUBLIC_AUTH_PROVIDERS"; + readonly NEXT_PUBLIC_FIREBASE_STORAGE_ENABLED: "NEXT_PUBLIC_FIREBASE_STORAGE_ENABLED"; + readonly NEXT_PUBLIC_LOG_LEVEL: "NEXT_PUBLIC_LOG_LEVEL"; + readonly firebaseConfig: { + readonly apiKey: "apiKey"; + readonly authDomain: "authDomain"; + readonly projectId: "projectId"; + readonly storageBucket: "storageBucket"; + readonly messagingSenderId: "messagingSenderId"; + readonly appId: "appId"; + }; + readonly authProviders: { + readonly anonymous: "anonymous"; + readonly email: "email"; + readonly google: "google"; + readonly facebook: "facebook"; + readonly github: "github"; + readonly twitter: "twitter"; + readonly phone: "phone"; + }; +}; +//# sourceMappingURL=env.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/env.d.ts.map b/packages/core/dist/cjs/internal/env.d.ts.map new file mode 100644 index 000000000..bc614a96a --- /dev/null +++ b/packages/core/dist/cjs/internal/env.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/internal/env.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CA4BN,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/expression.d.ts b/packages/core/dist/cjs/internal/expression.d.ts new file mode 100644 index 000000000..0f0c9bed4 --- /dev/null +++ b/packages/core/dist/cjs/internal/expression.d.ts @@ -0,0 +1,13 @@ +import { Result } from '@kizahasi/result'; +export declare const plain = "plain"; +export declare const expr1 = "expr1"; +export type Expression = { + type: typeof plain; + text: string; +} | { + type: typeof expr1; + path: string[]; + raw: string; +}; +export declare const analyze: (text: string) => Result; +//# sourceMappingURL=expression.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/expression.d.ts.map b/packages/core/dist/cjs/internal/expression.d.ts.map new file mode 100644 index 000000000..cecd4d427 --- /dev/null +++ b/packages/core/dist/cjs/internal/expression.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/internal/expression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,KAAK,UAAU,CAAC;AAgX7B,MAAM,MAAM,UAAU,GAChB;IACI,IAAI,EAAE,OAAO,KAAK,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB,GACD;IACI,IAAI,EAAE,OAAO,KAAK,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACf,CAAC;AAER,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,MAAM,CAAC,UAAU,EAAE,CAuBzD,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/fake/fakeFirebaseConfig.d.ts b/packages/core/dist/cjs/internal/fake/fakeFirebaseConfig.d.ts new file mode 100644 index 000000000..775f33fbb --- /dev/null +++ b/packages/core/dist/cjs/internal/fake/fakeFirebaseConfig.d.ts @@ -0,0 +1,17 @@ +export declare const fakeFirebaseConfig1: readonly [{ + apiKey: string; + authDomain: string; + projectId: string; + storageBucket: string; + messagingSenderId: string; + appId: string; +}, string]; +export declare const fakeFirebaseConfig2: readonly [{ + apiKey: string; + authDomain: string; + projectId: string; + storageBucket: string; + messagingSenderId: string; + appId: string; +}, string]; +//# sourceMappingURL=fakeFirebaseConfig.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/fake/fakeFirebaseConfig.d.ts.map b/packages/core/dist/cjs/internal/fake/fakeFirebaseConfig.d.ts.map new file mode 100644 index 000000000..77f857bd8 --- /dev/null +++ b/packages/core/dist/cjs/internal/fake/fakeFirebaseConfig.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fakeFirebaseConfig.d.ts","sourceRoot":"","sources":["../../../../src/internal/fake/fakeFirebaseConfig.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB;;;;;;;UAA8B,CAAC;AAS/D,eAAO,MAAM,mBAAmB;;;;;;;UAA8B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/firebaseConfig.d.ts b/packages/core/dist/cjs/internal/firebaseConfig.d.ts new file mode 100644 index 000000000..5e6af9fa8 --- /dev/null +++ b/packages/core/dist/cjs/internal/firebaseConfig.d.ts @@ -0,0 +1,25 @@ +import { z } from 'zod'; +export declare const firebaseConfig: z.ZodObject<{ + apiKey: z.ZodString; + authDomain: z.ZodString; + projectId: z.ZodString; + storageBucket: z.ZodString; + messagingSenderId: z.ZodString; + appId: z.ZodString; +}, "strip", z.ZodTypeAny, { + apiKey: string; + authDomain: string; + projectId: string; + storageBucket: string; + messagingSenderId: string; + appId: string; +}, { + apiKey: string; + authDomain: string; + projectId: string; + storageBucket: string; + messagingSenderId: string; + appId: string; +}>; +export type FirebaseConfig = z.TypeOf; +//# sourceMappingURL=firebaseConfig.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/firebaseConfig.d.ts.map b/packages/core/dist/cjs/internal/firebaseConfig.d.ts.map new file mode 100644 index 000000000..f9ace8b29 --- /dev/null +++ b/packages/core/dist/cjs/internal/firebaseConfig.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"firebaseConfig.d.ts","sourceRoot":"","sources":["../../../src/internal/firebaseConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;EASzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/forceMaxLength100String.d.ts b/packages/core/dist/cjs/internal/forceMaxLength100String.d.ts new file mode 100644 index 000000000..907c8dccd --- /dev/null +++ b/packages/core/dist/cjs/internal/forceMaxLength100String.d.ts @@ -0,0 +1,3 @@ +import { MaxLength100String } from './maxLengthString'; +export declare const forceMaxLength100String: (source: string) => MaxLength100String; +//# sourceMappingURL=forceMaxLength100String.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/forceMaxLength100String.d.ts.map b/packages/core/dist/cjs/internal/forceMaxLength100String.d.ts.map new file mode 100644 index 000000000..ad4cac5f0 --- /dev/null +++ b/packages/core/dist/cjs/internal/forceMaxLength100String.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"forceMaxLength100String.d.ts","sourceRoot":"","sources":["../../../src/internal/forceMaxLength100String.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAsB,MAAM,mBAAmB,CAAC;AAE3E,eAAO,MAAM,uBAAuB,WAAY,MAAM,KAAG,kBAExD,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/indexes.d.ts b/packages/core/dist/cjs/internal/indexes.d.ts new file mode 100644 index 000000000..80ce21678 --- /dev/null +++ b/packages/core/dist/cjs/internal/indexes.d.ts @@ -0,0 +1,13 @@ +export type StrIndex5 = '1' | '2' | '3' | '4' | '5'; +export declare const strIndex5Array: ReadonlyArray; +export declare const isStrIndex5: (source: string) => source is StrIndex5; +export type StrIndex10 = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10'; +export declare const strIndex10Array: ReadonlyArray; +export declare const isStrIndex10: (source: string) => source is StrIndex10; +export type StrIndex20 = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | '20'; +export declare const strIndex20Array: ReadonlyArray; +export declare const isStrIndex20: (source: string) => source is StrIndex20; +export type StrIndex100 = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | '20' | '21' | '22' | '23' | '24' | '25' | '26' | '27' | '28' | '29' | '30' | '31' | '32' | '33' | '34' | '35' | '36' | '37' | '38' | '39' | '40' | '41' | '42' | '43' | '44' | '45' | '46' | '47' | '48' | '49' | '50' | '51' | '52' | '53' | '54' | '55' | '56' | '57' | '58' | '59' | '60' | '61' | '62' | '63' | '64' | '65' | '66' | '67' | '68' | '69' | '70' | '71' | '72' | '73' | '74' | '75' | '76' | '77' | '78' | '79' | '80' | '81' | '82' | '83' | '84' | '85' | '86' | '87' | '88' | '89' | '90' | '91' | '92' | '93' | '94' | '95' | '96' | '97' | '98' | '99' | '100'; +export declare const strIndex100Array: ReadonlyArray; +export declare const isStrIndex100: (source: string) => source is StrIndex100; +//# sourceMappingURL=indexes.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/indexes.d.ts.map b/packages/core/dist/cjs/internal/indexes.d.ts.map new file mode 100644 index 000000000..d48f1c059 --- /dev/null +++ b/packages/core/dist/cjs/internal/indexes.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"indexes.d.ts","sourceRoot":"","sources":["../../../src/internal/indexes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,SAAS,CAA6B,CAAC;AAIlF,eAAO,MAAM,WAAW,WAAY,MAAM,KAAG,MAAM,IAAI,SAEtD,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAEpF,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,UAAU,CAW5C,CAAC;AAIX,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,MAAM,IAAI,UAEvD,CAAC;AAEF,MAAM,MAAM,UAAU,GAChB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAEX,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,UAAU,CAqBrD,CAAC;AAIF,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,MAAM,IAAI,UAEvD,CAAC;AAEF,MAAM,MAAM,WAAW,GACjB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,CAAC;AAEZ,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,WAAW,CAqGvD,CAAC;AAIF,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,MAAM,IAAI,WAExD,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/maxLengthString.d.ts b/packages/core/dist/cjs/internal/maxLengthString.d.ts new file mode 100644 index 000000000..1cc84efcc --- /dev/null +++ b/packages/core/dist/cjs/internal/maxLengthString.d.ts @@ -0,0 +1,10 @@ +import { z } from 'zod'; +export declare const maxLengthString: (maxLength: N) => z.ZodBranded; +export declare const maxLength100String: z.ZodBranded; +export type MaxLength100String = z.TypeOf; +export declare const maxLength1000String: z.ZodBranded; +export type MaxLength1000String = z.TypeOf; +declare const maxLength100EmptyString: z.TypeOf; +declare const maxLength1000EmptyString: z.TypeOf; +export { maxLength100EmptyString, maxLength1000EmptyString }; +//# sourceMappingURL=maxLengthString.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/maxLengthString.d.ts.map b/packages/core/dist/cjs/internal/maxLengthString.d.ts.map new file mode 100644 index 000000000..40020f587 --- /dev/null +++ b/packages/core/dist/cjs/internal/maxLengthString.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"maxLengthString.d.ts","sourceRoot":"","sources":["../../../src/internal/maxLengthString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,aAAa,CAAC,qDACF,CAAC;AAE7D,eAAO,MAAM,kBAAkB,iDAAuB,CAAC;AACvD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACrE,eAAO,MAAM,mBAAmB,kDAAwB,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAGvE,QAAA,MAAM,uBAAuB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CACxB,CAAC;AAC1C,QAAA,MAAM,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CACzB,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/maybe.d.ts b/packages/core/dist/cjs/internal/maybe.d.ts new file mode 100644 index 000000000..37738a56c --- /dev/null +++ b/packages/core/dist/cjs/internal/maybe.d.ts @@ -0,0 +1,5 @@ +import { z } from 'zod'; +/** @deprecated Use `optional` method in zod. */ +export declare const maybe: (source: T) => z.ZodOptional; +export type Maybe = T | undefined; +//# sourceMappingURL=maybe.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/maybe.d.ts.map b/packages/core/dist/cjs/internal/maybe.d.ts.map new file mode 100644 index 000000000..919a2b115 --- /dev/null +++ b/packages/core/dist/cjs/internal/maybe.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"maybe.d.ts","sourceRoot":"","sources":["../../../src/internal/maybe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gDAAgD;AAChD,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,CAAC,CAAC,UAAU,UAAU,CAAC,qBAAsB,CAAC;AAC9E,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/array.d.ts b/packages/core/dist/cjs/internal/ot/array.d.ts new file mode 100644 index 000000000..be1e80bb6 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/array.d.ts @@ -0,0 +1,94 @@ +import { Result } from '@kizahasi/result'; +import { z } from 'zod'; +import { OmitVersion } from './generator/omitVersion'; +import { State, TwoWayOperation, UpOperation } from './generator/types'; +import * as RecordOperation from './recordOperation'; +export declare const $index = "$index"; +/** + * Record を 配列とみなすときに、その要素として必要な値が入った template を作成する際に用いる値。 + * + * @example + * ``` + * const indexObjectTemplate = createRecordValueTemplate( + * createObjectValueTemplate( + * { + * ...indexObjectTemplateValue, + * + * // add more properies... + * }, + * 1, + * 1 + * ) + * ); + * ``` + */ +export declare const indexObjectTemplateValue: { + /** + * 自身の要素のインデックス。一般的な配列と同様に、0 から始まります。 + * + * インデックスが他の要素と重複してはなりません。また、0 から順に連続的に割り当てる必要があります。 + */ + $index: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; +}; +declare const indexObjectTemplate: { + readonly type: "object"; + readonly $v: undefined; + readonly $r: undefined; + readonly value: { + /** + * 自身の要素のインデックス。一般的な配列と同様に、0 から始まります。 + * + * インデックスが他の要素と重複してはなりません。また、0 から順に連続的に割り当てる必要があります。 + */ + $index: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +type IndexObjectState = OmitVersion>; +export type IndexObject = IndexObjectState; +type IndexObjectUpOperation = OmitVersion>; +type IndexObjectTwoWayOperation = OmitVersion>; +type OtArray = { + key: string; + value: T; +}[]; +type ReadonlyOtArray = Readonly>; +export declare const indexObjectsToArray: (record: Record) => Result>; +/** + * 配列を Record に変換します。 + * + * 引数に渡された `$index` は誤っていてもエラーにはならず、自動的かつ非破壊的に調整されます。 + */ +export declare const arrayToIndexObjects: (array: ReadonlyOtArray) => Record; +/** + * 配列に対して serverTransform を行い、secondPrime を返します。 + * + * 通常の Record の serverTransform の処理(つまり、`$index` 以外のプロパティの処理など)も内部で行われるため、通常の Record の serverTransform を別途実行することは避けてください。 + */ +export declare const serverTransform: (params: RecordOperation.ServerTransformParams & { + /** Operation の型を変換して、TFirstOperation にします。通常は、単に `$v` と `$r` を付与するだけで構いません。 */ + mapOperation: (operation: IndexObjectTwoWayOperation) => TFirstOperation; +}) => Result | undefined, string | TCustomError>; +/** + * 配列に対して clientTransform を行います。 + * + * 通常の Record の serverTransform の処理(つまり、`$index` 以外のプロパティの処理など)も内部で行われるため、通常の Record の serverTransform を別途実行することは避けてください。 + */ +export declare const clientTransform: (params: Parameters>[0] & { + innerApply: (params: { + prevState: TState; + operation: TOperation; + }) => Result; +}) => Result<{ + firstPrime?: RecordOperation.RecordUpOperation; + secondPrime?: RecordOperation.RecordUpOperation; +}, string | TCustomError>; +export {}; +//# sourceMappingURL=array.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/array.d.ts.map b/packages/core/dist/cjs/internal/ot/array.d.ts.map new file mode 100644 index 000000000..82c16d15a --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/array.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/array.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EACH,KAAK,EACL,eAAe,EACf,WAAW,EAId,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AAKrD,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B;;;;;;;;;;;;;;;;;GAiBG;AAKH,eAAO,MAAM,wBAAwB;IACjC;;;;OAIG;;;;;;CAEN,CAAC;AAIF,QAAA,MAAM,mBAAmB;;;;;QAVrB;;;;WAIG;;;;;;;CAUN,CAAC;AAEF,KAAK,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC;AACvE,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAC3C,KAAK,sBAAsB,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC;AACnF,KAAK,0BAA0B,GAAG,WAAW,CAAC,eAAe,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC;AAE3F,KAAK,OAAO,CAAC,CAAC,IAAI;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;CACZ,EAAE,CAAC;AAEJ,KAAK,eAAe,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/C,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,gBAAgB,UAClD,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,KACtC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAqBnB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,gBAAgB,SAAS,eAAe,CAAC,CAAC,CAAC,kCAWxF,CAAC;AAsCF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GACxB,YAAY,SAAS,gBAAgB,EACrC,YAAY,SAAS,gBAAgB,EACrC,eAAe,SAAS,0BAA0B,EAClD,gBAAgB,SAAS,sBAAsB,EAC/C,YAAY,mBAEJ,eAAe,CAAC,qBAAqB,CACzC,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,CACf,GAAG;IACA,+EAA+E;IAC/E,YAAY,EAAE,CAAC,SAAS,EAAE,0BAA0B,KAAK,eAAe,CAAC;CAC5E,KACF,MAAM,CACL,eAAe,CAAC,qBAAqB,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,SAAS,EAChF,MAAM,GAAG,YAAY,CAiKxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GACxB,MAAM,SAAS,gBAAgB,EAC/B,UAAU,SAAS,sBAAsB,EACzC,YAAY,mBAEJ,UAAU,CACd,OAAO,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAC3E,CAAC,CAAC,CAAC,GAAG;IACH,UAAU,EAAE,CAAC,MAAM,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,UAAU,CAAC;KACzB,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;CAC/C,KACF,MAAM,CACL;IACI,UAAU,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,sBAAsB,CAAC,CAAC;IAC5F,WAAW,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAC3C,MAAM,EACN,UAAU,GAAG,sBAAsB,CACtC,CAAC;CACL,EACD,MAAM,GAAG,YAAY,CA6KxB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/boardPosition/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/boardPosition/functions.d.ts new file mode 100644 index 000000000..40236b93a --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/boardPosition/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../generator/types'; +import { ServerTransform } from '../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/boardPosition/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/boardPosition/functions.d.ts.map new file mode 100644 index 000000000..05f686cf2 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/boardPosition/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/boardPosition/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI5E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAiE/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/boardPosition/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/boardPosition/types.d.ts new file mode 100644 index 000000000..b8a943c4c --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/boardPosition/types.d.ts @@ -0,0 +1,109 @@ +import { z } from 'zod'; +export declare const templateValue: { + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + /** + * @description To 3rd-party developers: Please always set undefined to this if it is CharacterPiece or PortraitPiece. + */ + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + /** + * @description To 3rd-party developers: Please always set undefined to this if it is CharacterPiece or PortraitPiece. + */ + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + /** + * @description To 3rd-party developers: Please always set undefined to this because it is not implemented yet in the official web-server. + */ + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; +}; +export declare const template: { + readonly type: "object"; + readonly $v: undefined; + readonly $r: undefined; + readonly value: { + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + /** + * @description To 3rd-party developers: Please always set undefined to this if it is CharacterPiece or PortraitPiece. + */ + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + /** + * @description To 3rd-party developers: Please always set undefined to this if it is CharacterPiece or PortraitPiece. + */ + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + /** + * @description To 3rd-party developers: Please always set undefined to this because it is not implemented yet in the official web-server. + */ + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/boardPosition/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/boardPosition/types.d.ts.map new file mode 100644 index 000000000..f14c33527 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/boardPosition/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/boardPosition/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,aAAa;;;;;;;;;;;IAItB;;OAEG;;;;;;IAGH;;OAEG;;;;;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;CAMN,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;QApBjB;;WAEG;;;;;;QAGH;;WAEG;;;;;;QAGH;;WAEG;;;;;;;;;;;;;;;;;;;;;;CAQ+E,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/compositeKey/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/compositeKey/types.d.ts new file mode 100644 index 000000000..34d1092eb --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/compositeKey/types.d.ts @@ -0,0 +1,16 @@ +import { z } from 'zod'; +export declare const compositeKey: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + createdBy: z.ZodString; + id: z.ZodString; + }, "strip", z.ZodTypeAny, { + createdBy: string; + id: string; + }, { + createdBy: string; + id: string; + }>; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/compositeKey/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/compositeKey/types.d.ts.map new file mode 100644 index 000000000..095911066 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/compositeKey/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/compositeKey/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAKxB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/filePath/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/filePath/types.d.ts new file mode 100644 index 000000000..c45ea0ef3 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/filePath/types.d.ts @@ -0,0 +1,41 @@ +import { z } from 'zod'; +export declare const Default = "Default"; +export declare const Uploader = "Uploader"; +export declare const FirebaseStorage = "FirebaseStorage"; +export declare const filePathValue: z.ZodObject<{ + $v: z.ZodLiteral<1>; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; +}, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; +}, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; +}>; +export declare const filePathTemplate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + $v: z.ZodLiteral<1>; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/filePath/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/filePath/types.d.ts.map new file mode 100644 index 000000000..9b9429186 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/filePath/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/filePath/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAIjD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAMxB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;CAA4C,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/piece/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/piece/functions.d.ts new file mode 100644 index 000000000..40236b93a --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/piece/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../generator/types'; +import { ServerTransform } from '../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/piece/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/piece/functions.d.ts.map new file mode 100644 index 000000000..ea1a46b0a --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/piece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/piece/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAsD/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/piece/log.d.ts b/packages/core/dist/cjs/internal/ot/flocon/piece/log.d.ts new file mode 100644 index 000000000..c56a44e7b --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/piece/log.d.ts @@ -0,0 +1,4 @@ +export declare const updateType = "update"; +export declare const createType = "create"; +export declare const deleteType = "delete"; +//# sourceMappingURL=log.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/piece/log.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/piece/log.d.ts.map new file mode 100644 index 000000000..d3e28b9b7 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/piece/log.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/piece/log.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,WAAW,CAAC;AACnC,eAAO,MAAM,UAAU,WAAW,CAAC;AACnC,eAAO,MAAM,UAAU,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/piece/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/piece/types.d.ts new file mode 100644 index 000000000..8d6213d91 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/piece/types.d.ts @@ -0,0 +1,141 @@ +import { z } from 'zod'; +export declare const templateValue: { + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; +}; +export declare const template: { + readonly type: "object"; + readonly $v: undefined; + readonly $r: undefined; + readonly value: { + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/piece/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/piece/types.d.ts.map new file mode 100644 index 000000000..324a09331 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/piece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/piece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOzB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiE,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/bgm/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/bgm/functions.d.ts new file mode 100644 index 000000000..df1a1c2b0 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/bgm/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { ServerTransform } from '../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/bgm/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/bgm/functions.d.ts.map new file mode 100644 index 000000000..b52bad806 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/bgm/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/bgm/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAAW,CAAC;AAEhG,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAyB/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/bgm/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/bgm/types.d.ts new file mode 100644 index 000000000..17642a915 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/bgm/types.d.ts @@ -0,0 +1,39 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + isPaused: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + files: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodArray; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>, "many">; + }; + volume: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/bgm/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/bgm/types.d.ts.map new file mode 100644 index 000000000..95962e291 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/bgm/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/bgm/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/converter.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/converter.d.ts new file mode 100644 index 000000000..890498cda --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/converter.d.ts @@ -0,0 +1,4 @@ +import * as DiePieceValueLog from './log'; +export declare const decode: (source: unknown) => DiePieceValueLog.Type; +export declare const parse: (source: string) => DiePieceValueLog.Type; +//# sourceMappingURL=converter.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/converter.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/converter.d.ts.map new file mode 100644 index 000000000..43854e260 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/converter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/dicePiece/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,OAAO,CAAC;AAE1C,eAAO,MAAM,MAAM,WAAY,OAAO,KAAG,gBAAgB,CAAC,IAEzD,CAAC;AAEF,eAAO,MAAM,KAAK,WAAY,MAAM,KAAG,gBAAgB,CAAC,IAEvD,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts new file mode 100644 index 000000000..edc6c5db8 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../../generator/types'; +import { ServerTransform } from '../../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (isAuthorized: boolean) => (source: State) => State; +export declare const serverTransform: (isAuthorized: boolean) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts.map new file mode 100644 index 000000000..7e28f78bc --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/internal/ot/flocon/room/board/dicePiece/dieValue/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAGrF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,iBACP,OAAO,cACb,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAKtD,CAAC;AAEN,eAAO,MAAM,eAAe,iBAEN,OAAO,KACtB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAmC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts new file mode 100644 index 000000000..b3abd74c7 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts @@ -0,0 +1,28 @@ +import { z } from 'zod'; +export declare const D4 = "D4"; +export declare const D6 = "D6"; +export declare const dieType: z.ZodUnion<[z.ZodLiteral<"D4">, z.ZodLiteral<"D6">]>; +export type DieType = z.TypeOf; +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + dieType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"D4">, z.ZodLiteral<"D6">]>; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts.map new file mode 100644 index 000000000..72b1ac768 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/internal/ot/flocon/room/board/dicePiece/dieValue/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,EAAE,OAAO,CAAC;AACvB,eAAO,MAAM,EAAE,OAAO,CAAC;AACvB,eAAO,MAAM,OAAO,sDAA0C,CAAC;AAC/D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAE/C,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAWpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/functions.d.ts new file mode 100644 index 000000000..ab799cfcd --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/functions.d.ts @@ -0,0 +1,8 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { RequestedBy } from '../../../../requestedBy'; +import { ServerTransform } from '../../../../util/type'; +import * as Room from '../../types'; +import { template } from './types'; +export declare const toClientState: (requestedBy: RequestedBy, currentRoomState: State) => (source: State) => State; +export declare const serverTransform: (requestedBy: RequestedBy, currentRoomState: State) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/functions.d.ts.map new file mode 100644 index 000000000..4c1a5156c --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/dicePiece/functions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EACH,WAAW,EAId,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAe,MAAM,uBAAuB,CAAC;AAErE,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAuB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExD,eAAO,MAAM,aAAa,gBACR,WAAW,oBAAoB,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAC/D,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAYtD,CAAC;AAEN,eAAO,MAAM,eAAe,gBAEP,WAAW,oBACN,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAC9C,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAwF/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/log.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/log.d.ts new file mode 100644 index 000000000..2cbb0c90c --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/log.d.ts @@ -0,0 +1,617 @@ +import { z } from 'zod'; +import { State, TwoWayOperation } from '../../../../generator/types'; +import * as DicePieceValueTypes from './types'; +export declare const type: z.ZodUnion<[z.ZodObject<{ + $v: z.ZodLiteral<2>; + $r: z.ZodLiteral<1>; + type: z.ZodLiteral<"create">; + value: z.ZodType<{ + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }, z.ZodTypeDef, { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }>; +}, "strip", z.ZodTypeAny, { + type: "create"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}, { + type: "create"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}>, z.ZodObject<{ + $v: z.ZodLiteral<2>; + $r: z.ZodLiteral<1>; + type: z.ZodLiteral<"delete">; + value: z.ZodType<{ + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }, z.ZodTypeDef, { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }>; +}, "strip", z.ZodTypeAny, { + type: "delete"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}, { + type: "delete"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}>, z.ZodIntersection; + $r: z.ZodLiteral<1>; + type: z.ZodLiteral<"update">; +}, "strip", z.ZodTypeAny, { + type: "update"; + $v: 2; + $r: 1; +}, { + type: "update"; + $v: 2; + $r: 1; +}>, z.ZodType<{ + $v: 2; + $r: 1; +} & { + cellH?: { + newValue: number; + } | undefined; + cellW?: { + newValue: number; + } | undefined; + cellX?: { + newValue: number; + } | undefined; + cellY?: { + newValue: number; + } | undefined; + isCellMode?: { + newValue: boolean; + } | undefined; + h?: { + newValue: number; + } | undefined; + isPositionLocked?: { + newValue: boolean; + } | undefined; + memo?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + name?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + opacity?: { + newValue: number | undefined; + } | undefined; + w?: { + newValue: number; + } | undefined; + x?: { + newValue: number; + } | undefined; + y?: { + newValue: number; + } | undefined; +}, z.ZodTypeDef, { + $v: 2; + $r: 1; +} & { + cellH?: { + newValue: number; + } | undefined; + cellW?: { + newValue: number; + } | undefined; + cellX?: { + newValue: number; + } | undefined; + cellY?: { + newValue: number; + } | undefined; + isCellMode?: { + newValue: boolean; + } | undefined; + h?: { + newValue: number; + } | undefined; + isPositionLocked?: { + newValue: boolean; + } | undefined; + memo?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + name?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + opacity?: { + newValue: number | undefined; + } | undefined; + w?: { + newValue: number; + } | undefined; + x?: { + newValue: number; + } | undefined; + y?: { + newValue: number; + } | undefined; +}>>, z.ZodObject<{ + ownerCharacterId: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + newValue?: string | undefined; + }, { + newValue?: string | undefined; + }>>; + dice: z.ZodOptional; + replace: z.ZodObject<{ + newValue: z.ZodOptional>; + }, "strip", z.ZodTypeAny, { + newValue?: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + }, { + newValue?: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + }>; + }, "strip", z.ZodTypeAny, { + type: "replace"; + replace: { + newValue?: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + }; + }, { + type: "replace"; + replace: { + newValue?: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + }; + }>, z.ZodObject<{ + type: z.ZodLiteral<"update">; + update: z.ZodObject, z.ZodLiteral<"D6">]>; + }, "strip", z.ZodTypeAny, { + newValue: "D4" | "D6"; + }, { + newValue: "D4" | "D6"; + }>>; + isValuePrivateChanged: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + newValue?: number | undefined; + }, { + newValue?: number | undefined; + }>>; + isValueChanged: z.ZodOptional; + }, { + $v: z.ZodLiteral<1>; + $r: z.ZodLiteral<1>; + }>, "strip", z.ZodTypeAny, { + $v: 1; + $r: 1; + dieType?: { + newValue: "D4" | "D6"; + } | undefined; + isValuePrivateChanged?: { + newValue?: number | undefined; + } | undefined; + isValueChanged?: boolean | undefined; + }, { + $v: 1; + $r: 1; + dieType?: { + newValue: "D4" | "D6"; + } | undefined; + isValuePrivateChanged?: { + newValue?: number | undefined; + } | undefined; + isValueChanged?: boolean | undefined; + }>; + }, "strip", z.ZodTypeAny, { + type: "update"; + update: { + $v: 1; + $r: 1; + dieType?: { + newValue: "D4" | "D6"; + } | undefined; + isValuePrivateChanged?: { + newValue?: number | undefined; + } | undefined; + isValueChanged?: boolean | undefined; + }; + }, { + type: "update"; + update: { + $v: 1; + $r: 1; + dieType?: { + newValue: "D4" | "D6"; + } | undefined; + isValuePrivateChanged?: { + newValue?: number | undefined; + } | undefined; + isValueChanged?: boolean | undefined; + }; + }>]>>>>; +}, "strip", z.ZodTypeAny, { + ownerCharacterId?: { + newValue?: string | undefined; + } | undefined; + dice?: Record | undefined; +}, { + ownerCharacterId?: { + newValue?: string | undefined; + } | undefined; + dice?: Record | undefined; +}>>]>; +export type Type = z.TypeOf; +export declare const ofOperation: (operation: TwoWayOperation, currentState: State) => Type; +//# sourceMappingURL=log.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/log.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/log.d.ts.map new file mode 100644 index 000000000..75f156cf6 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/log.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/dicePiece/log.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACH,KAAK,EACL,eAAe,EAIlB,MAAM,6BAA6B,CAAC;AAYrC,OAAO,KAAK,mBAAmB,MAAM,SAAS,CAAC;AAgC/C,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAcf,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AAEzC,eAAO,MAAM,WAAW,cACT,eAAe,CAAC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,gBACjD,KAAK,CAAC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,KACzD,IAsDF,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/types.d.ts new file mode 100644 index 000000000..cc7b27a16 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/types.d.ts @@ -0,0 +1,102 @@ +import { z } from 'zod'; +export declare const dicePieceStrIndexes: readonly ["1", "2", "3", "4"]; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dice: import("../../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + dieType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"D4">, z.ZodLiteral<"D6">]>; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/types.d.ts.map new file mode 100644 index 000000000..2cc7ef658 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/dicePiece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/dicePiece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,mBAAmB,+BAAgC,CAAC;AAEjE,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/functions.d.ts new file mode 100644 index 000000000..ebd1582d3 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/functions.d.ts @@ -0,0 +1,8 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { RequestedBy } from '../../../requestedBy'; +import { ServerTransform } from '../../../util/type'; +import * as Room from '../types'; +import { template } from './types'; +export declare const toClientState: (requestedBy: RequestedBy, currentRoomState: State) => (source: State) => State; +export declare const serverTransform: (requestedBy: RequestedBy, currentRoomState: State) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/functions.d.ts.map new file mode 100644 index 000000000..393c519d7 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/board/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EACH,WAAW,EAMd,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,eAAe,EAAe,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,IAAI,MAAM,UAAU,CAAC;AASjC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,gBACR,WAAW,oBAAoB,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAC/D,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAgDtD,CAAC;AAEN,eAAO,MAAM,eAAe,gBAEP,WAAW,oBACN,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAC9C,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAgO/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/functions.d.ts new file mode 100644 index 000000000..ce2267df6 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/functions.d.ts @@ -0,0 +1,7 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { RequestedBy } from '../../../../requestedBy'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: (requestedBy: RequestedBy) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/functions.d.ts.map new file mode 100644 index 000000000..62b33bd39 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/imagePiece/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,WAAW,EAA+B,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,gBAEP,WAAW,KACzB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CA8D/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/types.d.ts new file mode 100644 index 000000000..b432b15bd --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/types.d.ts @@ -0,0 +1,104 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/types.d.ts.map new file mode 100644 index 000000000..c767d57a1 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/imagePiece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/imagePiece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/functions.d.ts new file mode 100644 index 000000000..ce2267df6 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/functions.d.ts @@ -0,0 +1,7 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { RequestedBy } from '../../../../requestedBy'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: (requestedBy: RequestedBy) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/functions.d.ts.map new file mode 100644 index 000000000..beb921cc9 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/shapePiece/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,WAAW,EAA+B,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,gBAEP,WAAW,KACzB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CA+E/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/types.d.ts new file mode 100644 index 000000000..b84c77ab1 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/types.d.ts @@ -0,0 +1,125 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + /** + * keyは`'1'`から`'9'`の9個のみをサポートしています。詳細は`./functions.ts`を参照してください。 + * + * ShapeのPath.dataは、widthとheightがともに100pxの正方形として記述します。コマなどの大きさに応じて自動的にscaleされます。 + * */ + shapes: import("../../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + shape: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + type: z.ZodLiteral<"path">; + data: z.ZodString; + }, "strip", z.ZodTypeAny, { + type: "path"; + data: string; + }, { + type: "path"; + data: string; + }>; + }; + fill: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + stroke: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + strokeWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/types.d.ts.map new file mode 100644 index 000000000..2869ac0b4 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/shapePiece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/shapePiece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;QAMb;;;;aAIK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKZ,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/converter.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/converter.d.ts new file mode 100644 index 000000000..257b7a6ec --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/converter.d.ts @@ -0,0 +1,4 @@ +import * as StringPieceValueLog from './log'; +export declare const decode: (source: unknown) => StringPieceValueLog.Type; +export declare const parse: (source: string) => StringPieceValueLog.Type; +//# sourceMappingURL=converter.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/converter.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/converter.d.ts.map new file mode 100644 index 000000000..1cc076ff4 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/converter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/stringPiece/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,mBAAmB,MAAM,OAAO,CAAC;AAE7C,eAAO,MAAM,MAAM,WAAY,OAAO,KAAG,mBAAmB,CAAC,IAE5D,CAAC;AAEF,eAAO,MAAM,KAAK,WAAY,MAAM,KAAG,mBAAmB,CAAC,IAE1D,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/functions.d.ts new file mode 100644 index 000000000..ab799cfcd --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/functions.d.ts @@ -0,0 +1,8 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { RequestedBy } from '../../../../requestedBy'; +import { ServerTransform } from '../../../../util/type'; +import * as Room from '../../types'; +import { template } from './types'; +export declare const toClientState: (requestedBy: RequestedBy, currentRoomState: State) => (source: State) => State; +export declare const serverTransform: (requestedBy: RequestedBy, currentRoomState: State) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/functions.d.ts.map new file mode 100644 index 000000000..207ac2c2e --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/stringPiece/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAElF,OAAO,EACH,WAAW,EAId,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,gBACR,WAAW,oBAAoB,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAC/D,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAUtD,CAAC;AAEN,eAAO,MAAM,eAAe,gBAEP,WAAW,oBACN,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAC9C,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CA0E/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/log.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/log.d.ts new file mode 100644 index 000000000..7282ac9b9 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/log.d.ts @@ -0,0 +1,395 @@ +import { z } from 'zod'; +import { State, TwoWayOperation } from '../../../../generator/types'; +import * as StringPieceValueTypes from './types'; +export declare const type: z.ZodUnion<[z.ZodObject<{ + $v: z.ZodLiteral<2>; + $r: z.ZodLiteral<1>; + type: z.ZodLiteral<"create">; + value: z.ZodType<{ + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }, z.ZodTypeDef, { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }>; +}, "strip", z.ZodTypeAny, { + type: "create"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}, { + type: "create"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}>, z.ZodObject<{ + $v: z.ZodLiteral<2>; + $r: z.ZodLiteral<1>; + type: z.ZodLiteral<"delete">; + value: z.ZodType<{ + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }, z.ZodTypeDef, { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }>; +}, "strip", z.ZodTypeAny, { + type: "delete"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}, { + type: "delete"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}>, z.ZodIntersection; + $r: z.ZodLiteral<1>; + type: z.ZodLiteral<"update">; +}, "strip", z.ZodTypeAny, { + type: "update"; + $v: 2; + $r: 1; +}, { + type: "update"; + $v: 2; + $r: 1; +}>, z.ZodType<{ + $v: 2; + $r: 1; +} & { + cellH?: { + newValue: number; + } | undefined; + cellW?: { + newValue: number; + } | undefined; + cellX?: { + newValue: number; + } | undefined; + cellY?: { + newValue: number; + } | undefined; + isCellMode?: { + newValue: boolean; + } | undefined; + h?: { + newValue: number; + } | undefined; + isPositionLocked?: { + newValue: boolean; + } | undefined; + memo?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + name?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + opacity?: { + newValue: number | undefined; + } | undefined; + w?: { + newValue: number; + } | undefined; + x?: { + newValue: number; + } | undefined; + y?: { + newValue: number; + } | undefined; +}, z.ZodTypeDef, { + $v: 2; + $r: 1; +} & { + cellH?: { + newValue: number; + } | undefined; + cellW?: { + newValue: number; + } | undefined; + cellX?: { + newValue: number; + } | undefined; + cellY?: { + newValue: number; + } | undefined; + isCellMode?: { + newValue: boolean; + } | undefined; + h?: { + newValue: number; + } | undefined; + isPositionLocked?: { + newValue: boolean; + } | undefined; + memo?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + name?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + opacity?: { + newValue: number | undefined; + } | undefined; + w?: { + newValue: number; + } | undefined; + x?: { + newValue: number; + } | undefined; + y?: { + newValue: number; + } | undefined; +}>>, z.ZodObject<{ + ownerCharacterId: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + newValue?: string | undefined; + }, { + newValue?: string | undefined; + }>>; + isValuePrivateChanged: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + newValue?: string | undefined; + }, { + newValue?: string | undefined; + }>>; + isValueChanged: z.ZodOptional; +}, "strip", z.ZodTypeAny, { + ownerCharacterId?: { + newValue?: string | undefined; + } | undefined; + isValuePrivateChanged?: { + newValue?: string | undefined; + } | undefined; + isValueChanged?: boolean | undefined; +}, { + ownerCharacterId?: { + newValue?: string | undefined; + } | undefined; + isValuePrivateChanged?: { + newValue?: string | undefined; + } | undefined; + isValueChanged?: boolean | undefined; +}>>]>; +export type Type = z.TypeOf; +export declare const ofOperation: (operation: TwoWayOperation, currentState: State) => Type; +//# sourceMappingURL=log.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/log.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/log.d.ts.map new file mode 100644 index 000000000..c3e9d2353 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/log.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/stringPiece/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACH,KAAK,EACL,eAAe,EAIlB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,qBAAqB,MAAM,SAAS,CAAC;AAoBjD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAcf,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AAEzC,eAAO,MAAM,WAAW,cACT,eAAe,CAAC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,gBACnD,KAAK,CAAC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,KAC3D,IAiBF,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/types.d.ts new file mode 100644 index 000000000..a266c7501 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/types.d.ts @@ -0,0 +1,96 @@ +import { z } from 'zod'; +export declare const String = "String"; +export declare const Number = "Number"; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + valueInputType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional, z.ZodLiteral<"Number">]>>; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/types.d.ts.map new file mode 100644 index 000000000..fb31f25ae --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/stringPiece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/stringPiece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAI/B,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/board/types.d.ts new file mode 100644 index 000000000..905f34d46 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/types.d.ts @@ -0,0 +1,485 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + backgroundImage: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + backgroundImageZoom: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellColumnCount: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellHeight: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellOffsetX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellOffsetY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellRowCount: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dicePieces: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dice: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + dieType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"D4">, z.ZodLiteral<"D6">]>; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + imagePieces: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + shapePieces: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + shapes: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + shape: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + type: z.ZodLiteral<"path">; + data: z.ZodString; + }, "strip", z.ZodTypeAny, { + type: "path"; + data: string; + }, { + type: "path"; + data: string; + }>; + }; + fill: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + stroke: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + strokeWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + stringPieces: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + valueInputType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional, z.ZodLiteral<"Number">]>>; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/board/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/board/types.d.ts.map new file mode 100644 index 000000000..b12350b4b --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/board/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/board/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/functions.d.ts new file mode 100644 index 000000000..4e8bbf011 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (isAuthorized: boolean, defaultValue: boolean | undefined) => (source: State) => State; +export declare const serverTransform: (isAuthorized: boolean) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/functions.d.ts.map new file mode 100644 index 000000000..072723ef8 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/boolParam/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAIlF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,iBACP,OAAO,gBAAgB,OAAO,GAAG,SAAS,cAChD,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAKtD,CAAC;AAEN,eAAO,MAAM,eAAe,iBAEN,OAAO,KACtB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAyC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/types.d.ts new file mode 100644 index 000000000..1b6c577ca --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/types.d.ts @@ -0,0 +1,24 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/types.d.ts.map new file mode 100644 index 000000000..ab4d59e77 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/boolParam/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/boolParam/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/functions.d.ts new file mode 100644 index 000000000..a283a25c5 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/functions.d.ts.map new file mode 100644 index 000000000..5672fa93e --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/characterPiece/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAkC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/types.d.ts new file mode 100644 index 000000000..5640c086e --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/types.d.ts @@ -0,0 +1,84 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/types.d.ts.map new file mode 100644 index 000000000..b04fe56b9 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/characterPiece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/characterPiece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/command/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/command/functions.d.ts new file mode 100644 index 000000000..a283a25c5 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/command/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/command/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/command/functions.d.ts.map new file mode 100644 index 000000000..30ecd446e --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/command/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/command/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAgC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/command/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/command/types.d.ts new file mode 100644 index 000000000..cdb836374 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/command/types.d.ts @@ -0,0 +1,18 @@ +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/command/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/command/types.d.ts.map new file mode 100644 index 000000000..f52ff1a4b --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/command/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/command/types.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CAOpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/functions.d.ts new file mode 100644 index 000000000..b5bd9b7dd --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/functions.d.ts @@ -0,0 +1,8 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { RequestedBy } from '../../../requestedBy'; +import { ServerTransform } from '../../../util/type'; +import * as Room from '../types'; +import { template } from './types'; +export declare const toClientState: (isAuthorized: boolean, requestedBy: RequestedBy, currentRoomState: State) => (source: State) => State; +export declare const serverTransform: (isAuthorized: boolean, requestedBy: RequestedBy, currentRoomState: State) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/functions.d.ts.map new file mode 100644 index 000000000..f5dc5e9d3 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/character/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI/E,OAAO,EACH,WAAW,EAKd,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,eAAe,EAAe,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,IAAI,MAAM,UAAU,CAAC;AAUjC,OAAO,EAIH,QAAQ,EACX,MAAM,SAAS,CAAC;AAIjB,eAAO,MAAM,aAAa,iBAEJ,OAAO,eACR,WAAW,oBACN,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAExC,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CA+DtD,CAAC;AAEN,eAAO,MAAM,eAAe,iBAEN,OAAO,eACR,WAAW,oBACN,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAC9C,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAsU/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/functions.d.ts new file mode 100644 index 000000000..ba3f0ffda --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (isAuthorized: boolean, defaultValue: number | undefined) => (source: State) => State; +export declare const serverTransform: (isAuthorized: boolean) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/functions.d.ts.map new file mode 100644 index 000000000..c6bd08a98 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/numParam/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAIlF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,iBACP,OAAO,gBAAgB,MAAM,GAAG,SAAS,cAC/C,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAKtD,CAAC;AAEN,eAAO,MAAM,eAAe,iBAEN,OAAO,KACtB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAyC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/types.d.ts new file mode 100644 index 000000000..d4f04ead3 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/types.d.ts @@ -0,0 +1,27 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + /** + * @description Do not use this value for numMaxParam. + */ + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/types.d.ts.map new file mode 100644 index 000000000..cfda0284c --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/numParam/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/numParam/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;QAKb;;WAEG;;;;;;;CAKV,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/functions.d.ts new file mode 100644 index 000000000..a283a25c5 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/functions.d.ts.map new file mode 100644 index 000000000..d225db583 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/portraitPiece/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAkC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/types.d.ts new file mode 100644 index 000000000..9ac0788e9 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/types.d.ts @@ -0,0 +1,59 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/types.d.ts.map new file mode 100644 index 000000000..8d11246c8 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/portraitPiece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/portraitPiece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/functions.d.ts new file mode 100644 index 000000000..417264086 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (isAuthorized: boolean) => (source: State) => State; +export declare const serverTransform: (isAuthorized: boolean) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/functions.d.ts.map new file mode 100644 index 000000000..c8a26b67a --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/strParam/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAIlF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,iBACP,OAAO,cACb,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAKtD,CAAC;AAEN,eAAO,MAAM,eAAe,iBAEN,OAAO,KACtB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CA6C/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/types.d.ts new file mode 100644 index 000000000..38d1b6343 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/types.d.ts @@ -0,0 +1,24 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/types.d.ts.map new file mode 100644 index 000000000..7262aa2f8 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/strParam/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/strParam/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/character/types.d.ts new file mode 100644 index 000000000..52144a7bc --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/types.d.ts @@ -0,0 +1,424 @@ +import { z } from 'zod'; +import { State } from '../../../generator/types'; +import * as BoolParam from './boolParam/types'; +import * as NumParam from './numParam/types'; +import * as StrParam from './strParam/types'; +export declare const defaultBoolParamState: State; +export declare const defaultNumParamState: State; +export declare const defaultStrParamState: State; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + chatPalette: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + privateVarToml: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + portraitImage: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + hasTag1: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag2: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag3: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag4: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag5: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag6: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag7: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag8: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag9: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag10: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + boolParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: boolean | undefined; + overriddenParameterName: string | undefined; + }; + }; + numParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: number | undefined; + overriddenParameterName: string | undefined; + }; + }; + numMaxParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: number | undefined; + overriddenParameterName: string | undefined; + }; + }; + strParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: string | undefined; + overriddenParameterName: string | undefined; + }; + }; + pieces: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + privateCommands: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + portraitPieces: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/character/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/character/types.d.ts.map new file mode 100644 index 000000000..1a8a0bd2a --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/character/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/character/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACH,KAAK,EAMR,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAG/C,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAO7C,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAMlE,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAMhE,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAMhE,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/converter.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/converter.d.ts new file mode 100644 index 000000000..627ba3587 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/converter.d.ts @@ -0,0 +1,17 @@ +import { DownOperation, State, UpOperation } from '../../generator/types'; +import * as Room from './types'; +type RoomState = State; +type RoomDbState = State; +type RoomUpOperation = UpOperation; +type RoomDownOperation = DownOperation; +export declare const decodeState: (source: unknown) => RoomState; +export declare const parseState: (source: string) => RoomState; +export declare const stringifyState: (source: RoomState) => string; +export declare const decodeDbState: (source: unknown) => RoomDbState; +export declare const exactDbState: (source: RoomDbState) => RoomDbState; +export declare const parseUpOperation: (source: string) => RoomUpOperation; +export declare const stringifyUpOperation: (source: RoomUpOperation) => string; +export declare const decodeDownOperation: (source: unknown) => RoomDownOperation; +export declare const exactDownOperation: (source: RoomDownOperation) => RoomDownOperation; +export {}; +//# sourceMappingURL=converter.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/converter.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/converter.d.ts.map new file mode 100644 index 000000000..1e749267d --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/converter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/room/converter.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,KAAK,EACL,WAAW,EAId,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAEhC,KAAK,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,KAAK,WAAW,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AACjD,KAAK,eAAe,GAAG,WAAW,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3D,KAAK,iBAAiB,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AAE/D,eAAO,MAAM,WAAW,WAAY,OAAO,KAAG,SAE7C,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,MAAM,KAAG,SAE3C,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,SAAS,KAAG,MAGlD,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,OAAO,KAAG,WAE/C,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,WAAW,KAAG,WAElD,CAAC;AAMF,eAAO,MAAM,gBAAgB,WAAY,MAAM,KAAG,eAEjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAY,eAAe,KAAG,MAG9D,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAAY,OAAO,KAAG,iBAErD,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,iBAAiB,KAAG,iBAE9D,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/functions.d.ts new file mode 100644 index 000000000..8d726c392 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/functions.d.ts @@ -0,0 +1,23 @@ +import { State, TwoWayOperation, UpOperation } from '../../generator/types'; +import { RequestedBy } from '../../requestedBy'; +import { ServerTransform } from '../../util/type'; +import { template } from './types'; +/** + * Stateから、指定されたユーザーが閲覧できないデータを取り除いた新しいStateを返す。 + * @param requestedBy 生成されたStateを渡すユーザーの種類。権限を確認するために用いられる。 + */ +export declare const toClientState: (requestedBy: RequestedBy) => (source: State) => State; +/** + * クライアントによる変更の要求を表すOperationを受け取り、APIサーバーのStateに対してapplyできる状態のOperationに変換して返す。変換処理では、主に次の2つが行われる。 + * - クライアントから受け取ったOperationのうち、不正なもの(例: そのユーザーが本来削除できないはずのキャラクターを削除しようとする)があった場合に、取り除くか拒否してエラーを返す + * - 編集競合が発生している場合は解決する + * + * @param requestedBy 変更を要求したユーザーの種類。権限を確認するために用いられる。 + * @param stateBeforeServerOperation クライアントがStateを変更しようとしたときに用いられたState。 + * @param stateAfterServerOperation APIサーバーにおける実際の最新のState。 + * @param serverOperation `stateBeforeServerOperation`と`stateAfterServerOperation`のDiff。`stateBeforeServerOperation`と`stateAfterServerOperation`が等しい場合はundefined。 + * @param clientOperation クライアントが要求している変更。 + * @returns `stateAfterServerOperation`に対してapplyできる状態のOperation。 + */ +export declare const serverTransform: (requestedBy: RequestedBy) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/functions.d.ts.map new file mode 100644 index 000000000..749e63d14 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/room/functions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI5E,OAAO,EACH,WAAW,EASd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAe,MAAM,iBAAiB,CAAC;AAe/D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAInC;;;GAGG;AACH,eAAO,MAAM,aAAa,gBACR,WAAW,cAChB,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAgEtD,CAAC;AAEN;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,gBAEP,WAAW,KACzB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CA4X/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/log.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/log.d.ts new file mode 100644 index 000000000..1905723c5 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/log.d.ts @@ -0,0 +1,23 @@ +import { State } from '../../generator/types'; +import * as DicePieceLog from './board/dicePiece/log'; +import * as StringPieceLog from './board/stringPiece/log'; +import * as RoomTypes from './types'; +type DicePieceLogType = { + boardId: string; + stateId: string; + value: DicePieceLog.Type; +}; +type StringPieceLogType = { + boardId: string; + stateId: string; + value: StringPieceLog.Type; +}; +export declare const createLogs: ({ prevState, nextState, }: { + prevState: State; + nextState: State; +}) => { + dicePieceLogs: DicePieceLogType[]; + stringPieceLogs: StringPieceLogType[]; +} | undefined; +export {}; +//# sourceMappingURL=log.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/log.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/log.d.ts.map new file mode 100644 index 000000000..2dd70605b --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/log.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/room/log.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAmB,MAAM,uBAAuB,CAAC;AAM/D,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AAErC,KAAK,gBAAgB,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;CAC5B,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,UAAU,8BAGpB;IACC,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5C,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;CAC/C;;;aA+KA,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/memo/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/memo/functions.d.ts new file mode 100644 index 000000000..df1a1c2b0 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/memo/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { ServerTransform } from '../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/memo/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/memo/functions.d.ts.map new file mode 100644 index 000000000..e85424d69 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/memo/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/memo/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAAW,CAAC;AAEhG,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CA4C/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/memo/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/memo/types.d.ts new file mode 100644 index 000000000..ab68a5b74 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/memo/types.d.ts @@ -0,0 +1,34 @@ +import { z } from 'zod'; +export declare const Plain = "Plain"; +export declare const Markdown = "Markdown"; +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + dir: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodArray; + }; + text: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + /** + * @description To 3rd-party developers: Please always set 'Plain' to this because 'Markdown' is not implemented yet in the official web-server. + */ + textType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"Plain">, z.ZodLiteral<"Markdown">]>; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/memo/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/memo/types.d.ts.map new file mode 100644 index 000000000..af83b6f04 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/memo/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/memo/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,QAAQ,aAAa,CAAC;AAQnC,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;QAMb;;WAEG;;;;;;;CAKV,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/paramName/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/paramName/functions.d.ts new file mode 100644 index 000000000..df1a1c2b0 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/paramName/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { ServerTransform } from '../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/paramName/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/paramName/functions.d.ts.map new file mode 100644 index 000000000..e6b67336f --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/paramName/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/paramName/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAAW,CAAC;AAEhG,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAmB/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/paramName/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/paramName/types.d.ts new file mode 100644 index 000000000..955cc5376 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/paramName/types.d.ts @@ -0,0 +1,13 @@ +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/paramName/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/paramName/types.d.ts.map new file mode 100644 index 000000000..d2f7999db --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/paramName/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/paramName/types.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;CAMpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/participant/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/participant/functions.d.ts new file mode 100644 index 000000000..5e965790b --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/participant/functions.d.ts @@ -0,0 +1,10 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { RequestedBy } from '../../../requestedBy'; +import { ServerTransform } from '../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ({ requestedBy, participantKey, }: { + requestedBy: RequestedBy; + participantKey: string; +}) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/participant/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/participant/functions.d.ts.map new file mode 100644 index 000000000..1c95f1bbb --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/participant/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/participant/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,qCAIrB;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CAC1B,KAAG,eAAe,CACf,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAmC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/participant/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/participant/types.d.ts new file mode 100644 index 000000000..a8a4f633d --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/participant/types.d.ts @@ -0,0 +1,25 @@ +import { z } from 'zod'; +export declare const Player = "Player"; +export declare const Spectator = "Spectator"; +export declare const Master = "Master"; +declare const participantRole: z.ZodUnion<[z.ZodLiteral<"Player">, z.ZodLiteral<"Spectator">, z.ZodLiteral<"Master">]>; +export type ParticipantRole = z.TypeOf; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional>; + }; + role: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional, z.ZodLiteral<"Spectator">, z.ZodLiteral<"Master">]>>; + }; + }; +}; +export {}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/participant/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/participant/types.d.ts.map new file mode 100644 index 000000000..cb61108c2 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/participant/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/participant/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,QAAA,MAAM,eAAe,yFAAwE,CAAC;AAC9F,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAE/D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CAOpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/functions.d.ts new file mode 100644 index 000000000..c14202688 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/functions.d.ts @@ -0,0 +1,9 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { RequestedBy } from '../../../requestedBy'; +import { ServerTransform } from '../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ({ requestedBy, }: { + requestedBy: RequestedBy; +}) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/functions.d.ts.map new file mode 100644 index 000000000..bf2d79feb --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/rollCall/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAE,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CASnF,CAAC;AAEF,eAAO,MAAM,eAAe,qBAGrB;IACC,WAAW,EAAE,WAAW,CAAC;CAC5B,KAAG,eAAe,CACf,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAqE/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts new file mode 100644 index 000000000..f1f13b266 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts @@ -0,0 +1,40 @@ +import { State } from '../../../generator/types'; +import { StringKeyRecord } from '../../../record'; +import { template } from './types'; +/** + * 現在行われている点呼があればそれを返します。 + * + * 原則として、現在行われている点呼は最大でも 1 つまでしか存在できません。 + */ +export declare const getOpenRollCall: (source: StringKeyRecord>) => { + key: string; + value: { + $v: 1; + $r: 1; + } & { + createdAt: number; + createdBy: string; + closeStatus: { + closedBy: string; + reason: "Closed"; + } | undefined; + participants: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + answeredAt: number | undefined; + }) | undefined; + } | undefined; + soundEffect: { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + } | undefined; + }; +} | undefined; +//# sourceMappingURL=getOpenRollCall.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts.map new file mode 100644 index 000000000..5cd9f7cf7 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"getOpenRollCall.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/rollCall/getOpenRollCall.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQnC;;;;GAIG;AACH,eAAO,MAAM,eAAe,WAAY,eAAe,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAG9E,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts new file mode 100644 index 000000000..383a7fe30 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts @@ -0,0 +1,4 @@ +import { State } from '../../../generator/types'; +import { template } from './types'; +export declare const isOpenRollCall: (source: State) => boolean; +//# sourceMappingURL=isOpenRollCall.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts.map new file mode 100644 index 000000000..d928b455d --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"isOpenRollCall.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/rollCall/isOpenRollCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,cAAc,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,OAI/D,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts new file mode 100644 index 000000000..56776240f --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts @@ -0,0 +1,9 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { RequestedBy } from '../../../../requestedBy'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ({ requestedBy, }: { + requestedBy: RequestedBy; +}) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts.map new file mode 100644 index 000000000..7b06c8555 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,WAAW,EAAS,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAAW,CAAC;AAEhG,eAAO,MAAM,eAAe,qBAGrB;IACC,WAAW,EAAE,WAAW,CAAC;CAC5B,KAAG,eAAe,CACf,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAqB/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts new file mode 100644 index 000000000..98ca0ba05 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts @@ -0,0 +1,15 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + /** 点呼に返事したかどうか。`number` の場合は返事をしたことを表し、値は返事した日時となります。 `undefined` の場合は返事をしていないことを表します。`number` から `undefined` に戻すことで返事を撤回することもできます。また、`number` から `number` に変更することで、返事をした時間を更新することもできます。 */ + answeredAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts.map new file mode 100644 index 000000000..387c1d669 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/rollCall/rollCallParticipant/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,QAAQ;;;;;QAEb,4LAA4L;;;;;;;CAKnM,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/types.d.ts new file mode 100644 index 000000000..1a1d8a9c1 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/types.d.ts @@ -0,0 +1,103 @@ +import { z } from 'zod'; +/** 点呼の状況。 */ +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + createdAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + createdBy: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + /** + * 締め切られたかどうか。nullish ならば締め切られていないことを表します。原則として、締め切られていない点呼は、最大で1つまでしか存在できません。 + * + * 締め切られていない場合、参加者は誰でも締め切ることができます(ただし、締め切るには GraphQL の Mutation から実行する必要があります)。すでに締め切られている場合は、再開させることはできません。 + */ + closeStatus: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + closedBy: string; + reason: "Closed"; + }, { + closedBy: string; + reason: "Closed"; + }>>; + }; + /** + * 各ユーザーの点呼の状況です。keyはParticipantのIDです。 + * + * 原則として、`Spectator` もしくは存在しない Participant を追加すること、値を削除すること、すでに締め切られている場合に値を追加および変更することはできません。 + * + * この Record に存在しない `Player` や `Master` も点呼に参加できます。 + */ + participants: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + answeredAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + /** 点呼開始時に流す SE。 */ + soundEffect: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>; + volume: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + }, { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + }>>; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/types.d.ts.map new file mode 100644 index 000000000..d92c7a21d --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/rollCall/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/rollCall/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB,aAAa;AACb,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;QAOb;;;;WAIG;;;;;;gBAzBP;;;;mBAIG;;;;;;;;;;QAwBC;;;;;;WAMG;;;;;;;;;;;;;QAIH,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK1B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/room/types.d.ts new file mode 100644 index 000000000..87f56b358 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/types.d.ts @@ -0,0 +1,2413 @@ +import { z } from 'zod'; +export declare const dbTemplate: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + activeBoardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + bgms: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + isPaused: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + files: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodArray; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>, "many">; + }; + volume: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + boolParamNames: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + boards: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + backgroundImage: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + backgroundImageZoom: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellColumnCount: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellHeight: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellOffsetX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellOffsetY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellRowCount: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dicePieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dice: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + dieType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"D4">, z.ZodLiteral<"D6">]>; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + imagePieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + shapePieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + shapes: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + shape: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + type: z.ZodLiteral<"path">; + data: z.ZodString; + }, "strip", z.ZodTypeAny, { + type: "path"; + data: string; + }, { + type: "path"; + data: string; + }>; + }; + fill: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + stroke: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + strokeWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + stringPieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + valueInputType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional, z.ZodLiteral<"Number">]>>; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + }; + }>; + characters: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + chatPalette: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + privateVarToml: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + portraitImage: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + hasTag1: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag2: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag3: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag4: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag5: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag6: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag7: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag8: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag9: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag10: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + boolParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: boolean | undefined; + overriddenParameterName: string | undefined; + }; + }; + numParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: number | undefined; + overriddenParameterName: string | undefined; + }; + }; + numMaxParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: number | undefined; + overriddenParameterName: string | undefined; + }; + }; + strParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: string | undefined; + overriddenParameterName: string | undefined; + }; + }; + pieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + privateCommands: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + portraitPieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + }; + }>; + characterTag1Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag2Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag3Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag4Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag5Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag6Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag7Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag8Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag9Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag10Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + memos: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + dir: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodArray; + }; + text: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + textType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"Plain">, z.ZodLiteral<"Markdown">]>; + }; + }; + }>; + numParamNames: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + rollCalls: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + createdAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + createdBy: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + closeStatus: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + closedBy: string; + reason: "Closed"; + }, { + closedBy: string; + reason: "Closed"; + }>>; + }; + participants: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + answeredAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + soundEffect: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>; + volume: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + }, { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + }>>; + }; + }; + }>; + publicChannel1Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel2Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel3Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel4Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel5Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel6Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel7Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel8Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel9Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel10Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + strParamNames: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + }; +}; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + createdBy: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + participants: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional>; + }; + role: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional, z.ZodLiteral<"Spectator">, z.ZodLiteral<"Master">]>>; + }; + }; + }>; + activeBoardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + bgms: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + isPaused: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + files: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodArray; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>, "many">; + }; + volume: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + boolParamNames: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + boards: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + backgroundImage: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + backgroundImageZoom: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellColumnCount: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellHeight: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellOffsetX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellOffsetY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellRowCount: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dicePieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dice: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + dieType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"D4">, z.ZodLiteral<"D6">]>; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + imagePieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + shapePieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + shapes: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + shape: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + type: z.ZodLiteral<"path">; + data: z.ZodString; + }, "strip", z.ZodTypeAny, { + type: "path"; + data: string; + }, { + type: "path"; + data: string; + }>; + }; + fill: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + stroke: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + strokeWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + stringPieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + valueInputType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional, z.ZodLiteral<"Number">]>>; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + }; + }>; + characters: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + chatPalette: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + privateVarToml: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + portraitImage: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + hasTag1: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag2: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag3: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag4: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag5: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag6: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag7: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag8: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag9: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag10: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + boolParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: boolean | undefined; + overriddenParameterName: string | undefined; + }; + }; + numParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: number | undefined; + overriddenParameterName: string | undefined; + }; + }; + numMaxParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: number | undefined; + overriddenParameterName: string | undefined; + }; + }; + strParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: string | undefined; + overriddenParameterName: string | undefined; + }; + }; + pieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + privateCommands: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + portraitPieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + }; + }>; + characterTag1Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag2Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag3Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag4Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag5Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag6Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag7Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag8Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag9Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag10Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + memos: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + dir: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodArray; + }; + text: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + textType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"Plain">, z.ZodLiteral<"Markdown">]>; + }; + }; + }>; + numParamNames: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + rollCalls: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + createdAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + createdBy: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + closeStatus: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + closedBy: string; + reason: "Closed"; + }, { + closedBy: string; + reason: "Closed"; + }>>; + }; + participants: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + answeredAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + soundEffect: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>; + volume: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + }, { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + }>>; + }; + }; + }>; + publicChannel1Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel2Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel3Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel4Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel5Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel6Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel7Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel8Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel9Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel10Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + strParamNames: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/room/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/room/types.d.ts.map new file mode 100644 index 000000000..9d1c648c4 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/room/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/room/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgDxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgD,CAAC;AAGxE,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/shape/functions.d.ts b/packages/core/dist/cjs/internal/ot/flocon/shape/functions.d.ts new file mode 100644 index 000000000..40236b93a --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/shape/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../generator/types'; +import { ServerTransform } from '../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/shape/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/shape/functions.d.ts.map new file mode 100644 index 000000000..2aab708ae --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/shape/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/shape/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAoC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/shape/types.d.ts b/packages/core/dist/cjs/internal/ot/flocon/shape/types.d.ts new file mode 100644 index 000000000..1a3e81c71 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/shape/types.d.ts @@ -0,0 +1,38 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + shape: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + type: z.ZodLiteral<"path">; + data: z.ZodString; + }, "strip", z.ZodTypeAny, { + type: "path"; + data: string; + }, { + type: "path"; + data: string; + }>; + }; + fill: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + stroke: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + strokeWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/flocon/shape/types.d.ts.map b/packages/core/dist/cjs/internal/ot/flocon/shape/types.d.ts.map new file mode 100644 index 000000000..da997c539 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/flocon/shape/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/shape/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/generator/functions.d.ts b/packages/core/dist/cjs/internal/ot/generator/functions.d.ts new file mode 100644 index 000000000..9f374ba74 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/generator/functions.d.ts @@ -0,0 +1,34 @@ +import { Apply, ClientTransform, Compose, Diff, DownError, Restore } from '../util/type'; +import { AnyTemplate, DownOperation, State, TwoWayOperation, UpOperation } from './types'; +export declare const $v = "$v"; +export declare const $r = "$r"; +/** TwoWayOperationをUpOperationに変換します。 */ +export declare const toUpOperation: (template: T) => (twoWayOperation: TwoWayOperation) => UpOperation; +/** TwoWayOperationをDownOperationに変換します。 */ +export declare const toDownOperation: (template: T) => (twoWayOperation: TwoWayOperation) => DownOperation; +/** StateにUpOperationを適用します。破壊的な処理は行われません。 */ +export declare const apply: (template: T) => Apply, UpOperation>; +/** StateにDownOperationを適用します。破壊的な処理は行われません。 */ +export declare const applyBack: (template: T) => Apply, DownOperation>; +/** 連続する2つのDownOperationを合成します。破壊的な処理は行われません。 */ +export declare const composeDownOperation: (template: T) => Compose, DownError>; +/** + * Stateの情報を用いて、DownOperationをTwoWayOperationに変換します。破壊的な処理は行われません。 + * @param nextState DownOperationが適用される前の状態のState。 + */ +export declare const restore: (template: T) => Restore, DownOperation, TwoWayOperation>; +/** 2つのStateオブジェクトの差分を取ります。 + * @returns 2つのオブジェクトが意味上で同一であればundefinedを返します。 + */ +export declare const diff: (template: T) => Diff, TwoWayOperation>; +/** + * ユーザーの権限を考慮せずに、通常のOperational Transformを行います。主にクライアント側で使われます。破壊的な処理は行われません。 + * + * この関数は次の2つの制約があります。 + * - `first`適用前のStateと`second`適用前のStateは等しい。 + * - このStateに対して`first`と`secondPrime`を順に適用したStateと、`second`と`firstPrime`を順に適用したStateは等しい。 + * + * Record の template の場合、state や operation に `$index` というキーのプロパティがある場合はIndexObject(配列の要素)であるとみなされ、`$index`を調整する operation が自動的に追加されることがあります。そのため、配列の要素とみなしたい場合を除いて`$index`というキーをオブジェクトに含めないようにしてください。 + */ +export declare const clientTransform: (template: T) => ClientTransform, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/generator/functions.d.ts.map b/packages/core/dist/cjs/internal/ot/generator/functions.d.ts.map new file mode 100644 index 000000000..b469cd9b3 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/generator/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/generator/functions.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAW,MAAM,cAAc,CAAC;AAClG,OAAO,EACH,WAAW,EACX,aAAa,EACb,KAAK,EACL,eAAe,EACf,WAAW,EAOd,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,EAAE,OAAO,CAAC;AACvB,eAAO,MAAM,EAAE,OAAO,CAAC;AAgBvB,yCAAyC;AACzC,eAAO,MAAM,aAAa,GACrB,CAAC,SAAS,WAAW,YAAY,CAAC,uBACjB,eAAe,CAAC,CAAC,CAAC,KAAG,WAAW,CAAC,CAAC,CAiDnD,CAAC;AAEN,2CAA2C;AAC3C,eAAO,MAAM,eAAe,GACvB,CAAC,SAAS,WAAW,YAAY,CAAC,uBACjB,eAAe,CAAC,CAAC,CAAC,KAAG,aAAa,CAAC,CAAC,CAiDrD,CAAC;AAEN,6CAA6C;AAC7C,eAAO,MAAM,KAAK,GACb,CAAC,SAAS,WAAW,YAAY,CAAC,KAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAkEnE,CAAC;AAEN,+CAA+C;AAC/C,eAAO,MAAM,SAAS,GACjB,CAAC,SAAS,WAAW,YAAY,CAAC,KAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAkErE,CAAC;AAEN,gDAAgD;AAChD,eAAO,MAAM,oBAAoB,GAC5B,CAAC,SAAS,WAAW,YAAY,CAAC,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,CAgFxE,CAAC;AAEN;;;GAGG;AACH,eAAO,MAAM,OAAO,GACf,CAAC,SAAS,WAAW,YAAY,CAAC,KAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAoF3F,CAAC;AAEN;;GAEG;AACH,eAAO,MAAM,IAAI,GACZ,CAAC,SAAS,WAAW,YAAY,CAAC,KAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAsEtE,CAAC;AAsCN;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GACvB,CAAC,SAAS,WAAW,YAAY,CAAC,KAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAkI7E,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/generator/omitVersion.d.ts b/packages/core/dist/cjs/internal/ot/generator/omitVersion.d.ts new file mode 100644 index 000000000..fc0633416 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/generator/omitVersion.d.ts @@ -0,0 +1,2 @@ +export type OmitVersion = Omit; +//# sourceMappingURL=omitVersion.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/generator/omitVersion.d.ts.map b/packages/core/dist/cjs/internal/ot/generator/omitVersion.d.ts.map new file mode 100644 index 000000000..18c802a28 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/generator/omitVersion.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"omitVersion.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/generator/omitVersion.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/generator/types.d.ts b/packages/core/dist/cjs/internal/ot/generator/types.d.ts new file mode 100644 index 000000000..cb97171ea --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/generator/types.d.ts @@ -0,0 +1,140 @@ +import { z } from 'zod'; +import * as NullableTextOperation from '../nullableTextOperation'; +import { RecordDownOperationElement, RecordTwoWayOperationElement, RecordUpOperationElement } from '../recordOperationElement'; +import * as TextOperation from '../textOperation'; +type ReadonlyRecord = { + readonly [P in TKey]: TValue; +}; +export declare const atomic = "atomic"; +export declare const replace = "replace"; +export declare const ot = "ot"; +export declare const record = "record"; +export declare const paramRecord = "paramRecord"; +export declare const object = "object"; +export type ReplaceValueTemplate = { + type: typeof atomic; + mode: typeof replace; + value: T; +}; +/** Stateならば`T`に、TwoWayOperationならば`{ oldValue:T; newValue:T }`に変換されるtemplateを作成します。*/ +export declare const createReplaceValueTemplate: (value: T) => { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: T; +}; +export type OtValueTemplate = { + type: typeof atomic; + mode: typeof ot; + nullable: boolean; + value?: undefined; +}; +/** Stateならば`string`(ただし`nullable === true`のときは代わりに`string | undefined`となます。`undefined`は`''`と同一として扱われます)に、TwoWayOperationならば変化のある部分のみを抽出したOperationに変換されるtemplateを作成します。*/ +export declare const createTextValueTemplate: (nullable: T) => { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: T; +}; +export type RecordValueTemplate = { + type: typeof record; + value: TValue; +}; +/** `Record`を表すtemplateを作成します。*/ +export declare const createRecordValueTemplate: (value: TValue) => RecordValueTemplate; +export type ParamRecordValueTemplate = { + type: typeof paramRecord; + value: TValue; + defaultState: State; +}; +/** `Record`を表すtemplateを作成します。存在しない要素はdefaultStateがセットされているとみなされます。 */ +export declare const createParamRecordValueTemplate: (value: TValue, defaultState: State) => { + readonly type: "paramRecord"; + readonly value: TValue; + readonly defaultState: State; +}; +export type ObjectValueTemplate, V extends number | undefined, R extends number | undefined> = { + type: typeof object; + $v: V; + $r: R; + value: { + readonly [P in keyof T]: T[P]; + }; +}; +/** 複数のtemplateから構成される新たなtemplateを作成します。 */ +export declare const createObjectValueTemplate: , V extends number | undefined, R extends number | undefined>(value: T, $v: V, $r: R) => { + readonly type: "object"; + readonly $v: V; + readonly $r: R; + readonly value: T; +}; +export type AnyTemplate = ReplaceValueTemplate | OtValueTemplate | { + type: typeof record; + value: AnyTemplate; +} | { + type: typeof paramRecord; + value: AnyTemplate; + defaultState: any; +} | { + type: typeof object; + $v: number | undefined; + $r: number | undefined; + value: { + readonly [P in string]: AnyTemplate; + }; +}; +type If = T extends true ? TTrue : T extends false ? TFalse : TTrue | TFalse; +type ParamRecordValueTemplateBase = { + type: typeof paramRecord; + value: TValue; +}; +export type State = T extends OtValueTemplate ? If : T extends ReplaceValueTemplate ? z.TypeOf : T extends RecordValueTemplate ? { + [P in string]?: State | undefined; +} | undefined : T extends ParamRecordValueTemplateBase ? { + [P in string]?: State | undefined; +} | undefined : T extends ObjectValueTemplate ? { + $v: UV; + $r: UR; +} & { + [P in keyof U4]: State; +} : unknown; +export declare const state: (source: T) => z.ZodType>; +export type UpOperation = T extends OtValueTemplate ? If : T extends ReplaceValueTemplate ? { + newValue: z.TypeOf; +} : T extends RecordValueTemplate ? { + [P in string]?: RecordUpOperationElement, UpOperation> | undefined; +} : T extends ParamRecordValueTemplate ? { + [P in string]?: UpOperation | undefined; +} : T extends ObjectValueTemplate ? { + $v: UV; + $r: UR; +} & { + [P in keyof U3]?: UpOperation; +} : unknown; +export declare const upOperation: (source: T) => z.ZodType>; +export type DownOperation = T extends OtValueTemplate ? If : T extends ReplaceValueTemplate ? { + oldValue: z.TypeOf; +} : T extends RecordValueTemplate ? { + [P in string]?: RecordDownOperationElement, DownOperation> | undefined; +} : T extends ParamRecordValueTemplate ? { + [P in string]?: DownOperation | undefined; +} : T extends ObjectValueTemplate ? { + $v: UV; + $r: UR; +} & { + [P in keyof U3]?: DownOperation; +} : unknown; +export declare const downOperation: (source: T) => z.ZodType>; +export type TwoWayOperation = T extends OtValueTemplate ? If : T extends ReplaceValueTemplate ? { + oldValue: z.TypeOf; + newValue: z.TypeOf; +} : T extends RecordValueTemplate ? { + [P in string]?: RecordTwoWayOperationElement, TwoWayOperation> | undefined; +} : T extends ParamRecordValueTemplate ? { + [P in string]?: TwoWayOperation | undefined; +} : T extends ObjectValueTemplate ? { + $v: UV; + $r: UR; +} & { + [P in keyof U4]?: TwoWayOperation; +} : unknown; +export {}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/generator/types.d.ts.map b/packages/core/dist/cjs/internal/ot/generator/types.d.ts.map new file mode 100644 index 000000000..947591ff7 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/generator/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/generator/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/nullableTextOperation.d.ts b/packages/core/dist/cjs/internal/ot/nullableTextOperation.d.ts new file mode 100644 index 000000000..3ecdae367 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/nullableTextOperation.d.ts @@ -0,0 +1,203 @@ +import * as TextOperationCore from '@kizahasi/ot-core'; +import { NonEmptyString } from '@kizahasi/ot-string'; +import { Result } from '@kizahasi/result'; +import { z } from 'zod'; +import { replace, update } from './recordOperationElement'; +import * as TextOperation from './textOperation'; +type ApplyError = TextOperationCore.ApplyError; +type ComposeAndTransformUpError = TextOperationCore.ComposeAndTransformError; +type ComposeAndTransformDownError = TextOperationCore.ComposeAndTransformError; +type ComposeAndTransformTwoWayError = TextOperationCore.ComposeAndTransformError; +export declare const downOperation: z.ZodUnion<[z.ZodObject<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + oldValue: z.ZodUnion<[z.ZodString, z.ZodUndefined]>; + }, "strip", z.ZodTypeAny, { + oldValue?: string | undefined; + }, { + oldValue?: string | undefined; + }>; +}, "strip", z.ZodTypeAny, { + type: "replace"; + replace: { + oldValue?: string | undefined; + }; +}, { + type: "replace"; + replace: { + oldValue?: string | undefined; + }; +}>, z.ZodObject<{ + type: z.ZodLiteral<"update">; + update: z.ZodArray; + r: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + t: "r"; + r: number; + }, { + t: "r"; + r: number; + }>, z.ZodObject<{ + t: z.ZodLiteral<"i">; + i: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + t: "i"; + i: number; + }, { + t: "i"; + i: number; + }>, z.ZodObject<{ + t: z.ZodLiteral<"d">; + d: z.ZodString; + }, "strip", z.ZodTypeAny, { + t: "d"; + d: string; + }, { + t: "d"; + d: string; + }>]>, "many">; +}, "strip", z.ZodTypeAny, { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: number; + } | { + t: "d"; + d: string; + })[]; +}, { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: number; + } | { + t: "d"; + d: string; + })[]; +}>]>; +export type DownOperation = z.TypeOf; +export declare const upOperation: z.ZodUnion<[z.ZodObject<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + newValue: z.ZodUnion<[z.ZodString, z.ZodUndefined]>; + }, "strip", z.ZodTypeAny, { + newValue?: string | undefined; + }, { + newValue?: string | undefined; + }>; +}, "strip", z.ZodTypeAny, { + type: "replace"; + replace: { + newValue?: string | undefined; + }; +}, { + type: "replace"; + replace: { + newValue?: string | undefined; + }; +}>, z.ZodObject<{ + type: z.ZodLiteral<"update">; + update: z.ZodArray; + r: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + t: "r"; + r: number; + }, { + t: "r"; + r: number; + }>, z.ZodObject<{ + t: z.ZodLiteral<"i">; + i: z.ZodString; + }, "strip", z.ZodTypeAny, { + t: "i"; + i: string; + }, { + t: "i"; + i: string; + }>, z.ZodObject<{ + t: z.ZodLiteral<"d">; + d: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + t: "d"; + d: number; + }, { + t: "d"; + d: number; + }>]>, "many">; +}, "strip", z.ZodTypeAny, { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; +}, { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; +}>]>; +export type UpOperation = z.TypeOf; +export type TwoWayOperation = { + type: typeof replace; + replace: { + oldValue: string; + newValue: undefined; + } | { + oldValue: undefined; + newValue: string; + }; +} | { + type: typeof update; + update: TextOperation.TwoWayOperation; +}; +export declare const toUpOperation: (source: TwoWayOperation) => UpOperation; +export declare const toDownOperation: (source: TwoWayOperation) => DownOperation; +export declare const apply: (state: string | undefined, action: UpOperation | TwoWayOperation) => import("@kizahasi/result").Error | import("@kizahasi/result").Error> | import("@kizahasi/result").Ok; +export declare const applyBack: (state: string | undefined, action: DownOperation) => import("@kizahasi/result").Error | import("@kizahasi/result").Error> | import("@kizahasi/result").Ok; +export declare const composeDownOperation: (first: DownOperation | undefined, second: DownOperation | undefined) => Result; +export declare const diff: ({ prev, next, }: { + prev: string | undefined; + next: string | undefined; +}) => TwoWayOperation | undefined; +export declare const restore: ({ nextState, downOperation, }: { + nextState: string | undefined; + downOperation: DownOperation | undefined; +}) => Result<{ + prevState: string | undefined; + twoWayOperation: TwoWayOperation | undefined; +}, string | ApplyError>; +export declare const serverTransform: ({ first, second, prevState, }: { + first?: TwoWayOperation; + second?: UpOperation; + prevState: string | undefined; +}) => Result; +export declare const clientTransform: ({ first, second, }: { + first: UpOperation | undefined; + second: UpOperation | undefined; +}) => Result<{ + firstPrime?: UpOperation; + secondPrime?: UpOperation; +}, string | ComposeAndTransformDownError>; +export {}; +//# sourceMappingURL=nullableTextOperation.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/nullableTextOperation.d.ts.map b/packages/core/dist/cjs/internal/ot/nullableTextOperation.d.ts.map new file mode 100644 index 000000000..31d441def --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/nullableTextOperation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"nullableTextOperation.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/nullableTextOperation.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/otError.d.ts b/packages/core/dist/cjs/internal/ot/otError.d.ts new file mode 100644 index 000000000..2707b8506 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/otError.d.ts @@ -0,0 +1,9 @@ +import { DownError, ScalarError, TwoWayError, UpError } from './util/type'; +type OtErrorParam = Exclude; +export declare class OtError extends Error { + readonly otError: OtErrorParam; + constructor(content: OtErrorParam); +} +export declare const toOtError: (content: OtErrorParam | string) => Error; +export {}; +//# sourceMappingURL=otError.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/otError.d.ts.map b/packages/core/dist/cjs/internal/ot/otError.d.ts.map new file mode 100644 index 000000000..97f378e75 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/otError.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"otError.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/otError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3E,KAAK,YAAY,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,EAAE,MAAM,CAAC,CAAC;AAErF,qBAAa,OAAQ,SAAQ,KAAK;IAC9B,SAAgB,OAAO,EAAE,YAAY,CAAC;gBAC1B,OAAO,EAAE,YAAY;CAOpC;AAED,eAAO,MAAM,SAAS,YAAa,YAAY,GAAG,MAAM,KAAG,KAK1D,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/paramRecordOperation.d.ts b/packages/core/dist/cjs/internal/ot/paramRecordOperation.d.ts new file mode 100644 index 000000000..d32ccef78 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/paramRecordOperation.d.ts @@ -0,0 +1,86 @@ +import { Result } from '@kizahasi/result'; +import { StringKeyRecord } from './record'; +import * as RecordOperation from './recordOperation'; +type RestoreResult = { + prevState: TState; + twoWayOperation: TTwoWayOperation | undefined; +}; +export type ProtectedTransformParameters = RecordOperation.ProtectedTransformParameters; +export declare const restore: ({ nextState: unsafeNextState, downOperation: unsafeDownOperation, innerRestore, }: { + nextState: StringKeyRecord; + downOperation?: StringKeyRecord; + innerRestore: (params: { + downOperation: TDownOperation; + nextState: TState; + key: string; + }) => Result | undefined, string | TCustomError>; +}) => Result, StringKeyRecord>, string | TCustomError>; +export declare const apply: ({ prevState: unsafePrevState, operation, innerApply, defaultState, }: { + prevState: StringKeyRecord; + operation?: StringKeyRecord; + innerApply: (params: { + operation: TUpOperation; + prevState: TState; + key: string; + }) => Result; + defaultState: TState; +}) => Result, string | TCustomError>; +export declare const applyBack: ({ nextState: unsafeNextState, operation, innerApplyBack, defaultState, }: { + nextState: StringKeyRecord; + operation?: StringKeyRecord; + innerApplyBack: (params: { + operation: TDownOperation; + nextState: TState; + key: string; + }) => Result; + defaultState: TState; +}) => Result, string | TCustomError>; +export declare const compose: ({ first, second, innerCompose, }: { + first?: StringKeyRecord; + second?: StringKeyRecord; + innerCompose: (params: { + key: string; + first: TOperation; + second: TOperation; + }) => Result; +}) => Result | undefined, string | TCustomError>; +/** Make sure `apply(stateBeforeFirst, first) = stateAfterFirst` */ +export declare const serverTransform: ({ first: unsafeFirst, second: unsafeSecond, stateBeforeFirst: unsafeStateBeforeFirst, stateAfterFirst: unsafeStateAfterFirst, innerTransform, defaultState, }: { + stateBeforeFirst: StringKeyRecord; + stateAfterFirst: StringKeyRecord; + first?: StringKeyRecord; + second?: StringKeyRecord; + innerTransform: (params: ProtectedTransformParameters & { + key: string; + }) => Result; + defaultState: TServerState; +}) => Result | undefined, string | TCustomError>; +type InnerClientTransform = (params: { + state: TState; + first: TOperation; + second: TOperation; +}) => Result<{ + firstPrime: TOperation | undefined; + secondPrime: TOperation | undefined; +}, TError>; +export declare const clientTransform: ({ state, first, second, innerTransform, defaultState, }: { + state: StringKeyRecord; + first?: StringKeyRecord; + second?: StringKeyRecord; + innerTransform: InnerClientTransform; + defaultState: TState; +}) => Result<{ + firstPrime: StringKeyRecord | undefined; + secondPrime: StringKeyRecord | undefined; +}, TError>; +export declare const diff: ({ prevState, nextState, innerDiff, }: { + prevState: StringKeyRecord; + nextState: StringKeyRecord; + innerDiff: (params: { + prevState: TState | undefined; + nextState: TState | undefined; + key: string; + }) => TOperation | undefined; +}) => StringKeyRecord | undefined; +export {}; +//# sourceMappingURL=paramRecordOperation.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/paramRecordOperation.d.ts.map b/packages/core/dist/cjs/internal/ot/paramRecordOperation.d.ts.map new file mode 100644 index 000000000..a2ab487cd --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/paramRecordOperation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"paramRecordOperation.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/paramRecordOperation.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/record.d.ts b/packages/core/dist/cjs/internal/ot/record.d.ts new file mode 100644 index 000000000..f0739f80c --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/record.d.ts @@ -0,0 +1,6 @@ +import { z } from 'zod'; +export declare const isEmptyRecord: (source: Record) => boolean; +export declare const isIdRecord: (source: Record) => boolean; +export declare const record: (value: Value) => z.ZodRecord>; +export type StringKeyRecord = Record; +//# sourceMappingURL=record.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/record.d.ts.map b/packages/core/dist/cjs/internal/ot/record.d.ts.map new file mode 100644 index 000000000..90c292bed --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/record.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa,WAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAQ/D,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAW5D,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,SAAS,CAAC,CAAC,UAAU,SAAS,KAAK,mDAA+B,CAAC;AAE/F,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/recordOperation.d.ts b/packages/core/dist/cjs/internal/ot/recordOperation.d.ts new file mode 100644 index 000000000..413c9d5e0 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/recordOperation.d.ts @@ -0,0 +1,208 @@ +import { Result } from '@kizahasi/result'; +import { StringKeyRecord } from './record'; +import { RecordDownOperationElement, RecordTwoWayOperationElement, RecordUpOperationElement, replace, update } from './recordOperationElement'; +type RecordOperationElement = { + type: typeof update; + update: TUpdate; +} | { + type: typeof replace; + replace: TReplace; +}; +type RecordOperation = Record | undefined>; +export type RecordDownOperation = Record | undefined>; +export type RecordUpOperation = Record | undefined>; +export type RecordTwoWayOperation = Record | undefined>; +type RestoreResult = { + prevState: TState; + twoWayOperation: TTwoWayOperation | undefined; +}; +export type ProtectedTransformParameters = { + first?: TFirstOperation; + second: TSecondOperation; + prevState: TServerState; + nextState: TServerState; +}; +/** + * trueを返すと、「TServerState全体がprivateであり編集不可能」とみなしてスキップします。ただし制限されるのはtransformのみであるため、読み取りなどは制限されません。 + * + * 「ユーザーがprivateだと思っていたらその後すぐ変更があってprivateになった」というケースがあるので、trueでもエラーは返さず処理が続行されます。 + * + * 関数ではなくundefinedを渡した場合、常にfalseを返す関数が渡されたときと同等の処理が行われます。 + */ +export type CancellationPolicy = { + cancelRemove?: (params: { + key: TKey; + state: TServerState; + }) => boolean; + cancelUpdate?: (params: { + key: TKey; + prevState: TServerState; + nextState: TServerState; + }) => boolean; + cancelCreate?: (params: { + key: TKey; + newState: TServerState; + }) => boolean; +}; +/** Make sure `apply(prevState, source) = nextState` */ +export declare const toClientState: ({ serverState, isPrivate, toClientState, }: { + serverState: StringKeyRecord | undefined; + isPrivate: (state: TSourceState, key: string) => boolean; + toClientState: (params: { + state: TSourceState; + key: string; + }) => TClientState; +}) => Record | undefined; +export declare const restore: ({ nextState, downOperation, innerRestore, innerDiff, }: { + nextState: StringKeyRecord; + downOperation?: StringKeyRecord>; + innerRestore: (params: { + key: string; + downOperation: TDownOperation; + nextState: TState; + }) => Result, string | TCustomError>; + innerDiff: (params: { + key: string; + prevState: TState; + nextState: TState; + }) => TTwoWayOperation | undefined; +}) => Result, RecordTwoWayOperation>, string | TCustomError>; +export declare const apply: ({ prevState, operation, innerApply, }: { + prevState: StringKeyRecord; + operation?: StringKeyRecord>; + innerApply: (params: { + key: string; + operation: TOperation; + prevState: TState; + }) => Result; +}) => Result, string | TCustomError>; +export declare const applyBack: ({ nextState, operation, innerApplyBack, }: { + nextState: StringKeyRecord; + operation?: StringKeyRecord>; + innerApplyBack: (params: { + key: string; + operation: TDownOperation; + state: TState; + }) => Result; +}) => Result, string | TCustomError>; +export declare const compose: ({ first, second, composeReplaceReplace, composeReplaceUpdate, composeUpdateReplace, composeUpdateUpdate, }: { + first?: RecordOperation; + second?: RecordOperation; + composeReplaceReplace: (params: { + first: TReplace; + second: TReplace; + key: string; + }) => Result; + composeReplaceUpdate: (params: { + first: TReplace; + second: TUpdate; + key: string; + }) => Result; + composeUpdateReplace: (params: { + first: TUpdate; + second: TReplace; + key: string; + }) => Result; + composeUpdateUpdate: (params: { + first: TUpdate; + second: TUpdate; + key: string; + }) => Result; +}) => Result | undefined, TError>; +export declare const composeDownOperation: ({ first, second, innerApplyBack, innerCompose, }: { + first?: RecordDownOperation; + second?: RecordDownOperation; + innerApplyBack: (params: { + key: string; + operation: TDownOperation; + state: TState; + }) => Result; + innerCompose: (params: { + key: string; + first: TDownOperation; + second: TDownOperation; + }) => Result; +}) => Result | undefined, string | TCustomError>; +type ServerTransformCoreParams = { + stateBeforeFirst: StringKeyRecord; + stateAfterFirst: StringKeyRecord; + first?: RecordUpOperation; + second?: RecordUpOperation; + /** `TClientState` を `TServerState` に変換します。`create` される値の変換を行っても構いません。 */ + toServerState: (state: TClientState, key: string) => TServerState; + innerTransform: (params: ProtectedTransformParameters & { + key: string; + }) => Result; + cancellationPolicy: CancellationPolicy; +}; +export type ServerTransformParams = ServerTransformCoreParams & { + /** 制限を設けることができます。指定した制限を満たさない場合は Result.error が返されます。 */ + validation?: { + /** このRecordの名前です。エラーメッセージを生成する際に用いられます。 */ + recordName: string; + /** Record の要素の数の最大値。要素の追加後に、要素の数がこれを超える場合はエラーとなります。追加以外の操作では無視されます。 */ + maxRecordLength?: number; + }; +}; +/** Make sure `apply(stateBeforeFirst, first) = stateAfterFirst` */ +export declare const serverTransform: (params: ServerTransformParams) => Result | undefined, string | TCustomError>; +type InnerClientTransform = (params: { + state: TState; + first: TFirstOperation; + second: TSecondOperation; +}) => Result<{ + firstPrime: TFirstOperation | undefined; + secondPrime: TSecondOperation | undefined; +}, TError>; +type Diff = (params: { + prevState: TState; + nextState: TState; +}) => TOperation | undefined; +export declare const clientTransform: ({ state, first, second, innerTransform, innerDiff, }: { + state: StringKeyRecord; + first?: RecordUpOperation; + second?: RecordUpOperation; + innerTransform: InnerClientTransform; + innerDiff: Diff; +}) => Result<{ + firstPrime: RecordUpOperation | undefined; + secondPrime: RecordUpOperation | undefined; +}, string | TCustomError>; +export declare const diff: ({ prevState, nextState, innerDiff, }: { + prevState: StringKeyRecord; + nextState: StringKeyRecord; + innerDiff: (params: { + key: string; + prevState: TState; + nextState: TState; + }) => TOperation | undefined; +}) => Record> | undefined; +export declare const mapRecordUpOperation: ({ source, mapState, mapOperation, }: { + source: Record | undefined>; + mapState: (state: TState1) => TState2; + mapOperation: (operation: TOperation1) => TOperation2; +}) => Record>; +export declare const mapRecordDownOperation: ({ source, mapState, mapOperation, }: { + source: Record | undefined>; + mapState: (state: TState1) => TState2; + mapOperation: (operation: TOperation1) => TOperation2; +}) => Record>; +export declare const mapRecordOperation: ({ source, mapReplace, mapUpdate, }: { + source: Record; + mapReplace: (state: TReplace1) => TReplace2; + mapUpdate: (state: TUpdate1) => TUpdate2; +}) => Record; +export {}; +//# sourceMappingURL=recordOperation.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/recordOperation.d.ts.map b/packages/core/dist/cjs/internal/ot/recordOperation.d.ts.map new file mode 100644 index 000000000..0634f3b78 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/recordOperation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"recordOperation.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/recordOperation.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/recordOperationElement.d.ts b/packages/core/dist/cjs/internal/ot/recordOperationElement.d.ts new file mode 100644 index 000000000..5f3050271 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/recordOperationElement.d.ts @@ -0,0 +1,214 @@ +import { z } from 'zod'; +export declare const update = "update"; +export declare const replace = "replace"; +export declare const recordDownOperationElementFactory: (state: TState, operation: TOperation) => z.ZodUnion<[z.ZodObject<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + oldValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }>[k_1]; } : never>; +}, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks; + replace: z.ZodObject<{ + oldValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }>[k_1]; } : never>; +}>, any>]: z.objectUtil.addQuestionMarks; + replace: z.ZodObject<{ + oldValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }>[k_1]; } : never>; +}>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + oldValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }>[k_1]; } : never>; +}>]: z.baseObjectInputType<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + oldValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }>[k_1]; } : never>; +}>[k_1_1]; }>, z.ZodObject<{ + type: z.ZodLiteral<"update">; + update: TOperation; +}, "strip", z.ZodTypeAny, { [k_3 in keyof z.objectUtil.addQuestionMarks; + update: TOperation; +}>, any>]: z.objectUtil.addQuestionMarks; + update: TOperation; +}>, any>[k_3]; }, { [k_1_2 in keyof z.baseObjectInputType<{ + type: z.ZodLiteral<"update">; + update: TOperation; +}>]: z.baseObjectInputType<{ + type: z.ZodLiteral<"update">; + update: TOperation; +}>[k_1_2]; }>]>; +export type RecordDownOperationElement = { + type: typeof replace; + replace: { + oldValue?: TState; + }; +} | { + type: typeof update; + update: TOperation; +}; +export declare const recordUpOperationElementFactory: (state: TState, operation: TOperation) => z.ZodUnion<[z.ZodObject<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + newValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + newValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + newValue: z.ZodOptional; + }>[k_1]; } : never>; +}, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks; + replace: z.ZodObject<{ + newValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + newValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + newValue: z.ZodOptional; + }>[k_1]; } : never>; +}>, any>]: z.objectUtil.addQuestionMarks; + replace: z.ZodObject<{ + newValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + newValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + newValue: z.ZodOptional; + }>[k_1]; } : never>; +}>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + newValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + newValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + newValue: z.ZodOptional; + }>[k_1]; } : never>; +}>]: z.baseObjectInputType<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + newValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + newValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + newValue: z.ZodOptional; + }>[k_1]; } : never>; +}>[k_1_1]; }>, z.ZodObject<{ + type: z.ZodLiteral<"update">; + update: TOperation; +}, "strip", z.ZodTypeAny, { [k_3 in keyof z.objectUtil.addQuestionMarks; + update: TOperation; +}>, any>]: z.objectUtil.addQuestionMarks; + update: TOperation; +}>, any>[k_3]; }, { [k_1_2 in keyof z.baseObjectInputType<{ + type: z.ZodLiteral<"update">; + update: TOperation; +}>]: z.baseObjectInputType<{ + type: z.ZodLiteral<"update">; + update: TOperation; +}>[k_1_2]; }>]>; +export type RecordUpOperationElement = { + type: typeof replace; + replace: { + newValue?: TState; + }; +} | { + type: typeof update; + update: TOperation; +}; +export type RecordTwoWayOperationElement = { + type: typeof replace; + replace: { + oldValue?: TState; + newValue?: TState; + }; +} | { + type: typeof update; + update: TOperation; +}; +/** + * @deprecated Consider using map(DualKey)?Record(Up|Down)?Operation + */ +export declare const mapRecordOperationElement: ({ source, mapOperation, mapReplace, }: { + source: { + type: typeof replace; + replace: TReplace1; + } | { + type: typeof update; + update: TUpdate1; + }; + mapReplace: (replace: TReplace1) => TReplace2; + mapOperation: (operation: TUpdate1) => TUpdate2; +}) => { + type: typeof replace; + replace: TReplace2; +} | { + type: typeof update; + update: TUpdate2; +}; +//# sourceMappingURL=recordOperationElement.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/recordOperationElement.d.ts.map b/packages/core/dist/cjs/internal/ot/recordOperationElement.d.ts.map new file mode 100644 index 000000000..1a17b0582 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/recordOperationElement.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"recordOperationElement.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/recordOperationElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,eAAO,MAAM,iCAAiC,GAC1C,MAAM,SAAS,CAAC,CAAC,UAAU,EAC3B,UAAU,SAAS,CAAC,CAAC,UAAU,SAExB,MAAM,aACF,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAenB,CAAC;AAEP,MAAM,MAAM,0BAA0B,CAAC,MAAM,EAAE,UAAU,IACnD;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;IACrB,OAAO,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;CACtB,CAAC;AAER,eAAO,MAAM,+BAA+B,GACxC,MAAM,SAAS,CAAC,CAAC,UAAU,EAC3B,UAAU,SAAS,CAAC,CAAC,UAAU,SAExB,MAAM,aACF,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAenB,CAAC;AAEP,MAAM,MAAM,wBAAwB,CAAC,MAAM,EAAE,UAAU,IACjD;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;IACrB,OAAO,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;CACtB,CAAC;AAER,MAAM,MAAM,4BAA4B,CAAC,MAAM,EAAE,UAAU,IACrD;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;IACrB,OAAO,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;CACtB,CAAC;AAER;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,yCAI/E;IACC,MAAM,EACA;QACI,IAAI,EAAE,OAAO,OAAO,CAAC;QACrB,OAAO,EAAE,SAAS,CAAC;KACtB,GACD;QACI,IAAI,EAAE,OAAO,MAAM,CAAC;QACpB,MAAM,EAAE,QAAQ,CAAC;KACpB,CAAC;IACR,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC;IAC9C,YAAY,EAAE,CAAC,SAAS,EAAE,QAAQ,KAAK,QAAQ,CAAC;CACnD,KACK;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;CACtB,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,CAAC;CAY1B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/requestedBy.d.ts b/packages/core/dist/cjs/internal/ot/requestedBy.d.ts new file mode 100644 index 000000000..687e45c16 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/requestedBy.d.ts @@ -0,0 +1,65 @@ +import * as Room from './flocon/room/types'; +import { State } from './generator/types'; +/** 全てのStateに完全にアクセスできる。*/ +export declare const admin = "admin"; +/** userUidに基づき、一部のStateへのアクセスを制限する。*/ +export declare const client = "client"; +/** アクセス制限のあるStateへのアクセスを全て制限する。*/ +export declare const restrict = "restrict"; +export type RequestedBy = { + type: typeof admin; +} | { + type: typeof client; + userUid: string; +} | { + type: typeof restrict; +}; +export declare const anyValue: { + readonly type: "anyValue"; +}; +export declare const none: { + readonly type: "none"; +}; +export declare const isAuthorized: ({ requestedBy, participantId, }: { + requestedBy: RequestedBy; + participantId: string | typeof anyValue | typeof none; +}) => boolean; +/** @deprecated Use `isAuthorized` instead. */ +export declare const isOwner: ({ requestedBy, ownerParticipantId, }: { + requestedBy: RequestedBy; + ownerParticipantId: string | typeof anyValue | typeof none; +}) => boolean; +export declare const isBoardOwner: ({ boardId, requestedBy, currentRoomState, }: { + boardId: string; + requestedBy: RequestedBy; + currentRoomState: State; +}) => boolean; +export declare const isBoardVisible: ({ boardId, requestedBy, currentRoomState, }: { + boardId: string; + requestedBy: RequestedBy; + currentRoomState: State; +}) => boolean; +export declare const characterNotFound = "characterNotFound"; +export declare const isCharacterOwner: ({ requestedBy, characterId, currentRoomState, }: { + requestedBy: RequestedBy; + characterId: string | typeof anyValue | typeof none; + currentRoomState: State; +}) => boolean | typeof characterNotFound; +export declare const canChangeCharacterValue: (args: Parameters[0]) => boolean; +type CurrentOwnerParticipant = string | undefined | { + ownerParticipantId: string | undefined; +}; +export declare const canChangeOwnerParticipantId: ({ requestedBy, currentOwnerParticipant, }: { + requestedBy: RequestedBy; + currentOwnerParticipant: CurrentOwnerParticipant; +}) => boolean; +type CurrentOwnerCharacter = string | undefined | { + ownerCharacterId: string | undefined; +}; +export declare const canChangeOwnerCharacterId: ({ requestedBy, currentOwnerCharacter, currentRoomState, }: { + requestedBy: RequestedBy; + currentOwnerCharacter: CurrentOwnerCharacter; + currentRoomState: State; +}) => boolean; +export {}; +//# sourceMappingURL=requestedBy.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/requestedBy.d.ts.map b/packages/core/dist/cjs/internal/ot/requestedBy.d.ts.map new file mode 100644 index 000000000..eb3216340 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/requestedBy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"requestedBy.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/requestedBy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,0BAA0B;AAC1B,eAAO,MAAM,KAAK,UAAU,CAAC;AAE7B,sCAAsC;AACtC,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,kCAAkC;AAClC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,MAAM,MAAM,WAAW,GACjB;IACI,IAAI,EAAE,OAAO,KAAK,CAAC;CACtB,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB,GACD;IACI,IAAI,EAAE,OAAO,QAAQ,CAAC;CACzB,CAAC;AAER,eAAO,MAAM,QAAQ;;CAAgC,CAAC;AACtD,eAAO,MAAM,IAAI;;CAA4B,CAAC;AAE9C,eAAO,MAAM,YAAY,oCAGtB;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,OAAO,QAAQ,GAAG,OAAO,IAAI,CAAC;CACzD,KAAG,OAWH,CAAC;AAEF,8CAA8C;AAE9C,eAAO,MAAM,OAAO,yCAGjB;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB,EAAE,MAAM,GAAG,OAAO,QAAQ,GAAG,OAAO,IAAI,CAAC;CAC9D,KAAG,OAEH,CAAC;AAEF,eAAO,MAAM,YAAY,gDAItB;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;CACjD,KAAG,OAkBH,CAAC;AAEF,eAAO,MAAM,cAAc,gDAIxB;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;CACjD,KAAG,OAKH,CAAC;AAEF,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,eAAO,MAAM,gBAAgB,oDAI1B;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,OAAO,QAAQ,GAAG,OAAO,IAAI,CAAC;IACpD,gBAAgB,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;CACjD,KAAG,OAAO,GAAG,OAAO,iBAqBpB,CAAC;AAEF,eAAO,MAAM,uBAAuB,SAAU,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAG,OAEtF,CAAC;AAEF,KAAK,uBAAuB,GAEtB,MAAM,GACN,SAAS,GAET;IACI,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C,CAAC;AAER,eAAO,MAAM,2BAA2B,8CAGrC;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,uBAAuB,EAAE,uBAAuB,CAAC;CACpD,KAAG,OAWH,CAAC;AAEF,KAAK,qBAAqB,GAEpB,MAAM,GACN,SAAS,GAET;IACI,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC,CAAC;AAER,eAAO,MAAM,yBAAyB,8DAInC;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,gBAAgB,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;CACjD,KAAG,OAeH,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/shape.d.ts b/packages/core/dist/cjs/internal/ot/shape.d.ts new file mode 100644 index 000000000..516df9626 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/shape.d.ts @@ -0,0 +1,13 @@ +import { z } from 'zod'; +export declare const path = "path"; +export declare const shape: z.ZodObject<{ + type: z.ZodLiteral<"path">; + data: z.ZodString; +}, "strip", z.ZodTypeAny, { + type: "path"; + data: string; +}, { + type: "path"; + data: string; +}>; +//# sourceMappingURL=shape.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/shape.d.ts.map b/packages/core/dist/cjs/internal/ot/shape.d.ts.map new file mode 100644 index 000000000..048f7a752 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/shape.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,IAAI,SAAS,CAAC;AAS3B,eAAO,MAAM,KAAK;;;;;;;;;EAAQ,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/textOperation.d.ts b/packages/core/dist/cjs/internal/ot/textOperation.d.ts new file mode 100644 index 000000000..7360615a2 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/textOperation.d.ts @@ -0,0 +1,130 @@ +import { ComposeAndTransformError, PositiveInt } from '@kizahasi/ot-core'; +import { NonEmptyString } from '@kizahasi/ot-string'; +import { Result } from '@kizahasi/result'; +import { z } from 'zod'; +declare const r = "r"; +declare const i = "i"; +declare const d = "d"; +export declare const downOperation: z.ZodArray; + r: z.ZodNumber; +}, "strip", z.ZodTypeAny, { + t: "r"; + r: number; +}, { + t: "r"; + r: number; +}>, z.ZodObject<{ + t: z.ZodLiteral<"i">; + i: z.ZodNumber; +}, "strip", z.ZodTypeAny, { + t: "i"; + i: number; +}, { + t: "i"; + i: number; +}>, z.ZodObject<{ + t: z.ZodLiteral<"d">; + d: z.ZodString; +}, "strip", z.ZodTypeAny, { + t: "d"; + d: string; +}, { + t: "d"; + d: string; +}>]>, "many">; +export type DownOperation = z.TypeOf; +export declare const upOperation: z.ZodArray; + r: z.ZodNumber; +}, "strip", z.ZodTypeAny, { + t: "r"; + r: number; +}, { + t: "r"; + r: number; +}>, z.ZodObject<{ + t: z.ZodLiteral<"i">; + i: z.ZodString; +}, "strip", z.ZodTypeAny, { + t: "i"; + i: string; +}, { + t: "i"; + i: string; +}>, z.ZodObject<{ + t: z.ZodLiteral<"d">; + d: z.ZodNumber; +}, "strip", z.ZodTypeAny, { + t: "d"; + d: number; +}, { + t: "d"; + d: number; +}>]>, "many">; +export type UpOperation = z.TypeOf; +export type TwoWayOperation = ({ + t: typeof r; + r: number; +} | { + t: typeof i; + i: string; +} | { + t: typeof d; + d: string; +})[]; +export declare const apply: (state: string, action: UpOperation | TwoWayOperation) => Result>; +export declare const applyBack: (state: string, action: DownOperation) => Result>; +export declare const composeUpOperation: (first: UpOperation | undefined, second: UpOperation | undefined) => Result>; +export declare const composeDownOperation: (first: DownOperation | undefined, second: DownOperation | undefined) => Result>; +export declare const restore: ({ nextState, downOperation, }: { + nextState: string; + downOperation: DownOperation | undefined; +}) => import("@kizahasi/result").Error> | import("@kizahasi/result").Ok<{ + prevState: string; + twoWayOperation: undefined; +}> | import("@kizahasi/result").Ok<{ + prevState: string; + twoWayOperation: import("@kizahasi/ot-string").TwoWayOperationUnit[]; +}>; +export declare const serverTransform: ({ first, second, prevState, }: { + first?: TwoWayOperation; + second?: UpOperation; + prevState: string; +}) => import("@kizahasi/result").Error> | import("@kizahasi/result").Error> | import("@kizahasi/result").Ok; +export declare const clientTransform: ({ first, second, }: { + first?: UpOperation; + second?: UpOperation; +}) => import("@kizahasi/result").Error> | import("@kizahasi/result").Ok<{ + firstPrime: undefined; + secondPrime: undefined; +}> | import("@kizahasi/result").Ok<{ + firstPrime: undefined; + secondPrime: import("@kizahasi/ot-string").UpOperationUnit[]; +}> | import("@kizahasi/result").Ok<{ + firstPrime: import("@kizahasi/ot-string").UpOperationUnit[]; + secondPrime: undefined; +}> | import("@kizahasi/result").Ok<{ + firstPrime: import("@kizahasi/ot-string").UpOperationUnit[]; + secondPrime: import("@kizahasi/ot-string").UpOperationUnit[]; +}>; +export declare const diff: ({ prev, next, }: { + prev: string; + next: string; +}) => TwoWayOperation | undefined; +export declare const toUpOperation: (source: TwoWayOperation) => UpOperation; +export declare const toDownOperation: (source: TwoWayOperation) => DownOperation; +export declare const toPrivateClientOperation: ({ oldValue, newValue, diff, isAuthorized, }: { + oldValue: { + isValuePrivate: boolean; + value: string; + }; + newValue: { + isValuePrivate: boolean; + value: string; + }; + diff: TwoWayOperation | undefined; + isAuthorized: boolean; +}) => UpOperation | undefined; +export {}; +//# sourceMappingURL=textOperation.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/textOperation.d.ts.map b/packages/core/dist/cjs/internal/ot/textOperation.d.ts.map new file mode 100644 index 000000000..6ee5d4b4a --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/textOperation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"textOperation.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/textOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACH,cAAc,EAkBjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,CAAC,MAAM,CAAC;AACd,QAAA,MAAM,CAAC,MAAM,CAAC;AACd,QAAA,MAAM,CAAC,MAAM,CAAC;AAiBd,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;aAA6B,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAiB3D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;aAA2B,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,CACxB;IACI,CAAC,EAAE,OAAO,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;CACb,GACD;IACI,CAAC,EAAE,OAAO,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;CACb,GACD;IACI,CAAC,EAAE,OAAO,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;CACb,CACN,EAAE,CAAC;AAEJ,eAAO,MAAM,KAAK,UAAW,MAAM,UAAU,WAAW,GAAG,eAAe,wFASzE,CAAC;AAEF,eAAO,MAAM,SAAS,UAAW,MAAM,UAAU,aAAa,wFAS7D,CAAC;AAEF,eAAO,MAAM,kBAAkB,UACpB,WAAW,GAAG,SAAS,UACtB,WAAW,GAAG,SAAS,KAChC,MAAM,CAAC,WAAW,GAAG,SAAS,EAAE,wBAAwB,CAAC,cAAc,EAAE,WAAW,CAAC,CAiBvF,CAAC;AAEF,eAAO,MAAM,oBAAoB,UACtB,aAAa,GAAG,SAAS,UACxB,aAAa,GAAG,SAAS,KAClC,MAAM,CAAC,aAAa,GAAG,SAAS,EAAE,wBAAwB,CAAC,WAAW,EAAE,cAAc,CAAC,CAiBzF,CAAC;AAEF,eAAO,MAAM,OAAO,kCAGjB;IACC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;CAC5C;;;;;;EAoBA,CAAC;AA4DF,eAAO,MAAM,eAAe,kCAIzB;IACC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB,wSAMA,CAAC;AAEF,eAAO,MAAM,eAAe,uBAGzB;IACC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;EAiCA,CAAC;AAEF,eAAO,MAAM,IAAI,oBAGd;IACC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,KAAG,eAAe,GAAG,SAUrB,CAAC;AAoBF,eAAO,MAAM,aAAa,WAAY,eAAe,KAAG,WAOvD,CAAC;AAEF,eAAO,MAAM,eAAe,WAAY,eAAe,KAAG,aAOzD,CAAC;AAIF,eAAO,MAAM,wBAAwB,gDAKlC;IACC,QAAQ,EAAE;QACN,cAAc,EAAE,OAAO,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE;QACN,cAAc,EAAE,OAAO,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;IAClC,YAAY,EAAE,OAAO,CAAC;CACzB,KAAG,WAAW,GAAG,SAcjB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/util/array/arrayDiff.d.ts b/packages/core/dist/cjs/internal/ot/util/array/arrayDiff.d.ts new file mode 100644 index 000000000..ec18985da --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/util/array/arrayDiff.d.ts @@ -0,0 +1,12 @@ +import { ReadonlyNonEmptyArray } from '@flocon-trpg/utils'; +export declare const arrayDiff: ({ prev, next, getKey, }: { + prev: readonly T[]; + next: readonly T[]; + /** 要素の等価比較に用いられるキーを生成するための関数。 */ + getKey: (x: T) => TKey; +}) => { + value: import("@kizahasi/ot-core").Operation, ReadonlyNonEmptyArray>; + iterate: () => IterableIterator, ReadonlyNonEmptyArray>>; + toUnits: () => IterableIterator, ReadonlyNonEmptyArray>>; +}; +//# sourceMappingURL=arrayDiff.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/util/array/arrayDiff.d.ts.map b/packages/core/dist/cjs/internal/ot/util/array/arrayDiff.d.ts.map new file mode 100644 index 000000000..59d76ce45 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/util/array/arrayDiff.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"arrayDiff.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/util/array/arrayDiff.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EAKxB,MAAM,oBAAoB,CAAC;AA4N5B,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,IAAI,2BAI9B;IACC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;IACnB,iCAAiC;IACjC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;CAC1B;;;;CA8CA,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/util/array/arrayTransform.d.ts b/packages/core/dist/cjs/internal/ot/util/array/arrayTransform.d.ts new file mode 100644 index 000000000..140c0c626 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/util/array/arrayTransform.d.ts @@ -0,0 +1,9 @@ +import { ReadonlyNonEmptyArray } from '@flocon-trpg/utils'; +export declare const transform: (state: readonly T[], stateAppliedFirst: readonly T[], stateAppliedSecond: readonly T[], getKey: (element: T) => TKey) => import("@kizahasi/result").Error | import("@kizahasi/result").Error, ReadonlyNonEmptyArray<{ + value: T; + $tag: 0 | 1 | 2; +}>>> | import("@kizahasi/result").Ok; +//# sourceMappingURL=arrayTransform.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/util/array/arrayTransform.d.ts.map b/packages/core/dist/cjs/internal/ot/util/array/arrayTransform.d.ts.map new file mode 100644 index 000000000..0357bdb3f --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/util/array/arrayTransform.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"arrayTransform.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/util/array/arrayTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAkDvE,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,IAAI,SACtB,SAAS,CAAC,EAAE,qBACA,SAAS,CAAC,EAAE,sBACX,SAAS,CAAC,EAAE,UACxB,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI;;UAGC,CAAC,GAAG,CAAC,GAAG,CAAC;;;UAAT,CAAC,GAAG,CAAC,GAAG,CAAC;yCA8GzC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/util/createOperation.d.ts b/packages/core/dist/cjs/internal/ot/util/createOperation.d.ts new file mode 100644 index 000000000..ef942da06 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/util/createOperation.d.ts @@ -0,0 +1,18 @@ +import { z } from 'zod'; +export declare const createOperation: (version: TVersion, revision: TRevision, props: TProps) => z.ZodObject; }, { + $v: z.ZodLiteral; + $r: z.ZodLiteral; +}>, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; }, { + $v: z.ZodLiteral; + $r: z.ZodLiteral; +}>>, any> extends infer T ? { [k_1 in keyof T]: z.objectUtil.addQuestionMarks; }, { + $v: z.ZodLiteral; + $r: z.ZodLiteral; +}>>, any>[k_1]; } : never, z.baseObjectInputType; }, { + $v: z.ZodLiteral; + $r: z.ZodLiteral; +}>> extends infer T_1 ? { [k_2 in keyof T_1]: z.baseObjectInputType; }, { + $v: z.ZodLiteral; + $r: z.ZodLiteral; +}>>[k_2]; } : never>; +//# sourceMappingURL=createOperation.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/util/createOperation.d.ts.map b/packages/core/dist/cjs/internal/ot/util/createOperation.d.ts.map new file mode 100644 index 000000000..02e1d9560 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/util/createOperation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createOperation.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/util/createOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,GACxB,QAAQ,SAAS,MAAM,GAAG,MAAM,EAChC,SAAS,SAAS,MAAM,GAAG,MAAM,EACjC,MAAM,SAAS,CAAC,CAAC,WAAW,WAEnB,QAAQ,YACP,SAAS,SACZ,MAAM;;;;;;;;;;;;;;;oBAUR,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/util/isValidKey.d.ts b/packages/core/dist/cjs/internal/ot/util/isValidKey.d.ts new file mode 100644 index 000000000..0cc84a6be --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/util/isValidKey.d.ts @@ -0,0 +1,2 @@ +export declare const isValidKey: (key: string) => boolean; +//# sourceMappingURL=isValidKey.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/util/isValidKey.d.ts.map b/packages/core/dist/cjs/internal/ot/util/isValidKey.d.ts.map new file mode 100644 index 000000000..b5b509af8 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/util/isValidKey.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"isValidKey.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/util/isValidKey.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,OAMxC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/util/replaceOperation.d.ts b/packages/core/dist/cjs/internal/ot/util/replaceOperation.d.ts new file mode 100644 index 000000000..dd02c958e --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/util/replaceOperation.d.ts @@ -0,0 +1,17 @@ +type ServerTransformParameters = { + first: { + oldValue: T; + newValue: T; + } | undefined; + second: { + newValue: T; + } | undefined; + prevState: T; +}; +type ServerTransformResult = { + oldValue: T; + newValue: T; +} | undefined; +export declare const serverTransform: ({ first, second, prevState, }: ServerTransformParameters) => ServerTransformResult; +export {}; +//# sourceMappingURL=replaceOperation.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/util/replaceOperation.d.ts.map b/packages/core/dist/cjs/internal/ot/util/replaceOperation.d.ts.map new file mode 100644 index 000000000..ed9cee462 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/util/replaceOperation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"replaceOperation.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/util/replaceOperation.ts"],"names":[],"mappings":"AAAA,KAAK,yBAAyB,CAAC,CAAC,IAAI;IAChC,KAAK,EAAE;QAAE,QAAQ,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;IAChD,MAAM,EAAE;QAAE,QAAQ,EAAE,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC;CAChB,CAAC;AACF,KAAK,qBAAqB,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,CAAA;CAAE,GAAG,SAAS,CAAC;AAEzE,eAAO,MAAM,eAAe,GAAI,CAAC,iCAI9B,yBAAyB,CAAC,CAAC,CAAC,KAAG,qBAAqB,CAAC,CAAC,CAQxD,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/util/type.d.ts b/packages/core/dist/cjs/internal/ot/util/type.d.ts new file mode 100644 index 000000000..d20a85880 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/util/type.d.ts @@ -0,0 +1,50 @@ +import { ApplyError, ComposeAndTransformError, PositiveInt } from '@kizahasi/ot-core'; +import { NonEmptyString } from '@kizahasi/ot-string'; +import { Result } from '@kizahasi/result'; +export type ScalarError = string | ApplyError; +export type UpError = string | ApplyError | ComposeAndTransformError; +export type DownError = string | ApplyError | ComposeAndTransformError; +export type TwoWayError = string | ApplyError | ComposeAndTransformError; +/** + * `state`に対して`operation`を適用します。 + */ +export type Apply = (params: { + state: TState; + operation: TOperation; +}) => Result; +export type Compose = (params: { + first: TOperation; + second: TOperation; +}) => Result; +export type Diff = (params: { + prevState: TState; + nextState: TState; +}) => TOperation | undefined; +export type Restore = (params: { + nextState: TState; + downOperation: TDownOperation; +}) => Result<{ + prevState: TState; + twoWayOperation: TTwoWayOperation | undefined; +}, ScalarError>; +/** `apply(stateBeforeServerOperation, serverOperation) = stateAfterServerOperation` という関係が成り立ちます。 */ +export type ServerTransform = (params: { + stateBeforeServerOperation: TServerState; + stateAfterServerOperation: TServerState; + serverOperation: TTwoWayOperation | undefined; + clientOperation: TUpOperation; +}) => Result; +export type ClientTransform = (params: { + state: TState; + first: TOperation; + second: TOperation; +}) => Result<{ + firstPrime: TOperation | undefined; + secondPrime: TOperation | undefined; +}, UpError>; +export type ToClientOperationParams = { + prevState: TState; + nextState: TState; + diff: TOperation; +}; +//# sourceMappingURL=type.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/ot/util/type.d.ts.map b/packages/core/dist/cjs/internal/ot/util/type.d.ts.map new file mode 100644 index 000000000..87a6c12c4 --- /dev/null +++ b/packages/core/dist/cjs/internal/ot/util/type.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/util/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAC3E,MAAM,MAAM,OAAO,GACb,MAAM,GACN,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,GACvC,wBAAwB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAC5D,MAAM,MAAM,SAAS,GACf,MAAM,GACN,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,GACvC,wBAAwB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,WAAW,GACjB,MAAM,GACN,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,GACvC,wBAAwB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,CAAC;CACzB,KAAK,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAElC,MAAM,MAAM,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,MAAM,EAAE;IAC9C,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;CACtB,KAAK,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;AAE5C,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB,KAAK,UAAU,GAAG,SAAS,CAAC;AAE7B,MAAM,MAAM,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,gBAAgB,IAAI,CAAC,MAAM,EAAE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,cAAc,CAAC;CACjC,KAAK,MAAM,CACR;IACI,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACjD,EACD,WAAW,CACd,CAAC;AAEF,qGAAqG;AACrG,MAAM,MAAM,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,YAAY,IAAI,CAAC,MAAM,EAAE;IACjF,0BAA0B,EAAE,YAAY,CAAC;IACzC,yBAAyB,EAAE,YAAY,CAAC;IACxC,eAAe,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C,eAAe,EAAE,YAAY,CAAC;CACjC,KAAK,MAAM,CAAC,gBAAgB,GAAG,SAAS,EAAE,WAAW,CAAC,CAAC;AAExD,MAAM,MAAM,eAAe,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;CACtB,KAAK,MAAM,CAAC;IAAE,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IAAC,WAAW,EAAE,UAAU,GAAG,SAAS,CAAA;CAAE,EAAE,OAAO,CAAC,CAAC;AAMnG,MAAM,MAAM,uBAAuB,CAAC,MAAM,EAAE,UAAU,IAAI;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;CACpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/publicChannelKey.d.ts b/packages/core/dist/cjs/internal/publicChannelKey.d.ts new file mode 100644 index 000000000..a2416791f --- /dev/null +++ b/packages/core/dist/cjs/internal/publicChannelKey.d.ts @@ -0,0 +1,15 @@ +import { $free, $system } from './constants'; +import { StrIndex10 } from './indexes'; +export declare namespace PublicChannelKey { + namespace Without$System { + type PublicChannelKey = typeof $free | StrIndex10; + const publicChannelKeys: ReadonlyArray; + const isPublicChannelKey: (source: unknown) => source is PublicChannelKey; + } + namespace With$System { + type PublicChannelKey = typeof $free | typeof $system | StrIndex10; + const publicChannelKeys: ReadonlyArray; + const isPublicChannelKey: (source: unknown) => source is PublicChannelKey; + } +} +//# sourceMappingURL=publicChannelKey.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/publicChannelKey.d.ts.map b/packages/core/dist/cjs/internal/publicChannelKey.d.ts.map new file mode 100644 index 000000000..f45719e2f --- /dev/null +++ b/packages/core/dist/cjs/internal/publicChannelKey.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"publicChannelKey.d.ts","sourceRoot":"","sources":["../../../src/internal/publicChannelKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAmB,MAAM,WAAW,CAAC;AAExD,yBAAiB,gBAAgB,CAAC;IAC9B,UAAiB,cAAc,CAAC;QAC5B,KAAY,gBAAgB,GAAG,OAAO,KAAK,GAAG,UAAU,CAAC;QAElD,MAAM,iBAAiB,EAAE,aAAa,CAAC,gBAAgB,CAG7D,CAAC;QAEK,MAAM,kBAAkB,WAAY,OAAO,KAAG,MAAM,IAAI,gBAE9D,CAAC;KACL;IAED,UAAiB,WAAW,CAAC;QACzB,KAAY,gBAAgB,GAAG,OAAO,KAAK,GAAG,OAAO,OAAO,GAAG,UAAU,CAAC;QAEnE,MAAM,iBAAiB,EAAE,aAAa,CAAC,gBAAgB,CAI7D,CAAC;QAEK,MAAM,kBAAkB,WAAY,OAAO,KAAG,MAAM,IAAI,gBAE9D,CAAC;KACL;CACJ"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/simpleId.d.ts b/packages/core/dist/cjs/internal/simpleId.d.ts new file mode 100644 index 000000000..b46644a33 --- /dev/null +++ b/packages/core/dist/cjs/internal/simpleId.d.ts @@ -0,0 +1,2 @@ +export declare const simpleId: () => string; +//# sourceMappingURL=simpleId.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/simpleId.d.ts.map b/packages/core/dist/cjs/internal/simpleId.d.ts.map new file mode 100644 index 000000000..b5c02258f --- /dev/null +++ b/packages/core/dist/cjs/internal/simpleId.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"simpleId.d.ts","sourceRoot":"","sources":["../../../src/internal/simpleId.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,QAAO,MAS3B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/toml.d.ts b/packages/core/dist/cjs/internal/toml.d.ts new file mode 100644 index 000000000..5e046efee --- /dev/null +++ b/packages/core/dist/cjs/internal/toml.d.ts @@ -0,0 +1,8 @@ +import { Result } from '@kizahasi/result'; +import { LocalDate as TomlLocalDate, LocalDateTime as TomlLocalDateTime, LocalTime as TomlLocalTime, OffsetDateTime as TomlOffsetDateTime } from '@ltd/j-toml'; +export declare const parseToml: (toml: string) => import("@kizahasi/result").Error | import("@kizahasi/result").Ok; +export declare const isValidVarToml: (toml: string) => Result; +export declare const getVariableFromVarTomlObject: (tomlObject: unknown, path: ReadonlyArray) => import("@kizahasi/result").Error | import("@kizahasi/result").Ok | null | undefined>; +/** @deprecated We no longer use TOML in chat palettes. */ +export declare const generateChatPalette: (toml: string) => Result; +//# sourceMappingURL=toml.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/toml.d.ts.map b/packages/core/dist/cjs/internal/toml.d.ts.map new file mode 100644 index 000000000..a90863d85 --- /dev/null +++ b/packages/core/dist/cjs/internal/toml.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toml.d.ts","sourceRoot":"","sources":["../../../src/internal/toml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACH,SAAS,IAAI,aAAa,EAC1B,aAAa,IAAI,iBAAiB,EAClC,SAAS,IAAI,aAAa,EAC1B,cAAc,IAAI,kBAAkB,EAEvC,MAAM,aAAa,CAAC;AAgCrB,eAAO,MAAM,SAAS,SAAU,MAAM,sFAMrC,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,MAAM,KAAG,MAAM,CAAC,IAAI,CAMxD,CAAC;AAmBF,eAAO,MAAM,4BAA4B,eAAgB,OAAO,QAAQ,aAAa,CAAC,MAAM,CAAC,oNAuB5F,CAAC;AAaF,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB,SAAU,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,CAwCjE,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/uploaderPath.d.ts b/packages/core/dist/cjs/internal/uploaderPath.d.ts new file mode 100644 index 000000000..8550a47e6 --- /dev/null +++ b/packages/core/dist/cjs/internal/uploaderPath.d.ts @@ -0,0 +1,23 @@ +/** ファイルもしくはフォルダのパスを表します。 + * + * stringの場合は、半角スラッシュでパスの区切りを表します。半角スラッシュをエスケープすることはできません。2つ以上続く半角スラッシュは1つとして扱われます。 + * + * 配列の場合は、要素のstringに半角スラッシュが含まれていた場合、それらは区切りとしてみなされず保持されます。`''`の要素は存在しないものとして扱われます。 + */ +export type UploaderPathSource = string | readonly string[]; +type PathResult = { + /** パスを1つの文字列で表します。区切り文字は`/`です。先頭および末尾に`/`は付きません。 `''`の場合はルートフォルダを表します。 */ + string: string; + /** `[]`の場合はルートフォルダを表します。 */ + array: readonly string[]; +}; +export declare const sanitizeFoldername: (input: string) => string; +export declare const sanitizeFilename: (input: string) => string | null; +export declare const trySanitizePath: (path: UploaderPathSource) => PathResult | null; +/** + * + * @returns Sanitizeされていない値を返します。 + */ +export declare const joinPath: (left: UploaderPathSource, ...right: UploaderPathSource[]) => PathResult; +export {}; +//# sourceMappingURL=uploaderPath.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/cjs/internal/uploaderPath.d.ts.map b/packages/core/dist/cjs/internal/uploaderPath.d.ts.map new file mode 100644 index 000000000..930d0992d --- /dev/null +++ b/packages/core/dist/cjs/internal/uploaderPath.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"uploaderPath.d.ts","sourceRoot":"","sources":["../../../src/internal/uploaderPath.ts"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;AAE5D,KAAK,UAAU,GAAG;IACd,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IAEf,4BAA4B;IAC5B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B,CAAC;AAiCF,eAAO,MAAM,kBAAkB,UAAW,MAAM,KAAG,MAIlD,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,MAAM,GAAG,IASzD,CAAC;AAUF,eAAO,MAAM,eAAe,SAAU,kBAAkB,KAAG,UAAU,GAAG,IAqBvE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,SAAU,kBAAkB,YAAY,kBAAkB,EAAE,KAAG,UAOnF,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/index.d.ts b/packages/core/dist/esm/index.d.ts new file mode 100644 index 000000000..c82106a01 --- /dev/null +++ b/packages/core/dist/esm/index.d.ts @@ -0,0 +1,59 @@ +export { anonymous, authToken, $free, $system } from './internal/constants'; +export { firebaseConfig, FirebaseConfig } from './internal/firebaseConfig'; +export { StrIndex5, strIndex5Array, isStrIndex5, StrIndex10, strIndex10Array, isStrIndex10, StrIndex20, strIndex20Array, isStrIndex20, StrIndex100, strIndex100Array, isStrIndex100, } from './internal/indexes'; +export { MaxLength100String, maxLength100String } from './internal/maxLengthString'; +export { forceMaxLength100String } from './internal/forceMaxLength100String'; +export { maybe, Maybe } from './internal/maybe'; +export { PublicChannelKey } from './internal/publicChannelKey'; +export { simpleId } from './internal/simpleId'; +export { isValidVarToml, parseToml, getVariableFromVarTomlObject, generateChatPalette, } from './internal/toml'; +export { testCommand, execCharacterCommand } from './internal/command/main'; +export { env } from './internal/env'; +export { Expression, plain, expr1, analyze } from './internal/expression'; +export { sanitizeFilename, sanitizeFoldername, trySanitizePath, joinPath, UploaderPathSource, } from './internal/uploaderPath'; +export { fakeFirebaseConfig1, fakeFirebaseConfig2 } from './internal/fake/fakeFirebaseConfig'; +export { $index, arrayToIndexObjects, indexObjectsToArray, IndexObject } from './internal/ot/array'; +export { Default, Uploader, FirebaseStorage, filePathTemplate, } from './internal/ot/flocon/filePath/types'; +export { $v, $r, toDownOperation, toUpOperation, apply, applyBack, composeDownOperation, restore, diff, clientTransform, } from './internal/ot/generator/functions'; +export { atomic, ot, record, paramRecord, object, state, State, upOperation, UpOperation, downOperation, DownOperation, TwoWayOperation, createObjectValueTemplate, createTextValueTemplate, createParamRecordValueTemplate, createRecordValueTemplate, createReplaceValueTemplate, } from './internal/ot/generator/types'; +export { OmitVersion } from './internal/ot/generator/omitVersion'; +export { toClientState, serverTransform } from './internal/ot/flocon/room/functions'; +export { template as roomTemplate, dbTemplate as roomDbTemplate, } from './internal/ot/flocon/room/types'; +export { template as bgmTemplate } from './internal/ot/flocon/room/bgm/types'; +export { template as paramNameTemplate } from './internal/ot/flocon/room/paramName/types'; +export { parseState, stringifyState, decodeDbState, exactDbState, parseUpOperation, stringifyUpOperation, decodeDownOperation, exactDownOperation, } from './internal/ot/flocon/room/converter'; +export { template as boardPositionTemplate } from './internal/ot/flocon/boardPosition/types'; +export { template as pieceTemplate } from './internal/ot/flocon/piece/types'; +export { Master, Player, Spectator, ParticipantRole, template as participantTemplate, } from './internal/ot/flocon/room/participant/types'; +export { template as boardTemplate } from './internal/ot/flocon/room/board/types'; +export { template as characterTemplate } from './internal/ot/flocon/room/character/types'; +export { template as boolParamTemplate } from './internal/ot/flocon/room/character/boolParam/types'; +export { template as characterPieceTemplate } from './internal/ot/flocon/room/character/characterPiece/types'; +export { template as commandTemplate } from './internal/ot/flocon/room/character/command/types'; +export { template as numParamTemplate } from './internal/ot/flocon/room/character/numParam/types'; +export { template as strParamTemplate } from './internal/ot/flocon/room/character/strParam/types'; +export { template as portraitPieceTemplate } from './internal/ot/flocon/room/character/portraitPiece/types'; +export { template as shapeTemplate } from './internal/ot/flocon/shape/types'; +export { template as shapePieceTemplate } from './internal/ot/flocon/room/board/shapePiece/types'; +export { template as dicePieceTemplate, dicePieceStrIndexes, } from './internal/ot/flocon/room/board/dicePiece/types'; +export { decode as decodeDicePiece, parse as parseDicePiece, } from './internal/ot/flocon/room/board/dicePiece/converter'; +export { template as dieValueTemplate } from './internal/ot/flocon/room/board/dicePiece/dieValue/types'; +export { type as dicePieceLog, Type as DicePieceLog, } from './internal/ot/flocon/room/board/dicePiece/log'; +export { template as imagePieceTemplate } from './internal/ot/flocon/room/board/imagePiece/types'; +export { template as stringPieceTemplate, String, Number, } from './internal/ot/flocon/room/board/stringPiece/types'; +export { decode as decodeStringPiece, parse as parseStringPiece, } from './internal/ot/flocon/room/board/stringPiece/converter'; +export { type as stringPieceLog, Type as StringPieceLog, } from './internal/ot/flocon/room/board/stringPiece/log'; +export { template as memoTemplate, Plain, Markdown } from './internal/ot/flocon/room/memo/types'; +export { getOpenRollCall } from './internal/ot/flocon/room/rollCall/getOpenRollCall'; +export { isOpenRollCall } from './internal/ot/flocon/room/rollCall/isOpenRollCall'; +export { OtError, toOtError } from './internal/ot/otError'; +export { DownOperation as NullableTextDownOperation, UpOperation as NullableTextUpOperation, TwoWayOperation as NullableTextTwoWayOperation, apply as applyNullableText, diff as nullableTextDiff, toUpOperation as toNullableTextUpOperation, } from './internal/ot/nullableTextOperation'; +export { isIdRecord } from './internal/ot/record'; +export { replace, update, RecordDownOperationElement, RecordTwoWayOperationElement, RecordUpOperationElement, } from './internal/ot/recordOperationElement'; +export { RecordDownOperation, RecordUpOperation, RecordTwoWayOperation, } from './internal/ot/recordOperation'; +export { DownOperation as TextDownOperation, UpOperation as TextUpOperation, TwoWayOperation as TextTwoWayOperation, apply as applyText, diff as textDiff, toUpOperation as toTextUpOperation, } from './internal/ot/textOperation'; +export { client, admin, restrict, RequestedBy, isCharacterOwner } from './internal/ot/requestedBy'; +export { path, shape } from './internal/ot/shape'; +export { updateType, createType, deleteType } from './internal/ot/flocon/piece/log'; +export { createLogs } from './internal/ot/flocon/room/log'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/index.d.ts.map b/packages/core/dist/esm/index.d.ts.map new file mode 100644 index 000000000..67813496a --- /dev/null +++ b/packages/core/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/core/dist/esm/index.js b/packages/core/dist/esm/index.js new file mode 100644 index 000000000..2eab768ec --- /dev/null +++ b/packages/core/dist/esm/index.js @@ -0,0 +1,7029 @@ +import { z } from 'zod'; +import { Result } from '@kizahasi/result'; +import { LocalDate, LocalDateTime, LocalTime, OffsetDateTime, parse as parse$2 } from '@ltd/j-toml'; +import { FObject, FBoolean, ScriptError, beginCast, FFunction, FRecord, FString, FType, FNumber, FRecordRef, test, arrayClass, createConsoleClass, exec } from '@flocon-trpg/flocon-script'; +import { recordToArray, mapRecord, keyNames, recordToMap, mapToRecord, groupJoinMap, both, right, left, recordForEach, chooseRecord, loggerRef, isReadonlyNonEmptyArray, groupJoinArray, pairwiseIterable, DualKeyMap } from '@flocon-trpg/utils'; +import { cloneDeep, groupBy, maxBy } from 'es-toolkit'; +import { deserializeUpOperation, apply as apply$6, serializeTwoWayOperation, diff as diff$5, deserializeTwoWayOperation, toUpOperation as toUpOperation$3, serializeUpOperation, deserializeDownOperation, applyBack as applyBack$5, composeDownOperation as composeDownOperation$4, serializeDownOperation, applyBackAndRestore, transformUpOperation, toDownOperation as toDownOperation$3, applyAndRestore, transformTwoWayOperation } from '@kizahasi/ot-string'; +import truncate from 'truncate-utf8-bytes'; +import { produce } from 'immer'; +import { OperationBuilder, PositiveInt, transform as transform$1, delete$, apply as apply$7 } from '@kizahasi/ot-core'; + +const anonymous = 'anonymous'; +const authToken = 'authToken'; +const $free = '$free'; +const $system = '$system'; + +const env = { + // @flocon-trpg/web-server にはこれらを import せずに環境変数のキーを文字列として直接入力している箇所があるため、そちらも合わせる必要があることに注意。 + NEXT_PUBLIC_FIREBASE_CONFIG: 'NEXT_PUBLIC_FIREBASE_CONFIG', + NEXT_PUBLIC_API_HTTP: 'NEXT_PUBLIC_API_HTTP', + NEXT_PUBLIC_API_WS: 'NEXT_PUBLIC_API_WS', + NEXT_PUBLIC_AUTH_PROVIDERS: 'NEXT_PUBLIC_AUTH_PROVIDERS', + NEXT_PUBLIC_FIREBASE_STORAGE_ENABLED: 'NEXT_PUBLIC_FIREBASE_STORAGE_ENABLED', + NEXT_PUBLIC_LOG_LEVEL: 'NEXT_PUBLIC_LOG_LEVEL', + firebaseConfig: { + apiKey: 'apiKey', + authDomain: 'authDomain', + projectId: 'projectId', + storageBucket: 'storageBucket', + messagingSenderId: 'messagingSenderId', + appId: 'appId', + }, + authProviders: { + // TODO: これら以外にも対応させる + anonymous: 'anonymous', + email: 'email', + google: 'google', + facebook: 'facebook', + github: 'github', + twitter: 'twitter', + phone: 'phone', + }, +}; + +const firebaseConfig = z.object({ + // databaseURLというキーはおそらくFirestoreを有効化しないと含まれないため、除外している。 + [env.firebaseConfig.apiKey]: z.string(), + [env.firebaseConfig.authDomain]: z.string(), + [env.firebaseConfig.projectId]: z.string(), + [env.firebaseConfig.storageBucket]: z.string(), + [env.firebaseConfig.messagingSenderId]: z.string(), + [env.firebaseConfig.appId]: z.string(), +}); + +const strIndex5Array = ['1', '2', '3', '4', '5']; +const strIndex5Set = new Set(strIndex5Array); +const isStrIndex5 = (source) => { + return strIndex5Set.has(source); +}; +const strIndex10Array = [ + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '10', +]; +const strIndex10Set = new Set(strIndex10Array); +const isStrIndex10 = (source) => { + return strIndex10Set.has(source); +}; +const strIndex20Array = [ + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '10', + '11', + '12', + '13', + '14', + '15', + '16', + '17', + '18', + '19', + '20', +]; +const strIndex20Set = new Set(strIndex20Array); +const isStrIndex20 = (source) => { + return strIndex20Set.has(source); +}; +const strIndex100Array = [ + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '10', + '11', + '12', + '13', + '14', + '15', + '16', + '17', + '18', + '19', + '20', + '21', + '22', + '23', + '24', + '25', + '26', + '27', + '28', + '29', + '30', + '31', + '32', + '33', + '34', + '35', + '36', + '37', + '38', + '39', + '40', + '41', + '42', + '43', + '44', + '45', + '46', + '47', + '48', + '49', + '50', + '51', + '52', + '53', + '54', + '55', + '56', + '57', + '58', + '59', + '60', + '61', + '62', + '63', + '64', + '65', + '66', + '67', + '68', + '69', + '70', + '71', + '72', + '73', + '74', + '75', + '76', + '77', + '78', + '79', + '80', + '81', + '82', + '83', + '84', + '85', + '86', + '87', + '88', + '89', + '90', + '91', + '92', + '93', + '94', + '95', + '96', + '97', + '98', + '99', + '100', +]; +const strIndex100Set = new Set(strIndex100Array); +const isStrIndex100 = (source) => { + return strIndex100Set.has(source); +}; + +// 𩸽や😀のようなサロゲートペアで表現される文字はlengthで2とカウントされるが、欲しい情報は文字数ではなく消費容量であるためlengthで問題ない +const maxLengthString = (maxLength) => z.string().max(maxLength).brand(); +const maxLength100String = maxLengthString(100); +const maxLength1000String = maxLengthString(1000); +const emptyString = ''; +maxLength100String.parse(emptyString); +maxLength1000String.parse(emptyString); + +const forceMaxLength100String = (source) => { + return maxLength100String.parse(source); +}; + +/** @deprecated Use `optional` method in zod. */ +const maybe = (source) => source.optional(); + +var PublicChannelKey; +(function (PublicChannelKey) { + (function (Without$System) { + Without$System.publicChannelKeys = [ + ...strIndex10Array, + $free, + ]; + Without$System.isPublicChannelKey = (source) => { + return Without$System.publicChannelKeys.find(key => key === source) !== undefined; + }; + })(PublicChannelKey.Without$System || (PublicChannelKey.Without$System = {})); + (function (With$System) { + With$System.publicChannelKeys = [ + ...strIndex10Array, + $free, + $system, + ]; + With$System.isPublicChannelKey = (source) => { + return With$System.publicChannelKeys.find(key => key === source) !== undefined; + }; + })(PublicChannelKey.With$System || (PublicChannelKey.With$System = {})); +})(PublicChannelKey || (PublicChannelKey = {})); + +// NOT cryptographically secure +const simpleId = () => { + const idLength = 9; + let result = Math.random() + .toString(36) + .substring(2, 2 + idLength); + while (result.length < idLength) { + result = result + '0'; + } + return result; +}; + +const plain = 'plain'; +const expr1 = 'expr1'; +const expr2 = 'expr2'; +const toExpressionCore = (text) => { + const bareKey = /[a-zA-Z0-9_-]/; + const head = []; // plainが連続して続くことはない。 + let tail = { + type: plain, + text: '', + }; + const charArray = Array.from(text); + let cursor = 0; + for (; cursor < charArray.length; cursor++) { + const char = charArray[cursor]; + if (char === undefined) { + throw new Error('this should not happen. charArray out of range.'); + } + switch (tail.type) { + case plain: + switch (char) { + case '\\': { + const nextChar = charArray[cursor + 1]; + if (nextChar == null) { + return Result.error({ + message: '末尾を \\ にすることはできません。', + index: cursor, + }); + } + cursor++; + tail = { ...tail, text: tail.text + nextChar }; + continue; + } + case '{': { + const nextChar = charArray[cursor + 1]; + head.push(tail); + if (nextChar === '{') { + cursor++; + tail = { + type: expr2, + path: [], + raw: '{{', + reading: { + type: 'Begin', + }, + }; + continue; + } + tail = { + type: expr1, + path: [], + raw: '{', + reading: { + type: 'Begin', + }, + }; + continue; + } + case '}': { + return Result.error({ + message: '} に対応する { が見つかりません。', + index: cursor, + }); + } + default: { + tail = { ...tail, text: tail.text + char }; + continue; + } + } + case expr1: + case expr2: { + // 基本的に、まずtail.reading.typeで分類して、その次にcharごとに処理を行っている。 + // ただし、char === '}' のケースは、共通処理が複雑なため、同じコードをコピペしたくないので例外的にここでまず処理してしまっている。 + if (char === '}') { + switch (tail.reading.type) { + case 'Begin': + return Result.error({ + message: 'プロパティを空にすることはできません。', + index: cursor, + }); + case 'Bare': + case 'EndOfProp': { + if (tail.type === expr1) { + head.push({ + type: expr1, + path: tail.reading.type === 'Bare' + ? [...tail.path, tail.reading.text] + : tail.path, + raw: tail.raw + '}', + }); + tail = { type: plain, text: '' }; + continue; + } + const nextChar = charArray[cursor + 1]; + if (nextChar !== '}') { + return Result.error({ + message: '{{ を } で閉じることはできません。', + index: cursor, + }); + } + continue; + } + } + } + switch (tail.reading.type) { + case 'Begin': { + switch (char) { + // { が3つ以上続いていた場合は char === '{' になる。 + case ' ': + continue; + case "'": { + tail = { + ...tail, + reading: { + type: 'InSingleQuote', + text: '', + }, + raw: tail.raw + char, + }; + continue; + } + case '"': { + tail = { + ...tail, + reading: { + type: 'InDoubleQuote', + text: '', + }, + raw: tail.raw + char, + }; + continue; + } + default: { + if (!bareKey.test(char)) { + return Result.error({ + message: `${char} はこの場所で使うことはできません。`, + index: cursor, + }); + } + tail = { + ...tail, + reading: { + type: 'Bare', + text: char, + }, + raw: tail.raw + char, + }; + continue; + } + } + } + case 'EndOfProp': { + switch (char) { + case ' ': + continue; + case '.': { + tail = { + ...tail, + reading: { type: 'Begin' }, + raw: tail.raw + char, + }; + continue; + } + default: { + return Result.error({ + message: `${char} はこの場所で使うことはできません。`, + index: cursor, + }); + } + } + } + case 'Bare': { + switch (char) { + case ' ': { + tail = { + ...tail, + path: [...tail.path, tail.reading.text], + raw: tail.raw + char, + reading: { type: 'EndOfProp' }, + }; + continue; + } + case '.': + tail = { + type: tail.type, + path: [...tail.path, tail.reading.text], + raw: tail.raw + char, + reading: { + type: 'Begin', + }, + }; + continue; + default: { + if (!bareKey.test(char)) { + return Result.error({ + message: `${char} は ' か " で囲む必要があります。`, + index: cursor, + }); + } + tail = { + ...tail, + raw: tail.raw + char, + reading: { + type: 'Bare', + text: tail.reading.text + char, + }, + }; + continue; + } + } + } + case 'InDoubleQuote': { + switch (char) { + case '"': { + tail = { + ...tail, + path: [...tail.path, tail.reading.text], + raw: tail.raw + char, + reading: { + type: 'EndOfProp', + }, + }; + continue; + } + case '\\': { + const nextChar = charArray[cursor + 1]; + switch (nextChar) { + case '"': + tail = { + ...tail, + raw: tail.raw + char, + reading: { + type: tail.reading.type, + text: tail.reading.text + '"', + }, + }; + cursor++; + continue; + case '\\': { + tail = { + ...tail, + raw: tail.raw + char, + reading: { + type: tail.reading.type, + text: tail.reading.text + '\\', + }, + }; + cursor++; + continue; + } + case undefined: + return Result.error({ + message: 'エスケープ文字の次に文字がありません。', + index: cursor, + }); + default: + // TOMLでは\uXXXXなどでunicodeを直接指定できるが、面倒なので今のところ実装は省略している。 + return Result.error({ + message: `\\${nextChar} は無効なエスケープシーケンスです。`, + index: cursor, + }); + } + } + default: + tail = { + ...tail, + raw: tail.raw + char, + reading: { + type: tail.reading.type, + text: tail.reading.text + char, + }, + }; + continue; + } + } + case 'InSingleQuote': { + switch (char) { + case "'": + tail = { + ...tail, + path: [...tail.path, tail.reading.text], + raw: tail.raw + char, + reading: { type: 'EndOfProp' }, + }; + continue; + default: + tail = { + ...tail, + raw: tail.raw + char, + reading: { + type: tail.reading.type, + text: tail.reading.text + char, + }, + }; + continue; + } + } + } + } + } + } + switch (tail.type) { + case plain: + return Result.ok([...head, tail]); + case expr1: + return Result.error({ + index: cursor + 1, + message: '} に対応する { がありません。', + }); + case expr2: + return Result.error({ + index: cursor + 1, + message: '}} に対応する {{ がありません。', + }); + } +}; +const analyze = (text) => { + const expressions = toExpressionCore(text); + if (expressions.isError) { + return Result.error(`${expressions.error.index}: ${expressions.error.message}`); + } + const result = []; + for (const expr of expressions.value) { + switch (expr.type) { + case expr2: + return Result.error('{{と}}で囲む構文は将来のために予約されているため、現在は使用することはできません。'); + case expr1: + result.push({ type: expr1, path: expr.path, raw: expr.raw }); + continue; + default: + if (expr.text !== '') { + result.push({ type: plain, text: expr.text }); + } + continue; + } + } + return Result.ok(result); +}; + +const isTomlDateTime = (source) => { + return (source instanceof LocalDate || + source instanceof LocalDateTime || + source instanceof LocalTime || + source instanceof OffsetDateTime); +}; +const parseTomlCore = (toml) => { + let object; + try { + object = parse$2(toml, 1.0, '\r\n', false); + } + catch (error) { + if (typeof error === 'string') { + return Result.error(error); + } + if (error instanceof Error) { + return Result.error(error.message); + } + throw error; + } + return Result.ok(object); +}; +const parseToml = (toml) => { + const core = parseTomlCore(toml); + if (core.isError) { + return core; + } + return Result.ok(core.value); +}; +const isValidVarToml = (toml) => { + const parsed = parseTomlCore(toml); + if (parsed.isError) { + return parsed; + } + return Result.ok(undefined); +}; +const tomlDateTime = z.union([ + z.instanceof(LocalDate), + z.instanceof(LocalDateTime), + z.instanceof(LocalTime), + z.instanceof(OffsetDateTime), +]); +const tomlObjectType = z.union([ + // zod は Date や Map などを z.record(z.unknown()) に変換しようとすると失敗するが、独自のクラスでは失敗しない(JavaScript の仕様を考えると当然ではあるが)。そのため、パース処理そのものは tomlDateTime の有無は影響しないと考えられるが、tomlObjectType.parse の戻り値の型を扱いやすくする目的で付け加えている。 + tomlDateTime, + z.record(z.unknown()), + z.number(), + z.string(), + z.null(), + z.undefined(), +]); +const getVariableFromVarTomlObject = (tomlObject, path) => { + let current = tomlObject; + for (const key of path) { + const parsed = tomlObjectType.safeParse(current); + if (!parsed.success) { + return Result.error(parsed.error.message); + } + if (parsed.data == null) { + return Result.ok(undefined); + } + if (typeof parsed.data === 'string' || typeof parsed.data === 'number') { + return Result.ok(undefined); + } + if (isTomlDateTime(parsed.data)) { + return Result.ok(undefined); + } + current = parsed.data[key]; + } + const parsed = tomlObjectType.safeParse(current); + if (!parsed.success) { + return Result.error(parsed.error.message); + } + return Result.ok(parsed.data); +}; +const chatPalette = z.object({ + var: maybe(z.record(z.unknown())), + // textではなくわざわざ冗長なtext.valueにしたのは、[var]→チャットパレットの文字列 の順で書けるようにするため。 + // また、将来的に例えばtext.typeに何かをセットして…という拡張もできる余地がある。 + text: z.object({ + value: z.string(), + }), +}); +// text.valueに例えば {foo} のような文字列が含まれている場合、varで定義されていればそれに置き換える。定義が見つからなければそのまま残す。 +/** @deprecated We no longer use TOML in chat palettes. */ +const generateChatPalette = (toml) => { + // CONSIDER: TOMLのDateTimeに未対応 + const object = parseTomlCore(toml); + if (object.isError) { + return object; + } + const decoded = chatPalette.parse(object.value); + const lines = decoded.text.value.split(/(?:\r\n|\r|\n)/).map(line => { + const analyzeResult = analyze(line); + if (analyzeResult.isError) { + return line; + } + return analyzeResult.value + .map(expr => { + switch (expr.type) { + case expr1: { + const replaced = getVariableFromVarTomlObject(decoded.var, expr.path); + if (replaced.isError) { + return expr.raw; + } + // TODO: replaced.valueがstring以外のときの処理の仕様が今は曖昧 + switch (typeof replaced.value) { + case 'string': + case 'number': + case 'boolean': + return replaced.value.toString(); + default: + return ''; + } + } + default: { + return expr.text; + } + } + }) + .reduce((seed, elem) => seed + elem, ''); + }); + return Result.ok(lines); +}; + +const value$2 = 'value'; +const isValueSecret$2 = 'isValueSecret'; +class FBoolParam extends FObject { + boolParam; + constructor(boolParam) { + super(); + this.boolParam = boolParam; + } + getCore({ key }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case value$2: + return this.boolParam.value == null + ? undefined + : new FBoolean(this.boolParam.value); + case isValueSecret$2: + return new FBoolean(this.boolParam.isValuePrivate); + default: + return undefined; + } + } + setCore({ key, newValue, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case value$2: + this.boolParam.value = beginCast(newValue, astInfo) + .addBoolean() + .addUndefined() + .cast(); + return; + case isValueSecret$2: + this.boolParam.isValuePrivate = beginCast(newValue, astInfo).addBoolean().cast(); + return; + default: + throw new ScriptError(`${typeof key === 'symbol' ? 'symbol' : key}への値のセットは制限されています。`); + } + } + toJObject() { + return this.boolParam; + } +} + +const createDefaultState$2 = () => ({ + $v: 2, + $r: 1, + value: false, + isValuePrivate: false, + overriddenParameterName: undefined, +}); +class FBoolParams extends FObject { + boolParams; + room; + constructor(boolParams, room) { + super(); + this.boolParams = boolParams; + this.room = room; + } + findKeysByNameOrKey(nameOrKey) { + if (this.room.boolParamNames == null) { + return []; + } + return recordToArray(this.room.boolParamNames) + .filter(({ value }, i) => value.name === nameOrKey || i + 1 === nameOrKey) + .map(({ key }) => key); + } + findByNameOrKey(nameOrKeyValue, astInfo) { + const nameOrKey = beginCast(nameOrKeyValue, astInfo).addString().addNumber().cast(); + const keys = this.findKeysByNameOrKey(nameOrKey); + for (const key of keys) { + const found = (this.boolParams ?? {})[key]; + if (found == null) { + const newValue = createDefaultState$2(); + this.boolParams[key] = newValue; + return newValue; + } + return found; + } + return undefined; + } + toggleValue(nameOrKeyValue, astInfo) { + const found = this.findByNameOrKey(nameOrKeyValue, astInfo); + if (found == null) { + return; + } + found.value = !(found.value ?? createDefaultState$2().value); + } + setIsValuePrivate(nameOrKeyValue, newValue, astInfo) { + const $newValue = beginCast(newValue, astInfo).addBoolean().cast(); + const found = this.findByNameOrKey(nameOrKeyValue, astInfo); + if (found == null) { + return; + } + found.isValuePrivate = $newValue; + } + getCore({ key, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case 'find': + return new FFunction(({ args }) => { + const result = this.findByNameOrKey(args[0], astInfo); + if (result == null) { + return undefined; + } + return new FBoolParam(result); + }); + case 'toggleValue': + return new FFunction(({ args }) => { + this.toggleValue(args[0], astInfo); + return undefined; + }); + case 'setValue': + return new FFunction(({ args }) => { + const newValue = beginCast(args[1], astInfo).addBoolean().cast(); + const found = this.findByNameOrKey(args[0], astInfo); + if (found == null) { + return; + } + found.value = newValue; + return undefined; + }); + case 'setIsValueSecret': + return new FFunction(({ args }) => { + this.setIsValuePrivate(args[0], args[1], astInfo); + return undefined; + }); + } + return undefined; + } + setCore() { + throw new ScriptError('値のセットは制限されています。'); + } + toJObject() { + return this.boolParams; + } +} + +const update$2 = 'update'; +const replace$1 = 'replace'; +const recordDownOperationElementFactory = (state, operation) => z.union([ + z.object({ + type: z.literal(replace$1), + replace: z + .object({ + oldValue: state, + }) + .partial(), + }), + z.object({ + type: z.literal(update$2), + update: operation, + }), +]); +const recordUpOperationElementFactory = (state, operation) => z.union([ + z.object({ + type: z.literal(replace$1), + replace: z + .object({ + newValue: state, + }) + .partial(), + }), + z.object({ + type: z.literal(update$2), + update: operation, + }), +]); + +const r = 'r'; +const i = 'i'; +const d = 'd'; +const downOperationUnit = z.union([ + z.object({ + t: z.literal(r), + r: z.number(), + }), + z.object({ + t: z.literal(i), + i: z.number(), + }), + z.object({ + t: z.literal(d), + d: z.string(), + }), +]); +const downOperation$2 = z.array(downOperationUnit); +const upOperationUnit = z.union([ + z.object({ + t: z.literal(r), + r: z.number(), + }), + z.object({ + t: z.literal(i), + i: z.string(), + }), + z.object({ + t: z.literal(d), + d: z.number(), + }), +]); +const upOperation$2 = z.array(upOperationUnit); +const apply$5 = (state, action) => { + const action$ = deserializeUpOperation(action); + if (action$ == null) { + return Result.ok(state); + } + return apply$6({ + prevState: state, + upOperation: action$, + }); +}; +const applyBack$4 = (state, action) => { + const action$ = deserializeDownOperation(action); + if (action$ == null) { + return Result.ok(state); + } + return applyBack$5({ + nextState: state, + downOperation: action$, + }); +}; +const composeDownOperation$3 = (first, second) => { + const first$ = first == null ? undefined : deserializeDownOperation(first); + const second$ = second == null ? undefined : deserializeDownOperation(second); + if (first$ == null) { + return Result.ok(second); + } + if (second$ == null) { + return Result.ok(first); + } + const result = composeDownOperation$4({ + first: first$, + second: second$, + }); + if (result.isError) { + return result; + } + return Result.ok(serializeDownOperation(result.value)); +}; +const restore$4 = ({ nextState, downOperation, }) => { + const downOperation$ = downOperation == null ? undefined : deserializeDownOperation(downOperation); + if (downOperation$ == null) { + return Result.ok({ + prevState: nextState, + twoWayOperation: undefined, + }); + } + const result = applyBackAndRestore({ + nextState, + downOperation: downOperation$, + }); + if (result.isError) { + return result; + } + return Result.ok({ + prevState: result.value.prevState, + twoWayOperation: serializeTwoWayOperation(result.value.restored), + }); +}; +// 元々はこの関数自身がserverTransformとしてexportされていたが、firstPrimeは必要ないためexportを外した。ただし将来使うことがあるかもしれないため一応残している。 +const serverTransformCore = ({ first, second, prevState, }) => { + const first$ = first == null ? undefined : deserializeTwoWayOperation(first); + if (first$ === undefined) { + const second$ = second == null ? undefined : deserializeUpOperation(second); + if (second$ === undefined) { + return Result.ok({ + firstPrime: undefined, + secondPrime: undefined, + }); + } + const restoreResult = applyAndRestore({ + prevState, + upOperation: second$, + }); + if (restoreResult.isError) { + return restoreResult; + } + return Result.ok({ + firstPrime: undefined, + secondPrime: serializeTwoWayOperation(restoreResult.value.restored), + }); + } + const second$ = second == null ? undefined : deserializeUpOperation(second); + if (second$ === undefined) { + return Result.ok({ + firstPrime: first$, + secondPrime: undefined, + }); + } + const secondResult = applyAndRestore({ + prevState, + upOperation: second$, + }); + if (secondResult.isError) { + return secondResult; + } + const result = transformTwoWayOperation({ + first: first$, + second: secondResult.value.restored, + }); + if (result.isError) { + return result; + } + return Result.ok({ + firstPrime: serializeTwoWayOperation(result.value.firstPrime), + secondPrime: serializeTwoWayOperation(result.value.secondPrime), + }); +}; +const serverTransform$r = ({ first, second, prevState, }) => { + const result = serverTransformCore({ first, second, prevState }); + if (result.isError) { + return result; + } + return Result.ok(result.value.secondPrime); +}; +const clientTransform$5 = ({ first, second, }) => { + const first$ = first == null ? undefined : deserializeUpOperation(first); + if (first$ === undefined) { + const second$ = second == null ? undefined : deserializeUpOperation(second); + if (second$ === undefined) { + return Result.ok({ + firstPrime: undefined, + secondPrime: undefined, + }); + } + return Result.ok({ + firstPrime: undefined, + secondPrime: serializeUpOperation(second$), + }); + } + const second$ = second == null ? undefined : deserializeUpOperation(second); + if (second$ === undefined) { + return Result.ok({ + firstPrime: serializeUpOperation(first$), + secondPrime: undefined, + }); + } + const result = transformUpOperation({ + first: first$, + second: second$, + }); + if (result.isError) { + return result; + } + return Result.ok({ + firstPrime: serializeUpOperation(result.value.firstPrime), + secondPrime: serializeUpOperation(result.value.secondPrime), + }); +}; +const diff$4 = ({ prev, next, }) => { + if (prev === next) { + return undefined; + } + return serializeTwoWayOperation(diff$5({ + prevState: prev, + nextState: next, + })); +}; +const toUpOperation$2 = (source) => { + const twoWayOperation = deserializeTwoWayOperation(source); + if (twoWayOperation == null) { + throw new Error('This should not happen'); + } + const upOperation = toUpOperation$3(twoWayOperation); + return serializeUpOperation(upOperation); +}; +const toDownOperation$2 = (source) => { + const twoWayOperation = deserializeTwoWayOperation(source); + if (twoWayOperation == null) { + throw new Error('This should not happen'); + } + const downOperation = toDownOperation$3(twoWayOperation); + return serializeDownOperation(downOperation); +}; + +// CONSIDER: keyが1つのみのrecordOperationを用いることでこのコードを大幅に簡略化できないか? +const stateShouldNotBeUndefinedMessage = 'state should not be undefined'; +const firstTypeShouldBeSameAsSecondType = 'first type and second type should be same'; +const stringOrUndefined = z.union([z.string(), z.undefined()]); +const downOperation$1 = z.union([ + z.object({ + type: z.literal(replace$1), + replace: z.object({ + oldValue: stringOrUndefined, + }), + }), + z.object({ + type: z.literal(update$2), + update: downOperation$2, + }), +]); +const upOperation$1 = z.union([ + z.object({ + type: z.literal(replace$1), + replace: z.object({ + newValue: stringOrUndefined, + }), + }), + z.object({ + type: z.literal(update$2), + update: upOperation$2, + }), +]); +const toUpOperation$1 = (source) => { + if (source.type === replace$1) { + return { + type: replace$1, + replace: { + newValue: source.replace.newValue, + }, + }; + } + return { + type: update$2, + update: toUpOperation$2(source.update), + }; +}; +const toDownOperation$1 = (source) => { + if (source.type === replace$1) { + return { + type: replace$1, + replace: { + oldValue: source.replace.oldValue, + }, + }; + } + return { + type: update$2, + update: toDownOperation$2(source.update), + }; +}; +const apply$4 = (state, action) => { + if (action.type === replace$1) { + return Result.ok(action.replace.newValue); + } + if (state == null) { + return Result.error(stateShouldNotBeUndefinedMessage); + } + return apply$5(state, action.update); +}; +const applyBack$3 = (state, action) => { + if (action.type === replace$1) { + return Result.ok(action.replace.oldValue); + } + if (state == null) { + return Result.error(stateShouldNotBeUndefinedMessage); + } + return applyBack$4(state, action.update); +}; +// stateが必要ないため処理を高速化&簡略化できるが、その代わり戻り値のreplaceにおいて oldValue === undefined && newValue === undefined もしくは oldValue !== undefined && newValue !== undefinedになるケースがある。 +const composeDownOperation$2 = (first, second) => { + if (first == null) { + return Result.ok(second); + } + if (second == null) { + return Result.ok(first); + } + switch (first.type) { + case replace$1: + return Result.ok(first); + case update$2: + switch (second.type) { + case replace$1: { + if (second.replace.oldValue == null) { + return Result.error('Because first is update, second.oldValue should not be undefined'); + } + const oldValue = applyBack$4(second.replace.oldValue, first.update); + if (oldValue.isError) { + return oldValue; + } + return Result.ok({ + type: replace$1, + replace: { + oldValue: oldValue.value, + }, + }); + } + case 'update': { + const composed = composeDownOperation$3(first.update, second.update); + if (composed.isError) { + return composed; + } + if (composed.value == null) { + return Result.ok(undefined); + } + return Result.ok({ + type: update$2, + update: composed.value, + }); + } + } + } +}; +const diff$3 = ({ prev, next, }) => { + if (prev == null) { + if (next == null) { + return undefined; + } + return { + type: replace$1, + replace: { + oldValue: prev, + newValue: next, + }, + }; + } + if (next == null) { + return { + type: replace$1, + replace: { + oldValue: prev, + newValue: next, + }, + }; + } + const diff = diff$4({ prev, next }); + if (diff == null) { + return undefined; + } + return { + type: update$2, + update: diff, + }; +}; +// composeDownOperationは、時系列順でremove→addしたものをcomposeすると、本来はupdateになるべきだが、replaceになってしまうという仕様がある。だが、このrestore関数ではそれをupdateに変換してくれる。 +const restore$3 = ({ nextState, downOperation, }) => { + if (downOperation == null) { + return Result.ok({ + prevState: nextState, + twoWayOperation: undefined, + }); + } + if (downOperation.type === replace$1) { + return Result.ok({ + prevState: downOperation.replace.oldValue, + twoWayOperation: diff$3({ prev: downOperation.replace.oldValue, next: nextState }), + }); + } + if (nextState == null) { + return Result.error(stateShouldNotBeUndefinedMessage); + } + const restoredResult = restore$4({ + nextState, + downOperation: downOperation.update, + }); + if (restoredResult.isError) { + return restoredResult; + } + return Result.ok({ + prevState: restoredResult.value.prevState, + twoWayOperation: restoredResult.value.twoWayOperation == null + ? undefined + : { + type: update$2, + update: restoredResult.value.twoWayOperation, + }, + }); +}; +const serverTransform$q = ({ first, second, prevState, }) => { + if (second == null) { + return Result.ok(undefined); + } + if (second.type === replace$1) { + const oldValue = prevState; + const newValue = second.replace.newValue; + if (oldValue == null) { + if (newValue == null) { + return Result.ok(undefined); + } + return Result.ok({ + type: replace$1, + replace: { + oldValue, + newValue, + }, + }); + } + if (newValue == null) { + return Result.ok({ + type: replace$1, + replace: { + oldValue, + newValue, + }, + }); + } + const diff = diff$4({ prev: oldValue, next: newValue }); + if (diff == null) { + return Result.ok(undefined); + } + return Result.ok({ + type: update$2, + update: diff, + }); + } + if (prevState == null) { + return Result.error(stateShouldNotBeUndefinedMessage); + } + if (first?.type === replace$1) { + return Result.error(firstTypeShouldBeSameAsSecondType); + } + const xformResult = serverTransform$r({ + first: first?.update, + second: second.update, + prevState: prevState, + }); + if (xformResult.isError) { + return xformResult; + } + if (xformResult.value == null) { + return Result.ok(undefined); + } + return Result.ok({ + type: update$2, + update: xformResult.value, + }); +}; +const clientTransform$4 = ({ first, second, }) => { + if (first == null || second == null) { + return Result.ok({ + firstPrime: first, + secondPrime: second, + }); + } + if (first.type === replace$1) { + if (second.type === update$2) { + if (first.replace.newValue != null) { + throw new Error('because second is update, first replace.newValue must not be undefined'); + } + return Result.ok({ + firstPrime: first, + }); + } + if (first.replace.newValue == null) { + if (second.replace.newValue != null) { + throw new Error('first or second should be update'); + } + return Result.ok({}); + } + if (second.replace.newValue == null) { + throw new Error('first or second should be update'); + } + const diff = diff$4({ + prev: second.replace.newValue, + next: first.replace.newValue, + }); + return Result.ok({ + firstPrime: diff == null + ? undefined + : { + type: update$2, + update: toUpOperation$2(diff), + }, + }); + } + if (second.type === update$2) { + const xformResult = clientTransform$5({ + first: first.update, + second: second.update, + }); + if (xformResult.isError) { + return xformResult; + } + return Result.ok({ + firstPrime: xformResult.value.firstPrime == null + ? undefined + : { + type: update$2, + update: xformResult.value.firstPrime, + }, + secondPrime: xformResult.value.secondPrime == null + ? undefined + : { + type: update$2, + update: xformResult.value.secondPrime, + }, + }); + } + if (second.replace.newValue != null) { + throw new Error('because first is update, second replace.newValue must not be undefined'); + } + return Result.ok({ + secondPrime: second, + }); +}; + +const isEmptyRecord = (source) => { + for (const key in source) { + const value = source[key]; + if (value !== undefined) { + return false; + } + } + return true; +}; +const isIdRecord = (source) => { + for (const key in source) { + if (key === '$v' || key === '$r') { + continue; + } + const value = source[key]; + if (value !== undefined) { + return false; + } + } + return true; +}; +const record$1 = (value) => z.record(value.optional()); + +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ +/* eslint-disable @typescript-eslint/no-unsafe-return */ +const atomic = 'atomic'; +const replace = 'replace'; +const ot = 'ot'; +const record = 'record'; +const paramRecord = 'paramRecord'; +const object = 'object'; +/** Stateならば`T`に、TwoWayOperationならば`{ oldValue:T; newValue:T }`に変換されるtemplateを作成します。*/ +const createReplaceValueTemplate = (value) => { + return { + type: atomic, + mode: replace, + value, + }; +}; +/** Stateならば`string`(ただし`nullable === true`のときは代わりに`string | undefined`となます。`undefined`は`''`と同一として扱われます)に、TwoWayOperationならば変化のある部分のみを抽出したOperationに変換されるtemplateを作成します。*/ +const createTextValueTemplate = (nullable) => ({ + type: atomic, + mode: ot, + nullable, +}); +/** `Record`を表すtemplateを作成します。*/ +const createRecordValueTemplate = (value) => { + return { + type: record, + value, + }; +}; +/** `Record`を表すtemplateを作成します。存在しない要素はdefaultStateがセットされているとみなされます。 */ +const createParamRecordValueTemplate = (value, defaultState) => { + return { + type: paramRecord, + value, + defaultState, + }; +}; +/** 複数のtemplateから構成される新たなtemplateを作成します。 */ +const createObjectValueTemplate = (value, $v, $r) => { + return { + type: object, + $v, + $r, + value, + }; +}; +const state = (source) => { + switch (source.type) { + case atomic: { + switch (source.mode) { + case replace: + return source.value; + case ot: + return source.nullable + ? z.union([z.string(), z.undefined()]) + : z.string(); + } + break; + } + case record: + case paramRecord: { + return z.union([record$1(state(source.value)), z.undefined()]); + } + case object: { + return z + .object({ + $v: source.$v == null ? z.undefined() : z.literal(source.$v), + $r: source.$r == null ? z.undefined() : z.literal(source.$r), + }) + .and(z.object(mapRecord(source.value, value => state(value)))); + } + } +}; +const upOperation = (source) => { + switch (source.type) { + case atomic: { + switch (source.mode) { + case replace: + return z.object({ newValue: source.value }); + case ot: + return source.nullable + ? upOperation$1 + : upOperation$2; + } + break; + } + case record: { + return record$1(recordUpOperationElementFactory(state(source.value), upOperation(source.value))); + } + case paramRecord: + return record$1(upOperation(source.value)); + case object: { + return z + .object({ + $v: source.$v == null ? z.undefined() : z.literal(source.$v), + $r: source.$r == null ? z.undefined() : z.literal(source.$r), + }) + .and(z.object(mapRecord(source.value, value => upOperation(value))).partial()); + } + } +}; +const downOperation = (source) => { + switch (source.type) { + case atomic: { + switch (source.mode) { + case replace: + return z.object({ oldValue: source.value }); + case ot: + return source.nullable + ? downOperation$1 + : downOperation$2; + } + break; + } + case record: { + return record$1(recordDownOperationElementFactory(state(source.value), downOperation(source.value))); + } + case paramRecord: { + return record$1(downOperation(source.value)); + } + case object: { + const base = z + .object({ + $v: source.$v == null ? z.undefined() : z.literal(source.$v), + $r: source.$r == null ? z.undefined() : z.literal(source.$r), + }) + .and(z.object(mapRecord(source.value, value => downOperation(value))).partial()); + return base; + } + } +}; + +const Default = 'Default'; +const Uploader = 'Uploader'; +const FirebaseStorage = 'FirebaseStorage'; +const sourceType = z.union([z.literal(Default), z.literal(Uploader), z.literal(FirebaseStorage)]); +const filePathValue = z.object({ + $v: z.literal(1), + $r: z.literal(1), + path: z.string(), + sourceType, +}); +const filePathTemplate = createReplaceValueTemplate(filePathValue); + +const toFFilePath = (source, astInfo) => { + const result = new FRecord(); + result.set({ property: new FString('path'), newValue: new FString(source.path), astInfo }); + result.set({ + property: new FString('sourceType'), + newValue: new FString(source.sourceType), + astInfo, + }); + return result; +}; +const toFilePathOrUndefined = (source, astInfo) => { + if (source === undefined) { + return undefined; + } + if (source?.type !== FType.Object) { + throw new ScriptError(); + } + const path = beginCast(source.get({ property: new FString('path'), astInfo }), astInfo) + .addString() + .cast(); + const sourceType = beginCast(source.get({ property: new FString('sourceType'), astInfo }), astInfo) + .addString() + .cast(); + if (sourceType !== Default && sourceType !== FirebaseStorage) { + throw new ScriptError(`File type must be '${Default}' or '${FirebaseStorage}'`, astInfo?.range); + } + return { + $v: 1, + $r: 1, + path, + sourceType, + }; +}; + +const value$1 = 'value'; +const isValueSecret$1 = 'isValueSecret'; +class FNumParam extends FObject { + numParam; + constructor(numParam) { + super(); + this.numParam = numParam; + } + getCore({ key }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case value$1: + return this.numParam.value == null ? undefined : new FNumber(this.numParam.value); + case isValueSecret$1: + return new FBoolean(this.numParam.isValuePrivate); + default: + return undefined; + } + } + setCore({ key, newValue, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case value$1: + this.numParam.value = beginCast(newValue, astInfo) + .addNumber() + .addUndefined() + .cast(); + return; + case isValueSecret$1: + this.numParam.isValuePrivate = beginCast(newValue, astInfo).addBoolean().cast(); + return; + default: + throw new ScriptError(`${typeof key === 'symbol' ? 'symbol' : key}への値のセットは制限されています。`); + } + } + toJObject() { + return this.numParam; + } +} + +const createDefaultState$1 = () => ({ + $v: 2, + $r: 1, + value: 0, + isValuePrivate: false, + overriddenParameterName: undefined, +}); +class FNumParams extends FObject { + numParams; + room; + constructor(numParams, room) { + super(); + this.numParams = numParams; + this.room = room; + } + findKeysByName(nameOrKey) { + if (this.room.numParamNames == null) { + return []; + } + return recordToArray(this.room.numParamNames) + .filter(({ value }, i) => value.name === nameOrKey || i + 1 === nameOrKey) + .map(({ key }) => key); + } + findByName(nameOrKeyValue, astInfo) { + const name = beginCast(nameOrKeyValue, astInfo).addString().addNumber().cast(); + const keys = this.findKeysByName(name); + for (const key of keys) { + const found = this.numParams[key]; + if (found == null) { + const newValue = createDefaultState$1(); + this.numParams[key] = newValue; + return newValue; + } + return found; + } + return undefined; + } + incrOrDecrValue(nameOrKeyValue, diffValue, isIncr, astInfo) { + const diff = beginCast(diffValue, astInfo).addNumber().cast(); + const found = this.findByName(nameOrKeyValue, astInfo); + if (found == null) { + return; + } + if (found.value == null) { + return; + } + if (isIncr) { + found.value += diff; + } + else { + found.value -= diff; + } + } + setIsValuePrivate(nameOrKeyValue, newValue, astInfo) { + const $newValue = beginCast(newValue, astInfo).addBoolean().cast(); + const found = this.findByName(nameOrKeyValue, astInfo); + if (found == null) { + return; + } + found.isValuePrivate = $newValue; + } + getCore({ key, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case 'find': + return new FFunction(({ args }) => { + const result = this.findByName(args[0], astInfo); + if (result == null) { + return undefined; + } + return new FNumParam(result); + }); + case 'incrementValue': + return new FFunction(({ args }) => { + this.incrOrDecrValue(args[0], args[1], true, astInfo); + return undefined; + }); + case 'decrementValue': + return new FFunction(({ args }) => { + this.incrOrDecrValue(args[0], args[1], false, astInfo); + return undefined; + }); + case 'setValue': + return new FFunction(({ args }) => { + const newValue = beginCast(args[1], astInfo).addNumber().cast(); + const found = this.findByName(args[0], astInfo); + if (found == null) { + return; + } + found.value = newValue; + return undefined; + }); + case 'setIsValueSecret': + return new FFunction(({ args }) => { + this.setIsValuePrivate(args[0], args[1], astInfo); + return undefined; + }); + } + return undefined; + } + setCore() { + throw new ScriptError('値のセットは制限されています。'); + } + toJObject() { + return this.numParams; + } +} + +const value = 'value'; +const isValueSecret = 'isValueSecret'; +class FStrParam extends FObject { + strParam; + constructor(strParam) { + super(); + this.strParam = strParam; + } + getCore({ key }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case value: + return this.strParam.value == null ? undefined : new FString(this.strParam.value); + case isValueSecret: + return new FBoolean(this.strParam.isValuePrivate); + default: + return undefined; + } + } + setCore({ key, newValue, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case value: + this.strParam.value = beginCast(newValue, astInfo).addString().cast(); + return; + case isValueSecret: + this.strParam.isValuePrivate = beginCast(newValue, astInfo).addBoolean().cast(); + return; + default: + throw new ScriptError(`${typeof key === 'symbol' ? 'symbol' : key}への値のセットは制限されています。`); + } + } + toJObject() { + return this.strParam; + } +} + +const createDefaultState = () => ({ + $v: 2, + $r: 1, + value: '', + isValuePrivate: false, + overriddenParameterName: undefined, +}); +class FStrParams extends FObject { + strParams; + room; + constructor(strParams, room) { + super(); + this.strParams = strParams; + this.room = room; + } + findKeysByName(nameOrKey) { + if (this.room.strParamNames == null) { + return []; + } + return recordToArray(this.room.strParamNames) + .filter(({ value }, i) => value.name === nameOrKey || i + 1 === nameOrKey) + .map(({ key }) => key); + } + findByName(nameOrKeyValue, astInfo) { + const name = beginCast(nameOrKeyValue, astInfo).addString().cast(); + const keys = this.findKeysByName(name); + for (const key of keys) { + const found = this.strParams[key]; + if (found == null) { + const newValue = createDefaultState(); + this.strParams[key] = newValue; + return newValue; + } + return found; + } + return undefined; + } + setIsValuePrivate(nameOrKeyValue, newValue, astInfo) { + const $newValue = beginCast(newValue, astInfo).addBoolean().cast(); + const found = this.findByName(nameOrKeyValue, astInfo); + if (found == null) { + return; + } + found.isValuePrivate = $newValue; + } + getCore({ key, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case 'find': + return new FFunction(({ args }) => { + const result = this.findByName(args[0], astInfo); + if (result == null) { + return undefined; + } + return new FStrParam(result); + }); + case 'setValue': + return new FFunction(({ args }) => { + const newValue = beginCast(args[1], astInfo).addString().cast(); + const found = this.findByName(args[0], astInfo); + if (found == null) { + return; + } + found.value = newValue; + return undefined; + }); + case 'setIsValueSecret': + return new FFunction(({ args }) => { + this.setIsValuePrivate(args[0], args[1], astInfo); + return undefined; + }); + } + return undefined; + } + setCore() { + throw new ScriptError('値のセットは制限されています。'); + } + toJObject() { + return this.strParams; + } +} + +const icon = 'icon'; +const name$2 = 'name'; +const booleanParameters = 'booleanParameters'; +const numberParameters = 'numberParameters'; +const maxNumberParameters = 'maxNumberParameters'; +const portrait = 'portrait'; +const stringParameters = 'stringParameters'; +class FCharacter extends FObject { + character; + room; + constructor(character, room) { + super(); + this.character = character; + this.room = room; + } + getCore({ key, astInfo }) { + switch (key) { + case booleanParameters: { + if (this.character.boolParams == null) { + this.character.boolParams = {}; + } + return new FBoolParams(this.character.boolParams, this.room); + } + case icon: + return this.character.image == null + ? null + : toFFilePath(this.character.image, astInfo); + case maxNumberParameters: { + if (this.character.numMaxParams == null) { + this.character.numMaxParams = {}; + } + return new FNumParams(this.character.numMaxParams, this.room); + } + case name$2: + return new FString(this.character.name); + case numberParameters: { + if (this.character.numParams == null) { + this.character.numParams = {}; + } + return new FNumParams(this.character.numParams, this.room); + } + case portrait: + return this.character.portraitImage == null + ? null + : toFFilePath(this.character.portraitImage, astInfo); + case stringParameters: { + if (this.character.strParams == null) { + this.character.strParams = {}; + } + return new FStrParams(this.character.strParams, this.room); + } + default: + return undefined; + } + } + setCore({ key, newValue, astInfo }) { + switch (key) { + case icon: { + const $newValue = beginCast(newValue, astInfo).addObject().cast(); + this.character.image = toFilePathOrUndefined($newValue, astInfo); + return; + } + case name$2: { + const $newValue = beginCast(newValue, astInfo).addString().cast(); + this.character.name = $newValue; + return; + } + case booleanParameters: + case maxNumberParameters: + case numberParameters: + case stringParameters: { + throw new ScriptError(`${key}は読み取り専用プロパティです。`); + } + case portrait: { + const $newValue = beginCast(newValue, astInfo).addObject().cast(); + this.character.portraitImage = toFilePathOrUndefined($newValue, astInfo); + return; + } + default: + throw new ScriptError(`'${typeof key === 'symbol' ? 'symbol' : key}' is not supported.`, astInfo?.range); + } + } + toJObject() { + return this.character; + } +} + +class FParamNames extends FObject { + room; + mode; + constructor(room, mode) { + super(); + this.room = room; + this.mode = mode; + } + getParamNames() { + switch (this.mode) { + case 'Boolean': { + if (this.room.boolParamNames == null) { + this.room.boolParamNames = {}; + } + return this.room.boolParamNames; + } + case 'Number': { + if (this.room.numParamNames == null) { + this.room.numParamNames = {}; + } + return this.room.numParamNames; + } + case 'String': { + if (this.room.strParamNames == null) { + this.room.strParamNames = {}; + } + return this.room.strParamNames; + } + } + } + find(key, astInfo) { + const keyAsString = beginCast(key, astInfo).addNumber().cast().toString(); + if (!isStrIndex20(keyAsString)) { + return undefined; + } + return this.getParamNames()[keyAsString]; + } + ensure(key, astInfo) { + const keyAsString = beginCast(key, astInfo).addNumber().cast().toString(); + if (!isStrIndex20(keyAsString)) { + return undefined; + } + const found = this.getParamNames()[keyAsString]; + if (found != null) { + return found; + } + const result = { + $v: 1, + $r: 1, + name: '', + }; + this.getParamNames()[keyAsString] = result; + return result; + } + delete(key, astInfo) { + const keyAsString = beginCast(key, astInfo).addNumber().cast().toString(); + if (!isStrIndex20(keyAsString)) { + return false; + } + const found = this.getParamNames()[keyAsString]; + if (found == null) { + return false; + } + this.getParamNames()[keyAsString] = undefined; + return true; + } + getCore({ key, astInfo }) { + const keyAsString = key.toString(); + switch (keyAsString) { + case 'getName': + return new FFunction(({ args }) => { + const result = this.find(args[0], astInfo); + if (result == null) { + return undefined; + } + return new FString(result.name); + }); + case 'setName': + return new FFunction(({ args }) => { + const result = this.ensure(args[0], astInfo); + const newName = beginCast(args[1], astInfo).addString().cast(); + if (result == null) { + return undefined; + } + result.name = newName; + return undefined; + }); + case 'delete': + return new FFunction(({ args }) => { + return new FBoolean(this.delete(args[0], astInfo)); + }); + } + return undefined; + } + setCore() { + throw new ScriptError('値のセットは制限されています。'); + } + toJObject() { + return this.getParamNames(); + } +} + +const name$1 = 'name'; +class FParticipant extends FObject { + participant; + constructor(participant) { + super(); + this.participant = participant; + } + getCore({ key }) { + switch (key) { + case name$1: { + const name = this.participant.name; + if (name == null) { + return null; + } + return new FString(name); + } + default: + return undefined; + } + } + setCore({ key, newValue, astInfo }) { + switch (key) { + case name$1: { + const $newValue = beginCast(newValue, astInfo).addString().addNull().cast(); + if ($newValue === null) { + this.participant.name = undefined; + return; + } + const parsed = maxLength100String.safeParse($newValue); + if (!parsed.success) { + throw new ScriptError(`${key}は100文字以下にする必要があります。`); + } + this.participant.name = parsed.data; + return; + } + default: + throw new ScriptError(`'${typeof key === 'symbol' ? 'symbol' : key}' is not supported.`, astInfo?.range); + } + } + toJObject() { + return this.participant; + } +} + +class FStateRecord extends FRecordRef { + createNewState; + toRef; + constructor({ states, createNewState, toRef, unRef, }) { + super(states, state => (state === undefined ? undefined : toRef(state)), fValue => unRef(fValue)); + this.createNewState = createNewState; + this.toRef = toRef; + } + getCore({ key, astInfo }) { + switch (key) { + case 'set': + // setを有効化すると、不正なStateをセットし放題になってしまうため、代わりにcreateを使ってもらうようにしている。 + return undefined; + case 'create': { + const createNewState = this.createNewState; + if (createNewState == null) { + return undefined; + } + /* + createメソッドの代わりにaddメソッドを実装してユーザーが作成したStateを代入できるようにする作戦は不採用とした。理由は、下のようなコードを書かれた場合に困るため。 + + let states; // FStatesRecordのインスタンス + let newState; // Stateのインスタンス + states.add(newState); + states.add(newState); + newState.name = 'foo'; + + newStateはFRecordであり、それをFStatesRecord.statesに追加する場合はJavaScriptオブジェクトに変換するかFRecordのまま保持するしかない。だが、前者の場合はnewStateの参照の同一性が保持できず、後者はFStatesRecord.statesに2つの型が混在するためコードが複雑化するという問題がある。 + */ + return new FFunction(({ isNew, astInfo }) => { + this.prepareInstanceMethod(isNew, astInfo); + const newState = createNewState(); + const record = this.source; + const id = simpleId(); + record[id] = newState; + const result = new FRecord(); + result.set({ property: new FString('id'), newValue: new FString(id), astInfo }); + result.set({ + property: new FString('value'), + newValue: this.toRef(newState), + astInfo, + }); + return result; + }); + } + default: + return super.getCore({ key, astInfo }); + } + } +} + +const name = 'name'; +const characters = 'characters'; +class FRoom extends FObject { + myUserUid; + // FRoom内の State は全てmutableとして扱う。FCharacter内のCharacter.Stateなども同様。 + _room; + constructor(source, myUserUid) { + super(); + this.myUserUid = myUserUid; + this._room = cloneDeep(source); + } + get room() { + return this._room; + } + findCharacter(stateId) { + const character = (this._room.characters ?? {})[stateId]; + if (character == null) { + return undefined; + } + return new FCharacter(character, this.room); + } + getCore({ key }) { + switch (key) { + case name: + return new FString(this._room.name); + case 'booleanParameterNames': + return new FParamNames(this.room, 'Boolean'); + case characters: + return new FStateRecord({ + states: (() => { + if (this.room.characters == null) { + this.room.characters = {}; + } + return this.room.characters; + })(), + createNewState: () => ({ + $v: 2, + $r: 1, + ownerParticipantId: this.myUserUid, + image: undefined, + isPrivate: false, + memo: '', + name: '', + chatPalette: '', + dicePieceValues: {}, + hasTag1: false, + hasTag2: false, + hasTag3: false, + hasTag4: false, + hasTag5: false, + hasTag6: false, + hasTag7: false, + hasTag8: false, + hasTag9: false, + hasTag10: false, + pieces: {}, + privateCommands: {}, + privateVarToml: '', + portraitImage: undefined, + portraitPieces: {}, + boolParams: {}, + numParams: {}, + numMaxParams: {}, + strParams: {}, + stringPieceValues: {}, + }), + toRef: x => new FCharacter(x, this.room), + unRef: x => { + if (x instanceof FCharacter) { + return x.character; + } + throw new Error('this should not happen'); + }, + }); + case 'numberParameterNames': + return new FParamNames(this.room, 'Number'); + case 'stringParameterNames': + return new FParamNames(this.room, 'String'); + case 'participants': + return new FStateRecord({ + states: (() => { + if (this.room.participants == null) { + this.room.participants = {}; + } + return this.room.participants; + })(), + createNewState: undefined, + toRef: x => new FParticipant(x), + unRef: x => { + if (x instanceof FParticipant) { + return x.participant; + } + throw new Error('this should not happen'); + }, + }); + default: + return undefined; + } + } + setCore({ key, newValue, astInfo }) { + switch (key) { + case name: { + const $newValue = beginCast(newValue, astInfo).addString().cast(); + this._room.name = $newValue; + return; + } + default: + throw new ScriptError(`${typeof key === 'symbol' ? 'symbol' : key}への値のセットは制限されています。`, astInfo?.range); + } + } + toJObject() { + return this._room; + } +} + +class CommandError extends Error { + range; + constructor(message, range) { + super(message); + this.range = range; + this.name = 'CommandError'; + } +} +const testCommand = (script) => { + try { + test(script); + } + catch (e) { + if (e instanceof ScriptError) { + return Result.error(new CommandError(e.message, e.range)); + } + if (e instanceof Error) { + return Result.error(new CommandError(e.message)); + } + throw e; + } + return Result.ok(undefined); +}; +const execCharacterCommand = ({ script, room, characterId, myUserUid, }) => { + const fRoom = new FRoom(room, myUserUid); + const fCharacter = fRoom.findCharacter(characterId); + if (fCharacter == null) { + throw new Error(`character(${keyNames(characterId)}) not found`); + } + const globalThis = { + room: fRoom, + character: fCharacter, + Array: arrayClass, + console: createConsoleClass('[Floconスクリプト]'), + }; + try { + exec(script, globalThis); + } + catch (e) { + if (e instanceof ScriptError) { + return Result.error(new CommandError(e.message, e.range)); + } + if (e instanceof Error) { + return Result.error(new CommandError(e.message)); + } + throw e; + } + const result = fRoom.room; + return Result.ok(result); +}; + +const toPathArray = (source) => { + let result; + if (typeof source === 'string') { + result = source.replace(/(^\/)|(\/$)/g, '').split('/'); + } + else { + result = source; + } + return result.filter(name => name !== ''); +}; +const replacement = '_'; +const sanitizeCore = (input) => { + /* + npm の sanitize-filename(https://github.com/parshap/node-sanitize-filename/blob/209c39b914c8eb48ee27bcbde64b2c7822fdf3de/index.js ライセンスは WTFPL or ISC)を参考にしている。 + sanitize-filename からの主な変更点は次の通り。 + + - no-useless-escapeのwarningが出る\を消去。 + - windowsReservedReとwindowsTrailingReを消去。 + */ + const illegalRe = /[/?<>\\:*|"]/g; + // eslint-disable-next-line no-control-regex + const controlRe = /[\x00-\x1f\x80-\x9f]/g; + const reservedRe = /^\.+$/; + return input + .replace(illegalRe, replacement) + .replace(controlRe, replacement) + .replace(reservedRe, replacement); +}; +const sanitizeFoldername = (input) => { + const sanitized = sanitizeCore(input); + // 255という数値は、実用的な長さの中で最大値だとこちらで判断した値 + return truncate(sanitized, 255); +}; +const sanitizeFilename = (input) => { + const sanitized = sanitizeCore(input); + // 255という数値は、実用的な長さの中で最大値だとこちらで判断した値 + const result = truncate(sanitized, 255); + if (sanitized !== result) { + // truncateが発生したファイル名をそのまま返すと、拡張子が消えて混乱を招くおそれがあるため代わりにnullを返している。 + return null; + } + return result; +}; +const toResult = (path) => { + const arrayResult = toPathArray(path); + return { + string: arrayResult.join('/'), + array: arrayResult, + }; +}; +const trySanitizePath = (path) => { + const pathArray = toPathArray(path); + const sanitizedArray = []; + for (const elem of pathArray) { + const next = sanitizeCore(elem); + sanitizedArray.push(next); + } + const result = toResult(sanitizedArray); + if (result.string != null) { + // Firebase および Cloud Storage には length 1-1024 bytes when UTF-8 encoded という制限があるので1024を指定している + const truncated = truncate(result.string, 1024); + if (result.string !== truncated) { + // truncateが発生したファイルパスをそのまま返すと、末尾のほうのフォルダがなくなったり、拡張子が消えて混乱を招くおそれがあるため代わりにnullを返している。 + return null; + } + } + return result; +}; +/** + * + * @returns Sanitizeされていない値を返します。 + */ +const joinPath = (left, ...right) => { + let source = toPathArray(left); + for (const r of right) { + const next = toPathArray(r); + source = [...source, ...next]; + } + return toResult(source); +}; + +const createFakeFirebaseConfig1 = () => { + const json = '{"apiKey": "1abcde-ghijk-lmno-1234","authDomain": "1***.firebaseapp.com","projectId": "1***","storageBucket": "1***.appspot.com","messagingSenderId": "11234567890","appId": "1:1234567890:web:1234567890abcdef"}'; + const parsed = firebaseConfig.parse(JSON.parse(json)); + return [parsed, json]; +}; +const fakeFirebaseConfig1 = createFakeFirebaseConfig1(); +const createFakeFirebaseConfig2 = () => { + const json = '{"apiKey": "2abcde-ghijk-lmno-1234","authDomain": "2***.firebaseapp.com","projectId": "2***","storageBucket": "2***.appspot.com","messagingSenderId": "21234567890","appId": "2:1234567890:web:1234567890abcdef"}'; + const parsed = firebaseConfig.parse(JSON.parse(json)); + return [parsed, json]; +}; +const fakeFirebaseConfig2 = createFakeFirebaseConfig2(); + +// (不正な|悪意のある)キーが混入するおそれがあるのはserverTransformのときのみなので、serverTransform以外では使わなくてよい +const isValidKey = (key) => { + // Firebase Authenticationのuidは28文字のようなので、最低でもその文字数は許容しなければならない + if (key.length >= 40) { + return false; + } + return key.match(/^([0-9a-zA-Z]|-|_)+$/g) != null; +}; + +const restore$2 = ({ nextState: unsafeNextState, downOperation: unsafeDownOperation, innerRestore, }) => { + const nextState = recordToMap(unsafeNextState); + if (unsafeDownOperation == null) { + return Result.ok({ + prevState: mapToRecord(nextState), + twoWayOperation: undefined, + }); + } + const prevState = new Map(nextState); + const twoWayOperation = new Map(); + for (const [key, value] of recordToMap(unsafeDownOperation)) { + const nextStateElement = nextState.get(key); + if (nextStateElement === undefined) { + return Result.error(`tried to update "${key}", but nextState does not have such a key`); + } + const restored = innerRestore({ + downOperation: value, + nextState: nextStateElement, + key, + }); + if (restored.isError) { + return restored; + } + if (restored.value === undefined) { + continue; + } + prevState.set(key, restored.value.prevState); + if (restored.value.twoWayOperation !== undefined) { + twoWayOperation.set(key, restored.value.twoWayOperation); + } + } + return Result.ok({ + prevState: mapToRecord(prevState), + twoWayOperation: twoWayOperation.size === 0 ? undefined : mapToRecord(twoWayOperation), + }); +}; +const apply$3 = ({ prevState: unsafePrevState, operation, innerApply, defaultState, }) => { + if (operation == null) { + return Result.ok(unsafePrevState); + } + const prevState = recordToMap(unsafePrevState); + const nextState = new Map(prevState); + for (const [key, value] of recordToMap(operation)) { + const prevStateElement = prevState.get(key) ?? defaultState; + const newValue = innerApply({ + operation: value, + prevState: prevStateElement, + key, + }); + if (newValue.isError) { + return newValue; + } + nextState.set(key, newValue.value); + } + return Result.ok(mapToRecord(nextState)); +}; +const applyBack$2 = ({ nextState: unsafeNextState, operation, innerApplyBack, defaultState, }) => { + if (operation == null) { + return Result.ok(unsafeNextState); + } + const nextState = recordToMap(unsafeNextState); + const prevState = new Map(nextState); + for (const [key, value] of recordToMap(operation)) { + const nextStateElement = nextState.get(key) ?? defaultState; + const oldValue = innerApplyBack({ + operation: value, + nextState: nextStateElement, + key, + }); + if (oldValue.isError) { + return oldValue; + } + prevState.set(key, oldValue.value); + } + return Result.ok(mapToRecord(prevState)); +}; +// UpOperation、DownOperation、TwoWayOperation のいずれにも使用可能なので、composeDownOperationではなくcomposeという汎用的な名前を付けている。 +const compose$1 = ({ first, second, innerCompose, }) => { + if (first == null) { + return Result.ok(second == null || isEmptyRecord(second) ? undefined : second); + } + if (second == null) { + return Result.ok(first == null || isEmptyRecord(first) ? undefined : first); + } + const result = new Map(); + for (const [key, groupJoined] of groupJoinMap(recordToMap(first), recordToMap(second))) { + switch (groupJoined.type) { + case left: + result.set(key, groupJoined.left); + continue; + case right: + result.set(key, groupJoined.right); + continue; + case both: { + const update = innerCompose({ + first: groupJoined.left, + second: groupJoined.right, + key, + }); + if (update.isError) { + return update; + } + if (update.value !== undefined) { + result.set(key, update.value); + } + continue; + } + } + } + return Result.ok(result.size === 0 ? undefined : mapToRecord(result)); +}; +/** Make sure `apply(stateBeforeFirst, first) = stateAfterFirst` */ +const serverTransform$p = ({ first: unsafeFirst, second: unsafeSecond, stateBeforeFirst: unsafeStateBeforeFirst, stateAfterFirst: unsafeStateAfterFirst, innerTransform, defaultState, }) => { + if (unsafeSecond === undefined) { + return Result.ok(undefined); + } + const result = new Map(); + const prevState = recordToMap(unsafeStateBeforeFirst); + const nextState = recordToMap(unsafeStateAfterFirst); + const first = unsafeFirst == null ? undefined : recordToMap(unsafeFirst); + for (const [key, operation] of recordToMap(unsafeSecond)) { + if (!isValidKey(key)) { + return Result.error(`${key} is not a valid key.`); + } + const innerPrevState = prevState.get(key) ?? defaultState; + const innerNextState = nextState.get(key) ?? defaultState; + const innerFirst = first == null ? undefined : first.get(key); + const transformed = innerTransform({ + first: innerFirst, + second: operation, + prevState: innerPrevState, + nextState: innerNextState, + key, + }); + if (transformed.isError) { + return transformed; + } + const transformedUpdate = transformed.value; + if (transformedUpdate !== undefined) { + result.set(key, transformedUpdate); + } + } + return Result.ok(result.size === 0 ? undefined : mapToRecord(result)); +}; +const clientTransform$3 = ({ state, first, second, innerTransform, defaultState, }) => { + if (first === undefined || second === undefined) { + return Result.ok({ + firstPrime: first === undefined || isEmptyRecord(first) ? undefined : first, + secondPrime: second === undefined || isEmptyRecord(second) ? undefined : second, + }); + } + const firstPrime = new Map(); + const secondPrime = new Map(); + let error = undefined; + groupJoinMap(recordToMap(first), recordToMap(second)).forEach((group, key) => { + if (error != null) { + return; + } + switch (group.type) { + case left: { + firstPrime.set(key, group.left); + return; + } + case right: { + secondPrime.set(key, group.right); + return; + } + case both: { + const s = state[key] ?? defaultState; + const xform = innerTransform({ + state: s, + first: group.left, + second: group.right, + }); + if (xform.isError) { + error = { error: xform.error }; + return; + } + if (xform.value.firstPrime !== undefined) { + firstPrime.set(key, xform.value.firstPrime); + } + if (xform.value.secondPrime !== undefined) { + secondPrime.set(key, xform.value.secondPrime); + } + return; + } + } + }); + if (error != null) { + return Result.error(error.error); + } + return Result.ok({ + firstPrime: firstPrime.size === 0 ? undefined : mapToRecord(firstPrime), + secondPrime: secondPrime.size === 0 ? undefined : mapToRecord(secondPrime), + }); +}; +const diff$2 = ({ prevState, nextState, innerDiff, }) => { + const result = new Map(); + for (const [key, value] of groupJoinMap(recordToMap(prevState), recordToMap(nextState))) { + let prevState = undefined; + let nextState = undefined; + switch (value.type) { + case left: + prevState = value.left; + break; + case right: { + nextState = value.right; + break; + } + case both: { + prevState = value.left; + nextState = value.right; + break; + } + } + const diffResult = innerDiff({ prevState, nextState, key }); + if (diffResult === undefined) { + continue; + } + result.set(key, diffResult); + continue; + } + if (result.size === 0) { + return undefined; + } + return mapToRecord(result); +}; + +/** Make sure `apply(prevState, source) = nextState` */ +const toClientState$i = ({ serverState, isPrivate, toClientState, }) => { + if (serverState == null) { + return undefined; + } + const result = new Map(); + recordForEach(serverState, (value, key) => { + if (isPrivate(value, key)) { + return; + } + result.set(key, toClientState({ state: value, key })); + }); + return mapToRecord(result); +}; +// composeDownOperationは、レコード内の同一キーを時系列順でremove→addしたものをcomposeすると、本来はupdateになるべきだが、replaceになってしまうという仕様がある。だが、このrestore関数ではそれをupdateに変換してくれる。その代わり、innerDiffはdownでなくtwoWayである必要がある。 +const restore$1 = ({ nextState, downOperation, innerRestore, innerDiff, }) => { + if (downOperation == null) { + return Result.ok({ + prevState: nextState, + twoWayOperation: undefined, + }); + } + const prevState = recordToMap(nextState); + const twoWayOperation = new Map(); + for (const [key, value] of recordToMap(downOperation)) { + switch (value.type) { + case 'replace': { + const oldValue = value.replace.oldValue; + const newValue = nextState[key]; + if (oldValue === undefined) { + prevState.delete(key); + } + else { + prevState.set(key, oldValue); + } + if (oldValue === undefined) { + if (newValue === undefined) { + break; + } + twoWayOperation.set(key, { + type: 'replace', + replace: { oldValue, newValue }, + }); + break; + } + if (newValue === undefined) { + twoWayOperation.set(key, { + type: 'replace', + replace: { oldValue, newValue: undefined }, + }); + break; + } + const diff = innerDiff({ + key, + prevState: oldValue, + nextState: newValue, + }); + if (diff !== undefined) { + twoWayOperation.set(key, { type: 'update', update: diff }); + } + break; + } + case 'update': { + const nextStateElement = nextState[key]; + if (nextStateElement === undefined) { + return Result.error(`tried to update "${key}", but nextState does not have such a key`); + } + const restored = innerRestore({ + key, + downOperation: value.update, + nextState: nextStateElement, + }); + if (restored.isError) { + return restored; + } + prevState.set(key, restored.value.prevState); + if (restored.value.twoWayOperation !== undefined) { + twoWayOperation.set(key, { + type: 'update', + update: restored.value.twoWayOperation, + }); + } + break; + } + } + } + return Result.ok({ + prevState: mapToRecord(prevState), + twoWayOperation: twoWayOperation.size === 0 ? undefined : mapToRecord(twoWayOperation), + }); +}; +// replace によって、存在しないキーを削除しようとしたり、すでに存在するキーに上書きするような operation は、現時点では許容している。だが、将来禁止するかもしれない。 +const apply$2 = ({ prevState, operation, innerApply, }) => { + if (operation == null) { + return Result.ok(prevState); + } + const nextState = recordToMap(prevState); + for (const [key, value] of recordToMap(operation)) { + switch (value.type) { + case 'replace': { + if (value.replace.newValue === undefined) { + nextState.delete(key); + } + else { + nextState.set(key, value.replace.newValue); + } + break; + } + case 'update': { + const prevStateElement = prevState[key]; + if (prevStateElement === undefined) { + return Result.error(`tried to update "${key}", but prevState does not have such a key`); + } + const newValue = innerApply({ + key, + operation: value.update, + prevState: prevStateElement, + }); + if (newValue.isError) { + return newValue; + } + nextState.set(key, newValue.value); + break; + } + } + } + return Result.ok(mapToRecord(nextState)); +}; +// replace によって、存在しないキーを削除しようとしたり、すでに存在するキーに上書きするような operation は、現時点では許容している。だが、将来禁止するかもしれない。 +const applyBack$1 = ({ nextState, operation, innerApplyBack, }) => { + if (operation == null) { + return Result.ok(nextState); + } + const prevState = recordToMap(nextState); + for (const [key, value] of recordToMap(operation)) { + switch (value.type) { + case 'replace': { + if (value.replace.oldValue === undefined) { + prevState.delete(key); + } + else { + prevState.set(key, value.replace.oldValue); + } + break; + } + case 'update': { + const nextStateElement = nextState[key]; + if (nextStateElement === undefined) { + return Result.error(`tried to update "${key}", but nextState does not have such a key`); + } + const oldValue = innerApplyBack({ + key, + operation: value.update, + state: nextStateElement, + }); + if (oldValue.isError) { + return oldValue; + } + prevState.set(key, oldValue.value); + break; + } + } + } + return Result.ok(mapToRecord(prevState)); +}; +// stateが必要ないため処理を高速化&簡略化できるが、その代わり戻り値のreplaceにおいて oldValue === undefined && newValue === undefined もしくは oldValue !== undefined && newValue !== undefinedになるケースがある。 +const compose = ({ first, second, composeReplaceReplace, composeReplaceUpdate, composeUpdateReplace, composeUpdateUpdate, }) => { + if (first == null) { + return Result.ok(second == null || isEmptyRecord(second) ? undefined : second); + } + if (second == null) { + return Result.ok(first == null || isEmptyRecord(first) ? undefined : first); + } + const result = new Map(); + for (const [key, groupJoined] of groupJoinMap(recordToMap(first), recordToMap(second))) { + switch (groupJoined.type) { + case left: + switch (groupJoined.left.type) { + case 'replace': + result.set(key, { + type: 'replace', + replace: groupJoined.left.replace, + }); + continue; + case 'update': + result.set(key, { + type: 'update', + update: groupJoined.left.update, + }); + continue; + } + break; + case right: + switch (groupJoined.right.type) { + case 'replace': + result.set(key, { + type: 'replace', + replace: groupJoined.right.replace, + }); + continue; + case 'update': + result.set(key, { + type: 'update', + update: groupJoined.right.update, + }); + continue; + } + break; + case both: + switch (groupJoined.left.type) { + case 'replace': + switch (groupJoined.right.type) { + case 'replace': { + const composed = composeReplaceReplace({ + first: groupJoined.left.replace, + second: groupJoined.right.replace, + key, + }); + if (composed.isError) { + return composed; + } + if (composed.value === undefined) { + continue; + } + result.set(key, { + type: 'replace', + replace: composed.value, + }); + continue; + } + case 'update': { + const composed = composeReplaceUpdate({ + first: groupJoined.left.replace, + second: groupJoined.right.update, + key, + }); + if (composed.isError) { + return composed; + } + if (composed.value === undefined) { + continue; + } + result.set(key, { + type: 'replace', + replace: composed.value, + }); + continue; + } + } + continue; + case 'update': + switch (groupJoined.right.type) { + case 'replace': { + const composed = composeUpdateReplace({ + first: groupJoined.left.update, + second: groupJoined.right.replace, + key, + }); + if (composed.isError) { + return composed; + } + if (composed.value === undefined) { + continue; + } + result.set(key, { + type: 'replace', + replace: composed.value, + }); + continue; + } + case 'update': { + const composed = composeUpdateUpdate({ + first: groupJoined.left.update, + second: groupJoined.right.update, + key, + }); + if (composed.isError) { + return composed; + } + if (composed.value === undefined) { + continue; + } + result.set(key, { + type: 'update', + update: composed.value, + }); + continue; + } + } + } + break; + } + } + return Result.ok(result.size === 0 ? undefined : mapToRecord(result)); +}; +const composeDownOperation$1 = ({ first, second, innerApplyBack, innerCompose, }) => { + return compose({ + first, + second, + composeReplaceReplace: params => { + return Result.ok(params.first); + }, + composeReplaceUpdate: params => { + return Result.ok(params.first); + }, + composeUpdateReplace: params => { + if (params.second.oldValue === undefined) { + return Result.error(`first is update, but second.oldValue is null. the key is "${params.key}".`); + } + const firstOldValue = innerApplyBack({ + key: params.key, + operation: params.first, + state: params.second.oldValue, + }); + if (firstOldValue.isError) { + return firstOldValue; + } + return Result.ok({ oldValue: firstOldValue.value }); + }, + composeUpdateUpdate: params => { + return innerCompose({ + key: params.key, + first: params.first, + second: params.second, + }); + }, + }); +}; +/** Make sure `apply(stateBeforeFirst, first) = stateAfterFirst` */ +const serverTransformWithoutValidation = ({ first, second, stateBeforeFirst, stateAfterFirst, innerTransform, toServerState, cancellationPolicy, }) => { + // 現在のCharacterの全体Privateの仕組みだと、PrivateになっているCharacterをupdateもしくはremoveしようとしてもエラーは出ない(最新の状態でPrivateになっているかどうかはクライアント側はわからないので、代わりにエラーを返すのは問題がある)。だが、現在のこのtransformのコードだと、存在しないCharacterをupdateもしくはremoveしようとするとエラーを返す。このため、keyを Brute-force attackすることで、PrivateになっているCharacterが存在することを理論上は判別できてしまう。だが、中の値は見ることができないので、現状のままでも問題ないと考えている。 + if (second === undefined) { + return Result.ok(undefined); + } + const result = new Map(); + for (const [key, operation] of recordToMap(second)) { + if (!isValidKey(key)) { + return Result.error(`"${key}" is not a valid key.`); + } + switch (operation.type) { + case replace$1: { + const innerPrevState = stateBeforeFirst?.[key]; + const innerNextState = stateAfterFirst?.[key]; + /**** requested to remove ****/ + if (operation.replace.newValue === undefined) { + if (innerPrevState === undefined) { + return Result.error(`"${key}" was not found at requested revision. It is not allowed to try to remove non-existing element.`); + } + if (innerNextState === undefined) { + // removeを試みたが、既に誰かによってremoveされているので何もする必要がない。よって終了。 + break; + } + if (cancellationPolicy.cancelRemove) { + if (cancellationPolicy.cancelRemove({ + key, + state: innerNextState, + })) { + break; + } + } + result.set(key, { + type: replace$1, + replace: { + oldValue: innerNextState, + newValue: undefined, + }, + }); + break; + } + /**** requested to add ****/ + if (innerPrevState !== undefined) { + return Result.error(`"${key}" was found at requested revision. When adding a state, old value must be empty.`); + } + if (innerNextState !== undefined) { + // addを試みたが、既に誰かによってaddされているので何もする必要がない。よって終了。 + break; + } + const newValue = toServerState(operation.replace.newValue, key); + if (cancellationPolicy.cancelCreate) { + if (cancellationPolicy.cancelCreate({ key, newState: newValue })) { + break; + } + } + result.set(key, { + type: replace$1, + replace: { + oldValue: undefined, + newValue, + }, + }); + break; + } + case update$2: { + const innerPrevState = stateBeforeFirst?.[key]; + const innerNextState = stateAfterFirst?.[key]; + const innerFirst = first?.[key]; + if (innerPrevState === undefined) { + return Result.error(`tried to update "${key}", but not found.`); + } + if (innerNextState === undefined) { + // updateを試みたが、既に誰かによってremoveされているのでupdateは行われない。よって終了。 + break; + } + // Type guard。事前条件が満たされていれば、innerPrevState !== undefinedかつinnerNextState !== undefinedならばこれは必ずfalseになるので、下のbreakには来ない。 + if (innerFirst !== undefined && innerFirst.type === replace$1) { + break; + } + if (cancellationPolicy.cancelUpdate) { + if (cancellationPolicy.cancelUpdate({ + key, + prevState: innerPrevState, + nextState: innerNextState, + })) { + break; + } + } + const transformed = innerTransform({ + first: innerFirst?.update, + second: operation.update, + prevState: innerPrevState, + nextState: innerNextState, + key, + }); + if (transformed.isError) { + return transformed; + } + const transformedUpdate = transformed.value; + if (transformedUpdate !== undefined) { + result.set(key, { + type: update$2, + update: transformedUpdate, + }); + } + } + } + } + return Result.ok(result.size === 0 ? undefined : mapToRecord(result)); +}; +/** Make sure `apply(stateBeforeFirst, first) = stateAfterFirst` */ +const serverTransform$o = (params) => { + const result = serverTransformWithoutValidation(params); + if (result.isError) { + return result; + } + if (result.value == null) { + return result; + } + if (params.validation?.maxRecordLength != null) { + const prevStateLength = recordToArray(params.stateAfterFirst).length; + let nextStateLength = prevStateLength; + recordForEach(result.value, operation => { + if (operation.type === update$2) { + return; + } + if (operation.replace.oldValue != null) { + nextStateLength--; + } + if (operation.replace.newValue != null) { + nextStateLength++; + } + }); + if (params.validation.maxRecordLength < nextStateLength && + prevStateLength < nextStateLength) { + return Result.error(`${params.validation.recordName} の要素の数が多すぎるため、これ以上追加することはできません。追加するには、不要な要素を削除してください。`); + } + } + return result; +}; +const transformElement = ({ state, first, second, innerTransform, innerDiff, errorMessageOnStateNotFound, }) => { + switch (first.type) { + case replace$1: + switch (second.type) { + case replace$1: + // 通常、片方がnon-undefinedならばもう片方もnon-undefined。 + if (first.replace.newValue !== undefined && + second.replace.newValue !== undefined) { + const diffResult = innerDiff({ + nextState: first.replace.newValue, + prevState: second.replace.newValue, + }); + if (diffResult === undefined) { + return Result.ok({ + firstPrime: undefined, + secondPrime: undefined, + }); + } + return Result.ok({ + firstPrime: { type: update$2, update: diffResult }, + secondPrime: undefined, + }); + } + // 通常、ここに来る場合は first.newValue === undefined && second.newValue === undefined + return Result.ok({ + firstPrime: undefined, + secondPrime: undefined, + }); + case update$2: + return Result.ok({ + firstPrime: first, + secondPrime: undefined, + }); + } + break; + case update$2: + switch (second.type) { + case replace$1: { + if (second.replace.newValue !== undefined) { + throw new Error('Tried to add an element, but already exists another value.'); + } + return Result.ok({ + firstPrime: undefined, + secondPrime: { + type: replace$1, + replace: { + newValue: undefined, + }, + }, + }); + } + case update$2: { + if (state === undefined) { + return Result.error(errorMessageOnStateNotFound); + } + const xform = innerTransform({ + state, + first: first.update, + second: second.update, + }); + if (xform.isError) { + return xform; + } + return Result.ok({ + firstPrime: xform.value.firstPrime == null + ? undefined + : { + type: update$2, + update: xform.value.firstPrime, + }, + secondPrime: xform.value.secondPrime == null + ? undefined + : { + type: update$2, + update: xform.value.secondPrime, + }, + }); + } + } + break; + } +}; +const clientTransform$2 = ({ state, first, second, innerTransform, innerDiff, }) => { + if (first == null || second == null) { + return Result.ok({ + firstPrime: first == null || isEmptyRecord(first) ? undefined : first, + secondPrime: second == null || isEmptyRecord(second) ? undefined : second, + }); + } + const firstPrime = new Map(); + const secondPrime = new Map(); + let error = undefined; + groupJoinMap(recordToMap(first), recordToMap(second)).forEach((group, key) => { + if (error != null) { + return; + } + switch (group.type) { + case left: { + firstPrime.set(key, group.left); + return; + } + case right: { + secondPrime.set(key, group.right); + return; + } + case both: { + const xform = transformElement({ + state: state[key], + first: group.left, + second: group.right, + innerTransform, + innerDiff, + errorMessageOnStateNotFound: `"${key}" is not found at RecordOperation.clientTransform.`, + }); + if (xform.isError) { + error = { error: xform.error }; + return; + } + if (xform.value.firstPrime !== undefined) { + firstPrime.set(key, xform.value.firstPrime); + } + if (xform.value.secondPrime !== undefined) { + secondPrime.set(key, xform.value.secondPrime); + } + return; + } + } + }); + if (error != null) { + return Result.error(error.error); + } + return Result.ok({ + firstPrime: firstPrime.size === 0 ? undefined : mapToRecord(firstPrime), + secondPrime: secondPrime.size === 0 ? undefined : mapToRecord(secondPrime), + }); +}; +const diff$1 = ({ prevState, nextState, innerDiff, }) => { + const result = new Map(); + for (const [key, value] of groupJoinMap(recordToMap(prevState), recordToMap(nextState))) { + switch (value.type) { + case left: + result.set(key, { + type: replace$1, + replace: { oldValue: value.left, newValue: undefined }, + }); + continue; + case right: { + result.set(key, { + type: replace$1, + replace: { oldValue: undefined, newValue: value.right }, + }); + continue; + } + case both: { + const diffResult = innerDiff({ + key, + prevState: value.left, + nextState: value.right, + }); + if (diffResult === undefined) { + continue; + } + result.set(key, { type: update$2, update: diffResult }); + continue; + } + } + } + if (result.size === 0) { + return undefined; + } + return mapToRecord(result); +}; +const mapRecordUpOperation = ({ source, mapState, mapOperation, }) => { + return chooseRecord(source, element => { + if (element.type === replace$1) { + return { + type: replace$1, + replace: { + newValue: element.replace.newValue == null + ? undefined + : mapState(element.replace.newValue), + }, + }; + } + return { + type: update$2, + update: mapOperation(element.update), + }; + }); +}; +const mapRecordDownOperation = ({ source, mapState, mapOperation, }) => { + return chooseRecord(source, element => { + if (element.type === replace$1) { + return { + type: replace$1, + replace: { + oldValue: element.replace.oldValue == null + ? undefined + : mapState(element.replace.oldValue), + }, + }; + } + return { + type: update$2, + update: mapOperation(element.update), + }; + }); +}; + +/* eslint-disable @typescript-eslint/no-unsafe-argument */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +/* eslint-disable @typescript-eslint/no-unsafe-return */ +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ +const $v = '$v'; +const $r = '$r'; +const isKeyToIgnore = (key) => key === $v || key === $r; +const warnNotFoundTemplate = ({ key, objectType, }) => { + loggerRef.warn(`"${key}" key was found at ${objectType} object, but template not found. It seems that the template is invalid or the ${objectType} object has keys which are not in the template.`); +}; +/** TwoWayOperationをUpOperationに変換します。 */ +const toUpOperation = (template) => (twoWayOperation) => { + const twoWayOperationAsAny = twoWayOperation; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return { + newValue: twoWayOperationAsAny.newValue, + }; + case ot: + return template.nullable + ? toUpOperation$1(twoWayOperationAsAny) + : toUpOperation$2(twoWayOperationAsAny); + } + break; + } + case record: { + return mapRecordUpOperation({ + source: twoWayOperation, + mapState: x => x, + mapOperation: operation => toUpOperation(template.value)(operation), + }); + } + case paramRecord: { + return mapRecord(twoWayOperation, x => toUpOperation(template.value)(x)); + } + case object: { + return mapRecord(twoWayOperation, (operationElement, key) => { + if (isKeyToIgnore(key)) { + return operationElement; + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + return undefined; + } + return toUpOperation(templateElement)(operationElement); + }); + } + } +}; +/** TwoWayOperationをDownOperationに変換します。 */ +const toDownOperation = (template) => (twoWayOperation) => { + const twoWayOperationAsAny = twoWayOperation; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return { + oldValue: twoWayOperationAsAny.oldValue, + }; + case ot: + return template.nullable + ? toDownOperation$1(twoWayOperationAsAny) + : toDownOperation$2(twoWayOperationAsAny); + } + break; + } + case record: { + return mapRecordDownOperation({ + source: twoWayOperation, + mapState: x => x, + mapOperation: operation => toDownOperation(template.value)(operation), + }); + } + case paramRecord: { + return mapRecord(twoWayOperation, x => toDownOperation(template.value)(x)); + } + case object: { + return mapRecord(twoWayOperation, (operationElement, key) => { + if (isKeyToIgnore(key)) { + return operationElement; + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + return undefined; + } + return toDownOperation(templateElement)(operationElement); + }); + } + } +}; +/** StateにUpOperationを適用します。破壊的な処理は行われません。 */ +const apply$1 = (template) => ({ state, operation }) => { + const operationAsAny = operation; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return Result.ok(operationAsAny.newValue); + case ot: + return template.nullable + ? apply$4(state, operationAsAny) + : apply$5(state, operationAsAny); + } + break; + } + case record: { + return apply$2({ + prevState: (state ?? {}), + operation: operation, + innerApply: ({ prevState, operation }) => apply$1(template.value)({ + state: prevState, + operation: operation, + }), + }); + } + case paramRecord: { + return apply$3({ + prevState: state ?? {}, + operation: operation, + innerApply: ({ prevState, operation }) => apply$1(template.value)({ + state: prevState, + operation: operation, + }), + defaultState: template.defaultState, + }); + } + case object: { + const result = { ...state }; + for (const { key, value } of recordToArray(operation)) { + if (isKeyToIgnore(key)) { + continue; + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + continue; + } + const applied = apply$1(templateElement)({ + state: state[key], + operation: value, + }); + if (applied.isError) { + return applied; + } + result[key] = applied.value; + } + return Result.ok(result); + } + } +}; +/** StateにDownOperationを適用します。破壊的な処理は行われません。 */ +const applyBack = (template) => ({ state, operation }) => { + const operationAsAny = operation; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return Result.ok(operationAsAny.oldValue); + case ot: + return template.nullable + ? applyBack$3(state, operationAsAny) + : applyBack$4(state, operationAsAny); + } + break; + } + case record: { + return applyBack$1({ + nextState: (state ?? {}), + operation: operation, + innerApplyBack: ({ state, operation }) => applyBack(template.value)({ + state, + operation: operation, + }), + }); + } + case paramRecord: { + return applyBack$2({ + nextState: state ?? {}, + operation: operation, + innerApplyBack: ({ nextState, operation }) => applyBack(template.value)({ + state: nextState, + operation: operation, + }), + defaultState: template.defaultState, + }); + } + case object: { + const result = { ...state }; + for (const { key, value } of recordToArray(operation)) { + if (isKeyToIgnore(key)) { + continue; + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + continue; + } + const applied = applyBack(templateElement)({ + state: state[key], + operation: value, + }); + if (applied.isError) { + return applied; + } + result[key] = applied.value; + } + return Result.ok(result); + } + } +}; +/** 連続する2つのDownOperationを合成します。破壊的な処理は行われません。 */ +const composeDownOperation = (template) => ({ first, second }) => { + const firstAsAny = first; + const secondAsAny = second; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return Result.ok({ + oldValue: firstAsAny.oldValue, + }); + case ot: + return template.nullable + ? composeDownOperation$2(firstAsAny, secondAsAny) + : composeDownOperation$3(firstAsAny, secondAsAny); + } + break; + } + case record: { + return composeDownOperation$1({ + first: first, + second: second, + innerApplyBack: ({ state, operation }) => applyBack(template.value)({ state, operation }), + innerCompose: ({ first, second }) => composeDownOperation(template.value)({ first, second }), + }); + } + case paramRecord: { + return compose$1({ + first, + second, + innerCompose: ({ first, second }) => composeDownOperation(template.value)({ first, second }), + }); + } + case object: { + const firstMap = recordToMap(first); + const secondMap = recordToMap(second); + const result = { + [$v]: template.$v, + [$r]: template.$r, + }; + for (const [key, value] of groupJoinMap(firstMap, secondMap)) { + if (isKeyToIgnore(key)) { + continue; + } + switch (value.type) { + case left: + result[key] = value.left; + break; + case right: + result[key] = value.right; + break; + default: { + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + continue; + } + const composed = composeDownOperation(templateElement)({ + first: value.left, + second: value.right, + }); + if (composed.isError) { + return composed; + } + result[key] = composed.value; + } + } + } + return Result.ok(result); + } + } +}; +/** + * Stateの情報を用いて、DownOperationをTwoWayOperationに変換します。破壊的な処理は行われません。 + * @param nextState DownOperationが適用される前の状態のState。 + */ +const restore = (template) => ({ nextState, downOperation }) => { + const nextStateAsAny = nextState; + const downOperationAsAny = downOperation; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return Result.ok({ + prevState: downOperationAsAny.oldValue, + twoWayOperation: { + oldValue: downOperationAsAny.oldValue, + newValue: nextState, + }, + }); + case ot: + return template.nullable + ? restore$3({ + nextState: nextStateAsAny, + downOperation: downOperationAsAny, + }) + : restore$4({ + nextState: nextStateAsAny, + downOperation: downOperationAsAny, + }); + } + break; + } + case record: { + return restore$1({ + nextState: (nextState ?? {}), + downOperation: downOperation, + innerDiff: ({ prevState, nextState }) => diff(template.value)({ prevState, nextState }), + innerRestore: ({ downOperation, nextState }) => restore(template.value)({ downOperation: downOperation, nextState }), + }); + } + case paramRecord: { + return restore$2({ + nextState: nextState ?? {}, + downOperation: downOperation, + innerRestore: ({ downOperation, nextState }) => restore(template.value)({ downOperation: downOperation, nextState }), + }); + } + case object: { + const prevState = { ...nextState }; + const twoWayOperation = { + [$v]: template.$v, + [$r]: template.$r, + }; + for (const { key, value } of recordToArray(downOperation)) { + if (isKeyToIgnore(key)) { + continue; + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + continue; + } + const restored = restore(templateElement)({ + nextState: nextState[key], + downOperation: value, + }); + if (restored.isError) { + return restored; + } + prevState[key] = restored.value.prevState; + twoWayOperation[key] = restored.value.twoWayOperation; + } + return Result.ok({ prevState, twoWayOperation }); + } + } +}; +/** 2つのStateオブジェクトの差分を取ります。 + * @returns 2つのオブジェクトが意味上で同一であればundefinedを返します。 + */ +const diff = (template) => ({ prevState, nextState }) => { + const prevStateAsAny = prevState; + const nextStateAsAny = nextState; + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return prevState === nextState + ? undefined + : { + oldValue: prevState, + newValue: nextState, + }; + case ot: + return template.nullable + ? diff$3({ + prev: prevStateAsAny, + next: nextStateAsAny, + }) + : diff$4({ prev: prevStateAsAny, next: nextStateAsAny }); + } + break; + } + case record: { + return diff$1({ + prevState: (prevState ?? {}), + nextState: (nextState ?? {}), + innerDiff: ({ prevState, nextState }) => diff(template.value)({ prevState, nextState }), + }); + } + case paramRecord: { + return diff$2({ + prevState: (prevState ?? {}), + nextState: (nextState ?? {}), + innerDiff: ({ prevState, nextState }) => diff(template.value)({ + prevState: prevState ?? template.defaultState, + nextState: nextState ?? template.defaultState, + }), + }); + } + case object: { + const prevStateMap = recordToMap(prevState); + const nextStateMap = recordToMap(nextState); + const result = { + [$v]: template.$v, + [$r]: template.$r, + }; + for (const [key, value] of groupJoinMap(prevStateMap, nextStateMap)) { + if (isKeyToIgnore(key)) { + continue; + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'state' }); + continue; + } + result[key] = diff(templateElement)({ + prevState: value.left, + nextState: value.right, + }); + } + if (isIdRecord(result)) { + return undefined; + } + return result; + } + } +}; +const requiresArrayTransformation = (operations) => { + for (const operation of operations) { + if (operation == null) { + continue; + } + for (const operationElement of recordToArray(operation)) { + if (operationElement.value.type === replace) { + const newValue = operationElement.value.replace.newValue; + if (typeof newValue === 'object' && + newValue != null && + $index in newValue && + newValue[$index] !== undefined) { + return true; + } + continue; + } + const update = operationElement.value.update; + if (typeof update === 'object' && + update != null && + $index in update && + update[$index] !== undefined) { + return true; + } + } + } + return false; +}; +/** + * ユーザーの権限を考慮せずに、通常のOperational Transformを行います。主にクライアント側で使われます。破壊的な処理は行われません。 + * + * この関数は次の2つの制約があります。 + * - `first`適用前のStateと`second`適用前のStateは等しい。 + * - このStateに対して`first`と`secondPrime`を順に適用したStateと、`second`と`firstPrime`を順に適用したStateは等しい。 + * + * Record の template の場合、state や operation に `$index` というキーのプロパティがある場合はIndexObject(配列の要素)であるとみなされ、`$index`を調整する operation が自動的に追加されることがあります。そのため、配列の要素とみなしたい場合を除いて`$index`というキーをオブジェクトに含めないようにしてください。 + */ +const clientTransform$1 = (template) => ({ state, first, second }) => { + switch (template.type) { + case atomic: { + switch (template.mode) { + case replace: + return Result.ok({ + firstPrime: { + newValue: first.newValue, + }, + secondPrime: undefined, + }); + case ot: + return template.nullable + ? clientTransform$4({ + first: first, + second: second, + }) + : clientTransform$5({ + first: first, + second: second, + }); + } + break; + } + case record: { + const $first = first; + const $second = second; + const args = { + state, + first: $first, + second: $second, + innerTransform: ({ state, first, second }) => clientTransform$1(template.value)({ + state, + first, + second, + }), + innerDiff: ({ prevState, nextState }) => { + const d = diff(template.value)({ prevState, nextState }); + if (d == null) { + return undefined; + } + return toUpOperation(template.value)(d); + }, + }; + if (requiresArrayTransformation([$first, $second])) { + return clientTransform({ + ...args, + innerApply: ({ prevState, operation }) => apply$1(template.value)({ state: prevState, operation }), + }); + } + return clientTransform$2(args); + } + case paramRecord: { + return clientTransform$3({ + state, + defaultState: template.defaultState, + first: first, + second: second, + innerTransform: ({ state, first, second }) => clientTransform$1(template.value)({ + state, + first, + second, + }), + }); + } + case object: { + const firstMap = recordToMap(first); + const secondMap = recordToMap(second); + const firstPrime = { + [$v]: template.$v, + [$r]: template.$r, + }; + const secondPrime = { + [$v]: template.$v, + [$r]: template.$r, + }; + for (const [key, value] of groupJoinMap(firstMap, secondMap)) { + if (isKeyToIgnore(key)) { + continue; + } + switch (value.type) { + case left: + firstPrime[key] = value.left; + break; + case right: + secondPrime[key] = value.right; + break; + default: { + const s = state[key]; + if (s === undefined) { + return Result.error(`${key} is not found at object client transform.`); + } + const templateElement = template.value[key]; + if (templateElement == null) { + warnNotFoundTemplate({ key, objectType: 'operation' }); + continue; + } + const xformed = clientTransform$1(templateElement)({ + state: s, + first: value.left, + second: value.right, + }); + if (xformed.isError) { + return xformed; + } + firstPrime[key] = xformed.value.firstPrime; + secondPrime[key] = xformed.value.secondPrime; + } + } + } + return Result.ok({ + firstPrime: isIdRecord(firstPrime) ? undefined : firstPrime, + secondPrime: isIdRecord(secondPrime) ? undefined : secondPrime, + }); + } + } +}; + +class OtError extends Error { + otError; + constructor(content) { + // TODO: よりわかりやすいメッセージを表示する + const message = content.type; + super(message); + this.otError = content; + this.name = 'OtError'; + } +} +const toOtError = (content) => { + if (typeof content === 'string') { + return new Error(content); + } + return new OtError(content); +}; + +class NodeAndEdges { + node; + edgeTargetNodes; + constructor(node, + /** この node が始点となる edge の全てのうち、それらの終点を表します。 */ + edgeTargetNodes) { + this.node = node; + this.edgeTargetNodes = edgeTargetNodes; + } + #longestPathsMemo = null; + /** この node を始点とした、最長の path を返します。この node は含まれます。最長の path が複数ある場合はすべて返します。 */ + // 値はメモ化されるため、longestPath を実行した後に edgeTargetNodes を変更してはならない。 + longestPaths() { + if (this.#longestPathsMemo != null) { + return this.#longestPathsMemo; + } + let longestPaths = [{ path: [this.node] }]; + let longestPathLength = 1; + for (const edgeTargetNode of this.edgeTargetNodes) { + for (const longestPath of edgeTargetNode.longestPaths()) { + const path = [this.node, ...longestPath.path]; + if (path.length < longestPathLength) { + continue; + } + if (path.length === longestPathLength) { + longestPaths.push({ path }); + continue; + } + longestPaths = [{ path }]; + longestPathLength = path.length; + } + } + this.#longestPathsMemo = longestPaths; + return this.#longestPathsMemo; + } +} +/** + * 与えられた配列について、次のすべての条件を満たした有向グラフを作成します。 + * + * 条件1. 配列の要素はすべてグラフの node である。例: [1,4,2] の場合は 1,4,2 の3つが node。 + * + * 条件2. edge の方向は、必ず配列内の位置で左から右の向き。例: [1,4,2] の場合は 1→4,4→2,1→2 のみが edge になりうる。4→1 や 1→1 などは決して edge にならない。 + * + * 条件3. 2つの edge があり、それを a, b とする。前者の edge の両端の node を x_a, y_a、後者のそれを x_b, y_b とする。このとき、a = b ⇔ x_a = x_b かつ y_a = y_b が成り立つ。つまり、2つの node を結ぶ edge は最大でも1つまでしか存在しない。 + * + * 条件4. edge は、(edge の始点) < (edge の終点) という順序関係を満たす。なお、(edge の始点) = (edge の終点) という順序関係を満たすことは許容されていない。 例: [1,4,2] の場合は、条件3もあわせて考慮すると、1→4,1→2 のみが edge になりうる。4→2 は決して edge にならない。 + * + * 条件5. edge は可能な限り多くする。例: [1,4,2,3] の場合は、条件1~4 もあわせて考慮すると、node は 1,4,2,3 で、edge は 1→4, 1→2, 1→3, 2→3 である。 + * + * なお、次の条件は理論的には必須ではありませんが、この関数を必要とする関数での処理の高速化のために設けています。 + * + * 条件6. 2つの相異なる node 間を結ぶ path が複数ある場合、最も edge の数が多い path を構成する edge のみを残し、他の edge はすべて削除する。これは条件5より優先される。例: [1,4,2,3] の場合は、条件1~4 のみを考慮すると edge は 1→4, 1→2, 1→3, 2→3 であるが、このうち1→3は1→2→3よりedgeの数が少ないため取り除く。「ショートカットできる経路はすべて削除する」と考えてもよい。 + */ +const createGraph = (source, comparer) => { + const memoized = source.map(() => null); + function getOrCreateNode(sourceIndex) { + const memoizedElement = memoized[sourceIndex]; + if (memoizedElement != null) { + return memoizedElement; + } + const startingNode = source[sourceIndex]; + const edgeTargetNodes = []; + for (let i = sourceIndex + 1; i < source.length; i++) { + const edgeTargetNode = getOrCreateNode(i); + const lastEdgeTargetNode = edgeTargetNodes[edgeTargetNodes.length - 1]; + // 上の条件6を満たすような edge の追加はせず continue する + if (lastEdgeTargetNode != null && + comparer(lastEdgeTargetNode.node, edgeTargetNode.node) === '<') { + continue; + } + if (comparer(startingNode, edgeTargetNode.node) === '<') { + edgeTargetNodes.push(edgeTargetNode); + } + } + const result = new NodeAndEdges(startingNode, edgeTargetNodes); + memoized[sourceIndex] = result; + return result; + } + source.forEach((_, index) => getOrCreateNode(index)); + return memoized.map(elem => { + if (elem == null) { + throw new Error('This should not happen'); + } + return elem; + }); +}; +const getBetterFixedPoints = ({ x, y, getIndex, }) => { + if (x.length < y.length) { + return 'yIsBetter'; + } + if (x.length > y.length) { + return 'xIsBetter'; + } + const getGaps = (path) => [...pairwiseIterable(path)] + .flatMap(pair => { + if (pair.prev == null) { + return []; + } + return [getIndex(pair.current) - getIndex(pair.prev)]; + }) + .sort((i, j) => i - j); + const gapsOfPrev = getGaps(x); + const gapsOfNext = getGaps(y); + for (const group of groupJoinArray(gapsOfPrev, gapsOfNext)) { + if (group.type !== both) { + throw new Error(`group.type should be "${both}", but actually "${group.type}".`); + } + if (group.left === group.right) { + continue; + } + return group.left < group.right ? 'yIsBetter' : 'xIsBetter'; + } + return 'same'; +}; +/** 配列が `prev` の状態から `next` の状態に変更されたとみなしたときに、動かすべきでない要素の一覧を返します。undefined である要素は無視されます。 */ +const getBestFixedPoints = ({ prev, next, getKey, comparer, }) => { + const nextMap = new Map(next.map((value, index) => [getKey(value), { value, index }])); + const graph = createGraph(prev.filter(value => nextMap.has(getKey(value))).map((value, index) => ({ value, index })), (x, y) => { + const nextX = nextMap.get(getKey(x.value)); + const nextY = nextMap.get(getKey(y.value)); + // nextX = nextY = null のときでも '>' を返せば edge は生成されないので問題ない + if (nextY === undefined) { + return '>'; + } + if (nextX === undefined) { + return '<'; + } + return comparer(nextX, nextY); + }); + let longestPath = []; + for (const g of graph) { + for (const { path } of g.longestPaths()) { + const compareResult = getBetterFixedPoints({ + x: longestPath, + y: path, + getIndex: x => x.index, + }); + switch (compareResult) { + case 'xIsBetter': + break; + case 'yIsBetter': + longestPath = path; + break; + } + } + } + return longestPath.map(({ value }) => value); +}; +/** + * + * 配列を最初の要素から順番に見ていって、`predicate` が満たされなくなるまで配列から要素を取り除きます。 + * + * @returns 取り除かれた要素。 + * + */ +const removeUntil = (source, predicate) => { + const result = []; + while (source.length !== 0) { + const first = source[0]; + if (!predicate(first)) { + return result; + } + result.push(first); + source.splice(0, 1); + } + return result; +}; +const arrayDiff = ({ prev, next, getKey, }) => { + const clonedPrev = [...prev]; + const clonedNext = [...next]; + const fixedPoints = getBestFixedPoints({ + prev: clonedPrev, + next: clonedNext, + getKey, + comparer: (x, y) => (x.index < y.index ? '<' : '>'), + }); + const builder = new OperationBuilder({ + getInsertLength: insert => new PositiveInt(insert.length), + getDeleteLength: del => new PositiveInt(del.length), + concatInsert: (x, y) => [...x, ...y], + concatDelete: (x, y) => [...x, ...y], + }); + for (const fixedPoint of fixedPoints) { + const deleted = removeUntil(clonedPrev, x => getKey(x) !== getKey(fixedPoint)); + if (isReadonlyNonEmptyArray(deleted)) { + builder.delete(deleted); + } + clonedPrev.splice(0, 1); + const inserted = removeUntil(clonedNext, x => getKey(x) !== getKey(fixedPoint)); + if (isReadonlyNonEmptyArray(inserted)) { + builder.insert(inserted); + } + clonedNext.splice(0, 1); + builder.retain(PositiveInt.one); + } + if (isReadonlyNonEmptyArray(clonedPrev)) { + builder.delete(clonedPrev); + } + if (isReadonlyNonEmptyArray(clonedNext)) { + builder.insert(clonedNext); + } + return { + value: builder.build(), + iterate: () => builder.toIterable(), + toUnits: () => builder.toUnits(), + }; +}; + +const apply = (state, operation) => { + const builder = new OperationBuilder({ + getInsertLength: insert => new PositiveInt(insert.length), + getDeleteLength: del => new PositiveInt(del.length), + concatInsert: (first, second) => [...first, ...second], + concatDelete: (first, second) => [...first, ...second], + }, operation); + const applied = apply$7({ + state, + action: [...builder.toIterable()], + getStateLength: state => state.length, + getInsertLength: insert => insert.length, + getDeleteLength: del => new PositiveInt(del.length), + insert: ({ state, start, replacement }) => { + const result = [...state.slice(0, start), ...replacement, ...state.slice(start)]; + return { newState: result }; + }, + replace: ({ state, start, replacement, deleteCount }) => { + const deleted = state.slice(start, deleteCount.value); + const result = [ + ...state.slice(0, start), + ...(replacement.isNone ? [] : replacement.value), + ...state.slice(start + deleteCount.value), + ]; + return { newState: result, deleted: deleted }; + }, + }); + if (applied.isError) { + return applied; + } + return Result.ok(applied.value.newState); +}; +const transform = (state, stateAppliedFirst, stateAppliedSecond, getKey) => { + const tagKey = '$tag'; + const $state = state.map(value => ({ value, [tagKey]: 0 })); + const $stateAppliedFirst = stateAppliedFirst.map(value => ({ value, [tagKey]: 1 })); + const $stateAppliedSecond = stateAppliedSecond.map(value => ({ value, [tagKey]: 2 })); + const $getKey = (x) => getKey(x.value); + const first = arrayDiff({ + prev: $state, + next: $stateAppliedFirst, + getKey: $getKey, + }); + const firstUnits = [...first.toUnits()]; + const second = arrayDiff({ + prev: $state, + next: $stateAppliedSecond, + getKey: $getKey, + }); + const secondUnits = [...second.toUnits()]; + const transformed = transform$1({ + first: firstUnits, + second: secondUnits, + splitDelete: (target, index) => { + const left = target.slice(0, index.value); + const right = target.slice(index.value); + return [ + left, + right, + ]; + }, + factory: { + getInsertLength: insert => new PositiveInt(insert.length), + getDeleteLength: del => new PositiveInt(del.length), + concatInsert: (first, second) => [...first, ...second], + concatDelete: (first, second) => [...first, ...second], + }, + }); + if (transformed.isError) { + return transformed; + } + // stateAppliedFirst に secondPrime を apply しているが、代わりに stateAppliedSecond に firstPrime を apply したものでも構わない。 + const nonDistictedLastState = apply($stateAppliedFirst, transformed.value.secondPrime); + if (nonDistictedLastState.isError) { + return nonDistictedLastState; + } + /* + @kizahasi/ot-core の transform の仕様では要素の同一性は考慮されないため、もし nonDistictedLastState.value をそのまま返してしまうと次のような問題が生じる。 + - 例えば first が [insert 'x', retain 1, delete 'x', retain 1] で、second が [retain 1, delete 'x', retain 1, insert 'x'] のとき(つまり、同一の要素が同時に移動されたとき)、nonDistictedLastState.value に 'x' が2つ存在することになってしまう。そのため、二重に存在する要素は1つのみにしなければならない。 + - first が [delete 'x', retain 1] で、second が [delete 'x', retain 1, insert 'x'] のように、片方が移動で片方が削除の場合は最終的に削除されてほしいが、insert 'x' が残るため nonDistictedLastState.value に 'x' が含まれてしまう。 + そのため、これより下で、nonDistictedLastState.value からそのような要素を取り除く処理を行っている。 + */ + const deletedElemets = new DualKeyMap(); + for (const operation of firstUnits) { + if (operation.type === delete$) { + for (const d of operation.delete) { + deletedElemets.set({ first: getKey(d.value), second: 1 }, null); + } + } + } + for (const operation of secondUnits) { + if (operation.type === delete$) { + for (const d of operation.delete) { + deletedElemets.set({ first: getKey(d.value), second: 2 }, null); + } + } + } + const groupedLastState = new DualKeyMap(); + for (const { value, $tag } of nonDistictedLastState.value) { + if ($tag === 0) { + // 0 は使わないのでスキップ。 + continue; + } + groupedLastState.set({ first: getKey(value), second: $tag }, null); + } + const result = nonDistictedLastState.value.flatMap(({ value, $tag }) => { + const key = getKey(value); + const deletedSimultaneously = deletedElemets.getByFirst(key).size >= 2; + if (!deletedSimultaneously) { + return [value]; + } + const tags = groupedLastState.getByFirst(key); + switch (tags.size) { + case 0: + // 両方のOperationで削除となったケース。 + // この場合は削除とする。 + return []; + case 1: + // 片方のOperationでは移動だが、もう片方のOperationでは削除されたケース。 + // この場合は削除を優先する。 + return []; + case 2: + // 両方のOperationで移動となったケース。 + // この場合は常にfirstを優先することにしている(問題があれば変えるかも)。 + // ここで $tag === 0 になることはない(もし $tag === 0 であればこの要素を削除するOperationはないことになるが、その場合は deletedSimultaneously === false になるため)。 + return $tag === 1 ? [value] : []; + default: + // ここに来ることはない。 + return []; + } + }); + return Result.ok(result); +}; + +// サーバーとクライアントで書き換え可能だが特殊な値であるため、他のプロパティとの衝突を避ける目的で文字列の頭に $ を頭に付けている。 +const $index = '$index'; +/** + * Record を 配列とみなすときに、その要素として必要な値が入った template を作成する際に用いる値。 + * + * @example + * ``` + * const indexObjectTemplate = createRecordValueTemplate( + * createObjectValueTemplate( + * { + * ...indexObjectTemplateValue, + * + * // add more properies... + * }, + * 1, + * 1 + * ) + * ); + * ``` + */ +/* +配列の表現方法には { $key: string, ...otherProperties }[] と Record の2種類が考えられたが、後者を採用している。 +前者はデータをエクスポートした際にテキストエディタで比較的編集しやすいというメリットがある。ただし、replace と update の2種類だけでは、要素が移動した際に要素を丸ごと delete と insert する必要があるため Operation の容量がかさばるという問題点がある。move のような Operation も定義すれば解決すると思われるが、手間がかかる。いっぽう、後者の方法だと $index を変更するだけで済むため容量がかさばる問題は存在せず、既存の Record の Operational Transformation のシステムに乗っかれるというメリットがある。よって単純化を重視して後者を採用した。 +*/ +const indexObjectTemplateValue = { + /** + * 自身の要素のインデックス。一般的な配列と同様に、0 から始まります。 + * + * インデックスが他の要素と重複してはなりません。また、0 から順に連続的に割り当てる必要があります。 + */ + [$index]: createReplaceValueTemplate(z.number().nonnegative().int()), +}; +const dummyVersion = undefined; +const indexObjectTemplate = createObjectValueTemplate(indexObjectTemplateValue, dummyVersion, dummyVersion); +const indexObjectsToArray = (record) => { + const groupBy$index = recordToMap(groupBy(recordToArray(record), ({ value }) => value[$index].toString())); + const result = []; + for (let i = 0; groupBy$index.size >= 1; i++) { + const groupValue = groupBy$index.get(i.toString()); + groupBy$index.delete(i.toString()); + if (groupValue == null || groupValue.length !== 1) { + return Result.error(`Just one element where index is ${i} should exist, but there are ${groupValue?.length ?? 0} such elements.`); + } + const element = groupValue[0]; + result.push(element); + } + return Result.ok(result); +}; +/** + * 配列を Record に変換します。 + * + * 引数に渡された `$index` は誤っていてもエラーにはならず、自動的かつ非破壊的に調整されます。 + */ +const arrayToIndexObjects = (array) => { + const result = {}; + array.forEach((element, index) => { + if (result[element.key] !== undefined) { + throw new Error(`"${element.key}" key is duplicated.`); + } + result[element.key] = produce(element.value, value => { + value[$index] = index; + }); + }); + return result; +}; +const generateArrayDiff = ({ prevState, nextState, mapOperation, }) => { + const execDiff = diff(createRecordValueTemplate(indexObjectTemplate)); + const diffResult = execDiff({ + prevState: mapRecord(prevState, ({ $index }) => ({ + $v: dummyVersion, + $r: dummyVersion, + $index, + })), + nextState: mapRecord(nextState, ({ $index }) => ({ + $v: dummyVersion, + $r: dummyVersion, + $index, + })), + }); + // replaceは存在しないので、updateだけ抽出する + return mapRecord(diffResult ?? {}, x => x.type === update$2 + ? { + ...x, + // RecordOperation.compose で型エラーを起こさないためだけに行っている変換。 + update: mapOperation(x.update), + } + : undefined); +}; +/** + * 配列に対して clientTransform を行います。 + * + * 通常の Record の serverTransform の処理(つまり、`$index` 以外のプロパティの処理など)も内部で行われるため、通常の Record の serverTransform を別途実行することは避けてください。 + */ +const clientTransform = (params) => { + // いったん通常のRecordOperation.clientTransformを行い、エラーがないかどうか確かめる。 + // Operationの内容に問題がなくともresultFirstの時点では不正な$indexが存在する可能性があるが、この後のresultSecondをcomposeすることで正常になる。 + const recordOperationTransformResult = clientTransform$2(params); + if (recordOperationTransformResult.isError) { + return recordOperationTransformResult; + } + const execApply = apply$1(createRecordValueTemplate(indexObjectTemplate)); + const arrayObjectAfterFirst = execApply({ + state: mapRecord(params.state, ({ $index }) => ({ + $v: dummyVersion, + $r: dummyVersion, + $index, + })), + operation: mapRecordUpOperation({ + source: params.first ?? {}, + mapState: ({ $index }) => ({ $v: dummyVersion, $r: dummyVersion, $index }), + mapOperation: ({ $index }) => ({ $v: dummyVersion, $r: dummyVersion, $index }), + }), + }); + if (arrayObjectAfterFirst.isError) { + // ここに来るということは、クライアントから受け取った Operation が不正(存在しない State に対して update しようとしたなど)であることを示す。だが、その場合は上のRecordOperation.clientTransformですでに弾かれているので、ここには来ないはず。 + return Result.error('Error at applying first as an array operation. This is probablly a bug. Message: ' + + toOtError(arrayObjectAfterFirst.error).message); + } + const arrayObjectAfterSecond = execApply({ + state: mapRecord(params.state, ({ $index }) => ({ + $v: dummyVersion, + $r: dummyVersion, + $index, + })), + operation: mapRecordUpOperation({ + source: params.second ?? {}, + mapState: ({ $index }) => ({ $v: dummyVersion, $r: dummyVersion, $index }), + mapOperation: ({ $index }) => ({ $v: dummyVersion, $r: dummyVersion, $index }), + }), + }); + if (arrayObjectAfterSecond.isError) { + // ここに来るということは、クライアントから受け取った Operation が不正(存在しない State に対して update しようとしたなど)であることを示す。だが、その場合は上のRecordOperation.clientTransformですでに弾かれているので、ここには来ないはず。 + return Result.error('Error at applying second as an array operation. This is probablly a bug. Message: ' + + toOtError(arrayObjectAfterSecond.error).message); + } + const baseArray = indexObjectsToArray(mapRecord(params.state, ({ $index }) => ({ $index }))); + if (baseArray.isError) { + return Result.error('state is invalid as an array. Message: ' + baseArray.error); + } + const arrayAfterFirst = indexObjectsToArray(mapRecord(arrayObjectAfterFirst.value ?? {}, ({ $index }) => ({ $index }))); + if (arrayAfterFirst.isError) { + return Result.error('state applied first is invalid as an array. Message: ' + arrayAfterFirst.error); + } + const arrayAfterSecond = indexObjectsToArray(mapRecord(arrayObjectAfterSecond.value ?? {}, ({ $index }) => ({ $index }))); + if (arrayAfterSecond.isError) { + return Result.error('state applied second is invalid as an array. Message: ' + arrayAfterFirst.error); + } + const finalArrayResult = transform(baseArray.value, arrayAfterFirst.value, arrayAfterSecond.value, x => x.key); + if (finalArrayResult.isError) { + // 配列のtransformでエラーが発生することは通常はない。 + return Result.error('Error at transforming an array operation. This is probablly a bug. Message: ' + + JSON.stringify(finalArrayResult.error)); + } + const stateAfterFirst = apply$2({ + prevState: params.state, + operation: params.first ?? {}, + innerApply: ({ prevState, operation }) => params.innerApply({ prevState, operation }), + }); + if (stateAfterFirst.isError) { + throw new Error('This should not happen. Message: ' + stateAfterFirst.error); + } + const finalStateBeforeIndexRearrangement = apply$2({ + prevState: stateAfterFirst.value, + operation: recordOperationTransformResult.value.secondPrime, + innerApply: ({ prevState, operation }) => params.innerApply({ prevState, operation }), + }); + if (finalStateBeforeIndexRearrangement.isError) { + throw new Error('This should not happen. Message: ' + finalStateBeforeIndexRearrangement.error); + } + const resultSecond = generateArrayDiff({ + prevState: finalStateBeforeIndexRearrangement.value, + nextState: arrayToIndexObjects(finalArrayResult.value), + mapOperation: x => ({ + [$index]: x[$index] == null ? undefined : { newValue: x[$index].newValue }, + }), + }); + const compose$1 = (first) => compose({ + first, + second: resultSecond, + composeReplaceUpdate: ({ first, second }) => { + if (first.newValue === undefined) { + // 通常はここには来ない + return Result.ok(first); + } + return Result.ok(produce(first, first => { + if (second.$index === undefined) { + return; + } + if (first.newValue === undefined) { + return; + } + first.newValue.$index = second.$index.newValue; + })); + }, + composeUpdateUpdate: ({ first, second }) => { + let composed$indexOperation; + if (second[$index] === undefined) { + composed$indexOperation = first[$index]; + } + else { + composed$indexOperation = second[$index]; + } + const result = produce(first, first => { + first.$index = composed$indexOperation; + }); + return Result.ok(isIdRecord(result) ? undefined : result); + }, + composeReplaceReplace: () => { + throw new Error('This should not happen.'); + }, + composeUpdateReplace: () => { + throw new Error('This should not happen.'); + }, + }); + const firstPrime = compose$1(recordOperationTransformResult.value.firstPrime ?? {}); + if (firstPrime.isError) { + return firstPrime; + } + const secondPrime = compose$1(recordOperationTransformResult.value.secondPrime ?? {}); + if (secondPrime.isError) { + return secondPrime; + } + return Result.ok({ + firstPrime: isIdRecord(firstPrime.value ?? {}) ? undefined : firstPrime.value, + secondPrime: isIdRecord(secondPrime.value ?? {}) ? undefined : secondPrime.value, + }); +}; + +/** 全てのStateに完全にアクセスできる。*/ +const admin = 'admin'; +/** userUidに基づき、一部のStateへのアクセスを制限する。*/ +const client = 'client'; +/** アクセス制限のあるStateへのアクセスを全て制限する。*/ +const restrict = 'restrict'; +const anyValue = { type: 'anyValue' }; +const none = { type: 'none' }; +const isAuthorized = ({ requestedBy, participantId, }) => { + if (typeof participantId === 'string' || participantId.type === 'none') { + if (requestedBy.type === admin) { + return true; + } + if (requestedBy.type === restrict) { + return false; + } + return requestedBy.userUid === participantId; + } + return true; +}; +/** @deprecated Use `isAuthorized` instead. */ +// 元々は isAuthorized 関数は存在せず、isAuthorized 関数に相当する処理は isOwner 関数で行っていた。だが、isOwner という名前と引数がしっくり来ない場面もあったので、isAuthorized 関数に移した。isOwner 関数は削除するとしっくり来ない場面が生じるかもしれないため、現時点では残している。 +const isOwner = ({ requestedBy, ownerParticipantId, }) => { + return isAuthorized({ requestedBy, participantId: ownerParticipantId }); +}; +const isBoardOwner = ({ boardId, requestedBy, currentRoomState, }) => { + if (requestedBy.type === admin) { + return true; + } + const userUid = requestedBy.type === client ? requestedBy.userUid : undefined; + const board = (currentRoomState.boards ?? {})[boardId]; + if (board != null) { + if (board.ownerParticipantId == null) { + return true; + } + if (board.ownerParticipantId === userUid) { + return true; + } + return false; + } + return false; +}; +const isBoardVisible = ({ boardId, requestedBy, currentRoomState, }) => { + if (isBoardOwner({ boardId: boardId, requestedBy, currentRoomState }) !== false) { + return true; + } + return currentRoomState.activeBoardId === boardId; +}; +const characterNotFound = 'characterNotFound'; +const isCharacterOwner = ({ requestedBy, characterId, currentRoomState, }) => { + if (requestedBy.type === admin) { + return true; + } + if (typeof characterId !== 'string') { + return characterId.type === 'anyValue'; + } + const userUid = requestedBy.type === client ? requestedBy.userUid : undefined; + const character = (currentRoomState.characters ?? {})[characterId]; + if (character == null) { + return characterNotFound; + } + if (character.ownerParticipantId == null) { + return true; + } + if (character.ownerParticipantId === userUid) { + return true; + } + return false; +}; +const canChangeCharacterValue = (args) => { + return !!isCharacterOwner(args); +}; +const canChangeOwnerParticipantId = ({ requestedBy, currentOwnerParticipant, }) => { + if (requestedBy.type === admin) { + return true; + } + let currentOwnerParticipantId; + if (typeof currentOwnerParticipant === 'string') { + currentOwnerParticipantId = currentOwnerParticipant; + } + else { + currentOwnerParticipantId = currentOwnerParticipant?.ownerParticipantId; + } + return isOwner({ requestedBy, ownerParticipantId: currentOwnerParticipantId ?? anyValue }); +}; +const canChangeOwnerCharacterId = ({ requestedBy, currentOwnerCharacter, currentRoomState, }) => { + if (requestedBy.type === admin) { + return true; + } + let currentOwnerCharacterId; + if (typeof currentOwnerCharacter === 'string') { + currentOwnerCharacterId = currentOwnerCharacter; + } + else { + currentOwnerCharacterId = currentOwnerCharacter?.ownerCharacterId; + } + return canChangeCharacterValue({ + requestedBy, + characterId: currentOwnerCharacterId ?? anyValue, + currentRoomState, + }); +}; + +const serverTransform$n = ({ first, second, prevState, }) => { + if (first === undefined && second !== undefined) { + const newOperation = { oldValue: prevState, newValue: second.newValue }; + if (newOperation.oldValue !== newOperation.newValue) { + return { oldValue: prevState, newValue: second.newValue }; + } + } + return undefined; +}; + +const toClientState$h = (source) => source; +const serverTransform$m = ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { $v: 1, $r: 1 }; + twoWayOperation.isPaused = serverTransform$n({ + first: serverOperation?.isPaused, + second: clientOperation.isPaused, + prevState: stateBeforeServerOperation.isPaused, + }); + twoWayOperation.files = serverTransform$n({ + first: serverOperation?.files, + second: clientOperation.files, + prevState: stateBeforeServerOperation.files, + }); + twoWayOperation.volume = serverTransform$n({ + first: serverOperation?.volume, + second: clientOperation.volume, + prevState: stateBeforeServerOperation.volume, + }); + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const serverTransform$l = ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { $v: undefined, $r: undefined }; + twoWayOperation.h = serverTransform$n({ + first: serverOperation?.h, + second: clientOperation.h, + prevState: stateBeforeServerOperation.h, + }); + twoWayOperation.isPositionLocked = serverTransform$n({ + first: serverOperation?.isPositionLocked, + second: clientOperation.isPositionLocked, + prevState: stateBeforeServerOperation.isPositionLocked, + }); + const transformedMemo = serverTransform$q({ + first: serverOperation?.memo, + second: clientOperation.memo, + prevState: stateBeforeServerOperation.memo, + }); + if (transformedMemo.isError) { + return transformedMemo; + } + twoWayOperation.memo = transformedMemo.value; + const transformedName = serverTransform$q({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (transformedName.isError) { + return transformedName; + } + twoWayOperation.name = transformedName.value; + twoWayOperation.opacity = serverTransform$n({ + first: serverOperation?.opacity, + second: clientOperation.opacity, + prevState: stateBeforeServerOperation.opacity, + }); + twoWayOperation.w = serverTransform$n({ + first: serverOperation?.w, + second: clientOperation.w, + prevState: stateBeforeServerOperation.w, + }); + twoWayOperation.x = serverTransform$n({ + first: serverOperation?.x, + second: clientOperation.x, + prevState: stateBeforeServerOperation.x, + }); + twoWayOperation.y = serverTransform$n({ + first: serverOperation?.y, + second: clientOperation.y, + prevState: stateBeforeServerOperation.y, + }); + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const serverTransform$k = ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const boardPosition = serverTransform$l({ + stateBeforeServerOperation: stateBeforeServerOperation, + stateAfterServerOperation: stateAfterServerOperation, + clientOperation, + serverOperation, + }); + if (boardPosition.isError) { + return boardPosition; + } + const twoWayOperation = { + ...boardPosition.value, + $v: undefined, + $r: undefined, + }; + twoWayOperation.cellH = serverTransform$n({ + first: serverOperation?.cellH, + second: clientOperation.cellH, + prevState: stateBeforeServerOperation.cellH, + }); + twoWayOperation.cellW = serverTransform$n({ + first: serverOperation?.cellW, + second: clientOperation.cellW, + prevState: stateBeforeServerOperation.cellW, + }); + twoWayOperation.cellX = serverTransform$n({ + first: serverOperation?.cellX, + second: clientOperation.cellX, + prevState: stateBeforeServerOperation.cellX, + }); + twoWayOperation.cellY = serverTransform$n({ + first: serverOperation?.cellY, + second: clientOperation.cellY, + prevState: stateBeforeServerOperation.cellY, + }); + twoWayOperation.isCellMode = serverTransform$n({ + first: serverOperation?.isCellMode, + second: clientOperation.isCellMode, + prevState: stateBeforeServerOperation.isCellMode, + }); + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const toClientState$g = (isAuthorized) => (source) => { + return { + ...source, + value: source.isValuePrivate && !isAuthorized ? undefined : source.value, + }; +}; +const serverTransform$j = (isAuthorized) => ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { + $v: 1, + $r: 1, + }; + twoWayOperation.dieType = serverTransform$n({ + first: serverOperation?.dieType ?? undefined, + second: clientOperation.dieType ?? undefined, + prevState: stateBeforeServerOperation.dieType, + }); + twoWayOperation.isValuePrivate = serverTransform$n({ + first: serverOperation?.isValuePrivate ?? undefined, + second: clientOperation.isValuePrivate ?? undefined, + prevState: stateBeforeServerOperation.isValuePrivate, + }); + // !isAuthorized の場合は最初の方ですべて弾いているため、isValuePrivateのチェックをする必要はない。 + twoWayOperation.value = serverTransform$n({ + first: serverOperation?.value ?? undefined, + second: clientOperation.value ?? undefined, + prevState: stateBeforeServerOperation.value, + }); + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok({ ...twoWayOperation }); +}; + +const templateValue$1 = { + h: createReplaceValueTemplate(z.number()), + isPositionLocked: createReplaceValueTemplate(z.boolean()), + /** + * @description To 3rd-party developers: Please always set undefined to this if it is CharacterPiece or PortraitPiece. + */ + memo: createTextValueTemplate(true), + /** + * @description To 3rd-party developers: Please always set undefined to this if it is CharacterPiece or PortraitPiece. + */ + name: createTextValueTemplate(true), + /** + * @description To 3rd-party developers: Please always set undefined to this because it is not implemented yet in the official web-server. + */ + opacity: createReplaceValueTemplate(maybe(z.number())), + w: createReplaceValueTemplate(z.number()), + x: createReplaceValueTemplate(z.number()), + y: createReplaceValueTemplate(z.number()), +}; +const template$m = createObjectValueTemplate(templateValue$1, undefined, undefined); + +const templateValue = { + ...templateValue$1, + cellH: createReplaceValueTemplate(z.number()), + cellW: createReplaceValueTemplate(z.number()), + cellX: createReplaceValueTemplate(z.number()), + cellY: createReplaceValueTemplate(z.number()), + isCellMode: createReplaceValueTemplate(z.boolean()), +}; +const template$l = createObjectValueTemplate(templateValue, undefined, undefined); + +// 今の所D6しか対応していない。D4は将来のために予約されている。 +const D4 = 'D4'; +const D6 = 'D6'; +const dieType = z.union([z.literal(D4), z.literal(D6)]); +const template$k = createObjectValueTemplate({ + dieType: createReplaceValueTemplate(dieType), + isValuePrivate: createReplaceValueTemplate(z.boolean()), + // undefined になるのは、次の2つのいずれかもしくは両方のケース。 + // 1. isValuePrivate === trueになっておりvalueが隠されているとき + // 2. 目なしのとき + value: createReplaceValueTemplate(maybe(z.number())), +}, 1, 1); + +const dicePieceStrIndexes = ['1', '2', '3', '4']; +const template$j = createObjectValueTemplate({ + ...templateValue, + ownerCharacterId: createReplaceValueTemplate(maybe(z.string())), + dice: createRecordValueTemplate(template$k), +}, 2, 1); + +const toClientState$f = (requestedBy, currentRoomState) => (source) => { + const isAuthorized = canChangeCharacterValue({ + requestedBy, + characterId: source.ownerCharacterId ?? anyValue, + currentRoomState, + }); + return { + ...source, + dice: chooseRecord(source.dice ?? {}, state => toClientState$g(isAuthorized)(state)), + }; +}; +const serverTransform$i = (requestedBy, currentRoomState) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const isAuthorized = canChangeCharacterValue({ + requestedBy, + characterId: stateAfterServerOperation.ownerCharacterId ?? anyValue, + currentRoomState, + }); + const dice = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.dice ?? {}, + stateAfterFirst: stateAfterServerOperation.dice ?? {}, + first: serverOperation?.dice, + second: clientOperation.dice, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$j()({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ key }) => !isAuthorized || dicePieceStrIndexes.every(x => x !== key), + cancelRemove: () => !isAuthorized, + cancelUpdate: () => !isAuthorized, + }, + }); + if (dice.isError) { + return dice; + } + const piece = serverTransform$k({ + stateBeforeServerOperation: { + ...stateBeforeServerOperation, + $v: undefined, + $r: undefined, + }, + stateAfterServerOperation: { + ...stateAfterServerOperation, + $v: undefined, + $r: undefined, + }, + clientOperation: { ...clientOperation, $v: undefined, $r: undefined }, + serverOperation: { ...serverOperation, $v: undefined, $r: undefined }, + }); + if (piece.isError) { + return piece; + } + const twoWayOperation = { + $v: 2, + $r: 1, + ...piece.value, + dice: dice.value, + }; + if (canChangeOwnerCharacterId({ + requestedBy, + currentOwnerCharacter: stateAfterServerOperation, + currentRoomState, + })) { + twoWayOperation.ownerCharacterId = serverTransform$n({ + first: serverOperation?.ownerCharacterId, + second: clientOperation.ownerCharacterId, + prevState: stateBeforeServerOperation.ownerCharacterId, + }); + } + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const toClientState$e = (source) => { + return source; +}; +const serverTransform$h = (requestedBy) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const piece = serverTransform$k({ + stateBeforeServerOperation: { + ...stateBeforeServerOperation, + $v: undefined, + $r: undefined, + }, + stateAfterServerOperation: { + ...stateAfterServerOperation, + $v: undefined, + $r: undefined, + }, + clientOperation: { ...clientOperation, $v: undefined, $r: undefined }, + serverOperation: { ...serverOperation, $v: undefined, $r: undefined }, + }); + if (piece.isError) { + return piece; + } + const twoWayOperation = { + $v: 2, + $r: 1, + ...piece.value, + }; + if (canChangeOwnerParticipantId({ + requestedBy, + currentOwnerParticipant: stateAfterServerOperation, + })) { + twoWayOperation.ownerParticipantId = serverTransform$n({ + first: serverOperation?.ownerParticipantId, + second: clientOperation.ownerParticipantId, + prevState: stateBeforeServerOperation.ownerParticipantId, + }); + } + twoWayOperation.image = serverTransform$n({ + first: serverOperation?.image, + second: clientOperation.image, + prevState: stateBeforeServerOperation.image, + }); + twoWayOperation.isPrivate = serverTransform$n({ + first: serverOperation?.isPrivate, + second: clientOperation.isPrivate, + prevState: stateBeforeServerOperation.isPrivate, + }); + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const serverTransform$g = ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { + $v: 1, + $r: 1, + }; + twoWayOperation.fill = serverTransform$n({ + first: serverOperation?.fill, + second: clientOperation.fill, + prevState: stateBeforeServerOperation.fill, + }); + twoWayOperation.shape = serverTransform$n({ + first: serverOperation?.shape, + second: clientOperation.shape, + prevState: stateBeforeServerOperation.shape, + }); + twoWayOperation.stroke = serverTransform$n({ + first: serverOperation?.stroke, + second: clientOperation.stroke, + prevState: stateBeforeServerOperation.stroke, + }); + twoWayOperation.strokeWidth = serverTransform$n({ + first: serverOperation?.strokeWidth, + second: clientOperation.strokeWidth, + prevState: stateBeforeServerOperation.strokeWidth, + }); + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +// 現時点では、Webサーバー側ではshapeを最大でも1個までしかセットしていないため、1~9の9個のkeyだけ許可している。 +const validateShapeKey = (key) => { + const regex = /^[1-9]$/; + return regex.test(key); +}; +const toClientState$d = (source) => { + return source; +}; +const serverTransform$f = (requestedBy) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const piece = serverTransform$k({ + stateBeforeServerOperation: { + ...stateBeforeServerOperation, + $v: undefined, + $r: undefined, + }, + stateAfterServerOperation: { + ...stateAfterServerOperation, + $v: undefined, + $r: undefined, + }, + clientOperation: { ...clientOperation, $v: undefined, $r: undefined }, + serverOperation: { ...serverOperation, $v: undefined, $r: undefined }, + }); + if (piece.isError) { + return piece; + } + const twoWayOperation = { + $v: 1, + $r: 1, + ...piece.value, + }; + if (canChangeOwnerParticipantId({ + requestedBy, + currentOwnerParticipant: stateAfterServerOperation, + })) { + twoWayOperation.ownerParticipantId = serverTransform$n({ + first: serverOperation?.ownerParticipantId, + second: clientOperation.ownerParticipantId, + prevState: stateBeforeServerOperation.ownerParticipantId, + }); + } + twoWayOperation.isPrivate = serverTransform$n({ + first: serverOperation?.isPrivate, + second: clientOperation.isPrivate, + prevState: stateBeforeServerOperation.isPrivate, + }); + const shapes = serverTransform$o({ + first: serverOperation?.shapes, + second: clientOperation.shapes, + stateBeforeFirst: stateBeforeServerOperation.shapes ?? {}, + stateAfterFirst: stateAfterServerOperation.shapes ?? {}, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$g({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + // shapeが大量に作られるのを防ぐための保険的対策を行っている + cancelCreate: ({ key }) => !validateShapeKey(key), + }, + }); + if (shapes.isError) { + return shapes; + } + twoWayOperation.shapes = shapes.value; + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const toClientState$c = (requestedBy, currentRoomState) => (source) => { + const isAuthorized = canChangeCharacterValue({ + requestedBy, + characterId: source.ownerCharacterId ?? anyValue, + currentRoomState, + }); + return { + ...source, + value: source.isValuePrivate && !isAuthorized ? '' : source.value, + }; +}; +const serverTransform$e = (requestedBy, currentRoomState) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const piece = serverTransform$k({ + stateBeforeServerOperation: { + ...stateBeforeServerOperation, + $v: undefined, + $r: undefined, + }, + stateAfterServerOperation: { + ...stateAfterServerOperation, + $v: undefined, + $r: undefined, + }, + clientOperation: { ...clientOperation, $v: undefined, $r: undefined }, + serverOperation: { ...serverOperation, $v: undefined, $r: undefined }, + }); + if (piece.isError) { + return piece; + } + const twoWayOperation = { + $v: 2, + $r: 1, + ...piece.value, + }; + if (canChangeOwnerCharacterId({ + requestedBy, + currentOwnerCharacter: stateAfterServerOperation, + currentRoomState, + })) { + twoWayOperation.ownerCharacterId = serverTransform$n({ + first: serverOperation?.ownerCharacterId, + second: clientOperation.ownerCharacterId, + prevState: stateBeforeServerOperation.ownerCharacterId, + }); + } + twoWayOperation.isValuePrivate = serverTransform$n({ + first: serverOperation?.isValuePrivate ?? undefined, + second: clientOperation.isValuePrivate ?? undefined, + prevState: stateBeforeServerOperation.isValuePrivate, + }); + // !isAuthorized の場合は最初の方ですべて弾いているため、isValuePrivateのチェックをする必要はない。 + const valueResult = serverTransform$r({ + first: serverOperation?.value ?? undefined, + second: clientOperation.value ?? undefined, + prevState: stateBeforeServerOperation.value, + }); + if (valueResult.isError) { + return valueResult; + } + twoWayOperation.value = valueResult.value; + twoWayOperation.valueInputType = serverTransform$n({ + first: serverOperation?.valueInputType ?? undefined, + second: clientOperation.valueInputType ?? undefined, + prevState: stateBeforeServerOperation.valueInputType, + }); + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const toClientState$b = (requestedBy, currentRoomState) => (source) => { + return { + ...source, + dicePieces: toClientState$i({ + serverState: source.dicePieces, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$f(requestedBy, currentRoomState)(state), + }), + imagePieces: toClientState$i({ + serverState: source.imagePieces, + isPrivate: state => state.isPrivate && + !isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }), + toClientState: ({ state }) => toClientState$e(state), + }), + shapePieces: toClientState$i({ + serverState: source.shapePieces, + isPrivate: state => state.isPrivate && + !isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }), + toClientState: ({ state }) => toClientState$d(state), + }), + stringPieces: toClientState$i({ + serverState: source.stringPieces, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$c(requestedBy, currentRoomState)(state), + }), + }; +}; +const serverTransform$d = (requestedBy, currentRoomState) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const cancellationPolicyOfCharacterPieces = { + cancelCreate: ({ newState }) => !canChangeCharacterValue({ + requestedBy, + characterId: newState.ownerCharacterId ?? none, + currentRoomState, + }), + cancelRemove: ({ state }) => !canChangeCharacterValue({ + requestedBy, + characterId: state.ownerCharacterId ?? anyValue, + currentRoomState, + }), + }; + const cancellationPolicyOfParticipantPieces = { + cancelCreate: ({ newState }) => !isOwner({ + requestedBy, + ownerParticipantId: newState.ownerParticipantId ?? none, + }), + cancelRemove: ({ state }) => !isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }), + }; + const dicePieces = serverTransform$o({ + first: serverOperation?.dicePieces, + second: clientOperation.dicePieces, + stateBeforeFirst: stateBeforeServerOperation.dicePieces ?? {}, + stateAfterFirst: stateAfterServerOperation.dicePieces ?? {}, + innerTransform: ({ first, second, prevState, nextState }) => serverTransform$i(requestedBy, currentRoomState)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: cancellationPolicyOfCharacterPieces, + }); + if (dicePieces.isError) { + return dicePieces; + } + const imagePieces = serverTransform$o({ + first: serverOperation?.imagePieces, + second: clientOperation.imagePieces, + stateBeforeFirst: stateBeforeServerOperation.imagePieces ?? {}, + stateAfterFirst: stateAfterServerOperation.imagePieces ?? {}, + innerTransform: ({ first, second, prevState, nextState }) => serverTransform$h(requestedBy)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: cancellationPolicyOfParticipantPieces, + }); + if (imagePieces.isError) { + return imagePieces; + } + const shapePieces = serverTransform$o({ + first: serverOperation?.shapePieces, + second: clientOperation.shapePieces, + stateBeforeFirst: stateBeforeServerOperation.shapePieces ?? {}, + stateAfterFirst: stateAfterServerOperation.shapePieces ?? {}, + innerTransform: ({ first, second, prevState, nextState }) => serverTransform$f(requestedBy)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: cancellationPolicyOfParticipantPieces, + }); + if (shapePieces.isError) { + return shapePieces; + } + const stringPieces = serverTransform$o({ + first: serverOperation?.stringPieces, + second: clientOperation.stringPieces, + stateBeforeFirst: stateBeforeServerOperation.stringPieces ?? {}, + stateAfterFirst: stateAfterServerOperation.stringPieces ?? {}, + innerTransform: ({ first, second, prevState, nextState }) => serverTransform$e(requestedBy, currentRoomState)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: cancellationPolicyOfCharacterPieces, + }); + if (stringPieces.isError) { + return stringPieces; + } + const twoWayOperation = { + $v: 2, + $r: 1, + dicePieces: dicePieces.value, + imagePieces: imagePieces.value, + shapePieces: shapePieces.value, + stringPieces: stringPieces.value, + }; + twoWayOperation.backgroundImage = serverTransform$n({ + first: serverOperation?.backgroundImage, + second: clientOperation.backgroundImage, + prevState: stateBeforeServerOperation.backgroundImage, + }); + twoWayOperation.backgroundImageZoom = serverTransform$n({ + first: serverOperation?.backgroundImageZoom, + second: clientOperation.backgroundImageZoom, + prevState: stateBeforeServerOperation.backgroundImageZoom, + }); + twoWayOperation.cellColumnCount = serverTransform$n({ + first: serverOperation?.cellColumnCount, + second: clientOperation.cellColumnCount, + prevState: stateBeforeServerOperation.cellColumnCount, + }); + twoWayOperation.cellHeight = serverTransform$n({ + first: serverOperation?.cellHeight, + second: clientOperation.cellHeight, + prevState: stateBeforeServerOperation.cellHeight, + }); + twoWayOperation.cellOffsetX = serverTransform$n({ + first: serverOperation?.cellOffsetX, + second: clientOperation.cellOffsetX, + prevState: stateBeforeServerOperation.cellOffsetX, + }); + twoWayOperation.cellOffsetY = serverTransform$n({ + first: serverOperation?.cellOffsetY, + second: clientOperation.cellOffsetY, + prevState: stateBeforeServerOperation.cellOffsetY, + }); + twoWayOperation.cellRowCount = serverTransform$n({ + first: serverOperation?.cellRowCount, + second: clientOperation.cellRowCount, + prevState: stateBeforeServerOperation.cellRowCount, + }); + twoWayOperation.cellWidth = serverTransform$n({ + first: serverOperation?.cellWidth, + second: clientOperation.cellWidth, + prevState: stateBeforeServerOperation.cellWidth, + }); + const name = serverTransform$r({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (name.isError) { + return name; + } + twoWayOperation.name = name.value; + if (canChangeOwnerParticipantId({ + requestedBy, + currentOwnerParticipant: stateAfterServerOperation, + })) { + twoWayOperation.ownerParticipantId = serverTransform$n({ + first: serverOperation?.ownerParticipantId, + second: clientOperation.ownerParticipantId, + prevState: stateBeforeServerOperation.ownerParticipantId, + }); + } + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const toClientState$a = (isAuthorized, defaultValue) => (source) => { + return { + ...source, + value: source.isValuePrivate && !isAuthorized ? defaultValue : source.value, + }; +}; +const serverTransform$c = (isAuthorized) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const twoWayOperation = { $v: 2, $r: 1 }; + if (isAuthorized) { + twoWayOperation.isValuePrivate = serverTransform$n({ + first: serverOperation?.isValuePrivate, + second: clientOperation.isValuePrivate, + prevState: stateBeforeServerOperation.isValuePrivate, + }); + } + if (isAuthorized || !stateAfterServerOperation.isValuePrivate) { + twoWayOperation.value = serverTransform$n({ + first: serverOperation?.value, + second: clientOperation.value, + prevState: stateBeforeServerOperation.value, + }); + } + { + const xformResult = serverTransform$q({ + first: serverOperation?.overriddenParameterName, + second: clientOperation.overriddenParameterName, + prevState: stateBeforeServerOperation.overriddenParameterName, + }); + if (xformResult.isError) { + return xformResult; + } + twoWayOperation.overriddenParameterName = xformResult.value; + } + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok({ ...twoWayOperation }); +}; + +const toClientState$9 = (source) => { + return source; +}; +const serverTransform$b = ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const boardPosition = serverTransform$k({ + stateBeforeServerOperation: { ...stateBeforeServerOperation, $v: undefined, $r: undefined }, + stateAfterServerOperation: { ...stateAfterServerOperation, $v: undefined, $r: undefined }, + clientOperation: { ...clientOperation, $v: undefined, $r: undefined }, + serverOperation: { ...serverOperation, $v: undefined, $r: undefined }, + }); + if (boardPosition.isError) { + return boardPosition; + } + const twoWayOperation = { + ...boardPosition.value, + $v: 2, + $r: 1, + }; + twoWayOperation.isPrivate = serverTransform$n({ + first: serverOperation?.isPrivate, + second: clientOperation.isPrivate, + prevState: stateBeforeServerOperation.isPrivate, + }); + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const toClientState$8 = (source) => { + return source; +}; +const serverTransform$a = ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { + $v: 1, + $r: 1, + }; + const name = serverTransform$r({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (name.isError) { + return name; + } + twoWayOperation.name = name.value; + const value = serverTransform$r({ + first: serverOperation?.value, + second: clientOperation.value, + prevState: stateBeforeServerOperation.value, + }); + if (value.isError) { + return value; + } + twoWayOperation.value = value.value; + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const toClientState$7 = (isAuthorized, defaultValue) => (source) => { + return { + ...source, + value: source.isValuePrivate && !isAuthorized ? defaultValue : source.value, + }; +}; +const serverTransform$9 = (isAuthorized) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const twoWayOperation = { $v: 2, $r: 1 }; + if (isAuthorized) { + twoWayOperation.isValuePrivate = serverTransform$n({ + first: serverOperation?.isValuePrivate, + second: clientOperation.isValuePrivate, + prevState: stateBeforeServerOperation.isValuePrivate, + }); + } + if (isAuthorized || !stateAfterServerOperation.isValuePrivate) { + twoWayOperation.value = serverTransform$n({ + first: serverOperation?.value, + second: clientOperation.value, + prevState: stateBeforeServerOperation.value, + }); + } + { + const xformResult = serverTransform$q({ + first: serverOperation?.overriddenParameterName, + second: clientOperation.overriddenParameterName, + prevState: stateBeforeServerOperation.overriddenParameterName, + }); + if (xformResult.isError) { + return xformResult; + } + twoWayOperation.overriddenParameterName = xformResult.value; + } + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok({ ...twoWayOperation }); +}; + +const toClientState$6 = (source) => { + return source; +}; +const serverTransform$8 = ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const boardPosition = serverTransform$l({ + stateBeforeServerOperation: { ...stateBeforeServerOperation, $v: undefined, $r: undefined }, + stateAfterServerOperation: { ...stateAfterServerOperation, $v: undefined, $r: undefined }, + clientOperation: { ...clientOperation, $v: undefined, $r: undefined }, + serverOperation: { ...serverOperation, $v: undefined, $r: undefined }, + }); + if (boardPosition.isError) { + return boardPosition; + } + const twoWayOperation = { + ...boardPosition.value, + $v: 2, + $r: 1, + }; + twoWayOperation.isPrivate = serverTransform$n({ + first: serverOperation?.isPrivate, + second: clientOperation.isPrivate, + prevState: stateBeforeServerOperation.isPrivate, + }); + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const toClientState$5 = (isAuthorized) => (source) => { + return { + ...source, + value: source.isValuePrivate && !isAuthorized ? '' : source.value, + }; +}; +const serverTransform$7 = (isAuthorized) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const twoWayOperation = { $v: 2, $r: 1 }; + if (isAuthorized) { + twoWayOperation.isValuePrivate = serverTransform$n({ + first: serverOperation?.isValuePrivate, + second: clientOperation.isValuePrivate, + prevState: stateBeforeServerOperation.isValuePrivate, + }); + } + if (isAuthorized || !stateAfterServerOperation.isValuePrivate) { + const transformed = serverTransform$q({ + first: serverOperation?.value, + second: clientOperation.value, + prevState: stateBeforeServerOperation.value, + }); + if (transformed.isError) { + return transformed; + } + twoWayOperation.value = transformed.value; + } + { + const xformResult = serverTransform$q({ + first: serverOperation?.overriddenParameterName, + second: clientOperation.overriddenParameterName, + prevState: stateBeforeServerOperation.overriddenParameterName, + }); + if (xformResult.isError) { + return xformResult; + } + twoWayOperation.overriddenParameterName = xformResult.value; + } + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const template$i = createObjectValueTemplate({ + isValuePrivate: createReplaceValueTemplate(z.boolean()), + value: createReplaceValueTemplate(z.boolean().optional()), + overriddenParameterName: createTextValueTemplate(true), +}, 2, 1); + +const template$h = createObjectValueTemplate({ + ...templateValue, + boardId: createReplaceValueTemplate(z.string()), + isPrivate: createReplaceValueTemplate(z.boolean()), +}, 2, 1); + +const template$g = createObjectValueTemplate({ + name: createTextValueTemplate(false), + value: createTextValueTemplate(false), +}, 1, 1); + +const template$f = createObjectValueTemplate({ + isValuePrivate: createReplaceValueTemplate(z.boolean()), + value: createReplaceValueTemplate(z.number().optional()), + /** + * @description Do not use this value for numMaxParam. + */ + overriddenParameterName: createTextValueTemplate(true), +}, 2, 1); + +const template$e = createObjectValueTemplate({ + ...templateValue$1, + boardId: createReplaceValueTemplate(z.string()), + isPrivate: createReplaceValueTemplate(z.boolean()), +}, 2, 1); + +const template$d = createObjectValueTemplate({ + isValuePrivate: createReplaceValueTemplate(z.boolean()), + value: createTextValueTemplate(true), + overriddenParameterName: createTextValueTemplate(true), +}, 2, 1); + +// boolParams, numParams, numMaxParams, strParams: keyはstrIndex20などの固定キーを想定。 +// pieces, portraitPositions: 誰でも作成できる値。keyはboardのkey。 +// キャラクター全体非公開機能との兼ね合いがあるため、piecesとportraitPositionsをStateに置くのは綺麗ではない。 +const defaultBoolParamState = { + $v: 2, + $r: 1, + isValuePrivate: false, + value: undefined, + overriddenParameterName: undefined, +}; +const defaultNumParamState = { + $v: 2, + $r: 1, + isValuePrivate: false, + value: undefined, + overriddenParameterName: undefined, +}; +const defaultStrParamState = { + $v: 2, + $r: 1, + isValuePrivate: false, + value: undefined, + overriddenParameterName: undefined, +}; +const template$c = createObjectValueTemplate({ + ownerParticipantId: createReplaceValueTemplate(z.string().optional()), + image: createReplaceValueTemplate(filePathValue.optional()), + isPrivate: createReplaceValueTemplate(z.boolean()), + memo: createTextValueTemplate(false), + name: createTextValueTemplate(false), + chatPalette: createTextValueTemplate(false), + privateVarToml: createTextValueTemplate(false), + portraitImage: createReplaceValueTemplate(filePathValue.optional()), + hasTag1: createReplaceValueTemplate(z.boolean()), + hasTag2: createReplaceValueTemplate(z.boolean()), + hasTag3: createReplaceValueTemplate(z.boolean()), + hasTag4: createReplaceValueTemplate(z.boolean()), + hasTag5: createReplaceValueTemplate(z.boolean()), + hasTag6: createReplaceValueTemplate(z.boolean()), + hasTag7: createReplaceValueTemplate(z.boolean()), + hasTag8: createReplaceValueTemplate(z.boolean()), + hasTag9: createReplaceValueTemplate(z.boolean()), + hasTag10: createReplaceValueTemplate(z.boolean()), + boolParams: createParamRecordValueTemplate(template$i, defaultBoolParamState), + numParams: createParamRecordValueTemplate(template$f, defaultNumParamState), + numMaxParams: createParamRecordValueTemplate(template$f, defaultNumParamState), + strParams: createParamRecordValueTemplate(template$d, defaultStrParamState), + pieces: createRecordValueTemplate(template$h), + privateCommands: createRecordValueTemplate(template$g), + portraitPieces: createRecordValueTemplate(template$e), +}, 2, 1); + +const oneToTenArray$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +const toClientState$4 = (isAuthorized, requestedBy, currentRoomState) => (source) => { + return { + ...source, + chatPalette: isAuthorized ? source.chatPalette : '', + privateVarToml: isAuthorized ? source.privateVarToml : '', + boolParams: toClientState$i({ + serverState: source.boolParams, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$a(isAuthorized, undefined)(state), + }), + numParams: toClientState$i({ + serverState: source.numParams, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$7(isAuthorized, undefined)(state), + }), + numMaxParams: toClientState$i({ + serverState: source.numMaxParams, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$7(isAuthorized, undefined)(state), + }), + strParams: toClientState$i({ + serverState: source.strParams, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$5(isAuthorized)(state), + }), + pieces: toClientState$i({ + serverState: source.pieces, + isPrivate: state => !isBoardVisible({ + requestedBy, + boardId: state.boardId, + currentRoomState, + }), + toClientState: ({ state }) => toClientState$9(state), + }), + privateCommands: toClientState$i({ + serverState: source.privateCommands, + isPrivate: () => !isAuthorized, + toClientState: ({ state }) => toClientState$8(state), + }), + portraitPieces: toClientState$i({ + serverState: source.portraitPieces, + isPrivate: state => !isBoardVisible({ + requestedBy, + boardId: state.boardId, + currentRoomState, + }), + toClientState: ({ state }) => toClientState$6(state), + }), + }; +}; +const serverTransform$6 = (isAuthorized, requestedBy, currentRoomState) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + if (!isAuthorized && stateAfterServerOperation.isPrivate) { + return Result.ok(undefined); + } + const boolParams = serverTransform$p({ + stateBeforeFirst: stateBeforeServerOperation.boolParams ?? {}, + stateAfterFirst: stateAfterServerOperation.boolParams ?? {}, + first: serverOperation?.boolParams, + second: clientOperation.boolParams, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$c(isAuthorized)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: { ...first, $v: 2, $r: 1 }, + clientOperation: { ...second, $v: 2, $r: 1 }, + }), + defaultState: defaultBoolParamState, + }); + if (boolParams.isError) { + return boolParams; + } + const numParams = serverTransform$p({ + stateBeforeFirst: stateBeforeServerOperation.numParams ?? {}, + stateAfterFirst: stateAfterServerOperation.numParams ?? {}, + first: serverOperation?.numParams, + second: clientOperation.numParams, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$9(isAuthorized)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + defaultState: defaultNumParamState, + }); + if (numParams.isError) { + return numParams; + } + const numMaxParams = serverTransform$p({ + stateBeforeFirst: stateBeforeServerOperation.numMaxParams ?? {}, + stateAfterFirst: stateAfterServerOperation.numMaxParams ?? {}, + first: serverOperation?.numMaxParams, + second: clientOperation.numMaxParams, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$9(isAuthorized)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + defaultState: defaultNumParamState, + }); + if (numMaxParams.isError) { + return numMaxParams; + } + const strParams = serverTransform$p({ + stateBeforeFirst: stateBeforeServerOperation.strParams ?? {}, + stateAfterFirst: stateAfterServerOperation.strParams ?? {}, + first: serverOperation?.strParams, + second: clientOperation.strParams, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$7(isAuthorized)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + defaultState: defaultStrParamState, + }); + if (strParams.isError) { + return strParams; + } + const pieces = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.pieces ?? {}, + stateAfterFirst: stateAfterServerOperation.pieces ?? {}, + first: serverOperation?.pieces, + second: clientOperation.pieces, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$b({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ newState }) => !isBoardVisible({ + requestedBy, + currentRoomState, + boardId: newState.boardId, + }) || + !isOwner({ + requestedBy, + ownerParticipantId: stateAfterServerOperation.ownerParticipantId ?? none, + }), + cancelRemove: params => { + if (!isBoardVisible({ + requestedBy, + currentRoomState, + boardId: params.state.boardId, + })) { + return true; + } + return !isAuthorized && params.state.isPrivate; + }, + cancelUpdate: params => { + if (!isBoardVisible({ + requestedBy, + currentRoomState, + boardId: params.nextState.boardId, + })) { + return true; + } + return !isAuthorized && params.nextState.isPrivate; + }, + }, + }); + if (pieces.isError) { + return pieces; + } + const privateCommands = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.privateCommands ?? {}, + stateAfterFirst: stateAfterServerOperation.privateCommands ?? {}, + first: serverOperation?.privateCommands, + second: clientOperation.privateCommands, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$a({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: () => !isAuthorized, + cancelRemove: () => !isAuthorized, + cancelUpdate: () => !isAuthorized, + }, + }); + if (privateCommands.isError) { + return privateCommands; + } + const portraitPositions = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.portraitPieces ?? {}, + stateAfterFirst: stateAfterServerOperation.portraitPieces ?? {}, + first: serverOperation?.portraitPieces, + second: clientOperation.portraitPieces, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$8({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ newState }) => !isBoardVisible({ + requestedBy, + currentRoomState, + boardId: newState.boardId, + }) || + !isOwner({ + requestedBy, + ownerParticipantId: stateAfterServerOperation.ownerParticipantId ?? none, + }), + cancelRemove: params => { + if (!isBoardVisible({ + requestedBy, + currentRoomState, + boardId: params.state.boardId, + })) { + return true; + } + return !isAuthorized && params.state.isPrivate; + }, + cancelUpdate: params => { + if (!isBoardVisible({ + requestedBy, + currentRoomState, + boardId: params.nextState.boardId, + })) { + return true; + } + return !isAuthorized && params.nextState.isPrivate; + }, + }, + }); + if (portraitPositions.isError) { + return portraitPositions; + } + const twoWayOperation = { + $v: 2, + $r: 1, + boolParams: boolParams.value, + numParams: numParams.value, + numMaxParams: numMaxParams.value, + strParams: strParams.value, + pieces: pieces.value, + privateCommands: privateCommands.value, + portraitPieces: portraitPositions.value, + }; + if (canChangeOwnerParticipantId({ + requestedBy, + currentOwnerParticipant: stateAfterServerOperation, + })) { + twoWayOperation.ownerParticipantId = serverTransform$n({ + first: serverOperation?.ownerParticipantId, + second: clientOperation.ownerParticipantId, + prevState: stateBeforeServerOperation.ownerParticipantId, + }); + } + twoWayOperation.image = serverTransform$n({ + first: serverOperation?.image, + second: clientOperation.image, + prevState: stateBeforeServerOperation.image, + }); + twoWayOperation.portraitImage = serverTransform$n({ + first: serverOperation?.portraitImage, + second: clientOperation.portraitImage, + prevState: stateBeforeServerOperation.portraitImage, + }); + twoWayOperation.isPrivate = serverTransform$n({ + first: serverOperation?.isPrivate, + second: clientOperation.isPrivate, + prevState: stateBeforeServerOperation.isPrivate, + }); + for (const index of oneToTenArray$1) { + const key = `hasTag${index}`; + twoWayOperation[key] = serverTransform$n({ + first: serverOperation?.[key], + second: clientOperation[key], + prevState: stateBeforeServerOperation[key], + }); + } + const transformedMemo = serverTransform$r({ + first: serverOperation?.memo, + second: clientOperation.memo, + prevState: stateBeforeServerOperation.memo, + }); + if (transformedMemo.isError) { + return transformedMemo; + } + twoWayOperation.memo = transformedMemo.value; + const transformedName = serverTransform$r({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (transformedName.isError) { + return transformedName; + } + twoWayOperation.name = transformedName.value; + if (isAuthorized) { + const transformedChatPalette = serverTransform$r({ + first: serverOperation?.chatPalette, + second: clientOperation.chatPalette, + prevState: stateBeforeServerOperation.chatPalette, + }); + if (transformedChatPalette.isError) { + return transformedChatPalette; + } + twoWayOperation.chatPalette = transformedChatPalette.value; + } + if (isAuthorized) { + const transformed = serverTransform$r({ + first: serverOperation?.privateVarToml, + second: clientOperation.privateVarToml, + prevState: stateBeforeServerOperation.privateVarToml, + }); + if (transformed.isError) { + return transformed; + } + twoWayOperation.privateVarToml = transformed.value; + } + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const toClientState$3 = (source) => source; +const serverTransform$5 = ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { $v: 1, $r: 1 }; + // 暫定的にディレクトリの深さは1までとしている + if ((clientOperation.dir?.newValue.length ?? 0) <= 1) { + twoWayOperation.dir = serverTransform$n({ + first: serverOperation?.dir, + second: clientOperation.dir, + prevState: stateBeforeServerOperation.dir, + }); + } + const name = serverTransform$r({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (name.isError) { + return name; + } + twoWayOperation.name = name.value; + const text = serverTransform$r({ + first: serverOperation?.text, + second: clientOperation.text, + prevState: stateBeforeServerOperation.text, + }); + if (text.isError) { + return text; + } + twoWayOperation.text = text.value; + twoWayOperation.textType = serverTransform$n({ + first: serverOperation?.textType, + second: clientOperation.textType, + prevState: stateBeforeServerOperation.textType, + }); + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok({ ...twoWayOperation }); +}; + +const toClientState$2 = (source) => source; +const serverTransform$4 = ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const twoWayOperation = { $v: 1, $r: 1 }; + const name = serverTransform$r({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (name.isError) { + return name; + } + twoWayOperation.name = name.value; + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok({ ...twoWayOperation }); +}; + +const toClientState$1 = (source) => { + return source; +}; +const serverTransform$3 = ({ requestedBy, participantKey, }) => ({ stateBeforeServerOperation, clientOperation, serverOperation }) => { + const isAuthorized = isOwner({ + requestedBy, + ownerParticipantId: participantKey, + }); + const twoWayOperation = { + $v: 2, + $r: 1, + }; + if (isAuthorized) { + // CONSIDER: ユーザーがnameをnullishに変更することは禁止すべきかもしれない + twoWayOperation.name = serverTransform$n({ + first: serverOperation?.name ?? undefined, + second: clientOperation.name ?? undefined, + prevState: stateBeforeServerOperation.name, + }); + } + if (requestedBy.type === admin) { + twoWayOperation.role = serverTransform$n({ + first: serverOperation?.role ?? undefined, + second: clientOperation.role ?? undefined, + prevState: stateBeforeServerOperation.role, + }); + } + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +// Participantとは、そのRoomに入っているユーザーのこと。通常は、Player、Spectatorなどのroleを持っている。 +// nameはJSONのあるエンティティとは別に保存される想定であるため、nameが見つからないもしくは一時的に取得できないという状況がありうる。そのため、maybeを付けており、TextOperationではなくReplaceOperationとして定義している。ReplaceOperationは文字数が多いと非効率化するため、maxLength100Stringとしている。 +const Player = 'Player'; +const Spectator = 'Spectator'; +const Master = 'Master'; +const participantRole = z.union([z.literal(Player), z.literal(Spectator), z.literal(Master)]); +const template$b = createObjectValueTemplate({ + name: createReplaceValueTemplate(maybe(maxLength100String)), + role: createReplaceValueTemplate(maybe(participantRole)), +}, 2, 1); + +const getOpenRollCalls = (source) => { + return recordToArray(source).filter(({ value }) => { + return value.closeStatus == null; + }); +}; +/** + * 現在行われている点呼があればそれを返します。 + * + * 原則として、現在行われている点呼は最大でも 1 つまでしか存在できません。 + */ +const getOpenRollCall = (source) => { + const activeRollCalls = getOpenRollCalls(source); + return maxBy(activeRollCalls, ({ value }) => value.createdAt); +}; + +const isOpenRollCall = (source) => { + // キーは何でもいいので、適当なキーを指定している。 + const r = getOpenRollCall({ key: source }); + return r != null; +}; + +const serverTransform$2 = ({ requestedBy, }) => ({ stateBeforeServerOperation, serverOperation, clientOperation }) => { + const isAdmin = requestedBy.type === admin; + if (!isAdmin) { + return Result.ok(undefined); + } + const twoWayOperation = { $v: 1, $r: 1 }; + twoWayOperation.answeredAt = serverTransform$n({ + first: serverOperation?.answeredAt, + second: clientOperation.answeredAt, + prevState: stateBeforeServerOperation.answeredAt, + }); + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const serverTransform$1 = ({ requestedBy, }) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + const isOpenRollCallValue = isOpenRollCall(stateAfterServerOperation); + const isAdmin = requestedBy.type === admin; + const participants = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.participants ?? {}, + stateAfterFirst: stateAfterServerOperation.participants ?? {}, + first: serverOperation?.participants, + second: clientOperation.participants, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$2({ + requestedBy, + })({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + // Master および Player は自分の userUid であれば追加できる。 + // Spectator は Operate Mutation を実行しても無視されるため、Spectator を弾く処理は必要ない。 + cancelCreate: ({ key }) => !(isOpenRollCallValue && isAuthorized({ requestedBy, participantId: key })), + cancelRemove: () => !isAdmin, + }, + }); + if (participants.isError) { + return participants; + } + const twoWayOperation = { + $v: 1, + $r: 1, + participants: participants.value, + }; + if (isAdmin) { + twoWayOperation.closeStatus = serverTransform$n({ + first: serverOperation?.closeStatus, + second: clientOperation.closeStatus, + prevState: stateBeforeServerOperation.closeStatus, + }); + twoWayOperation.createdAt = serverTransform$n({ + first: serverOperation?.createdAt, + second: clientOperation.createdAt, + prevState: stateBeforeServerOperation.createdAt, + }); + twoWayOperation.createdBy = serverTransform$n({ + first: serverOperation?.createdBy, + second: clientOperation.createdBy, + prevState: stateBeforeServerOperation.createdBy, + }); + } + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const oneToTenArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +/** + * Stateから、指定されたユーザーが閲覧できないデータを取り除いた新しいStateを返す。 + * @param requestedBy 生成されたStateを渡すユーザーの種類。権限を確認するために用いられる。 + */ +const toClientState = (requestedBy) => (source) => { + return { + ...source, + bgms: toClientState$i({ + serverState: source.bgms, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$h(state), + }), + boolParamNames: toClientState$i({ + serverState: source.boolParamNames, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$2(state), + }), + boards: toClientState$i({ + serverState: source.boards, + isPrivate: (_, boardId) => !isBoardVisible({ + boardId, + requestedBy, + currentRoomState: source, + }), + toClientState: ({ state }) => toClientState$b(requestedBy, source)(state), + }), + characters: toClientState$i({ + serverState: source.characters, + isPrivate: state => !isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }) && state.isPrivate, + toClientState: ({ state }) => toClientState$4(isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }), requestedBy, source)(state), + }), + memos: toClientState$i({ + serverState: source.memos, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$3(state), + }), + numParamNames: toClientState$i({ + serverState: source.numParamNames, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$2(state), + }), + participants: toClientState$i({ + serverState: source.participants, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$1(state), + }), + strParamNames: toClientState$i({ + serverState: source.strParamNames, + isPrivate: () => false, + toClientState: ({ state }) => toClientState$2(state), + }), + }; +}; +/** + * クライアントによる変更の要求を表すOperationを受け取り、APIサーバーのStateに対してapplyできる状態のOperationに変換して返す。変換処理では、主に次の2つが行われる。 + * - クライアントから受け取ったOperationのうち、不正なもの(例: そのユーザーが本来削除できないはずのキャラクターを削除しようとする)があった場合に、取り除くか拒否してエラーを返す + * - 編集競合が発生している場合は解決する + * + * @param requestedBy 変更を要求したユーザーの種類。権限を確認するために用いられる。 + * @param stateBeforeServerOperation クライアントがStateを変更しようとしたときに用いられたState。 + * @param stateAfterServerOperation APIサーバーにおける実際の最新のState。 + * @param serverOperation `stateBeforeServerOperation`と`stateAfterServerOperation`のDiff。`stateBeforeServerOperation`と`stateAfterServerOperation`が等しい場合はundefined。 + * @param clientOperation クライアントが要求している変更。 + * @returns `stateAfterServerOperation`に対してapplyできる状態のOperation。 + */ +const serverTransform = (requestedBy) => ({ stateBeforeServerOperation, stateAfterServerOperation, clientOperation, serverOperation, }) => { + switch (requestedBy.type) { + case restrict: + // エラーを返すべきかもしれない + return Result.ok(undefined); + case client: { + const me = (stateAfterServerOperation.participants ?? {})[requestedBy.userUid]; + if (me == null || me.role == null || me.role === Spectator) { + // エラーを返すべきかもしれない + return Result.ok(undefined); + } + break; + } + } + const isAdmin = requestedBy.type === admin; + const bgms = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.bgms ?? {}, + stateAfterFirst: stateAfterServerOperation.bgms ?? {}, + first: serverOperation?.bgms, + second: clientOperation.bgms, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$m({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ key }) => !isStrIndex5(key), + }, + }); + if (bgms.isError) { + return bgms; + } + const boolParamNames = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.boolParamNames ?? {}, + stateAfterFirst: stateAfterServerOperation.boolParamNames ?? {}, + first: serverOperation?.boolParamNames, + second: clientOperation.boolParamNames, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$4({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ key }) => !isStrIndex20(key), + }, + }); + if (boolParamNames.isError) { + return boolParamNames; + } + const boards = serverTransform$o({ + first: serverOperation?.boards, + second: clientOperation.boards, + stateBeforeFirst: stateBeforeServerOperation.boards ?? {}, + stateAfterFirst: stateAfterServerOperation.boards ?? {}, + innerTransform: ({ first, second, prevState, nextState }) => serverTransform$d(requestedBy, stateAfterServerOperation)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ newState }) => !isOwner({ + requestedBy, + ownerParticipantId: newState.ownerParticipantId ?? none, + }), + cancelUpdate: ({ key }) => { + return !isBoardVisible({ + boardId: key, + currentRoomState: stateAfterServerOperation, + requestedBy, + }); + }, + cancelRemove: ({ state }) => !isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }), + }, + }); + if (boards.isError) { + return boards; + } + const characters = serverTransform$o({ + first: serverOperation?.characters, + second: clientOperation.characters, + stateBeforeFirst: stateBeforeServerOperation.characters ?? {}, + stateAfterFirst: stateAfterServerOperation.characters ?? {}, + innerTransform: ({ first, second, prevState, nextState }) => serverTransform$6(isOwner({ + requestedBy, + ownerParticipantId: nextState.ownerParticipantId ?? anyValue, + }), requestedBy, stateAfterServerOperation)({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ newState }) => !isOwner({ + requestedBy, + ownerParticipantId: newState.ownerParticipantId ?? none, + }), + cancelUpdate: ({ nextState }) => !isOwner({ + requestedBy, + ownerParticipantId: nextState.ownerParticipantId ?? anyValue, + }) && nextState.isPrivate, + cancelRemove: ({ state }) => !isOwner({ + requestedBy, + ownerParticipantId: state.ownerParticipantId ?? anyValue, + }) && state.isPrivate, + }, + }); + if (characters.isError) { + return characters; + } + // TODO: ファイルサイズが巨大になりそうなときに拒否する機能 + const memos = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.memos ?? {}, + stateAfterFirst: stateAfterServerOperation.memos ?? {}, + first: serverOperation?.memos, + second: clientOperation.memos, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$5({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: {}, + }); + if (memos.isError) { + return memos; + } + const numParamNames = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.numParamNames ?? {}, + stateAfterFirst: stateAfterServerOperation.numParamNames ?? {}, + first: serverOperation?.numParamNames, + second: clientOperation.numParamNames, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$4({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ key }) => !isStrIndex20(key), + }, + }); + if (numParamNames.isError) { + return numParamNames; + } + const strParamNames = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.strParamNames ?? {}, + stateAfterFirst: stateAfterServerOperation.strParamNames ?? {}, + first: serverOperation?.strParamNames, + second: clientOperation.strParamNames, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$4({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: ({ key }) => !isStrIndex20(key), + }, + }); + if (strParamNames.isError) { + return strParamNames; + } + const participants = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.participants ?? {}, + stateAfterFirst: stateAfterServerOperation.participants ?? {}, + first: serverOperation?.participants, + second: clientOperation.participants, + innerTransform: ({ prevState, nextState, first, second, key }) => serverTransform$3({ + requestedBy, + participantKey: key, + })({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: {}, + }); + if (participants.isError) { + return participants; + } + const hasNoOpenRollCall = getOpenRollCall(stateAfterServerOperation.rollCalls ?? {}) == null; + const rollCalls = serverTransform$o({ + stateBeforeFirst: stateBeforeServerOperation.rollCalls ?? {}, + stateAfterFirst: stateAfterServerOperation.rollCalls ?? {}, + first: serverOperation?.rollCalls, + second: clientOperation.rollCalls, + innerTransform: ({ prevState, nextState, first, second }) => serverTransform$1({ + requestedBy, + })({ + stateBeforeServerOperation: prevState, + stateAfterServerOperation: nextState, + serverOperation: first, + clientOperation: second, + }), + toServerState: state => state, + cancellationPolicy: { + cancelCreate: () => !(isAdmin && hasNoOpenRollCall), + cancelRemove: () => !(isAdmin && hasNoOpenRollCall), + }, + }); + if (rollCalls.isError) { + return rollCalls; + } + const twoWayOperation = { + $v: 2, + $r: 1, + bgms: bgms.value, + boards: boards.value, + characters: characters.value, + boolParamNames: boolParamNames.value, + memos: memos.value, + numParamNames: numParamNames.value, + strParamNames: strParamNames.value, + participants: participants.value, + rollCalls: rollCalls.value, + }; + // activeBoardIdには、自分が作成したBoardしか設定できない。ただし、nullishにするのは誰でもできる。 + if (clientOperation.activeBoardId != null) { + if (clientOperation.activeBoardId.newValue == null || + isBoardOwner({ + requestedBy, + boardId: clientOperation.activeBoardId.newValue, + currentRoomState: stateAfterServerOperation, + }) === true) { + twoWayOperation.activeBoardId = serverTransform$n({ + first: serverOperation?.activeBoardId, + second: clientOperation.activeBoardId, + prevState: stateBeforeServerOperation.activeBoardId, + }); + } + } + const name = serverTransform$r({ + first: serverOperation?.name, + second: clientOperation.name, + prevState: stateBeforeServerOperation.name, + }); + if (name.isError) { + return name; + } + twoWayOperation.name = name.value; + for (const i of oneToTenArray) { + const key = `characterTag${i}Name`; + const transformed = serverTransform$q({ + first: serverOperation?.[key], + second: clientOperation[key], + prevState: stateBeforeServerOperation[key], + }); + if (transformed.isError) { + return transformed; + } + twoWayOperation[key] = transformed.value; + } + for (const i of oneToTenArray) { + const key = `publicChannel${i}Name`; + const transformed = serverTransform$r({ + first: serverOperation?.[key], + second: clientOperation[key], + prevState: stateBeforeServerOperation[key], + }); + if (transformed.isError) { + return transformed; + } + twoWayOperation[key] = transformed.value; + } + if (isIdRecord(twoWayOperation)) { + return Result.ok(undefined); + } + return Result.ok(twoWayOperation); +}; + +const template$a = createObjectValueTemplate({ + isPaused: createReplaceValueTemplate(z.boolean()), + files: createReplaceValueTemplate(z.array(filePathValue)), + volume: createReplaceValueTemplate(z.number()), +}, 1, 1); + +const template$9 = createObjectValueTemplate({ + ...templateValue, + ownerParticipantId: createReplaceValueTemplate(maybe(z.string())), + image: createReplaceValueTemplate(maybe(filePathValue)), + isPrivate: createReplaceValueTemplate(z.boolean()), +}, 2, 1); + +const path = 'path'; +const $path = z.object({ + type: z.literal(path), + // SVG pathのdと同様の値 + data: z.string(), +}); +const shape = $path; + +const template$8 = createObjectValueTemplate({ + shape: createReplaceValueTemplate(shape), + fill: createReplaceValueTemplate(maybe(z.string())), + stroke: createReplaceValueTemplate(maybe(z.string())), + strokeWidth: createReplaceValueTemplate(maybe(z.number())), +}, 1, 1); + +const template$7 = createObjectValueTemplate({ + ...templateValue, + ownerParticipantId: createReplaceValueTemplate(z.string().optional()), + isPrivate: createReplaceValueTemplate(z.boolean()), + /** + * keyは`'1'`から`'9'`の9個のみをサポートしています。詳細は`./functions.ts`を参照してください。 + * + * ShapeのPath.dataは、widthとheightがともに100pxの正方形として記述します。コマなどの大きさに応じて自動的にscaleされます。 + * */ + shapes: createRecordValueTemplate(template$8), +}, 1, 1); + +const String = 'String'; +const Number = 'Number'; +const valueInputType = z.union([z.literal(String), z.literal(Number)]); +const template$6 = createObjectValueTemplate({ + ...templateValue, + ownerCharacterId: createReplaceValueTemplate(maybe(z.string())), + isValuePrivate: createReplaceValueTemplate(z.boolean()), + value: createTextValueTemplate(false), + valueInputType: createReplaceValueTemplate(maybe(valueInputType)), +}, 2, 1); + +const template$5 = createObjectValueTemplate({ + backgroundImage: createReplaceValueTemplate(maybe(filePathValue)), + backgroundImageZoom: createReplaceValueTemplate(z.number()), + cellColumnCount: createReplaceValueTemplate(z.number()), + cellHeight: createReplaceValueTemplate(z.number()), + cellOffsetX: createReplaceValueTemplate(z.number()), + cellOffsetY: createReplaceValueTemplate(z.number()), + cellRowCount: createReplaceValueTemplate(z.number()), + cellWidth: createReplaceValueTemplate(z.number()), + name: createTextValueTemplate(false), + ownerParticipantId: createReplaceValueTemplate(maybe(z.string())), + dicePieces: createRecordValueTemplate(template$j), + imagePieces: createRecordValueTemplate(template$9), + shapePieces: createRecordValueTemplate(template$7), + stringPieces: createRecordValueTemplate(template$6), +}, 2, 1); + +const Plain = 'Plain'; +const Markdown = 'Markdown'; +/** + * @description To 3rd-party developers: Please always set 'Plain' to this because 'Markdown' is not implemented yet in the official web-server. + */ +const textType = z.union([z.literal(Plain), z.literal(Markdown)]); +// メモのパスは、/を区切りとして例えば グループ1/グループ2/メモ であれば dir=['グループ1', 'グループ2'], name='メモ' とする。 +const template$4 = createObjectValueTemplate({ + name: createTextValueTemplate(false), + dir: createReplaceValueTemplate(z.array(z.string())), + text: createTextValueTemplate(false), + /** + * @description To 3rd-party developers: Please always set 'Plain' to this because 'Markdown' is not implemented yet in the official web-server. + */ + textType: createReplaceValueTemplate(textType), +}, 1, 1); + +const template$3 = createObjectValueTemplate({ + name: createTextValueTemplate(false), +}, 1, 1); + +const template$2 = createObjectValueTemplate({ + /** 点呼に返事したかどうか。`number` の場合は返事をしたことを表し、値は返事した日時となります。 `undefined` の場合は返事をしていないことを表します。`number` から `undefined` に戻すことで返事を撤回することもできます。また、`number` から `number` に変更することで、返事をした時間を更新することもできます。 */ + answeredAt: createReplaceValueTemplate(z.number().optional()), +}, 1, 1); + +// # 点呼機能と投票機能(未実装)の違いに関する考察 +// +// 点呼機能は投票機能(複数の選択肢があってそこから選ぶ機能)も兼ねようと考えたが、次の点が異なるため、もし投票機能を実装する場合は分けたほうがいいと結論付けた。 +// - 投票機能は、何らかのアクションの許可と関連付ける可能性がある。例えば、GMを変更する、デッキの内容を変更していいか確認をとるなど。対して点呼はそのような機能は必要なさそう。 +// - 投票機能は、締め切られるまで他の人がどちらに投票したかわからないようにすると理想的(必須ではない)。対して点呼はそのような必要がない。 +// - 点呼は全員が返事するかどうかが最も大事。投票はその限りではなく、もし多数決であれば無投票があっても問題ない。 +// - 投票は複数が同時進行しても構わないが、点呼は基本的に1つまで。 +const closeReason = z.object({ + closedBy: z.string(), + /** + * ユーザーが明示的に点呼を終了させたときは `Closed`。 + * + * 現時点では `Closed` のみに対応していますが、将来、他の点呼が開始されたため自動終了したときの値として `Replaced` が追加される可能性があります。 + */ + reason: z.literal('Closed'), +}); +const soundEffect = z.object({ + file: filePathValue, + volume: z.number(), +}); +/** 点呼の状況。 */ +const template$1 = createObjectValueTemplate({ + createdAt: createReplaceValueTemplate(z.number()), + // Participant ID + createdBy: createReplaceValueTemplate(z.string()), + /** + * 締め切られたかどうか。nullish ならば締め切られていないことを表します。原則として、締め切られていない点呼は、最大で1つまでしか存在できません。 + * + * 締め切られていない場合、参加者は誰でも締め切ることができます(ただし、締め切るには GraphQL の Mutation から実行する必要があります)。すでに締め切られている場合は、再開させることはできません。 + */ + closeStatus: createReplaceValueTemplate(closeReason.optional()), + /** + * 各ユーザーの点呼の状況です。keyはParticipantのIDです。 + * + * 原則として、`Spectator` もしくは存在しない Participant を追加すること、値を削除すること、すでに締め切られている場合に値を追加および変更することはできません。 + * + * この Record に存在しない `Player` や `Master` も点呼に参加できます。 + */ + participants: createRecordValueTemplate(template$2), + // このプロパティを実装せず、代わりにクライアント側で点呼開始と同時に通常時の SE 機能から流す案は、次の理由で却下した。もし点呼開始の mutation 実行開始と同時に流す場合は、点呼開始に失敗したときにも SE が流れてしまう。mutation の応答を待って成功していたときのみ流す場合は、点呼開始直後にブラウザを閉じたりしたときに SE が流れないという問題点がある。 + /** 点呼開始時に流す SE。 */ + soundEffect: createReplaceValueTemplate(soundEffect.optional()), +}, 1, 1); + +const templateBase = { + activeBoardId: createReplaceValueTemplate(maybe(z.string())), + bgms: createRecordValueTemplate(template$a), // keyはStrIndex5 + boolParamNames: createRecordValueTemplate(template$3), //keyはStrIndex20 + boards: createRecordValueTemplate(template$5), // keyはランダムなID + characters: createRecordValueTemplate(template$c), // keyはランダムなID + characterTag1Name: createTextValueTemplate(true), + characterTag2Name: createTextValueTemplate(true), + characterTag3Name: createTextValueTemplate(true), + characterTag4Name: createTextValueTemplate(true), + characterTag5Name: createTextValueTemplate(true), + characterTag6Name: createTextValueTemplate(true), + characterTag7Name: createTextValueTemplate(true), + characterTag8Name: createTextValueTemplate(true), + characterTag9Name: createTextValueTemplate(true), + characterTag10Name: createTextValueTemplate(true), + memos: createRecordValueTemplate(template$4), // keyはランダムなID + numParamNames: createRecordValueTemplate(template$3), // keyはStrIndex20 + rollCalls: createRecordValueTemplate(template$1), // keyはランダムなID + publicChannel1Name: createTextValueTemplate(false), + publicChannel2Name: createTextValueTemplate(false), + publicChannel3Name: createTextValueTemplate(false), + publicChannel4Name: createTextValueTemplate(false), + publicChannel5Name: createTextValueTemplate(false), + publicChannel6Name: createTextValueTemplate(false), + publicChannel7Name: createTextValueTemplate(false), + publicChannel8Name: createTextValueTemplate(false), + publicChannel9Name: createTextValueTemplate(false), + publicChannel10Name: createTextValueTemplate(false), + strParamNames: createRecordValueTemplate(template$3), //keyはStrIndex20 +}; +const dbTemplate = createObjectValueTemplate(templateBase, 2, 1); +// nameとcreatedByはDBから頻繁に取得されると思われる値なので独立させている。 +const template = createObjectValueTemplate({ + ...templateBase, + createdBy: createReplaceValueTemplate(z.string()), + name: createTextValueTemplate(false), + participants: createRecordValueTemplate(template$b), +}, 2, 1); + +const decodeState = (source) => { + return state(template).parse(source); +}; +const parseState = (source) => { + return decodeState(JSON.parse(source)); +}; +const stringifyState = (source) => { + const result = state(template).parse(source); + return JSON.stringify(result); +}; +const decodeDbState = (source) => { + return state(dbTemplate).parse(source); +}; +const exactDbState = (source) => { + return state(dbTemplate).parse(source); +}; +const decodeUpOperation = (source) => { + return upOperation(template).parse(source); +}; +const parseUpOperation = (source) => { + return decodeUpOperation(JSON.parse(source)); +}; +const stringifyUpOperation = (source) => { + const result = upOperation(template).parse(source); + return JSON.stringify(result); +}; +const decodeDownOperation = (source) => { + return downOperation(template).parse(source); +}; +const exactDownOperation = (source) => { + return downOperation(template).parse(source); +}; + +const createOperation = (version, revision, props) => z + .object(props) + .partial() + .merge(z.object({ + $v: z.literal(version), + $r: z.literal(revision), +})); + +const updateType = 'update'; +const createType = 'create'; +const deleteType = 'delete'; + +const dieValueUpOperation = createOperation(1, 1, { + dieType: z.object({ newValue: dieType }), + isValuePrivateChanged: z.object({ newValue: maybe(z.number()) }), + isValueChanged: z.boolean(), +}); +const update$1 = z + .object({ + $v: z.literal(2), + $r: z.literal(1), + type: z.literal(updateType), +}) + .and(upOperation(createObjectValueTemplate(templateValue, 2, 1))) + .and(z + .object({ + ownerCharacterId: z.object({ newValue: maybe(z.string()) }), + dice: record$1(recordUpOperationElementFactory(state(template$k), dieValueUpOperation)), +}) + .partial()); +const type$1 = z.union([ + z.object({ + $v: z.literal(2), + $r: z.literal(1), + type: z.literal(createType), + value: state(template$j), + }), + z.object({ + $v: z.literal(2), + $r: z.literal(1), + type: z.literal(deleteType), + value: state(template$j), + }), + update$1, +]); +const ofOperation$1 = (operation, currentState) => { + const result = { + ...toUpOperation(template$j)(operation), + $v: 2, + $r: 1, + type: updateType, + ownerCharacterId: operation.ownerCharacterId, + dice: operation.dice == null + ? undefined + : chooseRecord(operation.dice, (element, key) => { + switch (element.type) { + case update$2: { + const currentDiceState = (currentState.dice ?? {})[key]; + if (currentDiceState == null) { + throw new Error('this should not happen'); + } + const update = { + $v: 1, + $r: 1, + dieType: element.update.dieType, + isValuePrivateChanged: element.update.isValuePrivate == null || + element.update.isValuePrivate.oldValue === + element.update.isValuePrivate.newValue + ? undefined + : { + newValue: element.update.isValuePrivate.newValue + ? undefined + : currentDiceState.value, + }, + isValueChanged: element.update.value != null, + }; + return { + type: update$2, + update, + }; + } + case replace$1: { + const newValue = element.replace.newValue == null + ? undefined + : toClientState$g(false)(element.replace.newValue); + return { + type: replace$1, + replace: { + newValue, + }, + }; + } + } + }), + }; + return type$1.parse(result); +}; + +const decode$1 = (source) => { + return type$1.parse(source); +}; +const parse$1 = (source) => { + return decode$1(JSON.parse(source)); +}; + +const update = z + .object({ + $v: z.literal(2), + $r: z.literal(1), + type: z.literal(updateType), +}) + .and(upOperation(createObjectValueTemplate(templateValue, 2, 1))) + .and(z + .object({ + ownerCharacterId: z.object({ newValue: maybe(z.string()) }), + isValuePrivateChanged: z.object({ newValue: maybe(z.string()) }), + isValueChanged: z.boolean(), +}) + .partial()); +const type = z.union([ + z.object({ + $v: z.literal(2), + $r: z.literal(1), + type: z.literal(createType), + value: state(template$6), + }), + z.object({ + $v: z.literal(2), + $r: z.literal(1), + type: z.literal(deleteType), + value: state(template$6), + }), + update, +]); +const ofOperation = (operation, currentState) => { + const result = { + ...toUpOperation(template$6)(operation), + $v: 2, + $r: 1, + type: updateType, + ownerCharacterId: operation.ownerCharacterId, + isValueChanged: operation.value != null, + isValuePrivateChanged: operation.isValuePrivate == null || + operation.isValuePrivate.oldValue === operation.isValuePrivate.newValue + ? undefined + : { + newValue: operation.isValuePrivate.newValue ? undefined : currentState.value, + }, + }; + return type.parse(result); +}; + +const decode = (source) => { + return type.parse(source); +}; +const parse = (source) => { + return decode(JSON.parse(source)); +}; + +const createLogs = ({ prevState, nextState, }) => { + const boardsDiff = diff$1({ + prevState: prevState.boards ?? {}, + nextState: nextState.boards ?? {}, + innerDiff: params => diff(template$5)(params), + }); + if (boardsDiff == null) { + return undefined; + } + const dicePieceLogs = []; + const stringPieceLogs = []; + recordForEach(boardsDiff, (diff, boardId) => { + if (diff.type === replace$1) { + recordForEach(diff.replace.oldValue?.dicePieces ?? {}, (value, stateId) => { + dicePieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: deleteType, + value: toClientState$f({ type: restrict }, prevState)(value), + }, + }); + }); + recordForEach(diff.replace.newValue?.dicePieces ?? {}, (value, stateId) => { + dicePieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: createType, + value: toClientState$f({ type: restrict }, prevState)(value), + }, + }); + }); + recordForEach(diff.replace.oldValue?.stringPieces ?? {}, (value, stateId) => { + stringPieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: deleteType, + value: toClientState$c({ type: restrict }, prevState)(value), + }, + }); + }); + recordForEach(diff.replace.newValue?.stringPieces ?? {}, (value, stateId) => { + stringPieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: createType, + value: toClientState$c({ type: restrict }, prevState)(value), + }, + }); + }); + return; + } + const nextBoard = (nextState.boards ?? {})[boardId]; + if (nextBoard == null) { + throw new Error('this should not happen. Board.diff has some bugs?'); + } + recordForEach(diff.update.dicePieces ?? {}, (operation, stateId) => { + if (operation.type === replace$1) { + if (operation.replace.oldValue != null) { + dicePieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: deleteType, + value: toClientState$f({ type: restrict }, prevState)(operation.replace.oldValue), + }, + }); + } + if (operation.replace.newValue != null) { + dicePieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: createType, + value: toClientState$f({ type: restrict }, prevState)(operation.replace.newValue), + }, + }); + } + return; + } + const nextDicePiece = (nextBoard.dicePieces ?? {})[stateId]; + if (nextDicePiece == null) { + throw new Error('this should not happen'); + } + dicePieceLogs.push({ + boardId, + stateId, + value: ofOperation$1(operation.update, nextDicePiece), + }); + }); + recordForEach(diff.update.stringPieces ?? {}, (operation, stateId) => { + if (operation.type === replace$1) { + if (operation.replace.oldValue != null) { + stringPieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: deleteType, + value: toClientState$c({ type: restrict }, prevState)(operation.replace.oldValue), + }, + }); + } + if (operation.replace.newValue != null) { + stringPieceLogs.push({ + boardId, + stateId, + value: { + $v: 2, + $r: 1, + type: createType, + value: toClientState$c({ type: restrict }, prevState)(operation.replace.newValue), + }, + }); + } + return; + } + const nextStringPiece = (nextBoard.stringPieces ?? {})[stateId]; + if (nextStringPiece == null) { + throw new Error('this should not happen'); + } + stringPieceLogs.push({ + boardId, + stateId, + value: ofOperation(operation.update, nextStringPiece), + }); + }); + }); + return { + dicePieceLogs, + stringPieceLogs, + }; +}; + +export { $free, $index, $r, $system, $v, Default, FirebaseStorage, Markdown, Master, Number, OtError, Plain, Player, PublicChannelKey, Spectator, String, Uploader, admin, analyze, anonymous, apply$1 as apply, applyBack, apply$4 as applyNullableText, apply$5 as applyText, arrayToIndexObjects, atomic, authToken, template$a as bgmTemplate, template$m as boardPositionTemplate, template$5 as boardTemplate, template$i as boolParamTemplate, template$h as characterPieceTemplate, template$c as characterTemplate, client, clientTransform$1 as clientTransform, template$g as commandTemplate, composeDownOperation, createLogs, createObjectValueTemplate, createParamRecordValueTemplate, createRecordValueTemplate, createReplaceValueTemplate, createTextValueTemplate, createType, decodeDbState, decode$1 as decodeDicePiece, decodeDownOperation, decode as decodeStringPiece, deleteType, type$1 as dicePieceLog, dicePieceStrIndexes, template$j as dicePieceTemplate, template$k as dieValueTemplate, diff, downOperation, env, exactDbState, exactDownOperation, execCharacterCommand, expr1, fakeFirebaseConfig1, fakeFirebaseConfig2, filePathTemplate, firebaseConfig, forceMaxLength100String, generateChatPalette, getOpenRollCall, getVariableFromVarTomlObject, template$9 as imagePieceTemplate, indexObjectsToArray, isCharacterOwner, isIdRecord, isOpenRollCall, isStrIndex10, isStrIndex100, isStrIndex20, isStrIndex5, isValidVarToml, joinPath, maxLength100String, maybe, template$4 as memoTemplate, diff$3 as nullableTextDiff, template$f as numParamTemplate, object, ot, template$3 as paramNameTemplate, paramRecord, parse$1 as parseDicePiece, parseState, parse as parseStringPiece, parseToml, parseUpOperation, template$b as participantTemplate, path, template$l as pieceTemplate, plain, template$e as portraitPieceTemplate, record, replace$1 as replace, restore, restrict, dbTemplate as roomDbTemplate, template as roomTemplate, sanitizeFilename, sanitizeFoldername, serverTransform, shape, template$7 as shapePieceTemplate, template$8 as shapeTemplate, simpleId, state, strIndex100Array, strIndex10Array, strIndex20Array, strIndex5Array, template$d as strParamTemplate, type as stringPieceLog, template$6 as stringPieceTemplate, stringifyState, stringifyUpOperation, testCommand, diff$4 as textDiff, toClientState, toDownOperation, toUpOperation$1 as toNullableTextUpOperation, toOtError, toUpOperation$2 as toTextUpOperation, toUpOperation, trySanitizePath, upOperation, update$2 as update, updateType }; +//# sourceMappingURL=index.js.map diff --git a/packages/core/dist/esm/index.js.map b/packages/core/dist/esm/index.js.map new file mode 100644 index 000000000..11c79f9c1 --- /dev/null +++ b/packages/core/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/constants.ts","../../../src/internal/env.ts","../../../src/internal/firebaseConfig.ts","../../../src/internal/indexes.ts","../../../src/internal/maxLengthString.ts","../../../src/internal/forceMaxLength100String.ts","../../../src/internal/maybe.ts","../../../src/internal/publicChannelKey.ts","../../../src/internal/simpleId.ts","../../../src/internal/expression.ts","../../../src/internal/toml.ts","../../../src/internal/command/boolParam.ts","../../../src/internal/command/boolParams.ts","../../../src/internal/ot/recordOperationElement.ts","../../../src/internal/ot/textOperation.ts","../../../src/internal/ot/nullableTextOperation.ts","../../../src/internal/ot/record.ts","../../../src/internal/ot/generator/types.ts","../../../src/internal/ot/flocon/filePath/types.ts","../../../src/internal/command/filePath.ts","../../../src/internal/command/numParam.ts","../../../src/internal/command/numParams.ts","../../../src/internal/command/strParam.ts","../../../src/internal/command/strParams.ts","../../../src/internal/command/character.ts","../../../src/internal/command/paramNames.ts","../../../src/internal/command/participant.ts","../../../src/internal/command/stateRecord.ts","../../../src/internal/command/room.ts","../../../src/internal/command/main.ts","../../../src/internal/uploaderPath.ts","../../../src/internal/fake/fakeFirebaseConfig.ts","../../../src/internal/ot/util/isValidKey.ts","../../../src/internal/ot/paramRecordOperation.ts","../../../src/internal/ot/recordOperation.ts","../../../src/internal/ot/generator/functions.ts","../../../src/internal/ot/otError.ts","../../../src/internal/ot/util/array/arrayDiff.ts","../../../src/internal/ot/util/array/arrayTransform.ts","../../../src/internal/ot/array.ts","../../../src/internal/ot/requestedBy.ts","../../../src/internal/ot/util/replaceOperation.ts","../../../src/internal/ot/flocon/room/bgm/functions.ts","../../../src/internal/ot/flocon/boardPosition/functions.ts","../../../src/internal/ot/flocon/piece/functions.ts","../../../src/internal/ot/flocon/room/board/dicePiece/dieValue/functions.ts","../../../src/internal/ot/flocon/boardPosition/types.ts","../../../src/internal/ot/flocon/piece/types.ts","../../../src/internal/ot/flocon/room/board/dicePiece/dieValue/types.ts","../../../src/internal/ot/flocon/room/board/dicePiece/types.ts","../../../src/internal/ot/flocon/room/board/dicePiece/functions.ts","../../../src/internal/ot/flocon/room/board/imagePiece/functions.ts","../../../src/internal/ot/flocon/shape/functions.ts","../../../src/internal/ot/flocon/room/board/shapePiece/functions.ts","../../../src/internal/ot/flocon/room/board/stringPiece/functions.ts","../../../src/internal/ot/flocon/room/board/functions.ts","../../../src/internal/ot/flocon/room/character/boolParam/functions.ts","../../../src/internal/ot/flocon/room/character/characterPiece/functions.ts","../../../src/internal/ot/flocon/room/character/command/functions.ts","../../../src/internal/ot/flocon/room/character/numParam/functions.ts","../../../src/internal/ot/flocon/room/character/portraitPiece/functions.ts","../../../src/internal/ot/flocon/room/character/strParam/functions.ts","../../../src/internal/ot/flocon/room/character/boolParam/types.ts","../../../src/internal/ot/flocon/room/character/characterPiece/types.ts","../../../src/internal/ot/flocon/room/character/command/types.ts","../../../src/internal/ot/flocon/room/character/numParam/types.ts","../../../src/internal/ot/flocon/room/character/portraitPiece/types.ts","../../../src/internal/ot/flocon/room/character/strParam/types.ts","../../../src/internal/ot/flocon/room/character/types.ts","../../../src/internal/ot/flocon/room/character/functions.ts","../../../src/internal/ot/flocon/room/memo/functions.ts","../../../src/internal/ot/flocon/room/paramName/functions.ts","../../../src/internal/ot/flocon/room/participant/functions.ts","../../../src/internal/ot/flocon/room/participant/types.ts","../../../src/internal/ot/flocon/room/rollCall/getOpenRollCall.ts","../../../src/internal/ot/flocon/room/rollCall/isOpenRollCall.ts","../../../src/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.ts","../../../src/internal/ot/flocon/room/rollCall/functions.ts","../../../src/internal/ot/flocon/room/functions.ts","../../../src/internal/ot/flocon/room/bgm/types.ts","../../../src/internal/ot/flocon/room/board/imagePiece/types.ts","../../../src/internal/ot/shape.ts","../../../src/internal/ot/flocon/shape/types.ts","../../../src/internal/ot/flocon/room/board/shapePiece/types.ts","../../../src/internal/ot/flocon/room/board/stringPiece/types.ts","../../../src/internal/ot/flocon/room/board/types.ts","../../../src/internal/ot/flocon/room/memo/types.ts","../../../src/internal/ot/flocon/room/paramName/types.ts","../../../src/internal/ot/flocon/room/rollCall/rollCallParticipant/types.ts","../../../src/internal/ot/flocon/room/rollCall/types.ts","../../../src/internal/ot/flocon/room/types.ts","../../../src/internal/ot/flocon/room/converter.ts","../../../src/internal/ot/util/createOperation.ts","../../../src/internal/ot/flocon/piece/log.ts","../../../src/internal/ot/flocon/room/board/dicePiece/log.ts","../../../src/internal/ot/flocon/room/board/dicePiece/converter.ts","../../../src/internal/ot/flocon/room/board/stringPiece/log.ts","../../../src/internal/ot/flocon/room/board/stringPiece/converter.ts","../../../src/internal/ot/flocon/room/log.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["TomlLocalDate","TomlLocalDateTime","TomlLocalTime","TomlOffsetDateTime","parseCore","value","isValueSecret","createDefaultState","update","replace","downOperation","upOperation","apply","applyCore","applyBack","applyBackCore","composeDownOperation","composeDownOperationCore","restore","serverTransform","clientTransform","diff","diffCore","toUpOperation","toUpOperationCore","toDownOperation","toDownOperationCore","TextOperation.downOperation","TextOperation.upOperation","TextOperation.toUpOperation","TextOperation.toDownOperation","TextOperation.apply","TextOperation.applyBack","TextOperation.composeDownOperation","TextOperation.diff","TextOperation.restore","TextOperation.serverTransform","TextOperation.clientTransform","record","zrecord","NullableTextOperation.upOperation","NullableTextOperation.downOperation","FilePath.Default","FilePath.FirebaseStorage","name","compose","toClientState","NullableTextOperation.toUpOperation","RecordOperation.mapRecordUpOperation","NullableTextOperation.toDownOperation","RecordOperation.mapRecordDownOperation","NullableTextOperation.apply","RecordOperation.apply","ParamRecordOperation.apply","NullableTextOperation.applyBack","RecordOperation.applyBack","ParamRecordOperation.applyBack","NullableTextOperation.composeDownOperation","RecordOperation.composeDownOperation","ParamRecordOperation.compose","NullableTextOperation.restore","RecordOperation.restore","ParamRecordOperation.restore","NullableTextOperation.diff","RecordOperation.diff","ParamRecordOperation.diff","NullableTextOperation.clientTransform","ArrayOperation.clientTransform","RecordOperation.clientTransform","ParamRecordOperation.clientTransform","transformCore","RecordOperation.compose","ReplaceOperation.serverTransform","NullableTextOperation.serverTransform","BoardPosition.serverTransform","templateValue","template","BoardPosition.templateValue","Piece.templateValue","DieValueTypes.template","DieValue.toClientState","RecordOperation.serverTransform","DieValue.serverTransform","Piece.serverTransform","Shape.serverTransform","RecordOperation.toClientState","DicePiece.toClientState","ImagePiece.toClientState","ShapePiece.toClientState","StringPiece.toClientState","DicePiece.serverTransform","ImagePiece.serverTransform","ShapePiece.serverTransform","StringPiece.serverTransform","ReplaceValueOperation.serverTransform","PieceBase.serverTransform","BoardPositionBase.serverTransform","BoardPositionBase.templateValue","BoolParam.template","NumParam.template","StrParam.template","CharacterPiece.template","Command.template","PortraitPiece.template","oneToTenArray","BoolParam.toClientState","NumParam.toClientState","StrParam.toClientState","CharacterPiece.toClientState","Command.toClientState","PortraitPiece.toClientState","ParamRecordOperation.serverTransform","BoolParam.serverTransform","NumParam.serverTransform","StrParam.serverTransform","CharacterPiece.serverTransform","Command.serverTransform","PortraitPiece.serverTransform","Participant.serverTransform","Bgm.toClientState","ParamNames.toClientState","Board.toClientState","Character.toClientState","Memo.toClientState","Participant.toClientState","ParticipantTypes.Spectator","Bgm.serverTransform","ParamNames.serverTransform","Board.serverTransform","Character.serverTransform","Memo.serverTransform","RollCalls.serverTransform","Shape.template","DicePiece.template","ImagePiece.template","ShapePiece.template","StringPiece.template","RollCallParticipant.template","Bgm.template","ParamNames.template","Board.template","Character.template","Memo.template","RollCall.template","Participant.template","Room.template","Room.dbTemplate","DieValueTypes.dieType","PieceBaseTypes.templateValue","type","DicePieceValueTypes.template","ofOperation","updateKey","replaceKey","decode","DiePieceValueLog.type","parse","StringPieceValueTypes.template","StringPieceValueLog.type","BoardTypes.template","DicePieceLog.ofOperation","StringPieceLog.ofOperation"],"mappings":"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"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/__test__/fixtures.d.ts b/packages/core/dist/esm/internal/__test__/fixtures.d.ts new file mode 100644 index 000000000..cf7efe2e0 --- /dev/null +++ b/packages/core/dist/esm/internal/__test__/fixtures.d.ts @@ -0,0 +1,34 @@ +import { State, boardTemplate, characterTemplate, roomDbTemplate, roomTemplate } from '../..'; +export declare namespace Fixtures { + namespace Participant { + namespace Spectator { + const userUid = "SPECTATOR"; + const name: string & import("zod").BRAND<"MaxLength100String">; + } + namespace Player1 { + const userUid = "PLAYER1"; + const name: string & import("zod").BRAND<"MaxLength100String">; + } + namespace Player2 { + const userUid = "PLAYER2"; + const name: string & import("zod").BRAND<"MaxLength100String">; + } + namespace Null { + const userUid = "NULL_PARTICIPANT"; + const name: string & import("zod").BRAND<"MaxLength100String">; + } + namespace None { + const userUid = "NONE_PARTICIPANT"; + } + } + namespace Board { + const emptyState: (ownerParticipantId: string | undefined) => State; + } + namespace Character { + const emptyState: (ownerParticipantId: string | undefined) => State; + } + const minimumState: State; + const complexDbState: State; + const complexState: State; +} +//# sourceMappingURL=fixtures.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/__test__/fixtures.d.ts.map b/packages/core/dist/esm/internal/__test__/fixtures.d.ts.map new file mode 100644 index 000000000..501df6232 --- /dev/null +++ b/packages/core/dist/esm/internal/__test__/fixtures.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../../src/internal/__test__/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,EACL,aAAa,EACb,iBAAiB,EAEjB,cAAc,EACd,YAAY,EACf,MAAM,OAAO,CAAC;AAEf,yBAAiB,QAAQ,CAAC;IAGtB,UAAiB,WAAW,CAAC;QACzB,UAAiB,SAAS,CAAC;YAChB,MAAM,OAAO,cAAc,CAAC;YAC5B,MAAM,IAAI,oDAA4C,CAAC;SACjE;QAED,UAAiB,OAAO,CAAC;YACd,MAAM,OAAO,YAAY,CAAC;YAC1B,MAAM,IAAI,oDAA0C,CAAC;SAC/D;QAED,UAAiB,OAAO,CAAC;YACd,MAAM,OAAO,YAAY,CAAC;YAC1B,MAAM,IAAI,oDAA0C,CAAC;SAC/D;QAED,UAAiB,IAAI,CAAC;YACX,MAAM,OAAO,qBAAqB,CAAC;YACnC,MAAM,IAAI,oDAAmD,CAAC;SACxE;QAED,UAAiB,IAAI,CAAC;YACX,MAAM,OAAO,qBAAqB,CAAC;SAC7C;KACJ;IAED,UAAiB,KAAK,CAAC;QACZ,MAAM,UAAU,uBACC,MAAM,GAAG,SAAS,KACvC,KAAK,CAAC,OAAO,aAAa,CAiB3B,CAAC;KACN;IAED,UAAiB,SAAS,CAAC;QAChB,MAAM,UAAU,uBACC,MAAM,GAAG,SAAS,KACvC,KAAK,CAAC,OAAO,iBAAiB,CA4B/B,CAAC;KACN;IAEM,MAAM,YAAY,EAAE,KAAK,CAAC,OAAO,YAAY,CA4DnD,CAAC;IAEK,MAAM,cAAc,EAAE,KAAK,CAAC,OAAO,cAAc,CA4RvD,CAAC;IAEK,MAAM,YAAY,EAAE,KAAK,CAAC,OAAO,YAAY,CAmBnD,CAAC;CACL"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/__test__/normalizeRoomState.d.ts b/packages/core/dist/esm/internal/__test__/normalizeRoomState.d.ts new file mode 100644 index 000000000..81a6badb6 --- /dev/null +++ b/packages/core/dist/esm/internal/__test__/normalizeRoomState.d.ts @@ -0,0 +1,2 @@ +export declare const normalizeRoomState: (source: unknown) => any; +//# sourceMappingURL=normalizeRoomState.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/__test__/normalizeRoomState.d.ts.map b/packages/core/dist/esm/internal/__test__/normalizeRoomState.d.ts.map new file mode 100644 index 000000000..2aca72d9e --- /dev/null +++ b/packages/core/dist/esm/internal/__test__/normalizeRoomState.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"normalizeRoomState.d.ts","sourceRoot":"","sources":["../../../../src/internal/__test__/normalizeRoomState.ts"],"names":[],"mappings":"AAwDA,eAAO,MAAM,kBAAkB,WAAY,OAAO,KAAG,GA8BpD,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/bgm.d.ts b/packages/core/dist/esm/internal/command/bgm.d.ts new file mode 100644 index 000000000..6bb034646 --- /dev/null +++ b/packages/core/dist/esm/internal/command/bgm.d.ts @@ -0,0 +1,11 @@ +import { FObject, FValue, OnGettingParams, OnSettingParams } from '@flocon-trpg/flocon-script'; +import * as BgmTypes from '../ot/flocon/room/bgm/types'; +import { State } from '../ot/generator/types'; +export declare class FBgm extends FObject { + private readonly bgm; + constructor(bgm: State); + getCore({ key }: OnGettingParams): FValue; + setCore({ key, newValue, astInfo }: OnSettingParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=bgm.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/bgm.d.ts.map b/packages/core/dist/esm/internal/command/bgm.d.ts.map new file mode 100644 index 000000000..2c90ff967 --- /dev/null +++ b/packages/core/dist/esm/internal/command/bgm.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bgm.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/bgm.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EAEP,MAAM,EACN,eAAe,EACf,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAO9C,qBAAa,IAAK,SAAQ,OAAO;IACV,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAI/D,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,eAAe,GAAG,MAAM;IAmBzC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,IAAI;IAwB1D,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/bgms.d.ts b/packages/core/dist/esm/internal/command/bgms.d.ts new file mode 100644 index 000000000..70212785a --- /dev/null +++ b/packages/core/dist/esm/internal/command/bgms.d.ts @@ -0,0 +1,14 @@ +import { FObject, FValue, OnGettingParams } from '@flocon-trpg/flocon-script'; +import * as RoomTypes from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +export declare class FBgms extends FObject { + private readonly room; + constructor(room: State); + private find; + private ensure; + private delete; + getCore({ key, astInfo }: OnGettingParams): FValue; + setCore(): void; + toJObject(): unknown; +} +//# sourceMappingURL=bgms.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/bgms.d.ts.map b/packages/core/dist/esm/internal/command/bgms.d.ts.map new file mode 100644 index 000000000..b2d17b383 --- /dev/null +++ b/packages/core/dist/esm/internal/command/bgms.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bgms.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/bgms.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,OAAO,EACP,MAAM,EACN,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG9C,qBAAa,KAAM,SAAQ,OAAO;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC;IAI1E,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,MAAM;IAuBd,OAAO,CAAC,MAAM;IAgBL,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;IA6BlD,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/boolParam.d.ts b/packages/core/dist/esm/internal/command/boolParam.d.ts new file mode 100644 index 000000000..7b06e4022 --- /dev/null +++ b/packages/core/dist/esm/internal/command/boolParam.d.ts @@ -0,0 +1,11 @@ +import { FObject, FValue, OnGettingParams, OnSettingParams } from '@flocon-trpg/flocon-script'; +import * as BoolParam from '../ot/flocon/room/character/boolParam/types'; +import { State } from '../ot/generator/types'; +export declare class FBoolParam extends FObject { + private readonly boolParam; + constructor(boolParam: State); + getCore({ key }: OnGettingParams): FValue; + setCore({ key, newValue, astInfo }: OnSettingParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=boolParam.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/boolParam.d.ts.map b/packages/core/dist/esm/internal/command/boolParam.d.ts.map new file mode 100644 index 000000000..0b05a0a43 --- /dev/null +++ b/packages/core/dist/esm/internal/command/boolParam.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"boolParam.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/boolParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,OAAO,EACP,MAAM,EACN,eAAe,EACf,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAK9C,qBAAa,UAAW,SAAQ,OAAO;IAChB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC;IAItE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,eAAe,GAAG,MAAM;IAczC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,IAAI;IAmB1D,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/boolParams.d.ts b/packages/core/dist/esm/internal/command/boolParams.d.ts new file mode 100644 index 000000000..aad7805b2 --- /dev/null +++ b/packages/core/dist/esm/internal/command/boolParams.d.ts @@ -0,0 +1,17 @@ +import { FObject, FValue, OnGettingParams } from '@flocon-trpg/flocon-script'; +import * as Character from '../ot/flocon/room/character/types'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +export declare class FBoolParams extends FObject { + private readonly boolParams; + private readonly room; + constructor(boolParams: NonNullable['boolParams']>, room: State); + private findKeysByNameOrKey; + private findByNameOrKey; + private toggleValue; + private setIsValuePrivate; + getCore({ key, astInfo }: OnGettingParams): FValue; + setCore(): void; + toJObject(): unknown; +} +//# sourceMappingURL=boolParams.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/boolParams.d.ts.map b/packages/core/dist/esm/internal/command/boolParams.d.ts.map new file mode 100644 index 000000000..602cccde3 --- /dev/null +++ b/packages/core/dist/esm/internal/command/boolParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"boolParams.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/boolParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EACP,MAAM,EACN,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAW9C,qBAAa,WAAY,SAAQ,OAAO;IAEhC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,EACvE,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC;IAKtD,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,iBAAiB;IAahB,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;IAqClD,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/character.d.ts b/packages/core/dist/esm/internal/command/character.d.ts new file mode 100644 index 000000000..357631ec0 --- /dev/null +++ b/packages/core/dist/esm/internal/command/character.d.ts @@ -0,0 +1,13 @@ +import { FObject, FValue, OnGettingParams, OnSettingParams } from '@flocon-trpg/flocon-script'; +import * as Character from '../ot/flocon/room/character/types'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +export declare class FCharacter extends FObject { + readonly character: State; + private readonly room; + constructor(character: State, room: State); + getCore({ key, astInfo }: OnGettingParams): FValue; + setCore({ key, newValue, astInfo }: OnSettingParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=character.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/character.d.ts.map b/packages/core/dist/esm/internal/command/character.d.ts.map new file mode 100644 index 000000000..15b7bc288 --- /dev/null +++ b/packages/core/dist/esm/internal/command/character.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"character.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/character.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAEP,MAAM,EACN,eAAe,EACf,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAc9C,qBAAa,UAAW,SAAQ,OAAO;aAEf,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADL,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,EAC1C,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC;IAK7C,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;IAyClD,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,IAAI;IA+B1D,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/filePath.d.ts b/packages/core/dist/esm/internal/command/filePath.d.ts new file mode 100644 index 000000000..d62a1b660 --- /dev/null +++ b/packages/core/dist/esm/internal/command/filePath.d.ts @@ -0,0 +1,7 @@ +import { AstInfo, FObject, FValue } from '@flocon-trpg/flocon-script'; +import * as FilePath from '../ot/flocon/filePath/types'; +import { State } from '../ot/generator/types'; +export declare const toFFilePath: (source: State, astInfo: AstInfo | undefined) => FObject; +export declare const toFilePathOrUndefined: (source: FValue, astInfo: AstInfo | undefined) => State | undefined; +export declare const toFilePath: (source: FValue, astInfo: AstInfo | undefined) => State; +//# sourceMappingURL=filePath.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/filePath.d.ts.map b/packages/core/dist/esm/internal/command/filePath.d.ts.map new file mode 100644 index 000000000..aa549783b --- /dev/null +++ b/packages/core/dist/esm/internal/command/filePath.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"filePath.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/filePath.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EACP,OAAO,EAIP,MAAM,EAGT,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,eAAO,MAAM,WAAW,WACZ,KAAK,CAAC,OAAO,QAAQ,CAAC,gBAAgB,CAAC,WACtC,OAAO,GAAG,SAAS,KAC7B,OASF,CAAC;AAEF,eAAO,MAAM,qBAAqB,WACtB,MAAM,WACL,OAAO,GAAG,SAAS,KAC7B,KAAK,CAAC,OAAO,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SA4B5C,CAAC;AAEF,eAAO,MAAM,UAAU,WACX,MAAM,WACL,OAAO,GAAG,SAAS,KAC7B,KAAK,CAAC,OAAO,QAAQ,CAAC,gBAAgB,CAMxC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/main.d.ts b/packages/core/dist/esm/internal/command/main.d.ts new file mode 100644 index 000000000..bc36b21f6 --- /dev/null +++ b/packages/core/dist/esm/internal/command/main.d.ts @@ -0,0 +1,19 @@ +import { Result } from '@kizahasi/result'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +type RoomState = State; +declare class CommandError extends Error { + readonly range?: readonly [number, number] | undefined; + constructor(message: string, range?: readonly [number, number] | undefined); +} +export declare const testCommand: (script: string) => Result; +type CharacterCommandParams = { + script: string; + room: RoomState; + characterId: string; + myUserUid: string; +}; +type CommandResult = Result; +export declare const execCharacterCommand: ({ script, room, characterId, myUserUid, }: CharacterCommandParams) => CommandResult; +export {}; +//# sourceMappingURL=main.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/main.d.ts.map b/packages/core/dist/esm/internal/command/main.d.ts.map new file mode 100644 index 000000000..0c4177f71 --- /dev/null +++ b/packages/core/dist/esm/internal/command/main.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/main.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG9C,KAAK,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;AAE7C,cAAM,YAAa,SAAQ,KAAK;aAGR,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBADjD,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,YAAA;CAKxD;AAED,eAAO,MAAM,WAAW,WAAY,MAAM,KAAG,MAAM,CAAC,SAAS,EAAE,YAAY,CAa1E,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,aAAa,GAAG,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAErD,eAAO,MAAM,oBAAoB,8CAK9B,sBAAsB,KAAG,aAyB3B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/numParam.d.ts b/packages/core/dist/esm/internal/command/numParam.d.ts new file mode 100644 index 000000000..f3ede7679 --- /dev/null +++ b/packages/core/dist/esm/internal/command/numParam.d.ts @@ -0,0 +1,11 @@ +import { FObject, FValue, OnGettingParams, OnSettingParams } from '@flocon-trpg/flocon-script'; +import * as NumParam from '../ot/flocon/room/character/numParam/types'; +import { State } from '../ot/generator/types'; +export declare class FNumParam extends FObject { + private readonly numParam; + constructor(numParam: State); + getCore({ key }: OnGettingParams): FValue; + setCore({ key, newValue, astInfo }: OnSettingParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=numParam.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/numParam.d.ts.map b/packages/core/dist/esm/internal/command/numParam.d.ts.map new file mode 100644 index 000000000..e1ecdeaa6 --- /dev/null +++ b/packages/core/dist/esm/internal/command/numParam.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"numParam.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/numParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EACP,MAAM,EACN,eAAe,EACf,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,4CAA4C,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAK9C,qBAAa,SAAU,SAAQ,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAIpE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,eAAe,GAAG,MAAM;IAYzC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,IAAI;IAmB1D,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/numParams.d.ts b/packages/core/dist/esm/internal/command/numParams.d.ts new file mode 100644 index 000000000..f1314b4ff --- /dev/null +++ b/packages/core/dist/esm/internal/command/numParams.d.ts @@ -0,0 +1,17 @@ +import { FObject, FValue, OnGettingParams } from '@flocon-trpg/flocon-script'; +import * as Character from '../ot/flocon/room/character/types'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +export declare class FNumParams extends FObject { + private readonly numParams; + private readonly room; + constructor(numParams: NonNullable['numParams']>, room: State); + private findKeysByName; + private findByName; + private incrOrDecrValue; + private setIsValuePrivate; + getCore({ key, astInfo }: OnGettingParams): FValue; + setCore(): void; + toJObject(): unknown; +} +//# sourceMappingURL=numParams.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/numParams.d.ts.map b/packages/core/dist/esm/internal/command/numParams.d.ts.map new file mode 100644 index 000000000..30221aea9 --- /dev/null +++ b/packages/core/dist/esm/internal/command/numParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"numParams.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/numParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EACP,MAAM,EACN,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAW9C,qBAAa,UAAW,SAAQ,OAAO;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,EACrE,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC;IAKtD,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,iBAAiB;IAahB,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;IA0ClD,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/paramNames.d.ts b/packages/core/dist/esm/internal/command/paramNames.d.ts new file mode 100644 index 000000000..3b71e831f --- /dev/null +++ b/packages/core/dist/esm/internal/command/paramNames.d.ts @@ -0,0 +1,16 @@ +import { FObject, FValue, OnGettingParams } from '@flocon-trpg/flocon-script'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +export declare class FParamNames extends FObject { + private readonly room; + private readonly mode; + constructor(room: State, mode: 'Boolean' | 'Number' | 'String'); + private getParamNames; + private find; + private ensure; + private delete; + getCore({ key, astInfo }: OnGettingParams): FValue; + setCore(): void; + toJObject(): unknown; +} +//# sourceMappingURL=paramNames.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/paramNames.d.ts.map b/packages/core/dist/esm/internal/command/paramNames.d.ts.map new file mode 100644 index 000000000..295350cf7 --- /dev/null +++ b/packages/core/dist/esm/internal/command/paramNames.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"paramNames.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/paramNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,OAAO,EAEP,MAAM,EACN,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,qBAAa,WAAY,SAAQ,OAAO;IAEhC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,EACjC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ;IAK1D,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,MAAM;IAkBd,OAAO,CAAC,MAAM;IAaL,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;IA+BlD,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/participant.d.ts b/packages/core/dist/esm/internal/command/participant.d.ts new file mode 100644 index 000000000..888b2e745 --- /dev/null +++ b/packages/core/dist/esm/internal/command/participant.d.ts @@ -0,0 +1,11 @@ +import { FObject, FValue, OnGettingParams, OnSettingParams } from '@flocon-trpg/flocon-script'; +import * as Participant from '../ot/flocon/room/participant/types'; +import { State } from '../ot/generator/types'; +export declare class FParticipant extends FObject { + readonly participant: State; + constructor(participant: State); + getCore({ key }: OnGettingParams): FValue; + setCore({ key, newValue, astInfo }: OnSettingParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=participant.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/participant.d.ts.map b/packages/core/dist/esm/internal/command/participant.d.ts.map new file mode 100644 index 000000000..fef84b212 --- /dev/null +++ b/packages/core/dist/esm/internal/command/participant.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"participant.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/participant.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAEP,MAAM,EACN,eAAe,EACf,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,WAAW,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAI9C,qBAAa,YAAa,SAAQ,OAAO;aACF,WAAW,EAAE,KAAK,CAAC,OAAO,WAAW,CAAC,QAAQ,CAAC;gBAA/C,WAAW,EAAE,KAAK,CAAC,OAAO,WAAW,CAAC,QAAQ,CAAC;IAIzE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,eAAe,GAAG,MAAM;IAczC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,IAAI;IAuB1D,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/room.d.ts b/packages/core/dist/esm/internal/command/room.d.ts new file mode 100644 index 000000000..a6519b6c8 --- /dev/null +++ b/packages/core/dist/esm/internal/command/room.d.ts @@ -0,0 +1,15 @@ +import { FObject, FValue, GetCoreParams, SetCoreParams } from '@flocon-trpg/flocon-script'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +import { FCharacter } from './character'; +export declare class FRoom extends FObject { + private readonly myUserUid; + private readonly _room; + constructor(source: State, myUserUid: string); + get room(): State; + findCharacter(stateId: string): FCharacter | undefined; + getCore({ key }: GetCoreParams): FValue; + setCore({ key, newValue, astInfo }: SetCoreParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=room.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/room.d.ts.map b/packages/core/dist/esm/internal/command/room.d.ts.map new file mode 100644 index 000000000..fa7242298 --- /dev/null +++ b/packages/core/dist/esm/internal/command/room.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/room.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAEP,MAAM,EACN,aAAa,EAEb,aAAa,EAEhB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQzC,qBAAa,KAAM,SAAQ,OAAO;IAM1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJ9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;gBAGhD,MAAM,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAClB,SAAS,EAAE,MAAM;IAMtC,IAAW,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAE7C;IAEM,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAQpD,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,aAAa,GAAG,MAAM;IA+EvC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,IAAI;IAexD,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/stateRecord.d.ts b/packages/core/dist/esm/internal/command/stateRecord.d.ts new file mode 100644 index 000000000..804200a94 --- /dev/null +++ b/packages/core/dist/esm/internal/command/stateRecord.d.ts @@ -0,0 +1,13 @@ +import { FRecordRef, FValue, OnGettingParams } from '@flocon-trpg/flocon-script'; +export declare class FStateRecord extends FRecordRef { + private readonly createNewState?; + private readonly toRef; + constructor({ states, createNewState, toRef, unRef, }: { + states: Record; + createNewState?: () => TSource; + toRef: (source: TSource) => TRef; + unRef: (ref: FValue) => TSource; + }); + getCore({ key, astInfo }: OnGettingParams): FValue; +} +//# sourceMappingURL=stateRecord.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/stateRecord.d.ts.map b/packages/core/dist/esm/internal/command/stateRecord.d.ts.map new file mode 100644 index 000000000..3d9148868 --- /dev/null +++ b/packages/core/dist/esm/internal/command/stateRecord.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"stateRecord.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/stateRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EAEV,MAAM,EACN,eAAe,EAClB,MAAM,4BAA4B,CAAC;AAGpC,qBAAa,YAAY,CAAC,OAAO,EAAE,IAAI,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3F,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4B;gBAE/B,EACf,MAAM,EACN,cAAc,EACd,KAAK,EACL,KAAK,GACR,EAAE;QACC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;QAG5C,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;QAE/B,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACjC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;KACnC;IAUQ,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;CA2C9D"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/strParam.d.ts b/packages/core/dist/esm/internal/command/strParam.d.ts new file mode 100644 index 000000000..17571afcd --- /dev/null +++ b/packages/core/dist/esm/internal/command/strParam.d.ts @@ -0,0 +1,11 @@ +import { FObject, FValue, OnGettingParams, OnSettingParams } from '@flocon-trpg/flocon-script'; +import * as StrParam from '../ot/flocon/room/character/strParam/types'; +import { State } from '../ot/generator/types'; +export declare class FStrParam extends FObject { + private readonly strParam; + constructor(strParam: State); + getCore({ key }: OnGettingParams): FValue; + setCore({ key, newValue, astInfo }: OnSettingParams): void; + toJObject(): unknown; +} +//# sourceMappingURL=strParam.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/strParam.d.ts.map b/packages/core/dist/esm/internal/command/strParam.d.ts.map new file mode 100644 index 000000000..b4bfe076c --- /dev/null +++ b/packages/core/dist/esm/internal/command/strParam.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"strParam.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/strParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,OAAO,EAEP,MAAM,EACN,eAAe,EACf,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,4CAA4C,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAK9C,qBAAa,SAAU,SAAQ,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAIpE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,eAAe,GAAG,MAAM;IAYzC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,IAAI;IAgB1D,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/strParams.d.ts b/packages/core/dist/esm/internal/command/strParams.d.ts new file mode 100644 index 000000000..7b3cc6307 --- /dev/null +++ b/packages/core/dist/esm/internal/command/strParams.d.ts @@ -0,0 +1,16 @@ +import { FObject, FValue, OnGettingParams } from '@flocon-trpg/flocon-script'; +import * as Character from '../ot/flocon/room/character/types'; +import * as Room from '../ot/flocon/room/types'; +import { State } from '../ot/generator/types'; +export declare class FStrParams extends FObject { + private readonly strParams; + private readonly room; + constructor(strParams: NonNullable['strParams']>, room: State); + private findKeysByName; + private findByName; + private setIsValuePrivate; + getCore({ key, astInfo }: OnGettingParams): FValue; + setCore(): void; + toJObject(): unknown; +} +//# sourceMappingURL=strParams.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/command/strParams.d.ts.map b/packages/core/dist/esm/internal/command/strParams.d.ts.map new file mode 100644 index 000000000..33b62668c --- /dev/null +++ b/packages/core/dist/esm/internal/command/strParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"strParams.d.ts","sourceRoot":"","sources":["../../../../src/internal/command/strParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EACP,MAAM,EACN,eAAe,EAGlB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAW9C,qBAAa,UAAW,SAAQ,OAAO;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,EACrE,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC;IAKtD,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,iBAAiB;IAahB,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,MAAM;IAiClD,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,OAAO;CAGhC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/constants.d.ts b/packages/core/dist/esm/internal/constants.d.ts new file mode 100644 index 000000000..7bb65ebfe --- /dev/null +++ b/packages/core/dist/esm/internal/constants.d.ts @@ -0,0 +1,5 @@ +export declare const anonymous = "anonymous"; +export declare const authToken = "authToken"; +export declare const $free = "$free"; +export declare const $system = "$system"; +//# sourceMappingURL=constants.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/constants.d.ts.map b/packages/core/dist/esm/internal/constants.d.ts.map new file mode 100644 index 000000000..ff3cc607b --- /dev/null +++ b/packages/core/dist/esm/internal/constants.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,OAAO,YAAY,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/env.d.ts b/packages/core/dist/esm/internal/env.d.ts new file mode 100644 index 000000000..9d86a6347 --- /dev/null +++ b/packages/core/dist/esm/internal/env.d.ts @@ -0,0 +1,26 @@ +export declare const env: { + readonly NEXT_PUBLIC_FIREBASE_CONFIG: "NEXT_PUBLIC_FIREBASE_CONFIG"; + readonly NEXT_PUBLIC_API_HTTP: "NEXT_PUBLIC_API_HTTP"; + readonly NEXT_PUBLIC_API_WS: "NEXT_PUBLIC_API_WS"; + readonly NEXT_PUBLIC_AUTH_PROVIDERS: "NEXT_PUBLIC_AUTH_PROVIDERS"; + readonly NEXT_PUBLIC_FIREBASE_STORAGE_ENABLED: "NEXT_PUBLIC_FIREBASE_STORAGE_ENABLED"; + readonly NEXT_PUBLIC_LOG_LEVEL: "NEXT_PUBLIC_LOG_LEVEL"; + readonly firebaseConfig: { + readonly apiKey: "apiKey"; + readonly authDomain: "authDomain"; + readonly projectId: "projectId"; + readonly storageBucket: "storageBucket"; + readonly messagingSenderId: "messagingSenderId"; + readonly appId: "appId"; + }; + readonly authProviders: { + readonly anonymous: "anonymous"; + readonly email: "email"; + readonly google: "google"; + readonly facebook: "facebook"; + readonly github: "github"; + readonly twitter: "twitter"; + readonly phone: "phone"; + }; +}; +//# sourceMappingURL=env.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/env.d.ts.map b/packages/core/dist/esm/internal/env.d.ts.map new file mode 100644 index 000000000..bc614a96a --- /dev/null +++ b/packages/core/dist/esm/internal/env.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/internal/env.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CA4BN,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/expression.d.ts b/packages/core/dist/esm/internal/expression.d.ts new file mode 100644 index 000000000..0f0c9bed4 --- /dev/null +++ b/packages/core/dist/esm/internal/expression.d.ts @@ -0,0 +1,13 @@ +import { Result } from '@kizahasi/result'; +export declare const plain = "plain"; +export declare const expr1 = "expr1"; +export type Expression = { + type: typeof plain; + text: string; +} | { + type: typeof expr1; + path: string[]; + raw: string; +}; +export declare const analyze: (text: string) => Result; +//# sourceMappingURL=expression.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/expression.d.ts.map b/packages/core/dist/esm/internal/expression.d.ts.map new file mode 100644 index 000000000..cecd4d427 --- /dev/null +++ b/packages/core/dist/esm/internal/expression.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/internal/expression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,KAAK,UAAU,CAAC;AAgX7B,MAAM,MAAM,UAAU,GAChB;IACI,IAAI,EAAE,OAAO,KAAK,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB,GACD;IACI,IAAI,EAAE,OAAO,KAAK,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACf,CAAC;AAER,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,MAAM,CAAC,UAAU,EAAE,CAuBzD,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/fake/fakeFirebaseConfig.d.ts b/packages/core/dist/esm/internal/fake/fakeFirebaseConfig.d.ts new file mode 100644 index 000000000..775f33fbb --- /dev/null +++ b/packages/core/dist/esm/internal/fake/fakeFirebaseConfig.d.ts @@ -0,0 +1,17 @@ +export declare const fakeFirebaseConfig1: readonly [{ + apiKey: string; + authDomain: string; + projectId: string; + storageBucket: string; + messagingSenderId: string; + appId: string; +}, string]; +export declare const fakeFirebaseConfig2: readonly [{ + apiKey: string; + authDomain: string; + projectId: string; + storageBucket: string; + messagingSenderId: string; + appId: string; +}, string]; +//# sourceMappingURL=fakeFirebaseConfig.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/fake/fakeFirebaseConfig.d.ts.map b/packages/core/dist/esm/internal/fake/fakeFirebaseConfig.d.ts.map new file mode 100644 index 000000000..77f857bd8 --- /dev/null +++ b/packages/core/dist/esm/internal/fake/fakeFirebaseConfig.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fakeFirebaseConfig.d.ts","sourceRoot":"","sources":["../../../../src/internal/fake/fakeFirebaseConfig.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB;;;;;;;UAA8B,CAAC;AAS/D,eAAO,MAAM,mBAAmB;;;;;;;UAA8B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/firebaseConfig.d.ts b/packages/core/dist/esm/internal/firebaseConfig.d.ts new file mode 100644 index 000000000..5e6af9fa8 --- /dev/null +++ b/packages/core/dist/esm/internal/firebaseConfig.d.ts @@ -0,0 +1,25 @@ +import { z } from 'zod'; +export declare const firebaseConfig: z.ZodObject<{ + apiKey: z.ZodString; + authDomain: z.ZodString; + projectId: z.ZodString; + storageBucket: z.ZodString; + messagingSenderId: z.ZodString; + appId: z.ZodString; +}, "strip", z.ZodTypeAny, { + apiKey: string; + authDomain: string; + projectId: string; + storageBucket: string; + messagingSenderId: string; + appId: string; +}, { + apiKey: string; + authDomain: string; + projectId: string; + storageBucket: string; + messagingSenderId: string; + appId: string; +}>; +export type FirebaseConfig = z.TypeOf; +//# sourceMappingURL=firebaseConfig.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/firebaseConfig.d.ts.map b/packages/core/dist/esm/internal/firebaseConfig.d.ts.map new file mode 100644 index 000000000..f9ace8b29 --- /dev/null +++ b/packages/core/dist/esm/internal/firebaseConfig.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"firebaseConfig.d.ts","sourceRoot":"","sources":["../../../src/internal/firebaseConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;EASzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/forceMaxLength100String.d.ts b/packages/core/dist/esm/internal/forceMaxLength100String.d.ts new file mode 100644 index 000000000..907c8dccd --- /dev/null +++ b/packages/core/dist/esm/internal/forceMaxLength100String.d.ts @@ -0,0 +1,3 @@ +import { MaxLength100String } from './maxLengthString'; +export declare const forceMaxLength100String: (source: string) => MaxLength100String; +//# sourceMappingURL=forceMaxLength100String.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/forceMaxLength100String.d.ts.map b/packages/core/dist/esm/internal/forceMaxLength100String.d.ts.map new file mode 100644 index 000000000..ad4cac5f0 --- /dev/null +++ b/packages/core/dist/esm/internal/forceMaxLength100String.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"forceMaxLength100String.d.ts","sourceRoot":"","sources":["../../../src/internal/forceMaxLength100String.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAsB,MAAM,mBAAmB,CAAC;AAE3E,eAAO,MAAM,uBAAuB,WAAY,MAAM,KAAG,kBAExD,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/indexes.d.ts b/packages/core/dist/esm/internal/indexes.d.ts new file mode 100644 index 000000000..80ce21678 --- /dev/null +++ b/packages/core/dist/esm/internal/indexes.d.ts @@ -0,0 +1,13 @@ +export type StrIndex5 = '1' | '2' | '3' | '4' | '5'; +export declare const strIndex5Array: ReadonlyArray; +export declare const isStrIndex5: (source: string) => source is StrIndex5; +export type StrIndex10 = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10'; +export declare const strIndex10Array: ReadonlyArray; +export declare const isStrIndex10: (source: string) => source is StrIndex10; +export type StrIndex20 = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | '20'; +export declare const strIndex20Array: ReadonlyArray; +export declare const isStrIndex20: (source: string) => source is StrIndex20; +export type StrIndex100 = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | '20' | '21' | '22' | '23' | '24' | '25' | '26' | '27' | '28' | '29' | '30' | '31' | '32' | '33' | '34' | '35' | '36' | '37' | '38' | '39' | '40' | '41' | '42' | '43' | '44' | '45' | '46' | '47' | '48' | '49' | '50' | '51' | '52' | '53' | '54' | '55' | '56' | '57' | '58' | '59' | '60' | '61' | '62' | '63' | '64' | '65' | '66' | '67' | '68' | '69' | '70' | '71' | '72' | '73' | '74' | '75' | '76' | '77' | '78' | '79' | '80' | '81' | '82' | '83' | '84' | '85' | '86' | '87' | '88' | '89' | '90' | '91' | '92' | '93' | '94' | '95' | '96' | '97' | '98' | '99' | '100'; +export declare const strIndex100Array: ReadonlyArray; +export declare const isStrIndex100: (source: string) => source is StrIndex100; +//# sourceMappingURL=indexes.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/indexes.d.ts.map b/packages/core/dist/esm/internal/indexes.d.ts.map new file mode 100644 index 000000000..d48f1c059 --- /dev/null +++ b/packages/core/dist/esm/internal/indexes.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"indexes.d.ts","sourceRoot":"","sources":["../../../src/internal/indexes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,SAAS,CAA6B,CAAC;AAIlF,eAAO,MAAM,WAAW,WAAY,MAAM,KAAG,MAAM,IAAI,SAEtD,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAEpF,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,UAAU,CAW5C,CAAC;AAIX,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,MAAM,IAAI,UAEvD,CAAC;AAEF,MAAM,MAAM,UAAU,GAChB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAEX,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,UAAU,CAqBrD,CAAC;AAIF,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,MAAM,IAAI,UAEvD,CAAC;AAEF,MAAM,MAAM,WAAW,GACjB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,CAAC;AAEZ,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,WAAW,CAqGvD,CAAC;AAIF,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,MAAM,IAAI,WAExD,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/maxLengthString.d.ts b/packages/core/dist/esm/internal/maxLengthString.d.ts new file mode 100644 index 000000000..1cc84efcc --- /dev/null +++ b/packages/core/dist/esm/internal/maxLengthString.d.ts @@ -0,0 +1,10 @@ +import { z } from 'zod'; +export declare const maxLengthString: (maxLength: N) => z.ZodBranded; +export declare const maxLength100String: z.ZodBranded; +export type MaxLength100String = z.TypeOf; +export declare const maxLength1000String: z.ZodBranded; +export type MaxLength1000String = z.TypeOf; +declare const maxLength100EmptyString: z.TypeOf; +declare const maxLength1000EmptyString: z.TypeOf; +export { maxLength100EmptyString, maxLength1000EmptyString }; +//# sourceMappingURL=maxLengthString.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/maxLengthString.d.ts.map b/packages/core/dist/esm/internal/maxLengthString.d.ts.map new file mode 100644 index 000000000..40020f587 --- /dev/null +++ b/packages/core/dist/esm/internal/maxLengthString.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"maxLengthString.d.ts","sourceRoot":"","sources":["../../../src/internal/maxLengthString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,aAAa,CAAC,qDACF,CAAC;AAE7D,eAAO,MAAM,kBAAkB,iDAAuB,CAAC;AACvD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACrE,eAAO,MAAM,mBAAmB,kDAAwB,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAGvE,QAAA,MAAM,uBAAuB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CACxB,CAAC;AAC1C,QAAA,MAAM,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CACzB,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/maybe.d.ts b/packages/core/dist/esm/internal/maybe.d.ts new file mode 100644 index 000000000..37738a56c --- /dev/null +++ b/packages/core/dist/esm/internal/maybe.d.ts @@ -0,0 +1,5 @@ +import { z } from 'zod'; +/** @deprecated Use `optional` method in zod. */ +export declare const maybe: (source: T) => z.ZodOptional; +export type Maybe = T | undefined; +//# sourceMappingURL=maybe.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/maybe.d.ts.map b/packages/core/dist/esm/internal/maybe.d.ts.map new file mode 100644 index 000000000..919a2b115 --- /dev/null +++ b/packages/core/dist/esm/internal/maybe.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"maybe.d.ts","sourceRoot":"","sources":["../../../src/internal/maybe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gDAAgD;AAChD,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,CAAC,CAAC,UAAU,UAAU,CAAC,qBAAsB,CAAC;AAC9E,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/array.d.ts b/packages/core/dist/esm/internal/ot/array.d.ts new file mode 100644 index 000000000..be1e80bb6 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/array.d.ts @@ -0,0 +1,94 @@ +import { Result } from '@kizahasi/result'; +import { z } from 'zod'; +import { OmitVersion } from './generator/omitVersion'; +import { State, TwoWayOperation, UpOperation } from './generator/types'; +import * as RecordOperation from './recordOperation'; +export declare const $index = "$index"; +/** + * Record を 配列とみなすときに、その要素として必要な値が入った template を作成する際に用いる値。 + * + * @example + * ``` + * const indexObjectTemplate = createRecordValueTemplate( + * createObjectValueTemplate( + * { + * ...indexObjectTemplateValue, + * + * // add more properies... + * }, + * 1, + * 1 + * ) + * ); + * ``` + */ +export declare const indexObjectTemplateValue: { + /** + * 自身の要素のインデックス。一般的な配列と同様に、0 から始まります。 + * + * インデックスが他の要素と重複してはなりません。また、0 から順に連続的に割り当てる必要があります。 + */ + $index: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; +}; +declare const indexObjectTemplate: { + readonly type: "object"; + readonly $v: undefined; + readonly $r: undefined; + readonly value: { + /** + * 自身の要素のインデックス。一般的な配列と同様に、0 から始まります。 + * + * インデックスが他の要素と重複してはなりません。また、0 から順に連続的に割り当てる必要があります。 + */ + $index: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +type IndexObjectState = OmitVersion>; +export type IndexObject = IndexObjectState; +type IndexObjectUpOperation = OmitVersion>; +type IndexObjectTwoWayOperation = OmitVersion>; +type OtArray = { + key: string; + value: T; +}[]; +type ReadonlyOtArray = Readonly>; +export declare const indexObjectsToArray: (record: Record) => Result>; +/** + * 配列を Record に変換します。 + * + * 引数に渡された `$index` は誤っていてもエラーにはならず、自動的かつ非破壊的に調整されます。 + */ +export declare const arrayToIndexObjects: (array: ReadonlyOtArray) => Record; +/** + * 配列に対して serverTransform を行い、secondPrime を返します。 + * + * 通常の Record の serverTransform の処理(つまり、`$index` 以外のプロパティの処理など)も内部で行われるため、通常の Record の serverTransform を別途実行することは避けてください。 + */ +export declare const serverTransform: (params: RecordOperation.ServerTransformParams & { + /** Operation の型を変換して、TFirstOperation にします。通常は、単に `$v` と `$r` を付与するだけで構いません。 */ + mapOperation: (operation: IndexObjectTwoWayOperation) => TFirstOperation; +}) => Result | undefined, string | TCustomError>; +/** + * 配列に対して clientTransform を行います。 + * + * 通常の Record の serverTransform の処理(つまり、`$index` 以外のプロパティの処理など)も内部で行われるため、通常の Record の serverTransform を別途実行することは避けてください。 + */ +export declare const clientTransform: (params: Parameters>[0] & { + innerApply: (params: { + prevState: TState; + operation: TOperation; + }) => Result; +}) => Result<{ + firstPrime?: RecordOperation.RecordUpOperation; + secondPrime?: RecordOperation.RecordUpOperation; +}, string | TCustomError>; +export {}; +//# sourceMappingURL=array.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/array.d.ts.map b/packages/core/dist/esm/internal/ot/array.d.ts.map new file mode 100644 index 000000000..82c16d15a --- /dev/null +++ b/packages/core/dist/esm/internal/ot/array.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/array.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EACH,KAAK,EACL,eAAe,EACf,WAAW,EAId,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AAKrD,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B;;;;;;;;;;;;;;;;;GAiBG;AAKH,eAAO,MAAM,wBAAwB;IACjC;;;;OAIG;;;;;;CAEN,CAAC;AAIF,QAAA,MAAM,mBAAmB;;;;;QAVrB;;;;WAIG;;;;;;;CAUN,CAAC;AAEF,KAAK,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC;AACvE,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAC3C,KAAK,sBAAsB,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC;AACnF,KAAK,0BAA0B,GAAG,WAAW,CAAC,eAAe,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC;AAE3F,KAAK,OAAO,CAAC,CAAC,IAAI;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;CACZ,EAAE,CAAC;AAEJ,KAAK,eAAe,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/C,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,gBAAgB,UAClD,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,KACtC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAqBnB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,gBAAgB,SAAS,eAAe,CAAC,CAAC,CAAC,kCAWxF,CAAC;AAsCF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GACxB,YAAY,SAAS,gBAAgB,EACrC,YAAY,SAAS,gBAAgB,EACrC,eAAe,SAAS,0BAA0B,EAClD,gBAAgB,SAAS,sBAAsB,EAC/C,YAAY,mBAEJ,eAAe,CAAC,qBAAqB,CACzC,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,CACf,GAAG;IACA,+EAA+E;IAC/E,YAAY,EAAE,CAAC,SAAS,EAAE,0BAA0B,KAAK,eAAe,CAAC;CAC5E,KACF,MAAM,CACL,eAAe,CAAC,qBAAqB,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,SAAS,EAChF,MAAM,GAAG,YAAY,CAiKxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GACxB,MAAM,SAAS,gBAAgB,EAC/B,UAAU,SAAS,sBAAsB,EACzC,YAAY,mBAEJ,UAAU,CACd,OAAO,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAC3E,CAAC,CAAC,CAAC,GAAG;IACH,UAAU,EAAE,CAAC,MAAM,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,UAAU,CAAC;KACzB,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;CAC/C,KACF,MAAM,CACL;IACI,UAAU,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,sBAAsB,CAAC,CAAC;IAC5F,WAAW,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAC3C,MAAM,EACN,UAAU,GAAG,sBAAsB,CACtC,CAAC;CACL,EACD,MAAM,GAAG,YAAY,CA6KxB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/boardPosition/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/boardPosition/functions.d.ts new file mode 100644 index 000000000..40236b93a --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/boardPosition/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../generator/types'; +import { ServerTransform } from '../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/boardPosition/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/boardPosition/functions.d.ts.map new file mode 100644 index 000000000..05f686cf2 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/boardPosition/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/boardPosition/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI5E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAiE/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/boardPosition/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/boardPosition/types.d.ts new file mode 100644 index 000000000..b8a943c4c --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/boardPosition/types.d.ts @@ -0,0 +1,109 @@ +import { z } from 'zod'; +export declare const templateValue: { + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + /** + * @description To 3rd-party developers: Please always set undefined to this if it is CharacterPiece or PortraitPiece. + */ + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + /** + * @description To 3rd-party developers: Please always set undefined to this if it is CharacterPiece or PortraitPiece. + */ + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + /** + * @description To 3rd-party developers: Please always set undefined to this because it is not implemented yet in the official web-server. + */ + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; +}; +export declare const template: { + readonly type: "object"; + readonly $v: undefined; + readonly $r: undefined; + readonly value: { + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + /** + * @description To 3rd-party developers: Please always set undefined to this if it is CharacterPiece or PortraitPiece. + */ + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + /** + * @description To 3rd-party developers: Please always set undefined to this if it is CharacterPiece or PortraitPiece. + */ + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + /** + * @description To 3rd-party developers: Please always set undefined to this because it is not implemented yet in the official web-server. + */ + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/boardPosition/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/boardPosition/types.d.ts.map new file mode 100644 index 000000000..f14c33527 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/boardPosition/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/boardPosition/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,aAAa;;;;;;;;;;;IAItB;;OAEG;;;;;;IAGH;;OAEG;;;;;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;CAMN,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;QApBjB;;WAEG;;;;;;QAGH;;WAEG;;;;;;QAGH;;WAEG;;;;;;;;;;;;;;;;;;;;;;CAQ+E,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/compositeKey/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/compositeKey/types.d.ts new file mode 100644 index 000000000..34d1092eb --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/compositeKey/types.d.ts @@ -0,0 +1,16 @@ +import { z } from 'zod'; +export declare const compositeKey: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + createdBy: z.ZodString; + id: z.ZodString; + }, "strip", z.ZodTypeAny, { + createdBy: string; + id: string; + }, { + createdBy: string; + id: string; + }>; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/compositeKey/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/compositeKey/types.d.ts.map new file mode 100644 index 000000000..095911066 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/compositeKey/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/compositeKey/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAKxB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/filePath/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/filePath/types.d.ts new file mode 100644 index 000000000..c45ea0ef3 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/filePath/types.d.ts @@ -0,0 +1,41 @@ +import { z } from 'zod'; +export declare const Default = "Default"; +export declare const Uploader = "Uploader"; +export declare const FirebaseStorage = "FirebaseStorage"; +export declare const filePathValue: z.ZodObject<{ + $v: z.ZodLiteral<1>; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; +}, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; +}, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; +}>; +export declare const filePathTemplate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + $v: z.ZodLiteral<1>; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/filePath/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/filePath/types.d.ts.map new file mode 100644 index 000000000..9b9429186 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/filePath/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/filePath/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAIjD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAMxB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;CAA4C,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/piece/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/piece/functions.d.ts new file mode 100644 index 000000000..40236b93a --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/piece/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../generator/types'; +import { ServerTransform } from '../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/piece/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/piece/functions.d.ts.map new file mode 100644 index 000000000..ea1a46b0a --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/piece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/piece/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAsD/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/piece/log.d.ts b/packages/core/dist/esm/internal/ot/flocon/piece/log.d.ts new file mode 100644 index 000000000..c56a44e7b --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/piece/log.d.ts @@ -0,0 +1,4 @@ +export declare const updateType = "update"; +export declare const createType = "create"; +export declare const deleteType = "delete"; +//# sourceMappingURL=log.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/piece/log.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/piece/log.d.ts.map new file mode 100644 index 000000000..d3e28b9b7 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/piece/log.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/piece/log.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,WAAW,CAAC;AACnC,eAAO,MAAM,UAAU,WAAW,CAAC;AACnC,eAAO,MAAM,UAAU,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/piece/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/piece/types.d.ts new file mode 100644 index 000000000..8d6213d91 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/piece/types.d.ts @@ -0,0 +1,141 @@ +import { z } from 'zod'; +export declare const templateValue: { + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; +}; +export declare const template: { + readonly type: "object"; + readonly $v: undefined; + readonly $r: undefined; + readonly value: { + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/piece/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/piece/types.d.ts.map new file mode 100644 index 000000000..324a09331 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/piece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/piece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOzB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiE,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/bgm/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/bgm/functions.d.ts new file mode 100644 index 000000000..df1a1c2b0 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/bgm/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { ServerTransform } from '../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/bgm/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/bgm/functions.d.ts.map new file mode 100644 index 000000000..b52bad806 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/bgm/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/bgm/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAAW,CAAC;AAEhG,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAyB/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/bgm/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/bgm/types.d.ts new file mode 100644 index 000000000..17642a915 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/bgm/types.d.ts @@ -0,0 +1,39 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + isPaused: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + files: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodArray; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>, "many">; + }; + volume: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/bgm/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/bgm/types.d.ts.map new file mode 100644 index 000000000..95962e291 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/bgm/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/bgm/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/converter.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/converter.d.ts new file mode 100644 index 000000000..890498cda --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/converter.d.ts @@ -0,0 +1,4 @@ +import * as DiePieceValueLog from './log'; +export declare const decode: (source: unknown) => DiePieceValueLog.Type; +export declare const parse: (source: string) => DiePieceValueLog.Type; +//# sourceMappingURL=converter.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/converter.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/converter.d.ts.map new file mode 100644 index 000000000..43854e260 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/converter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/dicePiece/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,OAAO,CAAC;AAE1C,eAAO,MAAM,MAAM,WAAY,OAAO,KAAG,gBAAgB,CAAC,IAEzD,CAAC;AAEF,eAAO,MAAM,KAAK,WAAY,MAAM,KAAG,gBAAgB,CAAC,IAEvD,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts new file mode 100644 index 000000000..edc6c5db8 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../../generator/types'; +import { ServerTransform } from '../../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (isAuthorized: boolean) => (source: State) => State; +export declare const serverTransform: (isAuthorized: boolean) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts.map new file mode 100644 index 000000000..7e28f78bc --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/internal/ot/flocon/room/board/dicePiece/dieValue/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAGrF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,iBACP,OAAO,cACb,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAKtD,CAAC;AAEN,eAAO,MAAM,eAAe,iBAEN,OAAO,KACtB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAmC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts new file mode 100644 index 000000000..b3abd74c7 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts @@ -0,0 +1,28 @@ +import { z } from 'zod'; +export declare const D4 = "D4"; +export declare const D6 = "D6"; +export declare const dieType: z.ZodUnion<[z.ZodLiteral<"D4">, z.ZodLiteral<"D6">]>; +export type DieType = z.TypeOf; +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + dieType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"D4">, z.ZodLiteral<"D6">]>; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts.map new file mode 100644 index 000000000..72b1ac768 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/dieValue/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/internal/ot/flocon/room/board/dicePiece/dieValue/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,EAAE,OAAO,CAAC;AACvB,eAAO,MAAM,EAAE,OAAO,CAAC;AACvB,eAAO,MAAM,OAAO,sDAA0C,CAAC;AAC/D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAE/C,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAWpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/functions.d.ts new file mode 100644 index 000000000..ab799cfcd --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/functions.d.ts @@ -0,0 +1,8 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { RequestedBy } from '../../../../requestedBy'; +import { ServerTransform } from '../../../../util/type'; +import * as Room from '../../types'; +import { template } from './types'; +export declare const toClientState: (requestedBy: RequestedBy, currentRoomState: State) => (source: State) => State; +export declare const serverTransform: (requestedBy: RequestedBy, currentRoomState: State) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/functions.d.ts.map new file mode 100644 index 000000000..4c1a5156c --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/dicePiece/functions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EACH,WAAW,EAId,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAe,MAAM,uBAAuB,CAAC;AAErE,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAuB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExD,eAAO,MAAM,aAAa,gBACR,WAAW,oBAAoB,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAC/D,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAYtD,CAAC;AAEN,eAAO,MAAM,eAAe,gBAEP,WAAW,oBACN,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAC9C,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAwF/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/log.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/log.d.ts new file mode 100644 index 000000000..2cbb0c90c --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/log.d.ts @@ -0,0 +1,617 @@ +import { z } from 'zod'; +import { State, TwoWayOperation } from '../../../../generator/types'; +import * as DicePieceValueTypes from './types'; +export declare const type: z.ZodUnion<[z.ZodObject<{ + $v: z.ZodLiteral<2>; + $r: z.ZodLiteral<1>; + type: z.ZodLiteral<"create">; + value: z.ZodType<{ + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }, z.ZodTypeDef, { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }>; +}, "strip", z.ZodTypeAny, { + type: "create"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}, { + type: "create"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}>, z.ZodObject<{ + $v: z.ZodLiteral<2>; + $r: z.ZodLiteral<1>; + type: z.ZodLiteral<"delete">; + value: z.ZodType<{ + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }, z.ZodTypeDef, { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }>; +}, "strip", z.ZodTypeAny, { + type: "delete"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}, { + type: "delete"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + dice: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + } | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}>, z.ZodIntersection; + $r: z.ZodLiteral<1>; + type: z.ZodLiteral<"update">; +}, "strip", z.ZodTypeAny, { + type: "update"; + $v: 2; + $r: 1; +}, { + type: "update"; + $v: 2; + $r: 1; +}>, z.ZodType<{ + $v: 2; + $r: 1; +} & { + cellH?: { + newValue: number; + } | undefined; + cellW?: { + newValue: number; + } | undefined; + cellX?: { + newValue: number; + } | undefined; + cellY?: { + newValue: number; + } | undefined; + isCellMode?: { + newValue: boolean; + } | undefined; + h?: { + newValue: number; + } | undefined; + isPositionLocked?: { + newValue: boolean; + } | undefined; + memo?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + name?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + opacity?: { + newValue: number | undefined; + } | undefined; + w?: { + newValue: number; + } | undefined; + x?: { + newValue: number; + } | undefined; + y?: { + newValue: number; + } | undefined; +}, z.ZodTypeDef, { + $v: 2; + $r: 1; +} & { + cellH?: { + newValue: number; + } | undefined; + cellW?: { + newValue: number; + } | undefined; + cellX?: { + newValue: number; + } | undefined; + cellY?: { + newValue: number; + } | undefined; + isCellMode?: { + newValue: boolean; + } | undefined; + h?: { + newValue: number; + } | undefined; + isPositionLocked?: { + newValue: boolean; + } | undefined; + memo?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + name?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + opacity?: { + newValue: number | undefined; + } | undefined; + w?: { + newValue: number; + } | undefined; + x?: { + newValue: number; + } | undefined; + y?: { + newValue: number; + } | undefined; +}>>, z.ZodObject<{ + ownerCharacterId: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + newValue?: string | undefined; + }, { + newValue?: string | undefined; + }>>; + dice: z.ZodOptional; + replace: z.ZodObject<{ + newValue: z.ZodOptional>; + }, "strip", z.ZodTypeAny, { + newValue?: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + }, { + newValue?: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + }>; + }, "strip", z.ZodTypeAny, { + type: "replace"; + replace: { + newValue?: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + }; + }, { + type: "replace"; + replace: { + newValue?: ({ + $v: 1; + $r: 1; + } & { + dieType: "D4" | "D6"; + isValuePrivate: boolean; + value: number | undefined; + }) | undefined; + }; + }>, z.ZodObject<{ + type: z.ZodLiteral<"update">; + update: z.ZodObject, z.ZodLiteral<"D6">]>; + }, "strip", z.ZodTypeAny, { + newValue: "D4" | "D6"; + }, { + newValue: "D4" | "D6"; + }>>; + isValuePrivateChanged: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + newValue?: number | undefined; + }, { + newValue?: number | undefined; + }>>; + isValueChanged: z.ZodOptional; + }, { + $v: z.ZodLiteral<1>; + $r: z.ZodLiteral<1>; + }>, "strip", z.ZodTypeAny, { + $v: 1; + $r: 1; + dieType?: { + newValue: "D4" | "D6"; + } | undefined; + isValuePrivateChanged?: { + newValue?: number | undefined; + } | undefined; + isValueChanged?: boolean | undefined; + }, { + $v: 1; + $r: 1; + dieType?: { + newValue: "D4" | "D6"; + } | undefined; + isValuePrivateChanged?: { + newValue?: number | undefined; + } | undefined; + isValueChanged?: boolean | undefined; + }>; + }, "strip", z.ZodTypeAny, { + type: "update"; + update: { + $v: 1; + $r: 1; + dieType?: { + newValue: "D4" | "D6"; + } | undefined; + isValuePrivateChanged?: { + newValue?: number | undefined; + } | undefined; + isValueChanged?: boolean | undefined; + }; + }, { + type: "update"; + update: { + $v: 1; + $r: 1; + dieType?: { + newValue: "D4" | "D6"; + } | undefined; + isValuePrivateChanged?: { + newValue?: number | undefined; + } | undefined; + isValueChanged?: boolean | undefined; + }; + }>]>>>>; +}, "strip", z.ZodTypeAny, { + ownerCharacterId?: { + newValue?: string | undefined; + } | undefined; + dice?: Record | undefined; +}, { + ownerCharacterId?: { + newValue?: string | undefined; + } | undefined; + dice?: Record | undefined; +}>>]>; +export type Type = z.TypeOf; +export declare const ofOperation: (operation: TwoWayOperation, currentState: State) => Type; +//# sourceMappingURL=log.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/log.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/log.d.ts.map new file mode 100644 index 000000000..75f156cf6 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/log.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/dicePiece/log.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACH,KAAK,EACL,eAAe,EAIlB,MAAM,6BAA6B,CAAC;AAYrC,OAAO,KAAK,mBAAmB,MAAM,SAAS,CAAC;AAgC/C,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAcf,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AAEzC,eAAO,MAAM,WAAW,cACT,eAAe,CAAC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,gBACjD,KAAK,CAAC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,KACzD,IAsDF,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/types.d.ts new file mode 100644 index 000000000..cc7b27a16 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/types.d.ts @@ -0,0 +1,102 @@ +import { z } from 'zod'; +export declare const dicePieceStrIndexes: readonly ["1", "2", "3", "4"]; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dice: import("../../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + dieType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"D4">, z.ZodLiteral<"D6">]>; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/types.d.ts.map new file mode 100644 index 000000000..2cc7ef658 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/dicePiece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/dicePiece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,mBAAmB,+BAAgC,CAAC;AAEjE,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/functions.d.ts new file mode 100644 index 000000000..ebd1582d3 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/functions.d.ts @@ -0,0 +1,8 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { RequestedBy } from '../../../requestedBy'; +import { ServerTransform } from '../../../util/type'; +import * as Room from '../types'; +import { template } from './types'; +export declare const toClientState: (requestedBy: RequestedBy, currentRoomState: State) => (source: State) => State; +export declare const serverTransform: (requestedBy: RequestedBy, currentRoomState: State) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/functions.d.ts.map new file mode 100644 index 000000000..393c519d7 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/board/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EACH,WAAW,EAMd,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,eAAe,EAAe,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,IAAI,MAAM,UAAU,CAAC;AASjC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,gBACR,WAAW,oBAAoB,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAC/D,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAgDtD,CAAC;AAEN,eAAO,MAAM,eAAe,gBAEP,WAAW,oBACN,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAC9C,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAgO/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/functions.d.ts new file mode 100644 index 000000000..ce2267df6 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/functions.d.ts @@ -0,0 +1,7 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { RequestedBy } from '../../../../requestedBy'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: (requestedBy: RequestedBy) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/functions.d.ts.map new file mode 100644 index 000000000..62b33bd39 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/imagePiece/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,WAAW,EAA+B,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,gBAEP,WAAW,KACzB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CA8D/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/types.d.ts new file mode 100644 index 000000000..b432b15bd --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/types.d.ts @@ -0,0 +1,104 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/types.d.ts.map new file mode 100644 index 000000000..c767d57a1 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/imagePiece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/imagePiece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/functions.d.ts new file mode 100644 index 000000000..ce2267df6 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/functions.d.ts @@ -0,0 +1,7 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { RequestedBy } from '../../../../requestedBy'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: (requestedBy: RequestedBy) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/functions.d.ts.map new file mode 100644 index 000000000..beb921cc9 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/shapePiece/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,WAAW,EAA+B,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,gBAEP,WAAW,KACzB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CA+E/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/types.d.ts new file mode 100644 index 000000000..b84c77ab1 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/types.d.ts @@ -0,0 +1,125 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + /** + * keyは`'1'`から`'9'`の9個のみをサポートしています。詳細は`./functions.ts`を参照してください。 + * + * ShapeのPath.dataは、widthとheightがともに100pxの正方形として記述します。コマなどの大きさに応じて自動的にscaleされます。 + * */ + shapes: import("../../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + shape: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + type: z.ZodLiteral<"path">; + data: z.ZodString; + }, "strip", z.ZodTypeAny, { + type: "path"; + data: string; + }, { + type: "path"; + data: string; + }>; + }; + fill: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + stroke: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + strokeWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/types.d.ts.map new file mode 100644 index 000000000..2869ac0b4 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/shapePiece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/shapePiece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;QAMb;;;;aAIK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKZ,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/converter.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/converter.d.ts new file mode 100644 index 000000000..257b7a6ec --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/converter.d.ts @@ -0,0 +1,4 @@ +import * as StringPieceValueLog from './log'; +export declare const decode: (source: unknown) => StringPieceValueLog.Type; +export declare const parse: (source: string) => StringPieceValueLog.Type; +//# sourceMappingURL=converter.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/converter.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/converter.d.ts.map new file mode 100644 index 000000000..1cc076ff4 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/converter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/stringPiece/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,mBAAmB,MAAM,OAAO,CAAC;AAE7C,eAAO,MAAM,MAAM,WAAY,OAAO,KAAG,mBAAmB,CAAC,IAE5D,CAAC;AAEF,eAAO,MAAM,KAAK,WAAY,MAAM,KAAG,mBAAmB,CAAC,IAE1D,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/functions.d.ts new file mode 100644 index 000000000..ab799cfcd --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/functions.d.ts @@ -0,0 +1,8 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { RequestedBy } from '../../../../requestedBy'; +import { ServerTransform } from '../../../../util/type'; +import * as Room from '../../types'; +import { template } from './types'; +export declare const toClientState: (requestedBy: RequestedBy, currentRoomState: State) => (source: State) => State; +export declare const serverTransform: (requestedBy: RequestedBy, currentRoomState: State) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/functions.d.ts.map new file mode 100644 index 000000000..207ac2c2e --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/stringPiece/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAElF,OAAO,EACH,WAAW,EAId,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,gBACR,WAAW,oBAAoB,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAC/D,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAUtD,CAAC;AAEN,eAAO,MAAM,eAAe,gBAEP,WAAW,oBACN,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAC9C,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CA0E/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/log.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/log.d.ts new file mode 100644 index 000000000..7282ac9b9 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/log.d.ts @@ -0,0 +1,395 @@ +import { z } from 'zod'; +import { State, TwoWayOperation } from '../../../../generator/types'; +import * as StringPieceValueTypes from './types'; +export declare const type: z.ZodUnion<[z.ZodObject<{ + $v: z.ZodLiteral<2>; + $r: z.ZodLiteral<1>; + type: z.ZodLiteral<"create">; + value: z.ZodType<{ + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }, z.ZodTypeDef, { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }>; +}, "strip", z.ZodTypeAny, { + type: "create"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}, { + type: "create"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}>, z.ZodObject<{ + $v: z.ZodLiteral<2>; + $r: z.ZodLiteral<1>; + type: z.ZodLiteral<"delete">; + value: z.ZodType<{ + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }, z.ZodTypeDef, { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }>; +}, "strip", z.ZodTypeAny, { + type: "delete"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}, { + type: "delete"; + value: { + $v: 2; + $r: 1; + } & { + ownerCharacterId: string | undefined; + isValuePrivate: boolean; + value: string; + valueInputType: "String" | "Number" | undefined; + cellH: number; + cellW: number; + cellX: number; + cellY: number; + isCellMode: boolean; + h: number; + isPositionLocked: boolean; + memo: string | undefined; + name: string | undefined; + opacity: number | undefined; + w: number; + x: number; + y: number; + }; + $v: 2; + $r: 1; +}>, z.ZodIntersection; + $r: z.ZodLiteral<1>; + type: z.ZodLiteral<"update">; +}, "strip", z.ZodTypeAny, { + type: "update"; + $v: 2; + $r: 1; +}, { + type: "update"; + $v: 2; + $r: 1; +}>, z.ZodType<{ + $v: 2; + $r: 1; +} & { + cellH?: { + newValue: number; + } | undefined; + cellW?: { + newValue: number; + } | undefined; + cellX?: { + newValue: number; + } | undefined; + cellY?: { + newValue: number; + } | undefined; + isCellMode?: { + newValue: boolean; + } | undefined; + h?: { + newValue: number; + } | undefined; + isPositionLocked?: { + newValue: boolean; + } | undefined; + memo?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + name?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + opacity?: { + newValue: number | undefined; + } | undefined; + w?: { + newValue: number; + } | undefined; + x?: { + newValue: number; + } | undefined; + y?: { + newValue: number; + } | undefined; +}, z.ZodTypeDef, { + $v: 2; + $r: 1; +} & { + cellH?: { + newValue: number; + } | undefined; + cellW?: { + newValue: number; + } | undefined; + cellX?: { + newValue: number; + } | undefined; + cellY?: { + newValue: number; + } | undefined; + isCellMode?: { + newValue: boolean; + } | undefined; + h?: { + newValue: number; + } | undefined; + isPositionLocked?: { + newValue: boolean; + } | undefined; + memo?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + name?: { + type: "replace"; + replace: { + newValue?: string | undefined; + }; + } | { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; + } | undefined; + opacity?: { + newValue: number | undefined; + } | undefined; + w?: { + newValue: number; + } | undefined; + x?: { + newValue: number; + } | undefined; + y?: { + newValue: number; + } | undefined; +}>>, z.ZodObject<{ + ownerCharacterId: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + newValue?: string | undefined; + }, { + newValue?: string | undefined; + }>>; + isValuePrivateChanged: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + newValue?: string | undefined; + }, { + newValue?: string | undefined; + }>>; + isValueChanged: z.ZodOptional; +}, "strip", z.ZodTypeAny, { + ownerCharacterId?: { + newValue?: string | undefined; + } | undefined; + isValuePrivateChanged?: { + newValue?: string | undefined; + } | undefined; + isValueChanged?: boolean | undefined; +}, { + ownerCharacterId?: { + newValue?: string | undefined; + } | undefined; + isValuePrivateChanged?: { + newValue?: string | undefined; + } | undefined; + isValueChanged?: boolean | undefined; +}>>]>; +export type Type = z.TypeOf; +export declare const ofOperation: (operation: TwoWayOperation, currentState: State) => Type; +//# sourceMappingURL=log.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/log.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/log.d.ts.map new file mode 100644 index 000000000..c3e9d2353 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/log.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/stringPiece/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACH,KAAK,EACL,eAAe,EAIlB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,qBAAqB,MAAM,SAAS,CAAC;AAoBjD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAcf,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AAEzC,eAAO,MAAM,WAAW,cACT,eAAe,CAAC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,gBACnD,KAAK,CAAC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,KAC3D,IAiBF,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/types.d.ts new file mode 100644 index 000000000..a266c7501 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/types.d.ts @@ -0,0 +1,96 @@ +import { z } from 'zod'; +export declare const String = "String"; +export declare const Number = "Number"; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + valueInputType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional, z.ZodLiteral<"Number">]>>; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/types.d.ts.map new file mode 100644 index 000000000..fb31f25ae --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/stringPiece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/board/stringPiece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAI/B,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/board/types.d.ts new file mode 100644 index 000000000..905f34d46 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/types.d.ts @@ -0,0 +1,485 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + backgroundImage: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + backgroundImageZoom: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellColumnCount: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellHeight: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellOffsetX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellOffsetY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellRowCount: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dicePieces: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dice: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + dieType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"D4">, z.ZodLiteral<"D6">]>; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + imagePieces: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + shapePieces: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + shapes: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + shape: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + type: z.ZodLiteral<"path">; + data: z.ZodString; + }, "strip", z.ZodTypeAny, { + type: "path"; + data: string; + }, { + type: "path"; + data: string; + }>; + }; + fill: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + stroke: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + strokeWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + stringPieces: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + valueInputType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional, z.ZodLiteral<"Number">]>>; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/board/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/board/types.d.ts.map new file mode 100644 index 000000000..b12350b4b --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/board/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/board/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/functions.d.ts new file mode 100644 index 000000000..4e8bbf011 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (isAuthorized: boolean, defaultValue: boolean | undefined) => (source: State) => State; +export declare const serverTransform: (isAuthorized: boolean) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/functions.d.ts.map new file mode 100644 index 000000000..072723ef8 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/boolParam/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAIlF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,iBACP,OAAO,gBAAgB,OAAO,GAAG,SAAS,cAChD,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAKtD,CAAC;AAEN,eAAO,MAAM,eAAe,iBAEN,OAAO,KACtB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAyC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/types.d.ts new file mode 100644 index 000000000..1b6c577ca --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/types.d.ts @@ -0,0 +1,24 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/types.d.ts.map new file mode 100644 index 000000000..ab4d59e77 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/boolParam/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/boolParam/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/functions.d.ts new file mode 100644 index 000000000..a283a25c5 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/functions.d.ts.map new file mode 100644 index 000000000..5672fa93e --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/characterPiece/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAkC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/types.d.ts new file mode 100644 index 000000000..5640c086e --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/types.d.ts @@ -0,0 +1,84 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/types.d.ts.map new file mode 100644 index 000000000..b04fe56b9 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/characterPiece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/characterPiece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/command/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/command/functions.d.ts new file mode 100644 index 000000000..a283a25c5 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/command/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/command/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/command/functions.d.ts.map new file mode 100644 index 000000000..30ecd446e --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/command/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/command/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAgC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/command/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/command/types.d.ts new file mode 100644 index 000000000..cdb836374 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/command/types.d.ts @@ -0,0 +1,18 @@ +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/command/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/command/types.d.ts.map new file mode 100644 index 000000000..f52ff1a4b --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/command/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/command/types.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CAOpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/functions.d.ts new file mode 100644 index 000000000..b5bd9b7dd --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/functions.d.ts @@ -0,0 +1,8 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { RequestedBy } from '../../../requestedBy'; +import { ServerTransform } from '../../../util/type'; +import * as Room from '../types'; +import { template } from './types'; +export declare const toClientState: (isAuthorized: boolean, requestedBy: RequestedBy, currentRoomState: State) => (source: State) => State; +export declare const serverTransform: (isAuthorized: boolean, requestedBy: RequestedBy, currentRoomState: State) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/functions.d.ts.map new file mode 100644 index 000000000..f5dc5e9d3 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/character/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI/E,OAAO,EACH,WAAW,EAKd,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,eAAe,EAAe,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,IAAI,MAAM,UAAU,CAAC;AAUjC,OAAO,EAIH,QAAQ,EACX,MAAM,SAAS,CAAC;AAIjB,eAAO,MAAM,aAAa,iBAEJ,OAAO,eACR,WAAW,oBACN,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAExC,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CA+DtD,CAAC;AAEN,eAAO,MAAM,eAAe,iBAEN,OAAO,eACR,WAAW,oBACN,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAC9C,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAsU/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/numParam/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/numParam/functions.d.ts new file mode 100644 index 000000000..ba3f0ffda --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/numParam/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (isAuthorized: boolean, defaultValue: number | undefined) => (source: State) => State; +export declare const serverTransform: (isAuthorized: boolean) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/numParam/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/numParam/functions.d.ts.map new file mode 100644 index 000000000..c6bd08a98 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/numParam/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/numParam/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAIlF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,iBACP,OAAO,gBAAgB,MAAM,GAAG,SAAS,cAC/C,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAKtD,CAAC;AAEN,eAAO,MAAM,eAAe,iBAEN,OAAO,KACtB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAyC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/numParam/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/numParam/types.d.ts new file mode 100644 index 000000000..d4f04ead3 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/numParam/types.d.ts @@ -0,0 +1,27 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + /** + * @description Do not use this value for numMaxParam. + */ + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/numParam/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/numParam/types.d.ts.map new file mode 100644 index 000000000..cfda0284c --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/numParam/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/numParam/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;QAKb;;WAEG;;;;;;;CAKV,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/functions.d.ts new file mode 100644 index 000000000..a283a25c5 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/functions.d.ts.map new file mode 100644 index 000000000..d225db583 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/portraitPiece/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAkC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/types.d.ts new file mode 100644 index 000000000..9ac0788e9 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/types.d.ts @@ -0,0 +1,59 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/types.d.ts.map new file mode 100644 index 000000000..8d11246c8 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/portraitPiece/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/portraitPiece/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/strParam/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/strParam/functions.d.ts new file mode 100644 index 000000000..417264086 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/strParam/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (isAuthorized: boolean) => (source: State) => State; +export declare const serverTransform: (isAuthorized: boolean) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/strParam/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/strParam/functions.d.ts.map new file mode 100644 index 000000000..c8a26b67a --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/strParam/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/strParam/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAIlF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,iBACP,OAAO,cACb,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAKtD,CAAC;AAEN,eAAO,MAAM,eAAe,iBAEN,OAAO,KACtB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CA6C/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/strParam/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/strParam/types.d.ts new file mode 100644 index 000000000..38d1b6343 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/strParam/types.d.ts @@ -0,0 +1,24 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/strParam/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/strParam/types.d.ts.map new file mode 100644 index 000000000..7262aa2f8 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/strParam/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/character/strParam/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/character/types.d.ts new file mode 100644 index 000000000..52144a7bc --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/types.d.ts @@ -0,0 +1,424 @@ +import { z } from 'zod'; +import { State } from '../../../generator/types'; +import * as BoolParam from './boolParam/types'; +import * as NumParam from './numParam/types'; +import * as StrParam from './strParam/types'; +export declare const defaultBoolParamState: State; +export declare const defaultNumParamState: State; +export declare const defaultStrParamState: State; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + chatPalette: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + privateVarToml: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + portraitImage: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + hasTag1: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag2: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag3: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag4: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag5: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag6: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag7: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag8: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag9: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag10: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + boolParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: boolean | undefined; + overriddenParameterName: string | undefined; + }; + }; + numParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: number | undefined; + overriddenParameterName: string | undefined; + }; + }; + numMaxParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: number | undefined; + overriddenParameterName: string | undefined; + }; + }; + strParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: string | undefined; + overriddenParameterName: string | undefined; + }; + }; + pieces: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + privateCommands: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + portraitPieces: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/character/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/character/types.d.ts.map new file mode 100644 index 000000000..1a8a0bd2a --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/character/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/character/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACH,KAAK,EAMR,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAG/C,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAO7C,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAMlE,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAMhE,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAMhE,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/converter.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/converter.d.ts new file mode 100644 index 000000000..627ba3587 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/converter.d.ts @@ -0,0 +1,17 @@ +import { DownOperation, State, UpOperation } from '../../generator/types'; +import * as Room from './types'; +type RoomState = State; +type RoomDbState = State; +type RoomUpOperation = UpOperation; +type RoomDownOperation = DownOperation; +export declare const decodeState: (source: unknown) => RoomState; +export declare const parseState: (source: string) => RoomState; +export declare const stringifyState: (source: RoomState) => string; +export declare const decodeDbState: (source: unknown) => RoomDbState; +export declare const exactDbState: (source: RoomDbState) => RoomDbState; +export declare const parseUpOperation: (source: string) => RoomUpOperation; +export declare const stringifyUpOperation: (source: RoomUpOperation) => string; +export declare const decodeDownOperation: (source: unknown) => RoomDownOperation; +export declare const exactDownOperation: (source: RoomDownOperation) => RoomDownOperation; +export {}; +//# sourceMappingURL=converter.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/converter.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/converter.d.ts.map new file mode 100644 index 000000000..1e749267d --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/converter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/room/converter.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,KAAK,EACL,WAAW,EAId,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAEhC,KAAK,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,KAAK,WAAW,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AACjD,KAAK,eAAe,GAAG,WAAW,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3D,KAAK,iBAAiB,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AAE/D,eAAO,MAAM,WAAW,WAAY,OAAO,KAAG,SAE7C,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,MAAM,KAAG,SAE3C,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,SAAS,KAAG,MAGlD,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,OAAO,KAAG,WAE/C,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,WAAW,KAAG,WAElD,CAAC;AAMF,eAAO,MAAM,gBAAgB,WAAY,MAAM,KAAG,eAEjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAY,eAAe,KAAG,MAG9D,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAAY,OAAO,KAAG,iBAErD,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,iBAAiB,KAAG,iBAE9D,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/functions.d.ts new file mode 100644 index 000000000..8d726c392 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/functions.d.ts @@ -0,0 +1,23 @@ +import { State, TwoWayOperation, UpOperation } from '../../generator/types'; +import { RequestedBy } from '../../requestedBy'; +import { ServerTransform } from '../../util/type'; +import { template } from './types'; +/** + * Stateから、指定されたユーザーが閲覧できないデータを取り除いた新しいStateを返す。 + * @param requestedBy 生成されたStateを渡すユーザーの種類。権限を確認するために用いられる。 + */ +export declare const toClientState: (requestedBy: RequestedBy) => (source: State) => State; +/** + * クライアントによる変更の要求を表すOperationを受け取り、APIサーバーのStateに対してapplyできる状態のOperationに変換して返す。変換処理では、主に次の2つが行われる。 + * - クライアントから受け取ったOperationのうち、不正なもの(例: そのユーザーが本来削除できないはずのキャラクターを削除しようとする)があった場合に、取り除くか拒否してエラーを返す + * - 編集競合が発生している場合は解決する + * + * @param requestedBy 変更を要求したユーザーの種類。権限を確認するために用いられる。 + * @param stateBeforeServerOperation クライアントがStateを変更しようとしたときに用いられたState。 + * @param stateAfterServerOperation APIサーバーにおける実際の最新のState。 + * @param serverOperation `stateBeforeServerOperation`と`stateAfterServerOperation`のDiff。`stateBeforeServerOperation`と`stateAfterServerOperation`が等しい場合はundefined。 + * @param clientOperation クライアントが要求している変更。 + * @returns `stateAfterServerOperation`に対してapplyできる状態のOperation。 + */ +export declare const serverTransform: (requestedBy: RequestedBy) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/functions.d.ts.map new file mode 100644 index 000000000..749e63d14 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/room/functions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI5E,OAAO,EACH,WAAW,EASd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAe,MAAM,iBAAiB,CAAC;AAe/D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAInC;;;GAGG;AACH,eAAO,MAAM,aAAa,gBACR,WAAW,cAChB,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAgEtD,CAAC;AAEN;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,gBAEP,WAAW,KACzB,eAAe,CACd,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CA4X/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/log.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/log.d.ts new file mode 100644 index 000000000..1905723c5 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/log.d.ts @@ -0,0 +1,23 @@ +import { State } from '../../generator/types'; +import * as DicePieceLog from './board/dicePiece/log'; +import * as StringPieceLog from './board/stringPiece/log'; +import * as RoomTypes from './types'; +type DicePieceLogType = { + boardId: string; + stateId: string; + value: DicePieceLog.Type; +}; +type StringPieceLogType = { + boardId: string; + stateId: string; + value: StringPieceLog.Type; +}; +export declare const createLogs: ({ prevState, nextState, }: { + prevState: State; + nextState: State; +}) => { + dicePieceLogs: DicePieceLogType[]; + stringPieceLogs: StringPieceLogType[]; +} | undefined; +export {}; +//# sourceMappingURL=log.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/log.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/log.d.ts.map new file mode 100644 index 000000000..2dd70605b --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/log.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/room/log.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAmB,MAAM,uBAAuB,CAAC;AAM/D,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AAErC,KAAK,gBAAgB,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;CAC5B,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,UAAU,8BAGpB;IACC,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5C,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;CAC/C;;;aA+KA,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/memo/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/memo/functions.d.ts new file mode 100644 index 000000000..df1a1c2b0 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/memo/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { ServerTransform } from '../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/memo/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/memo/functions.d.ts.map new file mode 100644 index 000000000..e85424d69 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/memo/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/memo/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAAW,CAAC;AAEhG,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CA4C/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/memo/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/memo/types.d.ts new file mode 100644 index 000000000..ab68a5b74 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/memo/types.d.ts @@ -0,0 +1,34 @@ +import { z } from 'zod'; +export declare const Plain = "Plain"; +export declare const Markdown = "Markdown"; +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + dir: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodArray; + }; + text: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + /** + * @description To 3rd-party developers: Please always set 'Plain' to this because 'Markdown' is not implemented yet in the official web-server. + */ + textType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"Plain">, z.ZodLiteral<"Markdown">]>; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/memo/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/memo/types.d.ts.map new file mode 100644 index 000000000..af83b6f04 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/memo/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/memo/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,QAAQ,aAAa,CAAC;AAQnC,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;QAMb;;WAEG;;;;;;;CAKV,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/paramName/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/paramName/functions.d.ts new file mode 100644 index 000000000..df1a1c2b0 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/paramName/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { ServerTransform } from '../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/paramName/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/paramName/functions.d.ts.map new file mode 100644 index 000000000..e6b67336f --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/paramName/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/paramName/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAAW,CAAC;AAEhG,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAmB/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/paramName/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/paramName/types.d.ts new file mode 100644 index 000000000..955cc5376 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/paramName/types.d.ts @@ -0,0 +1,13 @@ +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/paramName/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/paramName/types.d.ts.map new file mode 100644 index 000000000..d2f7999db --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/paramName/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/paramName/types.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;CAMpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/participant/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/participant/functions.d.ts new file mode 100644 index 000000000..5e965790b --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/participant/functions.d.ts @@ -0,0 +1,10 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { RequestedBy } from '../../../requestedBy'; +import { ServerTransform } from '../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ({ requestedBy, participantKey, }: { + requestedBy: RequestedBy; + participantKey: string; +}) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/participant/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/participant/functions.d.ts.map new file mode 100644 index 000000000..1c95f1bbb --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/participant/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/participant/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,qCAIrB;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CAC1B,KAAG,eAAe,CACf,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAmC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/participant/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/participant/types.d.ts new file mode 100644 index 000000000..a8a4f633d --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/participant/types.d.ts @@ -0,0 +1,25 @@ +import { z } from 'zod'; +export declare const Player = "Player"; +export declare const Spectator = "Spectator"; +export declare const Master = "Master"; +declare const participantRole: z.ZodUnion<[z.ZodLiteral<"Player">, z.ZodLiteral<"Spectator">, z.ZodLiteral<"Master">]>; +export type ParticipantRole = z.TypeOf; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional>; + }; + role: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional, z.ZodLiteral<"Spectator">, z.ZodLiteral<"Master">]>>; + }; + }; +}; +export {}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/participant/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/participant/types.d.ts.map new file mode 100644 index 000000000..cb61108c2 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/participant/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/participant/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,QAAA,MAAM,eAAe,yFAAwE,CAAC;AAC9F,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAE/D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CAOpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/rollCall/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/functions.d.ts new file mode 100644 index 000000000..c14202688 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/functions.d.ts @@ -0,0 +1,9 @@ +import { State, TwoWayOperation, UpOperation } from '../../../generator/types'; +import { RequestedBy } from '../../../requestedBy'; +import { ServerTransform } from '../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ({ requestedBy, }: { + requestedBy: RequestedBy; +}) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/rollCall/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/functions.d.ts.map new file mode 100644 index 000000000..bf2d79feb --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/rollCall/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAE,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CASnF,CAAC;AAEF,eAAO,MAAM,eAAe,qBAGrB;IACC,WAAW,EAAE,WAAW,CAAC;CAC5B,KAAG,eAAe,CACf,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAqE/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts new file mode 100644 index 000000000..f1f13b266 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts @@ -0,0 +1,40 @@ +import { State } from '../../../generator/types'; +import { StringKeyRecord } from '../../../record'; +import { template } from './types'; +/** + * 現在行われている点呼があればそれを返します。 + * + * 原則として、現在行われている点呼は最大でも 1 つまでしか存在できません。 + */ +export declare const getOpenRollCall: (source: StringKeyRecord>) => { + key: string; + value: { + $v: 1; + $r: 1; + } & { + createdAt: number; + createdBy: string; + closeStatus: { + closedBy: string; + reason: "Closed"; + } | undefined; + participants: { + [x: string]: ({ + $v: 1; + $r: 1; + } & { + answeredAt: number | undefined; + }) | undefined; + } | undefined; + soundEffect: { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + } | undefined; + }; +} | undefined; +//# sourceMappingURL=getOpenRollCall.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts.map new file mode 100644 index 000000000..5cd9f7cf7 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/getOpenRollCall.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"getOpenRollCall.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/rollCall/getOpenRollCall.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQnC;;;;GAIG;AACH,eAAO,MAAM,eAAe,WAAY,eAAe,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAG9E,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts new file mode 100644 index 000000000..383a7fe30 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts @@ -0,0 +1,4 @@ +import { State } from '../../../generator/types'; +import { template } from './types'; +export declare const isOpenRollCall: (source: State) => boolean; +//# sourceMappingURL=isOpenRollCall.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts.map new file mode 100644 index 000000000..d928b455d --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/isOpenRollCall.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"isOpenRollCall.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/rollCall/isOpenRollCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,cAAc,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,OAI/D,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts new file mode 100644 index 000000000..56776240f --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts @@ -0,0 +1,9 @@ +import { State, TwoWayOperation, UpOperation } from '../../../../generator/types'; +import { RequestedBy } from '../../../../requestedBy'; +import { ServerTransform } from '../../../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ({ requestedBy, }: { + requestedBy: RequestedBy; +}) => ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts.map new file mode 100644 index 000000000..7b06c8555 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/rollCall/rollCallParticipant/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,WAAW,EAAS,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAAW,CAAC;AAEhG,eAAO,MAAM,eAAe,qBAGrB;IACC,WAAW,EAAE,WAAW,CAAC;CAC5B,KAAG,eAAe,CACf,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAqB/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts new file mode 100644 index 000000000..98ca0ba05 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts @@ -0,0 +1,15 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + /** 点呼に返事したかどうか。`number` の場合は返事をしたことを表し、値は返事した日時となります。 `undefined` の場合は返事をしていないことを表します。`number` から `undefined` に戻すことで返事を撤回することもできます。また、`number` から `number` に変更することで、返事をした時間を更新することもできます。 */ + answeredAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts.map new file mode 100644 index 000000000..387c1d669 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/rollCallParticipant/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../src/internal/ot/flocon/room/rollCall/rollCallParticipant/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,QAAQ;;;;;QAEb,4LAA4L;;;;;;;CAKnM,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/rollCall/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/types.d.ts new file mode 100644 index 000000000..1a1d8a9c1 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/types.d.ts @@ -0,0 +1,103 @@ +import { z } from 'zod'; +/** 点呼の状況。 */ +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + createdAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + createdBy: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + /** + * 締め切られたかどうか。nullish ならば締め切られていないことを表します。原則として、締め切られていない点呼は、最大で1つまでしか存在できません。 + * + * 締め切られていない場合、参加者は誰でも締め切ることができます(ただし、締め切るには GraphQL の Mutation から実行する必要があります)。すでに締め切られている場合は、再開させることはできません。 + */ + closeStatus: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + closedBy: string; + reason: "Closed"; + }, { + closedBy: string; + reason: "Closed"; + }>>; + }; + /** + * 各ユーザーの点呼の状況です。keyはParticipantのIDです。 + * + * 原則として、`Spectator` もしくは存在しない Participant を追加すること、値を削除すること、すでに締め切られている場合に値を追加および変更することはできません。 + * + * この Record に存在しない `Player` や `Master` も点呼に参加できます。 + */ + participants: import("../../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + answeredAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + /** 点呼開始時に流す SE。 */ + soundEffect: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>; + volume: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + }, { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + }>>; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/rollCall/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/types.d.ts.map new file mode 100644 index 000000000..d92c7a21d --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/rollCall/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/ot/flocon/room/rollCall/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB,aAAa;AACb,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;QAOb;;;;WAIG;;;;;;gBAzBP;;;;mBAIG;;;;;;;;;;QAwBC;;;;;;WAMG;;;;;;;;;;;;;QAIH,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK1B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/room/types.d.ts new file mode 100644 index 000000000..87f56b358 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/types.d.ts @@ -0,0 +1,2413 @@ +import { z } from 'zod'; +export declare const dbTemplate: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + activeBoardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + bgms: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + isPaused: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + files: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodArray; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>, "many">; + }; + volume: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + boolParamNames: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + boards: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + backgroundImage: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + backgroundImageZoom: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellColumnCount: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellHeight: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellOffsetX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellOffsetY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellRowCount: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dicePieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dice: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + dieType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"D4">, z.ZodLiteral<"D6">]>; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + imagePieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + shapePieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + shapes: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + shape: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + type: z.ZodLiteral<"path">; + data: z.ZodString; + }, "strip", z.ZodTypeAny, { + type: "path"; + data: string; + }, { + type: "path"; + data: string; + }>; + }; + fill: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + stroke: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + strokeWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + stringPieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + valueInputType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional, z.ZodLiteral<"Number">]>>; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + }; + }>; + characters: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + chatPalette: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + privateVarToml: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + portraitImage: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + hasTag1: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag2: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag3: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag4: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag5: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag6: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag7: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag8: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag9: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag10: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + boolParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: boolean | undefined; + overriddenParameterName: string | undefined; + }; + }; + numParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: number | undefined; + overriddenParameterName: string | undefined; + }; + }; + numMaxParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: number | undefined; + overriddenParameterName: string | undefined; + }; + }; + strParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: string | undefined; + overriddenParameterName: string | undefined; + }; + }; + pieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + privateCommands: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + portraitPieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + }; + }>; + characterTag1Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag2Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag3Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag4Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag5Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag6Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag7Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag8Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag9Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag10Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + memos: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + dir: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodArray; + }; + text: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + textType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"Plain">, z.ZodLiteral<"Markdown">]>; + }; + }; + }>; + numParamNames: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + rollCalls: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + createdAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + createdBy: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + closeStatus: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + closedBy: string; + reason: "Closed"; + }, { + closedBy: string; + reason: "Closed"; + }>>; + }; + participants: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + answeredAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + soundEffect: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>; + volume: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + }, { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + }>>; + }; + }; + }>; + publicChannel1Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel2Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel3Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel4Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel5Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel6Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel7Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel8Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel9Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel10Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + strParamNames: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + }; +}; +export declare const template: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + createdBy: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + participants: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional>; + }; + role: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional, z.ZodLiteral<"Spectator">, z.ZodLiteral<"Master">]>>; + }; + }; + }>; + activeBoardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + bgms: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + isPaused: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + files: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodArray; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>, "many">; + }; + volume: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + boolParamNames: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + boards: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + backgroundImage: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + backgroundImageZoom: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellColumnCount: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellHeight: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellOffsetX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellOffsetY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellRowCount: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dicePieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + dice: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + dieType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"D4">, z.ZodLiteral<"D6">]>; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + imagePieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + shapePieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + shapes: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + shape: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + type: z.ZodLiteral<"path">; + data: z.ZodString; + }, "strip", z.ZodTypeAny, { + type: "path"; + data: string; + }, { + type: "path"; + data: string; + }>; + }; + fill: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + stroke: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + strokeWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + stringPieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerCharacterId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + valueInputType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional, z.ZodLiteral<"Number">]>>; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + }; + }>; + characters: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + ownerParticipantId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + image: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + chatPalette: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + privateVarToml: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + portraitImage: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>>; + }; + hasTag1: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag2: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag3: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag4: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag5: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag6: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag7: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag8: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag9: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + hasTag10: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + boolParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: boolean | undefined; + overriddenParameterName: string | undefined; + }; + }; + numParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: number | undefined; + overriddenParameterName: string | undefined; + }; + }; + numMaxParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: number | undefined; + overriddenParameterName: string | undefined; + }; + }; + strParams: { + readonly type: "paramRecord"; + readonly value: { + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + isValuePrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + overriddenParameterName: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + }; + }; + readonly defaultState: { + $v: 2; + $r: 1; + } & { + isValuePrivate: boolean; + value: string | undefined; + overriddenParameterName: string | undefined; + }; + }; + pieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + cellH: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellW: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellX: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + cellY: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isCellMode: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + privateCommands: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + value: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + portraitPieces: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 2; + readonly $r: 1; + readonly value: { + boardId: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + isPrivate: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + h: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + isPositionLocked: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodBoolean; + }; + memo: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + opacity: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + w: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + x: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + y: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + }; + }>; + }; + }>; + characterTag1Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag2Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag3Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag4Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag5Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag6Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag7Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag8Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag9Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + characterTag10Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: true; + }; + memos: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + dir: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodArray; + }; + text: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + textType: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodUnion<[z.ZodLiteral<"Plain">, z.ZodLiteral<"Markdown">]>; + }; + }; + }>; + numParamNames: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + rollCalls: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + createdAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodNumber; + }; + createdBy: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodString; + }; + closeStatus: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + closedBy: string; + reason: "Closed"; + }, { + closedBy: string; + reason: "Closed"; + }>>; + }; + participants: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + answeredAt: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; + }>; + soundEffect: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + $r: z.ZodLiteral<1>; + path: z.ZodString; + sourceType: z.ZodUnion<[z.ZodLiteral<"Default">, z.ZodLiteral<"Uploader">, z.ZodLiteral<"FirebaseStorage">]>; + }, "strip", z.ZodTypeAny, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }, { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }>; + volume: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + }, { + volume: number; + file: { + path: string; + $v: 1; + $r: 1; + sourceType: "Default" | "Uploader" | "FirebaseStorage"; + }; + }>>; + }; + }; + }>; + publicChannel1Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel2Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel3Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel4Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel5Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel6Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel7Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel8Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel9Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + publicChannel10Name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + strParamNames: import("../../generator/types").RecordValueTemplate<{ + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + name: { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: false; + }; + }; + }>; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/room/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/room/types.d.ts.map new file mode 100644 index 000000000..9d1c648c4 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/room/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/room/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgDxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgD,CAAC;AAGxE,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/shape/functions.d.ts b/packages/core/dist/esm/internal/ot/flocon/shape/functions.d.ts new file mode 100644 index 000000000..40236b93a --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/shape/functions.d.ts @@ -0,0 +1,6 @@ +import { State, TwoWayOperation, UpOperation } from '../../generator/types'; +import { ServerTransform } from '../../util/type'; +import { template } from './types'; +export declare const toClientState: (source: State) => State; +export declare const serverTransform: ServerTransform, TwoWayOperation, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/shape/functions.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/shape/functions.d.ts.map new file mode 100644 index 000000000..2aab708ae --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/shape/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/shape/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,aAAa,WAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO,QAAQ,CAEnF,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CACzC,KAAK,CAAC,OAAO,QAAQ,CAAC,EACtB,eAAe,CAAC,OAAO,QAAQ,CAAC,EAChC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAoC/B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/shape/types.d.ts b/packages/core/dist/esm/internal/ot/flocon/shape/types.d.ts new file mode 100644 index 000000000..1a3e81c71 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/shape/types.d.ts @@ -0,0 +1,38 @@ +import { z } from 'zod'; +export declare const template: { + readonly type: "object"; + readonly $v: 1; + readonly $r: 1; + readonly value: { + shape: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodObject<{ + type: z.ZodLiteral<"path">; + data: z.ZodString; + }, "strip", z.ZodTypeAny, { + type: "path"; + data: string; + }, { + type: "path"; + data: string; + }>; + }; + fill: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + stroke: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + strokeWidth: { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: z.ZodOptional; + }; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/flocon/shape/types.d.ts.map b/packages/core/dist/esm/internal/ot/flocon/shape/types.d.ts.map new file mode 100644 index 000000000..da997c539 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/flocon/shape/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/flocon/shape/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/generator/functions.d.ts b/packages/core/dist/esm/internal/ot/generator/functions.d.ts new file mode 100644 index 000000000..9f374ba74 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/generator/functions.d.ts @@ -0,0 +1,34 @@ +import { Apply, ClientTransform, Compose, Diff, DownError, Restore } from '../util/type'; +import { AnyTemplate, DownOperation, State, TwoWayOperation, UpOperation } from './types'; +export declare const $v = "$v"; +export declare const $r = "$r"; +/** TwoWayOperationをUpOperationに変換します。 */ +export declare const toUpOperation: (template: T) => (twoWayOperation: TwoWayOperation) => UpOperation; +/** TwoWayOperationをDownOperationに変換します。 */ +export declare const toDownOperation: (template: T) => (twoWayOperation: TwoWayOperation) => DownOperation; +/** StateにUpOperationを適用します。破壊的な処理は行われません。 */ +export declare const apply: (template: T) => Apply, UpOperation>; +/** StateにDownOperationを適用します。破壊的な処理は行われません。 */ +export declare const applyBack: (template: T) => Apply, DownOperation>; +/** 連続する2つのDownOperationを合成します。破壊的な処理は行われません。 */ +export declare const composeDownOperation: (template: T) => Compose, DownError>; +/** + * Stateの情報を用いて、DownOperationをTwoWayOperationに変換します。破壊的な処理は行われません。 + * @param nextState DownOperationが適用される前の状態のState。 + */ +export declare const restore: (template: T) => Restore, DownOperation, TwoWayOperation>; +/** 2つのStateオブジェクトの差分を取ります。 + * @returns 2つのオブジェクトが意味上で同一であればundefinedを返します。 + */ +export declare const diff: (template: T) => Diff, TwoWayOperation>; +/** + * ユーザーの権限を考慮せずに、通常のOperational Transformを行います。主にクライアント側で使われます。破壊的な処理は行われません。 + * + * この関数は次の2つの制約があります。 + * - `first`適用前のStateと`second`適用前のStateは等しい。 + * - このStateに対して`first`と`secondPrime`を順に適用したStateと、`second`と`firstPrime`を順に適用したStateは等しい。 + * + * Record の template の場合、state や operation に `$index` というキーのプロパティがある場合はIndexObject(配列の要素)であるとみなされ、`$index`を調整する operation が自動的に追加されることがあります。そのため、配列の要素とみなしたい場合を除いて`$index`というキーをオブジェクトに含めないようにしてください。 + */ +export declare const clientTransform: (template: T) => ClientTransform, UpOperation>; +//# sourceMappingURL=functions.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/generator/functions.d.ts.map b/packages/core/dist/esm/internal/ot/generator/functions.d.ts.map new file mode 100644 index 000000000..b469cd9b3 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/generator/functions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/generator/functions.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAW,MAAM,cAAc,CAAC;AAClG,OAAO,EACH,WAAW,EACX,aAAa,EACb,KAAK,EACL,eAAe,EACf,WAAW,EAOd,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,EAAE,OAAO,CAAC;AACvB,eAAO,MAAM,EAAE,OAAO,CAAC;AAgBvB,yCAAyC;AACzC,eAAO,MAAM,aAAa,GACrB,CAAC,SAAS,WAAW,YAAY,CAAC,uBACjB,eAAe,CAAC,CAAC,CAAC,KAAG,WAAW,CAAC,CAAC,CAiDnD,CAAC;AAEN,2CAA2C;AAC3C,eAAO,MAAM,eAAe,GACvB,CAAC,SAAS,WAAW,YAAY,CAAC,uBACjB,eAAe,CAAC,CAAC,CAAC,KAAG,aAAa,CAAC,CAAC,CAiDrD,CAAC;AAEN,6CAA6C;AAC7C,eAAO,MAAM,KAAK,GACb,CAAC,SAAS,WAAW,YAAY,CAAC,KAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAkEnE,CAAC;AAEN,+CAA+C;AAC/C,eAAO,MAAM,SAAS,GACjB,CAAC,SAAS,WAAW,YAAY,CAAC,KAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAkErE,CAAC;AAEN,gDAAgD;AAChD,eAAO,MAAM,oBAAoB,GAC5B,CAAC,SAAS,WAAW,YAAY,CAAC,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,CAgFxE,CAAC;AAEN;;;GAGG;AACH,eAAO,MAAM,OAAO,GACf,CAAC,SAAS,WAAW,YAAY,CAAC,KAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAoF3F,CAAC;AAEN;;GAEG;AACH,eAAO,MAAM,IAAI,GACZ,CAAC,SAAS,WAAW,YAAY,CAAC,KAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAsEtE,CAAC;AAsCN;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GACvB,CAAC,SAAS,WAAW,YAAY,CAAC,KAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAkI7E,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/generator/omitVersion.d.ts b/packages/core/dist/esm/internal/ot/generator/omitVersion.d.ts new file mode 100644 index 000000000..fc0633416 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/generator/omitVersion.d.ts @@ -0,0 +1,2 @@ +export type OmitVersion = Omit; +//# sourceMappingURL=omitVersion.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/generator/omitVersion.d.ts.map b/packages/core/dist/esm/internal/ot/generator/omitVersion.d.ts.map new file mode 100644 index 000000000..18c802a28 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/generator/omitVersion.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"omitVersion.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/generator/omitVersion.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/generator/types.d.ts b/packages/core/dist/esm/internal/ot/generator/types.d.ts new file mode 100644 index 000000000..cb97171ea --- /dev/null +++ b/packages/core/dist/esm/internal/ot/generator/types.d.ts @@ -0,0 +1,140 @@ +import { z } from 'zod'; +import * as NullableTextOperation from '../nullableTextOperation'; +import { RecordDownOperationElement, RecordTwoWayOperationElement, RecordUpOperationElement } from '../recordOperationElement'; +import * as TextOperation from '../textOperation'; +type ReadonlyRecord = { + readonly [P in TKey]: TValue; +}; +export declare const atomic = "atomic"; +export declare const replace = "replace"; +export declare const ot = "ot"; +export declare const record = "record"; +export declare const paramRecord = "paramRecord"; +export declare const object = "object"; +export type ReplaceValueTemplate = { + type: typeof atomic; + mode: typeof replace; + value: T; +}; +/** Stateならば`T`に、TwoWayOperationならば`{ oldValue:T; newValue:T }`に変換されるtemplateを作成します。*/ +export declare const createReplaceValueTemplate: (value: T) => { + readonly type: "atomic"; + readonly mode: "replace"; + readonly value: T; +}; +export type OtValueTemplate = { + type: typeof atomic; + mode: typeof ot; + nullable: boolean; + value?: undefined; +}; +/** Stateならば`string`(ただし`nullable === true`のときは代わりに`string | undefined`となます。`undefined`は`''`と同一として扱われます)に、TwoWayOperationならば変化のある部分のみを抽出したOperationに変換されるtemplateを作成します。*/ +export declare const createTextValueTemplate: (nullable: T) => { + readonly type: "atomic"; + readonly mode: "ot"; + readonly nullable: T; +}; +export type RecordValueTemplate = { + type: typeof record; + value: TValue; +}; +/** `Record`を表すtemplateを作成します。*/ +export declare const createRecordValueTemplate: (value: TValue) => RecordValueTemplate; +export type ParamRecordValueTemplate = { + type: typeof paramRecord; + value: TValue; + defaultState: State; +}; +/** `Record`を表すtemplateを作成します。存在しない要素はdefaultStateがセットされているとみなされます。 */ +export declare const createParamRecordValueTemplate: (value: TValue, defaultState: State) => { + readonly type: "paramRecord"; + readonly value: TValue; + readonly defaultState: State; +}; +export type ObjectValueTemplate, V extends number | undefined, R extends number | undefined> = { + type: typeof object; + $v: V; + $r: R; + value: { + readonly [P in keyof T]: T[P]; + }; +}; +/** 複数のtemplateから構成される新たなtemplateを作成します。 */ +export declare const createObjectValueTemplate: , V extends number | undefined, R extends number | undefined>(value: T, $v: V, $r: R) => { + readonly type: "object"; + readonly $v: V; + readonly $r: R; + readonly value: T; +}; +export type AnyTemplate = ReplaceValueTemplate | OtValueTemplate | { + type: typeof record; + value: AnyTemplate; +} | { + type: typeof paramRecord; + value: AnyTemplate; + defaultState: any; +} | { + type: typeof object; + $v: number | undefined; + $r: number | undefined; + value: { + readonly [P in string]: AnyTemplate; + }; +}; +type If = T extends true ? TTrue : T extends false ? TFalse : TTrue | TFalse; +type ParamRecordValueTemplateBase = { + type: typeof paramRecord; + value: TValue; +}; +export type State = T extends OtValueTemplate ? If : T extends ReplaceValueTemplate ? z.TypeOf : T extends RecordValueTemplate ? { + [P in string]?: State | undefined; +} | undefined : T extends ParamRecordValueTemplateBase ? { + [P in string]?: State | undefined; +} | undefined : T extends ObjectValueTemplate ? { + $v: UV; + $r: UR; +} & { + [P in keyof U4]: State; +} : unknown; +export declare const state: (source: T) => z.ZodType>; +export type UpOperation = T extends OtValueTemplate ? If : T extends ReplaceValueTemplate ? { + newValue: z.TypeOf; +} : T extends RecordValueTemplate ? { + [P in string]?: RecordUpOperationElement, UpOperation> | undefined; +} : T extends ParamRecordValueTemplate ? { + [P in string]?: UpOperation | undefined; +} : T extends ObjectValueTemplate ? { + $v: UV; + $r: UR; +} & { + [P in keyof U3]?: UpOperation; +} : unknown; +export declare const upOperation: (source: T) => z.ZodType>; +export type DownOperation = T extends OtValueTemplate ? If : T extends ReplaceValueTemplate ? { + oldValue: z.TypeOf; +} : T extends RecordValueTemplate ? { + [P in string]?: RecordDownOperationElement, DownOperation> | undefined; +} : T extends ParamRecordValueTemplate ? { + [P in string]?: DownOperation | undefined; +} : T extends ObjectValueTemplate ? { + $v: UV; + $r: UR; +} & { + [P in keyof U3]?: DownOperation; +} : unknown; +export declare const downOperation: (source: T) => z.ZodType>; +export type TwoWayOperation = T extends OtValueTemplate ? If : T extends ReplaceValueTemplate ? { + oldValue: z.TypeOf; + newValue: z.TypeOf; +} : T extends RecordValueTemplate ? { + [P in string]?: RecordTwoWayOperationElement, TwoWayOperation> | undefined; +} : T extends ParamRecordValueTemplate ? { + [P in string]?: TwoWayOperation | undefined; +} : T extends ObjectValueTemplate ? { + $v: UV; + $r: UR; +} & { + [P in keyof U4]?: TwoWayOperation; +} : unknown; +export {}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/generator/types.d.ts.map b/packages/core/dist/esm/internal/ot/generator/types.d.ts.map new file mode 100644 index 000000000..947591ff7 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/generator/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/generator/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/nullableTextOperation.d.ts b/packages/core/dist/esm/internal/ot/nullableTextOperation.d.ts new file mode 100644 index 000000000..3ecdae367 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/nullableTextOperation.d.ts @@ -0,0 +1,203 @@ +import * as TextOperationCore from '@kizahasi/ot-core'; +import { NonEmptyString } from '@kizahasi/ot-string'; +import { Result } from '@kizahasi/result'; +import { z } from 'zod'; +import { replace, update } from './recordOperationElement'; +import * as TextOperation from './textOperation'; +type ApplyError = TextOperationCore.ApplyError; +type ComposeAndTransformUpError = TextOperationCore.ComposeAndTransformError; +type ComposeAndTransformDownError = TextOperationCore.ComposeAndTransformError; +type ComposeAndTransformTwoWayError = TextOperationCore.ComposeAndTransformError; +export declare const downOperation: z.ZodUnion<[z.ZodObject<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + oldValue: z.ZodUnion<[z.ZodString, z.ZodUndefined]>; + }, "strip", z.ZodTypeAny, { + oldValue?: string | undefined; + }, { + oldValue?: string | undefined; + }>; +}, "strip", z.ZodTypeAny, { + type: "replace"; + replace: { + oldValue?: string | undefined; + }; +}, { + type: "replace"; + replace: { + oldValue?: string | undefined; + }; +}>, z.ZodObject<{ + type: z.ZodLiteral<"update">; + update: z.ZodArray; + r: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + t: "r"; + r: number; + }, { + t: "r"; + r: number; + }>, z.ZodObject<{ + t: z.ZodLiteral<"i">; + i: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + t: "i"; + i: number; + }, { + t: "i"; + i: number; + }>, z.ZodObject<{ + t: z.ZodLiteral<"d">; + d: z.ZodString; + }, "strip", z.ZodTypeAny, { + t: "d"; + d: string; + }, { + t: "d"; + d: string; + }>]>, "many">; +}, "strip", z.ZodTypeAny, { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: number; + } | { + t: "d"; + d: string; + })[]; +}, { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: number; + } | { + t: "d"; + d: string; + })[]; +}>]>; +export type DownOperation = z.TypeOf; +export declare const upOperation: z.ZodUnion<[z.ZodObject<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + newValue: z.ZodUnion<[z.ZodString, z.ZodUndefined]>; + }, "strip", z.ZodTypeAny, { + newValue?: string | undefined; + }, { + newValue?: string | undefined; + }>; +}, "strip", z.ZodTypeAny, { + type: "replace"; + replace: { + newValue?: string | undefined; + }; +}, { + type: "replace"; + replace: { + newValue?: string | undefined; + }; +}>, z.ZodObject<{ + type: z.ZodLiteral<"update">; + update: z.ZodArray; + r: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + t: "r"; + r: number; + }, { + t: "r"; + r: number; + }>, z.ZodObject<{ + t: z.ZodLiteral<"i">; + i: z.ZodString; + }, "strip", z.ZodTypeAny, { + t: "i"; + i: string; + }, { + t: "i"; + i: string; + }>, z.ZodObject<{ + t: z.ZodLiteral<"d">; + d: z.ZodNumber; + }, "strip", z.ZodTypeAny, { + t: "d"; + d: number; + }, { + t: "d"; + d: number; + }>]>, "many">; +}, "strip", z.ZodTypeAny, { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; +}, { + type: "update"; + update: ({ + t: "r"; + r: number; + } | { + t: "i"; + i: string; + } | { + t: "d"; + d: number; + })[]; +}>]>; +export type UpOperation = z.TypeOf; +export type TwoWayOperation = { + type: typeof replace; + replace: { + oldValue: string; + newValue: undefined; + } | { + oldValue: undefined; + newValue: string; + }; +} | { + type: typeof update; + update: TextOperation.TwoWayOperation; +}; +export declare const toUpOperation: (source: TwoWayOperation) => UpOperation; +export declare const toDownOperation: (source: TwoWayOperation) => DownOperation; +export declare const apply: (state: string | undefined, action: UpOperation | TwoWayOperation) => import("@kizahasi/result").Error | import("@kizahasi/result").Error> | import("@kizahasi/result").Ok; +export declare const applyBack: (state: string | undefined, action: DownOperation) => import("@kizahasi/result").Error | import("@kizahasi/result").Error> | import("@kizahasi/result").Ok; +export declare const composeDownOperation: (first: DownOperation | undefined, second: DownOperation | undefined) => Result; +export declare const diff: ({ prev, next, }: { + prev: string | undefined; + next: string | undefined; +}) => TwoWayOperation | undefined; +export declare const restore: ({ nextState, downOperation, }: { + nextState: string | undefined; + downOperation: DownOperation | undefined; +}) => Result<{ + prevState: string | undefined; + twoWayOperation: TwoWayOperation | undefined; +}, string | ApplyError>; +export declare const serverTransform: ({ first, second, prevState, }: { + first?: TwoWayOperation; + second?: UpOperation; + prevState: string | undefined; +}) => Result; +export declare const clientTransform: ({ first, second, }: { + first: UpOperation | undefined; + second: UpOperation | undefined; +}) => Result<{ + firstPrime?: UpOperation; + secondPrime?: UpOperation; +}, string | ComposeAndTransformDownError>; +export {}; +//# sourceMappingURL=nullableTextOperation.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/nullableTextOperation.d.ts.map b/packages/core/dist/esm/internal/ot/nullableTextOperation.d.ts.map new file mode 100644 index 000000000..31d441def --- /dev/null +++ b/packages/core/dist/esm/internal/ot/nullableTextOperation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"nullableTextOperation.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/nullableTextOperation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AASjD,KAAK,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,cAAc,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAC9F,KAAK,0BAA0B,GAAG,iBAAiB,CAAC,wBAAwB,CACxE,iBAAiB,CAAC,WAAW,EAC7B,cAAc,CACjB,CAAC;AACF,KAAK,4BAA4B,GAAG,iBAAiB,CAAC,wBAAwB,CAC1E,cAAc,EACd,iBAAiB,CAAC,WAAW,CAChC,CAAC;AACF,KAAK,8BAA8B,GAAG,iBAAiB,CAAC,wBAAwB,CAC5E,cAAc,EACd,cAAc,CACjB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAE3D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWtB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEvD,MAAM,MAAM,eAAe,GACrB;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;IACrB,OAAO,EACD;QACI,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACvB,GACD;QACI,QAAQ,EAAE,SAAS,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;CACX,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC;CACzC,CAAC;AAER,eAAO,MAAM,aAAa,WAAY,eAAe,KAAG,WAavD,CAAC;AAEF,eAAO,MAAM,eAAe,WAAY,eAAe,KAAG,aAazD,CAAC;AAEF,eAAO,MAAM,KAAK,UAAW,MAAM,GAAG,SAAS,UAAU,WAAW,GAAG,eAAe,iNAQrF,CAAC;AAEF,eAAO,MAAM,SAAS,UAAW,MAAM,GAAG,SAAS,UAAU,aAAa,iNAQzE,CAAC;AAGF,eAAO,MAAM,oBAAoB,UACtB,aAAa,GAAG,SAAS,UACxB,aAAa,GAAG,SAAS,KAClC,MAAM,CAAC,aAAa,GAAG,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,0BAA0B,CA+CpF,CAAC;AAEF,eAAO,MAAM,IAAI,oBAGd;IACC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,KAAG,eAAe,GAAG,SA8BrB,CAAC;AAGF,eAAO,MAAM,OAAO,kCAGjB;IACC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;CAC5C,KAAG,MAAM,CACN;IACI,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;CAChD,EACD,MAAM,GAAG,UAAU,CAmCtB,CAAC;AAEF,eAAO,MAAM,eAAe,kCAIzB;IACC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,KAAG,MAAM,CAAC,eAAe,GAAG,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,8BAA8B,CA+D3F,CAAC;AAEF,eAAO,MAAM,eAAe,uBAGzB;IACC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;CACnC,KAAG,MAAM,CACN;IACI,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B,EACD,MAAM,GAAG,4BAA4B,CA6ExC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/otError.d.ts b/packages/core/dist/esm/internal/ot/otError.d.ts new file mode 100644 index 000000000..2707b8506 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/otError.d.ts @@ -0,0 +1,9 @@ +import { DownError, ScalarError, TwoWayError, UpError } from './util/type'; +type OtErrorParam = Exclude; +export declare class OtError extends Error { + readonly otError: OtErrorParam; + constructor(content: OtErrorParam); +} +export declare const toOtError: (content: OtErrorParam | string) => Error; +export {}; +//# sourceMappingURL=otError.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/otError.d.ts.map b/packages/core/dist/esm/internal/ot/otError.d.ts.map new file mode 100644 index 000000000..97f378e75 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/otError.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"otError.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/otError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3E,KAAK,YAAY,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,EAAE,MAAM,CAAC,CAAC;AAErF,qBAAa,OAAQ,SAAQ,KAAK;IAC9B,SAAgB,OAAO,EAAE,YAAY,CAAC;gBAC1B,OAAO,EAAE,YAAY;CAOpC;AAED,eAAO,MAAM,SAAS,YAAa,YAAY,GAAG,MAAM,KAAG,KAK1D,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/paramRecordOperation.d.ts b/packages/core/dist/esm/internal/ot/paramRecordOperation.d.ts new file mode 100644 index 000000000..d32ccef78 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/paramRecordOperation.d.ts @@ -0,0 +1,86 @@ +import { Result } from '@kizahasi/result'; +import { StringKeyRecord } from './record'; +import * as RecordOperation from './recordOperation'; +type RestoreResult = { + prevState: TState; + twoWayOperation: TTwoWayOperation | undefined; +}; +export type ProtectedTransformParameters = RecordOperation.ProtectedTransformParameters; +export declare const restore: ({ nextState: unsafeNextState, downOperation: unsafeDownOperation, innerRestore, }: { + nextState: StringKeyRecord; + downOperation?: StringKeyRecord; + innerRestore: (params: { + downOperation: TDownOperation; + nextState: TState; + key: string; + }) => Result | undefined, string | TCustomError>; +}) => Result, StringKeyRecord>, string | TCustomError>; +export declare const apply: ({ prevState: unsafePrevState, operation, innerApply, defaultState, }: { + prevState: StringKeyRecord; + operation?: StringKeyRecord; + innerApply: (params: { + operation: TUpOperation; + prevState: TState; + key: string; + }) => Result; + defaultState: TState; +}) => Result, string | TCustomError>; +export declare const applyBack: ({ nextState: unsafeNextState, operation, innerApplyBack, defaultState, }: { + nextState: StringKeyRecord; + operation?: StringKeyRecord; + innerApplyBack: (params: { + operation: TDownOperation; + nextState: TState; + key: string; + }) => Result; + defaultState: TState; +}) => Result, string | TCustomError>; +export declare const compose: ({ first, second, innerCompose, }: { + first?: StringKeyRecord; + second?: StringKeyRecord; + innerCompose: (params: { + key: string; + first: TOperation; + second: TOperation; + }) => Result; +}) => Result | undefined, string | TCustomError>; +/** Make sure `apply(stateBeforeFirst, first) = stateAfterFirst` */ +export declare const serverTransform: ({ first: unsafeFirst, second: unsafeSecond, stateBeforeFirst: unsafeStateBeforeFirst, stateAfterFirst: unsafeStateAfterFirst, innerTransform, defaultState, }: { + stateBeforeFirst: StringKeyRecord; + stateAfterFirst: StringKeyRecord; + first?: StringKeyRecord; + second?: StringKeyRecord; + innerTransform: (params: ProtectedTransformParameters & { + key: string; + }) => Result; + defaultState: TServerState; +}) => Result | undefined, string | TCustomError>; +type InnerClientTransform = (params: { + state: TState; + first: TOperation; + second: TOperation; +}) => Result<{ + firstPrime: TOperation | undefined; + secondPrime: TOperation | undefined; +}, TError>; +export declare const clientTransform: ({ state, first, second, innerTransform, defaultState, }: { + state: StringKeyRecord; + first?: StringKeyRecord; + second?: StringKeyRecord; + innerTransform: InnerClientTransform; + defaultState: TState; +}) => Result<{ + firstPrime: StringKeyRecord | undefined; + secondPrime: StringKeyRecord | undefined; +}, TError>; +export declare const diff: ({ prevState, nextState, innerDiff, }: { + prevState: StringKeyRecord; + nextState: StringKeyRecord; + innerDiff: (params: { + prevState: TState | undefined; + nextState: TState | undefined; + key: string; + }) => TOperation | undefined; +}) => StringKeyRecord | undefined; +export {}; +//# sourceMappingURL=paramRecordOperation.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/paramRecordOperation.d.ts.map b/packages/core/dist/esm/internal/ot/paramRecordOperation.d.ts.map new file mode 100644 index 000000000..a2ab487cd --- /dev/null +++ b/packages/core/dist/esm/internal/ot/paramRecordOperation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"paramRecordOperation.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/paramRecordOperation.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/record.d.ts b/packages/core/dist/esm/internal/ot/record.d.ts new file mode 100644 index 000000000..f0739f80c --- /dev/null +++ b/packages/core/dist/esm/internal/ot/record.d.ts @@ -0,0 +1,6 @@ +import { z } from 'zod'; +export declare const isEmptyRecord: (source: Record) => boolean; +export declare const isIdRecord: (source: Record) => boolean; +export declare const record: (value: Value) => z.ZodRecord>; +export type StringKeyRecord = Record; +//# sourceMappingURL=record.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/record.d.ts.map b/packages/core/dist/esm/internal/ot/record.d.ts.map new file mode 100644 index 000000000..90c292bed --- /dev/null +++ b/packages/core/dist/esm/internal/ot/record.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa,WAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAQ/D,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAW5D,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,SAAS,CAAC,CAAC,UAAU,SAAS,KAAK,mDAA+B,CAAC;AAE/F,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/recordOperation.d.ts b/packages/core/dist/esm/internal/ot/recordOperation.d.ts new file mode 100644 index 000000000..413c9d5e0 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/recordOperation.d.ts @@ -0,0 +1,208 @@ +import { Result } from '@kizahasi/result'; +import { StringKeyRecord } from './record'; +import { RecordDownOperationElement, RecordTwoWayOperationElement, RecordUpOperationElement, replace, update } from './recordOperationElement'; +type RecordOperationElement = { + type: typeof update; + update: TUpdate; +} | { + type: typeof replace; + replace: TReplace; +}; +type RecordOperation = Record | undefined>; +export type RecordDownOperation = Record | undefined>; +export type RecordUpOperation = Record | undefined>; +export type RecordTwoWayOperation = Record | undefined>; +type RestoreResult = { + prevState: TState; + twoWayOperation: TTwoWayOperation | undefined; +}; +export type ProtectedTransformParameters = { + first?: TFirstOperation; + second: TSecondOperation; + prevState: TServerState; + nextState: TServerState; +}; +/** + * trueを返すと、「TServerState全体がprivateであり編集不可能」とみなしてスキップします。ただし制限されるのはtransformのみであるため、読み取りなどは制限されません。 + * + * 「ユーザーがprivateだと思っていたらその後すぐ変更があってprivateになった」というケースがあるので、trueでもエラーは返さず処理が続行されます。 + * + * 関数ではなくundefinedを渡した場合、常にfalseを返す関数が渡されたときと同等の処理が行われます。 + */ +export type CancellationPolicy = { + cancelRemove?: (params: { + key: TKey; + state: TServerState; + }) => boolean; + cancelUpdate?: (params: { + key: TKey; + prevState: TServerState; + nextState: TServerState; + }) => boolean; + cancelCreate?: (params: { + key: TKey; + newState: TServerState; + }) => boolean; +}; +/** Make sure `apply(prevState, source) = nextState` */ +export declare const toClientState: ({ serverState, isPrivate, toClientState, }: { + serverState: StringKeyRecord | undefined; + isPrivate: (state: TSourceState, key: string) => boolean; + toClientState: (params: { + state: TSourceState; + key: string; + }) => TClientState; +}) => Record | undefined; +export declare const restore: ({ nextState, downOperation, innerRestore, innerDiff, }: { + nextState: StringKeyRecord; + downOperation?: StringKeyRecord>; + innerRestore: (params: { + key: string; + downOperation: TDownOperation; + nextState: TState; + }) => Result, string | TCustomError>; + innerDiff: (params: { + key: string; + prevState: TState; + nextState: TState; + }) => TTwoWayOperation | undefined; +}) => Result, RecordTwoWayOperation>, string | TCustomError>; +export declare const apply: ({ prevState, operation, innerApply, }: { + prevState: StringKeyRecord; + operation?: StringKeyRecord>; + innerApply: (params: { + key: string; + operation: TOperation; + prevState: TState; + }) => Result; +}) => Result, string | TCustomError>; +export declare const applyBack: ({ nextState, operation, innerApplyBack, }: { + nextState: StringKeyRecord; + operation?: StringKeyRecord>; + innerApplyBack: (params: { + key: string; + operation: TDownOperation; + state: TState; + }) => Result; +}) => Result, string | TCustomError>; +export declare const compose: ({ first, second, composeReplaceReplace, composeReplaceUpdate, composeUpdateReplace, composeUpdateUpdate, }: { + first?: RecordOperation; + second?: RecordOperation; + composeReplaceReplace: (params: { + first: TReplace; + second: TReplace; + key: string; + }) => Result; + composeReplaceUpdate: (params: { + first: TReplace; + second: TUpdate; + key: string; + }) => Result; + composeUpdateReplace: (params: { + first: TUpdate; + second: TReplace; + key: string; + }) => Result; + composeUpdateUpdate: (params: { + first: TUpdate; + second: TUpdate; + key: string; + }) => Result; +}) => Result | undefined, TError>; +export declare const composeDownOperation: ({ first, second, innerApplyBack, innerCompose, }: { + first?: RecordDownOperation; + second?: RecordDownOperation; + innerApplyBack: (params: { + key: string; + operation: TDownOperation; + state: TState; + }) => Result; + innerCompose: (params: { + key: string; + first: TDownOperation; + second: TDownOperation; + }) => Result; +}) => Result | undefined, string | TCustomError>; +type ServerTransformCoreParams = { + stateBeforeFirst: StringKeyRecord; + stateAfterFirst: StringKeyRecord; + first?: RecordUpOperation; + second?: RecordUpOperation; + /** `TClientState` を `TServerState` に変換します。`create` される値の変換を行っても構いません。 */ + toServerState: (state: TClientState, key: string) => TServerState; + innerTransform: (params: ProtectedTransformParameters & { + key: string; + }) => Result; + cancellationPolicy: CancellationPolicy; +}; +export type ServerTransformParams = ServerTransformCoreParams & { + /** 制限を設けることができます。指定した制限を満たさない場合は Result.error が返されます。 */ + validation?: { + /** このRecordの名前です。エラーメッセージを生成する際に用いられます。 */ + recordName: string; + /** Record の要素の数の最大値。要素の追加後に、要素の数がこれを超える場合はエラーとなります。追加以外の操作では無視されます。 */ + maxRecordLength?: number; + }; +}; +/** Make sure `apply(stateBeforeFirst, first) = stateAfterFirst` */ +export declare const serverTransform: (params: ServerTransformParams) => Result | undefined, string | TCustomError>; +type InnerClientTransform = (params: { + state: TState; + first: TFirstOperation; + second: TSecondOperation; +}) => Result<{ + firstPrime: TFirstOperation | undefined; + secondPrime: TSecondOperation | undefined; +}, TError>; +type Diff = (params: { + prevState: TState; + nextState: TState; +}) => TOperation | undefined; +export declare const clientTransform: ({ state, first, second, innerTransform, innerDiff, }: { + state: StringKeyRecord; + first?: RecordUpOperation; + second?: RecordUpOperation; + innerTransform: InnerClientTransform; + innerDiff: Diff; +}) => Result<{ + firstPrime: RecordUpOperation | undefined; + secondPrime: RecordUpOperation | undefined; +}, string | TCustomError>; +export declare const diff: ({ prevState, nextState, innerDiff, }: { + prevState: StringKeyRecord; + nextState: StringKeyRecord; + innerDiff: (params: { + key: string; + prevState: TState; + nextState: TState; + }) => TOperation | undefined; +}) => Record> | undefined; +export declare const mapRecordUpOperation: ({ source, mapState, mapOperation, }: { + source: Record | undefined>; + mapState: (state: TState1) => TState2; + mapOperation: (operation: TOperation1) => TOperation2; +}) => Record>; +export declare const mapRecordDownOperation: ({ source, mapState, mapOperation, }: { + source: Record | undefined>; + mapState: (state: TState1) => TState2; + mapOperation: (operation: TOperation1) => TOperation2; +}) => Record>; +export declare const mapRecordOperation: ({ source, mapReplace, mapUpdate, }: { + source: Record; + mapReplace: (state: TReplace1) => TReplace2; + mapUpdate: (state: TUpdate1) => TUpdate2; +}) => Record; +export {}; +//# sourceMappingURL=recordOperation.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/recordOperation.d.ts.map b/packages/core/dist/esm/internal/ot/recordOperation.d.ts.map new file mode 100644 index 000000000..0634f3b78 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/recordOperation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"recordOperation.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/recordOperation.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/recordOperationElement.d.ts b/packages/core/dist/esm/internal/ot/recordOperationElement.d.ts new file mode 100644 index 000000000..5f3050271 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/recordOperationElement.d.ts @@ -0,0 +1,214 @@ +import { z } from 'zod'; +export declare const update = "update"; +export declare const replace = "replace"; +export declare const recordDownOperationElementFactory: (state: TState, operation: TOperation) => z.ZodUnion<[z.ZodObject<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + oldValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }>[k_1]; } : never>; +}, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks; + replace: z.ZodObject<{ + oldValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }>[k_1]; } : never>; +}>, any>]: z.objectUtil.addQuestionMarks; + replace: z.ZodObject<{ + oldValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }>[k_1]; } : never>; +}>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + oldValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }>[k_1]; } : never>; +}>]: z.baseObjectInputType<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + oldValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + oldValue: z.ZodOptional; + }>[k_1]; } : never>; +}>[k_1_1]; }>, z.ZodObject<{ + type: z.ZodLiteral<"update">; + update: TOperation; +}, "strip", z.ZodTypeAny, { [k_3 in keyof z.objectUtil.addQuestionMarks; + update: TOperation; +}>, any>]: z.objectUtil.addQuestionMarks; + update: TOperation; +}>, any>[k_3]; }, { [k_1_2 in keyof z.baseObjectInputType<{ + type: z.ZodLiteral<"update">; + update: TOperation; +}>]: z.baseObjectInputType<{ + type: z.ZodLiteral<"update">; + update: TOperation; +}>[k_1_2]; }>]>; +export type RecordDownOperationElement = { + type: typeof replace; + replace: { + oldValue?: TState; + }; +} | { + type: typeof update; + update: TOperation; +}; +export declare const recordUpOperationElementFactory: (state: TState, operation: TOperation) => z.ZodUnion<[z.ZodObject<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + newValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + newValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + newValue: z.ZodOptional; + }>[k_1]; } : never>; +}, "strip", z.ZodTypeAny, { [k_2 in keyof z.objectUtil.addQuestionMarks; + replace: z.ZodObject<{ + newValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + newValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + newValue: z.ZodOptional; + }>[k_1]; } : never>; +}>, any>]: z.objectUtil.addQuestionMarks; + replace: z.ZodObject<{ + newValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + newValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + newValue: z.ZodOptional; + }>[k_1]; } : never>; +}>, any>[k_2]; }, { [k_1_1 in keyof z.baseObjectInputType<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + newValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + newValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + newValue: z.ZodOptional; + }>[k_1]; } : never>; +}>]: z.baseObjectInputType<{ + type: z.ZodLiteral<"replace">; + replace: z.ZodObject<{ + newValue: z.ZodOptional; + }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; + }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks; + }>, any>[k]; } : never, z.baseObjectInputType<{ + newValue: z.ZodOptional; + }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ + newValue: z.ZodOptional; + }>[k_1]; } : never>; +}>[k_1_1]; }>, z.ZodObject<{ + type: z.ZodLiteral<"update">; + update: TOperation; +}, "strip", z.ZodTypeAny, { [k_3 in keyof z.objectUtil.addQuestionMarks; + update: TOperation; +}>, any>]: z.objectUtil.addQuestionMarks; + update: TOperation; +}>, any>[k_3]; }, { [k_1_2 in keyof z.baseObjectInputType<{ + type: z.ZodLiteral<"update">; + update: TOperation; +}>]: z.baseObjectInputType<{ + type: z.ZodLiteral<"update">; + update: TOperation; +}>[k_1_2]; }>]>; +export type RecordUpOperationElement = { + type: typeof replace; + replace: { + newValue?: TState; + }; +} | { + type: typeof update; + update: TOperation; +}; +export type RecordTwoWayOperationElement = { + type: typeof replace; + replace: { + oldValue?: TState; + newValue?: TState; + }; +} | { + type: typeof update; + update: TOperation; +}; +/** + * @deprecated Consider using map(DualKey)?Record(Up|Down)?Operation + */ +export declare const mapRecordOperationElement: ({ source, mapOperation, mapReplace, }: { + source: { + type: typeof replace; + replace: TReplace1; + } | { + type: typeof update; + update: TUpdate1; + }; + mapReplace: (replace: TReplace1) => TReplace2; + mapOperation: (operation: TUpdate1) => TUpdate2; +}) => { + type: typeof replace; + replace: TReplace2; +} | { + type: typeof update; + update: TUpdate2; +}; +//# sourceMappingURL=recordOperationElement.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/recordOperationElement.d.ts.map b/packages/core/dist/esm/internal/ot/recordOperationElement.d.ts.map new file mode 100644 index 000000000..1a17b0582 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/recordOperationElement.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"recordOperationElement.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/recordOperationElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,eAAO,MAAM,iCAAiC,GAC1C,MAAM,SAAS,CAAC,CAAC,UAAU,EAC3B,UAAU,SAAS,CAAC,CAAC,UAAU,SAExB,MAAM,aACF,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAenB,CAAC;AAEP,MAAM,MAAM,0BAA0B,CAAC,MAAM,EAAE,UAAU,IACnD;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;IACrB,OAAO,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;CACtB,CAAC;AAER,eAAO,MAAM,+BAA+B,GACxC,MAAM,SAAS,CAAC,CAAC,UAAU,EAC3B,UAAU,SAAS,CAAC,CAAC,UAAU,SAExB,MAAM,aACF,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAenB,CAAC;AAEP,MAAM,MAAM,wBAAwB,CAAC,MAAM,EAAE,UAAU,IACjD;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;IACrB,OAAO,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;CACtB,CAAC;AAER,MAAM,MAAM,4BAA4B,CAAC,MAAM,EAAE,UAAU,IACrD;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;IACrB,OAAO,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;CACtB,CAAC;AAER;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,yCAI/E;IACC,MAAM,EACA;QACI,IAAI,EAAE,OAAO,OAAO,CAAC;QACrB,OAAO,EAAE,SAAS,CAAC;KACtB,GACD;QACI,IAAI,EAAE,OAAO,MAAM,CAAC;QACpB,MAAM,EAAE,QAAQ,CAAC;KACpB,CAAC;IACR,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC;IAC9C,YAAY,EAAE,CAAC,SAAS,EAAE,QAAQ,KAAK,QAAQ,CAAC;CACnD,KACK;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;CACtB,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,CAAC;CAY1B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/requestedBy.d.ts b/packages/core/dist/esm/internal/ot/requestedBy.d.ts new file mode 100644 index 000000000..687e45c16 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/requestedBy.d.ts @@ -0,0 +1,65 @@ +import * as Room from './flocon/room/types'; +import { State } from './generator/types'; +/** 全てのStateに完全にアクセスできる。*/ +export declare const admin = "admin"; +/** userUidに基づき、一部のStateへのアクセスを制限する。*/ +export declare const client = "client"; +/** アクセス制限のあるStateへのアクセスを全て制限する。*/ +export declare const restrict = "restrict"; +export type RequestedBy = { + type: typeof admin; +} | { + type: typeof client; + userUid: string; +} | { + type: typeof restrict; +}; +export declare const anyValue: { + readonly type: "anyValue"; +}; +export declare const none: { + readonly type: "none"; +}; +export declare const isAuthorized: ({ requestedBy, participantId, }: { + requestedBy: RequestedBy; + participantId: string | typeof anyValue | typeof none; +}) => boolean; +/** @deprecated Use `isAuthorized` instead. */ +export declare const isOwner: ({ requestedBy, ownerParticipantId, }: { + requestedBy: RequestedBy; + ownerParticipantId: string | typeof anyValue | typeof none; +}) => boolean; +export declare const isBoardOwner: ({ boardId, requestedBy, currentRoomState, }: { + boardId: string; + requestedBy: RequestedBy; + currentRoomState: State; +}) => boolean; +export declare const isBoardVisible: ({ boardId, requestedBy, currentRoomState, }: { + boardId: string; + requestedBy: RequestedBy; + currentRoomState: State; +}) => boolean; +export declare const characterNotFound = "characterNotFound"; +export declare const isCharacterOwner: ({ requestedBy, characterId, currentRoomState, }: { + requestedBy: RequestedBy; + characterId: string | typeof anyValue | typeof none; + currentRoomState: State; +}) => boolean | typeof characterNotFound; +export declare const canChangeCharacterValue: (args: Parameters[0]) => boolean; +type CurrentOwnerParticipant = string | undefined | { + ownerParticipantId: string | undefined; +}; +export declare const canChangeOwnerParticipantId: ({ requestedBy, currentOwnerParticipant, }: { + requestedBy: RequestedBy; + currentOwnerParticipant: CurrentOwnerParticipant; +}) => boolean; +type CurrentOwnerCharacter = string | undefined | { + ownerCharacterId: string | undefined; +}; +export declare const canChangeOwnerCharacterId: ({ requestedBy, currentOwnerCharacter, currentRoomState, }: { + requestedBy: RequestedBy; + currentOwnerCharacter: CurrentOwnerCharacter; + currentRoomState: State; +}) => boolean; +export {}; +//# sourceMappingURL=requestedBy.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/requestedBy.d.ts.map b/packages/core/dist/esm/internal/ot/requestedBy.d.ts.map new file mode 100644 index 000000000..eb3216340 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/requestedBy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"requestedBy.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/requestedBy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,0BAA0B;AAC1B,eAAO,MAAM,KAAK,UAAU,CAAC;AAE7B,sCAAsC;AACtC,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,kCAAkC;AAClC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,MAAM,MAAM,WAAW,GACjB;IACI,IAAI,EAAE,OAAO,KAAK,CAAC;CACtB,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB,GACD;IACI,IAAI,EAAE,OAAO,QAAQ,CAAC;CACzB,CAAC;AAER,eAAO,MAAM,QAAQ;;CAAgC,CAAC;AACtD,eAAO,MAAM,IAAI;;CAA4B,CAAC;AAE9C,eAAO,MAAM,YAAY,oCAGtB;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,OAAO,QAAQ,GAAG,OAAO,IAAI,CAAC;CACzD,KAAG,OAWH,CAAC;AAEF,8CAA8C;AAE9C,eAAO,MAAM,OAAO,yCAGjB;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB,EAAE,MAAM,GAAG,OAAO,QAAQ,GAAG,OAAO,IAAI,CAAC;CAC9D,KAAG,OAEH,CAAC;AAEF,eAAO,MAAM,YAAY,gDAItB;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;CACjD,KAAG,OAkBH,CAAC;AAEF,eAAO,MAAM,cAAc,gDAIxB;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;CACjD,KAAG,OAKH,CAAC;AAEF,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,eAAO,MAAM,gBAAgB,oDAI1B;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,OAAO,QAAQ,GAAG,OAAO,IAAI,CAAC;IACpD,gBAAgB,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;CACjD,KAAG,OAAO,GAAG,OAAO,iBAqBpB,CAAC;AAEF,eAAO,MAAM,uBAAuB,SAAU,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAG,OAEtF,CAAC;AAEF,KAAK,uBAAuB,GAEtB,MAAM,GACN,SAAS,GAET;IACI,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C,CAAC;AAER,eAAO,MAAM,2BAA2B,8CAGrC;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,uBAAuB,EAAE,uBAAuB,CAAC;CACpD,KAAG,OAWH,CAAC;AAEF,KAAK,qBAAqB,GAEpB,MAAM,GACN,SAAS,GAET;IACI,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC,CAAC;AAER,eAAO,MAAM,yBAAyB,8DAInC;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,gBAAgB,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;CACjD,KAAG,OAeH,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/shape.d.ts b/packages/core/dist/esm/internal/ot/shape.d.ts new file mode 100644 index 000000000..516df9626 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/shape.d.ts @@ -0,0 +1,13 @@ +import { z } from 'zod'; +export declare const path = "path"; +export declare const shape: z.ZodObject<{ + type: z.ZodLiteral<"path">; + data: z.ZodString; +}, "strip", z.ZodTypeAny, { + type: "path"; + data: string; +}, { + type: "path"; + data: string; +}>; +//# sourceMappingURL=shape.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/shape.d.ts.map b/packages/core/dist/esm/internal/ot/shape.d.ts.map new file mode 100644 index 000000000..048f7a752 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/shape.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,IAAI,SAAS,CAAC;AAS3B,eAAO,MAAM,KAAK;;;;;;;;;EAAQ,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/textOperation.d.ts b/packages/core/dist/esm/internal/ot/textOperation.d.ts new file mode 100644 index 000000000..7360615a2 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/textOperation.d.ts @@ -0,0 +1,130 @@ +import { ComposeAndTransformError, PositiveInt } from '@kizahasi/ot-core'; +import { NonEmptyString } from '@kizahasi/ot-string'; +import { Result } from '@kizahasi/result'; +import { z } from 'zod'; +declare const r = "r"; +declare const i = "i"; +declare const d = "d"; +export declare const downOperation: z.ZodArray; + r: z.ZodNumber; +}, "strip", z.ZodTypeAny, { + t: "r"; + r: number; +}, { + t: "r"; + r: number; +}>, z.ZodObject<{ + t: z.ZodLiteral<"i">; + i: z.ZodNumber; +}, "strip", z.ZodTypeAny, { + t: "i"; + i: number; +}, { + t: "i"; + i: number; +}>, z.ZodObject<{ + t: z.ZodLiteral<"d">; + d: z.ZodString; +}, "strip", z.ZodTypeAny, { + t: "d"; + d: string; +}, { + t: "d"; + d: string; +}>]>, "many">; +export type DownOperation = z.TypeOf; +export declare const upOperation: z.ZodArray; + r: z.ZodNumber; +}, "strip", z.ZodTypeAny, { + t: "r"; + r: number; +}, { + t: "r"; + r: number; +}>, z.ZodObject<{ + t: z.ZodLiteral<"i">; + i: z.ZodString; +}, "strip", z.ZodTypeAny, { + t: "i"; + i: string; +}, { + t: "i"; + i: string; +}>, z.ZodObject<{ + t: z.ZodLiteral<"d">; + d: z.ZodNumber; +}, "strip", z.ZodTypeAny, { + t: "d"; + d: number; +}, { + t: "d"; + d: number; +}>]>, "many">; +export type UpOperation = z.TypeOf; +export type TwoWayOperation = ({ + t: typeof r; + r: number; +} | { + t: typeof i; + i: string; +} | { + t: typeof d; + d: string; +})[]; +export declare const apply: (state: string, action: UpOperation | TwoWayOperation) => Result>; +export declare const applyBack: (state: string, action: DownOperation) => Result>; +export declare const composeUpOperation: (first: UpOperation | undefined, second: UpOperation | undefined) => Result>; +export declare const composeDownOperation: (first: DownOperation | undefined, second: DownOperation | undefined) => Result>; +export declare const restore: ({ nextState, downOperation, }: { + nextState: string; + downOperation: DownOperation | undefined; +}) => import("@kizahasi/result").Error> | import("@kizahasi/result").Ok<{ + prevState: string; + twoWayOperation: undefined; +}> | import("@kizahasi/result").Ok<{ + prevState: string; + twoWayOperation: import("@kizahasi/ot-string").TwoWayOperationUnit[]; +}>; +export declare const serverTransform: ({ first, second, prevState, }: { + first?: TwoWayOperation; + second?: UpOperation; + prevState: string; +}) => import("@kizahasi/result").Error> | import("@kizahasi/result").Error> | import("@kizahasi/result").Ok; +export declare const clientTransform: ({ first, second, }: { + first?: UpOperation; + second?: UpOperation; +}) => import("@kizahasi/result").Error> | import("@kizahasi/result").Ok<{ + firstPrime: undefined; + secondPrime: undefined; +}> | import("@kizahasi/result").Ok<{ + firstPrime: undefined; + secondPrime: import("@kizahasi/ot-string").UpOperationUnit[]; +}> | import("@kizahasi/result").Ok<{ + firstPrime: import("@kizahasi/ot-string").UpOperationUnit[]; + secondPrime: undefined; +}> | import("@kizahasi/result").Ok<{ + firstPrime: import("@kizahasi/ot-string").UpOperationUnit[]; + secondPrime: import("@kizahasi/ot-string").UpOperationUnit[]; +}>; +export declare const diff: ({ prev, next, }: { + prev: string; + next: string; +}) => TwoWayOperation | undefined; +export declare const toUpOperation: (source: TwoWayOperation) => UpOperation; +export declare const toDownOperation: (source: TwoWayOperation) => DownOperation; +export declare const toPrivateClientOperation: ({ oldValue, newValue, diff, isAuthorized, }: { + oldValue: { + isValuePrivate: boolean; + value: string; + }; + newValue: { + isValuePrivate: boolean; + value: string; + }; + diff: TwoWayOperation | undefined; + isAuthorized: boolean; +}) => UpOperation | undefined; +export {}; +//# sourceMappingURL=textOperation.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/textOperation.d.ts.map b/packages/core/dist/esm/internal/ot/textOperation.d.ts.map new file mode 100644 index 000000000..6ee5d4b4a --- /dev/null +++ b/packages/core/dist/esm/internal/ot/textOperation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"textOperation.d.ts","sourceRoot":"","sources":["../../../../src/internal/ot/textOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACH,cAAc,EAkBjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,CAAC,MAAM,CAAC;AACd,QAAA,MAAM,CAAC,MAAM,CAAC;AACd,QAAA,MAAM,CAAC,MAAM,CAAC;AAiBd,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;aAA6B,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAiB3D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;aAA2B,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,CACxB;IACI,CAAC,EAAE,OAAO,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;CACb,GACD;IACI,CAAC,EAAE,OAAO,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;CACb,GACD;IACI,CAAC,EAAE,OAAO,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;CACb,CACN,EAAE,CAAC;AAEJ,eAAO,MAAM,KAAK,UAAW,MAAM,UAAU,WAAW,GAAG,eAAe,wFASzE,CAAC;AAEF,eAAO,MAAM,SAAS,UAAW,MAAM,UAAU,aAAa,wFAS7D,CAAC;AAEF,eAAO,MAAM,kBAAkB,UACpB,WAAW,GAAG,SAAS,UACtB,WAAW,GAAG,SAAS,KAChC,MAAM,CAAC,WAAW,GAAG,SAAS,EAAE,wBAAwB,CAAC,cAAc,EAAE,WAAW,CAAC,CAiBvF,CAAC;AAEF,eAAO,MAAM,oBAAoB,UACtB,aAAa,GAAG,SAAS,UACxB,aAAa,GAAG,SAAS,KAClC,MAAM,CAAC,aAAa,GAAG,SAAS,EAAE,wBAAwB,CAAC,WAAW,EAAE,cAAc,CAAC,CAiBzF,CAAC;AAEF,eAAO,MAAM,OAAO,kCAGjB;IACC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;CAC5C;;;;;;EAoBA,CAAC;AA4DF,eAAO,MAAM,eAAe,kCAIzB;IACC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB,wSAMA,CAAC;AAEF,eAAO,MAAM,eAAe,uBAGzB;IACC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;EAiCA,CAAC;AAEF,eAAO,MAAM,IAAI,oBAGd;IACC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,KAAG,eAAe,GAAG,SAUrB,CAAC;AAoBF,eAAO,MAAM,aAAa,WAAY,eAAe,KAAG,WAOvD,CAAC;AAEF,eAAO,MAAM,eAAe,WAAY,eAAe,KAAG,aAOzD,CAAC;AAIF,eAAO,MAAM,wBAAwB,gDAKlC;IACC,QAAQ,EAAE;QACN,cAAc,EAAE,OAAO,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE;QACN,cAAc,EAAE,OAAO,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;IAClC,YAAY,EAAE,OAAO,CAAC;CACzB,KAAG,WAAW,GAAG,SAcjB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/util/array/arrayDiff.d.ts b/packages/core/dist/esm/internal/ot/util/array/arrayDiff.d.ts new file mode 100644 index 000000000..ec18985da --- /dev/null +++ b/packages/core/dist/esm/internal/ot/util/array/arrayDiff.d.ts @@ -0,0 +1,12 @@ +import { ReadonlyNonEmptyArray } from '@flocon-trpg/utils'; +export declare const arrayDiff: ({ prev, next, getKey, }: { + prev: readonly T[]; + next: readonly T[]; + /** 要素の等価比較に用いられるキーを生成するための関数。 */ + getKey: (x: T) => TKey; +}) => { + value: import("@kizahasi/ot-core").Operation, ReadonlyNonEmptyArray>; + iterate: () => IterableIterator, ReadonlyNonEmptyArray>>; + toUnits: () => IterableIterator, ReadonlyNonEmptyArray>>; +}; +//# sourceMappingURL=arrayDiff.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/util/array/arrayDiff.d.ts.map b/packages/core/dist/esm/internal/ot/util/array/arrayDiff.d.ts.map new file mode 100644 index 000000000..59d76ce45 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/util/array/arrayDiff.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"arrayDiff.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/util/array/arrayDiff.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EAKxB,MAAM,oBAAoB,CAAC;AA4N5B,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,IAAI,2BAI9B;IACC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;IACnB,iCAAiC;IACjC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;CAC1B;;;;CA8CA,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/util/array/arrayTransform.d.ts b/packages/core/dist/esm/internal/ot/util/array/arrayTransform.d.ts new file mode 100644 index 000000000..140c0c626 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/util/array/arrayTransform.d.ts @@ -0,0 +1,9 @@ +import { ReadonlyNonEmptyArray } from '@flocon-trpg/utils'; +export declare const transform: (state: readonly T[], stateAppliedFirst: readonly T[], stateAppliedSecond: readonly T[], getKey: (element: T) => TKey) => import("@kizahasi/result").Error | import("@kizahasi/result").Error, ReadonlyNonEmptyArray<{ + value: T; + $tag: 0 | 1 | 2; +}>>> | import("@kizahasi/result").Ok; +//# sourceMappingURL=arrayTransform.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/util/array/arrayTransform.d.ts.map b/packages/core/dist/esm/internal/ot/util/array/arrayTransform.d.ts.map new file mode 100644 index 000000000..0357bdb3f --- /dev/null +++ b/packages/core/dist/esm/internal/ot/util/array/arrayTransform.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"arrayTransform.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/ot/util/array/arrayTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAkDvE,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,IAAI,SACtB,SAAS,CAAC,EAAE,qBACA,SAAS,CAAC,EAAE,sBACX,SAAS,CAAC,EAAE,UACxB,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI;;UAGC,CAAC,GAAG,CAAC,GAAG,CAAC;;;UAAT,CAAC,GAAG,CAAC,GAAG,CAAC;yCA8GzC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/util/createOperation.d.ts b/packages/core/dist/esm/internal/ot/util/createOperation.d.ts new file mode 100644 index 000000000..ef942da06 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/util/createOperation.d.ts @@ -0,0 +1,18 @@ +import { z } from 'zod'; +export declare const createOperation: (version: TVersion, revision: TRevision, props: TProps) => z.ZodObject; }, { + $v: z.ZodLiteral; + $r: z.ZodLiteral; +}>, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; }, { + $v: z.ZodLiteral; + $r: z.ZodLiteral; +}>>, any> extends infer T ? { [k_1 in keyof T]: z.objectUtil.addQuestionMarks; }, { + $v: z.ZodLiteral; + $r: z.ZodLiteral; +}>>, any>[k_1]; } : never, z.baseObjectInputType; }, { + $v: z.ZodLiteral; + $r: z.ZodLiteral; +}>> extends infer T_1 ? { [k_2 in keyof T_1]: z.baseObjectInputType; }, { + $v: z.ZodLiteral; + $r: z.ZodLiteral; +}>>[k_2]; } : never>; +//# sourceMappingURL=createOperation.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/util/createOperation.d.ts.map b/packages/core/dist/esm/internal/ot/util/createOperation.d.ts.map new file mode 100644 index 000000000..02e1d9560 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/util/createOperation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createOperation.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/util/createOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,GACxB,QAAQ,SAAS,MAAM,GAAG,MAAM,EAChC,SAAS,SAAS,MAAM,GAAG,MAAM,EACjC,MAAM,SAAS,CAAC,CAAC,WAAW,WAEnB,QAAQ,YACP,SAAS,SACZ,MAAM;;;;;;;;;;;;;;;oBAUR,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/util/isValidKey.d.ts b/packages/core/dist/esm/internal/ot/util/isValidKey.d.ts new file mode 100644 index 000000000..0cc84a6be --- /dev/null +++ b/packages/core/dist/esm/internal/ot/util/isValidKey.d.ts @@ -0,0 +1,2 @@ +export declare const isValidKey: (key: string) => boolean; +//# sourceMappingURL=isValidKey.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/util/isValidKey.d.ts.map b/packages/core/dist/esm/internal/ot/util/isValidKey.d.ts.map new file mode 100644 index 000000000..b5b509af8 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/util/isValidKey.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"isValidKey.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/util/isValidKey.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,OAMxC,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/util/replaceOperation.d.ts b/packages/core/dist/esm/internal/ot/util/replaceOperation.d.ts new file mode 100644 index 000000000..dd02c958e --- /dev/null +++ b/packages/core/dist/esm/internal/ot/util/replaceOperation.d.ts @@ -0,0 +1,17 @@ +type ServerTransformParameters = { + first: { + oldValue: T; + newValue: T; + } | undefined; + second: { + newValue: T; + } | undefined; + prevState: T; +}; +type ServerTransformResult = { + oldValue: T; + newValue: T; +} | undefined; +export declare const serverTransform: ({ first, second, prevState, }: ServerTransformParameters) => ServerTransformResult; +export {}; +//# sourceMappingURL=replaceOperation.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/util/replaceOperation.d.ts.map b/packages/core/dist/esm/internal/ot/util/replaceOperation.d.ts.map new file mode 100644 index 000000000..ed9cee462 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/util/replaceOperation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"replaceOperation.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/util/replaceOperation.ts"],"names":[],"mappings":"AAAA,KAAK,yBAAyB,CAAC,CAAC,IAAI;IAChC,KAAK,EAAE;QAAE,QAAQ,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;IAChD,MAAM,EAAE;QAAE,QAAQ,EAAE,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC;CAChB,CAAC;AACF,KAAK,qBAAqB,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,CAAA;CAAE,GAAG,SAAS,CAAC;AAEzE,eAAO,MAAM,eAAe,GAAI,CAAC,iCAI9B,yBAAyB,CAAC,CAAC,CAAC,KAAG,qBAAqB,CAAC,CAAC,CAQxD,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/util/type.d.ts b/packages/core/dist/esm/internal/ot/util/type.d.ts new file mode 100644 index 000000000..d20a85880 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/util/type.d.ts @@ -0,0 +1,50 @@ +import { ApplyError, ComposeAndTransformError, PositiveInt } from '@kizahasi/ot-core'; +import { NonEmptyString } from '@kizahasi/ot-string'; +import { Result } from '@kizahasi/result'; +export type ScalarError = string | ApplyError; +export type UpError = string | ApplyError | ComposeAndTransformError; +export type DownError = string | ApplyError | ComposeAndTransformError; +export type TwoWayError = string | ApplyError | ComposeAndTransformError; +/** + * `state`に対して`operation`を適用します。 + */ +export type Apply = (params: { + state: TState; + operation: TOperation; +}) => Result; +export type Compose = (params: { + first: TOperation; + second: TOperation; +}) => Result; +export type Diff = (params: { + prevState: TState; + nextState: TState; +}) => TOperation | undefined; +export type Restore = (params: { + nextState: TState; + downOperation: TDownOperation; +}) => Result<{ + prevState: TState; + twoWayOperation: TTwoWayOperation | undefined; +}, ScalarError>; +/** `apply(stateBeforeServerOperation, serverOperation) = stateAfterServerOperation` という関係が成り立ちます。 */ +export type ServerTransform = (params: { + stateBeforeServerOperation: TServerState; + stateAfterServerOperation: TServerState; + serverOperation: TTwoWayOperation | undefined; + clientOperation: TUpOperation; +}) => Result; +export type ClientTransform = (params: { + state: TState; + first: TOperation; + second: TOperation; +}) => Result<{ + firstPrime: TOperation | undefined; + secondPrime: TOperation | undefined; +}, UpError>; +export type ToClientOperationParams = { + prevState: TState; + nextState: TState; + diff: TOperation; +}; +//# sourceMappingURL=type.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/ot/util/type.d.ts.map b/packages/core/dist/esm/internal/ot/util/type.d.ts.map new file mode 100644 index 000000000..87a6c12c4 --- /dev/null +++ b/packages/core/dist/esm/internal/ot/util/type.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../../src/internal/ot/util/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAC3E,MAAM,MAAM,OAAO,GACb,MAAM,GACN,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,GACvC,wBAAwB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAC5D,MAAM,MAAM,SAAS,GACf,MAAM,GACN,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,GACvC,wBAAwB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,WAAW,GACjB,MAAM,GACN,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,GACvC,wBAAwB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,CAAC;CACzB,KAAK,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAElC,MAAM,MAAM,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,MAAM,EAAE;IAC9C,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;CACtB,KAAK,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;AAE5C,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB,KAAK,UAAU,GAAG,SAAS,CAAC;AAE7B,MAAM,MAAM,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,gBAAgB,IAAI,CAAC,MAAM,EAAE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,cAAc,CAAC;CACjC,KAAK,MAAM,CACR;IACI,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACjD,EACD,WAAW,CACd,CAAC;AAEF,qGAAqG;AACrG,MAAM,MAAM,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,YAAY,IAAI,CAAC,MAAM,EAAE;IACjF,0BAA0B,EAAE,YAAY,CAAC;IACzC,yBAAyB,EAAE,YAAY,CAAC;IACxC,eAAe,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C,eAAe,EAAE,YAAY,CAAC;CACjC,KAAK,MAAM,CAAC,gBAAgB,GAAG,SAAS,EAAE,WAAW,CAAC,CAAC;AAExD,MAAM,MAAM,eAAe,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;CACtB,KAAK,MAAM,CAAC;IAAE,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IAAC,WAAW,EAAE,UAAU,GAAG,SAAS,CAAA;CAAE,EAAE,OAAO,CAAC,CAAC;AAMnG,MAAM,MAAM,uBAAuB,CAAC,MAAM,EAAE,UAAU,IAAI;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;CACpB,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/publicChannelKey.d.ts b/packages/core/dist/esm/internal/publicChannelKey.d.ts new file mode 100644 index 000000000..a2416791f --- /dev/null +++ b/packages/core/dist/esm/internal/publicChannelKey.d.ts @@ -0,0 +1,15 @@ +import { $free, $system } from './constants'; +import { StrIndex10 } from './indexes'; +export declare namespace PublicChannelKey { + namespace Without$System { + type PublicChannelKey = typeof $free | StrIndex10; + const publicChannelKeys: ReadonlyArray; + const isPublicChannelKey: (source: unknown) => source is PublicChannelKey; + } + namespace With$System { + type PublicChannelKey = typeof $free | typeof $system | StrIndex10; + const publicChannelKeys: ReadonlyArray; + const isPublicChannelKey: (source: unknown) => source is PublicChannelKey; + } +} +//# sourceMappingURL=publicChannelKey.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/publicChannelKey.d.ts.map b/packages/core/dist/esm/internal/publicChannelKey.d.ts.map new file mode 100644 index 000000000..f45719e2f --- /dev/null +++ b/packages/core/dist/esm/internal/publicChannelKey.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"publicChannelKey.d.ts","sourceRoot":"","sources":["../../../src/internal/publicChannelKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAmB,MAAM,WAAW,CAAC;AAExD,yBAAiB,gBAAgB,CAAC;IAC9B,UAAiB,cAAc,CAAC;QAC5B,KAAY,gBAAgB,GAAG,OAAO,KAAK,GAAG,UAAU,CAAC;QAElD,MAAM,iBAAiB,EAAE,aAAa,CAAC,gBAAgB,CAG7D,CAAC;QAEK,MAAM,kBAAkB,WAAY,OAAO,KAAG,MAAM,IAAI,gBAE9D,CAAC;KACL;IAED,UAAiB,WAAW,CAAC;QACzB,KAAY,gBAAgB,GAAG,OAAO,KAAK,GAAG,OAAO,OAAO,GAAG,UAAU,CAAC;QAEnE,MAAM,iBAAiB,EAAE,aAAa,CAAC,gBAAgB,CAI7D,CAAC;QAEK,MAAM,kBAAkB,WAAY,OAAO,KAAG,MAAM,IAAI,gBAE9D,CAAC;KACL;CACJ"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/simpleId.d.ts b/packages/core/dist/esm/internal/simpleId.d.ts new file mode 100644 index 000000000..b46644a33 --- /dev/null +++ b/packages/core/dist/esm/internal/simpleId.d.ts @@ -0,0 +1,2 @@ +export declare const simpleId: () => string; +//# sourceMappingURL=simpleId.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/simpleId.d.ts.map b/packages/core/dist/esm/internal/simpleId.d.ts.map new file mode 100644 index 000000000..b5c02258f --- /dev/null +++ b/packages/core/dist/esm/internal/simpleId.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"simpleId.d.ts","sourceRoot":"","sources":["../../../src/internal/simpleId.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,QAAO,MAS3B,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/toml.d.ts b/packages/core/dist/esm/internal/toml.d.ts new file mode 100644 index 000000000..5e046efee --- /dev/null +++ b/packages/core/dist/esm/internal/toml.d.ts @@ -0,0 +1,8 @@ +import { Result } from '@kizahasi/result'; +import { LocalDate as TomlLocalDate, LocalDateTime as TomlLocalDateTime, LocalTime as TomlLocalTime, OffsetDateTime as TomlOffsetDateTime } from '@ltd/j-toml'; +export declare const parseToml: (toml: string) => import("@kizahasi/result").Error | import("@kizahasi/result").Ok; +export declare const isValidVarToml: (toml: string) => Result; +export declare const getVariableFromVarTomlObject: (tomlObject: unknown, path: ReadonlyArray) => import("@kizahasi/result").Error | import("@kizahasi/result").Ok | null | undefined>; +/** @deprecated We no longer use TOML in chat palettes. */ +export declare const generateChatPalette: (toml: string) => Result; +//# sourceMappingURL=toml.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/toml.d.ts.map b/packages/core/dist/esm/internal/toml.d.ts.map new file mode 100644 index 000000000..a90863d85 --- /dev/null +++ b/packages/core/dist/esm/internal/toml.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toml.d.ts","sourceRoot":"","sources":["../../../src/internal/toml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACH,SAAS,IAAI,aAAa,EAC1B,aAAa,IAAI,iBAAiB,EAClC,SAAS,IAAI,aAAa,EAC1B,cAAc,IAAI,kBAAkB,EAEvC,MAAM,aAAa,CAAC;AAgCrB,eAAO,MAAM,SAAS,SAAU,MAAM,sFAMrC,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,MAAM,KAAG,MAAM,CAAC,IAAI,CAMxD,CAAC;AAmBF,eAAO,MAAM,4BAA4B,eAAgB,OAAO,QAAQ,aAAa,CAAC,MAAM,CAAC,oNAuB5F,CAAC;AAaF,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB,SAAU,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,CAwCjE,CAAC"} \ No newline at end of file diff --git a/packages/core/dist/esm/internal/uploaderPath.d.ts b/packages/core/dist/esm/internal/uploaderPath.d.ts new file mode 100644 index 000000000..8550a47e6 --- /dev/null +++ b/packages/core/dist/esm/internal/uploaderPath.d.ts @@ -0,0 +1,23 @@ +/** ファイルもしくはフォルダのパスを表します。 + * + * stringの場合は、半角スラッシュでパスの区切りを表します。半角スラッシュをエスケープすることはできません。2つ以上続く半角スラッシュは1つとして扱われます。 + * + * 配列の場合は、要素のstringに半角スラッシュが含まれていた場合、それらは区切りとしてみなされず保持されます。`''`の要素は存在しないものとして扱われます。 + */ +export type UploaderPathSource = string | readonly string[]; +type PathResult = { + /** パスを1つの文字列で表します。区切り文字は`/`です。先頭および末尾に`/`は付きません。 `''`の場合はルートフォルダを表します。 */ + string: string; + /** `[]`の場合はルートフォルダを表します。 */ + array: readonly string[]; +}; +export declare const sanitizeFoldername: (input: string) => string; +export declare const sanitizeFilename: (input: string) => string | null; +export declare const trySanitizePath: (path: UploaderPathSource) => PathResult | null; +/** + * + * @returns Sanitizeされていない値を返します。 + */ +export declare const joinPath: (left: UploaderPathSource, ...right: UploaderPathSource[]) => PathResult; +export {}; +//# sourceMappingURL=uploaderPath.d.ts.map \ No newline at end of file diff --git a/packages/core/dist/esm/internal/uploaderPath.d.ts.map b/packages/core/dist/esm/internal/uploaderPath.d.ts.map new file mode 100644 index 000000000..930d0992d --- /dev/null +++ b/packages/core/dist/esm/internal/uploaderPath.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"uploaderPath.d.ts","sourceRoot":"","sources":["../../../src/internal/uploaderPath.ts"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;AAE5D,KAAK,UAAU,GAAG;IACd,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IAEf,4BAA4B;IAC5B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B,CAAC;AAiCF,eAAO,MAAM,kBAAkB,UAAW,MAAM,KAAG,MAIlD,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,MAAM,GAAG,IASzD,CAAC;AAUF,eAAO,MAAM,eAAe,SAAU,kBAAkB,KAAG,UAAU,GAAG,IAqBvE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,SAAU,kBAAkB,YAAY,kBAAkB,EAAE,KAAG,UAOnF,CAAC"} \ No newline at end of file diff --git a/packages/default-pino-transport/dist/cjs/index.d.ts b/packages/default-pino-transport/dist/cjs/index.d.ts new file mode 100644 index 000000000..e1b524511 --- /dev/null +++ b/packages/default-pino-transport/dist/cjs/index.d.ts @@ -0,0 +1,3 @@ +import build from 'pino-abstract-transport'; +export default function (): import("stream").Transform & build.OnUnknown; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/default-pino-transport/dist/cjs/index.d.ts.map b/packages/default-pino-transport/dist/cjs/index.d.ts.map new file mode 100644 index 000000000..e4bbd988b --- /dev/null +++ b/packages/default-pino-transport/dist/cjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,yBAAyB,CAAC;AAkB5C,MAAM,CAAC,OAAO,2DAgDb"} \ No newline at end of file diff --git a/packages/default-pino-transport/dist/cjs/index.js b/packages/default-pino-transport/dist/cjs/index.js new file mode 100644 index 000000000..aeb8f7a75 --- /dev/null +++ b/packages/default-pino-transport/dist/cjs/index.js @@ -0,0 +1,74 @@ +'use strict'; + +var build = require('pino-abstract-transport'); + +function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } + +var build__default = /*#__PURE__*/_interopDefault(build); + +/* eslint-disable no-console */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +// これらの文字列を変更したら、@flocon-trpg/logger-base の文字列も変更すること! +// 理由: @flocon-trpg/default-pino-transport は他から import されるのではく、pino で '@flocon-trpg/default-pino-transport' という文字列を渡すことでのみ参照されるという特殊性がある。そのためか、@flocon-trpg/default-pino-transport から @flocon-trpg/logger-base を import してしまうとビルドの際に警告が出る(実際に動くかどうかは確認していない)。不具合が起こる可能性を減らすため、import せずに @flocon-trpg/logger-base と同様の文字列を書いている。 +const LOG_FORMAT = 'LOG_FORMAT'; +const notice = 'notice'; +let notified = false; +const notifyLogIsSkippedOnce = () => { + if (notified) { + return; + } + console.info(`Because ${LOG_FORMAT} is default or not set, some logs will be skipped. Set ${LOG_FORMAT} as json to output skipped logs. / ${LOG_FORMAT} が default であるかセットされていないため、一部のログの出力はスキップされます。${LOG_FORMAT} を json にすることで、スキップせずに出力されます。`); + notified = true; +}; +function index () { + return build__default.default(source => { + source.on('data', obj => { + let level; + let consoleMethodName; + switch (obj.level) { + case 10: + level = '[TRACE]'; + consoleMethodName = 'debug'; + break; + case 20: + level = '[DEBUG]'; + consoleMethodName = 'debug'; + break; + case 30: + level = '[INFO]'; + consoleMethodName = 'info'; + break; + case 40: + level = '[WARN]'; + consoleMethodName = 'warn'; + break; + case 50: + level = '[ERROR]'; + consoleMethodName = 'error'; + break; + case 60: + level = '[FATAL]'; + consoleMethodName = 'error'; + break; + default: + level = '[UNKNOWN_LEVEL]'; + consoleMethodName = 'log'; + break; + } + if (obj[notice] !== true && obj.level <= 30) { + notifyLogIsSkippedOnce(); + return; + } + const message = `${level} ${obj.msg}`; + if (obj.err === undefined) { + console[consoleMethodName](message); + } + else { + console[consoleMethodName](message, obj.err); + } + }); + }); +} + +module.exports = index; +//# sourceMappingURL=index.js.map diff --git a/packages/default-pino-transport/dist/cjs/index.js.map b/packages/default-pino-transport/dist/cjs/index.js.map new file mode 100644 index 000000000..0db4f0c5a --- /dev/null +++ b/packages/default-pino-transport/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":["build"],"mappings":";;;;;;;;AAAA;AACA;AAGA;AACA;AACA,MAAM,UAAU,GAAG,YAAY;AAC/B,MAAM,MAAM,GAAG,QAAQ;AAEvB,IAAI,QAAQ,GAAG,KAAK;AACpB,MAAM,sBAAsB,GAAG,MAAK;IAChC,IAAI,QAAQ,EAAE;QACV;;AAEJ,IAAA,OAAO,CAAC,IAAI,CACR,CAAA,QAAA,EAAW,UAAU,CAAA,uDAAA,EAA0D,UAAU,CAAA,mCAAA,EAAsC,UAAU,CAAA,6CAAA,EAAgD,UAAU,CAAA,6BAAA,CAA+B,CACrO;IACD,QAAQ,GAAG,IAAI;AACnB,CAAC;AAEa,cAAA,IAAA;AACV,IAAA,OAAOA,sBAAK,CAAC,MAAM,IAAG;AAClB,QAAA,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,IAAG;AACpB,YAAA,IAAI,KAAa;AACjB,YAAA,IAAI,iBAA8D;AAClE,YAAA,QAAQ,GAAG,CAAC,KAAK;AACb,gBAAA,KAAK,EAAE;oBACH,KAAK,GAAG,SAAS;oBACjB,iBAAiB,GAAG,OAAO;oBAC3B;AACJ,gBAAA,KAAK,EAAE;oBACH,KAAK,GAAG,SAAS;oBACjB,iBAAiB,GAAG,OAAO;oBAC3B;AACJ,gBAAA,KAAK,EAAE;oBACH,KAAK,GAAG,QAAQ;oBAChB,iBAAiB,GAAG,MAAM;oBAC1B;AACJ,gBAAA,KAAK,EAAE;oBACH,KAAK,GAAG,QAAQ;oBAChB,iBAAiB,GAAG,MAAM;oBAC1B;AACJ,gBAAA,KAAK,EAAE;oBACH,KAAK,GAAG,SAAS;oBACjB,iBAAiB,GAAG,OAAO;oBAC3B;AACJ,gBAAA,KAAK,EAAE;oBACH,KAAK,GAAG,SAAS;oBACjB,iBAAiB,GAAG,OAAO;oBAC3B;AACJ,gBAAA;oBACI,KAAK,GAAG,iBAAiB;oBACzB,iBAAiB,GAAG,KAAK;oBACzB;;AAGR,YAAA,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE;AACzC,gBAAA,sBAAsB,EAAE;gBACxB;;YAEJ,MAAM,OAAO,GAAG,CAAG,EAAA,KAAK,IAAI,GAAG,CAAC,GAAG,CAAA,CAAE;AACrC,YAAA,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE;AACvB,gBAAA,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;;iBAChC;gBACH,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC;;AAEpD,SAAC,CAAC;AACN,KAAC,CAAC;AACN;;;;"} \ No newline at end of file diff --git a/packages/default-pino-transport/dist/esm/index.d.ts b/packages/default-pino-transport/dist/esm/index.d.ts new file mode 100644 index 000000000..e1b524511 --- /dev/null +++ b/packages/default-pino-transport/dist/esm/index.d.ts @@ -0,0 +1,3 @@ +import build from 'pino-abstract-transport'; +export default function (): import("stream").Transform & build.OnUnknown; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/default-pino-transport/dist/esm/index.d.ts.map b/packages/default-pino-transport/dist/esm/index.d.ts.map new file mode 100644 index 000000000..e4bbd988b --- /dev/null +++ b/packages/default-pino-transport/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,yBAAyB,CAAC;AAkB5C,MAAM,CAAC,OAAO,2DAgDb"} \ No newline at end of file diff --git a/packages/default-pino-transport/dist/esm/index.js b/packages/default-pino-transport/dist/esm/index.js new file mode 100644 index 000000000..0050912ee --- /dev/null +++ b/packages/default-pino-transport/dist/esm/index.js @@ -0,0 +1,68 @@ +import build from 'pino-abstract-transport'; + +/* eslint-disable no-console */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +// これらの文字列を変更したら、@flocon-trpg/logger-base の文字列も変更すること! +// 理由: @flocon-trpg/default-pino-transport は他から import されるのではく、pino で '@flocon-trpg/default-pino-transport' という文字列を渡すことでのみ参照されるという特殊性がある。そのためか、@flocon-trpg/default-pino-transport から @flocon-trpg/logger-base を import してしまうとビルドの際に警告が出る(実際に動くかどうかは確認していない)。不具合が起こる可能性を減らすため、import せずに @flocon-trpg/logger-base と同様の文字列を書いている。 +const LOG_FORMAT = 'LOG_FORMAT'; +const notice = 'notice'; +let notified = false; +const notifyLogIsSkippedOnce = () => { + if (notified) { + return; + } + console.info(`Because ${LOG_FORMAT} is default or not set, some logs will be skipped. Set ${LOG_FORMAT} as json to output skipped logs. / ${LOG_FORMAT} が default であるかセットされていないため、一部のログの出力はスキップされます。${LOG_FORMAT} を json にすることで、スキップせずに出力されます。`); + notified = true; +}; +function index () { + return build(source => { + source.on('data', obj => { + let level; + let consoleMethodName; + switch (obj.level) { + case 10: + level = '[TRACE]'; + consoleMethodName = 'debug'; + break; + case 20: + level = '[DEBUG]'; + consoleMethodName = 'debug'; + break; + case 30: + level = '[INFO]'; + consoleMethodName = 'info'; + break; + case 40: + level = '[WARN]'; + consoleMethodName = 'warn'; + break; + case 50: + level = '[ERROR]'; + consoleMethodName = 'error'; + break; + case 60: + level = '[FATAL]'; + consoleMethodName = 'error'; + break; + default: + level = '[UNKNOWN_LEVEL]'; + consoleMethodName = 'log'; + break; + } + if (obj[notice] !== true && obj.level <= 30) { + notifyLogIsSkippedOnce(); + return; + } + const message = `${level} ${obj.msg}`; + if (obj.err === undefined) { + console[consoleMethodName](message); + } + else { + console[consoleMethodName](message, obj.err); + } + }); + }); +} + +export { index as default }; +//# sourceMappingURL=index.js.map diff --git a/packages/default-pino-transport/dist/esm/index.js.map b/packages/default-pino-transport/dist/esm/index.js.map new file mode 100644 index 000000000..823aa613b --- /dev/null +++ b/packages/default-pino-transport/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AACA;AAGA;AACA;AACA,MAAM,UAAU,GAAG,YAAY;AAC/B,MAAM,MAAM,GAAG,QAAQ;AAEvB,IAAI,QAAQ,GAAG,KAAK;AACpB,MAAM,sBAAsB,GAAG,MAAK;IAChC,IAAI,QAAQ,EAAE;QACV;;AAEJ,IAAA,OAAO,CAAC,IAAI,CACR,CAAA,QAAA,EAAW,UAAU,CAAA,uDAAA,EAA0D,UAAU,CAAA,mCAAA,EAAsC,UAAU,CAAA,6CAAA,EAAgD,UAAU,CAAA,6BAAA,CAA+B,CACrO;IACD,QAAQ,GAAG,IAAI;AACnB,CAAC;AAEa,cAAA,IAAA;AACV,IAAA,OAAO,KAAK,CAAC,MAAM,IAAG;AAClB,QAAA,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,IAAG;AACpB,YAAA,IAAI,KAAa;AACjB,YAAA,IAAI,iBAA8D;AAClE,YAAA,QAAQ,GAAG,CAAC,KAAK;AACb,gBAAA,KAAK,EAAE;oBACH,KAAK,GAAG,SAAS;oBACjB,iBAAiB,GAAG,OAAO;oBAC3B;AACJ,gBAAA,KAAK,EAAE;oBACH,KAAK,GAAG,SAAS;oBACjB,iBAAiB,GAAG,OAAO;oBAC3B;AACJ,gBAAA,KAAK,EAAE;oBACH,KAAK,GAAG,QAAQ;oBAChB,iBAAiB,GAAG,MAAM;oBAC1B;AACJ,gBAAA,KAAK,EAAE;oBACH,KAAK,GAAG,QAAQ;oBAChB,iBAAiB,GAAG,MAAM;oBAC1B;AACJ,gBAAA,KAAK,EAAE;oBACH,KAAK,GAAG,SAAS;oBACjB,iBAAiB,GAAG,OAAO;oBAC3B;AACJ,gBAAA,KAAK,EAAE;oBACH,KAAK,GAAG,SAAS;oBACjB,iBAAiB,GAAG,OAAO;oBAC3B;AACJ,gBAAA;oBACI,KAAK,GAAG,iBAAiB;oBACzB,iBAAiB,GAAG,KAAK;oBACzB;;AAGR,YAAA,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE;AACzC,gBAAA,sBAAsB,EAAE;gBACxB;;YAEJ,MAAM,OAAO,GAAG,CAAG,EAAA,KAAK,IAAI,GAAG,CAAC,GAAG,CAAA,CAAE;AACrC,YAAA,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE;AACvB,gBAAA,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;;iBAChC;gBACH,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC;;AAEpD,SAAC,CAAC;AACN,KAAC,CAAC;AACN;;;;"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/ScriptError.d.ts b/packages/flocon-script/dist/cjs/ScriptError.d.ts new file mode 100644 index 000000000..ea86b3c99 --- /dev/null +++ b/packages/flocon-script/dist/cjs/ScriptError.d.ts @@ -0,0 +1,8 @@ +import { Range } from './range'; +export declare class ScriptError extends Error { + readonly range?: Range | undefined; + constructor(message?: string, range?: Range | undefined); + static notConstructorError(range?: Range): ScriptError; + static requiresNewError(range?: Range): ScriptError; +} +//# sourceMappingURL=ScriptError.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/ScriptError.d.ts.map b/packages/flocon-script/dist/cjs/ScriptError.d.ts.map new file mode 100644 index 000000000..6895267b7 --- /dev/null +++ b/packages/flocon-script/dist/cjs/ScriptError.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ScriptError.d.ts","sourceRoot":"","sources":["../../src/ScriptError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,qBAAa,WAAY,SAAQ,KAAK;aAGd,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,CAAC,EAAE,MAAM,EACA,KAAK,CAAC,EAAE,KAAK,YAAA;WAMnB,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK;WAIjC,gBAAgB,CAAC,KAAK,CAAC,EAAE,KAAK;CAG/C"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/builtIn/Array.d.ts b/packages/flocon-script/dist/cjs/builtIn/Array.d.ts new file mode 100644 index 000000000..c8f74bdf7 --- /dev/null +++ b/packages/flocon-script/dist/cjs/builtIn/Array.d.ts @@ -0,0 +1,12 @@ +import { Option } from '@kizahasi/option'; +import { FFunction } from '../scriptValue/FFunction'; +import { FValue } from '../scriptValue/FValue'; +import { GetCoreParams } from '../scriptValue/types'; +declare class FArrayClass extends FFunction { + constructor(); + private static prepareStaticMethod; + onGetting({ key, astInfo }: GetCoreParams): Option; +} +export declare const arrayClass: FArrayClass; +export {}; +//# sourceMappingURL=Array.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/builtIn/Array.d.ts.map b/packages/flocon-script/dist/cjs/builtIn/Array.d.ts.map new file mode 100644 index 000000000..bddadb2de --- /dev/null +++ b/packages/flocon-script/dist/cjs/builtIn/Array.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../../src/builtIn/Array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAW,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE9D,cAAM,WAAY,SAAQ,SAAS;;IAO/B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAMlB,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;CAe7E;AAED,eAAO,MAAM,UAAU,aAAoB,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/builtIn/Map.d.ts b/packages/flocon-script/dist/cjs/builtIn/Map.d.ts new file mode 100644 index 000000000..1abd9a602 --- /dev/null +++ b/packages/flocon-script/dist/cjs/builtIn/Map.d.ts @@ -0,0 +1,7 @@ +import { FFunction } from '../scriptValue/FFunction'; +declare class FMapClass extends FFunction { + constructor(); +} +export declare const mapClass: FMapClass; +export {}; +//# sourceMappingURL=Map.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/builtIn/Map.d.ts.map b/packages/flocon-script/dist/cjs/builtIn/Map.d.ts.map new file mode 100644 index 000000000..d6a6a6883 --- /dev/null +++ b/packages/flocon-script/dist/cjs/builtIn/Map.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Map.d.ts","sourceRoot":"","sources":["../../../src/builtIn/Map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,cAAM,SAAU,SAAQ,SAAS;;CAShC;AAED,eAAO,MAAM,QAAQ,WAAkB,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/builtIn/Symbol.d.ts b/packages/flocon-script/dist/cjs/builtIn/Symbol.d.ts new file mode 100644 index 000000000..cbf5de9fd --- /dev/null +++ b/packages/flocon-script/dist/cjs/builtIn/Symbol.d.ts @@ -0,0 +1,11 @@ +import { Option } from '@kizahasi/option'; +import { FFunction } from '../scriptValue/FFunction'; +import { FValue } from '../scriptValue/FValue'; +import { GetCoreParams } from '../scriptValue/types'; +declare class FSymbolClass extends FFunction { + constructor(); + onGetting({ key }: GetCoreParams): Option; +} +export declare const symbolClass: FSymbolClass; +export {}; +//# sourceMappingURL=Symbol.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/builtIn/Symbol.d.ts.map b/packages/flocon-script/dist/cjs/builtIn/Symbol.d.ts.map new file mode 100644 index 000000000..1e4c08369 --- /dev/null +++ b/packages/flocon-script/dist/cjs/builtIn/Symbol.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Symbol.d.ts","sourceRoot":"","sources":["../../../src/builtIn/Symbol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,cAAM,YAAa,SAAQ,SAAS;;IAWhB,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;CASpE;AAED,eAAO,MAAM,WAAW,cAAqB,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/builtIn/console.d.ts b/packages/flocon-script/dist/cjs/builtIn/console.d.ts new file mode 100644 index 000000000..eceeb5628 --- /dev/null +++ b/packages/flocon-script/dist/cjs/builtIn/console.d.ts @@ -0,0 +1,13 @@ +import { Option } from '@kizahasi/option'; +import { FFunction } from '../scriptValue/FFunction'; +import { FValue } from '../scriptValue/FValue'; +import { GetCoreParams } from '../scriptValue/types'; +declare class FConsoleClass extends FFunction { + private readonly header; + constructor(header: string); + private static prepareStaticMethod; + onGetting({ key, astInfo }: GetCoreParams): Option; +} +export declare const createConsoleClass: (header: string) => FConsoleClass; +export {}; +//# sourceMappingURL=console.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/builtIn/console.d.ts.map b/packages/flocon-script/dist/cjs/builtIn/console.d.ts.map new file mode 100644 index 000000000..4e9db4c98 --- /dev/null +++ b/packages/flocon-script/dist/cjs/builtIn/console.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/builtIn/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAW,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG9D,cAAM,aAAc,SAAQ,SAAS;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAMlD,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAMlB,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;CA8C7E;AAED,eAAO,MAAM,kBAAkB,WAAY,MAAM,kBAA8B,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/context.d.ts b/packages/flocon-script/dist/cjs/context.d.ts new file mode 100644 index 000000000..a97a6c7a9 --- /dev/null +++ b/packages/flocon-script/dist/cjs/context.d.ts @@ -0,0 +1,14 @@ +import { Range } from './range'; +import { FRecord } from './scriptValue/FRecord'; +import { FValue } from './scriptValue/FValue'; +export declare class Context { + globalThis: FRecord; + private varTables; + constructor(globalThis: FRecord); + get(name: string, range: Range | undefined): FValue; + assign(name: string, newValue: FValue, range: Range | undefined): void; + declare(name: string, value: FValue, type: 'let' | 'const'): void; + scopeIn(): void; + scopeOut(): void; +} +//# sourceMappingURL=context.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/context.d.ts.map b/packages/flocon-script/dist/cjs/context.d.ts.map new file mode 100644 index 000000000..741aff499 --- /dev/null +++ b/packages/flocon-script/dist/cjs/context.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,qBAAa,OAAO;IAYU,UAAU,EAAE,OAAO;IAF7C,OAAO,CAAC,SAAS,CAAgE;gBAEvD,UAAU,EAAE,OAAO;IAEtC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM;IAkBnD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI;IAmBtE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI;IAejE,OAAO,IAAI,IAAI;IAIf,QAAQ,IAAI,IAAI;CAM1B"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/fExpression.d.ts b/packages/flocon-script/dist/cjs/fExpression.d.ts new file mode 100644 index 000000000..87b79ff08 --- /dev/null +++ b/packages/flocon-script/dist/cjs/fExpression.d.ts @@ -0,0 +1,94 @@ +import { ArrayExpression, ArrowFunctionExpression, AssignmentExpression, AssignmentOperator, BaseCallExpression, BinaryExpression, BinaryOperator, ChainExpression, ConditionalExpression, Expression, Identifier, Literal, LogicalExpression, MemberExpression, NewExpression, ObjectExpression, Property, SimpleCallExpression, ThisExpression, UnaryExpression, UnaryOperator, UpdateExpression } from 'estree'; +import { FPattern } from './fPattern'; +import { FBlockStatement } from './fStatement'; +import { Range } from './range'; +type FArrayExpressionElement = { + isSpread: false; + expression: FExpression; +} | { + isSpread: true; + argument: FExpression; +}; +export type FArrayExpression = Omit & { + elements: Array; +}; +export type FArrowFunctionExpression = Omit & { + body: FBlockStatement | FExpression; + params: Array; +}; +declare function fAssignmentOperator(operator: AssignmentOperator): AssignmentOperator; +export type FAssignmentOperator = ReturnType; +export type FAssignmentExpression = Omit & { + operator: FAssignmentOperator; + left: FIdentifier | FMemberExpression; + right: FExpression; +}; +export type FBaseCallExpression = Omit & { + callee: FExpression; + arguments: Array; +}; +declare function fBinaryOperator(operator: BinaryOperator, range: Range | undefined): "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "**" | "|" | "^" | "&"; +export type FBinaryOperator = ReturnType; +export type FBinaryExpression = Omit & { + operator: FBinaryOperator; + left: FExpression; + right: FExpression; +}; +export type FChainExpression = Omit & { + expression: FSimpleCallExpression | FMemberExpression; +}; +export type FConditionalExpression = Omit & { + test: FExpression; + alternate: FExpression; + consequent: FExpression; +}; +export type FIdentifier = Identifier; +declare function fLiteral(expression: Literal): import("estree").SimpleLiteral; +export type FLiteral = ReturnType; +export type FLogicalExpression = Omit & { + left: FExpression; + right: FExpression; +}; +export type FMemberExpression = Omit & { + object: FExpression; + property: FExpression; +}; +export declare function fMemberExpression(expression: MemberExpression): FMemberExpression; +export type FNewExpression = Omit & { + callee: FExpression; + arguments: Array; +}; +type FObjectExpressionElement = { + isSpread: false; + property: FProperty; +} | { + isSpread: true; + argument: FExpression; +}; +export type FObjectExpression = Omit & { + properties: Array; +}; +export type FProperty = Omit & { + key: FIdentifier | FLiteral; + value: FExpression; + kind: 'init'; +}; +export declare function fProperty(property: Property): FProperty; +export type FSimpleCallExpression = Omit & { + callee: FExpression; + arguments: Array; +}; +export type FThisExpression = ThisExpression; +declare function fUnaryOperator(operator: UnaryOperator, range: Range | undefined): "+" | "-" | "!" | "~" | "typeof"; +export type FUnaryOperator = ReturnType; +export type FUnaryExpression = Omit & { + operator: FUnaryOperator; + argument: FExpression; +}; +export type FUpdateExpression = Omit & { + argument: FIdentifier | FMemberExpression; +}; +export type FExpression = FArrayExpression | FArrowFunctionExpression | FAssignmentExpression | FBinaryExpression | FChainExpression | FConditionalExpression | FIdentifier | FLiteral | FLogicalExpression | FMemberExpression | FNewExpression | FObjectExpression | FThisExpression | FSimpleCallExpression | FUnaryExpression | FUpdateExpression; +export declare function fExpression(expression: Expression): FExpression; +export {}; +//# sourceMappingURL=fExpression.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/fExpression.d.ts.map b/packages/flocon-script/dist/cjs/fExpression.d.ts.map new file mode 100644 index 000000000..ba524060c --- /dev/null +++ b/packages/flocon-script/dist/cjs/fExpression.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fExpression.d.ts","sourceRoot":"","sources":["../../src/fExpression.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/fPattern.d.ts b/packages/flocon-script/dist/cjs/fPattern.d.ts new file mode 100644 index 000000000..c3004e429 --- /dev/null +++ b/packages/flocon-script/dist/cjs/fPattern.d.ts @@ -0,0 +1,19 @@ +import { ArrayPattern, AssignmentPattern, ObjectPattern, Pattern, RestElement } from 'estree'; +import { FExpression, FIdentifier, FMemberExpression, FProperty } from './fExpression'; +export type FArrayPattern = Omit & { + elements: (FPattern | null)[]; +}; +export type FObjectPattern = Omit & { + properties: (FRestElement | FProperty)[]; +}; +export type FAssignmentPattern = Omit & { + left: FPattern; + right: FExpression; +}; +export type FRestElement = Omit & { + argument: FPattern; +}; +export declare function fRestElement(source: RestElement): FRestElement; +export type FPattern = FArrayPattern | FObjectPattern | FRestElement | FAssignmentPattern | FIdentifier | FMemberExpression; +export declare const fPattern: (pattern: Pattern) => FPattern; +//# sourceMappingURL=fPattern.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/fPattern.d.ts.map b/packages/flocon-script/dist/cjs/fPattern.d.ts.map new file mode 100644 index 000000000..823dcdb5c --- /dev/null +++ b/packages/flocon-script/dist/cjs/fPattern.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fPattern.d.ts","sourceRoot":"","sources":["../../src/fPattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EACH,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,SAAS,EAIZ,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG;IACzD,QAAQ,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG;IAC7D,UAAU,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IACzE,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG;IACvD,QAAQ,EAAE,QAAQ,CAAC;CACtB,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAK9D;AAED,MAAM,MAAM,QAAQ,GACd,aAAa,GACb,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,WAAW,GACX,iBAAiB,CAAC;AAExB,eAAO,MAAM,QAAQ,YAAa,OAAO,KAAG,QA+B3C,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/fStatement.d.ts b/packages/flocon-script/dist/cjs/fStatement.d.ts new file mode 100644 index 000000000..8bd956c4e --- /dev/null +++ b/packages/flocon-script/dist/cjs/fStatement.d.ts @@ -0,0 +1,68 @@ +import { BlockStatement, BreakStatement, ContinueStatement, Directive, ExpressionStatement, ForOfStatement, ForStatement, IfStatement, ModuleDeclaration, ReturnStatement, Statement, SwitchCase, SwitchStatement, VariableDeclaration } from 'estree'; +import { FExpression } from './fExpression'; +import { FPattern } from './fPattern'; +export type FBlockStatement = Omit & { + body: Array; +}; +export declare function fBlockStatement(statement: BlockStatement): FBlockStatement; +type FBreakStatement = Omit; +type FContinueStatement = Omit; +declare const fExpressionStatement: (statement: ExpressionStatement) => { + expression: FExpression; + type: "ExpressionStatement"; + leadingComments?: import("estree").Comment[] | undefined; + trailingComments?: import("estree").Comment[] | undefined; + loc?: import("estree").SourceLocation | null | undefined; + range?: [number, number] | undefined; +}; +type FExpressionStatement = ReturnType; +type ForLeft = FPattern | FVariableDeclaration; +type FForOfStatement = Omit & { + left: ForLeft; + right: FExpression; + body: FStatement; +}; +type FForStatement = Omit & { + init: FVariableDeclaration | FExpression | null | undefined; + test: FExpression | null | undefined; + update: FExpression | null | undefined; + body: FStatement; +}; +type FIfStatement = Omit & { + alternate?: FStatement | null; + consequent: FStatement; + test: FExpression; +}; +type FReturnStatement = Omit & { + argument?: FExpression | null; +}; +type FSwitchCase = Omit & { + test?: FExpression | null; + consequent: Array; +}; +type FSwitchStatement = Omit & { + discriminant: FExpression; + cases: Array; +}; +declare const fVariableDeclaration: (statement: VariableDeclaration) => { + kind: "let" | "const"; + declarations: { + id: FPattern; + init: FExpression | null | undefined; + type: "VariableDeclarator"; + leadingComments?: import("estree").Comment[] | undefined; + trailingComments?: import("estree").Comment[] | undefined; + loc?: import("estree").SourceLocation | null | undefined; + range?: [number, number] | undefined; + }[]; + type: "VariableDeclaration"; + leadingComments?: import("estree").Comment[] | undefined; + trailingComments?: import("estree").Comment[] | undefined; + loc?: import("estree").SourceLocation | null | undefined; + range?: [number, number] | undefined; +}; +export type FVariableDeclaration = ReturnType; +export type FStatement = FBlockStatement | FBreakStatement | FContinueStatement | FIfStatement | FExpressionStatement | FForOfStatement | FForStatement | FReturnStatement | FSwitchStatement | FVariableDeclaration; +export declare function fStatement(statement: Directive | Statement | ModuleDeclaration): FStatement; +export {}; +//# sourceMappingURL=fStatement.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/fStatement.d.ts.map b/packages/flocon-script/dist/cjs/fStatement.d.ts.map new file mode 100644 index 000000000..e3cf4608a --- /dev/null +++ b/packages/flocon-script/dist/cjs/fStatement.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fStatement.d.ts","sourceRoot":"","sources":["../../src/fStatement.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,UAAU,EACV,eAAe,EACf,mBAAmB,EACtB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,WAAW,EAAe,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAY,MAAM,YAAY,CAAC;AAUhD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG;IACzD,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;CAC3B,CAAC;AACF,wBAAgB,eAAe,CAAC,SAAS,EAAE,cAAc,GAAG,eAAe,CAK1E;AAED,KAAK,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAErD,KAAK,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AAE3D,QAAA,MAAM,oBAAoB,cAAe,mBAAmB;;;;;;;CAK3D,CAAC;AACF,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEpE,KAAK,OAAO,GAAG,QAAQ,GAAG,oBAAoB,CAAC;AAE/C,KAAK,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG;IACrE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,KAAK,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG;IAC3E,IAAI,EAAE,oBAAoB,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5D,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,IAAI,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,KAAK,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC,GAAG;IACzE,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,KAAK,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG;IACxD,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,MAAM,CAAC,GAAG;IACzD,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;CACjC,CAAC;AACF,KAAK,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG;IACtE,YAAY,EAAE,WAAW,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;CAC7B,CAAC;AAEF,QAAA,MAAM,oBAAoB,cAAe,mBAAmB;;;;;;;;;;;;;;;;CAmB3D,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE3E,MAAM,MAAM,UAAU,GAChB,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,YAAY,GACZ,oBAAoB,GACpB,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,CAAC;AAE3B,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,UAAU,CA6E3F"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/getRestValues.d.ts b/packages/flocon-script/dist/cjs/getRestValues.d.ts new file mode 100644 index 000000000..b2f9e58b6 --- /dev/null +++ b/packages/flocon-script/dist/cjs/getRestValues.d.ts @@ -0,0 +1,2 @@ +export declare const getRestValues: (iterator: IterableIterator) => T[]; +//# sourceMappingURL=getRestValues.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/getRestValues.d.ts.map b/packages/flocon-script/dist/cjs/getRestValues.d.ts.map new file mode 100644 index 000000000..f3dfee6f5 --- /dev/null +++ b/packages/flocon-script/dist/cjs/getRestValues.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"getRestValues.d.ts","sourceRoot":"","sources":["../../src/getRestValues.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,GAAI,CAAC,YAAY,gBAAgB,CAAC,CAAC,CAAC,QAS7D,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/index.d.ts b/packages/flocon-script/dist/cjs/index.d.ts new file mode 100644 index 000000000..d51cf291d --- /dev/null +++ b/packages/flocon-script/dist/cjs/index.d.ts @@ -0,0 +1,23 @@ +export { exec, test } from './main'; +export { arrayClass } from './builtIn/Array'; +export { createConsoleClass } from './builtIn/console'; +export { mapClass } from './builtIn/Map'; +export { symbolClass } from './builtIn/Symbol'; +export { AstInfo, GetParams, SetParams, OnGettingParams, OnSettingParams, GetCoreParams, SetCoreParams, } from './scriptValue/types'; +export { beginCast } from './scriptValue/cast'; +export { toFValue } from './scriptValue/toFValue'; +export { FArray, FTypedArray } from './scriptValue/FArray'; +export { FBoolean } from './scriptValue/FBoolean'; +export { FFunction } from './scriptValue/FFunction'; +export { FMap } from './scriptValue/FMap'; +export { FNumber } from './scriptValue/FNumber'; +export { FObject } from './scriptValue/FObject'; +export { FRecord } from './scriptValue/FRecord'; +export { FRecordRef } from './scriptValue/FRecordRef'; +export { FString } from './scriptValue/FString'; +export { FSymbol } from './scriptValue/FSymbol'; +export { FType } from './scriptValue/FType'; +export { FValue } from './scriptValue/FValue'; +export { toTypeName } from './scriptValue/toTypeName'; +export { ScriptError } from './ScriptError'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/index.d.ts.map b/packages/flocon-script/dist/cjs/index.d.ts.map new file mode 100644 index 000000000..8032edd8e --- /dev/null +++ b/packages/flocon-script/dist/cjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EACH,OAAO,EACP,SAAS,EACT,SAAS,EACT,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/index.js b/packages/flocon-script/dist/cjs/index.js new file mode 100644 index 000000000..7ce590cc5 --- /dev/null +++ b/packages/flocon-script/dist/cjs/index.js @@ -0,0 +1,2409 @@ +'use strict'; + +var acorn = require('acorn'); +var option = require('@kizahasi/option'); +var utils = require('@flocon-trpg/utils'); + +class ScriptError extends Error { + range; + constructor(message, range) { + super(message); + this.range = range; + this.name = 'ScriptError'; + } + static notConstructorError(range) { + return new ScriptError('Not a constructor', range); + } + static requiresNewError(range) { + return new ScriptError('Need to call with `new` keyword', range); + } +} + +function* mapIterator(source, mapping) { + for (const elem of source) { + yield mapping(elem); + } +} + +exports.FType = void 0; +(function (FType) { + FType.Boolean = 'Boolean'; + FType.Number = 'Number'; + FType.String = 'String'; + FType.Symbol = 'Symbol'; + // 通常のJavaScriptではtypeofで'array'が返されることはないが、このライブラリではArray.isArrayの判定に用いている + FType.Array = 'Array'; + FType.Object = 'Object'; + FType.Function = 'Function'; +})(exports.FType || (exports.FType = {})); + +const tryToPropertyName = (value) => { + switch (value?.type) { + case exports.FType.Number: + case exports.FType.String: + return value.raw.toString(); + case exports.FType.Symbol: + return value.raw; + default: + return undefined; + } +}; + +class FFunction { + func; + constructor(func) { + this.func = func; + } + get type() { + return exports.FType.Function; + } + exec(params) { + return this.func({ ...params }); + } + onGetting(params) { + return option.Option.none(); + } + get({ property, astInfo }) { + const key = tryToPropertyName(property); + if (key == null) { + return undefined; + } + const onGettingResult = this.onGetting({ key, astInfo }); + if (!onGettingResult.isNone) { + return onGettingResult.value; + } + // TODO: 実装する。ただし、実装するものは注意して選んだほうがいい(結果としてどれも実装しないことになるかも)。 + return undefined; + } + set({ astInfo }) { + throw new ScriptError('You cannot set any value to Function', astInfo?.range); + } + toPrimitiveAsString() { + return (() => { + return; + }).toString(); + } + toPrimitiveAsNumber() { + return +(() => { + return; + }); + } + // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type + toJObject() { + return () => { + throw new Error('Not supported'); + }; + } +} + +class FString { + raw; + constructor(raw) { + this.raw = raw; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + get type() { + return exports.FType.String; + } + get({ property, astInfo }) { + const propertyName = tryToPropertyName(property); + switch (propertyName) { + // TODO: もっと実装する + case 'toString': + return new FFunction(({ isNew }) => { + FString.prepareInstanceMethod(isNew, astInfo); + return this; + }); + default: + return undefined; + } + } + set({ astInfo }) { + throw new ScriptError('You cannot set any value to String', astInfo?.range); + } + iterate() { + return mapIterator(this.raw[Symbol.iterator](), x => new FString(x)); + } + toPrimitiveAsString() { + return this.raw.toString(); + } + toPrimitiveAsNumber() { + return +this.raw; + } + toPrimitiveAsDefault() { + return this.raw.toString(); + } + toJObject() { + return this.raw; + } +} + +class Context { + globalThis; + /* + let x = 1; + let f = () => { + let x = 2; + return 2; + } + + のようなとき、let f の括弧の外では [{ x: 1 }]、let x = 2 のすぐ上では [{ x: 1 }, {}]、下から ) までは [{ x: 1 }, { x: 2 }] となる。 + */ + varTables = [new Map()]; + constructor(globalThis) { + this.globalThis = globalThis; + } + get(name, range) { + const found = this.varTables + .map(table => table.get(name)) + .filter(val => val !== undefined) + .reverse()[0]; + if (found !== undefined) { + return found.ref; + } + const prop = this.globalThis.get({ + property: new FString(name), + astInfo: { range }, + }); + if (prop !== undefined) { + return prop; + } + return undefined; + } + assign(name, newValue, range) { + const found = this.varTables + .map(table => table.get(name)) + .filter(val => val !== undefined) + .reverse()[0]; + if (found !== undefined) { + if (found.isConst) { + throw new Error(`invalid assignment to const '${name}'`); + } + found.ref = newValue; + return; + } + this.globalThis.set({ + property: new FString(name), + newValue, + astInfo: { range }, + }); + } + declare(name, value, type) { + const varTable = this.varTables[this.varTables.length - 1]; + if (varTable === undefined) { + throw new Error('this should not happen'); + } + const found = varTable.get(name); + if (found !== undefined) { + throw new Error(`redeclaration of ${type} ${name}`); + } + varTable.set(name, { + ref: value, + isConst: type === 'const', + }); + } + scopeIn() { + this.varTables.push(new Map()); + } + scopeOut() { + if (this.varTables.length <= 1) { + throw new Error('this.varTables must not be empty'); + } + this.varTables.pop(); + } +} + +function fRestElement(source) { + return { + ...source, + argument: fPattern(source.argument), + }; +} +const fPattern = (pattern) => { + switch (pattern.type) { + case 'ArrayPattern': + return { + ...pattern, + elements: pattern.elements.map(x => (x == null ? x : fPattern(x))), + }; + case 'ObjectPattern': + return { + ...pattern, + properties: pattern.properties.map(x => { + if (x.type === 'RestElement') { + return fRestElement(x); + } + return fProperty(x); + }), + }; + case 'AssignmentPattern': + return { + ...pattern, + left: fPattern(pattern.left), + right: fExpression(pattern.right), + }; + case 'RestElement': + // function f(...x) {return x;} の...xの部分で使われる + return fRestElement(pattern); + case 'Identifier': + return pattern; + case 'MemberExpression': + return fMemberExpression(pattern); + } +}; + +const toRange = (source) => { + if (source == null) { + return undefined; + } + // @types/estreeとacornでは型が異なる。このライブラリではacornを用いているため、それに合わせて型変換している。 + const range = source; + if (typeof range.start === 'number' && typeof range.end === 'number') { + return [range.start, range.end]; + } + return undefined; +}; + +function fArrayExpression(expression) { + return { + ...expression, + elements: expression.elements.map(e => { + if (e == null) { + return e; + } + if (e.type === 'SpreadElement') { + return { + isSpread: true, + argument: fExpression(e.argument), + }; + } + return { isSpread: false, expression: fExpression(e) }; + }), + }; +} +function fArrowFuntionExpression(expression) { + const params = expression.params.map(param => fPattern(param)); + let body; + if (expression.body.type === 'BlockStatement') { + body = fBlockStatement(expression.body); + } + else { + body = fExpression(expression.body); + } + return { + ...expression, + body, + params, + }; +} +function fAssignmentOperator(operator) { + return operator; +} +function fAssignmentExpression(expression) { + let left; + switch (expression.left.type) { + case 'Identifier': + left = expression.left; + break; + case 'MemberExpression': + left = fMemberExpression(expression.left); + break; + default: + throw new ScriptError(`'${expression.left.type}' is not supported`, toRange(expression)); + } + return { + ...expression, + operator: fAssignmentOperator(expression.operator), + left, + right: fExpression(expression.right), + }; +} +function fBaseCallExpression(expression) { + if (expression.callee.type === 'Super') { + throw new ScriptError(`'${expression.callee.type}' is not supported`, toRange(expression)); + } + return { + ...expression, + callee: fExpression(expression.callee), + arguments: expression.arguments.map(arg => { + if (arg.type === 'SpreadElement') { + throw new ScriptError(`'${arg.type} is not supported'`, toRange(arg)); + } + return fExpression(arg); + }), + }; +} +function fBinaryOperator(operator, range) { + switch (operator) { + case 'in': + case 'instanceof': + throw new ScriptError(`'${operator}' is not supported`, range); + default: + return operator; + } +} +function fBinaryExpression(expression) { + if (expression.left.type === 'PrivateIdentifier') { + throw new ScriptError(`'${expression.left.type}' in BinaryExpression is not supported`, expression.left.range); + } + return { + ...expression, + operator: fBinaryOperator(expression.operator, toRange(expression)), + left: fExpression(expression.left), + right: fExpression(expression.right), + }; +} +function fChainExpression(expression) { + if (expression.expression.type === 'CallExpression') { + return { + ...expression, + expression: fSimpleCallExpression(expression.expression), + }; + } + return { + ...expression, + expression: fMemberExpression(expression.expression), + }; +} +function fConditionalExpression(expression) { + return { + ...expression, + test: fExpression(expression.test), + alternate: fExpression(expression.alternate), + consequent: fExpression(expression.consequent), + }; +} +function fLiteral(expression) { + if ('bigint' in expression) { + throw new ScriptError(`'bigint' is not supported`, toRange(expression)); + } + if ('regex' in expression) { + throw new ScriptError(`'regex' is not supported`, toRange(expression)); + } + return expression; +} +function fLogicalExpression(expression) { + return { + ...expression, + left: fExpression(expression.left), + right: fExpression(expression.right), + }; +} +function fMemberExpression(expression) { + if (expression.object.type === 'Super') { + throw new ScriptError("'Super' is not supported", toRange(expression)); + } + if (expression.property.type === 'PrivateIdentifier') { + // 用途が不明 + throw new ScriptError("'PrivateIdentifier' is not supported", toRange(expression)); + } + return { + ...expression, + object: fExpression(expression.object), + property: fExpression(expression.property), + }; +} +function fNewExpression(expression) { + return { + ...expression, + ...fBaseCallExpression(expression), + type: expression.type, + }; +} +function fObjectExpression(expression) { + return { + ...expression, + properties: expression.properties.map(prop => { + if (prop.type === 'SpreadElement') { + return { isSpread: true, argument: fExpression(prop.argument) }; + } + return { isSpread: false, property: fProperty(prop) }; + }), + }; +} +function fProperty(property) { + let key; + switch (property.key.type) { + case 'Identifier': + key = property.key; + break; + case 'Literal': + key = fLiteral(property.key); + break; + default: + throw new ScriptError(`'${property.key.type}' is not supported`, toRange(property.key)); + } + switch (property.value.type) { + case 'ArrayPattern': + case 'ObjectPattern': + case 'RestElement': + case 'AssignmentPattern': { + throw new ScriptError(`'${property.value.type}' is not supported`, toRange(property.value)); + } + } + switch (property.kind) { + case 'init': + break; + default: + throw new ScriptError(`'${property.kind}' is not supported`, toRange(property.value)); + } + return { + ...property, + key, + value: fExpression(property.value), + kind: property.kind, + }; +} +function fSimpleCallExpression(expression) { + return { + ...expression, + ...fBaseCallExpression(expression), + type: expression.type, + }; +} +function fUnaryOperator(operator, range) { + switch (operator) { + case 'delete': + case 'void': + throw new ScriptError(`'${operator}' is not supported`, range); + default: + return operator; + } +} +function fUnaryExpression(expression) { + return { + ...expression, + operator: fUnaryOperator(expression.operator, toRange(expression)), + argument: fExpression(expression.argument), + }; +} +function fUpdateExpression(expression) { + switch (expression.argument.type) { + case 'Identifier': + return { + ...expression, + argument: expression.argument, + }; + case 'MemberExpression': + return { + ...expression, + argument: fMemberExpression(expression.argument), + }; + default: + // ここに来る状況があるかどうか不明 + throw new ScriptError('Invalid update expression argument', toRange(expression)); + } +} +function fExpression(expression) { + switch (expression.type) { + case 'ArrayExpression': + return fArrayExpression(expression); + case 'ArrowFunctionExpression': + return fArrowFuntionExpression(expression); + case 'AssignmentExpression': + return fAssignmentExpression(expression); + case 'BinaryExpression': + return fBinaryExpression(expression); + case 'CallExpression': + return fSimpleCallExpression(expression); + case 'ChainExpression': + return fChainExpression(expression); + case 'ConditionalExpression': + return fConditionalExpression(expression); + case 'Identifier': + return expression; + case 'Literal': + return fLiteral(expression); + case 'LogicalExpression': + return fLogicalExpression(expression); + case 'MemberExpression': + return fMemberExpression(expression); + case 'NewExpression': + return fNewExpression(expression); + case 'ObjectExpression': + return fObjectExpression(expression); + case 'ThisExpression': + return expression; + case 'UnaryExpression': + return fUnaryExpression(expression); + case 'UpdateExpression': + return fUpdateExpression(expression); + default: + throw new ScriptError(`'${expression.type}' is not supported`, toRange(expression)); + } +} + +function fBlockStatement(statement) { + return { + ...statement, + body: statement.body.map(x => fStatement(x)), + }; +} +const fExpressionStatement = (statement) => { + return { + ...statement, + expression: fExpression(statement.expression), + }; +}; +const fVariableDeclaration = (statement) => { + if (statement.kind === 'var') { + throw new ScriptError(`'${statement.kind}' is not supported. Use 'let' instead.`, toRange(statement)); + } + const declarations = statement.declarations.map(d => { + return { + ...d, + id: fPattern(d.id), + init: d.init == null ? d.init : fExpression(d.init), + }; + }); + return { + ...statement, + kind: statement.kind, + declarations, + }; +}; +function fStatement(statement) { + switch (statement.type) { + case 'BlockStatement': + return fBlockStatement(statement); + case 'BreakStatement': + if (statement.label != null) { + throw new ScriptError('labels are not supported'); + } + return statement; + case 'ContinueStatement': + if (statement.label != null) { + throw new ScriptError('labels are not supported'); + } + return statement; + case 'ExpressionStatement': + return fExpressionStatement(statement); + case 'ForOfStatement': + return { + ...statement, + left: statement.left.type === 'VariableDeclaration' + ? fVariableDeclaration(statement.left) + : fPattern(statement.left), + right: fExpression(statement.right), + body: fStatement(statement.body), + }; + case 'ForStatement': { + let init; + if (statement.init == null) { + init = statement.init; + } + else if (statement.init.type === 'VariableDeclaration') { + init = fVariableDeclaration(statement.init); + } + else { + init = fExpression(statement.init); + } + return { + ...statement, + init, + test: statement.test == null ? statement.test : fExpression(statement.test), + update: statement.update == null ? statement.update : fExpression(statement.update), + body: fStatement(statement.body), + }; + } + case 'IfStatement': + return { + ...statement, + alternate: statement.alternate == null + ? statement.alternate + : fStatement(statement.alternate), + consequent: fStatement(statement.consequent), + test: fExpression(statement.test), + }; + case 'ReturnStatement': + return { + ...statement, + argument: statement.argument == null + ? statement.argument + : fExpression(statement.argument), + }; + case 'SwitchStatement': { + return { + ...statement, + cases: statement.cases.map(c => ({ + ...c, + consequent: c.consequent.map(s => fStatement(s)), + test: c.test == null ? c.test : fExpression(c.test), + })), + discriminant: fExpression(statement.discriminant), + }; + } + case 'VariableDeclaration': + return fVariableDeclaration(statement); + default: + throw new ScriptError(`'${statement.type}' is not supported`, toRange(statement)); + } +} + +const getRestValues = (iterator) => { + const result = []; + while (true) { + const next = iterator.next(); + if (next.done) { + return result; + } + result.push(next.value); + } +}; + +// 単にsource?.toJObject() と書くと、source === nullのときにnullではなくundefinedとなってしまう。これでは困る場面があるため、この関数を定義している。 +const toJObject = (source) => { + if (source == null) { + return source; + } + return source.toJObject(); +}; + +class FBoolean { + raw; + constructor(raw) { + this.raw = raw; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + get type() { + return exports.FType.Boolean; + } + get({ property, astInfo }) { + const propertyName = tryToPropertyName(property); + switch (propertyName) { + case 'toString': + return new FFunction(({ isNew }) => { + FBoolean.prepareInstanceMethod(isNew, astInfo); + return new FString(this.raw.toString()); + }); + default: + return undefined; + } + } + set({ astInfo }) { + throw new ScriptError('You cannot set any value to Boolean', astInfo?.range); + } + toPrimitiveAsString() { + return this.raw.toString(); + } + toPrimitiveAsNumber() { + return +this.raw; + } + toJObject() { + return this.raw; + } +} + +class FNumber { + raw; + constructor(raw) { + this.raw = raw; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + get type() { + return exports.FType.Number; + } + get({ property, astInfo }) { + const propertyName = tryToPropertyName(property); + switch (propertyName) { + // TODO: もっと実装する + case 'toString': + return new FFunction(({ args, isNew }) => { + FNumber.prepareInstanceMethod(isNew, astInfo); + const radix = args[0]; + return new FString(this.raw.toString(beginCast(radix, astInfo).addNumber().addUndefined().cast())); + }); + default: + return undefined; + } + } + set({ astInfo }) { + throw new ScriptError('You cannot set any value to Number', astInfo?.range); + } + toPrimitiveAsString() { + return this.raw.toString(); + } + toPrimitiveAsNumber() { + return +this.raw; + } + toJObject() { + return this.raw; + } +} + +class FSymbol { + raw; + constructor(raw) { + this.raw = raw; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + get type() { + return exports.FType.Symbol; + } + get({ property, astInfo }) { + const propertyName = tryToPropertyName(property); + switch (propertyName) { + case 'toString': + return new FFunction(({ isNew }) => { + FSymbol.prepareInstanceMethod(isNew, astInfo); + return new FString(this.raw.toString()); + }); + default: + return undefined; + } + } + set({ astInfo }) { + throw new ScriptError('You cannot set any value to Symbol', astInfo?.range); + } + toPrimitiveAsString() { + return this.raw.toString(); + } + toPrimitiveAsNumber() { + throw new ScriptError("can't convert symbol to number"); + } + toJObject() { + return this.raw; + } +} + +const toTypeName = (value) => { + if (value === null) { + return 'null'; + } + if (value === undefined) { + return 'undefined'; + } + return value.type; +}; + +const typesOptionToString = (source) => { + const base = [ + source.array ? 'array' : null, + source.boolean ? 'boolean' : null, + source.function ? 'function' : null, + source.null ? 'null' : null, + source.number ? 'number' : null, + source.object ? 'object' : null, + source.string ? 'string' : null, + source.symbol ? 'symbol' : null, + source.undefined ? 'undefined' : null, + ].reduce((seed, elem) => { + if (elem == null) { + return seed; + } + if (seed === '') { + return elem; + } + return `${seed}, ${elem}`; + }, ''); + return `[${base}]`; +}; +class JObjectCaster { + source; + addedTypes; + successfullyCastedValue; + astInfo; + constructor(source, addedTypes, successfullyCastedValue, astInfo) { + this.source = source; + this.addedTypes = addedTypes; + this.successfullyCastedValue = successfullyCastedValue; + this.astInfo = astInfo; + } + static begin(source, astInfo) { + return new JObjectCaster(source, {}, option.Option.none(), astInfo); + } + cast() { + if (this.successfullyCastedValue.isNone) { + throw new ScriptError(`Expected type: ${typesOptionToString(this.addedTypes)}, Actual type: ${toTypeName(this.source)}`, this.astInfo?.range); + } + return this.successfullyCastedValue.value; + } + addArray() { + if (this.source instanceof FArray) { + return new JObjectCaster(this.source, { ...this.addedTypes, array: true }, option.Option.some(this.source), this.astInfo); + } + return this; + } + addBoolean() { + if (this.source instanceof FBoolean) { + return new JObjectCaster(this.source, { ...this.addedTypes, boolean: true }, option.Option.some(this.source.raw), this.astInfo); + } + return this; + } + addFunction() { + if (this.source instanceof FFunction) { + const source = this.source; + return new JObjectCaster(source, { ...this.addedTypes, function: true }, option.Option.some((isNew) => (args) => source.exec({ args, isNew, astInfo: this.astInfo })), this.astInfo); + } + return this; + } + addNull() { + if (this.source === null) { + const source = this.source; + return new JObjectCaster(source, { ...this.addedTypes, null: true }, option.Option.some(null), this.astInfo); + } + return this; + } + addNumber() { + if (this.source instanceof FNumber) { + return new JObjectCaster(this.source, { ...this.addedTypes, number: true }, option.Option.some(this.source.raw), this.astInfo); + } + return this; + } + addObject() { + if (this.source instanceof FObject) { + return new JObjectCaster(this.source, { ...this.addedTypes, object: true }, option.Option.some(this.source), this.astInfo); + } + return this; + } + addString() { + if (this.source instanceof FString) { + return new JObjectCaster(this.source, { ...this.addedTypes, string: true }, option.Option.some(this.source.raw), this.astInfo); + } + return this; + } + addSymbol() { + if (this.source instanceof FSymbol) { + return new JObjectCaster(this.source, { ...this.addedTypes, symbol: true }, option.Option.some(this.source.raw), this.astInfo); + } + return this; + } + addUndefined() { + if (this.source === undefined) { + const source = this.source; + return new JObjectCaster(source, { ...this.addedTypes, undefined: true }, option.Option.some(undefined), this.astInfo); + } + return this; + } +} +const beginCast = (source, astInfo) => { + return JObjectCaster.begin(source, astInfo); +}; + +// If you do not want to throw expections, consider using tryToProperyName instead. +const toPropertyName = (value, astInfo) => { + const result = beginCast(value, astInfo).addString().addNumber().addSymbol().cast(); + if (typeof result === 'number') { + return result.toString(); + } + return result; +}; + +class FObject { + get({ property, astInfo }) { + const key = tryToPropertyName(property); + if (key == null) { + return undefined; + } + return this.getCore({ key, astInfo }); + } + set({ property, newValue, astInfo }) { + const key = toPropertyName(property, astInfo); + this.setCore({ key, newValue, astInfo }); + } + get type() { + return exports.FType.Object; + } + toPrimitiveAsString() { + // eslint-disable-next-line @typescript-eslint/no-base-to-string + return {}.toString(); + } + toPrimitiveAsNumber() { + return +{}; + } +} + +const symbolNotSupportedMessage = 'Symbol keys are not supported'; +// Mapに変換することで、外界から受け取ったオブジェクトに対する破壊的な操作を起こせないようにしている。 +class FRecord extends FObject { + source; + constructor(base) { + super(); + if (base != null) { + this.source = new Map(base.source); + } + else { + this.source = new Map(); + } + } + getCore({ key, astInfo }) { + if (typeof key === 'symbol') { + throw new ScriptError(symbolNotSupportedMessage, astInfo?.range); + } + return this.source.get(key.toString()); + } + setCore({ key, newValue, astInfo }) { + if (typeof key === 'symbol') { + throw new ScriptError(symbolNotSupportedMessage, astInfo?.range); + } + this.source.set(key.toString(), newValue); + } + clone() { + return new FRecord(this); + } + forEach(callbackfn) { + this.source.forEach(callbackfn); + } + toJObject() { + const result = new Map(); + this.source.forEach((value, key) => { + result.set(key, toJObject(value)); + }); + return utils.mapToRecord(result); + } +} + +class FIterator extends FObject { + source; + convertValue; + constructor(source, convertValue) { + super(); + this.source = source; + this.convertValue = convertValue; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + static create(source) { + return new FIterator(source, x => x); + } + get type() { + return exports.FType.Object; + } + getCore(params) { + const { key, astInfo } = params; + switch (key) { + case 'next': + return new FFunction(({ isNew }) => { + FIterator.prepareInstanceMethod(isNew, astInfo); + const next = this.source.next(); + const result = new FRecord(); + result.set({ + property: new FString('value'), + newValue: this.convertValue(next.value), + astInfo, + }); + result.set({ + property: new FString('done'), + newValue: next.done === undefined ? undefined : new FBoolean(next.done), + astInfo, + }); + return result; + }); + } + return undefined; + } + setCore(params) { + throw new ScriptError('You cannot set any value to Iterator', params.astInfo?.range); + } + iterate() { + return mapIterator(this.source, x => this.convertValue(x)); + } + toPrimitiveAsString() { + // JavaScriptでは例えば配列由来なら'[object Array Iterator]'となる(ChromeとFirefoxで確認)が、ここでは実装を簡略化するためにすべてIteratorとしている + return '[object Iterator]'; + } + toPrimitiveAsNumber() { + return NaN; + } + toJObject() { + return mapIterator(this.source, x => toJObject(this.convertValue(x))); + } +} + +class FArray { + source; + convert; + convertBack; + constructor(source, convert, convertBack) { + this.source = source; + this.convert = convert; + this.convertBack = convertBack; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + static create(source) { + return new FArray(source, x => x, x => x); + } + get type() { + return exports.FType.Array; + } + toJArray() { + return this.source.map(x => this.convert(x)); + } + iterate() { + return mapIterator(this.source[Symbol.iterator](), x => this.convert(x)); + } + static isValidIndex(index) { + if (index == null || typeof index === 'symbol') { + return false; + } + return index === '0' || /^[1-9][0-9]*$/.test(index); + } + get({ property, astInfo }) { + const index = tryToPropertyName(property); + if (FArray.isValidIndex(index)) { + const found = this.source[index]; + if (found === undefined) { + return undefined; + } + return this.convert(found); + } + const propertyName = index; + switch (propertyName) { + case 'filter': + return new FFunction(({ args, isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const predicate = beginCast(args[0], astInfo).addFunction().cast()(false); + const raw = this.toJArray().filter((value, index) => predicate([value, new FNumber(index)])?.toJObject()); + return FArray.create(raw); + }); + case 'find': + return new FFunction(({ args, isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const predicate = beginCast(args[0], astInfo).addFunction().cast()(false); + const raw = this.toJArray().find((value, index) => predicate([value, new FNumber(index)])?.toJObject()); + return raw; + }); + case 'forEach': + return new FFunction(({ args, isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const callbackfn = beginCast(args[0], astInfo).addFunction().cast()(false); + this.toJArray().forEach((value, index) => callbackfn([value, new FNumber(index)])); + return undefined; + }); + case 'map': + return new FFunction(({ args, isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const mapping = beginCast(args[0], astInfo).addFunction().cast()(false); + const raw = this.toJArray().map((value, index) => mapping([value, new FNumber(index)])); + return FArray.create(raw); + }); + case 'pop': + return new FFunction(({ isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const result = this.source.pop(); + return this.convert(result); + }); + case 'push': + return new FFunction(({ args, isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + args.forEach(arg => { + const newValue = this.convertBack(arg, astInfo); + this.source.push(newValue); + }); + return new FNumber(this.source.length); + }); + case 'shift': + return new FFunction(({ isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const result = this.source.shift(); + return this.convert(result); + }); + case 'unshift': + return new FFunction(({ args, isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + args.reduceRight((seed, arg) => { + const newValue = this.convertBack(arg, astInfo); + this.source.unshift(newValue); + }, undefined); + return new FNumber(this.source.length); + }); + case Symbol.iterator: + return new FFunction(({ isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const source = this.source[Symbol.iterator](); + return FIterator.create(mapIterator(source, x => this.convert(x))); + }); + } + return undefined; + } + set({ property, newValue, astInfo }) { + const index = toPropertyName(property, astInfo); + if (FArray.isValidIndex(index)) { + this.source[index] = this.convertBack(newValue, astInfo); + return; + } + throw new ScriptError(`"${typeof index === 'symbol' ? 'symbol' : index}" is not supported`, astInfo?.range); + } + toPrimitiveAsString() { + return this.toJArray() + .map(x => x?.toPrimitiveAsString()) + .toString(); + } + toPrimitiveAsNumber() { + return +this.toJArray().map(x => x?.toPrimitiveAsNumber()); + } + // 正確な型が表現できないのでunknown[]としている + toJObject() { + return this.toJArray().map(x => (x == null ? x : x.toJObject())); + } +} +class FTypedArray extends FArray { + constructor(source, convert, convertBack) { + super(source, value => convert(value), convertBack); + } +} + +// https://ja.javascript.info/object-toprimitive +const toPrimitive = (value, hint) => { + if (value == null) { + return value; + } + if (hint === 'string') { + return value.toPrimitiveAsString(); + } + if (hint === 'number') { + return value.toPrimitiveAsNumber(); + } + const obj = value; + if (obj.toPrimitiveAsDefault == null) { + return obj.toPrimitiveAsNumber(); + } + return obj.toPrimitiveAsDefault(); +}; + +const compare = (left, right, hint, comparer) => { + if (hint === 'JObject') { + return comparer(toJObject(left), toJObject(right)); + } + return comparer(toPrimitive(left, hint), toPrimitive(right, hint)); +}; +const compareToNumber = (left, right, hint, comparer) => { + return new FNumber(compare(left, right, hint, comparer)); +}; +const compareToBoolean = (left, right, hint, comparer) => { + return new FBoolean(compare(left, right, hint, comparer)); +}; +const compareToNumberOrString = (left, right, hint, comparer) => { + const r = compare(left, right, hint, comparer); + if (typeof r === 'number') { + return new FNumber(r); + } + return new FString(r); +}; + +// 例えばxとyがObjectのときは x === y で比較されるため、「toPrimitiveで変換してから==で比較」という作戦は使えない。そのため、ここで専用の関数を定義している。 +// https://developer.mozilla.org/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness +const eqeq = (x, y) => { + if (x == null) { + return y == null; + } + if (y == null) { + return false; + } + const xAsObjectBase = x; + if (xAsObjectBase.equals != null) { + return xAsObjectBase.equals(y, '=='); + } + switch (x.type) { + case exports.FType.Boolean: + case exports.FType.Number: + case exports.FType.String: + case exports.FType.Symbol: + switch (y.type) { + case exports.FType.Boolean: + case exports.FType.Number: + case exports.FType.String: + // eslint-disable-next-line eqeqeq + return x.raw == y.raw; + default: + // eslint-disable-next-line eqeqeq + return x.raw == toPrimitive(y, 'default'); + } + default: + switch (y.type) { + case exports.FType.Boolean: + case exports.FType.Number: + case exports.FType.String: + case exports.FType.Symbol: + // eslint-disable-next-line eqeqeq + return toPrimitive(x, 'default') == y.raw; + default: + return x === y; + } + } +}; + +const eqeqeq = (x, y) => { + if (x === null) { + return y === null; + } + if (x === undefined) { + return y === undefined; + } + const xAsObjectBase = x; + if (xAsObjectBase.equals != null) { + return xAsObjectBase.equals(y, '==='); + } + switch (x.type) { + case exports.FType.Boolean: + case exports.FType.Number: + case exports.FType.String: + case exports.FType.Symbol: + if (y?.type !== x.type) { + return false; + } + return x.raw === y.raw; + default: + return x === y; + } +}; + +// https://developer.mozilla.org/ja/docs/Glossary/Falsy +const isTruthy = (value) => { + if (value == null) { + return false; + } + switch (value.type) { + case exports.FType.Boolean: + case exports.FType.Number: + case exports.FType.String: + case exports.FType.Symbol: + if (value.raw) { + return true; + } + else { + return false; + } + default: + return true; + } +}; + +const self = 'self'; +const globalThis = 'globalThis'; +// keyが'self'か'globalThis'のときは自分自身を返すRecord +// baseでkeyが'self'か'globalThis'である要素は全て無視される +class FGlobalRecord extends FRecord { + constructor(base) { + super(base); + } + getCore(params) { + const keyAsString = params.key.toString(); + if (keyAsString === self || keyAsString === globalThis) { + return this; + } + return super.getCore(params); + } + setCore({ key, newValue, astInfo }) { + const keyAsString = key.toString(); + if (keyAsString === self || keyAsString === globalThis) { + throw new ScriptError(`Assignment to '${keyAsString}' is not supported`, astInfo?.range); + } + super.setCore({ key, newValue, astInfo }); + } +} + +class FMap extends FObject { + source; + convertValue; + convertValueBack; + constructor(source, convertValue, convertValueBack) { + super(); + this.source = source; + this.convertValue = convertValue; + this.convertValueBack = convertValueBack; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + static create(source) { + return new FMap(source, x => x, x => x); + } + convertKeyBack(source, astInfo) { + return beginCast(source, astInfo) + .addBoolean() + .addNumber() + .addString() + .addSymbol() + .addNull() + .addUndefined() + .cast(); + } + get type() { + return exports.FType.Object; + } + getCore(params) { + const { key, astInfo } = params; + switch (key) { + case 'clear': + return new FFunction(({ isNew }) => { + FMap.prepareInstanceMethod(isNew, astInfo); + this.source.clear(); + return undefined; + }); + case 'delete': + return new FFunction(({ args, isNew }) => { + FMap.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + const result = this.source.delete(key); + return new FBoolean(result); + }); + case 'forEach': + return new FFunction(({ args, isNew }) => { + FMap.prepareInstanceMethod(isNew, astInfo); + const callbackfn = beginCast(args[0], astInfo).addFunction().cast()(false); + this.source.forEach((value, key) => callbackfn([this.convertValue(value), toFValue(key)])); + return undefined; + }); + case 'get': + return new FFunction(({ args, isNew }) => { + FMap.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + const value = this.source.get(key); + return this.convertValue(value); + }); + case 'has': + return new FFunction(({ args, isNew }) => { + FMap.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + const value = this.source.has(key); + return new FBoolean(value); + }); + case 'size': + return new FNumber(this.source.size); + case 'set': + return new FFunction(({ args, isNew }) => { + FMap.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + const value = this.convertValueBack(args[1], astInfo); + this.source.set(key, value); + return undefined; + }); + } + return undefined; + } + setCore(params) { + throw new ScriptError('You cannot set any value to Map', params.astInfo?.range); + } + iterate() { + return mapIterator(this.source[Symbol.iterator](), ([keySource, valueSource]) => { + const key = toFValue(keySource); + const value = this.convertValue(valueSource); + return FArray.create([key, value]); + }); + } + toPrimitiveAsString() { + return '[object Map]'; + } + toPrimitiveAsNumber() { + return NaN; + } + // 正確な型が表現できないのでvalueはunknownとしている + toJObject() { + const result = new Map(); + this.source.forEach((value, key) => { + const converted = this.convertValue(value); + result.set(key, converted == null ? converted : converted.toJObject()); + }); + return result; + } +} + +/* eslint-disable @typescript-eslint/no-unsafe-argument */ +function toFValue(source) { + if (source === null) { + return null; + } + if (source === undefined) { + return undefined; + } + switch (typeof source) { + case 'boolean': + return new FBoolean(source); + case 'number': + return new FNumber(source); + case 'string': + return new FString(source); + case 'symbol': + return new FSymbol(source); + case 'function': + throw new Error('Function is not supported. Use FFunction instead.'); + } + if (source instanceof FArray || + source instanceof FBoolean || + source instanceof FFunction || + source instanceof FNumber || + source instanceof FObject || + source instanceof FString || + source instanceof FSymbol) { + return source; + } + if (Array.isArray(source)) { + return FArray.create(source.map(x => toFValue(x))); + } + if (source instanceof Map) { + return FMap.create(source); + } + return toFRecord(source); +} + +// __proto__ のチェックなどは行われない +const toFRecord = (source) => { + const result = new FRecord(); + for (const key in source) { + result.set({ + property: new FString(key), + newValue: toFValue(source[key]), + astInfo: undefined, + }); + } + return result; +}; + +// keyが'self'か'globalThis'である要素は無視されることに注意 +function toFGlobalRecord(source) { + return new FGlobalRecord(toFRecord(source)); +} + +/* eslint-disable @typescript-eslint/no-unsafe-return */ +function ofFLiteral(literal) { + if (literal.value == null) { + return null; + } + switch (typeof literal.value) { + case 'boolean': + return new FBoolean(literal.value); + case 'string': + return new FString(literal.value); + case 'number': + return new FNumber(literal.value); + default: + throw new Error('This should not happen.'); + } +} +// @types/estree では CallExpression = SimpleCallExpression | NewExpression なのでそれに合わせた命名をしている +function ofFCallExpression(expression, context, isChain, isNew) { + const callee = ofFExpression(expression.callee, context); + const args = expression.arguments.map(arg => { + return ofFExpression(arg, context); + }); + if (isChain && callee == null) { + return undefined; + } + if (callee?.type !== exports.FType.Function) { + throw new Error(`${callee == null ? callee : callee.type} is not a function`); + } + return callee.exec({ args, isNew: isNew != null, astInfo: { range: toRange(expression) } }); +} +function ofFMemberExpressionAsGet(expression, context, isChain) { + const object = ofFExpression(expression.object, context); + if (object == null) { + if (isChain) { + return undefined; + } + throw new Error('object is null or undefined'); + } + if (expression.computed) { + const property = ofFExpression(expression.property, context); + return object.get({ property, astInfo: { range: toRange(expression) } }); + } + if (expression.property.type !== 'Identifier') { + throw new Error('this should not happen'); + } + return object.get({ + property: new FString(expression.property.name), + astInfo: { range: toRange(expression) }, + }); +} +function ofFMemberExpressionAsAssign(expression, newValue, context) { + const object = ofFExpression(expression.object, context); + let property; + if (!expression.computed && expression.property.type === 'Identifier') { + property = new FString(expression.property.name); + } + else { + property = ofFExpression(expression.property, context); + } + if (object == null) { + throw new Error(`Object is ${toTypeName(object)}`); + } + object.set({ + property, + newValue: newValue, + astInfo: { range: toRange(expression) }, + }); + return undefined; +} +function ofFPattern(pattern, context, kind, value, +// let {a, ...b} = foo; のbのようにbにobjectが入る場面では'object'を、let [a, ...b] = bar; のbのようにbにArrayが入る場面では'array'を渡す。 +// function f(...p) { return p; } のpの場面ではArrayが入るため'array'を渡す。再帰以外でofFPatternが呼ばれてなおかつpatternがRestElementであるケースはそれしかないと思われるため、引数のデフォルト値は'array'としている。 +setToRestElementAs = 'array') { + switch (pattern.type) { + case 'Identifier': + switch (kind) { + case 'assign': + context.assign(pattern.name, value, toRange(pattern)); + return; + default: + context.declare(pattern.name, value, kind); + return; + } + case 'AssignmentPattern': + // JavaScriptでは引数が存在しない場合は引数がundefinedとみなされるため、このように単にundefinedかどうかチェックするだけでよい。 + ofFPattern(pattern.left, context, kind, value === undefined ? ofFExpression(pattern.right, context) : value, setToRestElementAs); + return; + case 'MemberExpression': + ofFMemberExpressionAsAssign(pattern, value, context); + return; + case 'ArrayPattern': { + const valueAsFObjectBase = value; + if (valueAsFObjectBase?.iterate == null) { + throw new ScriptError(`${value == null ? value : value.type} is not iterable`); + } + const valueIterator = valueAsFObjectBase.iterate(); + const valueIteratorNext = () => { + const next = valueIterator.next(); + if (next.done) { + return undefined; + } + return next.value; + }; + for (const arrayPatternElement of pattern.elements) { + if (arrayPatternElement?.type === 'RestElement') { + ofFPattern(arrayPatternElement.argument, context, kind, FArray.create(getRestValues(valueIterator)), setToRestElementAs); + // RestElementはArrayPatternの最後にしか存在し得ないため、breakで抜けてしまって構わない。 + break; + } + const rightValueElement = valueIteratorNext(); + if (arrayPatternElement === null) { + continue; + } + ofFPattern(arrayPatternElement, context, kind, rightValueElement, 'array'); + } + return; + } + case 'ObjectPattern': { + if (value == null) { + throw new ScriptError(`${value} has no properties`); + } + // 本題の前に前提として、ObjectPattern内にRestElementがある場合、FRecordでなければエラーとみなすようにしている。理由は、TypeScriptでも同様の挙動を示すため(JavaScriptではエラーは出ないが、TypeScriptとして使う前提であるため考慮していない)。 + // RestElementが来たときにそれ以前に書かれたプロパティを除外していなければならないため、valueがFRecordであれば、それらを除外した状態のオブジェクトをnextValueとして保持している。ただし、FRecordでない場合はnextValueは常にvalueと等しくなる。これは、RestElementはFRecordに対応していないので、FRecord以外のオブジェクトのプロパティを除外する必要がないため。 + let nextValue = value; + for (const objectPatternProperty of pattern.properties) { + if (objectPatternProperty.type === 'RestElement') { + ofFPattern(objectPatternProperty, context, kind, nextValue, 'object'); + continue; + } + if (objectPatternProperty.key.type === 'Literal') { + // どのような場面でここに来るのかまだ分かっていない + throw new ScriptError('Literal as a key of ObjectPattern is not supported'); + } + const key = new FString(objectPatternProperty.key.name); + switch (kind) { + case 'assign': + context.assign(objectPatternProperty.key.name, nextValue.get({ property: key, astInfo: objectPatternProperty.key }), toRange(pattern)); + break; + default: + context.declare(objectPatternProperty.key.name, nextValue.get({ property: key, astInfo: objectPatternProperty.key }), kind); + break; + } + if (value instanceof FRecord) { + const $nextValue = value.clone(); + $nextValue.source.delete(objectPatternProperty.key.name); + nextValue = $nextValue; + } + else { + nextValue = value; + } + } + return; + } + case 'RestElement': + if (setToRestElementAs === 'array') { + const valueAsFObjectBase = value; + if (valueAsFObjectBase?.iterate == null) { + throw new ScriptError(`${value == null ? value : value.type} is not iterable`); + } + ofFPattern(pattern.argument, context, kind, value, 'array'); + return; + } + ofFPattern(pattern.argument, context, kind, value, 'object'); + return; + } +} +/* +let x; や let x = 1; のようなコードでは、valueToSetにundefinedを渡す。 +for (let x of [1]) {} のようなコードではinitはnullishであるため、valueToSetに1を渡さなければならない。 +*/ +function ofFVariableDeclaration(statement, context, valueToSet) { + const kind = statement.kind; + statement.declarations.forEach(d => { + // let x; のような場合は let x = undefined; と同等とみなして良さそう。const x; はparseの時点で弾かれるはず。 + ofFPattern(d.id, context, kind, d.init == null ? valueToSet : ofFExpression(d.init, context)); + }); +} +function ofFExpression(expression, context) { + switch (expression.type) { + case 'ArrayExpression': { + const result = []; + expression.elements.forEach(d => { + if (d === null) { + result.push(null); + return; + } + if (!d.isSpread) { + result.push(ofFExpression(d.expression, context)); + return; + } + const argument = ofFExpression(d.argument, context); + if (argument == null || argument.iterate == null) { + throw new ScriptError(`${argument?.toPrimitiveAsString()} is not iterable`, toRange(d.argument)); + } + for (const elem of argument.iterate()) { + result.push(elem); + } + }); + return FArray.create(result); + } + case 'ArrowFunctionExpression': { + const f = ({ args, isNew }) => { + if (isNew) { + throw new ScriptError('ArrowFunction is not a constructor', toRange(expression)); + } + context.scopeIn(); + expression.params.forEach((param, i) => { + ofFPattern(param, context, 'let', args[i]); + }); + if (expression.body.type === 'BlockStatement') { + const result = ofFStatement(expression.body, context); + context.scopeOut(); + if (result.type === 'earlyReturn') { + return result.value; + } + return undefined; + } + const result = ofFExpression(expression.body, context); + context.scopeOut(); + return result; + }; + return new FFunction(f); + } + case 'AssignmentExpression': { + if (expression.operator === '=') { + const newValue = ofFExpression(expression.right, context); + switch (expression.left.type) { + case 'Identifier': { + context.assign(expression.left.name, newValue, toRange(expression)); + return newValue; + } + case 'MemberExpression': { + ofFMemberExpressionAsAssign(expression.left, newValue, context); + return newValue; + } + } + } + let oldValue; + let newValue; + if (expression.left.type === 'Identifier') { + oldValue = context.get(expression.left.name, toRange(expression.left)); + } + else { + oldValue = ofFMemberExpressionAsGet(expression.left, context, false); + } + const right = ofFExpression(expression.right, context); + switch (expression.operator) { + case '+=': + newValue = compareToNumber(oldValue, right, 'default', (l, r) => l + r); + break; + case '-=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l - r); + break; + case '%=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l % r); + break; + case '&=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l & r); + break; + case '*=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l * r); + break; + case '**=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l ** r); + break; + case '/=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l / r); + break; + case '<<=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l << r); + break; + case '>>=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l >> r); + break; + case '>>>=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l >>> r); + break; + case '^=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l ^ r); + break; + case '|=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l | r); + break; + case '&&=': + case '??=': + case '||=': + // 現時点では acorn は ecmaVersion=2020 として parse しているため、ここには来ないはず。 + throw new Error(`"${expression.operator}" operator is not supported. This should not happen.`); + } + if (expression.left.type === 'Identifier') { + context.assign(expression.left.name, newValue, toRange(expression)); + } + else { + ofFMemberExpressionAsAssign(expression.left, newValue, context); + } + return newValue; + } + case 'BinaryExpression': { + const left = ofFExpression(expression.left, context); + const right = ofFExpression(expression.right, context); + switch (expression.operator) { + case '!=': + return new FBoolean(!eqeq(left, right)); + case '!==': + return new FBoolean(!eqeqeq(left, right)); + case '%': + return compareToNumber(left, right, 'number', (l, r) => l % r); + case '&': + return compareToNumber(left, right, 'number', (l, r) => l & r); + case '*': + return compareToNumber(left, right, 'number', (l, r) => l * r); + case '**': + return compareToNumber(left, right, 'number', (l, r) => l ** r); + case '+': + return compareToNumberOrString(left, right, 'default', (l, r) => l + r); + case '-': + return compareToNumber(left, right, 'number', (l, r) => l - r); + case '/': + return compareToNumber(left, right, 'number', (l, r) => l / r); + case '<': + return compareToBoolean(left, right, 'JObject', (l, r) => l < r); + case '<<': + return compareToNumber(left, right, 'number', (l, r) => l << r); + case '<=': + return compareToBoolean(left, right, 'JObject', (l, r) => l <= r); + case '==': + return new FBoolean(eqeq(left, right)); + case '===': + return new FBoolean(eqeqeq(left, right)); + case '>': + return compareToBoolean(left, right, 'JObject', (l, r) => l > r); + case '>=': + return compareToBoolean(left, right, 'JObject', (l, r) => l >= r); + case '>>': + return compareToNumber(left, right, 'number', (l, r) => l >> r); + case '>>>': + return compareToNumber(left, right, 'number', (l, r) => l >>> r); + case '^': + return compareToNumber(left, right, 'number', (l, r) => l ^ r); + case '|': + return compareToNumber(left, right, 'number', (l, r) => l | r); + } + break; + } + case 'CallExpression': { + return ofFCallExpression(expression, context, false); + } + case 'ChainExpression': { + switch (expression.expression.type) { + case 'CallExpression': { + return ofFCallExpression(expression.expression, context, true); + } + case 'MemberExpression': { + return ofFMemberExpressionAsGet(expression.expression, context, true); + } + } + break; + } + case 'ConditionalExpression': { + const test = ofFExpression(expression.test, context); + if (test) { + return ofFExpression(expression.consequent, context); + } + return ofFExpression(expression.alternate, context); + } + case 'Identifier': { + // a; のようなコードであれば正常に処理される + // a.b; のようなコードではbがIdentifierになるがこのケースでは正常に処理されない(代わりにMemberExpressionやAssignmentExpressionで処理されなければならない) + return context.get(expression.name, toRange(expression)); + } + case 'Literal': { + return ofFLiteral(expression); + } + case 'LogicalExpression': { + const left = ofFExpression(expression.left, context); + const right = ofFExpression(expression.right, context); + switch (expression.operator) { + case '&&': + return isTruthy(left) ? right : left; + case '??': + return left ?? right; + case '||': + return !isTruthy(left) ? right : left; + } + break; + } + case 'MemberExpression': { + return ofFMemberExpressionAsGet(expression, context, false); + } + case 'NewExpression': { + return ofFCallExpression(expression, context, false, 'new'); + } + case 'ObjectExpression': { + const result = new FRecord(); + expression.properties.forEach(d => { + if (d.isSpread) { + const spreadObject = ofFExpression(d.argument, context); + if (spreadObject instanceof FRecord) { + spreadObject.forEach((value, key) => { + result.source.set(key, value); + }); + } + else { + throw new ScriptError('Record is expected, but actually not.', toRange(d.argument)); + } + return; + } + let key; + switch (d.property.key.type) { + case 'Literal': { + const literal = ofFLiteral(d.property.key); + switch (typeof literal) { + case 'string': + case 'number': + key = literal; + break; + default: + throw new Error('this should not happen'); + } + break; + } + case 'Identifier': { + key = d.property.key.name; + break; + } + } + const value = ofFExpression(d.property.value, context); + switch (d.property.kind) { + case 'init': + result.set({ + property: new FString(key), + newValue: value, + astInfo: { range: toRange(d.property.value) }, + }); + break; + } + }); + return result; + } + case 'ThisExpression': + /* + javascriptのthisは複雑な挙動を示す。そのため、functionやclassを使用不可能にすることで、常にthis===globalThisとして扱えるようにして実装を簡略化している。ただし、これにより例えば下のコードにおいて本来のjavascriptと異なる挙動を示す。本来のjavascriptであればエラーだが、このライブラリでは正常に終了しaは[1]となる。 + + let a = []; + let f = a.push; + f(1); + + thisを完全に無効化してglobalThisを使ってもらうという作戦は、monaco editorの設定がうまくいかなかったので却下。 + */ + return context.globalThis; + case 'UnaryExpression': { + const argument = ofFExpression(expression.argument, context); + switch (expression.operator) { + case '!': + return new FBoolean(!isTruthy(argument)); + case '+': + return argument == null + ? argument + : new FNumber(argument.toPrimitiveAsNumber()); + case '-': + return argument == null + ? argument + : new FNumber(-argument.toPrimitiveAsNumber()); + case '~': + return argument == null + ? argument + : new FNumber(~argument.toPrimitiveAsNumber()); + case 'typeof': + if (argument == null) { + return new FString(typeof argument); + } + switch (argument.type) { + case exports.FType.Boolean: + return new FString('boolean'); + case exports.FType.Function: + return new FString('function'); + case exports.FType.Number: + return new FString('number'); + case exports.FType.String: + return new FString('string'); + case exports.FType.Symbol: + return new FString('symbol'); + default: + return new FString('object'); + } + } + break; + } + case 'UpdateExpression': { + let oldValue; + let newValue; + if (expression.argument.type === 'Identifier') { + oldValue = context.get(expression.argument.name, toRange(expression.argument)); + newValue = compareToNumber(oldValue, new FNumber(expression.operator === '++' ? 1 : -1), 'number', (left, right) => left + right); + context.assign(expression.argument.name, newValue, toRange(expression)); + } + else { + oldValue = ofFMemberExpressionAsGet(expression.argument, context, false); + newValue = compareToNumber(oldValue, new FNumber(expression.operator === '++' ? 1 : -1), 'number', (left, right) => left + right); + ofFMemberExpressionAsAssign(expression.argument, newValue, context); + } + return expression.prefix ? newValue : oldValue; + } + default: + throw new Error('this should not happen'); + } +} +function ofFStatement(statement, context) { + switch (statement.type) { + case 'BlockStatement': { + context.scopeIn(); + for (const b of statement.body) { + const bodyResult = ofFStatement(b, context); + if (bodyResult.type !== 'end') { + context.scopeOut(); + return bodyResult; + } + } + context.scopeOut(); + return { type: 'end', value: undefined }; + } + case 'BreakStatement': + return { type: 'break' }; + case 'ContinueStatement': + return { type: 'continue' }; + case 'ReturnStatement': + return { + type: 'earlyReturn', + value: statement.argument == null + ? undefined + : ofFExpression(statement.argument, context), + }; + case 'ExpressionStatement': { + return { + type: 'end', + value: ofFExpression(statement.expression, context), + }; + } + case 'ForOfStatement': { + if (statement.await) { + throw new ScriptError('await is not supported'); + } + const rightValue = ofFExpression(statement.right, context); + const rightValueAsFObjectBase = rightValue; + if (rightValueAsFObjectBase?.iterate == null) { + throw new ScriptError(`${rightValue?.toPrimitiveAsString()} is not iterable`); + } + for (const elem of rightValueAsFObjectBase.iterate()) { + context.scopeIn(); + switch (statement.left.type) { + case 'Identifier': + context.assign(statement.left.name, elem, statement.left.range); + break; + case 'MemberExpression': { + ofFMemberExpressionAsAssign(statement.left, elem, context); + break; + } + case 'VariableDeclaration': + ofFVariableDeclaration(statement.left, context, elem); + break; + default: + throw new ScriptError(`${statement.left.type} is not supported yet.`, toRange(statement.left)); + } + ofFStatement(statement.body, context); + context.scopeOut(); + } + return { type: 'end', value: undefined }; + } + case 'ForStatement': { + context.scopeIn(); + if (statement.init != null) { + if (statement.init.type === 'VariableDeclaration') { + ofFVariableDeclaration(statement.init, context); + } + else { + ofFExpression(statement.init, context); + } + } + let isFirstLoop = true; + while (true) { + if (!isFirstLoop && statement.update != null) { + ofFExpression(statement.update, context); + } + isFirstLoop = false; + if (statement.test != null) { + const test = ofFExpression(statement.test, context); + if (!isTruthy(test)) { + break; + } + } + const bodyResult = ofFStatement(statement.body, context); + if (bodyResult.type === 'earlyReturn') { + context.scopeOut(); + return { type: 'end', value: bodyResult.value }; + } + else if (bodyResult.type === 'break') { + break; + } + } + context.scopeOut(); + return { type: 'end', value: undefined }; + } + case 'IfStatement': { + const test = ofFExpression(statement.test, context); + if (toJObject(test)) { + return ofFStatement(statement.consequent, context); + } + if (statement.alternate == null) { + return { type: 'end', value: undefined }; + } + return ofFStatement(statement.alternate, context); + } + case 'SwitchStatement': { + const discriminant = ofFExpression(statement.discriminant, context); + let caseMatched = false; + for (const $case of statement.cases) { + if ($case.test == null || // default:のときは$case.test==nullとなる + toJObject(discriminant) === toJObject(ofFExpression($case.test, context))) { + caseMatched = true; + } + // caseにどれか1つでもマッチしたら、breakなどがない限りはそれ以降のcaseもすべてマッチする扱いとなる。いわゆるフォールスルー。 + if (!caseMatched) { + continue; + } + for (const consequent of $case.consequent) { + const consequentResult = ofFStatement(consequent, context); + switch (consequentResult.type) { + case 'earlyReturn': + case 'continue': + return consequentResult; + case 'break': + return { type: 'end', value: undefined }; + } + } + } + return { type: 'end', value: undefined }; + } + case 'VariableDeclaration': { + ofFVariableDeclaration(statement, context); + return { type: 'end', value: undefined }; + } + } +} +const toProgram = (script) => { + // @types/estreeが2020までにしか対応していない時期にこのプロジェクトに取り掛かったため、2021 以降の機能(AssignmentOperatorの&&=など)に対応していない。そのため、acornも2020としている。 + return acorn.parse(script, { ecmaVersion: 2020, ranges: true }); +}; +// globalThisは、FValueであればそのまま維持し、それ以外であればFValueに自動変換される。 +const exec = (script, globalThis) => { + const parsed = toProgram(script); + const context = new Context(toFGlobalRecord(globalThis)); + const lastResult = parsed.body.map(statement => { + return ofFStatement(fStatement(statement), context); + })[parsed.body.length - 1]; + let result; + if (lastResult?.type === 'end') { + result = lastResult.value == null ? lastResult.value : lastResult.value.toJObject(); + } + else { + result = undefined; + } + return { + result, + getGlobalThis: () => context.globalThis.toJObject(), + }; +}; +// エディターなどでエラーをチェックする際に用いる +const test = (script) => { + const parsed = toProgram(script); + parsed.body.forEach(statement => { + fStatement(statement); + }); +}; + +class FArrayClass extends FFunction { + constructor() { + super(() => { + throw new Error('Array constructor is not supported'); + }); + } + static prepareStaticMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + onGetting({ key, astInfo }) { + switch (key) { + case 'isArray': { + return option.Option.some(new FFunction(({ args, isNew }) => { + FArrayClass.prepareStaticMethod(isNew, astInfo); + const arg = args[0]; + return new FBoolean(arg?.type === exports.FType.Array); + })); + } + default: + return option.Option.none(); + } + } +} +const arrayClass = new FArrayClass(); + +class FConsoleClass extends FFunction { + header; + constructor(header) { + super(() => { + throw new Error('console constructor is not supported'); + }); + this.header = header; + } + static prepareStaticMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + onGetting({ key, astInfo }) { + switch (key) { + case 'log': { + return option.Option.some(new FFunction(({ args, isNew }) => { + FConsoleClass.prepareStaticMethod(isNew, astInfo); + // eslint-disable-next-line no-console + console.log(...[this.header, ...args.map(arg => toJObject(arg))]); + return undefined; + })); + } + case 'info': { + return option.Option.some(new FFunction(({ args, isNew }) => { + FConsoleClass.prepareStaticMethod(isNew, astInfo); + // eslint-disable-next-line no-console + console.info(...[this.header, ...args.map(arg => toJObject(arg))]); + return undefined; + })); + } + case 'warn': { + return option.Option.some(new FFunction(({ args, isNew }) => { + FConsoleClass.prepareStaticMethod(isNew, astInfo); + // eslint-disable-next-line no-console + console.warn(...[this.header, ...args.map(arg => toJObject(arg))]); + return undefined; + })); + } + case 'error': { + return option.Option.some(new FFunction(({ args, isNew }) => { + FConsoleClass.prepareStaticMethod(isNew, astInfo); + // eslint-disable-next-line no-console + console.error(...[this.header, ...args.map(arg => toJObject(arg))]); + return undefined; + })); + } + default: + return option.Option.none(); + } + } +} +const createConsoleClass = (header) => new FConsoleClass(header); + +class FMapClass extends FFunction { + constructor() { + super(({ isNew }) => { + if (!isNew) { + throw ScriptError.requiresNewError(); + } + return FMap.create(new Map()); + }); + } +} +const mapClass = new FMapClass(); + +class FSymbolClass extends FFunction { + constructor() { + super(({ isNew, args, astInfo }) => { + if (isNew) { + throw ScriptError.notConstructorError(); + } + const description = beginCast(args[0], astInfo).addString().addUndefined().cast(); + return new FSymbol(Symbol(description)); + }); + } + onGetting({ key }) { + switch (key) { + case 'iterator': { + return option.Option.some(new FSymbol(Symbol.iterator)); + } + default: + return option.Option.none(); + } + } +} +const symbolClass = new FSymbolClass(); + +// Recordのkeyのジェネリック化は、convertKeyBackの処理の場合分けが難しいと思われるため不採用。 +class FRecordRef extends FObject { + source; + convertValue; + convertValueBack; + constructor(source, convertValue, convertValueBack) { + super(); + this.source = source; + this.convertValue = convertValue; + this.convertValueBack = convertValueBack; + } + prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + convertKeyBack(source, astInfo) { + return beginCast(source, astInfo).addString().cast(); + } + validateKey(key) { + const fail = () => { + throw new ScriptError(`You cannot use "${key}" as a key`); + }; + switch (key) { + case 'toString': + case 'toLocaleString': + case 'valueOf': + case 'hasOwnProperty': + case 'isPrototypeOf': + case 'propertyIsEnumerable': + case 'constructor': + case 'prototype': + fail(); + } + // __proto__の他に、念のため__defineSetter__なども弾けるような処理をしている + if (key.startsWith('__')) { + fail(); + } + } + get type() { + return exports.FType.Object; + } + getCore(params) { + const { key, astInfo } = params; + switch (key) { + case 'delete': + return new FFunction(({ args, isNew }) => { + this.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + this.validateKey(key); + delete this.source[key]; + return undefined; + }); + case 'forEach': + return new FFunction(({ args, isNew }) => { + this.prepareInstanceMethod(isNew, astInfo); + const callbackfn = beginCast(args[0], astInfo).addFunction().cast()(false); + for (const key in this.source) { + const value = this.source[key]; + if (value == null) { + throw new Error('this should not happen'); + } + callbackfn([this.convertValue(value), toFValue(key)]); + } + return undefined; + }); + case 'get': + return new FFunction(({ args, isNew }) => { + this.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + this.validateKey(key); + const value = this.source[key]; + if (value === undefined) { + return undefined; + } + return this.convertValue(value); + }); + case 'has': + return new FFunction(({ args, isNew }) => { + this.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + this.validateKey(key); + return new FBoolean(key in this.source); + }); + case 'set': + return new FFunction(({ args, isNew }) => { + this.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + this.validateKey(key); + const value = this.convertValueBack(args[1], astInfo); + this.source[key] = value; + return undefined; + }); + } + return undefined; + } + setCore(params) { + throw new ScriptError('You cannot set any value to this object', params.astInfo?.range); + } + toPrimitiveAsString() { + return '[object Object]'; + } + toPrimitiveAsNumber() { + return NaN; + } + toJObject() { + return this.source; + } + equals(other) { + if (other instanceof FRecordRef) { + return this.source === other.source; + } + return false; + } +} + +exports.FArray = FArray; +exports.FBoolean = FBoolean; +exports.FFunction = FFunction; +exports.FMap = FMap; +exports.FNumber = FNumber; +exports.FObject = FObject; +exports.FRecord = FRecord; +exports.FRecordRef = FRecordRef; +exports.FString = FString; +exports.FSymbol = FSymbol; +exports.FTypedArray = FTypedArray; +exports.ScriptError = ScriptError; +exports.arrayClass = arrayClass; +exports.beginCast = beginCast; +exports.createConsoleClass = createConsoleClass; +exports.exec = exec; +exports.mapClass = mapClass; +exports.symbolClass = symbolClass; +exports.test = test; +exports.toFValue = toFValue; +exports.toTypeName = toTypeName; +//# sourceMappingURL=index.js.map diff --git a/packages/flocon-script/dist/cjs/index.js.map b/packages/flocon-script/dist/cjs/index.js.map new file mode 100644 index 000000000..46d7e810a --- /dev/null +++ b/packages/flocon-script/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/ScriptError.ts","../../../src/utils/mapIterator.ts","../../../src/scriptValue/FType.ts","../../../src/scriptValue/tryToPropertyName.ts","../../../src/scriptValue/FFunction.ts","../../../src/scriptValue/FString.ts","../../../src/context.ts","../../../src/fPattern.ts","../../../src/range.ts","../../../src/fExpression.ts","../../../src/fStatement.ts","../../../src/getRestValues.ts","../../../src/utils/toJObject.ts","../../../src/scriptValue/FBoolean.ts","../../../src/scriptValue/FNumber.ts","../../../src/scriptValue/FSymbol.ts","../../../src/scriptValue/toTypeName.ts","../../../src/scriptValue/cast.ts","../../../src/scriptValue/toPropertyName.ts","../../../src/scriptValue/FObject.ts","../../../src/scriptValue/FRecord.ts","../../../src/scriptValue/FIterator.ts","../../../src/scriptValue/FArray.ts","../../../src/scriptValue/toPrimitive.ts","../../../src/scriptValue/compare.ts","../../../src/scriptValue/eqeq.ts","../../../src/scriptValue/eqeqeq.ts","../../../src/scriptValue/isTruthy.ts","../../../src/scriptValue/FGlobalRecord.ts","../../../src/scriptValue/FMap.ts","../../../src/scriptValue/toFValue.ts","../../../src/scriptValue/toFRecord.ts","../../../src/scriptValue/toFGlobalRecord.ts","../../../src/main.ts","../../../src/builtIn/Array.ts","../../../src/builtIn/console.ts","../../../src/builtIn/Map.ts","../../../src/builtIn/Symbol.ts","../../../src/scriptValue/FRecordRef.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FType","Option","mapToRecord","parse"],"mappings":";;;;;;AAEM,MAAO,WAAY,SAAQ,KAAK,CAAA;AAGd,IAAA,KAAA;IAFpB,WACI,CAAA,OAAgB,EACA,KAAa,EAAA;QAE7B,KAAK,CAAC,OAAO,CAAC;QAFE,IAAK,CAAA,KAAA,GAAL,KAAK;AAGrB,QAAA,IAAI,CAAC,IAAI,GAAG,aAAa;;IAGtB,OAAO,mBAAmB,CAAC,KAAa,EAAA;AAC3C,QAAA,OAAO,IAAI,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAC;;IAG/C,OAAO,gBAAgB,CAAC,KAAa,EAAA;AACxC,QAAA,OAAO,IAAI,WAAW,CAAC,iCAAiC,EAAE,KAAK,CAAC;;AAEvE;;UClBgB,WAAW,CAAS,MAA4B,EAAE,OAAsB,EAAA;AACrF,IAAA,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;AACvB,QAAA,MAAM,OAAO,CAAC,IAAI,CAAC;;AAE3B;;ACJiBA;AAAjB,CAAA,UAAiB,KAAK,EAAA;IACL,KAAO,CAAA,OAAA,GAAG,SAAS;IACnB,KAAM,CAAA,MAAA,GAAG,QAAQ;IACjB,KAAM,CAAA,MAAA,GAAG,QAAQ;IACjB,KAAM,CAAA,MAAA,GAAG,QAAQ;;IAGjB,KAAK,CAAA,KAAA,GAAG,OAAO;IAEf,KAAM,CAAA,MAAA,GAAG,QAAQ;IACjB,KAAQ,CAAA,QAAA,GAAG,UAAU;AACtC,CAAC,EAXgBA,aAAK,KAALA,aAAK,GAWrB,EAAA,CAAA,CAAA;;ACRM,MAAM,iBAAiB,GAAG,CAAC,KAAa,KAAiC;AAC5E,IAAA,QAAQ,KAAK,EAAE,IAAI;QACf,KAAKA,aAAK,CAAC,MAAM;QACjB,KAAKA,aAAK,CAAC,MAAM;AACb,YAAA,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC/B,KAAKA,aAAK,CAAC,MAAM;YACb,OAAO,KAAK,CAAC,GAAG;AACpB,QAAA;AACI,YAAA,OAAO,SAAS;;AAE5B,CAAC;;MCAY,SAAS,CAAA;AACkB,IAAA,IAAA;AAApC,IAAA,WAAA,CAAoC,IAAyC,EAAA;QAAzC,IAAI,CAAA,IAAA,GAAJ,IAAI;;AAExC,IAAA,IAAW,IAAI,GAAA;QACX,OAAOA,aAAK,CAAC,QAAQ;;AAGlB,IAAA,IAAI,CAAC,MAAuB,EAAA;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;;AAGzB,IAAA,SAAS,CAAC,MAAqB,EAAA;AACrC,QAAA,OAAOC,aAAM,CAAC,IAAI,EAAE;;AAGjB,IAAA,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAa,EAAA;AACvC,QAAA,MAAM,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC;AACvC,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACb,YAAA,OAAO,SAAS;;AAEpB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACxD,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YACzB,OAAO,eAAe,CAAC,KAAK;;;AAGhC,QAAA,OAAO,SAAS;;IAGb,GAAG,CAAC,EAAE,OAAO,EAAa,EAAA;QAC7B,MAAM,IAAI,WAAW,CAAC,sCAAsC,EAAE,OAAO,EAAE,KAAK,CAAC;;IAG1E,mBAAmB,GAAA;QACtB,OAAO,CAAC,MAAK;YACT;AACJ,SAAC,EAAE,QAAQ,EAAE;;IAGV,mBAAmB,GAAA;QACtB,OAAO,EAAE,MAAK;YACV;AACJ,SAAC,CAAC;;;IAIC,SAAS,GAAA;AACZ,QAAA,OAAO,MAAK;AACR,YAAA,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC;AACpC,SAAC;;AAER;;MCvDY,OAAO,CAAA;AACmB,IAAA,GAAA;AAAnC,IAAA,WAAA,CAAmC,GAAW,EAAA;QAAX,IAAG,CAAA,GAAA,GAAH,GAAG;;AAE9B,IAAA,OAAO,qBAAqB,CAAC,KAAc,EAAE,OAA4B,EAAA;QAC7E,IAAI,KAAK,EAAE;YACP,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;;;AAI7D,IAAA,IAAW,IAAI,GAAA;QACX,OAAOD,aAAK,CAAC,MAAM;;AAGhB,IAAA,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAa,EAAA;AACvC,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC;QAChD,QAAQ,YAAY;;AAEhB,YAAA,KAAK,UAAU;gBACX,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;AAC/B,oBAAA,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC7C,oBAAA,OAAO,IAAI;AACf,iBAAC,CAAC;AACN,YAAA;AACI,gBAAA,OAAO,SAAS;;;IAIrB,GAAG,CAAC,EAAE,OAAO,EAAa,EAAA;QAC7B,MAAM,IAAI,WAAW,CAAC,oCAAoC,EAAE,OAAO,EAAE,KAAK,CAAC;;IAGxE,OAAO,GAAA;QACV,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;;IAGjE,mBAAmB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;;IAGvB,mBAAmB,GAAA;AACtB,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG;;IAGb,oBAAoB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;;IAGvB,SAAS,GAAA;QACZ,OAAO,IAAI,CAAC,GAAG;;AAEtB;;MCnDY,OAAO,CAAA;AAYU,IAAA,UAAA;AAX1B;;;;;;;;AAQE;AACM,IAAA,SAAS,GAA+B,CAAC,IAAI,GAAG,EAAuB,CAAC;AAEhF,IAAA,WAAA,CAA0B,UAAmB,EAAA;QAAnB,IAAU,CAAA,UAAA,GAAV,UAAU;;IAE7B,GAAG,CAAC,IAAY,EAAE,KAAwB,EAAA;AAC7C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC;aACd,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;aAC5B,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,SAAS;AAC/B,aAAA,OAAO,EAAE,CAAC,CAAC,CAAC;AACjB,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,OAAO,KAAK,CAAC,GAAG;;AAEpB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AAC7B,YAAA,QAAQ,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,EAAE,KAAK,EAAE;AACrB,SAAA,CAAC;AACF,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACpB,YAAA,OAAO,IAAI;;AAEf,QAAA,OAAO,SAAS;;AAGb,IAAA,MAAM,CAAC,IAAY,EAAE,QAAgB,EAAE,KAAwB,EAAA;AAClE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC;aACd,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;aAC5B,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,SAAS;AAC/B,aAAA,OAAO,EAAE,CAAC,CAAC,CAAC;AACjB,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACf,gBAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAA,CAAA,CAAG,CAAC;;AAE5D,YAAA,KAAK,CAAC,GAAG,GAAG,QAAQ;YACpB;;AAEJ,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AAChB,YAAA,QAAQ,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;YAC3B,QAAQ;YACR,OAAO,EAAE,EAAE,KAAK,EAAE;AACrB,SAAA,CAAC;;AAGC,IAAA,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,IAAqB,EAAA;AAC7D,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1D,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AACxB,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;QAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAChC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,CAAA,iBAAA,EAAoB,IAAI,CAAI,CAAA,EAAA,IAAI,CAAE,CAAA,CAAC;;AAEvD,QAAA,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;AACf,YAAA,GAAG,EAAE,KAAK;YACV,OAAO,EAAE,IAAI,KAAK,OAAO;AAC5B,SAAA,CAAC;;IAGC,OAAO,GAAA;QACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;;IAG3B,QAAQ,GAAA;QACX,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;AAC5B,YAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;;AAEvD,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;;AAE3B;;ACvDK,SAAU,YAAY,CAAC,MAAmB,EAAA;IAC5C,OAAO;AACH,QAAA,GAAG,MAAM;AACT,QAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;KACtC;AACL;AAUO,MAAM,QAAQ,GAAG,CAAC,OAAgB,KAAc;AACnD,IAAA,QAAQ,OAAO,CAAC,IAAI;AAChB,QAAA,KAAK,cAAc;YACf,OAAO;AACH,gBAAA,GAAG,OAAO;gBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aACrE;AACL,QAAA,KAAK,eAAe;YAChB,OAAO;AACH,gBAAA,GAAG,OAAO;gBACV,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAG;AACnC,oBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE;AAC1B,wBAAA,OAAO,YAAY,CAAC,CAAC,CAAC;;AAE1B,oBAAA,OAAO,SAAS,CAAC,CAAC,CAAC;AACvB,iBAAC,CAAC;aACL;AACL,QAAA,KAAK,mBAAmB;YACpB,OAAO;AACH,gBAAA,GAAG,OAAO;AACV,gBAAA,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5B,gBAAA,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;aACpC;AACL,QAAA,KAAK,aAAa;;AAEd,YAAA,OAAO,YAAY,CAAC,OAAO,CAAC;AAChC,QAAA,KAAK,YAAY;AACb,YAAA,OAAO,OAAO;AAClB,QAAA,KAAK,kBAAkB;AACnB,YAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC;;AAE7C,CAAC;;ACtEM,MAAM,OAAO,GAAG,CAAC,MAAkD,KAAuB;AAC7F,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,QAAA,OAAO,SAAS;;;IAGpB,MAAM,KAAK,GAAG,MAA4C;AAC1D,IAAA,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;QAClE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;;AAEnC,IAAA,OAAO,SAAS;AACpB,CAAC;;AC4BD,SAAS,gBAAgB,CAAC,UAA2B,EAAA;IACjD,OAAO;AACH,QAAA,GAAG,UAAU;QACb,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAG;AAClC,YAAA,IAAI,CAAC,IAAI,IAAI,EAAE;AACX,gBAAA,OAAO,CAAC;;AAEZ,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,EAAE;gBAC5B,OAAO;AACH,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;iBACpC;;AAEL,YAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE;AAC1D,SAAC,CAAC;KACL;AACL;AAMA,SAAS,uBAAuB,CAAC,UAAmC,EAAA;AAChE,IAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9D,IAAA,IAAI,IAAmC;IACvC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;AAC3C,QAAA,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;;SACpC;AACH,QAAA,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;;IAEvC,OAAO;AACH,QAAA,GAAG,UAAU;QACb,IAAI;QACJ,MAAM;KACT;AACL;AAEA,SAAS,mBAAmB,CAAC,QAA4B,EAAA;AACrD,IAAA,OAAO,QAAQ;AACnB;AAQA,SAAS,qBAAqB,CAAC,UAAgC,EAAA;AAC3D,IAAA,IAAI,IAAqC;AACzC,IAAA,QAAQ,UAAU,CAAC,IAAI,CAAC,IAAI;AACxB,QAAA,KAAK,YAAY;AACb,YAAA,IAAI,GAAG,UAAU,CAAC,IAAI;YACtB;AACJ,QAAA,KAAK,kBAAkB;AACnB,YAAA,IAAI,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC;YACzC;AACJ,QAAA;AACI,YAAA,MAAM,IAAI,WAAW,CACjB,CAAI,CAAA,EAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAA,kBAAA,CAAoB,EAC5C,OAAO,CAAC,UAAU,CAAC,CACtB;;IAET,OAAO;AACH,QAAA,GAAG,UAAU;AACb,QAAA,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC;QAClD,IAAI;AACJ,QAAA,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;KACvC;AACL;AAMA,SAAS,mBAAmB,CAAC,UAA8B,EAAA;IACvD,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AACpC,QAAA,MAAM,IAAI,WAAW,CAAC,CAAI,CAAA,EAAA,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,kBAAA,CAAoB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;;IAE9F,OAAO;AACH,QAAA,GAAG,UAAU;AACb,QAAA,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;QACtC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAG;AACtC,YAAA,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE;AAC9B,gBAAA,MAAM,IAAI,WAAW,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAoB,kBAAA,CAAA,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;;AAEzE,YAAA,OAAO,WAAW,CAAC,GAAG,CAAC;AAC3B,SAAC,CAAC;KACL;AACL;AAEA,SAAS,eAAe,CAAC,QAAwB,EAAE,KAAwB,EAAA;IACvE,QAAQ,QAAQ;AACZ,QAAA,KAAK,IAAI;AACT,QAAA,KAAK,YAAY;YACb,MAAM,IAAI,WAAW,CAAC,CAAA,CAAA,EAAI,QAAQ,CAAoB,kBAAA,CAAA,EAAE,KAAK,CAAC;AAClE,QAAA;AACI,YAAA,OAAO,QAAQ;;AAE3B;AAQA,SAAS,iBAAiB,CAAC,UAA4B,EAAA;IACnD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC9C,QAAA,MAAM,IAAI,WAAW,CACjB,CAAI,CAAA,EAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAA,sCAAA,CAAwC,EAChE,UAAU,CAAC,IAAI,CAAC,KAAK,CACxB;;IAEL,OAAO;AACH,QAAA,GAAG,UAAU;QACb,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AACnE,QAAA,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;AAClC,QAAA,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;KACvC;AACL;AAKA,SAAS,gBAAgB,CAAC,UAA2B,EAAA;IACjD,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE;QACjD,OAAO;AACH,YAAA,GAAG,UAAU;AACb,YAAA,UAAU,EAAE,qBAAqB,CAAC,UAAU,CAAC,UAAU,CAAC;SAC3D;;IAEL,OAAO;AACH,QAAA,GAAG,UAAU;AACb,QAAA,UAAU,EAAE,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC;KACvD;AACL;AAUA,SAAS,sBAAsB,CAAC,UAAiC,EAAA;IAC7D,OAAO;AACH,QAAA,GAAG,UAAU;AACb,QAAA,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;AAClC,QAAA,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC;AAC5C,QAAA,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC;KACjD;AACL;AAIA,SAAS,QAAQ,CAAC,UAAmB,EAAA;AACjC,IAAA,IAAI,QAAQ,IAAI,UAAU,EAAE;QACxB,MAAM,IAAI,WAAW,CAAC,CAA2B,yBAAA,CAAA,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;;AAE3E,IAAA,IAAI,OAAO,IAAI,UAAU,EAAE;QACvB,MAAM,IAAI,WAAW,CAAC,CAA0B,wBAAA,CAAA,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;;AAE1E,IAAA,OAAO,UAAU;AACrB;AAOA,SAAS,kBAAkB,CAAC,UAA6B,EAAA;IACrD,OAAO;AACH,QAAA,GAAG,UAAU;AACb,QAAA,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;AAClC,QAAA,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;KACvC;AACL;AAMM,SAAU,iBAAiB,CAAC,UAA4B,EAAA;IAC1D,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;QACpC,MAAM,IAAI,WAAW,CAAC,0BAA0B,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;;IAE1E,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,mBAAmB,EAAE;;QAElD,MAAM,IAAI,WAAW,CAAC,sCAAsC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;;IAEtF,OAAO;AACH,QAAA,GAAG,UAAU;AACb,QAAA,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;AACtC,QAAA,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC;KAC7C;AACL;AAMA,SAAS,cAAc,CAAC,UAAyB,EAAA;IAC7C,OAAO;AACH,QAAA,GAAG,UAAU;QACb,GAAG,mBAAmB,CAAC,UAAU,CAAC;QAClC,IAAI,EAAE,UAAU,CAAC,IAAI;KACxB;AACL;AAeA,SAAS,iBAAiB,CAAC,UAA4B,EAAA;IACnD,OAAO;AACH,QAAA,GAAG,UAAU;QACb,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAG;AACzC,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE;AAC/B,gBAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;;AAEnE,YAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE;AACzD,SAAC,CAAC;KACL;AACL;AAOM,SAAU,SAAS,CAAC,QAAkB,EAAA;AACxC,IAAA,IAAI,GAA2B;AAC/B,IAAA,QAAQ,QAAQ,CAAC,GAAG,CAAC,IAAI;AACrB,QAAA,KAAK,YAAY;AACb,YAAA,GAAG,GAAG,QAAQ,CAAC,GAAG;YAClB;AACJ,QAAA,KAAK,SAAS;AACV,YAAA,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC5B;AACJ,QAAA;AACI,YAAA,MAAM,IAAI,WAAW,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAoB,kBAAA,CAAA,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;;AAE/F,IAAA,QAAQ,QAAQ,CAAC,KAAK,CAAC,IAAI;AACvB,QAAA,KAAK,cAAc;AACnB,QAAA,KAAK,eAAe;AACpB,QAAA,KAAK,aAAa;QAClB,KAAK,mBAAmB,EAAE;AACtB,YAAA,MAAM,IAAI,WAAW,CACjB,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAoB,kBAAA,CAAA,EAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC1B;;;AAKT,IAAA,QAAQ,QAAQ,CAAC,IAAI;AACjB,QAAA,KAAK,MAAM;YACP;AACJ,QAAA;AACI,YAAA,MAAM,IAAI,WAAW,CAAC,CAAI,CAAA,EAAA,QAAQ,CAAC,IAAI,CAAA,kBAAA,CAAoB,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;IAG7F,OAAO;AACH,QAAA,GAAG,QAAQ;QACX,GAAG;AACH,QAAA,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClC,IAAI,EAAE,QAAQ,CAAC,IAAI;KACtB;AACL;AAMA,SAAS,qBAAqB,CAAC,UAAgC,EAAA;IAC3D,OAAO;AACH,QAAA,GAAG,UAAU;QACb,GAAG,mBAAmB,CAAC,UAAU,CAAC;QAClC,IAAI,EAAE,UAAU,CAAC,IAAI;KACxB;AACL;AAIA,SAAS,cAAc,CAAC,QAAuB,EAAE,KAAwB,EAAA;IACrE,QAAQ,QAAQ;AACZ,QAAA,KAAK,QAAQ;AACb,QAAA,KAAK,MAAM;YACP,MAAM,IAAI,WAAW,CAAC,CAAA,CAAA,EAAI,QAAQ,CAAoB,kBAAA,CAAA,EAAE,KAAK,CAAC;AAClE,QAAA;AACI,YAAA,OAAO,QAAQ;;AAE3B;AAOA,SAAS,gBAAgB,CAAC,UAA2B,EAAA;IACjD,OAAO;AACH,QAAA,GAAG,UAAU;QACb,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AAClE,QAAA,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC;KAC7C;AACL;AAKA,SAAS,iBAAiB,CAAC,UAA4B,EAAA;AACnD,IAAA,QAAQ,UAAU,CAAC,QAAQ,CAAC,IAAI;AAC5B,QAAA,KAAK,YAAY;YACb,OAAO;AACH,gBAAA,GAAG,UAAU;gBACb,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAChC;AACL,QAAA,KAAK,kBAAkB;YACnB,OAAO;AACH,gBAAA,GAAG,UAAU;AACb,gBAAA,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC;aACnD;AACL,QAAA;;YAEI,MAAM,IAAI,WAAW,CAAC,oCAAoC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;;AAE5F;AAoBM,SAAU,WAAW,CAAC,UAAsB,EAAA;AAC9C,IAAA,QAAQ,UAAU,CAAC,IAAI;AACnB,QAAA,KAAK,iBAAiB;AAClB,YAAA,OAAO,gBAAgB,CAAC,UAAU,CAAC;AACvC,QAAA,KAAK,yBAAyB;AAC1B,YAAA,OAAO,uBAAuB,CAAC,UAAU,CAAC;AAC9C,QAAA,KAAK,sBAAsB;AACvB,YAAA,OAAO,qBAAqB,CAAC,UAAU,CAAC;AAC5C,QAAA,KAAK,kBAAkB;AACnB,YAAA,OAAO,iBAAiB,CAAC,UAAU,CAAC;AACxC,QAAA,KAAK,gBAAgB;AACjB,YAAA,OAAO,qBAAqB,CAAC,UAAU,CAAC;AAC5C,QAAA,KAAK,iBAAiB;AAClB,YAAA,OAAO,gBAAgB,CAAC,UAAU,CAAC;AACvC,QAAA,KAAK,uBAAuB;AACxB,YAAA,OAAO,sBAAsB,CAAC,UAAU,CAAC;AAC7C,QAAA,KAAK,YAAY;AACb,YAAA,OAAO,UAAU;AACrB,QAAA,KAAK,SAAS;AACV,YAAA,OAAO,QAAQ,CAAC,UAAU,CAAC;AAC/B,QAAA,KAAK,mBAAmB;AACpB,YAAA,OAAO,kBAAkB,CAAC,UAAU,CAAC;AACzC,QAAA,KAAK,kBAAkB;AACnB,YAAA,OAAO,iBAAiB,CAAC,UAAU,CAAC;AACxC,QAAA,KAAK,eAAe;AAChB,YAAA,OAAO,cAAc,CAAC,UAAU,CAAC;AACrC,QAAA,KAAK,kBAAkB;AACnB,YAAA,OAAO,iBAAiB,CAAC,UAAU,CAAC;AACxC,QAAA,KAAK,gBAAgB;AACjB,YAAA,OAAO,UAAU;AACrB,QAAA,KAAK,iBAAiB;AAClB,YAAA,OAAO,gBAAgB,CAAC,UAAU,CAAC;AACvC,QAAA,KAAK,kBAAkB;AACnB,YAAA,OAAO,iBAAiB,CAAC,UAAU,CAAC;AACxC,QAAA;AACI,YAAA,MAAM,IAAI,WAAW,CAAC,CAAA,CAAA,EAAI,UAAU,CAAC,IAAI,CAAoB,kBAAA,CAAA,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;;AAE/F;;ACpZM,SAAU,eAAe,CAAC,SAAyB,EAAA;IACrD,OAAO;AACH,QAAA,GAAG,SAAS;AACZ,QAAA,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;KAC/C;AACL;AAMA,MAAM,oBAAoB,GAAG,CAAC,SAA8B,KAAI;IAC5D,OAAO;AACH,QAAA,GAAG,SAAS;AACZ,QAAA,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC;KAChD;AACL,CAAC;AAqCD,MAAM,oBAAoB,GAAG,CAAC,SAA8B,KAAI;AAC5D,IAAA,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE;AAC1B,QAAA,MAAM,IAAI,WAAW,CACjB,CAAA,CAAA,EAAI,SAAS,CAAC,IAAI,CAAwC,sCAAA,CAAA,EAC1D,OAAO,CAAC,SAAS,CAAC,CACrB;;IAEL,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAG;QAChD,OAAO;AACH,YAAA,GAAG,CAAC;AACJ,YAAA,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;SACtD;AACL,KAAC,CAAC;IACF,OAAO;AACH,QAAA,GAAG,SAAS;QACZ,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,YAAY;KACf;AACL,CAAC;AAeK,SAAU,UAAU,CAAC,SAAoD,EAAA;AAC3E,IAAA,QAAQ,SAAS,CAAC,IAAI;AAClB,QAAA,KAAK,gBAAgB;AACjB,YAAA,OAAO,eAAe,CAAC,SAAS,CAAC;AACrC,QAAA,KAAK,gBAAgB;AACjB,YAAA,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,EAAE;AACzB,gBAAA,MAAM,IAAI,WAAW,CAAC,0BAA0B,CAAC;;AAErD,YAAA,OAAO,SAAS;AACpB,QAAA,KAAK,mBAAmB;AACpB,YAAA,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,EAAE;AACzB,gBAAA,MAAM,IAAI,WAAW,CAAC,0BAA0B,CAAC;;AAErD,YAAA,OAAO,SAAS;AACpB,QAAA,KAAK,qBAAqB;AACtB,YAAA,OAAO,oBAAoB,CAAC,SAAS,CAAC;AAC1C,QAAA,KAAK,gBAAgB;YACjB,OAAO;AACH,gBAAA,GAAG,SAAS;AACZ,gBAAA,IAAI,EACA,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK;AACpB,sBAAE,oBAAoB,CAAC,SAAS,CAAC,IAAI;AACrC,sBAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;AAClC,gBAAA,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC;AACnC,gBAAA,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;aACnC;QACL,KAAK,cAAc,EAAE;AACjB,YAAA,IAAI,IAA2B;AAC/B,YAAA,IAAI,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE;AACxB,gBAAA,IAAI,GAAG,SAAS,CAAC,IAAI;;iBAClB,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE;AACtD,gBAAA,IAAI,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC;;iBACxC;AACH,gBAAA,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;;YAEtC,OAAO;AACH,gBAAA,GAAG,SAAS;gBACZ,IAAI;gBACJ,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC3E,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;AACnF,gBAAA,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;aACnC;;AAEL,QAAA,KAAK,aAAa;YACd,OAAO;AACH,gBAAA,GAAG,SAAS;AACZ,gBAAA,SAAS,EACL,SAAS,CAAC,SAAS,IAAI;sBACjB,SAAS,CAAC;AACZ,sBAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;AACzC,gBAAA,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC;AAC5C,gBAAA,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;aACpC;AACL,QAAA,KAAK,iBAAiB;YAClB,OAAO;AACH,gBAAA,GAAG,SAAS;AACZ,gBAAA,QAAQ,EACJ,SAAS,CAAC,QAAQ,IAAI;sBAChB,SAAS,CAAC;AACZ,sBAAE,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC;aAC5C;QACL,KAAK,iBAAiB,EAAE;YACpB,OAAO;AACH,gBAAA,GAAG,SAAS;gBACZ,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;AAC7B,oBAAA,GAAG,CAAC;AACJ,oBAAA,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;oBAChD,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,iBAAA,CAAC,CAAC;AACH,gBAAA,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC;aACpD;;AAEL,QAAA,KAAK,qBAAqB;AACtB,YAAA,OAAO,oBAAoB,CAAC,SAAS,CAAC;AAC1C,QAAA;AACI,YAAA,MAAM,IAAI,WAAW,CAAC,CAAA,CAAA,EAAI,SAAS,CAAC,IAAI,CAAoB,kBAAA,CAAA,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;;AAE7F;;ACnMO,MAAM,aAAa,GAAG,CAAI,QAA6B,KAAI;IAC9D,MAAM,MAAM,GAAQ,EAAE;IACtB,OAAO,IAAI,EAAE;AACT,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE;AAC5B,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,OAAO,MAAM;;AAEjB,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;AAE/B,CAAC;;ACPD;AACO,MAAM,SAAS,GAAG,CAAC,MAAc,KAAI;AACxC,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,QAAA,OAAO,MAAM;;AAEjB,IAAA,OAAO,MAAM,CAAC,SAAS,EAAE;AAC7B,CAAC;;MCAY,QAAQ,CAAA;AACkB,IAAA,GAAA;AAAnC,IAAA,WAAA,CAAmC,GAAY,EAAA;QAAZ,IAAG,CAAA,GAAA,GAAH,GAAG;;AAE9B,IAAA,OAAO,qBAAqB,CAAC,KAAc,EAAE,OAA4B,EAAA;QAC7E,IAAI,KAAK,EAAE;YACP,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;;;AAI7D,IAAA,IAAW,IAAI,GAAA;QACX,OAAOA,aAAK,CAAC,OAAO;;AAGjB,IAAA,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAa,EAAA;AACvC,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC;QAChD,QAAQ,YAAY;AAChB,YAAA,KAAK,UAAU;gBACX,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;AAC/B,oBAAA,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC3C,iBAAC,CAAC;AACN,YAAA;AACI,gBAAA,OAAO,SAAS;;;IAIrB,GAAG,CAAC,EAAE,OAAO,EAAa,EAAA;QAC7B,MAAM,IAAI,WAAW,CAAC,qCAAqC,EAAE,OAAO,EAAE,KAAK,CAAC;;IAGzE,mBAAmB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;;IAGvB,mBAAmB,GAAA;AACtB,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG;;IAGb,SAAS,GAAA;QACZ,OAAO,IAAI,CAAC,GAAG;;AAEtB;;MCxCY,OAAO,CAAA;AACmB,IAAA,GAAA;AAAnC,IAAA,WAAA,CAAmC,GAAW,EAAA;QAAX,IAAG,CAAA,GAAA,GAAH,GAAG;;AAE9B,IAAA,OAAO,qBAAqB,CAAC,KAAc,EAAE,OAA4B,EAAA;QAC7E,IAAI,KAAK,EAAE;YACP,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;;;AAI7D,IAAA,IAAW,IAAI,GAAA;QACX,OAAOA,aAAK,CAAC,MAAM;;AAGhB,IAAA,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAa,EAAA;AACvC,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC;QAChD,QAAQ,YAAY;;AAEhB,YAAA,KAAK,UAAU;gBACX,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC7C,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;oBACrB,OAAO,IAAI,OAAO,CACd,IAAI,CAAC,GAAG,CAAC,QAAQ,CACb,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,CAC9D,CACJ;AACL,iBAAC,CAAC;AACN,YAAA;AACI,gBAAA,OAAO,SAAS;;;IAIrB,GAAG,CAAC,EAAE,OAAO,EAAa,EAAA;QAC7B,MAAM,IAAI,WAAW,CAAC,oCAAoC,EAAE,OAAO,EAAE,KAAK,CAAC;;IAGxE,mBAAmB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;;IAGvB,mBAAmB,GAAA;AACtB,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG;;IAGb,SAAS,GAAA;QACZ,OAAO,IAAI,CAAC,GAAG;;AAEtB;;MChDY,OAAO,CAAA;AACmB,IAAA,GAAA;AAAnC,IAAA,WAAA,CAAmC,GAAW,EAAA;QAAX,IAAG,CAAA,GAAA,GAAH,GAAG;;AAE9B,IAAA,OAAO,qBAAqB,CAAC,KAAc,EAAE,OAA4B,EAAA;QAC7E,IAAI,KAAK,EAAE;YACP,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;;;AAI7D,IAAA,IAAW,IAAI,GAAA;QACX,OAAOA,aAAK,CAAC,MAAM;;AAGhB,IAAA,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAa,EAAA;AACvC,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC;QAChD,QAAQ,YAAY;AAChB,YAAA,KAAK,UAAU;gBACX,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;AAC/B,oBAAA,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC3C,iBAAC,CAAC;AACN,YAAA;AACI,gBAAA,OAAO,SAAS;;;IAIrB,GAAG,CAAC,EAAE,OAAO,EAAa,EAAA;QAC7B,MAAM,IAAI,WAAW,CAAC,oCAAoC,EAAE,OAAO,EAAE,KAAK,CAAC;;IAGxE,mBAAmB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;;IAGvB,mBAAmB,GAAA;AACtB,QAAA,MAAM,IAAI,WAAW,CAAC,gCAAgC,CAAC;;IAGpD,SAAS,GAAA;QACZ,OAAO,IAAI,CAAC,GAAG;;AAEtB;;AC/CY,MAAA,UAAU,GAAG,CAAC,KAAa,KAAI;AACxC,IAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAChB,QAAA,OAAO,MAAM;;AAEjB,IAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,QAAA,OAAO,WAAW;;IAEtB,OAAO,KAAK,CAAC,IAAI;AACrB;;ACeA,MAAM,mBAAmB,GAAG,CAAC,MAAmB,KAAI;AAChD,IAAA,MAAM,IAAI,GAAG;QACT,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI;QAC7B,MAAM,CAAC,OAAO,GAAG,SAAS,GAAG,IAAI;QACjC,MAAM,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI;QACnC,MAAM,CAAC,IAAI,GAAG,MAAM,GAAG,IAAI;QAC3B,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI;QAC/B,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI;QAC/B,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI;QAC/B,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI;QAC/B,MAAM,CAAC,SAAS,GAAG,WAAW,GAAG,IAAI;AACxC,KAAA,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,KAAI;AACpB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,YAAA,OAAO,IAAI;;AAEf,QAAA,IAAI,IAAI,KAAK,EAAE,EAAE;AACb,YAAA,OAAO,IAAI;;AAEf,QAAA,OAAO,CAAG,EAAA,IAAI,CAAK,EAAA,EAAA,IAAI,EAAE;KAC5B,EAAE,EAAE,CAAC;IACN,OAAO,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,CAAG;AACtB,CAAC;AAED,MAAM,aAAa,CAAA;AAEM,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,uBAAA;AACA,IAAA,OAAA;AAJrB,IAAA,WAAA,CACqB,MAAc,EACd,UAAuB,EACvB,uBAAkC,EAClC,OAA4B,EAAA;QAH5B,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB;QACvB,IAAO,CAAA,OAAA,GAAP,OAAO;;AAGrB,IAAA,OAAO,KAAK,CAAC,MAAc,EAAE,OAA4B,EAAA;AAC5D,QAAA,OAAO,IAAI,aAAa,CAAQ,MAAM,EAAE,EAAE,EAAEC,aAAM,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC;;IAGhE,IAAI,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE;YACrC,MAAM,IAAI,WAAW,CACjB,CAAkB,eAAA,EAAA,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAkB,eAAA,EAAA,UAAU,CAC9E,IAAI,CAAC,MAAM,CACd,CAAE,CAAA,EACH,IAAI,CAAC,OAAO,EAAE,KAAK,CACtB;;AAEL,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK;;IAGtC,QAAQ,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,MAAM,YAAY,MAAM,EAAE;AAC/B,YAAA,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,MAAM,EACX,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EACnCA,aAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EACxB,IAAI,CAAC,OAAO,CACf;;AAEL,QAAA,OAAO,IAAI;;IAGR,UAAU,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,YAAY,QAAQ,EAAE;AACjC,YAAA,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,MAAM,EACX,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,EACrCA,aAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAC5B,IAAI,CAAC,OAAO,CACf;;AAEL,QAAA,OAAO,IAAI;;IAGR,WAAW,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,MAAM,YAAY,SAAS,EAAE;AAClC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;YAC1B,OAAO,IAAI,aAAa,CACpB,MAAM,EACN,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,EACtCA,aAAM,CAAC,IAAI,CACP,CAAC,KAAc,KAAK,CAAC,IAAc,KAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAC1D,EACD,IAAI,CAAC,OAAO,CACf;;AAEL,QAAA,OAAO,IAAI;;IAGR,OAAO,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;AACtB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;YAC1B,OAAO,IAAI,aAAa,CACpB,MAAM,EACN,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,EAClCA,aAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACjB,IAAI,CAAC,OAAO,CACf;;AAEL,QAAA,OAAO,IAAI;;IAGR,SAAS,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,YAAY,OAAO,EAAE;AAChC,YAAA,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,MAAM,EACX,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EACpCA,aAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAC5B,IAAI,CAAC,OAAO,CACf;;AAEL,QAAA,OAAO,IAAI;;IAGR,SAAS,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,YAAY,OAAO,EAAE;AAChC,YAAA,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,MAAM,EACX,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EACpCA,aAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EACxB,IAAI,CAAC,OAAO,CACf;;AAEL,QAAA,OAAO,IAAI;;IAGR,SAAS,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,YAAY,OAAO,EAAE;AAChC,YAAA,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,MAAM,EACX,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EACpCA,aAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAC5B,IAAI,CAAC,OAAO,CACf;;AAEL,QAAA,OAAO,IAAI;;IAGR,SAAS,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,YAAY,OAAO,EAAE;AAChC,YAAA,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,MAAM,EACX,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EACpCA,aAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAC5B,IAAI,CAAC,OAAO,CACf;;AAEL,QAAA,OAAO,IAAI;;IAGR,YAAY,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;AAC3B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;YAC1B,OAAO,IAAI,aAAa,CACpB,MAAM,EACN,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EACvCA,aAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EACtB,IAAI,CAAC,OAAO,CACf;;AAEL,QAAA,OAAO,IAAI;;AAElB;MAEY,SAAS,GAAG,CAAC,MAAc,EAAE,OAA4B,KAAI;IACtE,OAAO,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;AAC/C;;ACzLA;AACO,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,OAA4B,KAAqB;IAC3F,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;AACnF,IAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC5B,QAAA,OAAO,MAAM,CAAC,QAAQ,EAAE;;AAE5B,IAAA,OAAO,MAAM;AACjB,CAAC;;MCLqB,OAAO,CAAA;AAGlB,IAAA,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAa,EAAA;AACvC,QAAA,MAAM,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC;AACvC,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACb,YAAA,OAAO,SAAS;;QAEpB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;;AAMlC,IAAA,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAa,EAAA;QACjD,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;;AAG5C,IAAA,IAAW,IAAI,GAAA;QACX,OAAOD,aAAK,CAAC,MAAM;;IAGhB,mBAAmB,GAAA;;AAEtB,QAAA,OAAO,EAAE,CAAC,QAAQ,EAAE;;IAGjB,mBAAmB,GAAA;QACtB,OAAO,CAAC,EAAE;;AAIjB;;AChCD,MAAM,yBAAyB,GAAG,+BAA+B;AAEjE;AACM,MAAO,OAAQ,SAAQ,OAAO,CAAA;AAChB,IAAA,MAAM;AAEtB,IAAA,WAAA,CAAmB,IAAc,EAAA;AAC7B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;;aAC/B;AACH,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE;;;AAIZ,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAiB,EAAA;AACtD,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YACzB,MAAM,IAAI,WAAW,CAAC,yBAAyB,EAAE,OAAO,EAAE,KAAK,CAAC;;QAEpE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;;AAGvB,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAiB,EAAA;AAChE,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YACzB,MAAM,IAAI,WAAW,CAAC,yBAAyB,EAAE,OAAO,EAAE,KAAK,CAAC;;AAEpE,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC;;IAGtC,KAAK,GAAA;AACR,QAAA,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;;AAGrB,IAAA,OAAO,CAAC,UAAgD,EAAA;AAC3D,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;;IAGnB,SAAS,GAAA;AACrB,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AACrC,SAAC,CAAC;AACF,QAAA,OAAOE,iBAAW,CAAC,MAAM,CAAC;;AAEjC;;ACvCK,MAAO,SAAU,SAAQ,OAAO,CAAA;AAEb,IAAA,MAAA;AACA,IAAA,YAAA;IAFrB,WACqB,CAAA,MAAiC,EACjC,YAAwC,EAAA;AAEzD,QAAA,KAAK,EAAE;QAHU,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAY,CAAA,YAAA,GAAZ,YAAY;;AAKzB,IAAA,OAAO,qBAAqB,CAAC,KAAc,EAAE,OAA4B,EAAA;QAC7E,IAAI,KAAK,EAAE;YACP,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;;;IAItD,OAAO,MAAM,CAAC,MAAgC,EAAA;QACjD,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAW,CAAC;;AAGlD,IAAA,IAAW,IAAI,GAAA;QACX,OAAOF,aAAK,CAAC,MAAM;;AAGP,IAAA,OAAO,CAAC,MAAqB,EAAA;AACzC,QAAA,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM;QAC/B,QAAQ,GAAG;AACP,YAAA,KAAK,MAAM;gBACP,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;AAC/B,oBAAA,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,oBAAA,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE;oBAC5B,MAAM,CAAC,GAAG,CAAC;AACP,wBAAA,QAAQ,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC;wBAC9B,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;wBACvC,OAAO;AACV,qBAAA,CAAC;oBACF,MAAM,CAAC,GAAG,CAAC;AACP,wBAAA,QAAQ,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC;AAC7B,wBAAA,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,GAAG,SAAS,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;wBACvE,OAAO;AACV,qBAAA,CAAC;AACF,oBAAA,OAAO,MAAM;AACjB,iBAAC,CAAC;;AAIV,QAAA,OAAO,SAAS;;AAGJ,IAAA,OAAO,CAAC,MAAqB,EAAA;QACzC,MAAM,IAAI,WAAW,CAAC,sCAAsC,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;;IAGjF,OAAO,GAAA;AACV,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;;IAG9C,mBAAmB,GAAA;;AAE/B,QAAA,OAAO,mBAAmB;;IAGd,mBAAmB,GAAA;AAC/B,QAAA,OAAO,GAAG;;IAGE,SAAS,GAAA;QACrB,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE5E;;MCpEY,MAAM,CAAA;AAEM,IAAA,MAAA;AACA,IAAA,OAAA;AACA,IAAA,WAAA;AAHrB,IAAA,WAAA,CACqB,MAAiB,EACjB,OAAmC,EACnC,WAAqE,EAAA;QAFrE,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAO,CAAA,OAAA,GAAP,OAAO;QACP,IAAW,CAAA,WAAA,GAAX,WAAW;;AAGxB,IAAA,OAAO,qBAAqB,CAAC,KAAc,EAAE,OAA4B,EAAA;QAC7E,IAAI,KAAK,EAAE;YACP,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;;;IAItD,OAAO,MAAM,CAAC,MAAgB,EAAA;AACjC,QAAA,OAAO,IAAI,MAAM,CACb,MAAM,EACN,CAAC,IAAI,CAAW,EAChB,CAAC,IAAI,CAAC,CACT;;AAGL,IAAA,IAAW,IAAI,GAAA;QACX,OAAOA,aAAK,CAAC,KAAK;;IAGf,QAAQ,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;IAGzC,OAAO,GAAA;QACV,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;IAGpE,OAAO,YAAY,CAAC,KAAkC,EAAA;QAC1D,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC5C,YAAA,OAAO,KAAK;;QAEhB,OAAO,KAAK,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGhD,IAAA,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAa,EAAA;AACvC,QAAA,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC;AACzC,QAAA,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAA0B,CAAC;AACrD,YAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,gBAAA,OAAO,SAAS;;AAEpB,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;QAE9B,MAAM,YAAY,GAAG,KAAK;QAC1B,QAAQ,YAAY;AAChB,YAAA,KAAK,QAAQ;gBACT,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AACzE,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,KAC5C,SAAS,CAAC,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CACtD;AACD,oBAAA,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAC7B,iBAAC,CAAC;AACN,YAAA,KAAK,MAAM;gBACP,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AACzE,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAC1C,SAAS,CAAC,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CACtD;AACD,oBAAA,OAAO,GAAG;AACd,iBAAC,CAAC;AACN,YAAA,KAAK,SAAS;gBACV,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC5C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;oBAC1E,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KACjC,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1C;AACD,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;AACN,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC5C,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AACvE,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KACzC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CACvC;AACD,oBAAA,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAC7B,iBAAC,CAAC;AACN,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;AAC/B,oBAAA,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AAChC,oBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAC/B,iBAAC,CAAC;AACN,YAAA,KAAK,MAAM;gBACP,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC5C,oBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,IAAG;wBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC;AAC/C,wBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,qBAAC,CAAC;oBACF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC1C,iBAAC,CAAC;AACN,YAAA,KAAK,OAAO;gBACR,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;AAC/B,oBAAA,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAClC,oBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAC/B,iBAAC,CAAC;AACN,YAAA,KAAK,SAAS;gBACV,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC5C,IAAI,CAAC,WAAW,CAAO,CAAC,IAAI,EAAE,GAAG,KAAI;wBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC;AAC/C,wBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;qBAChC,EAAE,SAAS,CAAC;oBACb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC1C,iBAAC,CAAC;YACN,KAAK,MAAM,CAAC,QAAQ;gBAChB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;AAC/B,oBAAA,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;oBAC7C,OAAO,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,iBAAC,CAAC;;AAIV,QAAA,OAAO,SAAS;;AAGb,IAAA,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAa,EAAA;QACjD,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC/C,QAAA,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,KAA0B,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC;YAC7E;;QAEJ,MAAM,IAAI,WAAW,CACjB,CAAA,CAAA,EAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAA,kBAAA,CAAoB,EACpE,OAAO,EAAE,KAAK,CACjB;;IAGE,mBAAmB,GAAA;QACtB,OAAO,IAAI,CAAC,QAAQ;aACf,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE;AACjC,aAAA,QAAQ,EAAE;;IAGZ,mBAAmB,GAAA;AACtB,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;;;IAIvD,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;;AAEvE;AAEK,MAAO,WAAe,SAAQ,MAAM,CAAA;AACtC,IAAA,WAAA,CACI,MAAW,EACX,OAA6B,EAC7B,WAA+D,EAAA;AAE/D,QAAA,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,OAAO,CAAC,KAAU,CAAC,EAAE,WAAW,CAAC;;AAE/D;;AC9KD;AACO,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,IAAqC,KAAI;AAChF,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,QAAA,OAAO,KAAK;;AAGhB,IAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACnB,QAAA,OAAO,KAAK,CAAC,mBAAmB,EAAE;;AAGtC,IAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACnB,QAAA,OAAO,KAAK,CAAC,mBAAmB,EAAE;;IAGtC,MAAM,GAAG,GAAgB,KAAK;AAC9B,IAAA,IAAI,GAAG,CAAC,oBAAoB,IAAI,IAAI,EAAE;AAClC,QAAA,OAAO,GAAG,CAAC,mBAAmB,EAAE;;AAGpC,IAAA,OAAO,GAAG,CAAC,oBAAoB,EAAE;AACrC,CAAC;;AChBD,MAAM,OAAO,GAAG,CACZ,IAAY,EACZ,KAAa,EACb,IAAiD,EACjD,QAA8C,KAC3C;AACH,IAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACpB,QAAA,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;;AAEtD,IAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAEM,MAAM,eAAe,GAAG,CAC3B,IAAY,EACZ,KAAa,EACb,IAAqC,EACrC,QAA2C,KAC3C;AACA,IAAA,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAC5B,IAAY,EACZ,KAAa,EACb,IAAiD,EACjD,QAA4C,KAC5C;AACA,IAAA,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAEM,MAAM,uBAAuB,GAAG,CACnC,IAAY,EACZ,KAAa,EACb,IAAe,EACf,QAAoD,KACpD;AACA,IAAA,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC;AAC9C,IAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACvB,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC;;AAEzB,IAAA,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC;AACzB,CAAC;;AChDD;AAOA;AACO,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,CAAS,KAAa;AAClD,IAAA,IAAI,CAAC,IAAI,IAAI,EAAE;QACX,OAAO,CAAC,IAAI,IAAI;;AAEpB,IAAA,IAAI,CAAC,IAAI,IAAI,EAAE;AACX,QAAA,OAAO,KAAK;;IAEhB,MAAM,aAAa,GAAgB,CAAC;AACpC,IAAA,IAAI,aAAa,CAAC,MAAM,IAAI,IAAI,EAAE;QAC9B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC;;AAGxC,IAAA,QAAQ,CAAC,CAAC,IAAI;QACV,KAAKA,aAAK,CAAC,OAAO;QAClB,KAAKA,aAAK,CAAC,MAAM;QACjB,KAAKA,aAAK,CAAC,MAAM;QACjB,KAAKA,aAAK,CAAC,MAAM;AACb,YAAA,QAAQ,CAAC,CAAC,IAAI;gBACV,KAAKA,aAAK,CAAC,OAAO;gBAClB,KAAKA,aAAK,CAAC,MAAM;gBACjB,KAAKA,aAAK,CAAC,MAAM;;AAEb,oBAAA,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG;AACzB,gBAAA;;oBAEI,OAAO,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC;;AAErD,QAAA;AACI,YAAA,QAAQ,CAAC,CAAC,IAAI;gBACV,KAAKA,aAAK,CAAC,OAAO;gBAClB,KAAKA,aAAK,CAAC,MAAM;gBACjB,KAAKA,aAAK,CAAC,MAAM;gBACjB,KAAKA,aAAK,CAAC,MAAM;;oBAEb,OAAO,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG;AAC7C,gBAAA;oBACI,OAAO,CAAC,KAAK,CAAC;;;AAGlC,CAAC;;AC3CM,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,KAAa;AACpD,IAAA,IAAI,CAAC,KAAK,IAAI,EAAE;QACZ,OAAO,CAAC,KAAK,IAAI;;AAErB,IAAA,IAAI,CAAC,KAAK,SAAS,EAAE;QACjB,OAAO,CAAC,KAAK,SAAS;;IAE1B,MAAM,aAAa,GAAgB,CAAC;AACpC,IAAA,IAAI,aAAa,CAAC,MAAM,IAAI,IAAI,EAAE;QAC9B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;;AAEzC,IAAA,QAAQ,CAAC,CAAC,IAAI;QACV,KAAKA,aAAK,CAAC,OAAO;QAClB,KAAKA,aAAK,CAAC,MAAM;QACjB,KAAKA,aAAK,CAAC,MAAM;QACjB,KAAKA,aAAK,CAAC,MAAM;YACb,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE;AACpB,gBAAA,OAAO,KAAK;;AAEhB,YAAA,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;AAC1B,QAAA;YACI,OAAO,CAAC,KAAK,CAAC;;AAE1B,CAAC;;ACxBD;AACO,MAAM,QAAQ,GAAG,CAAC,KAAa,KAAa;AAC/C,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,QAAA,OAAO,KAAK;;AAEhB,IAAA,QAAQ,KAAK,CAAC,IAAI;QACd,KAAKA,aAAK,CAAC,OAAO;QAClB,KAAKA,aAAK,CAAC,MAAM;QACjB,KAAKA,aAAK,CAAC,MAAM;QACjB,KAAKA,aAAK,CAAC,MAAM;AACb,YAAA,IAAI,KAAK,CAAC,GAAG,EAAE;AACX,gBAAA,OAAO,IAAI;;iBACR;AACH,gBAAA,OAAO,KAAK;;AAEpB,QAAA;AACI,YAAA,OAAO,IAAI;;AAEvB,CAAC;;AChBD,MAAM,IAAI,GAAG,MAAM;AACnB,MAAM,UAAU,GAAG,YAAY;AAE/B;AACA;AACM,MAAO,aAAc,SAAQ,OAAO,CAAA;AACtC,IAAA,WAAA,CAAmB,IAAc,EAAA;QAC7B,KAAK,CAAC,IAAI,CAAC;;AAGI,IAAA,OAAO,CAAC,MAAqB,EAAA;QAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;QACzC,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,UAAU,EAAE;AACpD,YAAA,OAAO,IAAI;;AAEf,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;;AAGb,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAiB,EAAA;AAChE,QAAA,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE;QAClC,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,UAAU,EAAE;YACpD,MAAM,IAAI,WAAW,CACjB,CAAkB,eAAA,EAAA,WAAW,CAAoB,kBAAA,CAAA,EACjD,OAAO,EAAE,KAAK,CACjB;;QAEL,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;;AAEhD;;AClBK,MAAO,IAAK,SAAQ,OAAO,CAAA;AAER,IAAA,MAAA;AACA,IAAA,YAAA;AACA,IAAA,gBAAA;AAHrB,IAAA,WAAA,CACqB,MAAyB,EACzB,YAAwC,EACxC,gBAA0E,EAAA;AAE3F,QAAA,KAAK,EAAE;QAJU,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;;AAK7B,IAAA,OAAO,qBAAqB,CAAC,KAAc,EAAE,OAA4B,EAAA;QAC7E,IAAI,KAAK,EAAE;YACP,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;;;IAItD,OAAO,MAAM,CAAC,MAAwB,EAAA;AACzC,QAAA,OAAO,IAAI,IAAI,CACX,MAAM,EACN,CAAC,IAAI,CAAW,EAChB,CAAC,IAAI,CAAC,CACT;;IAGG,cAAc,CAAC,MAAc,EAAE,OAA4B,EAAA;AAC/D,QAAA,OAAO,SAAS,CAAC,MAAM,EAAE,OAAO;AAC3B,aAAA,UAAU;AACV,aAAA,SAAS;AACT,aAAA,SAAS;AACT,aAAA,SAAS;AACT,aAAA,OAAO;AACP,aAAA,YAAY;AACZ,aAAA,IAAI,EAAE;;AAGf,IAAA,IAAW,IAAI,GAAA;QACX,OAAOA,aAAK,CAAC,MAAM;;AAGP,IAAA,OAAO,CAAC,MAAqB,EAAA;AACzC,QAAA,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM;QAC/B,QAAQ,GAAG;AACP,YAAA,KAAK,OAAO;gBACR,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;AAC/B,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnB,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;AACN,YAAA,KAAK,QAAQ;gBACT,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;oBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AACtC,oBAAA,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC;AAC/B,iBAAC,CAAC;AACN,YAAA,KAAK,SAAS;gBACV,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AAC1E,oBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAC3B,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CACxD;AACD,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;AACN,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;oBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,oBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACnC,iBAAC,CAAC;AACN,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;oBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,oBAAA,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC;AAC9B,iBAAC,CAAC;AACN,YAAA,KAAK,MAAM;gBACP,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACjD,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;oBACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAC3B,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;;AAIV,QAAA,OAAO,SAAS;;AAGJ,IAAA,OAAO,CAAC,MAAqB,EAAA;QACzC,MAAM,IAAI,WAAW,CAAC,iCAAiC,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;;IAG5E,OAAO,GAAA;AACV,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,KAAI;AAC5E,YAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;YAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtC,SAAC,CAAC;;IAGU,mBAAmB,GAAA;AAC/B,QAAA,OAAO,cAAc;;IAGT,mBAAmB,GAAA;AAC/B,QAAA,OAAO,GAAG;;;IAIE,SAAS,GAAA;AACrB,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgB;QACtC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;AAC1E,SAAC,CAAC;AACF,QAAA,OAAO,MAAM;;AAEpB;;ACzID;AAYM,SAAU,QAAQ,CAAC,MAAe,EAAA;AACpC,IAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACjB,QAAA,OAAO,IAAI;;AAEf,IAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACtB,QAAA,OAAO,SAAS;;IAEpB,QAAQ,OAAO,MAAM;AACjB,QAAA,KAAK,SAAS;AACV,YAAA,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC;AAC/B,QAAA,KAAK,QAAQ;AACT,YAAA,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;AAC9B,QAAA,KAAK,QAAQ;AACT,YAAA,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;AAC9B,QAAA,KAAK,QAAQ;AACT,YAAA,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;AAC9B,QAAA,KAAK,UAAU;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;;IAI5E,IACI,MAAM,YAAY,MAAM;AACxB,QAAA,MAAM,YAAY,QAAQ;AAC1B,QAAA,MAAM,YAAY,SAAS;AAC3B,QAAA,MAAM,YAAY,OAAO;AACzB,QAAA,MAAM,YAAY,OAAO;AACzB,QAAA,MAAM,YAAY,OAAO;QACzB,MAAM,YAAY,OAAO,EAC3B;AACE,QAAA,OAAO,MAAM;;AAEjB,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACvB,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEtD,IAAA,IAAI,MAAM,YAAY,GAAG,EAAE;AACvB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;;AAE9B,IAAA,OAAO,SAAS,CAAC,MAAiC,CAAC;AACvD;;AC/CA;AACO,MAAM,SAAS,GAAG,CAAC,MAA+B,KAAa;AAClE,IAAA,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE;AAC5B,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACtB,MAAM,CAAC,GAAG,CAAC;AACP,YAAA,QAAQ,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC;AAC1B,YAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/B,YAAA,OAAO,EAAE,SAAS;AACrB,SAAA,CAAC;;AAEN,IAAA,OAAO,MAAM;AACjB,CAAC;;ACZD;AACM,SAAU,eAAe,CAAC,MAA+B,EAAA;IAC3D,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/C;;ACNA;AAiCA,SAAS,UAAU,CAAC,OAAiB,EAAA;AACjC,IAAA,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;AACvB,QAAA,OAAO,IAAI;;AAEf,IAAA,QAAQ,OAAO,OAAO,CAAC,KAAK;AACxB,QAAA,KAAK,SAAS;AACV,YAAA,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AACtC,QAAA,KAAK,QAAQ;AACT,YAAA,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AACrC,QAAA,KAAK,QAAQ;AACT,YAAA,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AACrC,QAAA;AACI,YAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;;AAEtD;AAEA;AACA,SAAS,iBAAiB,CACtB,UAAkD,EAClD,OAAgB,EAChB,OAAgB,EAChB,KAAa,EAAA;IAEb,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;IACxD,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAG;AACxC,QAAA,OAAO,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;AACtC,KAAC,CAAC;AACF,IAAA,IAAI,OAAO,IAAI,MAAM,IAAI,IAAI,EAAE;AAC3B,QAAA,OAAO,SAAS;;IAEpB,IAAI,MAAM,EAAE,IAAI,KAAKA,aAAK,CAAC,QAAQ,EAAE;AACjC,QAAA,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA,kBAAA,CAAoB,CAAC;;IAEjF,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;AAC/F;AAEA,SAAS,wBAAwB,CAC7B,UAA6B,EAC7B,OAAgB,EAChB,OAAgB,EAAA;IAEhB,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AACxD,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,IAAI,OAAO,EAAE;AACT,YAAA,OAAO,SAAS;;AAEpB,QAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;;AAElD,IAAA,IAAI,UAAU,CAAC,QAAQ,EAAE;QACrB,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC5D,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;;IAE5E,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE;AAC3C,QAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;IAE7C,OAAO,MAAM,CAAC,GAAG,CAAC;QACd,QAAQ,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/C,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE;AAC1C,KAAA,CAAC;AACN;AAEA,SAAS,2BAA2B,CAChC,UAA6B,EAC7B,QAAgB,EAChB,OAAgB,EAAA;IAEhB,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AACxD,IAAA,IAAI,QAAgB;AACpB,IAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE;QACnE,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;;SAC7C;QACH,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;;AAE1D,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAa,UAAA,EAAA,UAAU,CAAC,MAAM,CAAC,CAAE,CAAA,CAAC;;IAEtD,MAAM,CAAC,GAAG,CAAC;QACP,QAAQ;AACR,QAAA,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE;AAC1C,KAAA,CAAC;AACF,IAAA,OAAO,SAAS;AACpB;AAIA,SAAS,UAAU,CACf,OAAiB,EACjB,OAAgB,EAChB,IAAgC,EAChC,KAAa;AAEb;AACA;AACA,kBAAA,GAAyC,OAAO,EAAA;AAEhD,IAAA,QAAQ,OAAO,CAAC,IAAI;AAChB,QAAA,KAAK,YAAY;YACb,QAAQ,IAAI;AACR,gBAAA,KAAK,QAAQ;AACT,oBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;oBACrD;AACJ,gBAAA;oBACI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;oBAC1C;;AAEZ,QAAA,KAAK,mBAAmB;;AAEpB,YAAA,UAAU,CACN,OAAO,CAAC,IAAI,EACZ,OAAO,EACP,IAAI,EACJ,KAAK,KAAK,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,KAAK,EACnE,kBAAkB,CACrB;YACD;AACJ,QAAA,KAAK,kBAAkB;AACnB,YAAA,2BAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;YACpD;QACJ,KAAK,cAAc,EAAE;YACjB,MAAM,kBAAkB,GAAmC,KAAK;AAChE,YAAA,IAAI,kBAAkB,EAAE,OAAO,IAAI,IAAI,EAAE;AACrC,gBAAA,MAAM,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,CAAA,gBAAA,CAAkB,CAAC;;AAGlF,YAAA,MAAM,aAAa,GAA6B,kBAAkB,CAAC,OAAO,EAAE;YAC5E,MAAM,iBAAiB,GAAG,MAAK;AAC3B,gBAAA,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE;AACjC,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,oBAAA,OAAO,SAAS;;gBAEpB,OAAO,IAAI,CAAC,KAAK;AACrB,aAAC;AACD,YAAA,KAAK,MAAM,mBAAmB,IAAI,OAAO,CAAC,QAAQ,EAAE;AAChD,gBAAA,IAAI,mBAAmB,EAAE,IAAI,KAAK,aAAa,EAAE;oBAC7C,UAAU,CACN,mBAAmB,CAAC,QAAQ,EAC5B,OAAO,EACP,IAAI,EACJ,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,EAC3C,kBAAkB,CACrB;;oBAED;;AAEJ,gBAAA,MAAM,iBAAiB,GAAG,iBAAiB,EAAE;AAC7C,gBAAA,IAAI,mBAAmB,KAAK,IAAI,EAAE;oBAC9B;;gBAEJ,UAAU,CAAC,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC;;YAE9E;;QAEJ,KAAK,eAAe,EAAE;AAClB,YAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,gBAAA,MAAM,IAAI,WAAW,CAAC,GAAG,KAAK,CAAA,kBAAA,CAAoB,CAAC;;;;YAKvD,IAAI,SAAS,GAAG,KAAK;AACrB,YAAA,KAAK,MAAM,qBAAqB,IAAI,OAAO,CAAC,UAAU,EAAE;AACpD,gBAAA,IAAI,qBAAqB,CAAC,IAAI,KAAK,aAAa,EAAE;oBAC9C,UAAU,CAAC,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;oBACrE;;gBAEJ,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;;AAE9C,oBAAA,MAAM,IAAI,WAAW,CAAC,oDAAoD,CAAC;;gBAE/E,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;gBACvD,QAAQ,IAAI;AACR,oBAAA,KAAK,QAAQ;AACT,wBAAA,OAAO,CAAC,MAAM,CACV,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAC9B,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,qBAAqB,CAAC,GAAG,EAAE,CAAC,EACpE,OAAO,CAAC,OAAO,CAAC,CACnB;wBACD;AACJ,oBAAA;AACI,wBAAA,OAAO,CAAC,OAAO,CACX,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAC9B,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,qBAAqB,CAAC,GAAG,EAAE,CAAC,EACpE,IAAI,CACP;wBACD;;AAER,gBAAA,IAAI,KAAK,YAAY,OAAO,EAAE;AAC1B,oBAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE;oBAChC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;oBACxD,SAAS,GAAG,UAAU;;qBACnB;oBACH,SAAS,GAAG,KAAK;;;YAGzB;;AAEJ,QAAA,KAAK,aAAa;AACd,YAAA,IAAI,kBAAkB,KAAK,OAAO,EAAE;gBAChC,MAAM,kBAAkB,GAAmC,KAAK;AAChE,gBAAA,IAAI,kBAAkB,EAAE,OAAO,IAAI,IAAI,EAAE;AACrC,oBAAA,MAAM,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,CAAA,gBAAA,CAAkB,CAAC;;AAElF,gBAAA,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;gBAC3D;;AAEJ,YAAA,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC;YAC5D;;AAEZ;AAEA;;;AAGE;AACF,SAAS,sBAAsB,CAC3B,SAA+B,EAC/B,OAAgB,EAChB,UAAmB,EAAA;AAEnB,IAAA,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI;AAC3B,IAAA,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAG;;AAE/B,QAAA,UAAU,CACN,CAAC,CAAC,EAAE,EACJ,OAAO,EACP,IAAI,EACJ,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAC/D;AACL,KAAC,CAAC;AACN;AAEA,SAAS,aAAa,CAAC,UAAuB,EAAE,OAAgB,EAAA;AAC5D,IAAA,QAAQ,UAAU,CAAC,IAAI;QACnB,KAAK,iBAAiB,EAAE;YACpB,MAAM,MAAM,GAAa,EAAE;AAC3B,YAAA,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAG;AAC5B,gBAAA,IAAI,CAAC,KAAK,IAAI,EAAE;AACZ,oBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oBACjB;;AAEJ,gBAAA,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;AACb,oBAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBACjD;;gBAEJ,MAAM,QAAQ,GAAmC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC;gBACnF,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,OAAO,IAAI,IAAI,EAAE;AAC9C,oBAAA,MAAM,IAAI,WAAW,CACjB,CAAG,EAAA,QAAQ,EAAE,mBAAmB,EAAE,CAAkB,gBAAA,CAAA,EACpD,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CACtB;;gBAEL,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;AACnC,oBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEzB,aAAC,CAAC;AACF,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;;QAEhC,KAAK,yBAAyB,EAAE;YAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAsC,KAAY;gBACtE,IAAI,KAAK,EAAE;oBACP,MAAM,IAAI,WAAW,CACjB,oCAAoC,EACpC,OAAO,CAAC,UAAU,CAAC,CACtB;;gBAEL,OAAO,CAAC,OAAO,EAAE;gBACjB,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,KAAI;AACnC,oBAAA,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9C,iBAAC,CAAC;gBACF,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;oBAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;oBACrD,OAAO,CAAC,QAAQ,EAAE;AAClB,oBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;wBAC/B,OAAO,MAAM,CAAC,KAAK;;AAEvB,oBAAA,OAAO,SAAS;;gBAEpB,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;gBACtD,OAAO,CAAC,QAAQ,EAAE;AAClB,gBAAA,OAAO,MAAM;AACjB,aAAC;AACD,YAAA,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;;QAE3B,KAAK,sBAAsB,EAAE;AACzB,YAAA,IAAI,UAAU,CAAC,QAAQ,KAAK,GAAG,EAAE;gBAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;AACzD,gBAAA,QAAQ,UAAU,CAAC,IAAI,CAAC,IAAI;oBACxB,KAAK,YAAY,EAAE;AACf,wBAAA,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AACnE,wBAAA,OAAO,QAAQ;;oBAEnB,KAAK,kBAAkB,EAAE;wBACrB,2BAA2B,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;AAC/D,wBAAA,OAAO,QAAQ;;;;AAI3B,YAAA,IAAI,QAAgB;AACpB,YAAA,IAAI,QAAgB;YACpB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;AACvC,gBAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;;iBACnE;gBACH,QAAQ,GAAG,wBAAwB,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC;;YAExE,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;AACtD,YAAA,QAAQ,UAAU,CAAC,QAAQ;AACvB,gBAAA,KAAK,IAAI;oBACL,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACvE;AACJ,gBAAA,KAAK,IAAI;oBACL,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtE;AACJ,gBAAA,KAAK,IAAI;oBACL,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtE;AACJ,gBAAA,KAAK,IAAI;oBACL,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtE;AACJ,gBAAA,KAAK,IAAI;oBACL,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtE;AACJ,gBAAA,KAAK,KAAK;oBACN,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvE;AACJ,gBAAA,KAAK,IAAI;oBACL,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtE;AACJ,gBAAA,KAAK,KAAK;oBACN,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvE;AACJ,gBAAA,KAAK,KAAK;oBACN,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvE;AACJ,gBAAA,KAAK,MAAM;oBACP,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACxE;AACJ,gBAAA,KAAK,IAAI;oBACL,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtE;AACJ,gBAAA,KAAK,IAAI;oBACL,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtE;AACJ,gBAAA,KAAK,KAAK;AACV,gBAAA,KAAK,KAAK;AACV,gBAAA,KAAK,KAAK;;oBAEN,MAAM,IAAI,KAAK,CACX,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAsD,oDAAA,CAAA,CAChF;;YAET,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;AACvC,gBAAA,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;;iBAChE;gBACH,2BAA2B,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;;AAEnE,YAAA,OAAO,QAAQ;;QAEnB,KAAK,kBAAkB,EAAE;YACrB,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;YACpD,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;AACtD,YAAA,QAAQ,UAAU,CAAC,QAAQ;AACvB,gBAAA,KAAK,IAAI;oBACL,OAAO,IAAI,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3C,gBAAA,KAAK,KAAK;oBACN,OAAO,IAAI,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7C,gBAAA,KAAK,GAAG;AACJ,oBAAA,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClE,gBAAA,KAAK,GAAG;AACJ,oBAAA,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClE,gBAAA,KAAK,GAAG;AACJ,oBAAA,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClE,gBAAA,KAAK,IAAI;AACL,oBAAA,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnE,gBAAA,KAAK,GAAG;AACJ,oBAAA,OAAO,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3E,gBAAA,KAAK,GAAG;AACJ,oBAAA,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClE,gBAAA,KAAK,GAAG;AACJ,oBAAA,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClE,gBAAA,KAAK,GAAG;AACJ,oBAAA,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpE,gBAAA,KAAK,IAAI;AACL,oBAAA,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnE,gBAAA,KAAK,IAAI;AACL,oBAAA,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrE,gBAAA,KAAK,IAAI;oBACL,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1C,gBAAA,KAAK,KAAK;oBACN,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5C,gBAAA,KAAK,GAAG;AACJ,oBAAA,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpE,gBAAA,KAAK,IAAI;AACL,oBAAA,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrE,gBAAA,KAAK,IAAI;AACL,oBAAA,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnE,gBAAA,KAAK,KAAK;AACN,oBAAA,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpE,gBAAA,KAAK,GAAG;AACJ,oBAAA,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClE,gBAAA,KAAK,GAAG;AACJ,oBAAA,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;YAEtE;;QAEJ,KAAK,gBAAgB,EAAE;YACnB,OAAO,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC;;QAExD,KAAK,iBAAiB,EAAE;AACpB,YAAA,QAAQ,UAAU,CAAC,UAAU,CAAC,IAAI;gBAC9B,KAAK,gBAAgB,EAAE;oBACnB,OAAO,iBAAiB,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;;gBAElE,KAAK,kBAAkB,EAAE;oBACrB,OAAO,wBAAwB,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;;;YAG7E;;QAEJ,KAAK,uBAAuB,EAAE;YAC1B,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;YACpD,IAAI,IAAI,EAAE;gBACN,OAAO,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC;;YAExD,OAAO,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC;;QAEvD,KAAK,YAAY,EAAE;;;AAGf,YAAA,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;;QAE5D,KAAK,SAAS,EAAE;AACZ,YAAA,OAAO,UAAU,CAAC,UAAU,CAAC;;QAEjC,KAAK,mBAAmB,EAAE;YACtB,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;YACpD,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;AACtD,YAAA,QAAQ,UAAU,CAAC,QAAQ;AACvB,gBAAA,KAAK,IAAI;AACL,oBAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI;AACxC,gBAAA,KAAK,IAAI;oBACL,OAAO,IAAI,IAAI,KAAK;AACxB,gBAAA,KAAK,IAAI;AACL,oBAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI;;YAE7C;;QAEJ,KAAK,kBAAkB,EAAE;YACrB,OAAO,wBAAwB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC;;QAE/D,KAAK,eAAe,EAAE;YAClB,OAAO,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;;QAE/D,KAAK,kBAAkB,EAAE;AACrB,YAAA,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE;AAC5B,YAAA,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAG;AAC9B,gBAAA,IAAI,CAAC,CAAC,QAAQ,EAAE;oBACZ,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC;AACvD,oBAAA,IAAI,YAAY,YAAY,OAAO,EAAE;wBACjC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;4BAChC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AACjC,yBAAC,CAAC;;yBACC;AACH,wBAAA,MAAM,IAAI,WAAW,CACjB,uCAAuC,EACvC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CACtB;;oBAEL;;AAEJ,gBAAA,IAAI,GAAoB;gBACxB,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI;oBACvB,KAAK,SAAS,EAAE;wBACZ,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;wBAC1C,QAAQ,OAAO,OAAO;AAClB,4BAAA,KAAK,QAAQ;AACb,4BAAA,KAAK,QAAQ;gCACT,GAAG,GAAG,OAAO;gCACb;AACJ,4BAAA;AACI,gCAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;wBAEjD;;oBAEJ,KAAK,YAAY,EAAE;wBACf,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI;wBACzB;;;AAGR,gBAAA,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;AACtD,gBAAA,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI;AACnB,oBAAA,KAAK,MAAM;wBACP,MAAM,CAAC,GAAG,CAAC;AACP,4BAAA,QAAQ,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC;AAC1B,4BAAA,QAAQ,EAAE,KAAK;AACf,4BAAA,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChD,yBAAA,CAAC;wBACF;;AAEZ,aAAC,CAAC;AACF,YAAA,OAAO,MAAM;;AAEjB,QAAA,KAAK,gBAAgB;AACjB;;;;;;;;AAQE;YACF,OAAO,OAAO,CAAC,UAAU;QAC7B,KAAK,iBAAiB,EAAE;YACpB,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC5D,YAAA,QAAQ,UAAU,CAAC,QAAQ;AACvB,gBAAA,KAAK,GAAG;oBACJ,OAAO,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5C,gBAAA,KAAK,GAAG;oBACJ,OAAO,QAAQ,IAAI;AACf,0BAAE;0BACA,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;AACrD,gBAAA,KAAK,GAAG;oBACJ,OAAO,QAAQ,IAAI;AACf,0BAAE;0BACA,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;AACtD,gBAAA,KAAK,GAAG;oBACJ,OAAO,QAAQ,IAAI;AACf,0BAAE;0BACA,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;AACtD,gBAAA,KAAK,QAAQ;AACT,oBAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAClB,wBAAA,OAAO,IAAI,OAAO,CAAC,OAAO,QAAQ,CAAC;;AAEvC,oBAAA,QAAQ,QAAQ,CAAC,IAAI;wBACjB,KAAKA,aAAK,CAAC,OAAO;AACd,4BAAA,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;wBACjC,KAAKA,aAAK,CAAC,QAAQ;AACf,4BAAA,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;wBAClC,KAAKA,aAAK,CAAC,MAAM;AACb,4BAAA,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;wBAChC,KAAKA,aAAK,CAAC,MAAM;AACb,4BAAA,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;wBAChC,KAAKA,aAAK,CAAC,MAAM;AACb,4BAAA,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;AAChC,wBAAA;AACI,4BAAA,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;;;YAG5C;;QAEJ,KAAK,kBAAkB,EAAE;AACrB,YAAA,IAAI,QAAgB;AACpB,YAAA,IAAI,QAAgB;YACpB,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE;AAC3C,gBAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9E,gBAAA,QAAQ,GAAG,eAAe,CACtB,QAAQ,EACR,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAClD,QAAQ,EACR,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAChC;AACD,gBAAA,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;;iBACpE;gBACH,QAAQ,GAAG,wBAAwB,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;AACxE,gBAAA,QAAQ,GAAG,eAAe,CACtB,QAAQ,EACR,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAClD,QAAQ,EACR,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAChC;gBACD,2BAA2B,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;;YAEvE,OAAO,UAAU,CAAC,MAAM,GAAG,QAAQ,GAAG,QAAQ;;AAElD,QAAA;AACI,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;AAErD;AAeA,SAAS,YAAY,CAAC,SAAqB,EAAE,OAAgB,EAAA;AACzD,IAAA,QAAQ,SAAS,CAAC,IAAI;QAClB,KAAK,gBAAgB,EAAE;YACnB,OAAO,CAAC,OAAO,EAAE;AACjB,YAAA,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE;gBAC5B,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;AAC3C,gBAAA,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE;oBAC3B,OAAO,CAAC,QAAQ,EAAE;AAClB,oBAAA,OAAO,UAAU;;;YAGzB,OAAO,CAAC,QAAQ,EAAE;YAClB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;;AAE5C,QAAA,KAAK,gBAAgB;AACjB,YAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAC5B,QAAA,KAAK,mBAAmB;AACpB,YAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;AAC/B,QAAA,KAAK,iBAAiB;YAClB,OAAO;AACH,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,KAAK,EACD,SAAS,CAAC,QAAQ,IAAI;AAClB,sBAAE;sBACA,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;aACvD;QACL,KAAK,qBAAqB,EAAE;YACxB,OAAO;AACH,gBAAA,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;aACtD;;QAEL,KAAK,gBAAgB,EAAE;AACnB,YAAA,IAAI,SAAS,CAAC,KAAK,EAAE;AACjB,gBAAA,MAAM,IAAI,WAAW,CAAC,wBAAwB,CAAC;;YAEnD,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC;YAC1D,MAAM,uBAAuB,GAAmC,UAAU;AAC1E,YAAA,IAAI,uBAAuB,EAAE,OAAO,IAAI,IAAI,EAAE;gBAC1C,MAAM,IAAI,WAAW,CAAC,CAAG,EAAA,UAAU,EAAE,mBAAmB,EAAE,CAAkB,gBAAA,CAAA,CAAC;;YAEjF,KAAK,MAAM,IAAI,IAAI,uBAAuB,CAAC,OAAO,EAAE,EAAE;gBAClD,OAAO,CAAC,OAAO,EAAE;AACjB,gBAAA,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI;AACvB,oBAAA,KAAK,YAAY;AACb,wBAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;wBAC/D;oBACJ,KAAK,kBAAkB,EAAE;wBACrB,2BAA2B,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;wBAC1D;;AAEJ,oBAAA,KAAK,qBAAqB;wBACtB,sBAAsB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;wBACrD;AACJ,oBAAA;AACI,wBAAA,MAAM,IAAI,WAAW,CACjB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAwB,sBAAA,CAAA,EAC9C,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAC1B;;AAET,gBAAA,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;gBACrC,OAAO,CAAC,QAAQ,EAAE;;YAEtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;;QAE5C,KAAK,cAAc,EAAE;YACjB,OAAO,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE;gBACxB,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE;AAC/C,oBAAA,sBAAsB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;;qBAC5C;AACH,oBAAA,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;;;YAG9C,IAAI,WAAW,GAAG,IAAI;YAEtB,OAAO,IAAI,EAAE;gBACT,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,EAAE;AAC1C,oBAAA,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;;gBAE5C,WAAW,GAAG,KAAK;AACnB,gBAAA,IAAI,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE;oBACxB,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;AACnD,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;wBACjB;;;gBAGR,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;AACxD,gBAAA,IAAI,UAAU,CAAC,IAAI,KAAK,aAAa,EAAE;oBACnC,OAAO,CAAC,QAAQ,EAAE;oBAClB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE;;AAC5C,qBAAA,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;oBACpC;;;YAGR,OAAO,CAAC,QAAQ,EAAE;YAClB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;;QAE5C,KAAK,aAAa,EAAE;YAChB,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;AACnD,YAAA,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;gBACjB,OAAO,YAAY,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;;AAEtD,YAAA,IAAI,SAAS,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC7B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;;YAE5C,OAAO,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC;;QAErD,KAAK,iBAAiB,EAAE;YACpB,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;YACnE,IAAI,WAAW,GAAG,KAAK;AACvB,YAAA,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE;AACjC,gBAAA,IACI,KAAK,CAAC,IAAI,IAAI,IAAI;AAClB,oBAAA,SAAS,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAC3E;oBACE,WAAW,GAAG,IAAI;;;gBAItB,IAAI,CAAC,WAAW,EAAE;oBACd;;AAGJ,gBAAA,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE;oBACvC,MAAM,gBAAgB,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC;AAC1D,oBAAA,QAAQ,gBAAgB,CAAC,IAAI;AACzB,wBAAA,KAAK,aAAa;AAClB,wBAAA,KAAK,UAAU;AACX,4BAAA,OAAO,gBAAgB;AAC3B,wBAAA,KAAK,OAAO;4BACR,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;;;;YAMxD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;;QAE5C,KAAK,qBAAqB,EAAE;AACxB,YAAA,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC;YAC1C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;;;AAGpD;AAOA,MAAM,SAAS,GAAG,CAAC,MAAc,KAAI;;AAEjC,IAAA,OAAOG,WAAK,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAuB;AACnF,CAAC;AAED;MACa,IAAI,GAAG,CAAC,MAAc,EAAE,UAAmC,KAAgB;AACpF,IAAA,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAG;QAC3C,OAAO,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;KACtD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1B,IAAA,IAAI,MAAe;AACnB,IAAA,IAAI,UAAU,EAAE,IAAI,KAAK,KAAK,EAAE;QAC5B,MAAM,GAAG,UAAU,CAAC,KAAK,IAAI,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE;;SAChF;QACH,MAAM,GAAG,SAAS;;IAEtB,OAAO;QACH,MAAM;QACN,aAAa,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE;KACtD;AACL;AAEA;AACa,MAAA,IAAI,GAAG,CAAC,MAAc,KAAU;AACzC,IAAA,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AAChC,IAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAG;QAC5B,UAAU,CAAC,SAAS,CAAC;AACzB,KAAC,CAAC;AACN;;AC/xBA,MAAM,WAAY,SAAQ,SAAS,CAAA;AAC/B,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,MAAK;AACP,YAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;AACzD,SAAC,CAAC;;AAGE,IAAA,OAAO,mBAAmB,CAAC,KAAc,EAAE,OAA4B,EAAA;QAC3E,IAAI,KAAK,EAAE;YACP,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;;;AAI7C,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAiB,EAAA;QACrD,QAAQ,GAAG;YACP,KAAK,SAAS,EAAE;AACZ,gBAAA,OAAOF,aAAM,CAAC,IAAI,CACd,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AAC9B,oBAAA,WAAW,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC/C,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;oBACnB,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,KAAKD,aAAK,CAAC,KAAK,CAAC;iBACjD,CAAC,CACL;;AAEL,YAAA;AACI,gBAAA,OAAOC,aAAM,CAAC,IAAI,EAAE;;;AAGnC;AAEY,MAAA,UAAU,GAAG,IAAI,WAAW;;AC/BzC,MAAM,aAAc,SAAQ,SAAS,CAAA;AACG,IAAA,MAAA;AAApC,IAAA,WAAA,CAAoC,MAAc,EAAA;QAC9C,KAAK,CAAC,MAAK;AACP,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;AAC3D,SAAC,CAAC;QAH8B,IAAM,CAAA,MAAA,GAAN,MAAM;;AAMlC,IAAA,OAAO,mBAAmB,CAAC,KAAc,EAAE,OAA4B,EAAA;QAC3E,IAAI,KAAK,EAAE;YACP,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;;;AAI7C,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAiB,EAAA;QACrD,QAAQ,GAAG;YACP,KAAK,KAAK,EAAE;AACR,gBAAA,OAAOA,aAAM,CAAC,IAAI,CACd,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AAC9B,oBAAA,aAAa,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;;oBAEjD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,oBAAA,OAAO,SAAS;iBACnB,CAAC,CACL;;YAEL,KAAK,MAAM,EAAE;AACT,gBAAA,OAAOA,aAAM,CAAC,IAAI,CACd,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AAC9B,oBAAA,aAAa,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;;oBAEjD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE,oBAAA,OAAO,SAAS;iBACnB,CAAC,CACL;;YAEL,KAAK,MAAM,EAAE;AACT,gBAAA,OAAOA,aAAM,CAAC,IAAI,CACd,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AAC9B,oBAAA,aAAa,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;;oBAEjD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE,oBAAA,OAAO,SAAS;iBACnB,CAAC,CACL;;YAEL,KAAK,OAAO,EAAE;AACV,gBAAA,OAAOA,aAAM,CAAC,IAAI,CACd,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AAC9B,oBAAA,aAAa,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;;oBAEjD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnE,oBAAA,OAAO,SAAS;iBACnB,CAAC,CACL;;AAEL,YAAA;AACI,gBAAA,OAAOA,aAAM,CAAC,IAAI,EAAE;;;AAGnC;AAEM,MAAM,kBAAkB,GAAG,CAAC,MAAc,KAAK,IAAI,aAAa,CAAC,MAAM;;AChE9E,MAAM,SAAU,SAAQ,SAAS,CAAA;AAC7B,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;YAChB,IAAI,CAAC,KAAK,EAAE;AACR,gBAAA,MAAM,WAAW,CAAC,gBAAgB,EAAE;;YAExC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;AACjC,SAAC,CAAC;;AAET;AAEY,MAAA,QAAQ,GAAG,IAAI,SAAS;;ACPrC,MAAM,YAAa,SAAQ,SAAS,CAAA;AAChC,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAI;YAC/B,IAAI,KAAK,EAAE;AACP,gBAAA,MAAM,WAAW,CAAC,mBAAmB,EAAE;;YAE3C,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE;YACjF,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC3C,SAAC,CAAC;;IAGU,SAAS,CAAC,EAAE,GAAG,EAAiB,EAAA;QAC5C,QAAQ,GAAG;YACP,KAAK,UAAU,EAAE;AACb,gBAAA,OAAOA,aAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;;AAEpD,YAAA;AACI,gBAAA,OAAOA,aAAM,CAAC,IAAI,EAAE;;;AAGnC;AAEY,MAAA,WAAW,GAAG,IAAI,YAAY;;ACpB3C;AACM,MAAO,UAAmB,SAAQ,OAAO,CAAA;AAEvB,IAAA,MAAA;AACG,IAAA,YAAA;AACA,IAAA,gBAAA;AAHvB,IAAA,WAAA,CACoB,MAA8B,EAC3B,YAAuC,EACvC,gBAGR,EAAA;AAEX,QAAA,KAAK,EAAE;QAPS,IAAM,CAAA,MAAA,GAAN,MAAM;QACH,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;;IAQ7B,qBAAqB,CAAC,KAAc,EAAE,OAA4B,EAAA;QACxE,IAAI,KAAK,EAAE;YACP,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;;;IAInD,cAAc,CAAC,MAAc,EAAE,OAA4B,EAAA;AACjE,QAAA,OAAO,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;;AAG9C,IAAA,WAAW,CAAC,GAAW,EAAA;QAC7B,MAAM,IAAI,GAAG,MAAK;AACd,YAAA,MAAM,IAAI,WAAW,CAAC,mBAAmB,GAAG,CAAA,UAAA,CAAY,CAAC;AAC7D,SAAC;QACD,QAAQ,GAAG;AACP,YAAA,KAAK,UAAU;AACf,YAAA,KAAK,gBAAgB;AACrB,YAAA,KAAK,SAAS;AACd,YAAA,KAAK,gBAAgB;AACrB,YAAA,KAAK,eAAe;AACpB,YAAA,KAAK,sBAAsB;AAC3B,YAAA,KAAK,aAAa;AAClB,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,EAAE;;;AAGd,QAAA,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACtB,YAAA,IAAI,EAAE;;;AAId,IAAA,IAAW,IAAI,GAAA;QACX,OAAOD,aAAK,CAAC,MAAM;;AAGP,IAAA,OAAO,CAAC,MAAqB,EAAA;AACzC,QAAA,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM;QAC/B,QAAQ,GAAG;AACP,YAAA,KAAK,QAAQ;gBACT,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACjD,oBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AACrB,oBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AACvB,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;AACN,YAAA,KAAK,SAAS;gBACV,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AAC1E,oBAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;wBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAC9B,wBAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,4BAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;AAE7C,wBAAA,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;;AAEzD,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;AACN,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACjD,oBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;oBACrB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAC9B,oBAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,wBAAA,OAAO,SAAS;;AAEpB,oBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACnC,iBAAC,CAAC;AACN,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACjD,oBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;oBACrB,OAAO,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;AAC3C,iBAAC,CAAC;AACN,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACrC,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACjD,oBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AACrB,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACrD,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;AACxB,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;;AAIV,QAAA,OAAO,SAAS;;AAGJ,IAAA,OAAO,CAAC,MAAqB,EAAA;QACzC,MAAM,IAAI,WAAW,CAAC,yCAAyC,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;;IAG3E,mBAAmB,GAAA;AAC/B,QAAA,OAAO,iBAAiB;;IAGZ,mBAAmB,GAAA;AAC/B,QAAA,OAAO,GAAG;;IAGE,SAAS,GAAA;QACrB,OAAO,IAAI,CAAC,MAAM;;AAGf,IAAA,MAAM,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,KAAK,YAAY,UAAU,EAAE;AAC7B,YAAA,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;;AAEvC,QAAA,OAAO,KAAK;;AAEnB;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/main.d.ts b/packages/flocon-script/dist/cjs/main.d.ts new file mode 100644 index 000000000..1db89a9dd --- /dev/null +++ b/packages/flocon-script/dist/cjs/main.d.ts @@ -0,0 +1,8 @@ +type ExecResult = { + result: unknown; + getGlobalThis(): unknown; +}; +export declare const exec: (script: string, globalThis: Record) => ExecResult; +export declare const test: (script: string) => void; +export {}; +//# sourceMappingURL=main.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/main.d.ts.map b/packages/flocon-script/dist/cjs/main.d.ts.map new file mode 100644 index 000000000..ff30ca1e9 --- /dev/null +++ b/packages/flocon-script/dist/cjs/main.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAowBA,KAAK,UAAU,GAAG;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,IAAI,OAAO,CAAC;CAC5B,CAAC;AAQF,eAAO,MAAM,IAAI,WAAY,MAAM,cAAc,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,UAgB1E,CAAC;AAGF,eAAO,MAAM,IAAI,WAAY,MAAM,KAAG,IAKrC,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/range.d.ts b/packages/flocon-script/dist/cjs/range.d.ts new file mode 100644 index 000000000..3d76d68a6 --- /dev/null +++ b/packages/flocon-script/dist/cjs/range.d.ts @@ -0,0 +1,4 @@ +import { BaseNodeWithoutComments } from 'estree'; +export type Range = readonly [number, number]; +export declare const toRange: (source: BaseNodeWithoutComments | null | undefined) => Range | undefined; +//# sourceMappingURL=range.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/range.d.ts.map b/packages/flocon-script/dist/cjs/range.d.ts.map new file mode 100644 index 000000000..5e241ef10 --- /dev/null +++ b/packages/flocon-script/dist/cjs/range.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../src/range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAEjD,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C,eAAO,MAAM,OAAO,WAAY,uBAAuB,GAAG,IAAI,GAAG,SAAS,KAAG,KAAK,GAAG,SAUpF,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FArray.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FArray.d.ts new file mode 100644 index 000000000..0e0f9aa3c --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FArray.d.ts @@ -0,0 +1,24 @@ +import { FType } from './FType'; +import { FValue } from './FValue'; +import { AstInfo, FObjectBase, GetParams, SetParams } from './types'; +export declare class FArray implements FObjectBase { + private readonly source; + private readonly convert; + private readonly convertBack; + protected constructor(source: unknown[], convert: (value: unknown) => FValue, convertBack: (value: FValue, astInfo: AstInfo | undefined) => unknown); + private static prepareInstanceMethod; + static create(source: FValue[]): FArray; + get type(): typeof FType.Array; + toJArray(): FValue[]; + iterate(): IterableIterator; + private static isValidIndex; + get({ property, astInfo }: GetParams): FValue; + set({ property, newValue, astInfo }: SetParams): void; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): unknown[]; +} +export declare class FTypedArray extends FArray { + constructor(source: T[], convert: (value: T) => FValue, convertBack: (value: FValue, astInfo: AstInfo | undefined) => T); +} +//# sourceMappingURL=FArray.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FArray.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FArray.d.ts.map new file mode 100644 index 000000000..d06059a46 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FArray.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FArray.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FArray.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,MAAO,YAAW,WAAW;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAHhC,SAAS,aACY,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,EACnC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,KAAK,OAAO;IAG1F,OAAO,CAAC,MAAM,CAAC,qBAAqB;WAMtB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;IAQ9C,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,KAAK,CAEpC;IAEM,QAAQ,IAAI,MAAM,EAAE;IAIpB,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAI1C,OAAO,CAAC,MAAM,CAAC,YAAY;IAOpB,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IAyF7C,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAYrD,mBAAmB,IAAI,MAAM;IAM7B,mBAAmB,IAAI,MAAM;IAK7B,SAAS,IAAI,OAAO,EAAE;CAGhC;AAED,qBAAa,WAAW,CAAC,CAAC,CAAE,SAAQ,MAAM;gBAElC,MAAM,EAAE,CAAC,EAAE,EACX,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,EAC7B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,KAAK,CAAC;CAItE"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FBoolean.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FBoolean.d.ts new file mode 100644 index 000000000..8ab026352 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FBoolean.d.ts @@ -0,0 +1,15 @@ +import { FType } from './FType'; +import { FValue } from './FValue'; +import { FObjectBase, GetParams, SetParams } from './types'; +export declare class FBoolean implements FObjectBase { + readonly raw: boolean; + constructor(raw: boolean); + private static prepareInstanceMethod; + get type(): typeof FType.Boolean; + get({ property, astInfo }: GetParams): FValue; + set({ astInfo }: SetParams): void; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): boolean; +} +//# sourceMappingURL=FBoolean.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FBoolean.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FBoolean.d.ts.map new file mode 100644 index 000000000..71476ab6a --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FBoolean.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FBoolean.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FBoolean.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAW,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,QAAS,YAAW,WAAW;aACL,GAAG,EAAE,OAAO;gBAAZ,GAAG,EAAE,OAAO;IAE/C,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAMpC,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,OAAO,CAEtC;IAEM,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IAa7C,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC,mBAAmB;IAInB,mBAAmB;IAInB,SAAS,IAAI,OAAO;CAG9B"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FFunction.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FFunction.d.ts new file mode 100644 index 000000000..59b73fa4b --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FFunction.d.ts @@ -0,0 +1,23 @@ +import { Option } from '@kizahasi/option'; +import { FType } from './FType'; +import { FValue } from './FValue'; +import { AstInfo, FObjectBase, GetCoreParams, GetParams, SetParams } from './types'; +type FFunctionParams = { + args: FValue[]; + isNew: boolean; + astInfo: AstInfo | undefined; +}; +export declare class FFunction implements FObjectBase { + private readonly func; + constructor(func: (params: FFunctionParams) => FValue); + get type(): typeof FType.Function; + exec(params: FFunctionParams): FValue; + protected onGetting(params: GetCoreParams): Option; + get({ property, astInfo }: GetParams): FValue; + set({ astInfo }: SetParams): void; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): Function; +} +export {}; +//# sourceMappingURL=FFunction.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FFunction.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FFunction.d.ts.map new file mode 100644 index 000000000..62981c58c --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FFunction.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FFunction.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpF,KAAK,eAAe,GAAG;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,qBAAa,SAAU,YAAW,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,MAAM;IAE7E,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,QAAQ,CAEvC;IAEM,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM;IAI5C,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IAInD,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IAa7C,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC,mBAAmB;IAMnB,mBAAmB;IAOnB,SAAS,IAAI,QAAQ;CAK/B"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FGlobalRecord.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FGlobalRecord.d.ts new file mode 100644 index 000000000..8341ce2d7 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FGlobalRecord.d.ts @@ -0,0 +1,9 @@ +import { FRecord } from './FRecord'; +import { FValue } from './FValue'; +import { GetCoreParams, SetCoreParams } from './types'; +export declare class FGlobalRecord extends FRecord { + constructor(base?: FRecord); + protected getCore(params: GetCoreParams): FValue; + protected setCore({ key, newValue, astInfo }: SetCoreParams): void; +} +//# sourceMappingURL=FGlobalRecord.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FGlobalRecord.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FGlobalRecord.d.ts.map new file mode 100644 index 000000000..f3dad6d01 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FGlobalRecord.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FGlobalRecord.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FGlobalRecord.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAOvD,qBAAa,aAAc,SAAQ,OAAO;gBACnB,IAAI,CAAC,EAAE,OAAO;cAId,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;cAQtC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,IAAI;CAU9E"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FIterator.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FIterator.d.ts new file mode 100644 index 000000000..eabb98975 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FIterator.d.ts @@ -0,0 +1,19 @@ +import { FObject } from './FObject'; +import { FType } from './FType'; +import { FValue } from './FValue'; +import { GetCoreParams, SetCoreParams } from './types'; +export declare class FIterator extends FObject { + private readonly source; + private readonly convertValue; + protected constructor(source: IterableIterator, convertValue: (value: unknown) => FValue); + private static prepareInstanceMethod; + static create(source: IterableIterator): FIterator; + get type(): typeof FType.Object; + getCore(params: GetCoreParams): FValue; + setCore(params: SetCoreParams): void; + iterate(): IterableIterator; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): IterableIterator; +} +//# sourceMappingURL=FIterator.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FIterator.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FIterator.d.ts.map new file mode 100644 index 000000000..d8e9c597e --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FIterator.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FIterator.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FIterator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAW,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEhE,qBAAa,SAAU,SAAQ,OAAO;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAFjC,SAAS,aACY,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,EACjC,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;IAK7D,OAAO,CAAC,MAAM,CAAC,qBAAqB;WAMtB,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,SAAS;IAIjE,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEe,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IA0BtC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAI7C,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAI1B,mBAAmB,IAAI,MAAM;IAK7B,mBAAmB,IAAI,MAAM;IAI7B,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC;CAGzD"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FMap.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FMap.d.ts new file mode 100644 index 000000000..418b89844 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FMap.d.ts @@ -0,0 +1,23 @@ +import { FObject } from './FObject'; +import { FType } from './FType'; +import { FValue } from './FValue'; +import { AstInfo, GetCoreParams, SetCoreParams } from './types'; +type Key = string | number | boolean | symbol | null | undefined; +export declare class FMap extends FObject { + private readonly source; + private readonly convertValue; + private readonly convertValueBack; + protected constructor(source: Map, convertValue: (value: unknown) => FValue, convertValueBack: (value: FValue, astInfo: AstInfo | undefined) => unknown); + private static prepareInstanceMethod; + static create(source: Map): FMap; + private convertKeyBack; + get type(): typeof FType.Object; + getCore(params: GetCoreParams): FValue; + setCore(params: SetCoreParams): void; + iterate(): IterableIterator; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): Map; +} +export {}; +//# sourceMappingURL=FMap.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FMap.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FMap.d.ts.map new file mode 100644 index 000000000..b1016b51e --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FMap.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FMap.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEhE,KAAK,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEjE,qBAAa,IAAK,SAAQ,OAAO;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAHrC,SAAS,aACY,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,EACzB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,EACxC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,KAAK,OAAO;IAK/F,OAAO,CAAC,MAAM,CAAC,qBAAqB;WAMtB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IAQpD,OAAO,CAAC,cAAc;IAWtB,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEe,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAuDtC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAI7C,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAQ1B,mBAAmB,IAAI,MAAM;IAI7B,mBAAmB,IAAI,MAAM;IAK7B,SAAS,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;CAQjD"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FNumber.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FNumber.d.ts new file mode 100644 index 000000000..2153fef3a --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FNumber.d.ts @@ -0,0 +1,15 @@ +import { FType } from './FType'; +import { FValue } from './FValue'; +import { FObjectBase, GetParams, SetParams } from './types'; +export declare class FNumber implements FObjectBase { + readonly raw: number; + constructor(raw: number); + private static prepareInstanceMethod; + get type(): typeof FType.Number; + get({ property, astInfo }: GetParams): FValue; + set({ astInfo }: SetParams): void; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): number; +} +//# sourceMappingURL=FNumber.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FNumber.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FNumber.d.ts.map new file mode 100644 index 000000000..f4b9e6dec --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FNumber.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FNumber.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FNumber.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAW,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,OAAQ,YAAW,WAAW;aACJ,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAE9C,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAMpC,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEM,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IAmB7C,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC,mBAAmB;IAInB,mBAAmB;IAInB,SAAS,IAAI,MAAM;CAG7B"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FObject.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FObject.d.ts new file mode 100644 index 000000000..43e6c5aa3 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FObject.d.ts @@ -0,0 +1,14 @@ +import { FType } from './FType'; +import { FValue } from './FValue'; +import { FObjectBase, GetCoreParams, GetParams, SetCoreParams, SetParams } from './types'; +export declare abstract class FObject implements FObjectBase { + protected abstract getCore(params: GetCoreParams): FValue; + get({ property, astInfo }: GetParams): FValue; + protected abstract setCore(params: SetCoreParams): void; + set({ property, newValue, astInfo }: SetParams): void; + get type(): typeof FType.Object; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + abstract toJObject(): unknown; +} +//# sourceMappingURL=FObject.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FObject.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FObject.d.ts.map new file mode 100644 index 000000000..fa086c7ff --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FObject.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FObject.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE1F,8BAAsB,OAAQ,YAAW,WAAW;IAChD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAElD,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IASpD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAEhD,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAK5D,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEM,mBAAmB;IAKnB,mBAAmB;aAIV,SAAS,IAAI,OAAO;CACvC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FRecord.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FRecord.d.ts new file mode 100644 index 000000000..6bec187ad --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FRecord.d.ts @@ -0,0 +1,13 @@ +import { FObject } from './FObject'; +import { FValue } from './FValue'; +import { GetCoreParams, SetCoreParams } from './types'; +export declare class FRecord extends FObject { + readonly source: Map; + constructor(base?: FRecord); + protected getCore({ key, astInfo }: GetCoreParams): FValue; + protected setCore({ key, newValue, astInfo }: SetCoreParams): void; + clone(): FRecord; + forEach(callbackfn: (value: FValue, key: string) => void): void; + toJObject(): unknown; +} +//# sourceMappingURL=FRecord.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FRecord.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FRecord.d.ts.map new file mode 100644 index 000000000..6d96e4d51 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FRecord.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FRecord.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FRecord.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKvD,qBAAa,OAAQ,SAAQ,OAAO;IAChC,SAAgB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEzB,IAAI,CAAC,EAAE,OAAO;cASd,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,MAAM;cAOhD,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,IAAI;IAOpE,KAAK,IAAI,OAAO;IAIhB,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI;IAI/C,SAAS,IAAI,OAAO;CAOvC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FRecordRef.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FRecordRef.d.ts new file mode 100644 index 000000000..2e8d78e01 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FRecordRef.d.ts @@ -0,0 +1,21 @@ +import { FObject } from './FObject'; +import { FType } from './FType'; +import { FValue } from './FValue'; +import { AstInfo, GetCoreParams, SetCoreParams } from './types'; +export declare class FRecordRef extends FObject { + readonly source: Record; + protected readonly convertValue: (value: TValue) => FValue; + protected readonly convertValueBack: (value: FValue, astInfo: AstInfo | undefined) => TValue; + constructor(source: Record, convertValue: (value: TValue) => FValue, convertValueBack: (value: FValue, astInfo: AstInfo | undefined) => TValue); + protected prepareInstanceMethod(isNew: boolean, astInfo: AstInfo | undefined): void; + protected convertKeyBack(source: FValue, astInfo: AstInfo | undefined): string; + protected validateKey(key: string): void; + get type(): typeof FType.Object; + getCore(params: GetCoreParams): FValue; + setCore(params: SetCoreParams): void; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): Record; + equals(other: FValue): boolean; +} +//# sourceMappingURL=FRecordRef.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FRecordRef.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FRecordRef.d.ts.map new file mode 100644 index 000000000..e1947e508 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FRecordRef.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FRecordRef.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FRecordRef.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGhE,qBAAa,UAAU,CAAC,MAAM,CAAE,SAAQ,OAAO;aAEvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM;IAC1D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GAAG,SAAS,KAC3B,MAAM;gBALK,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACvC,gBAAgB,EAAE,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GAAG,SAAS,KAC3B,MAAM;IAKf,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS;IAM5E,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS;IAIrE,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAqBxC,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEe,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAyDtC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAIpC,mBAAmB,IAAI,MAAM;IAI7B,mBAAmB,IAAI,MAAM;IAI7B,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI5C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAMxC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FString.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FString.d.ts new file mode 100644 index 000000000..863152239 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FString.d.ts @@ -0,0 +1,17 @@ +import { FType } from './FType'; +import { FValue } from './FValue'; +import { FObjectBase, GetParams, SetParams } from './types'; +export declare class FString implements FObjectBase { + readonly raw: string; + constructor(raw: string); + private static prepareInstanceMethod; + get type(): typeof FType.String; + get({ property, astInfo }: GetParams): FValue; + set({ astInfo }: SetParams): void; + iterate(): IterableIterator; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toPrimitiveAsDefault(): string; + toJObject(): string; +} +//# sourceMappingURL=FString.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FString.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FString.d.ts.map new file mode 100644 index 000000000..b3d2b3d28 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FString.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FString.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FString.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAW,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,OAAQ,YAAW,WAAW;aACJ,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAE9C,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAMpC,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEM,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IAc7C,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAInC,mBAAmB;IAInB,mBAAmB;IAInB,oBAAoB;IAIpB,SAAS,IAAI,MAAM;CAG7B"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FSymbol.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FSymbol.d.ts new file mode 100644 index 000000000..9228c4519 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FSymbol.d.ts @@ -0,0 +1,15 @@ +import { FType } from './FType'; +import { FValue } from './FValue'; +import { FObjectBase, GetParams, SetParams } from './types'; +export declare class FSymbol implements FObjectBase { + readonly raw: symbol; + constructor(raw: symbol); + private static prepareInstanceMethod; + get type(): typeof FType.Symbol; + get({ property, astInfo }: GetParams): FValue; + set({ astInfo }: SetParams): void; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): symbol; +} +//# sourceMappingURL=FSymbol.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FSymbol.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FSymbol.d.ts.map new file mode 100644 index 000000000..b02fc2748 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FSymbol.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FSymbol.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FSymbol.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAW,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,OAAQ,YAAW,WAAW;aACJ,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAE9C,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAMpC,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEM,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IAa7C,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC,mBAAmB;IAInB,mBAAmB,IAAI,MAAM;IAI7B,SAAS,IAAI,MAAM;CAG7B"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FType.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FType.d.ts new file mode 100644 index 000000000..3b7a8d0fc --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FType.d.ts @@ -0,0 +1,10 @@ +export declare namespace FType { + const Boolean = "Boolean"; + const Number = "Number"; + const String = "String"; + const Symbol = "Symbol"; + const Array = "Array"; + const Object = "Object"; + const Function = "Function"; +} +//# sourceMappingURL=FType.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FType.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FType.d.ts.map new file mode 100644 index 000000000..2e99a1222 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FType.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FType.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FType.ts"],"names":[],"mappings":"AAAA,yBAAiB,KAAK,CAAC;IACZ,MAAM,OAAO,YAAY,CAAC;IAC1B,MAAM,MAAM,WAAW,CAAC;IACxB,MAAM,MAAM,WAAW,CAAC;IACxB,MAAM,MAAM,WAAW,CAAC;IAGxB,MAAM,KAAK,UAAU,CAAC;IAEtB,MAAM,MAAM,WAAW,CAAC;IACxB,MAAM,QAAQ,aAAa,CAAC;CACtC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FValue.d.ts b/packages/flocon-script/dist/cjs/scriptValue/FValue.d.ts new file mode 100644 index 000000000..5fc2c249e --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FValue.d.ts @@ -0,0 +1,9 @@ +import { FArray } from './FArray'; +import { FBoolean } from './FBoolean'; +import { FFunction } from './FFunction'; +import { FNumber } from './FNumber'; +import { FObject } from './FObject'; +import { FString } from './FString'; +import { FSymbol } from './FSymbol'; +export type FValue = null | undefined | FBoolean | FNumber | FString | FSymbol | FArray | FObject | FFunction; +//# sourceMappingURL=FValue.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/FValue.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/FValue.d.ts.map new file mode 100644 index 000000000..c3439a3e8 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/FValue.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FValue.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,MAAM,GACZ,IAAI,GACJ,SAAS,GACT,QAAQ,GACR,OAAO,GACP,OAAO,GACP,OAAO,GACP,MAAM,GACN,OAAO,GACP,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/cast.d.ts b/packages/flocon-script/dist/cjs/scriptValue/cast.d.ts new file mode 100644 index 000000000..45247b887 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/cast.d.ts @@ -0,0 +1,25 @@ +import { FArray } from './FArray'; +import { FObject } from './FObject'; +import { FValue } from './FValue'; +import { AstInfo } from './types'; +declare class JObjectCaster { + private readonly source; + private readonly addedTypes; + private readonly successfullyCastedValue; + private readonly astInfo; + private constructor(); + static begin(source: FValue, astInfo: AstInfo | undefined): JObjectCaster; + cast(): T; + addArray(): JObjectCaster; + addBoolean(): JObjectCaster; + addFunction(): JObjectCaster (args: FValue[]) => FValue)>; + addNull(): JObjectCaster; + addNumber(): JObjectCaster; + addObject(): JObjectCaster; + addString(): JObjectCaster; + addSymbol(): JObjectCaster; + addUndefined(): JObjectCaster; +} +export declare const beginCast: (source: FValue, astInfo: AstInfo | undefined) => JObjectCaster; +export {}; +//# sourceMappingURL=cast.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/cast.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/cast.d.ts.map new file mode 100644 index 000000000..5df2f9ed9 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/cast.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"cast.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/cast.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAqClC,cAAM,aAAa,CAAC,CAAC,GAAG,KAAK;IAErB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ5B,OAAO;WAOO,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS;IAIzD,IAAI,IAAI,CAAC;IAYT,QAAQ,IAAI,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC;IAYrC,UAAU,IAAI,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC;IAYxC,WAAW,IAAI,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,CAAC;IAgBlF,OAAO,IAAI,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC;IAalC,SAAS,IAAI,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC;IAYtC,SAAS,IAAI,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC;IAYvC,SAAS,IAAI,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC;IAYtC,SAAS,IAAI,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC;IAYtC,YAAY,IAAI,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC;CAYtD;AAED,eAAO,MAAM,SAAS,WAAY,MAAM,WAAW,OAAO,GAAG,SAAS,yBAErE,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/compare.d.ts b/packages/flocon-script/dist/cjs/scriptValue/compare.d.ts new file mode 100644 index 000000000..6dceb073d --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/compare.d.ts @@ -0,0 +1,8 @@ +import { FBoolean } from './FBoolean'; +import { FNumber } from './FNumber'; +import { FString } from './FString'; +import { FValue } from './FValue'; +export declare const compareToNumber: (left: FValue, right: FValue, hint: "default" | "string" | "number", comparer: (left: any, right: any) => number) => FNumber; +export declare const compareToBoolean: (left: FValue, right: FValue, hint: "default" | "string" | "number" | "JObject", comparer: (left: any, right: any) => boolean) => FBoolean; +export declare const compareToNumberOrString: (left: FValue, right: FValue, hint: "default", comparer: (left: any, right: any) => number | string) => FNumber | FString; +//# sourceMappingURL=compare.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/compare.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/compare.d.ts.map new file mode 100644 index 000000000..f45828941 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/compare.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/compare.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAelC,eAAO,MAAM,eAAe,SAClB,MAAM,SACL,MAAM,QACP,SAAS,GAAG,QAAQ,GAAG,QAAQ,YAC3B,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,MAAM,YAG9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,SACnB,MAAM,SACL,MAAM,QACP,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,YACvC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,aAG/C,CAAC;AAEF,eAAO,MAAM,uBAAuB,SAC1B,MAAM,SACL,MAAM,QACP,SAAS,YACL,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,MAAM,GAAG,MAAM,sBAOvD,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/eqeq.d.ts b/packages/flocon-script/dist/cjs/scriptValue/eqeq.d.ts new file mode 100644 index 000000000..e96484c9e --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/eqeq.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare const eqeq: (x: FValue, y: FValue) => boolean; +//# sourceMappingURL=eqeq.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/eqeq.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/eqeq.d.ts.map new file mode 100644 index 000000000..9a8eddc49 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/eqeq.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"eqeq.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/eqeq.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKlC,eAAO,MAAM,IAAI,MAAO,MAAM,KAAK,MAAM,KAAG,OAuC3C,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/eqeqeq.d.ts b/packages/flocon-script/dist/cjs/scriptValue/eqeqeq.d.ts new file mode 100644 index 000000000..dffca1762 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/eqeqeq.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare const eqeqeq: (x: FValue, y: FValue) => boolean; +//# sourceMappingURL=eqeqeq.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/eqeqeq.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/eqeqeq.d.ts.map new file mode 100644 index 000000000..81aeb1b07 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/eqeqeq.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"eqeqeq.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/eqeqeq.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,eAAO,MAAM,MAAM,MAAO,MAAM,KAAK,MAAM,KAAG,OAuB7C,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/isTruthy.d.ts b/packages/flocon-script/dist/cjs/scriptValue/isTruthy.d.ts new file mode 100644 index 000000000..9cd086dd2 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/isTruthy.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare const isTruthy: (value: FValue) => boolean; +//# sourceMappingURL=isTruthy.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/isTruthy.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/isTruthy.d.ts.map new file mode 100644 index 000000000..605776cfd --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/isTruthy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"isTruthy.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/isTruthy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,OAiBxC,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/toFGlobalRecord.d.ts b/packages/flocon-script/dist/cjs/scriptValue/toFGlobalRecord.d.ts new file mode 100644 index 000000000..be18f4610 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/toFGlobalRecord.d.ts @@ -0,0 +1,3 @@ +import { FGlobalRecord } from './FGlobalRecord'; +export declare function toFGlobalRecord(source: Record): FGlobalRecord; +//# sourceMappingURL=toFGlobalRecord.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/toFGlobalRecord.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/toFGlobalRecord.d.ts.map new file mode 100644 index 000000000..a822b2645 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/toFGlobalRecord.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toFGlobalRecord.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/toFGlobalRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAE9E"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/toFRecord.d.ts b/packages/flocon-script/dist/cjs/scriptValue/toFRecord.d.ts new file mode 100644 index 000000000..1592f1362 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/toFRecord.d.ts @@ -0,0 +1,3 @@ +import { FRecord } from './FRecord'; +export declare const toFRecord: (source: Record) => FRecord; +//# sourceMappingURL=toFRecord.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/toFRecord.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/toFRecord.d.ts.map new file mode 100644 index 000000000..ed01b6880 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/toFRecord.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toFRecord.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/toFRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,SAAS,WAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAU3D,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/toFValue.d.ts b/packages/flocon-script/dist/cjs/scriptValue/toFValue.d.ts new file mode 100644 index 000000000..cb043906c --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/toFValue.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare function toFValue(source: unknown): FValue; +//# sourceMappingURL=toFValue.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/toFValue.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/toFValue.d.ts.map new file mode 100644 index 000000000..a37483c9c --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/toFValue.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toFValue.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/toFValue.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAuChD"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/toPrimitive.d.ts b/packages/flocon-script/dist/cjs/scriptValue/toPrimitive.d.ts new file mode 100644 index 000000000..d0661eae0 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/toPrimitive.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare const toPrimitive: (value: FValue, hint: "default" | "string" | "number") => string | number | null | undefined; +//# sourceMappingURL=toPrimitive.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/toPrimitive.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/toPrimitive.d.ts.map new file mode 100644 index 000000000..aa963189e --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/toPrimitive.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toPrimitive.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/toPrimitive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,eAAO,MAAM,WAAW,UAAW,MAAM,QAAQ,SAAS,GAAG,QAAQ,GAAG,QAAQ,uCAmB/E,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/toPropertyName.d.ts b/packages/flocon-script/dist/cjs/scriptValue/toPropertyName.d.ts new file mode 100644 index 000000000..90bc94480 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/toPropertyName.d.ts @@ -0,0 +1,4 @@ +import { FValue } from './FValue'; +import { AstInfo } from './types'; +export declare const toPropertyName: (value: FValue, astInfo: AstInfo | undefined) => string | symbol; +//# sourceMappingURL=toPropertyName.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/toPropertyName.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/toPropertyName.d.ts.map new file mode 100644 index 000000000..b501ead53 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/toPropertyName.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toPropertyName.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/toPropertyName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,eAAO,MAAM,cAAc,UAAW,MAAM,WAAW,OAAO,GAAG,SAAS,KAAG,MAAM,GAAG,MAMrF,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/toTypeName.d.ts b/packages/flocon-script/dist/cjs/scriptValue/toTypeName.d.ts new file mode 100644 index 000000000..1678685f2 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/toTypeName.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare const toTypeName: (value: FValue) => "Boolean" | "Number" | "String" | "Symbol" | "Array" | "Object" | "Function" | "null" | "undefined"; +//# sourceMappingURL=toTypeName.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/toTypeName.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/toTypeName.d.ts.map new file mode 100644 index 000000000..655365f15 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/toTypeName.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toTypeName.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/toTypeName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,eAAO,MAAM,UAAU,UAAW,MAAM,wGAQvC,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/tryToPropertyName.d.ts b/packages/flocon-script/dist/cjs/scriptValue/tryToPropertyName.d.ts new file mode 100644 index 000000000..f7b04c7ce --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/tryToPropertyName.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare const tryToPropertyName: (value: FValue) => string | symbol | undefined; +//# sourceMappingURL=tryToPropertyName.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/tryToPropertyName.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/tryToPropertyName.d.ts.map new file mode 100644 index 000000000..86c86fec8 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/tryToPropertyName.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tryToPropertyName.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/tryToPropertyName.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,eAAO,MAAM,iBAAiB,UAAW,MAAM,KAAG,MAAM,GAAG,MAAM,GAAG,SAUnE,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/types.d.ts b/packages/flocon-script/dist/cjs/scriptValue/types.d.ts new file mode 100644 index 000000000..d8568ab75 --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/types.d.ts @@ -0,0 +1,36 @@ +import { Range } from '../range'; +import { FValue } from './FValue'; +export type AstInfo = { + range?: Range; +}; +export type GetParams = { + property: FValue; + astInfo?: AstInfo; +}; +export type SetParams = { + property: FValue; + newValue: FValue; + astInfo?: AstInfo; +}; +export type GetCoreParams = { + key: string | number | symbol; + astInfo?: AstInfo; +}; +export type OnGettingParams = GetCoreParams; +export type SetCoreParams = { + key: string | number | symbol; + newValue: FValue; + astInfo?: AstInfo; +}; +export type OnSettingParams = SetCoreParams; +export type FObjectBase = { + get(params: GetParams): FValue; + set(params: SetParams): void; + toPrimitiveAsNumber(): number; + toPrimitiveAsString(): string; + toPrimitiveAsDefault?(): number | string; + iterate?(): IterableIterator; + equals?(other: FValue, operator: '==' | '==='): boolean; + toString(): string; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/scriptValue/types.d.ts.map b/packages/flocon-script/dist/cjs/scriptValue/types.d.ts.map new file mode 100644 index 000000000..c1ce2bbeb --- /dev/null +++ b/packages/flocon-script/dist/cjs/scriptValue/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,OAAO,GAAG;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG;IACxB,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG;IACtB,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IAC/B,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,mBAAmB,IAAI,MAAM,CAAC;IAC9B,mBAAmB,IAAI,MAAM,CAAC;IAC9B,oBAAoB,CAAC,IAAI,MAAM,GAAG,MAAM,CAAC;IAGzC,OAAO,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAGrC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC;IAExD,QAAQ,IAAI,MAAM,CAAC;CACtB,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/utils/mapIterator.d.ts b/packages/flocon-script/dist/cjs/utils/mapIterator.d.ts new file mode 100644 index 000000000..4ac9f6f3c --- /dev/null +++ b/packages/flocon-script/dist/cjs/utils/mapIterator.d.ts @@ -0,0 +1,2 @@ +export declare function mapIterator(source: IterableIterator, mapping: (x: T1) => T2): Generator; +//# sourceMappingURL=mapIterator.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/utils/mapIterator.d.ts.map b/packages/flocon-script/dist/cjs/utils/mapIterator.d.ts.map new file mode 100644 index 000000000..d149922bd --- /dev/null +++ b/packages/flocon-script/dist/cjs/utils/mapIterator.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mapIterator.d.ts","sourceRoot":"","sources":["../../../src/utils/mapIterator.ts"],"names":[],"mappings":"AAAA,wBAAiB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,gCAIxF"} \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/utils/toJObject.d.ts b/packages/flocon-script/dist/cjs/utils/toJObject.d.ts new file mode 100644 index 000000000..9b5a97a76 --- /dev/null +++ b/packages/flocon-script/dist/cjs/utils/toJObject.d.ts @@ -0,0 +1,3 @@ +import { FValue } from '../scriptValue/FValue'; +export declare const toJObject: (source: FValue) => unknown; +//# sourceMappingURL=toJObject.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/cjs/utils/toJObject.d.ts.map b/packages/flocon-script/dist/cjs/utils/toJObject.d.ts.map new file mode 100644 index 000000000..519b65922 --- /dev/null +++ b/packages/flocon-script/dist/cjs/utils/toJObject.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toJObject.d.ts","sourceRoot":"","sources":["../../../src/utils/toJObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,eAAO,MAAM,SAAS,WAAY,MAAM,YAKvC,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/ScriptError.d.ts b/packages/flocon-script/dist/esm/ScriptError.d.ts new file mode 100644 index 000000000..ea86b3c99 --- /dev/null +++ b/packages/flocon-script/dist/esm/ScriptError.d.ts @@ -0,0 +1,8 @@ +import { Range } from './range'; +export declare class ScriptError extends Error { + readonly range?: Range | undefined; + constructor(message?: string, range?: Range | undefined); + static notConstructorError(range?: Range): ScriptError; + static requiresNewError(range?: Range): ScriptError; +} +//# sourceMappingURL=ScriptError.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/ScriptError.d.ts.map b/packages/flocon-script/dist/esm/ScriptError.d.ts.map new file mode 100644 index 000000000..6895267b7 --- /dev/null +++ b/packages/flocon-script/dist/esm/ScriptError.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ScriptError.d.ts","sourceRoot":"","sources":["../../src/ScriptError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,qBAAa,WAAY,SAAQ,KAAK;aAGd,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,CAAC,EAAE,MAAM,EACA,KAAK,CAAC,EAAE,KAAK,YAAA;WAMnB,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK;WAIjC,gBAAgB,CAAC,KAAK,CAAC,EAAE,KAAK;CAG/C"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/builtIn/Array.d.ts b/packages/flocon-script/dist/esm/builtIn/Array.d.ts new file mode 100644 index 000000000..c8f74bdf7 --- /dev/null +++ b/packages/flocon-script/dist/esm/builtIn/Array.d.ts @@ -0,0 +1,12 @@ +import { Option } from '@kizahasi/option'; +import { FFunction } from '../scriptValue/FFunction'; +import { FValue } from '../scriptValue/FValue'; +import { GetCoreParams } from '../scriptValue/types'; +declare class FArrayClass extends FFunction { + constructor(); + private static prepareStaticMethod; + onGetting({ key, astInfo }: GetCoreParams): Option; +} +export declare const arrayClass: FArrayClass; +export {}; +//# sourceMappingURL=Array.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/builtIn/Array.d.ts.map b/packages/flocon-script/dist/esm/builtIn/Array.d.ts.map new file mode 100644 index 000000000..bddadb2de --- /dev/null +++ b/packages/flocon-script/dist/esm/builtIn/Array.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../../src/builtIn/Array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAW,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE9D,cAAM,WAAY,SAAQ,SAAS;;IAO/B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAMlB,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;CAe7E;AAED,eAAO,MAAM,UAAU,aAAoB,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/builtIn/Map.d.ts b/packages/flocon-script/dist/esm/builtIn/Map.d.ts new file mode 100644 index 000000000..1abd9a602 --- /dev/null +++ b/packages/flocon-script/dist/esm/builtIn/Map.d.ts @@ -0,0 +1,7 @@ +import { FFunction } from '../scriptValue/FFunction'; +declare class FMapClass extends FFunction { + constructor(); +} +export declare const mapClass: FMapClass; +export {}; +//# sourceMappingURL=Map.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/builtIn/Map.d.ts.map b/packages/flocon-script/dist/esm/builtIn/Map.d.ts.map new file mode 100644 index 000000000..d6a6a6883 --- /dev/null +++ b/packages/flocon-script/dist/esm/builtIn/Map.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Map.d.ts","sourceRoot":"","sources":["../../../src/builtIn/Map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,cAAM,SAAU,SAAQ,SAAS;;CAShC;AAED,eAAO,MAAM,QAAQ,WAAkB,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/builtIn/Symbol.d.ts b/packages/flocon-script/dist/esm/builtIn/Symbol.d.ts new file mode 100644 index 000000000..cbf5de9fd --- /dev/null +++ b/packages/flocon-script/dist/esm/builtIn/Symbol.d.ts @@ -0,0 +1,11 @@ +import { Option } from '@kizahasi/option'; +import { FFunction } from '../scriptValue/FFunction'; +import { FValue } from '../scriptValue/FValue'; +import { GetCoreParams } from '../scriptValue/types'; +declare class FSymbolClass extends FFunction { + constructor(); + onGetting({ key }: GetCoreParams): Option; +} +export declare const symbolClass: FSymbolClass; +export {}; +//# sourceMappingURL=Symbol.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/builtIn/Symbol.d.ts.map b/packages/flocon-script/dist/esm/builtIn/Symbol.d.ts.map new file mode 100644 index 000000000..1e4c08369 --- /dev/null +++ b/packages/flocon-script/dist/esm/builtIn/Symbol.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Symbol.d.ts","sourceRoot":"","sources":["../../../src/builtIn/Symbol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,cAAM,YAAa,SAAQ,SAAS;;IAWhB,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;CASpE;AAED,eAAO,MAAM,WAAW,cAAqB,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/builtIn/console.d.ts b/packages/flocon-script/dist/esm/builtIn/console.d.ts new file mode 100644 index 000000000..eceeb5628 --- /dev/null +++ b/packages/flocon-script/dist/esm/builtIn/console.d.ts @@ -0,0 +1,13 @@ +import { Option } from '@kizahasi/option'; +import { FFunction } from '../scriptValue/FFunction'; +import { FValue } from '../scriptValue/FValue'; +import { GetCoreParams } from '../scriptValue/types'; +declare class FConsoleClass extends FFunction { + private readonly header; + constructor(header: string); + private static prepareStaticMethod; + onGetting({ key, astInfo }: GetCoreParams): Option; +} +export declare const createConsoleClass: (header: string) => FConsoleClass; +export {}; +//# sourceMappingURL=console.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/builtIn/console.d.ts.map b/packages/flocon-script/dist/esm/builtIn/console.d.ts.map new file mode 100644 index 000000000..4e9db4c98 --- /dev/null +++ b/packages/flocon-script/dist/esm/builtIn/console.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/builtIn/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAW,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG9D,cAAM,aAAc,SAAQ,SAAS;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAMlD,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAMlB,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;CA8C7E;AAED,eAAO,MAAM,kBAAkB,WAAY,MAAM,kBAA8B,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/context.d.ts b/packages/flocon-script/dist/esm/context.d.ts new file mode 100644 index 000000000..a97a6c7a9 --- /dev/null +++ b/packages/flocon-script/dist/esm/context.d.ts @@ -0,0 +1,14 @@ +import { Range } from './range'; +import { FRecord } from './scriptValue/FRecord'; +import { FValue } from './scriptValue/FValue'; +export declare class Context { + globalThis: FRecord; + private varTables; + constructor(globalThis: FRecord); + get(name: string, range: Range | undefined): FValue; + assign(name: string, newValue: FValue, range: Range | undefined): void; + declare(name: string, value: FValue, type: 'let' | 'const'): void; + scopeIn(): void; + scopeOut(): void; +} +//# sourceMappingURL=context.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/context.d.ts.map b/packages/flocon-script/dist/esm/context.d.ts.map new file mode 100644 index 000000000..741aff499 --- /dev/null +++ b/packages/flocon-script/dist/esm/context.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,qBAAa,OAAO;IAYU,UAAU,EAAE,OAAO;IAF7C,OAAO,CAAC,SAAS,CAAgE;gBAEvD,UAAU,EAAE,OAAO;IAEtC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM;IAkBnD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI;IAmBtE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI;IAejE,OAAO,IAAI,IAAI;IAIf,QAAQ,IAAI,IAAI;CAM1B"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/fExpression.d.ts b/packages/flocon-script/dist/esm/fExpression.d.ts new file mode 100644 index 000000000..87b79ff08 --- /dev/null +++ b/packages/flocon-script/dist/esm/fExpression.d.ts @@ -0,0 +1,94 @@ +import { ArrayExpression, ArrowFunctionExpression, AssignmentExpression, AssignmentOperator, BaseCallExpression, BinaryExpression, BinaryOperator, ChainExpression, ConditionalExpression, Expression, Identifier, Literal, LogicalExpression, MemberExpression, NewExpression, ObjectExpression, Property, SimpleCallExpression, ThisExpression, UnaryExpression, UnaryOperator, UpdateExpression } from 'estree'; +import { FPattern } from './fPattern'; +import { FBlockStatement } from './fStatement'; +import { Range } from './range'; +type FArrayExpressionElement = { + isSpread: false; + expression: FExpression; +} | { + isSpread: true; + argument: FExpression; +}; +export type FArrayExpression = Omit & { + elements: Array; +}; +export type FArrowFunctionExpression = Omit & { + body: FBlockStatement | FExpression; + params: Array; +}; +declare function fAssignmentOperator(operator: AssignmentOperator): AssignmentOperator; +export type FAssignmentOperator = ReturnType; +export type FAssignmentExpression = Omit & { + operator: FAssignmentOperator; + left: FIdentifier | FMemberExpression; + right: FExpression; +}; +export type FBaseCallExpression = Omit & { + callee: FExpression; + arguments: Array; +}; +declare function fBinaryOperator(operator: BinaryOperator, range: Range | undefined): "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "**" | "|" | "^" | "&"; +export type FBinaryOperator = ReturnType; +export type FBinaryExpression = Omit & { + operator: FBinaryOperator; + left: FExpression; + right: FExpression; +}; +export type FChainExpression = Omit & { + expression: FSimpleCallExpression | FMemberExpression; +}; +export type FConditionalExpression = Omit & { + test: FExpression; + alternate: FExpression; + consequent: FExpression; +}; +export type FIdentifier = Identifier; +declare function fLiteral(expression: Literal): import("estree").SimpleLiteral; +export type FLiteral = ReturnType; +export type FLogicalExpression = Omit & { + left: FExpression; + right: FExpression; +}; +export type FMemberExpression = Omit & { + object: FExpression; + property: FExpression; +}; +export declare function fMemberExpression(expression: MemberExpression): FMemberExpression; +export type FNewExpression = Omit & { + callee: FExpression; + arguments: Array; +}; +type FObjectExpressionElement = { + isSpread: false; + property: FProperty; +} | { + isSpread: true; + argument: FExpression; +}; +export type FObjectExpression = Omit & { + properties: Array; +}; +export type FProperty = Omit & { + key: FIdentifier | FLiteral; + value: FExpression; + kind: 'init'; +}; +export declare function fProperty(property: Property): FProperty; +export type FSimpleCallExpression = Omit & { + callee: FExpression; + arguments: Array; +}; +export type FThisExpression = ThisExpression; +declare function fUnaryOperator(operator: UnaryOperator, range: Range | undefined): "+" | "-" | "!" | "~" | "typeof"; +export type FUnaryOperator = ReturnType; +export type FUnaryExpression = Omit & { + operator: FUnaryOperator; + argument: FExpression; +}; +export type FUpdateExpression = Omit & { + argument: FIdentifier | FMemberExpression; +}; +export type FExpression = FArrayExpression | FArrowFunctionExpression | FAssignmentExpression | FBinaryExpression | FChainExpression | FConditionalExpression | FIdentifier | FLiteral | FLogicalExpression | FMemberExpression | FNewExpression | FObjectExpression | FThisExpression | FSimpleCallExpression | FUnaryExpression | FUpdateExpression; +export declare function fExpression(expression: Expression): FExpression; +export {}; +//# sourceMappingURL=fExpression.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/fExpression.d.ts.map b/packages/flocon-script/dist/esm/fExpression.d.ts.map new file mode 100644 index 000000000..ba524060c --- /dev/null +++ b/packages/flocon-script/dist/esm/fExpression.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fExpression.d.ts","sourceRoot":"","sources":["../../src/fExpression.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/fPattern.d.ts b/packages/flocon-script/dist/esm/fPattern.d.ts new file mode 100644 index 000000000..c3004e429 --- /dev/null +++ b/packages/flocon-script/dist/esm/fPattern.d.ts @@ -0,0 +1,19 @@ +import { ArrayPattern, AssignmentPattern, ObjectPattern, Pattern, RestElement } from 'estree'; +import { FExpression, FIdentifier, FMemberExpression, FProperty } from './fExpression'; +export type FArrayPattern = Omit & { + elements: (FPattern | null)[]; +}; +export type FObjectPattern = Omit & { + properties: (FRestElement | FProperty)[]; +}; +export type FAssignmentPattern = Omit & { + left: FPattern; + right: FExpression; +}; +export type FRestElement = Omit & { + argument: FPattern; +}; +export declare function fRestElement(source: RestElement): FRestElement; +export type FPattern = FArrayPattern | FObjectPattern | FRestElement | FAssignmentPattern | FIdentifier | FMemberExpression; +export declare const fPattern: (pattern: Pattern) => FPattern; +//# sourceMappingURL=fPattern.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/fPattern.d.ts.map b/packages/flocon-script/dist/esm/fPattern.d.ts.map new file mode 100644 index 000000000..823dcdb5c --- /dev/null +++ b/packages/flocon-script/dist/esm/fPattern.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fPattern.d.ts","sourceRoot":"","sources":["../../src/fPattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EACH,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,SAAS,EAIZ,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG;IACzD,QAAQ,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG;IAC7D,UAAU,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IACzE,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG;IACvD,QAAQ,EAAE,QAAQ,CAAC;CACtB,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAK9D;AAED,MAAM,MAAM,QAAQ,GACd,aAAa,GACb,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,WAAW,GACX,iBAAiB,CAAC;AAExB,eAAO,MAAM,QAAQ,YAAa,OAAO,KAAG,QA+B3C,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/fStatement.d.ts b/packages/flocon-script/dist/esm/fStatement.d.ts new file mode 100644 index 000000000..8bd956c4e --- /dev/null +++ b/packages/flocon-script/dist/esm/fStatement.d.ts @@ -0,0 +1,68 @@ +import { BlockStatement, BreakStatement, ContinueStatement, Directive, ExpressionStatement, ForOfStatement, ForStatement, IfStatement, ModuleDeclaration, ReturnStatement, Statement, SwitchCase, SwitchStatement, VariableDeclaration } from 'estree'; +import { FExpression } from './fExpression'; +import { FPattern } from './fPattern'; +export type FBlockStatement = Omit & { + body: Array; +}; +export declare function fBlockStatement(statement: BlockStatement): FBlockStatement; +type FBreakStatement = Omit; +type FContinueStatement = Omit; +declare const fExpressionStatement: (statement: ExpressionStatement) => { + expression: FExpression; + type: "ExpressionStatement"; + leadingComments?: import("estree").Comment[] | undefined; + trailingComments?: import("estree").Comment[] | undefined; + loc?: import("estree").SourceLocation | null | undefined; + range?: [number, number] | undefined; +}; +type FExpressionStatement = ReturnType; +type ForLeft = FPattern | FVariableDeclaration; +type FForOfStatement = Omit & { + left: ForLeft; + right: FExpression; + body: FStatement; +}; +type FForStatement = Omit & { + init: FVariableDeclaration | FExpression | null | undefined; + test: FExpression | null | undefined; + update: FExpression | null | undefined; + body: FStatement; +}; +type FIfStatement = Omit & { + alternate?: FStatement | null; + consequent: FStatement; + test: FExpression; +}; +type FReturnStatement = Omit & { + argument?: FExpression | null; +}; +type FSwitchCase = Omit & { + test?: FExpression | null; + consequent: Array; +}; +type FSwitchStatement = Omit & { + discriminant: FExpression; + cases: Array; +}; +declare const fVariableDeclaration: (statement: VariableDeclaration) => { + kind: "let" | "const"; + declarations: { + id: FPattern; + init: FExpression | null | undefined; + type: "VariableDeclarator"; + leadingComments?: import("estree").Comment[] | undefined; + trailingComments?: import("estree").Comment[] | undefined; + loc?: import("estree").SourceLocation | null | undefined; + range?: [number, number] | undefined; + }[]; + type: "VariableDeclaration"; + leadingComments?: import("estree").Comment[] | undefined; + trailingComments?: import("estree").Comment[] | undefined; + loc?: import("estree").SourceLocation | null | undefined; + range?: [number, number] | undefined; +}; +export type FVariableDeclaration = ReturnType; +export type FStatement = FBlockStatement | FBreakStatement | FContinueStatement | FIfStatement | FExpressionStatement | FForOfStatement | FForStatement | FReturnStatement | FSwitchStatement | FVariableDeclaration; +export declare function fStatement(statement: Directive | Statement | ModuleDeclaration): FStatement; +export {}; +//# sourceMappingURL=fStatement.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/fStatement.d.ts.map b/packages/flocon-script/dist/esm/fStatement.d.ts.map new file mode 100644 index 000000000..e3cf4608a --- /dev/null +++ b/packages/flocon-script/dist/esm/fStatement.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fStatement.d.ts","sourceRoot":"","sources":["../../src/fStatement.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,UAAU,EACV,eAAe,EACf,mBAAmB,EACtB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,WAAW,EAAe,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAY,MAAM,YAAY,CAAC;AAUhD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG;IACzD,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;CAC3B,CAAC;AACF,wBAAgB,eAAe,CAAC,SAAS,EAAE,cAAc,GAAG,eAAe,CAK1E;AAED,KAAK,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAErD,KAAK,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AAE3D,QAAA,MAAM,oBAAoB,cAAe,mBAAmB;;;;;;;CAK3D,CAAC;AACF,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEpE,KAAK,OAAO,GAAG,QAAQ,GAAG,oBAAoB,CAAC;AAE/C,KAAK,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG;IACrE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,KAAK,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG;IAC3E,IAAI,EAAE,oBAAoB,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5D,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,IAAI,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,KAAK,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC,GAAG;IACzE,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,KAAK,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG;IACxD,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,MAAM,CAAC,GAAG;IACzD,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;CACjC,CAAC;AACF,KAAK,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG;IACtE,YAAY,EAAE,WAAW,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;CAC7B,CAAC;AAEF,QAAA,MAAM,oBAAoB,cAAe,mBAAmB;;;;;;;;;;;;;;;;CAmB3D,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE3E,MAAM,MAAM,UAAU,GAChB,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,YAAY,GACZ,oBAAoB,GACpB,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,CAAC;AAE3B,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,UAAU,CA6E3F"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/getRestValues.d.ts b/packages/flocon-script/dist/esm/getRestValues.d.ts new file mode 100644 index 000000000..b2f9e58b6 --- /dev/null +++ b/packages/flocon-script/dist/esm/getRestValues.d.ts @@ -0,0 +1,2 @@ +export declare const getRestValues: (iterator: IterableIterator) => T[]; +//# sourceMappingURL=getRestValues.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/getRestValues.d.ts.map b/packages/flocon-script/dist/esm/getRestValues.d.ts.map new file mode 100644 index 000000000..f3dfee6f5 --- /dev/null +++ b/packages/flocon-script/dist/esm/getRestValues.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"getRestValues.d.ts","sourceRoot":"","sources":["../../src/getRestValues.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,GAAI,CAAC,YAAY,gBAAgB,CAAC,CAAC,CAAC,QAS7D,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/index.d.ts b/packages/flocon-script/dist/esm/index.d.ts new file mode 100644 index 000000000..d51cf291d --- /dev/null +++ b/packages/flocon-script/dist/esm/index.d.ts @@ -0,0 +1,23 @@ +export { exec, test } from './main'; +export { arrayClass } from './builtIn/Array'; +export { createConsoleClass } from './builtIn/console'; +export { mapClass } from './builtIn/Map'; +export { symbolClass } from './builtIn/Symbol'; +export { AstInfo, GetParams, SetParams, OnGettingParams, OnSettingParams, GetCoreParams, SetCoreParams, } from './scriptValue/types'; +export { beginCast } from './scriptValue/cast'; +export { toFValue } from './scriptValue/toFValue'; +export { FArray, FTypedArray } from './scriptValue/FArray'; +export { FBoolean } from './scriptValue/FBoolean'; +export { FFunction } from './scriptValue/FFunction'; +export { FMap } from './scriptValue/FMap'; +export { FNumber } from './scriptValue/FNumber'; +export { FObject } from './scriptValue/FObject'; +export { FRecord } from './scriptValue/FRecord'; +export { FRecordRef } from './scriptValue/FRecordRef'; +export { FString } from './scriptValue/FString'; +export { FSymbol } from './scriptValue/FSymbol'; +export { FType } from './scriptValue/FType'; +export { FValue } from './scriptValue/FValue'; +export { toTypeName } from './scriptValue/toTypeName'; +export { ScriptError } from './ScriptError'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/index.d.ts.map b/packages/flocon-script/dist/esm/index.d.ts.map new file mode 100644 index 000000000..8032edd8e --- /dev/null +++ b/packages/flocon-script/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EACH,OAAO,EACP,SAAS,EACT,SAAS,EACT,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/index.js b/packages/flocon-script/dist/esm/index.js new file mode 100644 index 000000000..aa2147d47 --- /dev/null +++ b/packages/flocon-script/dist/esm/index.js @@ -0,0 +1,2387 @@ +import { parse } from 'acorn'; +import { Option } from '@kizahasi/option'; +import { mapToRecord } from '@flocon-trpg/utils'; + +class ScriptError extends Error { + range; + constructor(message, range) { + super(message); + this.range = range; + this.name = 'ScriptError'; + } + static notConstructorError(range) { + return new ScriptError('Not a constructor', range); + } + static requiresNewError(range) { + return new ScriptError('Need to call with `new` keyword', range); + } +} + +function* mapIterator(source, mapping) { + for (const elem of source) { + yield mapping(elem); + } +} + +var FType; +(function (FType) { + FType.Boolean = 'Boolean'; + FType.Number = 'Number'; + FType.String = 'String'; + FType.Symbol = 'Symbol'; + // 通常のJavaScriptではtypeofで'array'が返されることはないが、このライブラリではArray.isArrayの判定に用いている + FType.Array = 'Array'; + FType.Object = 'Object'; + FType.Function = 'Function'; +})(FType || (FType = {})); + +const tryToPropertyName = (value) => { + switch (value?.type) { + case FType.Number: + case FType.String: + return value.raw.toString(); + case FType.Symbol: + return value.raw; + default: + return undefined; + } +}; + +class FFunction { + func; + constructor(func) { + this.func = func; + } + get type() { + return FType.Function; + } + exec(params) { + return this.func({ ...params }); + } + onGetting(params) { + return Option.none(); + } + get({ property, astInfo }) { + const key = tryToPropertyName(property); + if (key == null) { + return undefined; + } + const onGettingResult = this.onGetting({ key, astInfo }); + if (!onGettingResult.isNone) { + return onGettingResult.value; + } + // TODO: 実装する。ただし、実装するものは注意して選んだほうがいい(結果としてどれも実装しないことになるかも)。 + return undefined; + } + set({ astInfo }) { + throw new ScriptError('You cannot set any value to Function', astInfo?.range); + } + toPrimitiveAsString() { + return (() => { + return; + }).toString(); + } + toPrimitiveAsNumber() { + return +(() => { + return; + }); + } + // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type + toJObject() { + return () => { + throw new Error('Not supported'); + }; + } +} + +class FString { + raw; + constructor(raw) { + this.raw = raw; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + get type() { + return FType.String; + } + get({ property, astInfo }) { + const propertyName = tryToPropertyName(property); + switch (propertyName) { + // TODO: もっと実装する + case 'toString': + return new FFunction(({ isNew }) => { + FString.prepareInstanceMethod(isNew, astInfo); + return this; + }); + default: + return undefined; + } + } + set({ astInfo }) { + throw new ScriptError('You cannot set any value to String', astInfo?.range); + } + iterate() { + return mapIterator(this.raw[Symbol.iterator](), x => new FString(x)); + } + toPrimitiveAsString() { + return this.raw.toString(); + } + toPrimitiveAsNumber() { + return +this.raw; + } + toPrimitiveAsDefault() { + return this.raw.toString(); + } + toJObject() { + return this.raw; + } +} + +class Context { + globalThis; + /* + let x = 1; + let f = () => { + let x = 2; + return 2; + } + + のようなとき、let f の括弧の外では [{ x: 1 }]、let x = 2 のすぐ上では [{ x: 1 }, {}]、下から ) までは [{ x: 1 }, { x: 2 }] となる。 + */ + varTables = [new Map()]; + constructor(globalThis) { + this.globalThis = globalThis; + } + get(name, range) { + const found = this.varTables + .map(table => table.get(name)) + .filter(val => val !== undefined) + .reverse()[0]; + if (found !== undefined) { + return found.ref; + } + const prop = this.globalThis.get({ + property: new FString(name), + astInfo: { range }, + }); + if (prop !== undefined) { + return prop; + } + return undefined; + } + assign(name, newValue, range) { + const found = this.varTables + .map(table => table.get(name)) + .filter(val => val !== undefined) + .reverse()[0]; + if (found !== undefined) { + if (found.isConst) { + throw new Error(`invalid assignment to const '${name}'`); + } + found.ref = newValue; + return; + } + this.globalThis.set({ + property: new FString(name), + newValue, + astInfo: { range }, + }); + } + declare(name, value, type) { + const varTable = this.varTables[this.varTables.length - 1]; + if (varTable === undefined) { + throw new Error('this should not happen'); + } + const found = varTable.get(name); + if (found !== undefined) { + throw new Error(`redeclaration of ${type} ${name}`); + } + varTable.set(name, { + ref: value, + isConst: type === 'const', + }); + } + scopeIn() { + this.varTables.push(new Map()); + } + scopeOut() { + if (this.varTables.length <= 1) { + throw new Error('this.varTables must not be empty'); + } + this.varTables.pop(); + } +} + +function fRestElement(source) { + return { + ...source, + argument: fPattern(source.argument), + }; +} +const fPattern = (pattern) => { + switch (pattern.type) { + case 'ArrayPattern': + return { + ...pattern, + elements: pattern.elements.map(x => (x == null ? x : fPattern(x))), + }; + case 'ObjectPattern': + return { + ...pattern, + properties: pattern.properties.map(x => { + if (x.type === 'RestElement') { + return fRestElement(x); + } + return fProperty(x); + }), + }; + case 'AssignmentPattern': + return { + ...pattern, + left: fPattern(pattern.left), + right: fExpression(pattern.right), + }; + case 'RestElement': + // function f(...x) {return x;} の...xの部分で使われる + return fRestElement(pattern); + case 'Identifier': + return pattern; + case 'MemberExpression': + return fMemberExpression(pattern); + } +}; + +const toRange = (source) => { + if (source == null) { + return undefined; + } + // @types/estreeとacornでは型が異なる。このライブラリではacornを用いているため、それに合わせて型変換している。 + const range = source; + if (typeof range.start === 'number' && typeof range.end === 'number') { + return [range.start, range.end]; + } + return undefined; +}; + +function fArrayExpression(expression) { + return { + ...expression, + elements: expression.elements.map(e => { + if (e == null) { + return e; + } + if (e.type === 'SpreadElement') { + return { + isSpread: true, + argument: fExpression(e.argument), + }; + } + return { isSpread: false, expression: fExpression(e) }; + }), + }; +} +function fArrowFuntionExpression(expression) { + const params = expression.params.map(param => fPattern(param)); + let body; + if (expression.body.type === 'BlockStatement') { + body = fBlockStatement(expression.body); + } + else { + body = fExpression(expression.body); + } + return { + ...expression, + body, + params, + }; +} +function fAssignmentOperator(operator) { + return operator; +} +function fAssignmentExpression(expression) { + let left; + switch (expression.left.type) { + case 'Identifier': + left = expression.left; + break; + case 'MemberExpression': + left = fMemberExpression(expression.left); + break; + default: + throw new ScriptError(`'${expression.left.type}' is not supported`, toRange(expression)); + } + return { + ...expression, + operator: fAssignmentOperator(expression.operator), + left, + right: fExpression(expression.right), + }; +} +function fBaseCallExpression(expression) { + if (expression.callee.type === 'Super') { + throw new ScriptError(`'${expression.callee.type}' is not supported`, toRange(expression)); + } + return { + ...expression, + callee: fExpression(expression.callee), + arguments: expression.arguments.map(arg => { + if (arg.type === 'SpreadElement') { + throw new ScriptError(`'${arg.type} is not supported'`, toRange(arg)); + } + return fExpression(arg); + }), + }; +} +function fBinaryOperator(operator, range) { + switch (operator) { + case 'in': + case 'instanceof': + throw new ScriptError(`'${operator}' is not supported`, range); + default: + return operator; + } +} +function fBinaryExpression(expression) { + if (expression.left.type === 'PrivateIdentifier') { + throw new ScriptError(`'${expression.left.type}' in BinaryExpression is not supported`, expression.left.range); + } + return { + ...expression, + operator: fBinaryOperator(expression.operator, toRange(expression)), + left: fExpression(expression.left), + right: fExpression(expression.right), + }; +} +function fChainExpression(expression) { + if (expression.expression.type === 'CallExpression') { + return { + ...expression, + expression: fSimpleCallExpression(expression.expression), + }; + } + return { + ...expression, + expression: fMemberExpression(expression.expression), + }; +} +function fConditionalExpression(expression) { + return { + ...expression, + test: fExpression(expression.test), + alternate: fExpression(expression.alternate), + consequent: fExpression(expression.consequent), + }; +} +function fLiteral(expression) { + if ('bigint' in expression) { + throw new ScriptError(`'bigint' is not supported`, toRange(expression)); + } + if ('regex' in expression) { + throw new ScriptError(`'regex' is not supported`, toRange(expression)); + } + return expression; +} +function fLogicalExpression(expression) { + return { + ...expression, + left: fExpression(expression.left), + right: fExpression(expression.right), + }; +} +function fMemberExpression(expression) { + if (expression.object.type === 'Super') { + throw new ScriptError("'Super' is not supported", toRange(expression)); + } + if (expression.property.type === 'PrivateIdentifier') { + // 用途が不明 + throw new ScriptError("'PrivateIdentifier' is not supported", toRange(expression)); + } + return { + ...expression, + object: fExpression(expression.object), + property: fExpression(expression.property), + }; +} +function fNewExpression(expression) { + return { + ...expression, + ...fBaseCallExpression(expression), + type: expression.type, + }; +} +function fObjectExpression(expression) { + return { + ...expression, + properties: expression.properties.map(prop => { + if (prop.type === 'SpreadElement') { + return { isSpread: true, argument: fExpression(prop.argument) }; + } + return { isSpread: false, property: fProperty(prop) }; + }), + }; +} +function fProperty(property) { + let key; + switch (property.key.type) { + case 'Identifier': + key = property.key; + break; + case 'Literal': + key = fLiteral(property.key); + break; + default: + throw new ScriptError(`'${property.key.type}' is not supported`, toRange(property.key)); + } + switch (property.value.type) { + case 'ArrayPattern': + case 'ObjectPattern': + case 'RestElement': + case 'AssignmentPattern': { + throw new ScriptError(`'${property.value.type}' is not supported`, toRange(property.value)); + } + } + switch (property.kind) { + case 'init': + break; + default: + throw new ScriptError(`'${property.kind}' is not supported`, toRange(property.value)); + } + return { + ...property, + key, + value: fExpression(property.value), + kind: property.kind, + }; +} +function fSimpleCallExpression(expression) { + return { + ...expression, + ...fBaseCallExpression(expression), + type: expression.type, + }; +} +function fUnaryOperator(operator, range) { + switch (operator) { + case 'delete': + case 'void': + throw new ScriptError(`'${operator}' is not supported`, range); + default: + return operator; + } +} +function fUnaryExpression(expression) { + return { + ...expression, + operator: fUnaryOperator(expression.operator, toRange(expression)), + argument: fExpression(expression.argument), + }; +} +function fUpdateExpression(expression) { + switch (expression.argument.type) { + case 'Identifier': + return { + ...expression, + argument: expression.argument, + }; + case 'MemberExpression': + return { + ...expression, + argument: fMemberExpression(expression.argument), + }; + default: + // ここに来る状況があるかどうか不明 + throw new ScriptError('Invalid update expression argument', toRange(expression)); + } +} +function fExpression(expression) { + switch (expression.type) { + case 'ArrayExpression': + return fArrayExpression(expression); + case 'ArrowFunctionExpression': + return fArrowFuntionExpression(expression); + case 'AssignmentExpression': + return fAssignmentExpression(expression); + case 'BinaryExpression': + return fBinaryExpression(expression); + case 'CallExpression': + return fSimpleCallExpression(expression); + case 'ChainExpression': + return fChainExpression(expression); + case 'ConditionalExpression': + return fConditionalExpression(expression); + case 'Identifier': + return expression; + case 'Literal': + return fLiteral(expression); + case 'LogicalExpression': + return fLogicalExpression(expression); + case 'MemberExpression': + return fMemberExpression(expression); + case 'NewExpression': + return fNewExpression(expression); + case 'ObjectExpression': + return fObjectExpression(expression); + case 'ThisExpression': + return expression; + case 'UnaryExpression': + return fUnaryExpression(expression); + case 'UpdateExpression': + return fUpdateExpression(expression); + default: + throw new ScriptError(`'${expression.type}' is not supported`, toRange(expression)); + } +} + +function fBlockStatement(statement) { + return { + ...statement, + body: statement.body.map(x => fStatement(x)), + }; +} +const fExpressionStatement = (statement) => { + return { + ...statement, + expression: fExpression(statement.expression), + }; +}; +const fVariableDeclaration = (statement) => { + if (statement.kind === 'var') { + throw new ScriptError(`'${statement.kind}' is not supported. Use 'let' instead.`, toRange(statement)); + } + const declarations = statement.declarations.map(d => { + return { + ...d, + id: fPattern(d.id), + init: d.init == null ? d.init : fExpression(d.init), + }; + }); + return { + ...statement, + kind: statement.kind, + declarations, + }; +}; +function fStatement(statement) { + switch (statement.type) { + case 'BlockStatement': + return fBlockStatement(statement); + case 'BreakStatement': + if (statement.label != null) { + throw new ScriptError('labels are not supported'); + } + return statement; + case 'ContinueStatement': + if (statement.label != null) { + throw new ScriptError('labels are not supported'); + } + return statement; + case 'ExpressionStatement': + return fExpressionStatement(statement); + case 'ForOfStatement': + return { + ...statement, + left: statement.left.type === 'VariableDeclaration' + ? fVariableDeclaration(statement.left) + : fPattern(statement.left), + right: fExpression(statement.right), + body: fStatement(statement.body), + }; + case 'ForStatement': { + let init; + if (statement.init == null) { + init = statement.init; + } + else if (statement.init.type === 'VariableDeclaration') { + init = fVariableDeclaration(statement.init); + } + else { + init = fExpression(statement.init); + } + return { + ...statement, + init, + test: statement.test == null ? statement.test : fExpression(statement.test), + update: statement.update == null ? statement.update : fExpression(statement.update), + body: fStatement(statement.body), + }; + } + case 'IfStatement': + return { + ...statement, + alternate: statement.alternate == null + ? statement.alternate + : fStatement(statement.alternate), + consequent: fStatement(statement.consequent), + test: fExpression(statement.test), + }; + case 'ReturnStatement': + return { + ...statement, + argument: statement.argument == null + ? statement.argument + : fExpression(statement.argument), + }; + case 'SwitchStatement': { + return { + ...statement, + cases: statement.cases.map(c => ({ + ...c, + consequent: c.consequent.map(s => fStatement(s)), + test: c.test == null ? c.test : fExpression(c.test), + })), + discriminant: fExpression(statement.discriminant), + }; + } + case 'VariableDeclaration': + return fVariableDeclaration(statement); + default: + throw new ScriptError(`'${statement.type}' is not supported`, toRange(statement)); + } +} + +const getRestValues = (iterator) => { + const result = []; + while (true) { + const next = iterator.next(); + if (next.done) { + return result; + } + result.push(next.value); + } +}; + +// 単にsource?.toJObject() と書くと、source === nullのときにnullではなくundefinedとなってしまう。これでは困る場面があるため、この関数を定義している。 +const toJObject = (source) => { + if (source == null) { + return source; + } + return source.toJObject(); +}; + +class FBoolean { + raw; + constructor(raw) { + this.raw = raw; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + get type() { + return FType.Boolean; + } + get({ property, astInfo }) { + const propertyName = tryToPropertyName(property); + switch (propertyName) { + case 'toString': + return new FFunction(({ isNew }) => { + FBoolean.prepareInstanceMethod(isNew, astInfo); + return new FString(this.raw.toString()); + }); + default: + return undefined; + } + } + set({ astInfo }) { + throw new ScriptError('You cannot set any value to Boolean', astInfo?.range); + } + toPrimitiveAsString() { + return this.raw.toString(); + } + toPrimitiveAsNumber() { + return +this.raw; + } + toJObject() { + return this.raw; + } +} + +class FNumber { + raw; + constructor(raw) { + this.raw = raw; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + get type() { + return FType.Number; + } + get({ property, astInfo }) { + const propertyName = tryToPropertyName(property); + switch (propertyName) { + // TODO: もっと実装する + case 'toString': + return new FFunction(({ args, isNew }) => { + FNumber.prepareInstanceMethod(isNew, astInfo); + const radix = args[0]; + return new FString(this.raw.toString(beginCast(radix, astInfo).addNumber().addUndefined().cast())); + }); + default: + return undefined; + } + } + set({ astInfo }) { + throw new ScriptError('You cannot set any value to Number', astInfo?.range); + } + toPrimitiveAsString() { + return this.raw.toString(); + } + toPrimitiveAsNumber() { + return +this.raw; + } + toJObject() { + return this.raw; + } +} + +class FSymbol { + raw; + constructor(raw) { + this.raw = raw; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + get type() { + return FType.Symbol; + } + get({ property, astInfo }) { + const propertyName = tryToPropertyName(property); + switch (propertyName) { + case 'toString': + return new FFunction(({ isNew }) => { + FSymbol.prepareInstanceMethod(isNew, astInfo); + return new FString(this.raw.toString()); + }); + default: + return undefined; + } + } + set({ astInfo }) { + throw new ScriptError('You cannot set any value to Symbol', astInfo?.range); + } + toPrimitiveAsString() { + return this.raw.toString(); + } + toPrimitiveAsNumber() { + throw new ScriptError("can't convert symbol to number"); + } + toJObject() { + return this.raw; + } +} + +const toTypeName = (value) => { + if (value === null) { + return 'null'; + } + if (value === undefined) { + return 'undefined'; + } + return value.type; +}; + +const typesOptionToString = (source) => { + const base = [ + source.array ? 'array' : null, + source.boolean ? 'boolean' : null, + source.function ? 'function' : null, + source.null ? 'null' : null, + source.number ? 'number' : null, + source.object ? 'object' : null, + source.string ? 'string' : null, + source.symbol ? 'symbol' : null, + source.undefined ? 'undefined' : null, + ].reduce((seed, elem) => { + if (elem == null) { + return seed; + } + if (seed === '') { + return elem; + } + return `${seed}, ${elem}`; + }, ''); + return `[${base}]`; +}; +class JObjectCaster { + source; + addedTypes; + successfullyCastedValue; + astInfo; + constructor(source, addedTypes, successfullyCastedValue, astInfo) { + this.source = source; + this.addedTypes = addedTypes; + this.successfullyCastedValue = successfullyCastedValue; + this.astInfo = astInfo; + } + static begin(source, astInfo) { + return new JObjectCaster(source, {}, Option.none(), astInfo); + } + cast() { + if (this.successfullyCastedValue.isNone) { + throw new ScriptError(`Expected type: ${typesOptionToString(this.addedTypes)}, Actual type: ${toTypeName(this.source)}`, this.astInfo?.range); + } + return this.successfullyCastedValue.value; + } + addArray() { + if (this.source instanceof FArray) { + return new JObjectCaster(this.source, { ...this.addedTypes, array: true }, Option.some(this.source), this.astInfo); + } + return this; + } + addBoolean() { + if (this.source instanceof FBoolean) { + return new JObjectCaster(this.source, { ...this.addedTypes, boolean: true }, Option.some(this.source.raw), this.astInfo); + } + return this; + } + addFunction() { + if (this.source instanceof FFunction) { + const source = this.source; + return new JObjectCaster(source, { ...this.addedTypes, function: true }, Option.some((isNew) => (args) => source.exec({ args, isNew, astInfo: this.astInfo })), this.astInfo); + } + return this; + } + addNull() { + if (this.source === null) { + const source = this.source; + return new JObjectCaster(source, { ...this.addedTypes, null: true }, Option.some(null), this.astInfo); + } + return this; + } + addNumber() { + if (this.source instanceof FNumber) { + return new JObjectCaster(this.source, { ...this.addedTypes, number: true }, Option.some(this.source.raw), this.astInfo); + } + return this; + } + addObject() { + if (this.source instanceof FObject) { + return new JObjectCaster(this.source, { ...this.addedTypes, object: true }, Option.some(this.source), this.astInfo); + } + return this; + } + addString() { + if (this.source instanceof FString) { + return new JObjectCaster(this.source, { ...this.addedTypes, string: true }, Option.some(this.source.raw), this.astInfo); + } + return this; + } + addSymbol() { + if (this.source instanceof FSymbol) { + return new JObjectCaster(this.source, { ...this.addedTypes, symbol: true }, Option.some(this.source.raw), this.astInfo); + } + return this; + } + addUndefined() { + if (this.source === undefined) { + const source = this.source; + return new JObjectCaster(source, { ...this.addedTypes, undefined: true }, Option.some(undefined), this.astInfo); + } + return this; + } +} +const beginCast = (source, astInfo) => { + return JObjectCaster.begin(source, astInfo); +}; + +// If you do not want to throw expections, consider using tryToProperyName instead. +const toPropertyName = (value, astInfo) => { + const result = beginCast(value, astInfo).addString().addNumber().addSymbol().cast(); + if (typeof result === 'number') { + return result.toString(); + } + return result; +}; + +class FObject { + get({ property, astInfo }) { + const key = tryToPropertyName(property); + if (key == null) { + return undefined; + } + return this.getCore({ key, astInfo }); + } + set({ property, newValue, astInfo }) { + const key = toPropertyName(property, astInfo); + this.setCore({ key, newValue, astInfo }); + } + get type() { + return FType.Object; + } + toPrimitiveAsString() { + // eslint-disable-next-line @typescript-eslint/no-base-to-string + return {}.toString(); + } + toPrimitiveAsNumber() { + return +{}; + } +} + +const symbolNotSupportedMessage = 'Symbol keys are not supported'; +// Mapに変換することで、外界から受け取ったオブジェクトに対する破壊的な操作を起こせないようにしている。 +class FRecord extends FObject { + source; + constructor(base) { + super(); + if (base != null) { + this.source = new Map(base.source); + } + else { + this.source = new Map(); + } + } + getCore({ key, astInfo }) { + if (typeof key === 'symbol') { + throw new ScriptError(symbolNotSupportedMessage, astInfo?.range); + } + return this.source.get(key.toString()); + } + setCore({ key, newValue, astInfo }) { + if (typeof key === 'symbol') { + throw new ScriptError(symbolNotSupportedMessage, astInfo?.range); + } + this.source.set(key.toString(), newValue); + } + clone() { + return new FRecord(this); + } + forEach(callbackfn) { + this.source.forEach(callbackfn); + } + toJObject() { + const result = new Map(); + this.source.forEach((value, key) => { + result.set(key, toJObject(value)); + }); + return mapToRecord(result); + } +} + +class FIterator extends FObject { + source; + convertValue; + constructor(source, convertValue) { + super(); + this.source = source; + this.convertValue = convertValue; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + static create(source) { + return new FIterator(source, x => x); + } + get type() { + return FType.Object; + } + getCore(params) { + const { key, astInfo } = params; + switch (key) { + case 'next': + return new FFunction(({ isNew }) => { + FIterator.prepareInstanceMethod(isNew, astInfo); + const next = this.source.next(); + const result = new FRecord(); + result.set({ + property: new FString('value'), + newValue: this.convertValue(next.value), + astInfo, + }); + result.set({ + property: new FString('done'), + newValue: next.done === undefined ? undefined : new FBoolean(next.done), + astInfo, + }); + return result; + }); + } + return undefined; + } + setCore(params) { + throw new ScriptError('You cannot set any value to Iterator', params.astInfo?.range); + } + iterate() { + return mapIterator(this.source, x => this.convertValue(x)); + } + toPrimitiveAsString() { + // JavaScriptでは例えば配列由来なら'[object Array Iterator]'となる(ChromeとFirefoxで確認)が、ここでは実装を簡略化するためにすべてIteratorとしている + return '[object Iterator]'; + } + toPrimitiveAsNumber() { + return NaN; + } + toJObject() { + return mapIterator(this.source, x => toJObject(this.convertValue(x))); + } +} + +class FArray { + source; + convert; + convertBack; + constructor(source, convert, convertBack) { + this.source = source; + this.convert = convert; + this.convertBack = convertBack; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + static create(source) { + return new FArray(source, x => x, x => x); + } + get type() { + return FType.Array; + } + toJArray() { + return this.source.map(x => this.convert(x)); + } + iterate() { + return mapIterator(this.source[Symbol.iterator](), x => this.convert(x)); + } + static isValidIndex(index) { + if (index == null || typeof index === 'symbol') { + return false; + } + return index === '0' || /^[1-9][0-9]*$/.test(index); + } + get({ property, astInfo }) { + const index = tryToPropertyName(property); + if (FArray.isValidIndex(index)) { + const found = this.source[index]; + if (found === undefined) { + return undefined; + } + return this.convert(found); + } + const propertyName = index; + switch (propertyName) { + case 'filter': + return new FFunction(({ args, isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const predicate = beginCast(args[0], astInfo).addFunction().cast()(false); + const raw = this.toJArray().filter((value, index) => predicate([value, new FNumber(index)])?.toJObject()); + return FArray.create(raw); + }); + case 'find': + return new FFunction(({ args, isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const predicate = beginCast(args[0], astInfo).addFunction().cast()(false); + const raw = this.toJArray().find((value, index) => predicate([value, new FNumber(index)])?.toJObject()); + return raw; + }); + case 'forEach': + return new FFunction(({ args, isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const callbackfn = beginCast(args[0], astInfo).addFunction().cast()(false); + this.toJArray().forEach((value, index) => callbackfn([value, new FNumber(index)])); + return undefined; + }); + case 'map': + return new FFunction(({ args, isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const mapping = beginCast(args[0], astInfo).addFunction().cast()(false); + const raw = this.toJArray().map((value, index) => mapping([value, new FNumber(index)])); + return FArray.create(raw); + }); + case 'pop': + return new FFunction(({ isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const result = this.source.pop(); + return this.convert(result); + }); + case 'push': + return new FFunction(({ args, isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + args.forEach(arg => { + const newValue = this.convertBack(arg, astInfo); + this.source.push(newValue); + }); + return new FNumber(this.source.length); + }); + case 'shift': + return new FFunction(({ isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const result = this.source.shift(); + return this.convert(result); + }); + case 'unshift': + return new FFunction(({ args, isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + args.reduceRight((seed, arg) => { + const newValue = this.convertBack(arg, astInfo); + this.source.unshift(newValue); + }, undefined); + return new FNumber(this.source.length); + }); + case Symbol.iterator: + return new FFunction(({ isNew }) => { + FArray.prepareInstanceMethod(isNew, astInfo); + const source = this.source[Symbol.iterator](); + return FIterator.create(mapIterator(source, x => this.convert(x))); + }); + } + return undefined; + } + set({ property, newValue, astInfo }) { + const index = toPropertyName(property, astInfo); + if (FArray.isValidIndex(index)) { + this.source[index] = this.convertBack(newValue, astInfo); + return; + } + throw new ScriptError(`"${typeof index === 'symbol' ? 'symbol' : index}" is not supported`, astInfo?.range); + } + toPrimitiveAsString() { + return this.toJArray() + .map(x => x?.toPrimitiveAsString()) + .toString(); + } + toPrimitiveAsNumber() { + return +this.toJArray().map(x => x?.toPrimitiveAsNumber()); + } + // 正確な型が表現できないのでunknown[]としている + toJObject() { + return this.toJArray().map(x => (x == null ? x : x.toJObject())); + } +} +class FTypedArray extends FArray { + constructor(source, convert, convertBack) { + super(source, value => convert(value), convertBack); + } +} + +// https://ja.javascript.info/object-toprimitive +const toPrimitive = (value, hint) => { + if (value == null) { + return value; + } + if (hint === 'string') { + return value.toPrimitiveAsString(); + } + if (hint === 'number') { + return value.toPrimitiveAsNumber(); + } + const obj = value; + if (obj.toPrimitiveAsDefault == null) { + return obj.toPrimitiveAsNumber(); + } + return obj.toPrimitiveAsDefault(); +}; + +const compare = (left, right, hint, comparer) => { + if (hint === 'JObject') { + return comparer(toJObject(left), toJObject(right)); + } + return comparer(toPrimitive(left, hint), toPrimitive(right, hint)); +}; +const compareToNumber = (left, right, hint, comparer) => { + return new FNumber(compare(left, right, hint, comparer)); +}; +const compareToBoolean = (left, right, hint, comparer) => { + return new FBoolean(compare(left, right, hint, comparer)); +}; +const compareToNumberOrString = (left, right, hint, comparer) => { + const r = compare(left, right, hint, comparer); + if (typeof r === 'number') { + return new FNumber(r); + } + return new FString(r); +}; + +// 例えばxとyがObjectのときは x === y で比較されるため、「toPrimitiveで変換してから==で比較」という作戦は使えない。そのため、ここで専用の関数を定義している。 +// https://developer.mozilla.org/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness +const eqeq = (x, y) => { + if (x == null) { + return y == null; + } + if (y == null) { + return false; + } + const xAsObjectBase = x; + if (xAsObjectBase.equals != null) { + return xAsObjectBase.equals(y, '=='); + } + switch (x.type) { + case FType.Boolean: + case FType.Number: + case FType.String: + case FType.Symbol: + switch (y.type) { + case FType.Boolean: + case FType.Number: + case FType.String: + // eslint-disable-next-line eqeqeq + return x.raw == y.raw; + default: + // eslint-disable-next-line eqeqeq + return x.raw == toPrimitive(y, 'default'); + } + default: + switch (y.type) { + case FType.Boolean: + case FType.Number: + case FType.String: + case FType.Symbol: + // eslint-disable-next-line eqeqeq + return toPrimitive(x, 'default') == y.raw; + default: + return x === y; + } + } +}; + +const eqeqeq = (x, y) => { + if (x === null) { + return y === null; + } + if (x === undefined) { + return y === undefined; + } + const xAsObjectBase = x; + if (xAsObjectBase.equals != null) { + return xAsObjectBase.equals(y, '==='); + } + switch (x.type) { + case FType.Boolean: + case FType.Number: + case FType.String: + case FType.Symbol: + if (y?.type !== x.type) { + return false; + } + return x.raw === y.raw; + default: + return x === y; + } +}; + +// https://developer.mozilla.org/ja/docs/Glossary/Falsy +const isTruthy = (value) => { + if (value == null) { + return false; + } + switch (value.type) { + case FType.Boolean: + case FType.Number: + case FType.String: + case FType.Symbol: + if (value.raw) { + return true; + } + else { + return false; + } + default: + return true; + } +}; + +const self = 'self'; +const globalThis = 'globalThis'; +// keyが'self'か'globalThis'のときは自分自身を返すRecord +// baseでkeyが'self'か'globalThis'である要素は全て無視される +class FGlobalRecord extends FRecord { + constructor(base) { + super(base); + } + getCore(params) { + const keyAsString = params.key.toString(); + if (keyAsString === self || keyAsString === globalThis) { + return this; + } + return super.getCore(params); + } + setCore({ key, newValue, astInfo }) { + const keyAsString = key.toString(); + if (keyAsString === self || keyAsString === globalThis) { + throw new ScriptError(`Assignment to '${keyAsString}' is not supported`, astInfo?.range); + } + super.setCore({ key, newValue, astInfo }); + } +} + +class FMap extends FObject { + source; + convertValue; + convertValueBack; + constructor(source, convertValue, convertValueBack) { + super(); + this.source = source; + this.convertValue = convertValue; + this.convertValueBack = convertValueBack; + } + static prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + static create(source) { + return new FMap(source, x => x, x => x); + } + convertKeyBack(source, astInfo) { + return beginCast(source, astInfo) + .addBoolean() + .addNumber() + .addString() + .addSymbol() + .addNull() + .addUndefined() + .cast(); + } + get type() { + return FType.Object; + } + getCore(params) { + const { key, astInfo } = params; + switch (key) { + case 'clear': + return new FFunction(({ isNew }) => { + FMap.prepareInstanceMethod(isNew, astInfo); + this.source.clear(); + return undefined; + }); + case 'delete': + return new FFunction(({ args, isNew }) => { + FMap.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + const result = this.source.delete(key); + return new FBoolean(result); + }); + case 'forEach': + return new FFunction(({ args, isNew }) => { + FMap.prepareInstanceMethod(isNew, astInfo); + const callbackfn = beginCast(args[0], astInfo).addFunction().cast()(false); + this.source.forEach((value, key) => callbackfn([this.convertValue(value), toFValue(key)])); + return undefined; + }); + case 'get': + return new FFunction(({ args, isNew }) => { + FMap.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + const value = this.source.get(key); + return this.convertValue(value); + }); + case 'has': + return new FFunction(({ args, isNew }) => { + FMap.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + const value = this.source.has(key); + return new FBoolean(value); + }); + case 'size': + return new FNumber(this.source.size); + case 'set': + return new FFunction(({ args, isNew }) => { + FMap.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + const value = this.convertValueBack(args[1], astInfo); + this.source.set(key, value); + return undefined; + }); + } + return undefined; + } + setCore(params) { + throw new ScriptError('You cannot set any value to Map', params.astInfo?.range); + } + iterate() { + return mapIterator(this.source[Symbol.iterator](), ([keySource, valueSource]) => { + const key = toFValue(keySource); + const value = this.convertValue(valueSource); + return FArray.create([key, value]); + }); + } + toPrimitiveAsString() { + return '[object Map]'; + } + toPrimitiveAsNumber() { + return NaN; + } + // 正確な型が表現できないのでvalueはunknownとしている + toJObject() { + const result = new Map(); + this.source.forEach((value, key) => { + const converted = this.convertValue(value); + result.set(key, converted == null ? converted : converted.toJObject()); + }); + return result; + } +} + +/* eslint-disable @typescript-eslint/no-unsafe-argument */ +function toFValue(source) { + if (source === null) { + return null; + } + if (source === undefined) { + return undefined; + } + switch (typeof source) { + case 'boolean': + return new FBoolean(source); + case 'number': + return new FNumber(source); + case 'string': + return new FString(source); + case 'symbol': + return new FSymbol(source); + case 'function': + throw new Error('Function is not supported. Use FFunction instead.'); + } + if (source instanceof FArray || + source instanceof FBoolean || + source instanceof FFunction || + source instanceof FNumber || + source instanceof FObject || + source instanceof FString || + source instanceof FSymbol) { + return source; + } + if (Array.isArray(source)) { + return FArray.create(source.map(x => toFValue(x))); + } + if (source instanceof Map) { + return FMap.create(source); + } + return toFRecord(source); +} + +// __proto__ のチェックなどは行われない +const toFRecord = (source) => { + const result = new FRecord(); + for (const key in source) { + result.set({ + property: new FString(key), + newValue: toFValue(source[key]), + astInfo: undefined, + }); + } + return result; +}; + +// keyが'self'か'globalThis'である要素は無視されることに注意 +function toFGlobalRecord(source) { + return new FGlobalRecord(toFRecord(source)); +} + +/* eslint-disable @typescript-eslint/no-unsafe-return */ +function ofFLiteral(literal) { + if (literal.value == null) { + return null; + } + switch (typeof literal.value) { + case 'boolean': + return new FBoolean(literal.value); + case 'string': + return new FString(literal.value); + case 'number': + return new FNumber(literal.value); + default: + throw new Error('This should not happen.'); + } +} +// @types/estree では CallExpression = SimpleCallExpression | NewExpression なのでそれに合わせた命名をしている +function ofFCallExpression(expression, context, isChain, isNew) { + const callee = ofFExpression(expression.callee, context); + const args = expression.arguments.map(arg => { + return ofFExpression(arg, context); + }); + if (isChain && callee == null) { + return undefined; + } + if (callee?.type !== FType.Function) { + throw new Error(`${callee == null ? callee : callee.type} is not a function`); + } + return callee.exec({ args, isNew: isNew != null, astInfo: { range: toRange(expression) } }); +} +function ofFMemberExpressionAsGet(expression, context, isChain) { + const object = ofFExpression(expression.object, context); + if (object == null) { + if (isChain) { + return undefined; + } + throw new Error('object is null or undefined'); + } + if (expression.computed) { + const property = ofFExpression(expression.property, context); + return object.get({ property, astInfo: { range: toRange(expression) } }); + } + if (expression.property.type !== 'Identifier') { + throw new Error('this should not happen'); + } + return object.get({ + property: new FString(expression.property.name), + astInfo: { range: toRange(expression) }, + }); +} +function ofFMemberExpressionAsAssign(expression, newValue, context) { + const object = ofFExpression(expression.object, context); + let property; + if (!expression.computed && expression.property.type === 'Identifier') { + property = new FString(expression.property.name); + } + else { + property = ofFExpression(expression.property, context); + } + if (object == null) { + throw new Error(`Object is ${toTypeName(object)}`); + } + object.set({ + property, + newValue: newValue, + astInfo: { range: toRange(expression) }, + }); + return undefined; +} +function ofFPattern(pattern, context, kind, value, +// let {a, ...b} = foo; のbのようにbにobjectが入る場面では'object'を、let [a, ...b] = bar; のbのようにbにArrayが入る場面では'array'を渡す。 +// function f(...p) { return p; } のpの場面ではArrayが入るため'array'を渡す。再帰以外でofFPatternが呼ばれてなおかつpatternがRestElementであるケースはそれしかないと思われるため、引数のデフォルト値は'array'としている。 +setToRestElementAs = 'array') { + switch (pattern.type) { + case 'Identifier': + switch (kind) { + case 'assign': + context.assign(pattern.name, value, toRange(pattern)); + return; + default: + context.declare(pattern.name, value, kind); + return; + } + case 'AssignmentPattern': + // JavaScriptでは引数が存在しない場合は引数がundefinedとみなされるため、このように単にundefinedかどうかチェックするだけでよい。 + ofFPattern(pattern.left, context, kind, value === undefined ? ofFExpression(pattern.right, context) : value, setToRestElementAs); + return; + case 'MemberExpression': + ofFMemberExpressionAsAssign(pattern, value, context); + return; + case 'ArrayPattern': { + const valueAsFObjectBase = value; + if (valueAsFObjectBase?.iterate == null) { + throw new ScriptError(`${value == null ? value : value.type} is not iterable`); + } + const valueIterator = valueAsFObjectBase.iterate(); + const valueIteratorNext = () => { + const next = valueIterator.next(); + if (next.done) { + return undefined; + } + return next.value; + }; + for (const arrayPatternElement of pattern.elements) { + if (arrayPatternElement?.type === 'RestElement') { + ofFPattern(arrayPatternElement.argument, context, kind, FArray.create(getRestValues(valueIterator)), setToRestElementAs); + // RestElementはArrayPatternの最後にしか存在し得ないため、breakで抜けてしまって構わない。 + break; + } + const rightValueElement = valueIteratorNext(); + if (arrayPatternElement === null) { + continue; + } + ofFPattern(arrayPatternElement, context, kind, rightValueElement, 'array'); + } + return; + } + case 'ObjectPattern': { + if (value == null) { + throw new ScriptError(`${value} has no properties`); + } + // 本題の前に前提として、ObjectPattern内にRestElementがある場合、FRecordでなければエラーとみなすようにしている。理由は、TypeScriptでも同様の挙動を示すため(JavaScriptではエラーは出ないが、TypeScriptとして使う前提であるため考慮していない)。 + // RestElementが来たときにそれ以前に書かれたプロパティを除外していなければならないため、valueがFRecordであれば、それらを除外した状態のオブジェクトをnextValueとして保持している。ただし、FRecordでない場合はnextValueは常にvalueと等しくなる。これは、RestElementはFRecordに対応していないので、FRecord以外のオブジェクトのプロパティを除外する必要がないため。 + let nextValue = value; + for (const objectPatternProperty of pattern.properties) { + if (objectPatternProperty.type === 'RestElement') { + ofFPattern(objectPatternProperty, context, kind, nextValue, 'object'); + continue; + } + if (objectPatternProperty.key.type === 'Literal') { + // どのような場面でここに来るのかまだ分かっていない + throw new ScriptError('Literal as a key of ObjectPattern is not supported'); + } + const key = new FString(objectPatternProperty.key.name); + switch (kind) { + case 'assign': + context.assign(objectPatternProperty.key.name, nextValue.get({ property: key, astInfo: objectPatternProperty.key }), toRange(pattern)); + break; + default: + context.declare(objectPatternProperty.key.name, nextValue.get({ property: key, astInfo: objectPatternProperty.key }), kind); + break; + } + if (value instanceof FRecord) { + const $nextValue = value.clone(); + $nextValue.source.delete(objectPatternProperty.key.name); + nextValue = $nextValue; + } + else { + nextValue = value; + } + } + return; + } + case 'RestElement': + if (setToRestElementAs === 'array') { + const valueAsFObjectBase = value; + if (valueAsFObjectBase?.iterate == null) { + throw new ScriptError(`${value == null ? value : value.type} is not iterable`); + } + ofFPattern(pattern.argument, context, kind, value, 'array'); + return; + } + ofFPattern(pattern.argument, context, kind, value, 'object'); + return; + } +} +/* +let x; や let x = 1; のようなコードでは、valueToSetにundefinedを渡す。 +for (let x of [1]) {} のようなコードではinitはnullishであるため、valueToSetに1を渡さなければならない。 +*/ +function ofFVariableDeclaration(statement, context, valueToSet) { + const kind = statement.kind; + statement.declarations.forEach(d => { + // let x; のような場合は let x = undefined; と同等とみなして良さそう。const x; はparseの時点で弾かれるはず。 + ofFPattern(d.id, context, kind, d.init == null ? valueToSet : ofFExpression(d.init, context)); + }); +} +function ofFExpression(expression, context) { + switch (expression.type) { + case 'ArrayExpression': { + const result = []; + expression.elements.forEach(d => { + if (d === null) { + result.push(null); + return; + } + if (!d.isSpread) { + result.push(ofFExpression(d.expression, context)); + return; + } + const argument = ofFExpression(d.argument, context); + if (argument == null || argument.iterate == null) { + throw new ScriptError(`${argument?.toPrimitiveAsString()} is not iterable`, toRange(d.argument)); + } + for (const elem of argument.iterate()) { + result.push(elem); + } + }); + return FArray.create(result); + } + case 'ArrowFunctionExpression': { + const f = ({ args, isNew }) => { + if (isNew) { + throw new ScriptError('ArrowFunction is not a constructor', toRange(expression)); + } + context.scopeIn(); + expression.params.forEach((param, i) => { + ofFPattern(param, context, 'let', args[i]); + }); + if (expression.body.type === 'BlockStatement') { + const result = ofFStatement(expression.body, context); + context.scopeOut(); + if (result.type === 'earlyReturn') { + return result.value; + } + return undefined; + } + const result = ofFExpression(expression.body, context); + context.scopeOut(); + return result; + }; + return new FFunction(f); + } + case 'AssignmentExpression': { + if (expression.operator === '=') { + const newValue = ofFExpression(expression.right, context); + switch (expression.left.type) { + case 'Identifier': { + context.assign(expression.left.name, newValue, toRange(expression)); + return newValue; + } + case 'MemberExpression': { + ofFMemberExpressionAsAssign(expression.left, newValue, context); + return newValue; + } + } + } + let oldValue; + let newValue; + if (expression.left.type === 'Identifier') { + oldValue = context.get(expression.left.name, toRange(expression.left)); + } + else { + oldValue = ofFMemberExpressionAsGet(expression.left, context, false); + } + const right = ofFExpression(expression.right, context); + switch (expression.operator) { + case '+=': + newValue = compareToNumber(oldValue, right, 'default', (l, r) => l + r); + break; + case '-=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l - r); + break; + case '%=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l % r); + break; + case '&=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l & r); + break; + case '*=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l * r); + break; + case '**=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l ** r); + break; + case '/=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l / r); + break; + case '<<=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l << r); + break; + case '>>=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l >> r); + break; + case '>>>=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l >>> r); + break; + case '^=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l ^ r); + break; + case '|=': + newValue = compareToNumber(oldValue, right, 'number', (l, r) => l | r); + break; + case '&&=': + case '??=': + case '||=': + // 現時点では acorn は ecmaVersion=2020 として parse しているため、ここには来ないはず。 + throw new Error(`"${expression.operator}" operator is not supported. This should not happen.`); + } + if (expression.left.type === 'Identifier') { + context.assign(expression.left.name, newValue, toRange(expression)); + } + else { + ofFMemberExpressionAsAssign(expression.left, newValue, context); + } + return newValue; + } + case 'BinaryExpression': { + const left = ofFExpression(expression.left, context); + const right = ofFExpression(expression.right, context); + switch (expression.operator) { + case '!=': + return new FBoolean(!eqeq(left, right)); + case '!==': + return new FBoolean(!eqeqeq(left, right)); + case '%': + return compareToNumber(left, right, 'number', (l, r) => l % r); + case '&': + return compareToNumber(left, right, 'number', (l, r) => l & r); + case '*': + return compareToNumber(left, right, 'number', (l, r) => l * r); + case '**': + return compareToNumber(left, right, 'number', (l, r) => l ** r); + case '+': + return compareToNumberOrString(left, right, 'default', (l, r) => l + r); + case '-': + return compareToNumber(left, right, 'number', (l, r) => l - r); + case '/': + return compareToNumber(left, right, 'number', (l, r) => l / r); + case '<': + return compareToBoolean(left, right, 'JObject', (l, r) => l < r); + case '<<': + return compareToNumber(left, right, 'number', (l, r) => l << r); + case '<=': + return compareToBoolean(left, right, 'JObject', (l, r) => l <= r); + case '==': + return new FBoolean(eqeq(left, right)); + case '===': + return new FBoolean(eqeqeq(left, right)); + case '>': + return compareToBoolean(left, right, 'JObject', (l, r) => l > r); + case '>=': + return compareToBoolean(left, right, 'JObject', (l, r) => l >= r); + case '>>': + return compareToNumber(left, right, 'number', (l, r) => l >> r); + case '>>>': + return compareToNumber(left, right, 'number', (l, r) => l >>> r); + case '^': + return compareToNumber(left, right, 'number', (l, r) => l ^ r); + case '|': + return compareToNumber(left, right, 'number', (l, r) => l | r); + } + break; + } + case 'CallExpression': { + return ofFCallExpression(expression, context, false); + } + case 'ChainExpression': { + switch (expression.expression.type) { + case 'CallExpression': { + return ofFCallExpression(expression.expression, context, true); + } + case 'MemberExpression': { + return ofFMemberExpressionAsGet(expression.expression, context, true); + } + } + break; + } + case 'ConditionalExpression': { + const test = ofFExpression(expression.test, context); + if (test) { + return ofFExpression(expression.consequent, context); + } + return ofFExpression(expression.alternate, context); + } + case 'Identifier': { + // a; のようなコードであれば正常に処理される + // a.b; のようなコードではbがIdentifierになるがこのケースでは正常に処理されない(代わりにMemberExpressionやAssignmentExpressionで処理されなければならない) + return context.get(expression.name, toRange(expression)); + } + case 'Literal': { + return ofFLiteral(expression); + } + case 'LogicalExpression': { + const left = ofFExpression(expression.left, context); + const right = ofFExpression(expression.right, context); + switch (expression.operator) { + case '&&': + return isTruthy(left) ? right : left; + case '??': + return left ?? right; + case '||': + return !isTruthy(left) ? right : left; + } + break; + } + case 'MemberExpression': { + return ofFMemberExpressionAsGet(expression, context, false); + } + case 'NewExpression': { + return ofFCallExpression(expression, context, false, 'new'); + } + case 'ObjectExpression': { + const result = new FRecord(); + expression.properties.forEach(d => { + if (d.isSpread) { + const spreadObject = ofFExpression(d.argument, context); + if (spreadObject instanceof FRecord) { + spreadObject.forEach((value, key) => { + result.source.set(key, value); + }); + } + else { + throw new ScriptError('Record is expected, but actually not.', toRange(d.argument)); + } + return; + } + let key; + switch (d.property.key.type) { + case 'Literal': { + const literal = ofFLiteral(d.property.key); + switch (typeof literal) { + case 'string': + case 'number': + key = literal; + break; + default: + throw new Error('this should not happen'); + } + break; + } + case 'Identifier': { + key = d.property.key.name; + break; + } + } + const value = ofFExpression(d.property.value, context); + switch (d.property.kind) { + case 'init': + result.set({ + property: new FString(key), + newValue: value, + astInfo: { range: toRange(d.property.value) }, + }); + break; + } + }); + return result; + } + case 'ThisExpression': + /* + javascriptのthisは複雑な挙動を示す。そのため、functionやclassを使用不可能にすることで、常にthis===globalThisとして扱えるようにして実装を簡略化している。ただし、これにより例えば下のコードにおいて本来のjavascriptと異なる挙動を示す。本来のjavascriptであればエラーだが、このライブラリでは正常に終了しaは[1]となる。 + + let a = []; + let f = a.push; + f(1); + + thisを完全に無効化してglobalThisを使ってもらうという作戦は、monaco editorの設定がうまくいかなかったので却下。 + */ + return context.globalThis; + case 'UnaryExpression': { + const argument = ofFExpression(expression.argument, context); + switch (expression.operator) { + case '!': + return new FBoolean(!isTruthy(argument)); + case '+': + return argument == null + ? argument + : new FNumber(argument.toPrimitiveAsNumber()); + case '-': + return argument == null + ? argument + : new FNumber(-argument.toPrimitiveAsNumber()); + case '~': + return argument == null + ? argument + : new FNumber(~argument.toPrimitiveAsNumber()); + case 'typeof': + if (argument == null) { + return new FString(typeof argument); + } + switch (argument.type) { + case FType.Boolean: + return new FString('boolean'); + case FType.Function: + return new FString('function'); + case FType.Number: + return new FString('number'); + case FType.String: + return new FString('string'); + case FType.Symbol: + return new FString('symbol'); + default: + return new FString('object'); + } + } + break; + } + case 'UpdateExpression': { + let oldValue; + let newValue; + if (expression.argument.type === 'Identifier') { + oldValue = context.get(expression.argument.name, toRange(expression.argument)); + newValue = compareToNumber(oldValue, new FNumber(expression.operator === '++' ? 1 : -1), 'number', (left, right) => left + right); + context.assign(expression.argument.name, newValue, toRange(expression)); + } + else { + oldValue = ofFMemberExpressionAsGet(expression.argument, context, false); + newValue = compareToNumber(oldValue, new FNumber(expression.operator === '++' ? 1 : -1), 'number', (left, right) => left + right); + ofFMemberExpressionAsAssign(expression.argument, newValue, context); + } + return expression.prefix ? newValue : oldValue; + } + default: + throw new Error('this should not happen'); + } +} +function ofFStatement(statement, context) { + switch (statement.type) { + case 'BlockStatement': { + context.scopeIn(); + for (const b of statement.body) { + const bodyResult = ofFStatement(b, context); + if (bodyResult.type !== 'end') { + context.scopeOut(); + return bodyResult; + } + } + context.scopeOut(); + return { type: 'end', value: undefined }; + } + case 'BreakStatement': + return { type: 'break' }; + case 'ContinueStatement': + return { type: 'continue' }; + case 'ReturnStatement': + return { + type: 'earlyReturn', + value: statement.argument == null + ? undefined + : ofFExpression(statement.argument, context), + }; + case 'ExpressionStatement': { + return { + type: 'end', + value: ofFExpression(statement.expression, context), + }; + } + case 'ForOfStatement': { + if (statement.await) { + throw new ScriptError('await is not supported'); + } + const rightValue = ofFExpression(statement.right, context); + const rightValueAsFObjectBase = rightValue; + if (rightValueAsFObjectBase?.iterate == null) { + throw new ScriptError(`${rightValue?.toPrimitiveAsString()} is not iterable`); + } + for (const elem of rightValueAsFObjectBase.iterate()) { + context.scopeIn(); + switch (statement.left.type) { + case 'Identifier': + context.assign(statement.left.name, elem, statement.left.range); + break; + case 'MemberExpression': { + ofFMemberExpressionAsAssign(statement.left, elem, context); + break; + } + case 'VariableDeclaration': + ofFVariableDeclaration(statement.left, context, elem); + break; + default: + throw new ScriptError(`${statement.left.type} is not supported yet.`, toRange(statement.left)); + } + ofFStatement(statement.body, context); + context.scopeOut(); + } + return { type: 'end', value: undefined }; + } + case 'ForStatement': { + context.scopeIn(); + if (statement.init != null) { + if (statement.init.type === 'VariableDeclaration') { + ofFVariableDeclaration(statement.init, context); + } + else { + ofFExpression(statement.init, context); + } + } + let isFirstLoop = true; + while (true) { + if (!isFirstLoop && statement.update != null) { + ofFExpression(statement.update, context); + } + isFirstLoop = false; + if (statement.test != null) { + const test = ofFExpression(statement.test, context); + if (!isTruthy(test)) { + break; + } + } + const bodyResult = ofFStatement(statement.body, context); + if (bodyResult.type === 'earlyReturn') { + context.scopeOut(); + return { type: 'end', value: bodyResult.value }; + } + else if (bodyResult.type === 'break') { + break; + } + } + context.scopeOut(); + return { type: 'end', value: undefined }; + } + case 'IfStatement': { + const test = ofFExpression(statement.test, context); + if (toJObject(test)) { + return ofFStatement(statement.consequent, context); + } + if (statement.alternate == null) { + return { type: 'end', value: undefined }; + } + return ofFStatement(statement.alternate, context); + } + case 'SwitchStatement': { + const discriminant = ofFExpression(statement.discriminant, context); + let caseMatched = false; + for (const $case of statement.cases) { + if ($case.test == null || // default:のときは$case.test==nullとなる + toJObject(discriminant) === toJObject(ofFExpression($case.test, context))) { + caseMatched = true; + } + // caseにどれか1つでもマッチしたら、breakなどがない限りはそれ以降のcaseもすべてマッチする扱いとなる。いわゆるフォールスルー。 + if (!caseMatched) { + continue; + } + for (const consequent of $case.consequent) { + const consequentResult = ofFStatement(consequent, context); + switch (consequentResult.type) { + case 'earlyReturn': + case 'continue': + return consequentResult; + case 'break': + return { type: 'end', value: undefined }; + } + } + } + return { type: 'end', value: undefined }; + } + case 'VariableDeclaration': { + ofFVariableDeclaration(statement, context); + return { type: 'end', value: undefined }; + } + } +} +const toProgram = (script) => { + // @types/estreeが2020までにしか対応していない時期にこのプロジェクトに取り掛かったため、2021 以降の機能(AssignmentOperatorの&&=など)に対応していない。そのため、acornも2020としている。 + return parse(script, { ecmaVersion: 2020, ranges: true }); +}; +// globalThisは、FValueであればそのまま維持し、それ以外であればFValueに自動変換される。 +const exec = (script, globalThis) => { + const parsed = toProgram(script); + const context = new Context(toFGlobalRecord(globalThis)); + const lastResult = parsed.body.map(statement => { + return ofFStatement(fStatement(statement), context); + })[parsed.body.length - 1]; + let result; + if (lastResult?.type === 'end') { + result = lastResult.value == null ? lastResult.value : lastResult.value.toJObject(); + } + else { + result = undefined; + } + return { + result, + getGlobalThis: () => context.globalThis.toJObject(), + }; +}; +// エディターなどでエラーをチェックする際に用いる +const test = (script) => { + const parsed = toProgram(script); + parsed.body.forEach(statement => { + fStatement(statement); + }); +}; + +class FArrayClass extends FFunction { + constructor() { + super(() => { + throw new Error('Array constructor is not supported'); + }); + } + static prepareStaticMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + onGetting({ key, astInfo }) { + switch (key) { + case 'isArray': { + return Option.some(new FFunction(({ args, isNew }) => { + FArrayClass.prepareStaticMethod(isNew, astInfo); + const arg = args[0]; + return new FBoolean(arg?.type === FType.Array); + })); + } + default: + return Option.none(); + } + } +} +const arrayClass = new FArrayClass(); + +class FConsoleClass extends FFunction { + header; + constructor(header) { + super(() => { + throw new Error('console constructor is not supported'); + }); + this.header = header; + } + static prepareStaticMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + onGetting({ key, astInfo }) { + switch (key) { + case 'log': { + return Option.some(new FFunction(({ args, isNew }) => { + FConsoleClass.prepareStaticMethod(isNew, astInfo); + // eslint-disable-next-line no-console + console.log(...[this.header, ...args.map(arg => toJObject(arg))]); + return undefined; + })); + } + case 'info': { + return Option.some(new FFunction(({ args, isNew }) => { + FConsoleClass.prepareStaticMethod(isNew, astInfo); + // eslint-disable-next-line no-console + console.info(...[this.header, ...args.map(arg => toJObject(arg))]); + return undefined; + })); + } + case 'warn': { + return Option.some(new FFunction(({ args, isNew }) => { + FConsoleClass.prepareStaticMethod(isNew, astInfo); + // eslint-disable-next-line no-console + console.warn(...[this.header, ...args.map(arg => toJObject(arg))]); + return undefined; + })); + } + case 'error': { + return Option.some(new FFunction(({ args, isNew }) => { + FConsoleClass.prepareStaticMethod(isNew, astInfo); + // eslint-disable-next-line no-console + console.error(...[this.header, ...args.map(arg => toJObject(arg))]); + return undefined; + })); + } + default: + return Option.none(); + } + } +} +const createConsoleClass = (header) => new FConsoleClass(header); + +class FMapClass extends FFunction { + constructor() { + super(({ isNew }) => { + if (!isNew) { + throw ScriptError.requiresNewError(); + } + return FMap.create(new Map()); + }); + } +} +const mapClass = new FMapClass(); + +class FSymbolClass extends FFunction { + constructor() { + super(({ isNew, args, astInfo }) => { + if (isNew) { + throw ScriptError.notConstructorError(); + } + const description = beginCast(args[0], astInfo).addString().addUndefined().cast(); + return new FSymbol(Symbol(description)); + }); + } + onGetting({ key }) { + switch (key) { + case 'iterator': { + return Option.some(new FSymbol(Symbol.iterator)); + } + default: + return Option.none(); + } + } +} +const symbolClass = new FSymbolClass(); + +// Recordのkeyのジェネリック化は、convertKeyBackの処理の場合分けが難しいと思われるため不採用。 +class FRecordRef extends FObject { + source; + convertValue; + convertValueBack; + constructor(source, convertValue, convertValueBack) { + super(); + this.source = source; + this.convertValue = convertValue; + this.convertValueBack = convertValueBack; + } + prepareInstanceMethod(isNew, astInfo) { + if (isNew) { + throw ScriptError.notConstructorError(astInfo?.range); + } + } + convertKeyBack(source, astInfo) { + return beginCast(source, astInfo).addString().cast(); + } + validateKey(key) { + const fail = () => { + throw new ScriptError(`You cannot use "${key}" as a key`); + }; + switch (key) { + case 'toString': + case 'toLocaleString': + case 'valueOf': + case 'hasOwnProperty': + case 'isPrototypeOf': + case 'propertyIsEnumerable': + case 'constructor': + case 'prototype': + fail(); + } + // __proto__の他に、念のため__defineSetter__なども弾けるような処理をしている + if (key.startsWith('__')) { + fail(); + } + } + get type() { + return FType.Object; + } + getCore(params) { + const { key, astInfo } = params; + switch (key) { + case 'delete': + return new FFunction(({ args, isNew }) => { + this.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + this.validateKey(key); + delete this.source[key]; + return undefined; + }); + case 'forEach': + return new FFunction(({ args, isNew }) => { + this.prepareInstanceMethod(isNew, astInfo); + const callbackfn = beginCast(args[0], astInfo).addFunction().cast()(false); + for (const key in this.source) { + const value = this.source[key]; + if (value == null) { + throw new Error('this should not happen'); + } + callbackfn([this.convertValue(value), toFValue(key)]); + } + return undefined; + }); + case 'get': + return new FFunction(({ args, isNew }) => { + this.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + this.validateKey(key); + const value = this.source[key]; + if (value === undefined) { + return undefined; + } + return this.convertValue(value); + }); + case 'has': + return new FFunction(({ args, isNew }) => { + this.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + this.validateKey(key); + return new FBoolean(key in this.source); + }); + case 'set': + return new FFunction(({ args, isNew }) => { + this.prepareInstanceMethod(isNew, astInfo); + const key = this.convertKeyBack(args[0], astInfo); + this.validateKey(key); + const value = this.convertValueBack(args[1], astInfo); + this.source[key] = value; + return undefined; + }); + } + return undefined; + } + setCore(params) { + throw new ScriptError('You cannot set any value to this object', params.astInfo?.range); + } + toPrimitiveAsString() { + return '[object Object]'; + } + toPrimitiveAsNumber() { + return NaN; + } + toJObject() { + return this.source; + } + equals(other) { + if (other instanceof FRecordRef) { + return this.source === other.source; + } + return false; + } +} + +export { FArray, FBoolean, FFunction, FMap, FNumber, FObject, FRecord, FRecordRef, FString, FSymbol, FType, FTypedArray, ScriptError, arrayClass, beginCast, createConsoleClass, exec, mapClass, symbolClass, test, toFValue, toTypeName }; +//# sourceMappingURL=index.js.map diff --git a/packages/flocon-script/dist/esm/index.js.map b/packages/flocon-script/dist/esm/index.js.map new file mode 100644 index 000000000..3bdd82eb7 --- /dev/null +++ b/packages/flocon-script/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/ScriptError.ts","../../../src/utils/mapIterator.ts","../../../src/scriptValue/FType.ts","../../../src/scriptValue/tryToPropertyName.ts","../../../src/scriptValue/FFunction.ts","../../../src/scriptValue/FString.ts","../../../src/context.ts","../../../src/fPattern.ts","../../../src/range.ts","../../../src/fExpression.ts","../../../src/fStatement.ts","../../../src/getRestValues.ts","../../../src/utils/toJObject.ts","../../../src/scriptValue/FBoolean.ts","../../../src/scriptValue/FNumber.ts","../../../src/scriptValue/FSymbol.ts","../../../src/scriptValue/toTypeName.ts","../../../src/scriptValue/cast.ts","../../../src/scriptValue/toPropertyName.ts","../../../src/scriptValue/FObject.ts","../../../src/scriptValue/FRecord.ts","../../../src/scriptValue/FIterator.ts","../../../src/scriptValue/FArray.ts","../../../src/scriptValue/toPrimitive.ts","../../../src/scriptValue/compare.ts","../../../src/scriptValue/eqeq.ts","../../../src/scriptValue/eqeqeq.ts","../../../src/scriptValue/isTruthy.ts","../../../src/scriptValue/FGlobalRecord.ts","../../../src/scriptValue/FMap.ts","../../../src/scriptValue/toFValue.ts","../../../src/scriptValue/toFRecord.ts","../../../src/scriptValue/toFGlobalRecord.ts","../../../src/main.ts","../../../src/builtIn/Array.ts","../../../src/builtIn/console.ts","../../../src/builtIn/Map.ts","../../../src/builtIn/Symbol.ts","../../../src/scriptValue/FRecordRef.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/main.d.ts b/packages/flocon-script/dist/esm/main.d.ts new file mode 100644 index 000000000..1db89a9dd --- /dev/null +++ b/packages/flocon-script/dist/esm/main.d.ts @@ -0,0 +1,8 @@ +type ExecResult = { + result: unknown; + getGlobalThis(): unknown; +}; +export declare const exec: (script: string, globalThis: Record) => ExecResult; +export declare const test: (script: string) => void; +export {}; +//# sourceMappingURL=main.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/main.d.ts.map b/packages/flocon-script/dist/esm/main.d.ts.map new file mode 100644 index 000000000..ff30ca1e9 --- /dev/null +++ b/packages/flocon-script/dist/esm/main.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAowBA,KAAK,UAAU,GAAG;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,IAAI,OAAO,CAAC;CAC5B,CAAC;AAQF,eAAO,MAAM,IAAI,WAAY,MAAM,cAAc,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,UAgB1E,CAAC;AAGF,eAAO,MAAM,IAAI,WAAY,MAAM,KAAG,IAKrC,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/range.d.ts b/packages/flocon-script/dist/esm/range.d.ts new file mode 100644 index 000000000..3d76d68a6 --- /dev/null +++ b/packages/flocon-script/dist/esm/range.d.ts @@ -0,0 +1,4 @@ +import { BaseNodeWithoutComments } from 'estree'; +export type Range = readonly [number, number]; +export declare const toRange: (source: BaseNodeWithoutComments | null | undefined) => Range | undefined; +//# sourceMappingURL=range.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/range.d.ts.map b/packages/flocon-script/dist/esm/range.d.ts.map new file mode 100644 index 000000000..5e241ef10 --- /dev/null +++ b/packages/flocon-script/dist/esm/range.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../src/range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAEjD,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C,eAAO,MAAM,OAAO,WAAY,uBAAuB,GAAG,IAAI,GAAG,SAAS,KAAG,KAAK,GAAG,SAUpF,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FArray.d.ts b/packages/flocon-script/dist/esm/scriptValue/FArray.d.ts new file mode 100644 index 000000000..0e0f9aa3c --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FArray.d.ts @@ -0,0 +1,24 @@ +import { FType } from './FType'; +import { FValue } from './FValue'; +import { AstInfo, FObjectBase, GetParams, SetParams } from './types'; +export declare class FArray implements FObjectBase { + private readonly source; + private readonly convert; + private readonly convertBack; + protected constructor(source: unknown[], convert: (value: unknown) => FValue, convertBack: (value: FValue, astInfo: AstInfo | undefined) => unknown); + private static prepareInstanceMethod; + static create(source: FValue[]): FArray; + get type(): typeof FType.Array; + toJArray(): FValue[]; + iterate(): IterableIterator; + private static isValidIndex; + get({ property, astInfo }: GetParams): FValue; + set({ property, newValue, astInfo }: SetParams): void; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): unknown[]; +} +export declare class FTypedArray extends FArray { + constructor(source: T[], convert: (value: T) => FValue, convertBack: (value: FValue, astInfo: AstInfo | undefined) => T); +} +//# sourceMappingURL=FArray.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FArray.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FArray.d.ts.map new file mode 100644 index 000000000..d06059a46 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FArray.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FArray.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FArray.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,MAAO,YAAW,WAAW;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAHhC,SAAS,aACY,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,EACnC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,KAAK,OAAO;IAG1F,OAAO,CAAC,MAAM,CAAC,qBAAqB;WAMtB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;IAQ9C,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,KAAK,CAEpC;IAEM,QAAQ,IAAI,MAAM,EAAE;IAIpB,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAI1C,OAAO,CAAC,MAAM,CAAC,YAAY;IAOpB,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IAyF7C,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAYrD,mBAAmB,IAAI,MAAM;IAM7B,mBAAmB,IAAI,MAAM;IAK7B,SAAS,IAAI,OAAO,EAAE;CAGhC;AAED,qBAAa,WAAW,CAAC,CAAC,CAAE,SAAQ,MAAM;gBAElC,MAAM,EAAE,CAAC,EAAE,EACX,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,EAC7B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,KAAK,CAAC;CAItE"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FBoolean.d.ts b/packages/flocon-script/dist/esm/scriptValue/FBoolean.d.ts new file mode 100644 index 000000000..8ab026352 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FBoolean.d.ts @@ -0,0 +1,15 @@ +import { FType } from './FType'; +import { FValue } from './FValue'; +import { FObjectBase, GetParams, SetParams } from './types'; +export declare class FBoolean implements FObjectBase { + readonly raw: boolean; + constructor(raw: boolean); + private static prepareInstanceMethod; + get type(): typeof FType.Boolean; + get({ property, astInfo }: GetParams): FValue; + set({ astInfo }: SetParams): void; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): boolean; +} +//# sourceMappingURL=FBoolean.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FBoolean.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FBoolean.d.ts.map new file mode 100644 index 000000000..71476ab6a --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FBoolean.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FBoolean.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FBoolean.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAW,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,QAAS,YAAW,WAAW;aACL,GAAG,EAAE,OAAO;gBAAZ,GAAG,EAAE,OAAO;IAE/C,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAMpC,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,OAAO,CAEtC;IAEM,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IAa7C,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC,mBAAmB;IAInB,mBAAmB;IAInB,SAAS,IAAI,OAAO;CAG9B"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FFunction.d.ts b/packages/flocon-script/dist/esm/scriptValue/FFunction.d.ts new file mode 100644 index 000000000..59b73fa4b --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FFunction.d.ts @@ -0,0 +1,23 @@ +import { Option } from '@kizahasi/option'; +import { FType } from './FType'; +import { FValue } from './FValue'; +import { AstInfo, FObjectBase, GetCoreParams, GetParams, SetParams } from './types'; +type FFunctionParams = { + args: FValue[]; + isNew: boolean; + astInfo: AstInfo | undefined; +}; +export declare class FFunction implements FObjectBase { + private readonly func; + constructor(func: (params: FFunctionParams) => FValue); + get type(): typeof FType.Function; + exec(params: FFunctionParams): FValue; + protected onGetting(params: GetCoreParams): Option; + get({ property, astInfo }: GetParams): FValue; + set({ astInfo }: SetParams): void; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): Function; +} +export {}; +//# sourceMappingURL=FFunction.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FFunction.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FFunction.d.ts.map new file mode 100644 index 000000000..62981c58c --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FFunction.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FFunction.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpF,KAAK,eAAe,GAAG;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,qBAAa,SAAU,YAAW,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,MAAM;IAE7E,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,QAAQ,CAEvC;IAEM,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM;IAI5C,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IAInD,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IAa7C,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC,mBAAmB;IAMnB,mBAAmB;IAOnB,SAAS,IAAI,QAAQ;CAK/B"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FGlobalRecord.d.ts b/packages/flocon-script/dist/esm/scriptValue/FGlobalRecord.d.ts new file mode 100644 index 000000000..8341ce2d7 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FGlobalRecord.d.ts @@ -0,0 +1,9 @@ +import { FRecord } from './FRecord'; +import { FValue } from './FValue'; +import { GetCoreParams, SetCoreParams } from './types'; +export declare class FGlobalRecord extends FRecord { + constructor(base?: FRecord); + protected getCore(params: GetCoreParams): FValue; + protected setCore({ key, newValue, astInfo }: SetCoreParams): void; +} +//# sourceMappingURL=FGlobalRecord.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FGlobalRecord.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FGlobalRecord.d.ts.map new file mode 100644 index 000000000..f3dad6d01 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FGlobalRecord.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FGlobalRecord.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FGlobalRecord.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAOvD,qBAAa,aAAc,SAAQ,OAAO;gBACnB,IAAI,CAAC,EAAE,OAAO;cAId,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;cAQtC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,IAAI;CAU9E"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FIterator.d.ts b/packages/flocon-script/dist/esm/scriptValue/FIterator.d.ts new file mode 100644 index 000000000..eabb98975 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FIterator.d.ts @@ -0,0 +1,19 @@ +import { FObject } from './FObject'; +import { FType } from './FType'; +import { FValue } from './FValue'; +import { GetCoreParams, SetCoreParams } from './types'; +export declare class FIterator extends FObject { + private readonly source; + private readonly convertValue; + protected constructor(source: IterableIterator, convertValue: (value: unknown) => FValue); + private static prepareInstanceMethod; + static create(source: IterableIterator): FIterator; + get type(): typeof FType.Object; + getCore(params: GetCoreParams): FValue; + setCore(params: SetCoreParams): void; + iterate(): IterableIterator; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): IterableIterator; +} +//# sourceMappingURL=FIterator.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FIterator.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FIterator.d.ts.map new file mode 100644 index 000000000..d8e9c597e --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FIterator.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FIterator.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FIterator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAW,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEhE,qBAAa,SAAU,SAAQ,OAAO;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAFjC,SAAS,aACY,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,EACjC,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;IAK7D,OAAO,CAAC,MAAM,CAAC,qBAAqB;WAMtB,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,SAAS;IAIjE,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEe,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IA0BtC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAI7C,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAI1B,mBAAmB,IAAI,MAAM;IAK7B,mBAAmB,IAAI,MAAM;IAI7B,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC;CAGzD"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FMap.d.ts b/packages/flocon-script/dist/esm/scriptValue/FMap.d.ts new file mode 100644 index 000000000..418b89844 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FMap.d.ts @@ -0,0 +1,23 @@ +import { FObject } from './FObject'; +import { FType } from './FType'; +import { FValue } from './FValue'; +import { AstInfo, GetCoreParams, SetCoreParams } from './types'; +type Key = string | number | boolean | symbol | null | undefined; +export declare class FMap extends FObject { + private readonly source; + private readonly convertValue; + private readonly convertValueBack; + protected constructor(source: Map, convertValue: (value: unknown) => FValue, convertValueBack: (value: FValue, astInfo: AstInfo | undefined) => unknown); + private static prepareInstanceMethod; + static create(source: Map): FMap; + private convertKeyBack; + get type(): typeof FType.Object; + getCore(params: GetCoreParams): FValue; + setCore(params: SetCoreParams): void; + iterate(): IterableIterator; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): Map; +} +export {}; +//# sourceMappingURL=FMap.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FMap.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FMap.d.ts.map new file mode 100644 index 000000000..b1016b51e --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FMap.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FMap.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEhE,KAAK,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEjE,qBAAa,IAAK,SAAQ,OAAO;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAHrC,SAAS,aACY,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,EACzB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,EACxC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,KAAK,OAAO;IAK/F,OAAO,CAAC,MAAM,CAAC,qBAAqB;WAMtB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IAQpD,OAAO,CAAC,cAAc;IAWtB,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEe,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAuDtC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAI7C,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAQ1B,mBAAmB,IAAI,MAAM;IAI7B,mBAAmB,IAAI,MAAM;IAK7B,SAAS,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;CAQjD"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FNumber.d.ts b/packages/flocon-script/dist/esm/scriptValue/FNumber.d.ts new file mode 100644 index 000000000..2153fef3a --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FNumber.d.ts @@ -0,0 +1,15 @@ +import { FType } from './FType'; +import { FValue } from './FValue'; +import { FObjectBase, GetParams, SetParams } from './types'; +export declare class FNumber implements FObjectBase { + readonly raw: number; + constructor(raw: number); + private static prepareInstanceMethod; + get type(): typeof FType.Number; + get({ property, astInfo }: GetParams): FValue; + set({ astInfo }: SetParams): void; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): number; +} +//# sourceMappingURL=FNumber.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FNumber.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FNumber.d.ts.map new file mode 100644 index 000000000..f4b9e6dec --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FNumber.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FNumber.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FNumber.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAW,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,OAAQ,YAAW,WAAW;aACJ,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAE9C,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAMpC,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEM,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IAmB7C,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC,mBAAmB;IAInB,mBAAmB;IAInB,SAAS,IAAI,MAAM;CAG7B"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FObject.d.ts b/packages/flocon-script/dist/esm/scriptValue/FObject.d.ts new file mode 100644 index 000000000..43e6c5aa3 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FObject.d.ts @@ -0,0 +1,14 @@ +import { FType } from './FType'; +import { FValue } from './FValue'; +import { FObjectBase, GetCoreParams, GetParams, SetCoreParams, SetParams } from './types'; +export declare abstract class FObject implements FObjectBase { + protected abstract getCore(params: GetCoreParams): FValue; + get({ property, astInfo }: GetParams): FValue; + protected abstract setCore(params: SetCoreParams): void; + set({ property, newValue, astInfo }: SetParams): void; + get type(): typeof FType.Object; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + abstract toJObject(): unknown; +} +//# sourceMappingURL=FObject.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FObject.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FObject.d.ts.map new file mode 100644 index 000000000..fa086c7ff --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FObject.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FObject.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE1F,8BAAsB,OAAQ,YAAW,WAAW;IAChD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAElD,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IASpD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAEhD,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAK5D,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEM,mBAAmB;IAKnB,mBAAmB;aAIV,SAAS,IAAI,OAAO;CACvC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FRecord.d.ts b/packages/flocon-script/dist/esm/scriptValue/FRecord.d.ts new file mode 100644 index 000000000..6bec187ad --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FRecord.d.ts @@ -0,0 +1,13 @@ +import { FObject } from './FObject'; +import { FValue } from './FValue'; +import { GetCoreParams, SetCoreParams } from './types'; +export declare class FRecord extends FObject { + readonly source: Map; + constructor(base?: FRecord); + protected getCore({ key, astInfo }: GetCoreParams): FValue; + protected setCore({ key, newValue, astInfo }: SetCoreParams): void; + clone(): FRecord; + forEach(callbackfn: (value: FValue, key: string) => void): void; + toJObject(): unknown; +} +//# sourceMappingURL=FRecord.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FRecord.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FRecord.d.ts.map new file mode 100644 index 000000000..6d96e4d51 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FRecord.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FRecord.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FRecord.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKvD,qBAAa,OAAQ,SAAQ,OAAO;IAChC,SAAgB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEzB,IAAI,CAAC,EAAE,OAAO;cASd,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,MAAM;cAOhD,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,IAAI;IAOpE,KAAK,IAAI,OAAO;IAIhB,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI;IAI/C,SAAS,IAAI,OAAO;CAOvC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FRecordRef.d.ts b/packages/flocon-script/dist/esm/scriptValue/FRecordRef.d.ts new file mode 100644 index 000000000..2e8d78e01 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FRecordRef.d.ts @@ -0,0 +1,21 @@ +import { FObject } from './FObject'; +import { FType } from './FType'; +import { FValue } from './FValue'; +import { AstInfo, GetCoreParams, SetCoreParams } from './types'; +export declare class FRecordRef extends FObject { + readonly source: Record; + protected readonly convertValue: (value: TValue) => FValue; + protected readonly convertValueBack: (value: FValue, astInfo: AstInfo | undefined) => TValue; + constructor(source: Record, convertValue: (value: TValue) => FValue, convertValueBack: (value: FValue, astInfo: AstInfo | undefined) => TValue); + protected prepareInstanceMethod(isNew: boolean, astInfo: AstInfo | undefined): void; + protected convertKeyBack(source: FValue, astInfo: AstInfo | undefined): string; + protected validateKey(key: string): void; + get type(): typeof FType.Object; + getCore(params: GetCoreParams): FValue; + setCore(params: SetCoreParams): void; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): Record; + equals(other: FValue): boolean; +} +//# sourceMappingURL=FRecordRef.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FRecordRef.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FRecordRef.d.ts.map new file mode 100644 index 000000000..e1947e508 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FRecordRef.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FRecordRef.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FRecordRef.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGhE,qBAAa,UAAU,CAAC,MAAM,CAAE,SAAQ,OAAO;aAEvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM;IAC1D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GAAG,SAAS,KAC3B,MAAM;gBALK,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACvC,gBAAgB,EAAE,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GAAG,SAAS,KAC3B,MAAM;IAKf,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS;IAM5E,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS;IAIrE,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAqBxC,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEe,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAyDtC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAIpC,mBAAmB,IAAI,MAAM;IAI7B,mBAAmB,IAAI,MAAM;IAI7B,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI5C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAMxC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FString.d.ts b/packages/flocon-script/dist/esm/scriptValue/FString.d.ts new file mode 100644 index 000000000..863152239 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FString.d.ts @@ -0,0 +1,17 @@ +import { FType } from './FType'; +import { FValue } from './FValue'; +import { FObjectBase, GetParams, SetParams } from './types'; +export declare class FString implements FObjectBase { + readonly raw: string; + constructor(raw: string); + private static prepareInstanceMethod; + get type(): typeof FType.String; + get({ property, astInfo }: GetParams): FValue; + set({ astInfo }: SetParams): void; + iterate(): IterableIterator; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toPrimitiveAsDefault(): string; + toJObject(): string; +} +//# sourceMappingURL=FString.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FString.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FString.d.ts.map new file mode 100644 index 000000000..b3d2b3d28 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FString.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FString.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FString.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAW,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,OAAQ,YAAW,WAAW;aACJ,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAE9C,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAMpC,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEM,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IAc7C,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAInC,mBAAmB;IAInB,mBAAmB;IAInB,oBAAoB;IAIpB,SAAS,IAAI,MAAM;CAG7B"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FSymbol.d.ts b/packages/flocon-script/dist/esm/scriptValue/FSymbol.d.ts new file mode 100644 index 000000000..9228c4519 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FSymbol.d.ts @@ -0,0 +1,15 @@ +import { FType } from './FType'; +import { FValue } from './FValue'; +import { FObjectBase, GetParams, SetParams } from './types'; +export declare class FSymbol implements FObjectBase { + readonly raw: symbol; + constructor(raw: symbol); + private static prepareInstanceMethod; + get type(): typeof FType.Symbol; + get({ property, astInfo }: GetParams): FValue; + set({ astInfo }: SetParams): void; + toPrimitiveAsString(): string; + toPrimitiveAsNumber(): number; + toJObject(): symbol; +} +//# sourceMappingURL=FSymbol.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FSymbol.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FSymbol.d.ts.map new file mode 100644 index 000000000..b02fc2748 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FSymbol.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FSymbol.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FSymbol.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAW,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,OAAQ,YAAW,WAAW;aACJ,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAE9C,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAMpC,IAAW,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,CAErC;IAEM,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,MAAM;IAa7C,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC,mBAAmB;IAInB,mBAAmB,IAAI,MAAM;IAI7B,SAAS,IAAI,MAAM;CAG7B"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FType.d.ts b/packages/flocon-script/dist/esm/scriptValue/FType.d.ts new file mode 100644 index 000000000..3b7a8d0fc --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FType.d.ts @@ -0,0 +1,10 @@ +export declare namespace FType { + const Boolean = "Boolean"; + const Number = "Number"; + const String = "String"; + const Symbol = "Symbol"; + const Array = "Array"; + const Object = "Object"; + const Function = "Function"; +} +//# sourceMappingURL=FType.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FType.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FType.d.ts.map new file mode 100644 index 000000000..2e99a1222 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FType.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FType.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FType.ts"],"names":[],"mappings":"AAAA,yBAAiB,KAAK,CAAC;IACZ,MAAM,OAAO,YAAY,CAAC;IAC1B,MAAM,MAAM,WAAW,CAAC;IACxB,MAAM,MAAM,WAAW,CAAC;IACxB,MAAM,MAAM,WAAW,CAAC;IAGxB,MAAM,KAAK,UAAU,CAAC;IAEtB,MAAM,MAAM,WAAW,CAAC;IACxB,MAAM,QAAQ,aAAa,CAAC;CACtC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FValue.d.ts b/packages/flocon-script/dist/esm/scriptValue/FValue.d.ts new file mode 100644 index 000000000..5fc2c249e --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FValue.d.ts @@ -0,0 +1,9 @@ +import { FArray } from './FArray'; +import { FBoolean } from './FBoolean'; +import { FFunction } from './FFunction'; +import { FNumber } from './FNumber'; +import { FObject } from './FObject'; +import { FString } from './FString'; +import { FSymbol } from './FSymbol'; +export type FValue = null | undefined | FBoolean | FNumber | FString | FSymbol | FArray | FObject | FFunction; +//# sourceMappingURL=FValue.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/FValue.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/FValue.d.ts.map new file mode 100644 index 000000000..c3439a3e8 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/FValue.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FValue.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/FValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,MAAM,GACZ,IAAI,GACJ,SAAS,GACT,QAAQ,GACR,OAAO,GACP,OAAO,GACP,OAAO,GACP,MAAM,GACN,OAAO,GACP,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/cast.d.ts b/packages/flocon-script/dist/esm/scriptValue/cast.d.ts new file mode 100644 index 000000000..45247b887 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/cast.d.ts @@ -0,0 +1,25 @@ +import { FArray } from './FArray'; +import { FObject } from './FObject'; +import { FValue } from './FValue'; +import { AstInfo } from './types'; +declare class JObjectCaster { + private readonly source; + private readonly addedTypes; + private readonly successfullyCastedValue; + private readonly astInfo; + private constructor(); + static begin(source: FValue, astInfo: AstInfo | undefined): JObjectCaster; + cast(): T; + addArray(): JObjectCaster; + addBoolean(): JObjectCaster; + addFunction(): JObjectCaster (args: FValue[]) => FValue)>; + addNull(): JObjectCaster; + addNumber(): JObjectCaster; + addObject(): JObjectCaster; + addString(): JObjectCaster; + addSymbol(): JObjectCaster; + addUndefined(): JObjectCaster; +} +export declare const beginCast: (source: FValue, astInfo: AstInfo | undefined) => JObjectCaster; +export {}; +//# sourceMappingURL=cast.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/cast.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/cast.d.ts.map new file mode 100644 index 000000000..5df2f9ed9 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/cast.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"cast.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/cast.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAqClC,cAAM,aAAa,CAAC,CAAC,GAAG,KAAK;IAErB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ5B,OAAO;WAOO,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS;IAIzD,IAAI,IAAI,CAAC;IAYT,QAAQ,IAAI,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC;IAYrC,UAAU,IAAI,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC;IAYxC,WAAW,IAAI,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,CAAC;IAgBlF,OAAO,IAAI,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC;IAalC,SAAS,IAAI,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC;IAYtC,SAAS,IAAI,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC;IAYvC,SAAS,IAAI,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC;IAYtC,SAAS,IAAI,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC;IAYtC,YAAY,IAAI,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC;CAYtD;AAED,eAAO,MAAM,SAAS,WAAY,MAAM,WAAW,OAAO,GAAG,SAAS,yBAErE,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/compare.d.ts b/packages/flocon-script/dist/esm/scriptValue/compare.d.ts new file mode 100644 index 000000000..6dceb073d --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/compare.d.ts @@ -0,0 +1,8 @@ +import { FBoolean } from './FBoolean'; +import { FNumber } from './FNumber'; +import { FString } from './FString'; +import { FValue } from './FValue'; +export declare const compareToNumber: (left: FValue, right: FValue, hint: "default" | "string" | "number", comparer: (left: any, right: any) => number) => FNumber; +export declare const compareToBoolean: (left: FValue, right: FValue, hint: "default" | "string" | "number" | "JObject", comparer: (left: any, right: any) => boolean) => FBoolean; +export declare const compareToNumberOrString: (left: FValue, right: FValue, hint: "default", comparer: (left: any, right: any) => number | string) => FNumber | FString; +//# sourceMappingURL=compare.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/compare.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/compare.d.ts.map new file mode 100644 index 000000000..f45828941 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/compare.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/compare.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAelC,eAAO,MAAM,eAAe,SAClB,MAAM,SACL,MAAM,QACP,SAAS,GAAG,QAAQ,GAAG,QAAQ,YAC3B,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,MAAM,YAG9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,SACnB,MAAM,SACL,MAAM,QACP,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,YACvC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,aAG/C,CAAC;AAEF,eAAO,MAAM,uBAAuB,SAC1B,MAAM,SACL,MAAM,QACP,SAAS,YACL,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,MAAM,GAAG,MAAM,sBAOvD,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/eqeq.d.ts b/packages/flocon-script/dist/esm/scriptValue/eqeq.d.ts new file mode 100644 index 000000000..e96484c9e --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/eqeq.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare const eqeq: (x: FValue, y: FValue) => boolean; +//# sourceMappingURL=eqeq.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/eqeq.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/eqeq.d.ts.map new file mode 100644 index 000000000..9a8eddc49 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/eqeq.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"eqeq.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/eqeq.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKlC,eAAO,MAAM,IAAI,MAAO,MAAM,KAAK,MAAM,KAAG,OAuC3C,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/eqeqeq.d.ts b/packages/flocon-script/dist/esm/scriptValue/eqeqeq.d.ts new file mode 100644 index 000000000..dffca1762 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/eqeqeq.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare const eqeqeq: (x: FValue, y: FValue) => boolean; +//# sourceMappingURL=eqeqeq.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/eqeqeq.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/eqeqeq.d.ts.map new file mode 100644 index 000000000..81aeb1b07 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/eqeqeq.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"eqeqeq.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/eqeqeq.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,eAAO,MAAM,MAAM,MAAO,MAAM,KAAK,MAAM,KAAG,OAuB7C,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/isTruthy.d.ts b/packages/flocon-script/dist/esm/scriptValue/isTruthy.d.ts new file mode 100644 index 000000000..9cd086dd2 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/isTruthy.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare const isTruthy: (value: FValue) => boolean; +//# sourceMappingURL=isTruthy.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/isTruthy.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/isTruthy.d.ts.map new file mode 100644 index 000000000..605776cfd --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/isTruthy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"isTruthy.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/isTruthy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,OAiBxC,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/toFGlobalRecord.d.ts b/packages/flocon-script/dist/esm/scriptValue/toFGlobalRecord.d.ts new file mode 100644 index 000000000..be18f4610 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/toFGlobalRecord.d.ts @@ -0,0 +1,3 @@ +import { FGlobalRecord } from './FGlobalRecord'; +export declare function toFGlobalRecord(source: Record): FGlobalRecord; +//# sourceMappingURL=toFGlobalRecord.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/toFGlobalRecord.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/toFGlobalRecord.d.ts.map new file mode 100644 index 000000000..a822b2645 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/toFGlobalRecord.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toFGlobalRecord.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/toFGlobalRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAE9E"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/toFRecord.d.ts b/packages/flocon-script/dist/esm/scriptValue/toFRecord.d.ts new file mode 100644 index 000000000..1592f1362 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/toFRecord.d.ts @@ -0,0 +1,3 @@ +import { FRecord } from './FRecord'; +export declare const toFRecord: (source: Record) => FRecord; +//# sourceMappingURL=toFRecord.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/toFRecord.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/toFRecord.d.ts.map new file mode 100644 index 000000000..ed01b6880 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/toFRecord.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toFRecord.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/toFRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,SAAS,WAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAU3D,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/toFValue.d.ts b/packages/flocon-script/dist/esm/scriptValue/toFValue.d.ts new file mode 100644 index 000000000..cb043906c --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/toFValue.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare function toFValue(source: unknown): FValue; +//# sourceMappingURL=toFValue.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/toFValue.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/toFValue.d.ts.map new file mode 100644 index 000000000..a37483c9c --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/toFValue.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toFValue.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/toFValue.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAuChD"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/toPrimitive.d.ts b/packages/flocon-script/dist/esm/scriptValue/toPrimitive.d.ts new file mode 100644 index 000000000..d0661eae0 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/toPrimitive.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare const toPrimitive: (value: FValue, hint: "default" | "string" | "number") => string | number | null | undefined; +//# sourceMappingURL=toPrimitive.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/toPrimitive.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/toPrimitive.d.ts.map new file mode 100644 index 000000000..aa963189e --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/toPrimitive.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toPrimitive.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/toPrimitive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,eAAO,MAAM,WAAW,UAAW,MAAM,QAAQ,SAAS,GAAG,QAAQ,GAAG,QAAQ,uCAmB/E,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/toPropertyName.d.ts b/packages/flocon-script/dist/esm/scriptValue/toPropertyName.d.ts new file mode 100644 index 000000000..90bc94480 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/toPropertyName.d.ts @@ -0,0 +1,4 @@ +import { FValue } from './FValue'; +import { AstInfo } from './types'; +export declare const toPropertyName: (value: FValue, astInfo: AstInfo | undefined) => string | symbol; +//# sourceMappingURL=toPropertyName.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/toPropertyName.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/toPropertyName.d.ts.map new file mode 100644 index 000000000..b501ead53 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/toPropertyName.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toPropertyName.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/toPropertyName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,eAAO,MAAM,cAAc,UAAW,MAAM,WAAW,OAAO,GAAG,SAAS,KAAG,MAAM,GAAG,MAMrF,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/toTypeName.d.ts b/packages/flocon-script/dist/esm/scriptValue/toTypeName.d.ts new file mode 100644 index 000000000..1678685f2 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/toTypeName.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare const toTypeName: (value: FValue) => "Boolean" | "Number" | "String" | "Symbol" | "Array" | "Object" | "Function" | "null" | "undefined"; +//# sourceMappingURL=toTypeName.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/toTypeName.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/toTypeName.d.ts.map new file mode 100644 index 000000000..655365f15 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/toTypeName.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toTypeName.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/toTypeName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,eAAO,MAAM,UAAU,UAAW,MAAM,wGAQvC,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/tryToPropertyName.d.ts b/packages/flocon-script/dist/esm/scriptValue/tryToPropertyName.d.ts new file mode 100644 index 000000000..f7b04c7ce --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/tryToPropertyName.d.ts @@ -0,0 +1,3 @@ +import { FValue } from './FValue'; +export declare const tryToPropertyName: (value: FValue) => string | symbol | undefined; +//# sourceMappingURL=tryToPropertyName.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/tryToPropertyName.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/tryToPropertyName.d.ts.map new file mode 100644 index 000000000..86c86fec8 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/tryToPropertyName.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tryToPropertyName.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/tryToPropertyName.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,eAAO,MAAM,iBAAiB,UAAW,MAAM,KAAG,MAAM,GAAG,MAAM,GAAG,SAUnE,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/types.d.ts b/packages/flocon-script/dist/esm/scriptValue/types.d.ts new file mode 100644 index 000000000..d8568ab75 --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/types.d.ts @@ -0,0 +1,36 @@ +import { Range } from '../range'; +import { FValue } from './FValue'; +export type AstInfo = { + range?: Range; +}; +export type GetParams = { + property: FValue; + astInfo?: AstInfo; +}; +export type SetParams = { + property: FValue; + newValue: FValue; + astInfo?: AstInfo; +}; +export type GetCoreParams = { + key: string | number | symbol; + astInfo?: AstInfo; +}; +export type OnGettingParams = GetCoreParams; +export type SetCoreParams = { + key: string | number | symbol; + newValue: FValue; + astInfo?: AstInfo; +}; +export type OnSettingParams = SetCoreParams; +export type FObjectBase = { + get(params: GetParams): FValue; + set(params: SetParams): void; + toPrimitiveAsNumber(): number; + toPrimitiveAsString(): string; + toPrimitiveAsDefault?(): number | string; + iterate?(): IterableIterator; + equals?(other: FValue, operator: '==' | '==='): boolean; + toString(): string; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/scriptValue/types.d.ts.map b/packages/flocon-script/dist/esm/scriptValue/types.d.ts.map new file mode 100644 index 000000000..c1ce2bbeb --- /dev/null +++ b/packages/flocon-script/dist/esm/scriptValue/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/scriptValue/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,OAAO,GAAG;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG;IACxB,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG;IACtB,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IAC/B,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,mBAAmB,IAAI,MAAM,CAAC;IAC9B,mBAAmB,IAAI,MAAM,CAAC;IAC9B,oBAAoB,CAAC,IAAI,MAAM,GAAG,MAAM,CAAC;IAGzC,OAAO,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAGrC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC;IAExD,QAAQ,IAAI,MAAM,CAAC;CACtB,CAAC"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/utils/mapIterator.d.ts b/packages/flocon-script/dist/esm/utils/mapIterator.d.ts new file mode 100644 index 000000000..4ac9f6f3c --- /dev/null +++ b/packages/flocon-script/dist/esm/utils/mapIterator.d.ts @@ -0,0 +1,2 @@ +export declare function mapIterator(source: IterableIterator, mapping: (x: T1) => T2): Generator; +//# sourceMappingURL=mapIterator.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/utils/mapIterator.d.ts.map b/packages/flocon-script/dist/esm/utils/mapIterator.d.ts.map new file mode 100644 index 000000000..d149922bd --- /dev/null +++ b/packages/flocon-script/dist/esm/utils/mapIterator.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mapIterator.d.ts","sourceRoot":"","sources":["../../../src/utils/mapIterator.ts"],"names":[],"mappings":"AAAA,wBAAiB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,gCAIxF"} \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/utils/toJObject.d.ts b/packages/flocon-script/dist/esm/utils/toJObject.d.ts new file mode 100644 index 000000000..9b5a97a76 --- /dev/null +++ b/packages/flocon-script/dist/esm/utils/toJObject.d.ts @@ -0,0 +1,3 @@ +import { FValue } from '../scriptValue/FValue'; +export declare const toJObject: (source: FValue) => unknown; +//# sourceMappingURL=toJObject.d.ts.map \ No newline at end of file diff --git a/packages/flocon-script/dist/esm/utils/toJObject.d.ts.map b/packages/flocon-script/dist/esm/utils/toJObject.d.ts.map new file mode 100644 index 000000000..519b65922 --- /dev/null +++ b/packages/flocon-script/dist/esm/utils/toJObject.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toJObject.d.ts","sourceRoot":"","sources":["../../../src/utils/toJObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,eAAO,MAAM,SAAS,WAAY,MAAM,YAKvC,CAAC"} \ No newline at end of file diff --git a/packages/logger-base/dist/cjs/index.d.ts b/packages/logger-base/dist/cjs/index.d.ts new file mode 100644 index 000000000..fc680833f --- /dev/null +++ b/packages/logger-base/dist/cjs/index.d.ts @@ -0,0 +1,3 @@ +export declare const notice = "notice"; +export declare const LOG_FORMAT = "LOG_FORMAT"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/logger-base/dist/cjs/index.d.ts.map b/packages/logger-base/dist/cjs/index.d.ts.map new file mode 100644 index 000000000..b66d416e4 --- /dev/null +++ b/packages/logger-base/dist/cjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,UAAU,eAAe,CAAC"} \ No newline at end of file diff --git a/packages/logger-base/dist/cjs/index.js b/packages/logger-base/dist/cjs/index.js new file mode 100644 index 000000000..9537a3414 --- /dev/null +++ b/packages/logger-base/dist/cjs/index.js @@ -0,0 +1,9 @@ +'use strict'; + +// これらの文字列を変更したら、@flocon-trpg/default-pino-transport の文字列も変更すること! +const notice = 'notice'; +const LOG_FORMAT = 'LOG_FORMAT'; + +exports.LOG_FORMAT = LOG_FORMAT; +exports.notice = notice; +//# sourceMappingURL=index.js.map diff --git a/packages/logger-base/dist/cjs/index.js.map b/packages/logger-base/dist/cjs/index.js.map new file mode 100644 index 000000000..885e078ff --- /dev/null +++ b/packages/logger-base/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AACO,MAAM,MAAM,GAAG;AACf,MAAM,UAAU,GAAG;;;;;"} \ No newline at end of file diff --git a/packages/logger-base/dist/esm/index.d.ts b/packages/logger-base/dist/esm/index.d.ts new file mode 100644 index 000000000..fc680833f --- /dev/null +++ b/packages/logger-base/dist/esm/index.d.ts @@ -0,0 +1,3 @@ +export declare const notice = "notice"; +export declare const LOG_FORMAT = "LOG_FORMAT"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/logger-base/dist/esm/index.d.ts.map b/packages/logger-base/dist/esm/index.d.ts.map new file mode 100644 index 000000000..b66d416e4 --- /dev/null +++ b/packages/logger-base/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,UAAU,eAAe,CAAC"} \ No newline at end of file diff --git a/packages/logger-base/dist/esm/index.js b/packages/logger-base/dist/esm/index.js new file mode 100644 index 000000000..b70973237 --- /dev/null +++ b/packages/logger-base/dist/esm/index.js @@ -0,0 +1,6 @@ +// これらの文字列を変更したら、@flocon-trpg/default-pino-transport の文字列も変更すること! +const notice = 'notice'; +const LOG_FORMAT = 'LOG_FORMAT'; + +export { LOG_FORMAT, notice }; +//# sourceMappingURL=index.js.map diff --git a/packages/logger-base/dist/esm/index.js.map b/packages/logger-base/dist/esm/index.js.map new file mode 100644 index 000000000..3aa053c57 --- /dev/null +++ b/packages/logger-base/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACO,MAAM,MAAM,GAAG;AACf,MAAM,UAAU,GAAG;;;;"} \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/index.d.ts b/packages/sdk-react/dist/cjs/index.d.ts new file mode 100644 index 000000000..9c62c0d70 --- /dev/null +++ b/packages/sdk-react/dist/cjs/index.d.ts @@ -0,0 +1,10 @@ +export { useCreateRoomClient } from './internal/hooks/useCreateRoomClient'; +export { useReadonlyBehaviorEvent } from './internal/hooks/useReadonlyBehaviorEvent'; +export { useRoomConnections } from './internal/hooks/useRoomConnections'; +export { useRoomGraphQLStatus } from './internal/hooks/useRoomGraphQLStatus'; +export { useRoomMessages } from './internal/hooks/useRoomMessages'; +export { useRoomMessageQueryStatus } from './internal/hooks/useRoomMessageQueryStatus'; +export { useRoomState } from './internal/hooks/useRoomState'; +export { useUpdateWritingMessageStatus } from './internal/hooks/useUpdateWritingMessageStatus'; +export { useWritingMessageStatus } from './internal/hooks/useWritingMessageStatus'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/index.d.ts.map b/packages/sdk-react/dist/cjs/index.d.ts.map new file mode 100644 index 000000000..15adf28b0 --- /dev/null +++ b/packages/sdk-react/dist/cjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/index.js b/packages/sdk-react/dist/cjs/index.js new file mode 100644 index 000000000..4faa1846b --- /dev/null +++ b/packages/sdk-react/dist/cjs/index.js @@ -0,0 +1,123 @@ +'use strict'; + +var sdk = require('@flocon-trpg/sdk'); +var react = require('react'); + +function useCreateRoomClient(params) { + const client = params?.client; + const roomId = params?.roomId; + const userUid = params?.userUid; + const [recreateKey, setRecreateKey] = react.useState(0); + const [result, setResult] = react.useState(); + react.useEffect(() => { + if (client == null || roomId == null || userUid == null) { + return; + } + const next = sdk.createRoomClient({ client, roomId, userUid }); + setResult(prev => { + if (prev != null) { + prev.unsubscribe(); + } + return next; + }); + }, [client, roomId, userUid, recreateKey]); + return react.useMemo(() => { + if (result == null) { + return null; + } + return { + value: result, + recreate: () => { + setRecreateKey(i => i + 1); + }, + }; + }, [result]); +} + +const useReadonlyBehaviorEvent = (source) => { + const [state, setState] = react.useState(() => { + if (source instanceof sdk.ReadonlyBehaviorEvent) { + return source.getValue(); + } + return source; + }); + react.useEffect(() => { + if (source instanceof sdk.ReadonlyBehaviorEvent) { + setState(source.getValue()); + const subscription = source.subscribe({ next: value => setState(value) }); + return () => subscription.unsubscribe(); + } + setState(source); + return undefined; + }, [source]); + return state; +}; + +const useRoomConnections = (roomClient) => { + return useReadonlyBehaviorEvent(roomClient.roomConnections); +}; + +const useRoomGraphQLStatus = (roomClient) => { + return useReadonlyBehaviorEvent(roomClient.graphQLStatus); +}; + +/** + * 部屋に投稿されたメッセージ(秘話およびログも含む)およびカスタムメッセージのリストと変更点を返します。 + * + * @param filter function が渡された場合、true を返すメッセージのみを抽出します。変更されるたびに全てのメッセージの抽出処理が行われるため、function を渡す場合は useCallback などを用いる必要があります。 + */ +const useRoomMessages = (roomClient, filter) => { + const messagesSource = react.useMemo(() => { + return filter == null + ? roomClient.messages.messages + : roomClient.messages.messages.filter(filter); + }, [filter, roomClient.messages.messages]); + const [result, setResult] = react.useState(() => ({ + current: messagesSource?.getCurrent() ?? [], + })); + react.useEffect(() => { + if (messagesSource == null) { + return; + } + setResult({ current: messagesSource.getCurrent() }); + const subscription = messagesSource.changed.subscribe({ + next: e => { + setResult({ + current: e.current, + diff: e.type === 'event' ? (e.diff ?? undefined) : undefined, + }); + }, + }); + return () => subscription.unsubscribe(); + }, [messagesSource]); + return result; +}; + +const useRoomMessageQueryStatus = (roomClient) => { + return useReadonlyBehaviorEvent(roomClient.messages.queryStatus); +}; + +const useRoomState = (roomClient) => { + return useReadonlyBehaviorEvent(roomClient.roomState); +}; + +const useUpdateWritingMessageStatus = (roomClient) => { + return react.useMemo(() => { + return (...params) => roomClient.writingMessageStatus.update(...params); + }, [roomClient.writingMessageStatus]); +}; + +const useWritingMessageStatus = (roomClient) => { + return useReadonlyBehaviorEvent(roomClient.writingMessageStatus.value); +}; + +exports.useCreateRoomClient = useCreateRoomClient; +exports.useReadonlyBehaviorEvent = useReadonlyBehaviorEvent; +exports.useRoomConnections = useRoomConnections; +exports.useRoomGraphQLStatus = useRoomGraphQLStatus; +exports.useRoomMessageQueryStatus = useRoomMessageQueryStatus; +exports.useRoomMessages = useRoomMessages; +exports.useRoomState = useRoomState; +exports.useUpdateWritingMessageStatus = useUpdateWritingMessageStatus; +exports.useWritingMessageStatus = useWritingMessageStatus; +//# sourceMappingURL=index.js.map diff --git a/packages/sdk-react/dist/cjs/index.js.map b/packages/sdk-react/dist/cjs/index.js.map new file mode 100644 index 000000000..b3031c266 --- /dev/null +++ b/packages/sdk-react/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/hooks/useCreateRoomClient.ts","../../../src/internal/hooks/useReadonlyBehaviorEvent.ts","../../../src/internal/hooks/useRoomConnections.ts","../../../src/internal/hooks/useRoomGraphQLStatus.ts","../../../src/internal/hooks/useRoomMessages.ts","../../../src/internal/hooks/useRoomMessageQueryStatus.ts","../../../src/internal/hooks/useRoomState.ts","../../../src/internal/hooks/useUpdateWritingMessageStatus.ts","../../../src/internal/hooks/useWritingMessageStatus.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["useState","useEffect","createRoomClient","useMemo","ReadonlyBehaviorEvent"],"mappings":"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"} \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useCreateRoomClient.d.ts b/packages/sdk-react/dist/cjs/internal/hooks/useCreateRoomClient.d.ts new file mode 100644 index 000000000..4f77464a9 --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useCreateRoomClient.d.ts @@ -0,0 +1,19 @@ +import { GraphQLClient, RoomClient } from '@flocon-trpg/sdk'; +type Result = { + value: RoomClient; + recreate: () => void; +}; +type Params = { + client: GraphQLClient; + roomId: string; + userUid: string; +}; +/** + * `createRoomClient` を実行して、戻り値を返します。ただし、引数が nullish の場合は null を返します。 + * + * 引数の `client`, `roomId`, `userUid` は hooks の deps に用いられているため、いずれかが更新されるたびに RoomClient は再作成されます。再作成されると API サーバーとの間に通信が発生するため負荷がかかり、加えて RoomClient の一部のデータも失われるため、更新の必要がない場合は更新をなるべく避ける必要があります。特に `client` は object なので、use-memo-one パッケージの `useMemoOne` もしくは React の `useMemo` などを用いることを推奨します。 + */ +export declare function useCreateRoomClient(params: Params): Result; +export declare function useCreateRoomClient(params: Params | null | undefined): Result | null; +export {}; +//# sourceMappingURL=useCreateRoomClient.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useCreateRoomClient.d.ts.map b/packages/sdk-react/dist/cjs/internal/hooks/useCreateRoomClient.d.ts.map new file mode 100644 index 000000000..2ffc46a65 --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useCreateRoomClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useCreateRoomClient.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useCreateRoomClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAG/E,KAAK,MAAM,CAAC,cAAc,EAAE,aAAa,IAAI;IACzC,KAAK,EAAE,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACjD,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,MAAM,CAAC,aAAa,IAAI;IACzB,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,aAAa,EAC7D,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,GAC9B,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AACzC,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,aAAa,EAC7D,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,GAAG,SAAS,GACjD,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useReadonlyBehaviorEvent.d.ts b/packages/sdk-react/dist/cjs/internal/hooks/useReadonlyBehaviorEvent.d.ts new file mode 100644 index 000000000..5fefb4cc7 --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useReadonlyBehaviorEvent.d.ts @@ -0,0 +1,3 @@ +import { ReadonlyBehaviorEvent } from '@flocon-trpg/sdk'; +export declare const useReadonlyBehaviorEvent: (source: ReadonlyBehaviorEvent | T) => T; +//# sourceMappingURL=useReadonlyBehaviorEvent.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useReadonlyBehaviorEvent.d.ts.map b/packages/sdk-react/dist/cjs/internal/hooks/useReadonlyBehaviorEvent.d.ts.map new file mode 100644 index 000000000..b7397a3aa --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useReadonlyBehaviorEvent.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useReadonlyBehaviorEvent.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useReadonlyBehaviorEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,eAAO,MAAM,wBAAwB,GAAI,CAAC,UAAU,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAG,CAiBlF,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useRoomConnections.d.ts b/packages/sdk-react/dist/cjs/internal/hooks/useRoomConnections.d.ts new file mode 100644 index 000000000..0e6579801 --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useRoomConnections.d.ts @@ -0,0 +1,6 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +export declare const useRoomConnections: (roomClient: Pick, "roomConnections">) => { + current: ReadonlyMap; + diff: import("@flocon-trpg/sdk/dist/cjs/internal/roomClient/roomConnections").RoomConnectionStatusDiff | null; +}; +//# sourceMappingURL=useRoomConnections.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useRoomConnections.d.ts.map b/packages/sdk-react/dist/cjs/internal/hooks/useRoomConnections.d.ts.map new file mode 100644 index 000000000..4d63708ab --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useRoomConnections.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useRoomConnections.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useRoomConnections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,kBAAkB,eAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,iBAAiB,CAAC;wCAGqnB,+DAA8B;iBAA8C,+DAA8B;CAD1zB,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useRoomGraphQLStatus.d.ts b/packages/sdk-react/dist/cjs/internal/hooks/useRoomGraphQLStatus.d.ts new file mode 100644 index 000000000..8bd28c9ff --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useRoomGraphQLStatus.d.ts @@ -0,0 +1,36 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +export declare const useRoomGraphQLStatus: (roomClient: Pick, "graphQLStatus">) => { + RoomEventSubscription: { + type: "ok"; + } | { + type: "error"; + error: import("@flocon-trpg/sdk").ObservableError; + }; + GetMessagesQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("@flocon-trpg/sdk").PromiseError; + }; + GetRoomConnectionsQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("@flocon-trpg/sdk").PromiseError; + }; + GetRoomQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("@flocon-trpg/sdk").PromiseError; + }; +} & { + hasError: boolean; +}; +//# sourceMappingURL=useRoomGraphQLStatus.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useRoomGraphQLStatus.d.ts.map b/packages/sdk-react/dist/cjs/internal/hooks/useRoomGraphQLStatus.d.ts.map new file mode 100644 index 000000000..25a08747d --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useRoomGraphQLStatus.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useRoomGraphQLStatus.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useRoomGraphQLStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,oBAAoB,GAAI,aAAa,cAClC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGpE,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useRoomMessageQueryStatus.d.ts b/packages/sdk-react/dist/cjs/internal/hooks/useRoomMessageQueryStatus.d.ts new file mode 100644 index 000000000..be6627bd3 --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useRoomMessageQueryStatus.d.ts @@ -0,0 +1,3 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +export declare const useRoomMessageQueryStatus: (roomClient: Pick, "messages">) => import("@flocon-trpg/sdk").GetMessagesQueryStatus; +//# sourceMappingURL=useRoomMessageQueryStatus.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useRoomMessageQueryStatus.d.ts.map b/packages/sdk-react/dist/cjs/internal/hooks/useRoomMessageQueryStatus.d.ts.map new file mode 100644 index 000000000..fa2b50c22 --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useRoomMessageQueryStatus.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useRoomMessageQueryStatus.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useRoomMessageQueryStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,yBAAyB,GAAI,cAAc,EAAE,aAAa,cACvD,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,qEAG1E,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useRoomMessages.d.ts b/packages/sdk-react/dist/cjs/internal/hooks/useRoomMessages.d.ts new file mode 100644 index 000000000..1d68afc3c --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useRoomMessages.d.ts @@ -0,0 +1,18 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +import { Diff, Message } from '@flocon-trpg/web-server-utils'; +/** + * 部屋に投稿されたメッセージ(秘話およびログも含む)およびカスタムメッセージのリストと変更点を返します。 + * + * @param filter function が渡された場合、true を返すメッセージのみを抽出します。変更されるたびに全てのメッセージの抽出処理が行われるため、function を渡す場合は useCallback などを用いる必要があります。 + */ +export declare const useRoomMessages: (roomClient: Pick, "messages">, filter?: (message: Message) => boolean) => { + /** メッセージの配列です。作成日時によって昇順にソートされています。 */ + current: readonly Message[]; + /** + * 追加、変更、削除されたメッセージです。ただし、メッセージの多くが変更されたとき(Query による更新など)はundefined になります。 + * + * ブラウザでの通知に用いられることを想定しています。 + */ + diff?: Diff | undefined; +}; +//# sourceMappingURL=useRoomMessages.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useRoomMessages.d.ts.map b/packages/sdk-react/dist/cjs/internal/hooks/useRoomMessages.d.ts.map new file mode 100644 index 000000000..7c61190d2 --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useRoomMessages.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useRoomMessages.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useRoomMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAG9D;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,cAAc,EAAE,aAAa,cAC7C,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,WAC9D,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,OAAO;IAGlD,uCAAuC;aAC9B,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE;IAE3C;;;;OAIG;WACI,IAAI,CAAC,cAAc,CAAC,GAAG,SAAS;CA8B9C,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useRoomState.d.ts b/packages/sdk-react/dist/cjs/internal/hooks/useRoomState.d.ts new file mode 100644 index 000000000..dbeaf8e86 --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useRoomState.d.ts @@ -0,0 +1,3 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +export declare const useRoomState: (roomClient: Pick, "roomState">) => import("@flocon-trpg/sdk").RoomState; +//# sourceMappingURL=useRoomState.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useRoomState.d.ts.map b/packages/sdk-react/dist/cjs/internal/hooks/useRoomState.d.ts.map new file mode 100644 index 000000000..6d766a38f --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useRoomState.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useRoomState.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useRoomState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,YAAY,GAAI,aAAa,cAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,WAAW,CAAC,wDAGhE,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useUpdateWritingMessageStatus.d.ts b/packages/sdk-react/dist/cjs/internal/hooks/useUpdateWritingMessageStatus.d.ts new file mode 100644 index 000000000..89ded6db1 --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useUpdateWritingMessageStatus.d.ts @@ -0,0 +1,3 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +export declare const useUpdateWritingMessageStatus: (roomClient: Pick, "writingMessageStatus">) => (inputType: import("@flocon-trpg/typed-document-node").WritingMessageStatusInputType) => void; +//# sourceMappingURL=useUpdateWritingMessageStatus.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useUpdateWritingMessageStatus.d.ts.map b/packages/sdk-react/dist/cjs/internal/hooks/useUpdateWritingMessageStatus.d.ts.map new file mode 100644 index 000000000..51349d04f --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useUpdateWritingMessageStatus.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useUpdateWritingMessageStatus.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useUpdateWritingMessageStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,6BAA6B,eAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC,kGAMjE,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useWritingMessageStatus.d.ts b/packages/sdk-react/dist/cjs/internal/hooks/useWritingMessageStatus.d.ts new file mode 100644 index 000000000..44bc40c6f --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useWritingMessageStatus.d.ts @@ -0,0 +1,3 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +export declare const useWritingMessageStatus: (roomClient: Pick, "writingMessageStatus">) => ReadonlyMap; +//# sourceMappingURL=useWritingMessageStatus.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/cjs/internal/hooks/useWritingMessageStatus.d.ts.map b/packages/sdk-react/dist/cjs/internal/hooks/useWritingMessageStatus.d.ts.map new file mode 100644 index 000000000..40bd1bae6 --- /dev/null +++ b/packages/sdk-react/dist/cjs/internal/hooks/useWritingMessageStatus.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useWritingMessageStatus.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useWritingMessageStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,uBAAuB,eACpB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC,6FAGjE,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/index.d.ts b/packages/sdk-react/dist/esm/index.d.ts new file mode 100644 index 000000000..9c62c0d70 --- /dev/null +++ b/packages/sdk-react/dist/esm/index.d.ts @@ -0,0 +1,10 @@ +export { useCreateRoomClient } from './internal/hooks/useCreateRoomClient'; +export { useReadonlyBehaviorEvent } from './internal/hooks/useReadonlyBehaviorEvent'; +export { useRoomConnections } from './internal/hooks/useRoomConnections'; +export { useRoomGraphQLStatus } from './internal/hooks/useRoomGraphQLStatus'; +export { useRoomMessages } from './internal/hooks/useRoomMessages'; +export { useRoomMessageQueryStatus } from './internal/hooks/useRoomMessageQueryStatus'; +export { useRoomState } from './internal/hooks/useRoomState'; +export { useUpdateWritingMessageStatus } from './internal/hooks/useUpdateWritingMessageStatus'; +export { useWritingMessageStatus } from './internal/hooks/useWritingMessageStatus'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/index.d.ts.map b/packages/sdk-react/dist/esm/index.d.ts.map new file mode 100644 index 000000000..15adf28b0 --- /dev/null +++ b/packages/sdk-react/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/index.js b/packages/sdk-react/dist/esm/index.js new file mode 100644 index 000000000..6bc5221e0 --- /dev/null +++ b/packages/sdk-react/dist/esm/index.js @@ -0,0 +1,113 @@ +import { createRoomClient, ReadonlyBehaviorEvent } from '@flocon-trpg/sdk'; +import { useState, useEffect, useMemo } from 'react'; + +function useCreateRoomClient(params) { + const client = params?.client; + const roomId = params?.roomId; + const userUid = params?.userUid; + const [recreateKey, setRecreateKey] = useState(0); + const [result, setResult] = useState(); + useEffect(() => { + if (client == null || roomId == null || userUid == null) { + return; + } + const next = createRoomClient({ client, roomId, userUid }); + setResult(prev => { + if (prev != null) { + prev.unsubscribe(); + } + return next; + }); + }, [client, roomId, userUid, recreateKey]); + return useMemo(() => { + if (result == null) { + return null; + } + return { + value: result, + recreate: () => { + setRecreateKey(i => i + 1); + }, + }; + }, [result]); +} + +const useReadonlyBehaviorEvent = (source) => { + const [state, setState] = useState(() => { + if (source instanceof ReadonlyBehaviorEvent) { + return source.getValue(); + } + return source; + }); + useEffect(() => { + if (source instanceof ReadonlyBehaviorEvent) { + setState(source.getValue()); + const subscription = source.subscribe({ next: value => setState(value) }); + return () => subscription.unsubscribe(); + } + setState(source); + return undefined; + }, [source]); + return state; +}; + +const useRoomConnections = (roomClient) => { + return useReadonlyBehaviorEvent(roomClient.roomConnections); +}; + +const useRoomGraphQLStatus = (roomClient) => { + return useReadonlyBehaviorEvent(roomClient.graphQLStatus); +}; + +/** + * 部屋に投稿されたメッセージ(秘話およびログも含む)およびカスタムメッセージのリストと変更点を返します。 + * + * @param filter function が渡された場合、true を返すメッセージのみを抽出します。変更されるたびに全てのメッセージの抽出処理が行われるため、function を渡す場合は useCallback などを用いる必要があります。 + */ +const useRoomMessages = (roomClient, filter) => { + const messagesSource = useMemo(() => { + return filter == null + ? roomClient.messages.messages + : roomClient.messages.messages.filter(filter); + }, [filter, roomClient.messages.messages]); + const [result, setResult] = useState(() => ({ + current: messagesSource?.getCurrent() ?? [], + })); + useEffect(() => { + if (messagesSource == null) { + return; + } + setResult({ current: messagesSource.getCurrent() }); + const subscription = messagesSource.changed.subscribe({ + next: e => { + setResult({ + current: e.current, + diff: e.type === 'event' ? (e.diff ?? undefined) : undefined, + }); + }, + }); + return () => subscription.unsubscribe(); + }, [messagesSource]); + return result; +}; + +const useRoomMessageQueryStatus = (roomClient) => { + return useReadonlyBehaviorEvent(roomClient.messages.queryStatus); +}; + +const useRoomState = (roomClient) => { + return useReadonlyBehaviorEvent(roomClient.roomState); +}; + +const useUpdateWritingMessageStatus = (roomClient) => { + return useMemo(() => { + return (...params) => roomClient.writingMessageStatus.update(...params); + }, [roomClient.writingMessageStatus]); +}; + +const useWritingMessageStatus = (roomClient) => { + return useReadonlyBehaviorEvent(roomClient.writingMessageStatus.value); +}; + +export { useCreateRoomClient, useReadonlyBehaviorEvent, useRoomConnections, useRoomGraphQLStatus, useRoomMessageQueryStatus, useRoomMessages, useRoomState, useUpdateWritingMessageStatus, useWritingMessageStatus }; +//# sourceMappingURL=index.js.map diff --git a/packages/sdk-react/dist/esm/index.js.map b/packages/sdk-react/dist/esm/index.js.map new file mode 100644 index 000000000..aaeef522b --- /dev/null +++ b/packages/sdk-react/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/hooks/useCreateRoomClient.ts","../../../src/internal/hooks/useReadonlyBehaviorEvent.ts","../../../src/internal/hooks/useRoomConnections.ts","../../../src/internal/hooks/useRoomGraphQLStatus.ts","../../../src/internal/hooks/useRoomMessages.ts","../../../src/internal/hooks/useRoomMessageQueryStatus.ts","../../../src/internal/hooks/useRoomState.ts","../../../src/internal/hooks/useUpdateWritingMessageStatus.ts","../../../src/internal/hooks/useWritingMessageStatus.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useCreateRoomClient.d.ts b/packages/sdk-react/dist/esm/internal/hooks/useCreateRoomClient.d.ts new file mode 100644 index 000000000..4f77464a9 --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useCreateRoomClient.d.ts @@ -0,0 +1,19 @@ +import { GraphQLClient, RoomClient } from '@flocon-trpg/sdk'; +type Result = { + value: RoomClient; + recreate: () => void; +}; +type Params = { + client: GraphQLClient; + roomId: string; + userUid: string; +}; +/** + * `createRoomClient` を実行して、戻り値を返します。ただし、引数が nullish の場合は null を返します。 + * + * 引数の `client`, `roomId`, `userUid` は hooks の deps に用いられているため、いずれかが更新されるたびに RoomClient は再作成されます。再作成されると API サーバーとの間に通信が発生するため負荷がかかり、加えて RoomClient の一部のデータも失われるため、更新の必要がない場合は更新をなるべく避ける必要があります。特に `client` は object なので、use-memo-one パッケージの `useMemoOne` もしくは React の `useMemo` などを用いることを推奨します。 + */ +export declare function useCreateRoomClient(params: Params): Result; +export declare function useCreateRoomClient(params: Params | null | undefined): Result | null; +export {}; +//# sourceMappingURL=useCreateRoomClient.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useCreateRoomClient.d.ts.map b/packages/sdk-react/dist/esm/internal/hooks/useCreateRoomClient.d.ts.map new file mode 100644 index 000000000..2ffc46a65 --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useCreateRoomClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useCreateRoomClient.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useCreateRoomClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAG/E,KAAK,MAAM,CAAC,cAAc,EAAE,aAAa,IAAI;IACzC,KAAK,EAAE,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACjD,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,MAAM,CAAC,aAAa,IAAI;IACzB,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,aAAa,EAC7D,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,GAC9B,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AACzC,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,aAAa,EAC7D,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,GAAG,SAAS,GACjD,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useReadonlyBehaviorEvent.d.ts b/packages/sdk-react/dist/esm/internal/hooks/useReadonlyBehaviorEvent.d.ts new file mode 100644 index 000000000..5fefb4cc7 --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useReadonlyBehaviorEvent.d.ts @@ -0,0 +1,3 @@ +import { ReadonlyBehaviorEvent } from '@flocon-trpg/sdk'; +export declare const useReadonlyBehaviorEvent: (source: ReadonlyBehaviorEvent | T) => T; +//# sourceMappingURL=useReadonlyBehaviorEvent.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useReadonlyBehaviorEvent.d.ts.map b/packages/sdk-react/dist/esm/internal/hooks/useReadonlyBehaviorEvent.d.ts.map new file mode 100644 index 000000000..b7397a3aa --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useReadonlyBehaviorEvent.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useReadonlyBehaviorEvent.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useReadonlyBehaviorEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,eAAO,MAAM,wBAAwB,GAAI,CAAC,UAAU,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAG,CAiBlF,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useRoomConnections.d.ts b/packages/sdk-react/dist/esm/internal/hooks/useRoomConnections.d.ts new file mode 100644 index 000000000..0e6579801 --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useRoomConnections.d.ts @@ -0,0 +1,6 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +export declare const useRoomConnections: (roomClient: Pick, "roomConnections">) => { + current: ReadonlyMap; + diff: import("@flocon-trpg/sdk/dist/cjs/internal/roomClient/roomConnections").RoomConnectionStatusDiff | null; +}; +//# sourceMappingURL=useRoomConnections.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useRoomConnections.d.ts.map b/packages/sdk-react/dist/esm/internal/hooks/useRoomConnections.d.ts.map new file mode 100644 index 000000000..4d63708ab --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useRoomConnections.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useRoomConnections.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useRoomConnections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,kBAAkB,eAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,iBAAiB,CAAC;wCAGqnB,+DAA8B;iBAA8C,+DAA8B;CAD1zB,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useRoomGraphQLStatus.d.ts b/packages/sdk-react/dist/esm/internal/hooks/useRoomGraphQLStatus.d.ts new file mode 100644 index 000000000..8bd28c9ff --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useRoomGraphQLStatus.d.ts @@ -0,0 +1,36 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +export declare const useRoomGraphQLStatus: (roomClient: Pick, "graphQLStatus">) => { + RoomEventSubscription: { + type: "ok"; + } | { + type: "error"; + error: import("@flocon-trpg/sdk").ObservableError; + }; + GetMessagesQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("@flocon-trpg/sdk").PromiseError; + }; + GetRoomConnectionsQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("@flocon-trpg/sdk").PromiseError; + }; + GetRoomQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("@flocon-trpg/sdk").PromiseError; + }; +} & { + hasError: boolean; +}; +//# sourceMappingURL=useRoomGraphQLStatus.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useRoomGraphQLStatus.d.ts.map b/packages/sdk-react/dist/esm/internal/hooks/useRoomGraphQLStatus.d.ts.map new file mode 100644 index 000000000..25a08747d --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useRoomGraphQLStatus.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useRoomGraphQLStatus.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useRoomGraphQLStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,oBAAoB,GAAI,aAAa,cAClC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGpE,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useRoomMessageQueryStatus.d.ts b/packages/sdk-react/dist/esm/internal/hooks/useRoomMessageQueryStatus.d.ts new file mode 100644 index 000000000..be6627bd3 --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useRoomMessageQueryStatus.d.ts @@ -0,0 +1,3 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +export declare const useRoomMessageQueryStatus: (roomClient: Pick, "messages">) => import("@flocon-trpg/sdk").GetMessagesQueryStatus; +//# sourceMappingURL=useRoomMessageQueryStatus.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useRoomMessageQueryStatus.d.ts.map b/packages/sdk-react/dist/esm/internal/hooks/useRoomMessageQueryStatus.d.ts.map new file mode 100644 index 000000000..fa2b50c22 --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useRoomMessageQueryStatus.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useRoomMessageQueryStatus.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useRoomMessageQueryStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,yBAAyB,GAAI,cAAc,EAAE,aAAa,cACvD,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,qEAG1E,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useRoomMessages.d.ts b/packages/sdk-react/dist/esm/internal/hooks/useRoomMessages.d.ts new file mode 100644 index 000000000..1d68afc3c --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useRoomMessages.d.ts @@ -0,0 +1,18 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +import { Diff, Message } from '@flocon-trpg/web-server-utils'; +/** + * 部屋に投稿されたメッセージ(秘話およびログも含む)およびカスタムメッセージのリストと変更点を返します。 + * + * @param filter function が渡された場合、true を返すメッセージのみを抽出します。変更されるたびに全てのメッセージの抽出処理が行われるため、function を渡す場合は useCallback などを用いる必要があります。 + */ +export declare const useRoomMessages: (roomClient: Pick, "messages">, filter?: (message: Message) => boolean) => { + /** メッセージの配列です。作成日時によって昇順にソートされています。 */ + current: readonly Message[]; + /** + * 追加、変更、削除されたメッセージです。ただし、メッセージの多くが変更されたとき(Query による更新など)はundefined になります。 + * + * ブラウザでの通知に用いられることを想定しています。 + */ + diff?: Diff | undefined; +}; +//# sourceMappingURL=useRoomMessages.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useRoomMessages.d.ts.map b/packages/sdk-react/dist/esm/internal/hooks/useRoomMessages.d.ts.map new file mode 100644 index 000000000..7c61190d2 --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useRoomMessages.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useRoomMessages.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useRoomMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAG9D;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,cAAc,EAAE,aAAa,cAC7C,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,WAC9D,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,OAAO;IAGlD,uCAAuC;aAC9B,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE;IAE3C;;;;OAIG;WACI,IAAI,CAAC,cAAc,CAAC,GAAG,SAAS;CA8B9C,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useRoomState.d.ts b/packages/sdk-react/dist/esm/internal/hooks/useRoomState.d.ts new file mode 100644 index 000000000..dbeaf8e86 --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useRoomState.d.ts @@ -0,0 +1,3 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +export declare const useRoomState: (roomClient: Pick, "roomState">) => import("@flocon-trpg/sdk").RoomState; +//# sourceMappingURL=useRoomState.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useRoomState.d.ts.map b/packages/sdk-react/dist/esm/internal/hooks/useRoomState.d.ts.map new file mode 100644 index 000000000..6d766a38f --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useRoomState.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useRoomState.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useRoomState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,YAAY,GAAI,aAAa,cAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,WAAW,CAAC,wDAGhE,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useUpdateWritingMessageStatus.d.ts b/packages/sdk-react/dist/esm/internal/hooks/useUpdateWritingMessageStatus.d.ts new file mode 100644 index 000000000..89ded6db1 --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useUpdateWritingMessageStatus.d.ts @@ -0,0 +1,3 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +export declare const useUpdateWritingMessageStatus: (roomClient: Pick, "writingMessageStatus">) => (inputType: import("@flocon-trpg/typed-document-node").WritingMessageStatusInputType) => void; +//# sourceMappingURL=useUpdateWritingMessageStatus.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useUpdateWritingMessageStatus.d.ts.map b/packages/sdk-react/dist/esm/internal/hooks/useUpdateWritingMessageStatus.d.ts.map new file mode 100644 index 000000000..51349d04f --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useUpdateWritingMessageStatus.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useUpdateWritingMessageStatus.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useUpdateWritingMessageStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,6BAA6B,eAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC,kGAMjE,CAAC"} \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useWritingMessageStatus.d.ts b/packages/sdk-react/dist/esm/internal/hooks/useWritingMessageStatus.d.ts new file mode 100644 index 000000000..44bc40c6f --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useWritingMessageStatus.d.ts @@ -0,0 +1,3 @@ +import { RoomClient } from '@flocon-trpg/sdk'; +export declare const useWritingMessageStatus: (roomClient: Pick, "writingMessageStatus">) => ReadonlyMap; +//# sourceMappingURL=useWritingMessageStatus.d.ts.map \ No newline at end of file diff --git a/packages/sdk-react/dist/esm/internal/hooks/useWritingMessageStatus.d.ts.map b/packages/sdk-react/dist/esm/internal/hooks/useWritingMessageStatus.d.ts.map new file mode 100644 index 000000000..40bd1bae6 --- /dev/null +++ b/packages/sdk-react/dist/esm/internal/hooks/useWritingMessageStatus.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useWritingMessageStatus.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useWritingMessageStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,uBAAuB,eACpB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC,6FAGjE,CAAC"} \ No newline at end of file diff --git a/packages/sdk-urql/dist/cjs/index.d.ts b/packages/sdk-urql/dist/cjs/index.d.ts new file mode 100644 index 000000000..09e848d02 --- /dev/null +++ b/packages/sdk-urql/dist/cjs/index.d.ts @@ -0,0 +1,3 @@ +export { createUrqlClient } from './internal/createUrqlClient'; +export { createGraphQLClientForRoomClient } from './internal/createGraphQLClient'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/sdk-urql/dist/cjs/index.d.ts.map b/packages/sdk-urql/dist/cjs/index.d.ts.map new file mode 100644 index 000000000..70d3a05c2 --- /dev/null +++ b/packages/sdk-urql/dist/cjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC"} \ No newline at end of file diff --git a/packages/sdk-urql/dist/cjs/index.js b/packages/sdk-urql/dist/cjs/index.js new file mode 100644 index 000000000..8de925bef --- /dev/null +++ b/packages/sdk-urql/dist/cjs/index.js @@ -0,0 +1,159 @@ +'use strict'; + +var core = require('@flocon-trpg/core'); +var exchangeAuth = require('@urql/exchange-auth'); +var graphqlWs = require('graphql-ws'); +var urql = require('urql'); +var typedDocumentNode = require('@flocon-trpg/typed-document-node'); +var result = require('@kizahasi/result'); +var rxjs = require('rxjs'); +var wonka = require('wonka'); + +const execGetUserIdTokenResult = async (source) => { + if (source == null) { + return null; + } + return await source(); +}; +const wsClient = (wsUrl, getUserIdToken) => graphqlWs.createClient({ + url: wsUrl, + connectionParams: async () => { + const idTokenResult = await execGetUserIdTokenResult(getUserIdToken); + if (idTokenResult == null) { + return {}; + } + return { [core.authToken]: idTokenResult.token }; + }, +}); +const createUrqlClient = (params) => { + let authExchangeResult; + if (params.authorization) { + const getUserIdTokenResult = params.getUserIdTokenResult; + let userIdTokenResult = null; + authExchangeResult = exchangeAuth.authExchange(async (utils) => ({ + refreshAuth: async () => { + userIdTokenResult = await execGetUserIdTokenResult(getUserIdTokenResult); + }, + didAuthError: error => { + return error.graphQLErrors.some(error => + // auth error のとき、error.extensions.code は 'INTERNAL_SERVER_ERROR' であるため、error.extensions.code だけでは auth error かどうかを判定するのは困難。 + error.message.includes("Access denied! You don't have permission for this action!")); + }, + willAuthError: () => { + if (userIdTokenResult == null) { + return true; + } + // この秒数以内にidTokenがexpireする状態であればエラーとみなしてidTokenの再取得を行う。 + // getIdTokenResultは、あと5分以内にexpireする状態でないとidTokenは自動更新されないため、5分以下の値にしている。 + // https://github.com/firebase/firebase-js-sdk/blob/7cad614ec2d2a34b40a3c24443c4f35571e3e68c/packages/auth/src/core/user/id_token_result.ts#L47 + const refreshIfExpiresIn = 240; + const expirationDate = new Date(userIdTokenResult.expirationTime); + expirationDate.setSeconds(expirationDate.getSeconds() - refreshIfExpiresIn); + return expirationDate < new Date(); + }, + // https://formidable.com/open-source/urql/docs/advanced/authentication/#configuring-addauthtooperation + addAuthToOperation: operation => { + if (userIdTokenResult == null) { + return operation; + } + return utils.appendHeaders(operation, { + Authorization: `Bearer ${userIdTokenResult.token}`, + }); + }, + })); + } + else { + authExchangeResult = null; + } + const defaultExchanges = [ + urql.cacheExchange, + ...(authExchangeResult == null ? [] : [authExchangeResult]), + urql.fetchExchange, + urql.subscriptionExchange({ + forwardSubscription: request => { + const input = { ...request, query: request.query || '' }; + return { + subscribe: sink => { + const unsubscribe = wsClient(params.wsUrl, params.authorization ? params.getUserIdTokenResult : null).subscribe(input, sink); + return { unsubscribe }; + }, + }; + }, + }), + ]; + return urql.createClient({ + url: params.httpUrl, + exchanges: params.exchanges == null ? defaultExchanges : params.exchanges(defaultExchanges), + }); +}; + +const createGraphQLClientForRoomClient = (client) => { + return { + getMessagesQuery: variables => client + .query(typedDocumentNode.GetMessagesDocument, variables, { requestPolicy: 'network-only' }) + .toPromise() + .then(result$1 => { + if (result$1.data != null) { + return result.Result.ok(result$1.data); + } + return result.Result.error(result$1.error); + }), + getRoomConnectionsQuery: variables => client + .query(typedDocumentNode.GetRoomConnectionsDocument, variables, { + requestPolicy: 'network-only', + }) + .toPromise() + .then(result$1 => { + if (result$1.data != null) { + return result.Result.ok(result$1.data); + } + return result.Result.error(result$1.error); + }), + getRoomQuery: variables => client + .query(typedDocumentNode.GetRoomDocument, variables, { requestPolicy: 'network-only' }) + .toPromise() + .then(result$1 => { + if (result$1.data != null) { + return result.Result.ok(result$1.data); + } + return result.Result.error(result$1.error); + }), + operateMutation: variables => client + .mutation(typedDocumentNode.OperateDocument, variables) + .toPromise() + .then(result$1 => { + if (result$1.data != null) { + return result.Result.ok(result$1.data); + } + return result.Result.error(result$1.error); + }), + updateWritingMessagesStatusMutation: variables => client + .mutation(typedDocumentNode.UpdateWritingMessageStatusDocument, variables) + .toPromise() + .then(result$1 => { + if (result$1.data != null) { + return result.Result.ok(result$1.data); + } + return result.Result.error(result$1.error); + }), + roomEventSubscription: variables => { + // 当初は、client.subscription() の戻り値を wonka の toObservable で wonka の Observable に変換して、それを RxJS の Observable に変換していた。 + // だがこの方法だと unsubscribe が効かないという問題が発生したため、toObservable を使わずに実装している。 + const observable = new rxjs.Observable(observer => { + const subscription = wonka.pipe(client.subscription(typedDocumentNode.RoomEventDocument, variables), wonka.subscribe(value => { + if (value.data != null) { + observer.next(result.Result.ok(value.data)); + return; + } + observer.next(result.Result.error(value.error)); + })); + return subscription; + }); + return observable.pipe(rxjs.share()); + }, + }; +}; + +exports.createGraphQLClientForRoomClient = createGraphQLClientForRoomClient; +exports.createUrqlClient = createUrqlClient; +//# sourceMappingURL=index.js.map diff --git a/packages/sdk-urql/dist/cjs/index.js.map b/packages/sdk-urql/dist/cjs/index.js.map new file mode 100644 index 000000000..e96c887e7 --- /dev/null +++ b/packages/sdk-urql/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/createUrqlClient.ts","../../../src/internal/createGraphQLClient.ts"],"sourcesContent":[null,null],"names":["createWsClient","authToken","authExchange","cacheExchange","fetchExchange","subscriptionExchange","createClient","GetMessagesDocument","result","Result","GetRoomConnectionsDocument","GetRoomDocument","OperateDocument","UpdateWritingMessageStatusDocument","Observable","pipe","RoomEventDocument","subscribe","share"],"mappings":";;;;;;;;;;;AAQA,MAAM,wBAAwB,GAAG,OAC7B,MAA4B,KACG;AAC/B,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,QAAA,OAAO,IAAI;;IAEf,OAAO,MAAM,MAAM,EAAE;AACzB,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,cAAoC,KACjEA,sBAAc,CAAC;AACX,IAAA,GAAG,EAAE,KAAK;IACV,gBAAgB,EAAE,YAAW;AACzB,QAAA,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAAC,cAAc,CAAC;AACpE,QAAA,IAAI,aAAa,IAAI,IAAI,EAAE;AACvB,YAAA,OAAO,EAAE;;QAEb,OAAO,EAAE,CAACC,cAAS,GAAG,aAAa,CAAC,KAAK,EAAE;KAC9C;AACJ,CAAA,CAAC;AA+BO,MAAA,gBAAgB,GAAG,CAAC,MAAc,KAAI;AAC/C,IAAA,IAAI,kBAAmC;AACvC,IAAA,IAAI,MAAM,CAAC,aAAa,EAAE;AACtB,QAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB;QACxD,IAAI,iBAAiB,GAAyB,IAAI;QAClD,kBAAkB,GAAGC,yBAAY,CAAC,OAAM,KAAK,MAAK;YAC9C,WAAW,EAAE,YAAW;AACpB,gBAAA,iBAAiB,GAAG,MAAM,wBAAwB,CAAC,oBAAoB,CAAC;aAC3E;YACD,YAAY,EAAE,KAAK,IAAG;gBAClB,OAAO,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK;;gBAEjC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAClB,2DAA2D,CAC9D,CACJ;aACJ;YACD,aAAa,EAAE,MAAK;AAChB,gBAAA,IAAI,iBAAiB,IAAI,IAAI,EAAE;AAC3B,oBAAA,OAAO,IAAI;;;;;gBAMf,MAAM,kBAAkB,GAAG,GAAG;gBAE9B,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;gBACjE,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,kBAAkB,CAAC;AAC3E,gBAAA,OAAO,cAAc,GAAG,IAAI,IAAI,EAAE;aACrC;;YAED,kBAAkB,EAAE,SAAS,IAAG;AAC5B,gBAAA,IAAI,iBAAiB,IAAI,IAAI,EAAE;AAC3B,oBAAA,OAAO,SAAS;;AAEpB,gBAAA,OAAO,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;AAClC,oBAAA,aAAa,EAAE,CAAA,OAAA,EAAU,iBAAiB,CAAC,KAAK,CAAE,CAAA;AACrD,iBAAA,CAAC;aACL;AACJ,SAAA,CAAC,CAAC;;SACA;QACH,kBAAkB,GAAG,IAAI;;AAG7B,IAAA,MAAM,gBAAgB,GAAe;QACjCC,kBAAa;AACb,QAAA,IAAI,kBAAkB,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC3DC,kBAAa;AACb,QAAAC,yBAAoB,CAAC;YACjB,mBAAmB,EAAE,OAAO,IAAG;AAC3B,gBAAA,MAAM,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE;gBACxD,OAAO;oBACH,SAAS,EAAE,IAAI,IAAG;AACd,wBAAA,MAAM,WAAW,GAAG,QAAQ,CACxB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAC5D,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;wBACxB,OAAO,EAAE,WAAW,EAAE;qBACzB;iBACJ;aACJ;SACJ,CAAC;KACL;AAED,IAAA,OAAOC,iBAAY,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC,OAAO;AACnB,QAAA,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,GAAG,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;AAC9F,KAAA,CAAC;AACN;;AChHa,MAAA,gCAAgC,GAAG,CAAC,MAAc,KAAkC;IAC7F,OAAO;AACH,QAAA,gBAAgB,EAAE,SAAS,IACvB;aACK,KAAK,CAACC,qCAAmB,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE;AACvE,aAAA,SAAS;aACT,IAAI,CAACC,QAAM,IAAG;AACX,YAAA,IAAIA,QAAM,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,OAAOC,aAAM,CAAC,EAAE,CAACD,QAAM,CAAC,IAAI,CAAC;;YAEjC,OAAOC,aAAM,CAAC,KAAK,CAACD,QAAM,CAAC,KAAM,CAAC;AACtC,SAAC,CAAC;AACV,QAAA,uBAAuB,EAAE,SAAS,IAC9B;AACK,aAAA,KAAK,CAACE,4CAA0B,EAAE,SAAS,EAAE;AAC1C,YAAA,aAAa,EAAE,cAAc;SAChC;AACA,aAAA,SAAS;aACT,IAAI,CAACF,QAAM,IAAG;AACX,YAAA,IAAIA,QAAM,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,OAAOC,aAAM,CAAC,EAAE,CAACD,QAAM,CAAC,IAAI,CAAC;;YAEjC,OAAOC,aAAM,CAAC,KAAK,CAACD,QAAM,CAAC,KAAM,CAAC;AACtC,SAAC,CAAC;AACV,QAAA,YAAY,EAAE,SAAS,IACnB;aACK,KAAK,CAACG,iCAAe,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE;AACnE,aAAA,SAAS;aACT,IAAI,CAACH,QAAM,IAAG;AACX,YAAA,IAAIA,QAAM,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,OAAOC,aAAM,CAAC,EAAE,CAACD,QAAM,CAAC,IAAI,CAAC;;YAEjC,OAAOC,aAAM,CAAC,KAAK,CAACD,QAAM,CAAC,KAAM,CAAC;AACtC,SAAC,CAAC;AACV,QAAA,eAAe,EAAE,SAAS,IACtB;AACK,aAAA,QAAQ,CAACI,iCAAe,EAAE,SAAS;AACnC,aAAA,SAAS;aACT,IAAI,CAACJ,QAAM,IAAG;AACX,YAAA,IAAIA,QAAM,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,OAAOC,aAAM,CAAC,EAAE,CAACD,QAAM,CAAC,IAAI,CAAC;;YAEjC,OAAOC,aAAM,CAAC,KAAK,CAACD,QAAM,CAAC,KAAM,CAAC;AACtC,SAAC,CAAC;AACV,QAAA,mCAAmC,EAAE,SAAS,IAC1C;AACK,aAAA,QAAQ,CAACK,oDAAkC,EAAE,SAAS;AACtD,aAAA,SAAS;aACT,IAAI,CAACL,QAAM,IAAG;AACX,YAAA,IAAIA,QAAM,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,OAAOC,aAAM,CAAC,EAAE,CAACD,QAAM,CAAC,IAAI,CAAC;;YAEjC,OAAOC,aAAM,CAAC,KAAK,CAACD,QAAM,CAAC,KAAM,CAAC;AACtC,SAAC,CAAC;QACV,qBAAqB,EAAE,SAAS,IAAG;;;AAI/B,YAAA,MAAM,UAAU,GAAG,IAAIM,eAAU,CAC7B,QAAQ,IAAG;AACP,gBAAA,MAAM,YAAY,GAAGC,UAAI,CACrB,MAAM,CAAC,YAAY,CAACC,mCAAiB,EAAE,SAAS,CAAC,EACjDC,eAAS,CAAC,KAAK,IAAG;AACd,oBAAA,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;AACpB,wBAAA,QAAQ,CAAC,IAAI,CAACR,aAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACpC;;AAEJ,oBAAA,QAAQ,CAAC,IAAI,CAACA,aAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC;iBAC5C,CAAC,CACL;AACD,gBAAA,OAAO,YAAY;AACvB,aAAC,CACJ;AACD,YAAA,OAAO,UAAU,CAAC,IAAI,CAACS,UAAK,EAAE,CAAC;SAClC;KACJ;AACL;;;;;"} \ No newline at end of file diff --git a/packages/sdk-urql/dist/cjs/internal/createGraphQLClient.d.ts b/packages/sdk-urql/dist/cjs/internal/createGraphQLClient.d.ts new file mode 100644 index 000000000..5811bc235 --- /dev/null +++ b/packages/sdk-urql/dist/cjs/internal/createGraphQLClient.d.ts @@ -0,0 +1,4 @@ +import { GraphQLClient } from '@flocon-trpg/sdk'; +import { Client, CombinedError } from 'urql'; +export declare const createGraphQLClientForRoomClient: (client: Client) => GraphQLClient; +//# sourceMappingURL=createGraphQLClient.d.ts.map \ No newline at end of file diff --git a/packages/sdk-urql/dist/cjs/internal/createGraphQLClient.d.ts.map b/packages/sdk-urql/dist/cjs/internal/createGraphQLClient.d.ts.map new file mode 100644 index 000000000..cb0dfc4c1 --- /dev/null +++ b/packages/sdk-urql/dist/cjs/internal/createGraphQLClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createGraphQLClient.d.ts","sourceRoot":"","sources":["../../../src/internal/createGraphQLClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAYjD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAG7C,eAAO,MAAM,gCAAgC,WAAY,MAAM,KAAG,aAAa,CAAC,aAAa,CA4E5F,CAAC"} \ No newline at end of file diff --git a/packages/sdk-urql/dist/cjs/internal/createUrqlClient.d.ts b/packages/sdk-urql/dist/cjs/internal/createUrqlClient.d.ts new file mode 100644 index 000000000..514278a6d --- /dev/null +++ b/packages/sdk-urql/dist/cjs/internal/createUrqlClient.d.ts @@ -0,0 +1,28 @@ +import { IdTokenResult } from '@firebase/auth'; +import { Exchange } from 'urql'; +type GetUserIdTokenResult = (() => Promise) | null; +type Params = { + /** API サーバーの HTTP もしくは HTTPS での URL。通常は `https://` もしくは `http://` で始まる文字列です。 */ + httpUrl: string; + /** API サーバーの WebSocket の URL。通常は `wss://` もしくは `ws://` で始まる文字列です。 */ + wsUrl: string; + exchanges?: (defaultExchanges: Exchange[]) => Exchange[]; +} & ({ + /** + * `false` ならば、常に Authorization ヘッダーなしで API サーバーにリクエストします。API サーバーからはログインしていないユーザーだとみなされます。 + * + * ユーザーがログインしているか否かに関わらず、通常は `true` をセットすることを推奨します。 + */ + authorization: false; +} | { + /** + * `true` ならば、可能であれば Authorization ヘッダーありで API サーバーにリクエストします。 + * + * 有効な Authorization ヘッダーがある場合は、API サーバーからはログインしているユーザーだとみなされます。ただし、Authorization ヘッダーにセットする値を GetUserIdTokenResult から取得できなかった場合は、Authorization ヘッダーなしでリクエストします。この場合はログインしていないユーザーだとみなされます。 + */ + authorization: true; + getUserIdTokenResult: GetUserIdTokenResult; +}); +export declare const createUrqlClient: (params: Params) => import("urql").Client; +export {}; +//# sourceMappingURL=createUrqlClient.d.ts.map \ No newline at end of file diff --git a/packages/sdk-urql/dist/cjs/internal/createUrqlClient.d.ts.map b/packages/sdk-urql/dist/cjs/internal/createUrqlClient.d.ts.map new file mode 100644 index 000000000..6d08ec660 --- /dev/null +++ b/packages/sdk-urql/dist/cjs/internal/createUrqlClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createUrqlClient.d.ts","sourceRoot":"","sources":["../../../src/internal/createUrqlClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAI/C,OAAO,EAAE,QAAQ,EAAoE,MAAM,MAAM,CAAC;AAElG,KAAK,oBAAoB,GAAG,CAAC,MAAM,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAuBzE,KAAK,MAAM,GAAG;IACV,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;IAEhB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IAEd,SAAS,CAAC,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;CAC5D,GAAG,CACE;IACI;;;;OAIG;IACH,aAAa,EAAE,KAAK,CAAC;CACxB,GACD;IACI;;;;OAIG;IACH,aAAa,EAAE,IAAI,CAAC;IAEpB,oBAAoB,EAAE,oBAAoB,CAAC;CAC9C,CACN,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,MAAM,0BAqE9C,CAAC"} \ No newline at end of file diff --git a/packages/sdk-urql/dist/esm/index.d.ts b/packages/sdk-urql/dist/esm/index.d.ts new file mode 100644 index 000000000..09e848d02 --- /dev/null +++ b/packages/sdk-urql/dist/esm/index.d.ts @@ -0,0 +1,3 @@ +export { createUrqlClient } from './internal/createUrqlClient'; +export { createGraphQLClientForRoomClient } from './internal/createGraphQLClient'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/sdk-urql/dist/esm/index.d.ts.map b/packages/sdk-urql/dist/esm/index.d.ts.map new file mode 100644 index 000000000..70d3a05c2 --- /dev/null +++ b/packages/sdk-urql/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC"} \ No newline at end of file diff --git a/packages/sdk-urql/dist/esm/index.js b/packages/sdk-urql/dist/esm/index.js new file mode 100644 index 000000000..8e133c0c0 --- /dev/null +++ b/packages/sdk-urql/dist/esm/index.js @@ -0,0 +1,156 @@ +import { authToken } from '@flocon-trpg/core'; +import { authExchange } from '@urql/exchange-auth'; +import { createClient as createClient$1 } from 'graphql-ws'; +import { cacheExchange, fetchExchange, subscriptionExchange, createClient } from 'urql'; +import { GetMessagesDocument, GetRoomConnectionsDocument, GetRoomDocument, OperateDocument, UpdateWritingMessageStatusDocument, RoomEventDocument } from '@flocon-trpg/typed-document-node'; +import { Result } from '@kizahasi/result'; +import { Observable, share } from 'rxjs'; +import { pipe, subscribe } from 'wonka'; + +const execGetUserIdTokenResult = async (source) => { + if (source == null) { + return null; + } + return await source(); +}; +const wsClient = (wsUrl, getUserIdToken) => createClient$1({ + url: wsUrl, + connectionParams: async () => { + const idTokenResult = await execGetUserIdTokenResult(getUserIdToken); + if (idTokenResult == null) { + return {}; + } + return { [authToken]: idTokenResult.token }; + }, +}); +const createUrqlClient = (params) => { + let authExchangeResult; + if (params.authorization) { + const getUserIdTokenResult = params.getUserIdTokenResult; + let userIdTokenResult = null; + authExchangeResult = authExchange(async (utils) => ({ + refreshAuth: async () => { + userIdTokenResult = await execGetUserIdTokenResult(getUserIdTokenResult); + }, + didAuthError: error => { + return error.graphQLErrors.some(error => + // auth error のとき、error.extensions.code は 'INTERNAL_SERVER_ERROR' であるため、error.extensions.code だけでは auth error かどうかを判定するのは困難。 + error.message.includes("Access denied! You don't have permission for this action!")); + }, + willAuthError: () => { + if (userIdTokenResult == null) { + return true; + } + // この秒数以内にidTokenがexpireする状態であればエラーとみなしてidTokenの再取得を行う。 + // getIdTokenResultは、あと5分以内にexpireする状態でないとidTokenは自動更新されないため、5分以下の値にしている。 + // https://github.com/firebase/firebase-js-sdk/blob/7cad614ec2d2a34b40a3c24443c4f35571e3e68c/packages/auth/src/core/user/id_token_result.ts#L47 + const refreshIfExpiresIn = 240; + const expirationDate = new Date(userIdTokenResult.expirationTime); + expirationDate.setSeconds(expirationDate.getSeconds() - refreshIfExpiresIn); + return expirationDate < new Date(); + }, + // https://formidable.com/open-source/urql/docs/advanced/authentication/#configuring-addauthtooperation + addAuthToOperation: operation => { + if (userIdTokenResult == null) { + return operation; + } + return utils.appendHeaders(operation, { + Authorization: `Bearer ${userIdTokenResult.token}`, + }); + }, + })); + } + else { + authExchangeResult = null; + } + const defaultExchanges = [ + cacheExchange, + ...(authExchangeResult == null ? [] : [authExchangeResult]), + fetchExchange, + subscriptionExchange({ + forwardSubscription: request => { + const input = { ...request, query: request.query || '' }; + return { + subscribe: sink => { + const unsubscribe = wsClient(params.wsUrl, params.authorization ? params.getUserIdTokenResult : null).subscribe(input, sink); + return { unsubscribe }; + }, + }; + }, + }), + ]; + return createClient({ + url: params.httpUrl, + exchanges: params.exchanges == null ? defaultExchanges : params.exchanges(defaultExchanges), + }); +}; + +const createGraphQLClientForRoomClient = (client) => { + return { + getMessagesQuery: variables => client + .query(GetMessagesDocument, variables, { requestPolicy: 'network-only' }) + .toPromise() + .then(result => { + if (result.data != null) { + return Result.ok(result.data); + } + return Result.error(result.error); + }), + getRoomConnectionsQuery: variables => client + .query(GetRoomConnectionsDocument, variables, { + requestPolicy: 'network-only', + }) + .toPromise() + .then(result => { + if (result.data != null) { + return Result.ok(result.data); + } + return Result.error(result.error); + }), + getRoomQuery: variables => client + .query(GetRoomDocument, variables, { requestPolicy: 'network-only' }) + .toPromise() + .then(result => { + if (result.data != null) { + return Result.ok(result.data); + } + return Result.error(result.error); + }), + operateMutation: variables => client + .mutation(OperateDocument, variables) + .toPromise() + .then(result => { + if (result.data != null) { + return Result.ok(result.data); + } + return Result.error(result.error); + }), + updateWritingMessagesStatusMutation: variables => client + .mutation(UpdateWritingMessageStatusDocument, variables) + .toPromise() + .then(result => { + if (result.data != null) { + return Result.ok(result.data); + } + return Result.error(result.error); + }), + roomEventSubscription: variables => { + // 当初は、client.subscription() の戻り値を wonka の toObservable で wonka の Observable に変換して、それを RxJS の Observable に変換していた。 + // だがこの方法だと unsubscribe が効かないという問題が発生したため、toObservable を使わずに実装している。 + const observable = new Observable(observer => { + const subscription = pipe(client.subscription(RoomEventDocument, variables), subscribe(value => { + if (value.data != null) { + observer.next(Result.ok(value.data)); + return; + } + observer.next(Result.error(value.error)); + })); + return subscription; + }); + return observable.pipe(share()); + }, + }; +}; + +export { createGraphQLClientForRoomClient, createUrqlClient }; +//# sourceMappingURL=index.js.map diff --git a/packages/sdk-urql/dist/esm/index.js.map b/packages/sdk-urql/dist/esm/index.js.map new file mode 100644 index 000000000..61a49fbc0 --- /dev/null +++ b/packages/sdk-urql/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/createUrqlClient.ts","../../../src/internal/createGraphQLClient.ts"],"sourcesContent":[null,null],"names":["createWsClient"],"mappings":"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"} \ No newline at end of file diff --git a/packages/sdk-urql/dist/esm/internal/createGraphQLClient.d.ts b/packages/sdk-urql/dist/esm/internal/createGraphQLClient.d.ts new file mode 100644 index 000000000..5811bc235 --- /dev/null +++ b/packages/sdk-urql/dist/esm/internal/createGraphQLClient.d.ts @@ -0,0 +1,4 @@ +import { GraphQLClient } from '@flocon-trpg/sdk'; +import { Client, CombinedError } from 'urql'; +export declare const createGraphQLClientForRoomClient: (client: Client) => GraphQLClient; +//# sourceMappingURL=createGraphQLClient.d.ts.map \ No newline at end of file diff --git a/packages/sdk-urql/dist/esm/internal/createGraphQLClient.d.ts.map b/packages/sdk-urql/dist/esm/internal/createGraphQLClient.d.ts.map new file mode 100644 index 000000000..cb0dfc4c1 --- /dev/null +++ b/packages/sdk-urql/dist/esm/internal/createGraphQLClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createGraphQLClient.d.ts","sourceRoot":"","sources":["../../../src/internal/createGraphQLClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAYjD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAG7C,eAAO,MAAM,gCAAgC,WAAY,MAAM,KAAG,aAAa,CAAC,aAAa,CA4E5F,CAAC"} \ No newline at end of file diff --git a/packages/sdk-urql/dist/esm/internal/createUrqlClient.d.ts b/packages/sdk-urql/dist/esm/internal/createUrqlClient.d.ts new file mode 100644 index 000000000..514278a6d --- /dev/null +++ b/packages/sdk-urql/dist/esm/internal/createUrqlClient.d.ts @@ -0,0 +1,28 @@ +import { IdTokenResult } from '@firebase/auth'; +import { Exchange } from 'urql'; +type GetUserIdTokenResult = (() => Promise) | null; +type Params = { + /** API サーバーの HTTP もしくは HTTPS での URL。通常は `https://` もしくは `http://` で始まる文字列です。 */ + httpUrl: string; + /** API サーバーの WebSocket の URL。通常は `wss://` もしくは `ws://` で始まる文字列です。 */ + wsUrl: string; + exchanges?: (defaultExchanges: Exchange[]) => Exchange[]; +} & ({ + /** + * `false` ならば、常に Authorization ヘッダーなしで API サーバーにリクエストします。API サーバーからはログインしていないユーザーだとみなされます。 + * + * ユーザーがログインしているか否かに関わらず、通常は `true` をセットすることを推奨します。 + */ + authorization: false; +} | { + /** + * `true` ならば、可能であれば Authorization ヘッダーありで API サーバーにリクエストします。 + * + * 有効な Authorization ヘッダーがある場合は、API サーバーからはログインしているユーザーだとみなされます。ただし、Authorization ヘッダーにセットする値を GetUserIdTokenResult から取得できなかった場合は、Authorization ヘッダーなしでリクエストします。この場合はログインしていないユーザーだとみなされます。 + */ + authorization: true; + getUserIdTokenResult: GetUserIdTokenResult; +}); +export declare const createUrqlClient: (params: Params) => import("urql").Client; +export {}; +//# sourceMappingURL=createUrqlClient.d.ts.map \ No newline at end of file diff --git a/packages/sdk-urql/dist/esm/internal/createUrqlClient.d.ts.map b/packages/sdk-urql/dist/esm/internal/createUrqlClient.d.ts.map new file mode 100644 index 000000000..6d08ec660 --- /dev/null +++ b/packages/sdk-urql/dist/esm/internal/createUrqlClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createUrqlClient.d.ts","sourceRoot":"","sources":["../../../src/internal/createUrqlClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAI/C,OAAO,EAAE,QAAQ,EAAoE,MAAM,MAAM,CAAC;AAElG,KAAK,oBAAoB,GAAG,CAAC,MAAM,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAuBzE,KAAK,MAAM,GAAG;IACV,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;IAEhB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IAEd,SAAS,CAAC,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;CAC5D,GAAG,CACE;IACI;;;;OAIG;IACH,aAAa,EAAE,KAAK,CAAC;CACxB,GACD;IACI;;;;OAIG;IACH,aAAa,EAAE,IAAI,CAAC;IAEpB,oBAAoB,EAAE,oBAAoB,CAAC;CAC9C,CACN,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,MAAM,0BAqE9C,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/index.d.ts b/packages/sdk/dist/cjs/index.d.ts new file mode 100644 index 000000000..22efda90c --- /dev/null +++ b/packages/sdk/dist/cjs/index.d.ts @@ -0,0 +1,8 @@ +export { createRoomClient, RoomClient } from './internal/createRoomClient'; +export { GraphQLClient, PromiseError, ObservableError } from './internal/roomClient/graphqlClient'; +export { GetMessagesQueryStatus } from './internal/roomClient/roomMessages'; +export { RoomState } from './internal/roomClient/roomState'; +export { createTestRoomClient } from './internal/createTestRoomClient'; +export { BehaviorEvent } from './internal/rxjs/behaviorEvent'; +export { ReadonlyBehaviorEvent } from './internal/rxjs/readonlyBehaviorEvent'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/index.d.ts.map b/packages/sdk/dist/cjs/index.d.ts.map new file mode 100644 index 000000000..4c67c2d03 --- /dev/null +++ b/packages/sdk/dist/cjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/index.js b/packages/sdk/dist/cjs/index.js new file mode 100644 index 000000000..b3825c585 --- /dev/null +++ b/packages/sdk/dist/cjs/index.js @@ -0,0 +1,1345 @@ +'use strict'; + +var core = require('@flocon-trpg/core'); +var rxjs = require('rxjs'); +var result = require('@kizahasi/result'); +var webServerUtils = require('@flocon-trpg/web-server-utils'); +var utils = require('@flocon-trpg/utils'); +var option = require('@kizahasi/option'); + +/** RxJS の `BehaviorSubject` と似たクラスです。ただし、error が流されないという点で異なります。 */ +class BehaviorEvent { + #source; + constructor(value) { + this.#source = new rxjs.BehaviorSubject(value); + } + next(value) { + this.#source.next(value); + } + complete() { + this.#source.complete(); + } + subscribe(observer) { + return this.#source.subscribe(observer); + } + getValue() { + return this.#source.getValue(); + } + get value() { + return this.#source.value; + } + asObservable() { + return this.#source.asObservable(); + } + unsubscribe() { + return this.#source.unsubscribe(); + } +} + +/** + * 現在の値の取得と、値の変更を監視できるクラスです。 + * + * RxJS の `BehaviorSubject` を read-only にしたものと似たクラスです。ただし、error が流されないという点で異なります。 */ +class ReadonlyBehaviorEvent { + #source; + constructor(source) { + this.#source = source; + } + /** + * 値の変更を購読します。 + * + * subscribe した瞬間に現在の値が流されます。これは RxJS の `BehaviorSubject` の挙動と合わせるためです。 + */ + subscribe(observer) { + return this.#source.subscribe(observer); + } + getValue() { + return this.#source.getValue(); + } + /** `getValue()` の alias です。 */ + get value() { + return this.#source.value; + } + /** RxJS の `Observable` に変換します。 */ + asObservable() { + return this.#source.asObservable(); + } + static of(value) { + const source = new BehaviorEvent(value); + source.complete(); + return new ReadonlyBehaviorEvent(source); + } +} + +const fetching$2 = 'fetching'; +const error$2 = 'error'; +const ok = 'ok'; +const resultError = 'resultError'; +const GetMessagesQuery = 'GetMessagesQuery'; +const GetRoomConnectionsQuery = 'GetRoomConnectionsQuery'; +const GetRoomQuery = 'GetRoomQuery'; +class GraphQLStatusEventEmitter { + #status = new BehaviorEvent({ + GetMessagesQuery: { type: fetching$2 }, + GetRoomConnectionsQuery: { type: fetching$2 }, + GetRoomQuery: { type: fetching$2 }, + RoomEventSubscription: { type: ok }, + hasError: false, + }); + next(update) { + const oldValue = this.#status.getValue(); + const newValue = update(oldValue); + this.#status.next({ ...newValue, hasError: hasError(newValue) }); + } + toReadonlyBehaviorEvent() { + return new ReadonlyBehaviorEvent(this.#status); + } +} +const hasError = (source) => { + return (source.GetMessagesQuery.type === error$2 || + source.GetRoomConnectionsQuery.type === error$2 || + source.GetRoomQuery.type === error$2 || + source.RoomEventSubscription.type === error$2); +}; +class GraphQLClientWithStatus { + source; + roomId; + #e = new GraphQLStatusEventEmitter(); + #readonlyStatus = this.#e.toReadonlyBehaviorEvent(); + #roomEventSubscription; + constructor(source, roomId) { + this.source = source; + this.roomId = roomId; + this.#roomEventSubscription = this.source.roomEventSubscription({ id: roomId }).pipe(rxjs.catchError(e => { + this.#e.next(prevValue => ({ + ...prevValue, + RoomEventSubscription: { + type: error$2, + error: { type: 'observableError', value: e }, + }, + })); + return rxjs.EMPTY; + }), rxjs.mergeMap(e => { + if (e.isError) { + this.#e.next(prevValue => ({ + ...prevValue, + RoomEventSubscription: { + type: error$2, + error: { type: resultError, value: e.error }, + }, + })); + return rxjs.EMPTY; + } + return rxjs.of(e.value); + }), rxjs.shareReplay({ windowTime: 10_000, refCount: true })); + } + // ブラウザなどで Promise uncaught エラーが出ないようにすべて catch している。 + #catchPromiseError(source, name) { + return source + .then(result$1 => { + if (result$1.isError) { + const promiseError = { + type: resultError, + value: result$1.error, + }; + this.#e.next(oldValue => { + const newValue = { ...oldValue }; + newValue[name] = { + type: error$2, + error: promiseError, + }; + return newValue; + }); + return result.Result.error(promiseError); + } + return result.Result.ok(result$1.value); + }) + .catch(e => { + const promiseError = { + type: 'promiseError', + value: e, + }; + this.#e.next(oldValue => { + const newValue = { ...oldValue }; + newValue[name] = { + type: error$2, + error: promiseError, + }; + return newValue; + }); + return result.Result.error(promiseError); + }); + } + getMessagesQuery() { + return this.#catchPromiseError(this.source.getMessagesQuery({ roomId: this.roomId }), GetMessagesQuery); + } + getRoomConnectionsQuery() { + return this.#catchPromiseError(this.source.getRoomConnectionsQuery({ roomId: this.roomId }), GetRoomConnectionsQuery); + } + getRoomQuery() { + return this.#catchPromiseError(this.source.getRoomQuery({ id: this.roomId }), GetRoomQuery); + } + operateMutation(variables) { + return this.source.operateMutation({ ...variables, id: this.roomId }); + } + get roomEventSubscription() { + return this.#roomEventSubscription; + } + updateWritingMessagesStatusMutation(variables) { + return this.source.updateWritingMessagesStatusMutation({ + ...variables, + roomId: this.roomId, + }); + } + get status() { + return this.#readonlyStatus; + } +} + +class RoomConnectionsManager { + #map = new Map(); + #event = new BehaviorEvent({ current: this.#map, diff: null }); + #invokeNext(diff) { + this.#event.next({ current: new Map(this.#map), diff }); + } + connect({ userUid, updatedAt }) { + const value = this.#map.get(userUid); + if (value == null || value.updatedAt < updatedAt) { + this.#map.set(userUid, { isConnected: true, updatedAt: new Date(updatedAt) }); + this.#invokeNext({ type: 'connect', userUid }); + return; + } + } + disconnect({ userUid, updatedAt }) { + const value = this.#map.get(userUid); + if (value == null || value.updatedAt < updatedAt) { + this.#map.set(userUid, { isConnected: false, updatedAt: new Date(updatedAt) }); + this.#invokeNext({ type: 'disconnect', userUid }); + return; + } + } + onQuery({ connectedUserUids, fetchedAt, }) { + connectedUserUids.forEach(userUid => { + const value = this.#map.get(userUid); + if (value == null || value.updatedAt < fetchedAt) { + this.#map.set(userUid, { updatedAt: fetchedAt, isConnected: true }); + } + }); + this.#invokeNext(null); + } + toReadonlyBehaviorEvent() { + return new ReadonlyBehaviorEvent(this.#event); + } +} +const subscribeRoomConnections = ({ client, subscription, }) => { + const manager = new RoomConnectionsManager(); + const subscriptionSubscription = subscription.subscribe({ + next: status => { + const e = status.roomConnectionEvent; + if (e == null) { + return; + } + if (e.isConnected) { + manager.connect({ userUid: e.userUid, updatedAt: new Date(e.updatedAt) }); + return; + } + manager.disconnect({ userUid: e.userUid, updatedAt: new Date(e.updatedAt) }); + return; + }, + }); + const executeQuery = () => { + void client.getRoomConnectionsQuery().then(r => { + const result = r.value?.result; + if (result?.__typename !== 'GetRoomConnectionsSuccessResult') { + return; + } + manager.onQuery({ + connectedUserUids: result.connectedUserUids, + fetchedAt: new Date(result.fetchedAt), + }); + }); + }; + return { + value: manager.toReadonlyBehaviorEvent(), + // RoomState が joined になってから Query を実行させたいので、executeQuery が実行されるまで Query は実行されないようにしている。 + executeQuery, + unsubscribe: () => { + subscriptionSubscription.unsubscribe(); + }, + }; +}; + +const success = 'success'; +const fetching$1 = 'fetching'; +const error$1 = 'error'; +const createRoomMessagesClient = ({ client, roomEventSubscription, }) => { + const roomMessagesClient = new webServerUtils.RoomMessagesClient(); + const writableQueryStatus = new BehaviorEvent({ + type: fetching$1, + }); + const executeQuery = () => { + const setQueryStatus = (newValue) => { + if (writableQueryStatus.getValue().type === error$1) { + return; + } + writableQueryStatus.next(newValue); + }; + void client.getMessagesQuery().then(result => { + if (result.isError) { + setQueryStatus({ + type: error$1, + error: { type: 'GraphQLError', error: result.error }, + }); + return; + } + if (result.value.result.__typename !== 'RoomMessages') { + setQueryStatus({ + type: error$1, + error: { + type: 'GetRoomMessagesFailureResult', + failureType: result.value.result.failureType, + }, + }); + return; + } + roomMessagesClient.onQuery(result.value.result); + setQueryStatus({ type: success }); + }); + }; + const subscriptionSubscription = roomEventSubscription.subscribe({ + next: roomMessageEvent => { + roomMessagesClient.onEvent(roomMessageEvent); + }, + }); + let isUnsubscribed = false; + return { + value: { + messages: roomMessagesClient.messages, + queryStatus: new ReadonlyBehaviorEvent(writableQueryStatus), + addCustomMessage: (message) => roomMessagesClient.addCustomMessage(message), + }, + // RoomState が joined になってから Query を実行させたいので、executeQuery が実行されるまで Query は実行されないようにしている。 + executeQuery, + unsubscribe: () => { + subscriptionSubscription.unsubscribe(); + isUnsubscribed = true; + }, + isUnsubscribed, + }; +}; + +class StateGetter { + /** + * クライアントから見た、API サーバーにおける最新の State。 + * + * ただし、通信のラグなどの影響で、実際の最新の状態より少し古い可能性があります。 + */ + syncedState; + _diff; + // this._syncedStateにthis._postingState.operationをapplyした結果がstateになる。通常、this._postingState.operationをAPIサーバーに送信して、その応答を待つ形になる。 + // operationは、transformの結果idになることもあり得るので、undefinedも代入可能にしている。 + _postingState; + _uiStateCore = option.Option.none(); + constructor({ syncedState, diff, }) { + this.syncedState = syncedState; + this._diff = diff; + } + /** + * クライアントの画面に表示すべき State。 + */ + get uiState() { + if (this._uiStateCore.isNone) { + return this._postingState?.state ?? this.syncedState; + } + return this._uiStateCore.value; + } + setUiState(value) { + this._uiStateCore = option.Option.some(value); + } + /** `uiState` を `syncedState` の状態に戻します。 */ + clearUiState() { + this._uiStateCore = option.Option.none(); + } + /** API サーバーに Operation の post を開始した時点の State。 */ + get postingState() { + return this._postingState; + } + setPostingState(state, metadata) { + this._postingState = { + state, + operation: this._diff({ prevState: this.syncedState, nextState: state }), + metadata, + }; + } + clearPostingState() { + this._postingState = undefined; + } + /** + * まだpostしていないoperation。 + * + * post中の場合は、post後にクライアント側でたまっているoperationを表します。post中でないときは、単にクライアント側でたまっているoperationを表します。 + */ + getLocalOperation() { + if (this._uiStateCore.isNone) { + return undefined; + } + const result = this._diff({ + prevState: this._postingState?.state ?? this.syncedState, + nextState: this.uiState, + }); + if (result == null) { + this._uiStateCore = option.Option.none(); + } + return result; + } +} + +// StateManagerから、PostUnknownを受け取る機能とreloadを取り除いたもの。 +// ユーザーが行ったOperationを保持する際、composeしていく戦略ではなく、stateをapplyしていき、operationが欲しい場合はdiffをとるという戦略を取っている。理由の1つ目は、Recordで同一キーでremove→addされた場合、upOperationではcomposeできないので困るため。TwoWayOperationならばcomposeしても情報は失われないが、prevValueをミスなく設定する必要が出てくる。理由の2つ目は、useStateEditorではOperationではなくStateをセットしたいため、その際に便利だから。 +class StateManagerCore { + params; + _revision; + _stateGetter; + _pendingGetOperations = new Map(); // keyはrevision。isByMyClient===trueである要素は1個以下になるはず。 + constructor(params) { + this.params = params; + this._revision = params.revision; + this._stateGetter = new StateGetter({ syncedState: params.state, diff: params.diff }); + } + // 現在時刻 - waitingResponseSince の値が数秒程度の場合は正常だが、古すぎる場合は通信に問題が生じた(もしくはコードにバグがある)可能性が高い。 + waitingResponseSince() { + const dates = []; + if (this._stateGetter.postingState !== undefined) { + dates.push(this._stateGetter.postingState.metadata.postedAt); + } + this._pendingGetOperations.forEach(value => dates.push(value.addedAt)); + let result = null; + dates.forEach(date => { + if (result == null) { + result = date; + return; + } + if (result < date) { + result = date; + } + }); + return result; + } + get isPosting() { + return this._stateGetter.postingState !== undefined; + } + get syncedState() { + return this._stateGetter.syncedState; + } + get uiState() { + return this._stateGetter.uiState; + } + get revision() { + return this._revision; + } + setUiState(state) { + this._stateGetter.setUiState(state); + } + tryApplyPendingGetOperations() { + const toApply = this._pendingGetOperations.get(this._revision + 1); + if (toApply === undefined) { + return; + } + this._pendingGetOperations.delete(this._revision + 1); + if (toApply.isByMyClient) { + // see "by my client" page in ./transformation.drawio + const prevSyncedState = this._stateGetter.syncedState; + this._stateGetter.syncedState = this.params.apply({ + state: this._stateGetter.syncedState, + operation: toApply.operation, + }); + const localOperation = this._stateGetter.getLocalOperation(); + if (localOperation === undefined) { + this._stateGetter.clearUiState(); + } + else { + let diff; + if (this._stateGetter.postingState == null) { + diff = undefined; + } + else { + diff = this.params.diff({ + prevState: this._stateGetter.postingState.state, + nextState: this._stateGetter.syncedState, + }); + } + if (diff !== undefined) { + const xform = this.params.transform({ + state: this._stateGetter.postingState?.state ?? prevSyncedState, + first: localOperation, + second: diff, + }); + this._stateGetter.setUiState(this.params.apply({ + state: this._stateGetter.syncedState, + operation: xform.firstPrime, + })); + } + } + this._stateGetter.clearPostingState(); + this._revision++; + this.tryApplyPendingGetOperations(); + return; + } + // see "not by my client" page in ./transformation.drawio + const prevSyncedState = this._stateGetter.syncedState; + const prevLocalOperation = this._stateGetter.getLocalOperation(); + this._stateGetter.syncedState = this.params.apply({ + state: this._stateGetter.syncedState, + operation: toApply.operation, + }); + const { toApplyOperationPrime, nextPostingOperation } = (() => { + if (this._stateGetter.postingState?.operation === undefined) { + return { + toApplyOperationPrime: toApply.operation, + nextPostingOperation: undefined, + }; + } + const xform = this.params.transform({ + state: prevSyncedState, + first: toApply.operation, + second: this._stateGetter.postingState.operation, + }); + return { + toApplyOperationPrime: xform.firstPrime, + nextPostingOperation: xform.secondPrime, + }; + })(); + if (this._stateGetter.postingState !== undefined) { + this._stateGetter.setPostingState(nextPostingOperation == null + ? this._stateGetter.syncedState + : this.params.apply({ + state: this._stateGetter.syncedState, + operation: nextPostingOperation, + }), this._stateGetter.postingState.metadata); + } + const nextLocalOperation = prevLocalOperation === undefined + ? undefined + : this.params.transform({ + state: this._stateGetter.postingState?.state ?? prevSyncedState, + first: toApplyOperationPrime, + second: prevLocalOperation, + }).firstPrime; + if (nextLocalOperation !== undefined) { + this._stateGetter.setUiState(this.params.apply({ + state: this._stateGetter.uiState, + operation: nextLocalOperation, + })); + } + else { + this._stateGetter.clearUiState(); + } + this._revision++; + this.tryApplyPendingGetOperations(); + } + // isByMyClient === true の場合、revisionToで対応関係がわかるため、requestIdは必要ない。 + onGet(operation, revisionTo, isByMyClient) { + if (!Number.isInteger(revisionTo)) { + utils.loggerRef.warn(`${revisionTo} is not an integer. onGet is cancelled.`); + return; + } + if (revisionTo <= this._revision) { + utils.loggerRef.info(`revisionTo of GetOperation is ${revisionTo}, but state revision is already ${this._revision}`); + return; + } + if (this._pendingGetOperations.has(revisionTo)) { + utils.loggerRef.warn(`stateManagerCore.__pendingGetOperations already contains ${revisionTo}`); + } + this._pendingGetOperations.set(revisionTo, { + operation, + isByMyClient, + addedAt: new Date(), + }); + this.tryApplyPendingGetOperations(); + } + post() { + if (this.isPosting) { + throw new Error('cannot execute post when isPosting === true'); + } + const localOperation = this._stateGetter.getLocalOperation(); + if (localOperation === undefined) { + return undefined; + } + const requestId = core.simpleId(); + this._stateGetter.setPostingState(this.uiState, { + postedAt: new Date(), + requestId, + }); + this._stateGetter.clearUiState(); + return { + operationToPost: localOperation, + syncedState: this._stateGetter.syncedState, + revision: this._revision, + requestId, + }; + } + endPostAsId(requestId) { + if (this._stateGetter.postingState === undefined) { + return false; + } + if (this._stateGetter.postingState.metadata.requestId !== requestId) { + return false; + } + const localOperation = this._stateGetter.getLocalOperation(); + if (localOperation === undefined) { + this._stateGetter.clearPostingState(); + this._stateGetter.clearUiState(); + return true; + } + this._stateGetter.clearPostingState(); + return true; + } + cancelPost() { + if (this._stateGetter.postingState == null) { + return false; + } + this._stateGetter.setUiState(this._stateGetter.uiState ?? this._stateGetter.postingState.state); + this._stateGetter.clearPostingState(); + return true; + } +} + +const maxHistoryCount = 20; +class StateManagerHistoryQueue { + _history = []; + add(elem) { + this._history.push(elem); + if (this._history.length > maxHistoryCount) { + this._history.shift(); + } + } + get history() { + return this._history; + } + operateAsState(stateManager, state) { + this.add({ + type: 'operate', + revision: stateManager.revision, + nextState: state, + }); + } + beforePost(stateManager) { + this.add({ + type: 'beforePost', + uiState: stateManager.uiState, + }); + } + beginPost(stateManager, value) { + this.add({ + type: 'posting', + uiState: stateManager.uiState, + value, + }); + } + beforeEndPostAsId(stateManager, requestId) { + this.add({ + type: 'beforeEndPostAsId', + requestId, + uiState: stateManager.uiState, + }); + } + afterEndPostAsId(stateManager) { + this.add({ + type: 'afterEndPostAsId', + uiState: stateManager.uiState, + }); + } + beforeEndPostAsSuccess(stateManager, operation, revisionTo) { + this.add({ + type: 'beforeEndPostAsSuccess', + uiState: stateManager.uiState, + operation, + revisionTo, + }); + } + afterEndPostAsSuccess(stateManager) { + this.add({ + type: 'afterEndPostAsSuccess', + uiState: stateManager.uiState, + }); + } + beforeOtherClientsGet(stateManager, operation, revisionTo) { + this.add({ + type: 'beforeOtherClientsGet', + uiState: stateManager.uiState, + operation, + revisionTo, + }); + } + afterOtherClientsGet(stateManager) { + this.add({ + type: 'afterOtherClientsGet', + uiState: stateManager.uiState, + }); + } + beforeEndPostAsNotSuccess(stateManager) { + this.add({ + type: 'beforeEndPostAsNotSuccess', + uiState: stateManager.uiState, + }); + } + afterEndPostAsNotSuccess(stateManager) { + this.add({ + type: 'afterEndPostAsNotSuccess', + uiState: stateManager.uiState, + }); + } + endPostAsUnknown(stateManager) { + this.add({ + type: 'endPostAsUnknown', + uiState: stateManager.uiState, + }); + } +} + +class StateManager { + args; + core; + _requiresReload = false; + _history; + constructor(args) { + this.args = args; + this.core = new StateManagerCore(args); + this._history = args.enableHistory === true ? new StateManagerHistoryQueue() : undefined; + } + get isPosting() { + if (this.requiresReload) { + return false; + } + return this.core.isPosting; + } + get uiState() { + return this.core.uiState; + } + get revision() { + return this.core.revision; + } + get requiresReload() { + return this._requiresReload; + } + waitingResponseSince() { + if (this.requiresReload) { + return null; + } + return this.core.waitingResponseSince(); + } + onOtherClientsGet(operation, revisionTo) { + if (this.requiresReload) { + throw new Error('this.requiresReload === true'); + } + utils.loggerRef.debug({ operation, revisionTo }, 'StateManager.onOtherClientGet'); + this._history?.beforeOtherClientsGet(this, operation, revisionTo); + this.core.onGet(operation, revisionTo, false); + this._history?.afterOtherClientsGet(this); + } + setUiState(state) { + if (this.requiresReload) { + throw new Error('this.requiresReload === true'); + } + utils.loggerRef.debug({ state }, 'StateManager.setUiState'); + this._history?.operateAsState(this, state); + this.core.setUiState(state); + } + // このメソッドは「setUiStateを使えばよい」と判断して一時削除していたが、Operationを書いて適用させたいという場面が少なくなく、必要なapply関数もStateManager内部で保持しているため復帰させた。 + setUiStateByApply(operation) { + utils.loggerRef.debug({ operation }, 'StateManager.setUiStateByApply'); + const newState = this.args.apply({ state: this.uiState, operation }); + utils.loggerRef.debug({ newState }, 'StateManager.setUiStateByApply'); + this.setUiState(newState); + } + post() { + if (this.requiresReload) { + throw new Error('this.requiresReload === true'); + } + this._history?.beforePost(this); + const toPost = this.core.post(); + utils.loggerRef.debug({ toPost }, 'StateManager.post begin'); + this._history?.beginPost(this, toPost); + if (toPost === undefined) { + utils.loggerRef.debug('StateManager.post is finished because toPost is undefined.'); + return undefined; + } + let isOnPostedExecuted = false; + const onPosted = (onPosted) => { + if (isOnPostedExecuted) { + return; + } + isOnPostedExecuted = true; + switch (onPosted.isSuccess) { + case true: + if (onPosted.isId) { + utils.loggerRef.debug({ onPosted }, 'StateManager.post is completing as id'); + this._history?.beforeEndPostAsId(this, onPosted.requestId); + this.core.endPostAsId(onPosted.requestId); + this._history?.afterEndPostAsId(this); + return; + } + utils.loggerRef.debug({ onPosted }, 'StateManager.post is completing as non-id'); + this._history?.beforeEndPostAsSuccess(this, onPosted.result, onPosted.revisionTo); + this.core.onGet(onPosted.result, onPosted.revisionTo, true); + this._history?.afterEndPostAsSuccess(this); + return; + case false: + utils.loggerRef.debug({ onPosted }, 'StateManager.post is completing as non-success'); + this._history?.beforeEndPostAsNotSuccess(this); + this.core.cancelPost(); + this._history?.afterEndPostAsNotSuccess(this); + return; + case null: + utils.loggerRef.debug({ onPosted }, 'StateManager.post is completing as unknown result'); + this._history?.endPostAsUnknown(this); + this._requiresReload = true; + return; + } + }; + return { ...toPost, onPosted }; + } + reload({ state, revision }) { + this.core = new StateManagerCore({ + ...this.args, + revision: revision, + state, + }); + this._requiresReload = false; + } + // コンストラクタでenableHistoryにtrueを渡したときにのみnon-undefinedとなる + get history() { + return this._history?.history; + } +} + +const createParameters = (state, revision) => { + return { + state, + revision, + apply: params => { + const result = core.apply(core.roomTemplate)(params); + if (result.isError) { + throw core.toOtError(result.error); + } + return result.value; + }, + transform: params => { + const result = core.clientTransform(core.roomTemplate)(params); + if (result.isError) { + throw core.toOtError(result.error); + } + return { + firstPrime: result.value.firstPrime ?? { $v: 2, $r: 1 }, + secondPrime: result.value.secondPrime ?? { $v: 2, $r: 1 }, + }; + }, + diff: params => { + const result = core.diff(core.roomTemplate)(params); + return core.toUpOperation(core.roomTemplate)(result ?? { $v: 2, $r: 1 }); + }, + enableHistory: false, + }; +}; +const create = (state, revision) => { + return new StateManager(createParameters(state, revision)); +}; + +var Room; +(function (Room) { + Room.createState = (source) => { + return core.parseState(source.stateJson); + }; + Room.createGetOperation = (source) => { + return core.parseUpOperation(source.valueJson); + }; + Room.toGraphQLInput = (source, clientId) => { + return { + clientId, + valueJson: core.stringifyUpOperation(source), + }; + }; +})(Room || (Room = {})); + +const fetching = 'fetching'; +const joined = 'joined'; +const nonJoined = 'nonJoined'; +const GetRoomFailure = 'GetRoomFailure'; +const GraphQLError = 'GraphQLError'; +const transformationError = 'transformationError'; +const OperateRoomFailure = 'OperateRoomFailure'; +const deleted = 'deleted'; +const onChangedLocallySampleTime = 3000; +const error = 'error'; +class RoomStateManager { + #stateStream = new BehaviorEvent({ + type: fetching, + }); + #roomStateManager = null; + #mutationError = new BehaviorEvent(null); + #readonlyMutationError = new ReadonlyBehaviorEvent(this.#mutationError); + #unsubscribe; + /** GetRoom query が完了する前に、Subscription で受け取った RoomOperation を保持する Map です。 */ + // キーはrevisionTo + #roomOperationCache = new Map(); + /** `setState` もしくは `setStateByApply` が実行されたときにトリガーされます。 */ + #onStateChangedLocally = new rxjs.Subject(); + constructor({ client, subscription, userUid, clientId, }) { + const onStateChangedSubscription = this.#subscribeOnStateChangedLocally({ + client, + clientId, + }); + const subscriptionSubscription = subscription.subscribe({ + next: event => { + if (event.deleteRoomOperation != null) { + this.#setState({ + type: deleted, + deletedBy: event.deleteRoomOperation.deletedBy, + }); + } + if (event.roomOperation != null) { + const roomOperation = event.roomOperation; + if (this.#roomStateManager == null) { + this.#roomOperationCache.set(roomOperation.revisionTo, roomOperation); + return; + } + if (roomOperation.operatedBy?.userUid === userUid && + roomOperation.operatedBy.clientId === clientId) { + // Roomは、他のクライアントが行った変更はSubscriptionの結果を用い、自分のクライアントが行った変更はMutationの結果を用いている。 + return; + } + const operation = Room.createGetOperation(roomOperation); + this.#roomStateManager.onOtherClientsGet(operation, roomOperation.revisionTo); + this.#onRoomStateManagerUpdate(); + } + }, + complete: () => { + this.#stateStream.complete(); + }, + }); + this.#unsubscribe = () => { + onStateChangedSubscription.unsubscribe(); + subscriptionSubscription.unsubscribe(); + }; + this.#executeGetRoomQuery({ client, userUid, clientId }); + } + #setState(action) { + const prevValue = this.stateStream.getValue(); + switch (prevValue.type) { + case fetching: + case joined: + break; + default: + return; + } + const nextValue = typeof action === 'function' ? action(prevValue) : action; + this.#stateStream.next(nextValue); + } + #onRoomStateManagerUpdate() { + const $stateManager = this.#roomStateManager; + if ($stateManager == null) { + return; + } + this.#setState(oldValue => { + if (oldValue.type !== joined) { + return oldValue; + } + const newState = $stateManager.uiState; + if ($stateManager.requiresReload) { + return { + type: error, + state: newState, + setStateByApply: undefined, + setState: undefined, + error: { + type: transformationError, + }, + }; + } + return { + type: oldValue.type, + state: newState, + setStateByApply: oldValue.setStateByApply, + setState: oldValue.setState, + }; + }); + } + #subscribeOnStateChangedLocally({ client, clientId, }) { + return this.#onStateChangedLocally + .pipe(rxjs.sampleTime(onChangedLocallySampleTime), rxjs.map(() => { + const roomStateManager = this.#roomStateManager; + if (roomStateManager == null) { + return rxjs.EMPTY; + } + if (roomStateManager.isPosting || roomStateManager.requiresReload) { + return rxjs.EMPTY; + } + const toPost = roomStateManager.post(); + if (toPost == null) { + return rxjs.EMPTY; + } + const valueInput = Room.toGraphQLInput(toPost.operationToPost, clientId); + return client + .operateMutation({ + operation: valueInput, + revisionFrom: toPost.revision, + requestId: toPost.requestId, + }) + .then(operationResult => ({ + type: 'then', + operationResult, + toPost, + getRoomState: () => roomStateManager.uiState, + })) + .catch((e) => ({ + type: 'catch', + toPost, + error: e, + })); + }), rxjs.mergeAll()) + .subscribe({ + next: result => { + if (result.type === 'catch') { + this.#mutationError.next({ type: 'promiseError', value: result.error }); + result.toPost.onPosted({ isSuccess: null }); + return; + } + if (result.operationResult.isError) { + this.#mutationError.next({ + type: 'resultError', + value: result.operationResult.error, + }); + result.toPost.onPosted({ isSuccess: null }); + return; + } + const { operationResult, toPost, getRoomState } = result; + if (operationResult.isError) { + // TODO: isSuccess: falseのケースに対応(サーバー側の対応も必要か) + toPost.onPosted({ isSuccess: null }); + return; + } + switch (operationResult.value.result.__typename) { + case 'OperateRoomSuccessResult': + toPost.onPosted({ + isSuccess: true, + isId: false, + revisionTo: operationResult.value.result.operation.revisionTo, + result: Room.createGetOperation(operationResult.value.result.operation), + }); + this.#onRoomStateManagerUpdate(); + break; + case 'OperateRoomIdResult': + toPost.onPosted({ + isSuccess: true, + isId: true, + requestId: operationResult.value.result.requestId, + }); + this.#onRoomStateManagerUpdate(); + break; + case 'OperateRoomNonJoinedResult': + this.#setState({ + type: nonJoined, + state: getRoomState(), + nonJoinedRoom: operationResult.value.result.roomAsListItem, + }); + break; + case 'OperateRoomFailureResult': + this.#setState({ + type: error, + state: getRoomState(), + error: { + type: OperateRoomFailure, + error: operationResult.value.result.failureType, + }, + }); + break; + } + }, + }); + } + #executeGetRoomQuery({ client, userUid, clientId, }) { + void client.getRoomQuery().then(q => { + if (q.isError) { + this.#setState({ + type: error, + error: { type: GraphQLError, name: 'GetRoomQuery', error: q.error }, + }); + return; + } + const result = q.value.result; + switch (result.__typename) { + case 'GetJoinedRoomResult': { + const newRoomStateManager = create(Room.createState(result.room), result.room.revision); + this.#roomOperationCache.forEach((operation, revisionTo) => { + if (operation.operatedBy?.userUid !== userUid || + operation.operatedBy.clientId !== clientId) { + newRoomStateManager.onOtherClientsGet(Room.createGetOperation(operation), revisionTo); + } + }); + this.#roomOperationCache.clear(); // 早めのメモリ解放 + this.#roomStateManager = newRoomStateManager; + const setStateCore = (operation) => { + const $stateManager = this.#roomStateManager; + if ($stateManager == null) { + return; + } + if ($stateManager.requiresReload) { + this.#setState(oldValue => { + if (oldValue.type !== joined) { + return oldValue; + } + return { + type: error, + state: oldValue.state, + setStateByApply: undefined, + setState: undefined, + error: { + type: transformationError, + }, + }; + }); + return; + } + if (operation.type === 'state') { + $stateManager.setUiState(operation.state); + } + else { + $stateManager.setUiStateByApply(operation.operation); + } + this.#onRoomStateManagerUpdate(); + this.#onStateChangedLocally.next(); + }; + if (newRoomStateManager.requiresReload) { + this.#setState({ + type: error, + state: newRoomStateManager.uiState, + error: { + type: transformationError, + }, + }); + } + this.#setState({ + type: joined, + state: newRoomStateManager.uiState, + setStateByApply: operation => setStateCore({ type: 'operation', operation }), + setState: setState => { + if (typeof setState === 'function') { + setStateCore({ + type: 'state', + state: setState(newRoomStateManager.uiState), + }); + return; + } + setStateCore({ type: 'state', state: setState }); + }, + }); + break; + } + case 'GetNonJoinedRoomResult': { + this.#setState({ + type: nonJoined, + state: null, + nonJoinedRoom: result.roomAsListItem, + }); + break; + } + case 'GetRoomFailureResult': { + this.#setState({ + type: error, + error: { + type: GetRoomFailure, + error: result.failureType, + }, + }); + break; + } + } + }); + } + #readonlyStateStream = new ReadonlyBehaviorEvent(this.#stateStream); + get stateStream() { + return this.#readonlyStateStream; + } + get mutationError() { + return this.#readonlyMutationError; + } + #isUnsubscribed = false; + get isUnsubscribed() { + return this.#isUnsubscribed; + } + unsubscribe() { + this.#unsubscribe(); + this.#isUnsubscribed = true; + } +} + +const subscribeWritingMessageStatus = ({ subscription, }) => { + const map = new Map(); + const convertMap = (source) => { + const result = new Map(); + source.forEach((value, key) => { + result.set(key, value.current); + }); + return result; + }; + const result = new BehaviorEvent(convertMap(map)); + const subscriptionSubscription = subscription.subscribe({ + next: status => { + if (status.writingMessageStatus == null) { + return; + } + const prev = map.get(status.writingMessageStatus.userUid)?.current; + map.set(status.writingMessageStatus.userUid, { + prev, + current: status.writingMessageStatus.status, + __elapsed: 0, + }); + result.next(convertMap(map)); + }, + }); + // 4~6秒間ほど変わらなかったら自動削除 + const autoDeleterSubscription = rxjs.interval(2000).subscribe(() => { + [...map].forEach(([key, value]) => { + if (value.__elapsed >= 4000) { + map.delete(key); + return; + } + value.__elapsed += 2000; + }); + result.next(convertMap(map)); + }); + return { + value: new ReadonlyBehaviorEvent(result), + unsubscribe: () => { + subscriptionSubscription.unsubscribe(); + autoDeleterSubscription.unsubscribe(); + }, + }; +}; + +const bufferTimeValue = 1500; +const updateWritingMessageStatus = (client) => { + const subject = new rxjs.Subject(); + const next = (inputType) => { + subject.next(inputType); + }; + const subscription = subject + .pipe(rxjs.bufferTime(bufferTimeValue), rxjs.mergeMap(items => { + const lastElement = items[items.length - 1]; + if (lastElement == null) { + return []; + } + return client.updateWritingMessagesStatusMutation({ newStatus: lastElement }); + })) + .subscribe(); + return { next, unsubscribe: () => subscription.unsubscribe() }; +}; + +const createRoomClient = ({ client: clientSource, roomId, userUid, }) => { + const client = new GraphQLClientWithStatus(clientSource, roomId); + const clientId = core.simpleId(); + const roomStateManager = new RoomStateManager({ + client, + subscription: client.roomEventSubscription.pipe(rxjs.mergeMap(e => (e.roomEvent == null ? [] : [e.roomEvent]))), + clientId, + userUid, + }); + const createMessagesResult = createRoomMessagesClient({ + client, + roomEventSubscription: client.roomEventSubscription.pipe(rxjs.mergeMap(e => e?.roomEvent?.roomMessageEvent == null ? [] : [e.roomEvent.roomMessageEvent])), + }); + const writingMessageStatusResult = subscribeWritingMessageStatus({ + subscription: client.roomEventSubscription.pipe(rxjs.mergeMap(e => (e.roomEvent == null ? [] : [e.roomEvent]))), + }); + const subscribeRoomConnectionsResult = subscribeRoomConnections({ + client, + subscription: client.roomEventSubscription.pipe(rxjs.mergeMap(e => (e.roomEvent == null ? [] : [e.roomEvent]))), + }); + const updateWritingMessageStatusResult = updateWritingMessageStatus(client); + const roomJoinedSubscription = roomStateManager.stateStream + .asObservable() + .pipe(rxjs.filter(x => x.type === 'joined'), rxjs.take(1)) + .subscribe({ + next: () => { + createMessagesResult.executeQuery(); + subscribeRoomConnectionsResult.executeQuery(); + }, + }); + return { + /** メッセージの取得および変更の監視ができます。 */ + messages: createMessagesResult.value, + /** 部屋に参加しているユーザーの接続状況を表します。キーは Firebase Authentication の userUid です。`isConnected` が false であるか、もしくは Map に含まれないユーザーは未接続を表します。 */ + roomConnections: subscribeRoomConnectionsResult.value, + /** メッセージ、接続状況などを除いた部屋のオブジェクト(ボード、キャラなどが含まれます)を取得できます。 */ + roomState: roomStateManager.stateStream, + /** メッセージを書き込み中のユーザー一覧の取得と、自分が書き込み中かどうかを示すステータスの更新を行えます。ステータスの更新は必ず行ってください。 */ + writingMessageStatus: { + /** メッセージを書き込み中のユーザー一覧。 */ + value: writingMessageStatusResult.value, + /** 実行することで、自分が書き込み中かどうかを示すステータスの更新を行えます。短時間で複数回実行された場合は、間引いてから API サーバーに送信されます。 */ + update: (inputType) => updateWritingMessageStatusResult.next(inputType), + }, + /** `client` のいずれかがエラーを送信(`Promise` の場合は reject、`Observable` の場合は error)したかどうかを示します。エラーが送信された場合は再度 `createRoomClient` を実行することを推奨します。 */ + graphQLStatus: client.status, + /** 内部で使用している `Observable` などの subscription を解除します。これを実行した場合、このオブジェクトの他のプロパティに存在する関数やプロパティにアクセスするとエラーが出ることがありますのでアクセスしないでください。 */ + unsubscribe: () => { + roomStateManager.unsubscribe(); + createMessagesResult.unsubscribe(); + writingMessageStatusResult.unsubscribe(); + subscribeRoomConnectionsResult.unsubscribe(); + updateWritingMessageStatusResult.unsubscribe(); + roomJoinedSubscription.unsubscribe(); + }, + }; +}; + +const createTestRoomClientSource = () => { + const roomMessageClient = new webServerUtils.RoomMessagesClient(); + const queryStatus = new BehaviorEvent({ + type: 'fetching', + }); + const roomState = new BehaviorEvent({ type: 'fetching' }); + const graphQLStatus = new GraphQLStatusEventEmitter(); + const roomConnections = new RoomConnectionsManager(); + const writingMessageStatusValue = new BehaviorEvent(new Map()); + return { + roomMessageClient, + queryStatus, + roomState, + clientStatus: graphQLStatus, + roomConnections, + writingMessageStatusValue, + }; +}; +const createTestRoomClient = (callback) => { + const source = createTestRoomClientSource(); + const roomClient = { + messages: { + messages: source.roomMessageClient.messages, + addCustomMessage: notification => source.roomMessageClient.addCustomMessage(notification), + queryStatus: new ReadonlyBehaviorEvent(source.queryStatus), + }, + roomConnections: source.roomConnections.toReadonlyBehaviorEvent(), + roomState: new ReadonlyBehaviorEvent(source.roomState), + writingMessageStatus: { + value: new ReadonlyBehaviorEvent(source.writingMessageStatusValue), + update: inputType => callback.writingMessageStatus && callback.writingMessageStatus(inputType, source), + }, + graphQLStatus: source.clientStatus.toReadonlyBehaviorEvent(), + unsubscribe: () => callback.unsubscribe && callback.unsubscribe(source), + }; + return { + roomClient, + source: { + ...source, + clientStatus: { + next: (update) => source.clientStatus.next(update), + }, + }, + }; +}; + +exports.BehaviorEvent = BehaviorEvent; +exports.ReadonlyBehaviorEvent = ReadonlyBehaviorEvent; +exports.createRoomClient = createRoomClient; +exports.createTestRoomClient = createTestRoomClient; +//# sourceMappingURL=index.js.map diff --git a/packages/sdk/dist/cjs/index.js.map b/packages/sdk/dist/cjs/index.js.map new file mode 100644 index 000000000..0415847b5 --- /dev/null +++ b/packages/sdk/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/rxjs/behaviorEvent.ts","../../../src/internal/rxjs/readonlyBehaviorEvent.ts","../../../src/internal/roomClient/graphqlClient.ts","../../../src/internal/roomClient/roomConnections.ts","../../../src/internal/roomClient/roomMessages.ts","../../../src/internal/stateManager/stateManager/stateGetter.ts","../../../src/internal/stateManager/stateManager/stateManagerCore.ts","../../../src/internal/stateManager/stateManager/stateManagerHistoryQueue.ts","../../../src/internal/stateManager/stateManager/stateManager.ts","../../../src/internal/stateManager/create.ts","../../../src/internal/stateManager/states/room.ts","../../../src/internal/roomClient/roomState.ts","../../../src/internal/roomClient/subscribeWritingMessageStatus.ts","../../../src/internal/roomClient/updateWritingMessageStatus.ts","../../../src/internal/createRoomClient.ts","../../../src/internal/createTestRoomClient.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["BehaviorSubject","fetching","error","catchError","EMPTY","mergeMap","of","shareReplay","result","Result","RoomMessagesClient","Option","loggerRef","simpleId","apply","roomTemplate","toOtError","clientTransform","diff","toUpOperation","parseState","parseUpOperation","stringifyUpOperation","Subject","sampleTime","map","mergeAll","createStateManager","interval","bufferTime","filter","take"],"mappings":"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"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/createRoomClient.d.ts b/packages/sdk/dist/cjs/internal/createRoomClient.d.ts new file mode 100644 index 000000000..d238c88e9 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/createRoomClient.d.ts @@ -0,0 +1,67 @@ +import { WritingMessageStatusInputType } from '@flocon-trpg/typed-document-node'; +import { GraphQLClient } from './roomClient/graphqlClient'; +export declare const createRoomClient: ({ client: clientSource, roomId, userUid, }: { + client: GraphQLClient; + roomId: string; + userUid: string; +}) => { + /** メッセージの取得および変更の監視ができます。 */ + messages: { + messages: import("@flocon-trpg/web-server-utils").AllRoomMessages; + queryStatus: import("..").ReadonlyBehaviorEvent>; + addCustomMessage: (message: Omit, "type">) => void; + }; + /** 部屋に参加しているユーザーの接続状況を表します。キーは Firebase Authentication の userUid です。`isConnected` が false であるか、もしくは Map に含まれないユーザーは未接続を表します。 */ + roomConnections: import("..").ReadonlyBehaviorEvent<{ + current: ReadonlyMap; + diff: import("./roomClient/roomConnections").RoomConnectionStatusDiff | null; + }>; + /** メッセージ、接続状況などを除いた部屋のオブジェクト(ボード、キャラなどが含まれます)を取得できます。 */ + roomState: import("..").ReadonlyBehaviorEvent>; + /** メッセージを書き込み中のユーザー一覧の取得と、自分が書き込み中かどうかを示すステータスの更新を行えます。ステータスの更新は必ず行ってください。 */ + writingMessageStatus: { + /** メッセージを書き込み中のユーザー一覧。 */ + value: import("..").ReadonlyBehaviorEvent>; + /** 実行することで、自分が書き込み中かどうかを示すステータスの更新を行えます。短時間で複数回実行された場合は、間引いてから API サーバーに送信されます。 */ + update: (inputType: WritingMessageStatusInputType) => void; + }; + /** `client` のいずれかがエラーを送信(`Promise` の場合は reject、`Observable` の場合は error)したかどうかを示します。エラーが送信された場合は再度 `createRoomClient` を実行することを推奨します。 */ + graphQLStatus: import("..").ReadonlyBehaviorEvent<{ + RoomEventSubscription: { + type: "ok"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").ObservableError; + }; + GetMessagesQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + GetRoomConnectionsQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + GetRoomQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + } & { + hasError: boolean; + }>; + /** 内部で使用している `Observable` などの subscription を解除します。これを実行した場合、このオブジェクトの他のプロパティに存在する関数やプロパティにアクセスするとエラーが出ることがありますのでアクセスしないでください。 */ + unsubscribe: () => void; +}; +export type RoomClient = ReturnType>; +//# sourceMappingURL=createRoomClient.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/createRoomClient.d.ts.map b/packages/sdk/dist/cjs/internal/createRoomClient.d.ts.map new file mode 100644 index 000000000..2fb092898 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/createRoomClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createRoomClient.d.ts","sourceRoot":"","sources":["../../../src/internal/createRoomClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,EAAE,aAAa,EAA2B,MAAM,4BAA4B,CAAC;AAOpF,eAAO,MAAM,gBAAgB,GAAI,cAAc,QAAQ,aAAa,oDAIjE;IACC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;IAoDO,6BAA6B;;;;;;IAE7B,gIAAgI;;;;;IAEhI,yDAAyD;;IAEzD,8EAA8E;;QAE1E,0BAA0B;;QAE1B,mFAAmF;4BAC/D,6BAA6B;;IAGrD,uIAAuI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEvI,iIAAiI;;CAUxI,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,cAAc,GAAG,GAAG,EAAE,aAAa,GAAG,GAAG,IAAI,UAAU,CAC1E,OAAO,gBAAgB,CAAC,cAAc,EAAE,aAAa,CAAC,CACzD,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/createTestRoomClient.d.ts b/packages/sdk/dist/cjs/internal/createTestRoomClient.d.ts new file mode 100644 index 000000000..e24fdb600 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/createTestRoomClient.d.ts @@ -0,0 +1,99 @@ +import { WritingMessageStatusInputType, WritingMessageStatusType } from '@flocon-trpg/typed-document-node'; +import { RoomMessagesClient } from '@flocon-trpg/web-server-utils'; +import { RoomClient } from './createRoomClient'; +import { GraphQLStatusEventEmitter } from './roomClient/graphqlClient'; +import { RoomConnectionsManager } from './roomClient/roomConnections'; +import { GetMessagesQueryStatus } from './roomClient/roomMessages'; +import { RoomState } from './roomClient/roomState'; +import { BehaviorEvent } from './rxjs/behaviorEvent'; +declare const createTestRoomClientSource: () => { + roomMessageClient: RoomMessagesClient; + queryStatus: BehaviorEvent>; + roomState: BehaviorEvent>; + clientStatus: GraphQLStatusEventEmitter; + roomConnections: RoomConnectionsManager; + writingMessageStatusValue: BehaviorEvent>; +}; +type MockSource = ReturnType>; +export declare const createTestRoomClient: (callback: { + writingMessageStatus?: (inputType: WritingMessageStatusInputType, source: MockSource) => void; + unsubscribe?: (source: MockSource) => void; +}) => { + roomClient: RoomClient; + source: { + clientStatus: { + next: (update: Parameters<(update: (source: { + RoomEventSubscription: { + type: "ok"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").ObservableError; + }; + GetMessagesQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + GetRoomConnectionsQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + GetRoomQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + } & { + hasError: boolean; + }) => { + RoomEventSubscription: { + type: "ok"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").ObservableError; + }; + GetMessagesQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + GetRoomConnectionsQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + GetRoomQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + }) => void>[0]) => void; + }; + roomMessageClient: RoomMessagesClient; + queryStatus: BehaviorEvent>; + roomState: BehaviorEvent>; + roomConnections: RoomConnectionsManager; + writingMessageStatusValue: BehaviorEvent>; + }; +}; +export {}; +//# sourceMappingURL=createTestRoomClient.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/createTestRoomClient.d.ts.map b/packages/sdk/dist/cjs/internal/createTestRoomClient.d.ts.map new file mode 100644 index 000000000..46fdca295 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/createTestRoomClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createTestRoomClient.d.ts","sourceRoot":"","sources":["../../../src/internal/createTestRoomClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,6BAA6B,EAC7B,wBAAwB,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,QAAA,MAAM,0BAA0B,GAAI,cAAc,EAAE,aAAa;;;;;;;CAoBhE,CAAC;AAEF,KAAK,UAAU,CAAC,cAAc,EAAE,aAAa,IAAI,UAAU,CACvD,OAAO,0BAA0B,CAAC,cAAc,EAAE,aAAa,CAAC,CACnE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,EAAE,aAAa,YAAY;IAC1E,oBAAoB,CAAC,EAAE,CACnB,SAAS,EAAE,6BAA6B,EACxC,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,KAChD,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;CAC7E;;;;2BA0B8B,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAiC,CAAC,CAAC,CAAC;;;;;;;;CAK5E,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/roomClient/graphqlClient.d.ts b/packages/sdk/dist/cjs/internal/roomClient/graphqlClient.d.ts new file mode 100644 index 000000000..bae7885cc --- /dev/null +++ b/packages/sdk/dist/cjs/internal/roomClient/graphqlClient.d.ts @@ -0,0 +1,90 @@ +import { GetMessagesQuery, GetMessagesQueryVariables, GetRoomConnectionsQuery, GetRoomConnectionsQueryVariables, GetRoomQuery, GetRoomQueryVariables, OperateMutation, OperateMutationVariables, RoomEventSubscription, RoomEventSubscriptionVariables, RoomOperationInput, UpdateWritingMessageStatusMutation, UpdateWritingMessageStatusMutationVariables, WritingMessageStatusInputType } from '@flocon-trpg/typed-document-node'; +import { Result } from '@kizahasi/result'; +import { Observable } from 'rxjs'; +import { ReadonlyBehaviorEvent } from '../rxjs/readonlyBehaviorEvent'; +/** + * RoomClient で実行される GraphQL のクライアントです。 + * + * urql を使う場合は、`@flocon-trpg/sdk-urql` を利用することで簡単に作成できます。 + * + * urql を使わない場合は、自作する必要があります。エラーは、Promise の reject や Observable の error ではなく、Promise の resolve や Observable の next から Result.error を返すことで、型を any にせずにエラーを渡すことができます。 + */ +export type GraphQLClient = { + getMessagesQuery: (variables: GetMessagesQueryVariables) => Promise>; + getRoomConnectionsQuery: (variables: GetRoomConnectionsQueryVariables) => Promise>; + getRoomQuery: (variables: GetRoomQueryVariables) => Promise>; + operateMutation: (variables: OperateMutationVariables) => Promise>; + roomEventSubscription: (variables: RoomEventSubscriptionVariables) => Observable>; + updateWritingMessagesStatusMutation: (variables: UpdateWritingMessageStatusMutationVariables) => Promise>; +}; +declare const fetching = "fetching"; +declare const success = "success"; +declare const error = "error"; +declare const ok = "ok"; +declare const resultError = "resultError"; +export type PromiseError = { + type: typeof resultError; + value: TGraphQLError; +} | { + type: 'promiseError'; + value: unknown; +}; +export type ObservableError = { + type: typeof resultError; + value: TGraphQLError; +} | { + type: 'observableError'; + value: unknown; +}; +type QueryStatus = { + type: typeof fetching; +} | { + type: typeof success; +} | { + type: typeof error; + error: PromiseError; +}; +type SubscriptionStatus = { + type: typeof ok; +} | { + type: typeof error; + error: ObservableError; +}; +declare const GetMessagesQuery = "GetMessagesQuery"; +declare const GetRoomConnectionsQuery = "GetRoomConnectionsQuery"; +declare const GetRoomQuery = "GetRoomQuery"; +type GraphQLStatusSource = { + [GetMessagesQuery]: QueryStatus; + [GetRoomConnectionsQuery]: QueryStatus; + [GetRoomQuery]: QueryStatus; + RoomEventSubscription: SubscriptionStatus; +}; +type GraphQLStatus = GraphQLStatusSource & { + hasError: boolean; +}; +export declare class GraphQLStatusEventEmitter { + #private; + next(update: (source: GraphQLStatus) => GraphQLStatusSource): void; + toReadonlyBehaviorEvent(): ReadonlyBehaviorEvent>; +} +export declare class GraphQLClientWithStatus { + #private; + private readonly source; + private readonly roomId; + constructor(source: GraphQLClient, roomId: string); + getMessagesQuery(): Promise>>; + getRoomConnectionsQuery(): Promise>>; + getRoomQuery(): Promise>>; + operateMutation(variables: { + revisionFrom: number; + operation: RoomOperationInput; + requestId: string; + }): Promise>; + get roomEventSubscription(): Observable; + updateWritingMessagesStatusMutation(variables: { + newStatus: WritingMessageStatusInputType; + }): Promise>; + get status(): ReadonlyBehaviorEvent>; +} +export {}; +//# sourceMappingURL=graphqlClient.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/roomClient/graphqlClient.d.ts.map b/packages/sdk/dist/cjs/internal/roomClient/graphqlClient.d.ts.map new file mode 100644 index 000000000..4828c7409 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/roomClient/graphqlClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"graphqlClient.d.ts","sourceRoot":"","sources":["../../../../src/internal/roomClient/graphqlClient.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/roomClient/roomConnections.d.ts b/packages/sdk/dist/cjs/internal/roomClient/roomConnections.d.ts new file mode 100644 index 000000000..66dc6a837 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/roomClient/roomConnections.d.ts @@ -0,0 +1,44 @@ +import { RoomEventSubscription } from '@flocon-trpg/typed-document-node'; +import { Observable } from 'rxjs'; +import { ReadonlyBehaviorEvent } from '../rxjs/readonlyBehaviorEvent'; +import { GraphQLClientWithStatus } from './graphqlClient'; +export type RoomConnectionStatus = { + isConnected: boolean; + /** 接続状況が最後に更新された日時です。`value` が true の場合は最後に接続を開始した日時を、false の場合は切断した日時を表します。 */ + updatedAt: Date; +}; +export type RoomConnectionStatusDiff = { + type: 'connect' | 'disconnect'; + userUid: string; +}; +export declare class RoomConnectionsManager { + #private; + connect({ userUid, updatedAt }: { + userUid: string; + updatedAt: Date; + }): void; + disconnect({ userUid, updatedAt }: { + userUid: string; + updatedAt: Date; + }): void; + onQuery({ connectedUserUids, fetchedAt, }: { + connectedUserUids: readonly string[]; + fetchedAt: Date; + }): void; + toReadonlyBehaviorEvent(): ReadonlyBehaviorEvent<{ + current: ReadonlyMap; + diff: RoomConnectionStatusDiff | null; + }>; +} +export declare const subscribeRoomConnections: ({ client, subscription, }: { + client: Pick, "getRoomConnectionsQuery">; + subscription: Observable, "roomConnectionEvent">>; +}) => { + value: ReadonlyBehaviorEvent<{ + current: ReadonlyMap; + diff: RoomConnectionStatusDiff | null; + }>; + executeQuery: () => void; + unsubscribe: () => void; +}; +//# sourceMappingURL=roomConnections.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/roomClient/roomConnections.d.ts.map b/packages/sdk/dist/cjs/internal/roomClient/roomConnections.d.ts.map new file mode 100644 index 000000000..66ffa5c45 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/roomClient/roomConnections.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"roomConnections.d.ts","sourceRoot":"","sources":["../../../../src/internal/roomClient/roomConnections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,MAAM,oBAAoB,GAAG;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,SAAS,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IAAE,IAAI,EAAE,SAAS,GAAG,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3F,qBAAa,sBAAsB;;IAW/B,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE;IASpE,UAAU,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE;IASvE,OAAO,CAAC,EACJ,iBAAiB,EACjB,SAAS,GACZ,EAAE;QACC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;QACrC,SAAS,EAAE,IAAI,CAAC;KACnB;IAUD,uBAAuB;iBA1CV,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC;cAC5C,wBAAwB,GAAG,IAAI;;CA4C5C;AAED,eAAO,MAAM,wBAAwB,8BAGlC;IACC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC,CAAC;IACtE,YAAY,EAAE,UAAU,CACpB,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAC/E,CAAC;CACL;;iBAvDgB,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC;cAC5C,wBAAwB,GAAG,IAAI;;;;CA6F5C,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/roomClient/roomMessages.d.ts b/packages/sdk/dist/cjs/internal/roomClient/roomMessages.d.ts new file mode 100644 index 000000000..0d021455d --- /dev/null +++ b/packages/sdk/dist/cjs/internal/roomClient/roomMessages.d.ts @@ -0,0 +1,36 @@ +import { GetRoomMessagesFailureType, RoomEventSubscription } from '@flocon-trpg/typed-document-node'; +import { Observable } from 'rxjs'; +import { ReadonlyBehaviorEvent } from '../rxjs/readonlyBehaviorEvent'; +import { GraphQLClientWithStatus, PromiseError } from './graphqlClient'; +declare const success = "success"; +declare const fetching = "fetching"; +declare const error = "error"; +export type GetMessagesQueryStatus = { + type: typeof fetching; +} | { + type: typeof success; +} | { + type: typeof error; + error: { + type: 'GraphQLError'; + error: PromiseError; + } | { + type: 'GetRoomMessagesFailureResult'; + failureType: GetRoomMessagesFailureType; + }; +}; +export declare const createRoomMessagesClient: ({ client, roomEventSubscription, }: { + client: Pick, "getMessagesQuery">; + roomEventSubscription: Observable["roomMessageEvent"]>>; +}) => { + value: { + messages: import("@flocon-trpg/web-server-utils").AllRoomMessages; + queryStatus: ReadonlyBehaviorEvent>; + addCustomMessage: (message: Parameters<(message: Omit, "type">) => void>[0]) => void; + }; + executeQuery: () => void; + unsubscribe: () => void; + isUnsubscribed: boolean; +}; +export {}; +//# sourceMappingURL=roomMessages.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/roomClient/roomMessages.d.ts.map b/packages/sdk/dist/cjs/internal/roomClient/roomMessages.d.ts.map new file mode 100644 index 000000000..7deb9e8f3 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/roomClient/roomMessages.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"roomMessages.d.ts","sourceRoot":"","sources":["../../../../src/internal/roomClient/roomMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,0BAA0B,EAC1B,qBAAqB,EACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAExE,QAAA,MAAM,OAAO,YAAY,CAAC;AAC1B,QAAA,MAAM,QAAQ,aAAa,CAAC;AAC5B,QAAA,MAAM,KAAK,UAAU,CAAC;AAEtB,MAAM,MAAM,sBAAsB,CAAC,aAAa,IAC1C;IAAE,IAAI,EAAE,OAAO,QAAQ,CAAA;CAAE,GACzB;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;CACxB,GACD;IACI,IAAI,EAAE,OAAO,KAAK,CAAC;IACnB,KAAK,EACC;QACI,IAAI,EAAE,cAAc,CAAC;QACrB,KAAK,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;KACtC,GACD;QACI,IAAI,EAAE,8BAA8B,CAAC;QACrC,WAAW,EAAE,0BAA0B,CAAC;KAC3C,CAAC;CACX,CAAC;AAER,eAAO,MAAM,wBAAwB,GAAI,cAAc,EAAE,aAAa,sCAGnE;IACC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACzE,qBAAqB,EAAE,UAAU,CAC7B,WAAW,CAAC,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CACnF,CAAC;CACL;;;;oCA+CwB,UAAU,wGAA4C,CAAC,CAAC,CAAC;;;;;CAWjF,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/roomClient/roomState.d.ts b/packages/sdk/dist/cjs/internal/roomClient/roomState.d.ts new file mode 100644 index 000000000..7aba2a60e --- /dev/null +++ b/packages/sdk/dist/cjs/internal/roomClient/roomState.d.ts @@ -0,0 +1,74 @@ +import { State as S, UpOperation as U, roomTemplate } from '@flocon-trpg/core'; +import { GetRoomFailureType, OperateRoomFailureType, RoomEventSubscription } from '@flocon-trpg/typed-document-node'; +import { Observable } from 'rxjs'; +import { ReadonlyBehaviorEvent } from '../rxjs/readonlyBehaviorEvent'; +import { GraphQLClientWithStatus, PromiseError } from './graphqlClient'; +declare const fetching = "fetching"; +declare const joined = "joined"; +declare const nonJoined = "nonJoined"; +declare const GetRoomFailure = "GetRoomFailure"; +declare const GraphQLError = "GraphQLError"; +declare const transformationError = "transformationError"; +declare const OperateRoomFailure = "OperateRoomFailure"; +declare const deleted = "deleted"; +type State = S; +type UpOperation = U; +declare const error = "error"; +export type SetAction = State | ((prevState: State) => State); +type NonJoinedRoom = { + id: string; + name: string; + createdBy: string; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; +}; +export type RoomState = { + type: typeof fetching; +} | { + type: typeof joined; + state: State; + setState: (setState: SetAction) => void; + setStateByApply: (operation: UpOperation) => void; +} | { + type: typeof error; + state: State; + error: { + type: typeof transformationError; + } | { + type: typeof OperateRoomFailure; + error: OperateRoomFailureType; + }; +} | { + type: typeof error; + error: { + type: typeof GetRoomFailure; + error: GetRoomFailureType; + } | { + type: typeof GraphQLError; + name: 'GetRoomQuery'; + error: PromiseError; + }; +} | { + type: typeof nonJoined; + state: State | null; + nonJoinedRoom: NonJoinedRoom; +} | { + type: typeof deleted; + deletedBy: string; +}; +export declare class RoomStateManager { + #private; + constructor({ client, subscription, userUid, clientId, }: { + client: Pick, 'getRoomQuery' | 'operateMutation'>; + subscription: Observable, 'deleteRoomOperation' | 'roomOperation'>>; + userUid: string; + /** 同一ユーザーが複数のブラウザでアクセスしたなどの際に、それらを区別するための文字列です。 */ + clientId: string; + }); + get stateStream(): ReadonlyBehaviorEvent>; + get mutationError(): ReadonlyBehaviorEvent | null>; + get isUnsubscribed(): boolean; + unsubscribe(): void; +} +export {}; +//# sourceMappingURL=roomState.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/roomClient/roomState.d.ts.map b/packages/sdk/dist/cjs/internal/roomClient/roomState.d.ts.map new file mode 100644 index 000000000..093604d72 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/roomClient/roomState.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"roomState.d.ts","sourceRoot":"","sources":["../../../../src/internal/roomClient/roomState.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/roomClient/subscribeWritingMessageStatus.d.ts b/packages/sdk/dist/cjs/internal/roomClient/subscribeWritingMessageStatus.d.ts new file mode 100644 index 000000000..dc9471735 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/roomClient/subscribeWritingMessageStatus.d.ts @@ -0,0 +1,10 @@ +import { RoomEventSubscription, WritingMessageStatusType } from '@flocon-trpg/typed-document-node'; +import { Observable } from 'rxjs'; +import { ReadonlyBehaviorEvent } from '../rxjs/readonlyBehaviorEvent'; +export declare const subscribeWritingMessageStatus: ({ subscription, }: { + subscription: Observable, "writingMessageStatus">>; +}) => { + value: ReadonlyBehaviorEvent>; + unsubscribe: () => void; +}; +//# sourceMappingURL=subscribeWritingMessageStatus.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/roomClient/subscribeWritingMessageStatus.d.ts.map b/packages/sdk/dist/cjs/internal/roomClient/subscribeWritingMessageStatus.d.ts.map new file mode 100644 index 000000000..1ca80908b --- /dev/null +++ b/packages/sdk/dist/cjs/internal/roomClient/subscribeWritingMessageStatus.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeWritingMessageStatus.d.ts","sourceRoot":"","sources":["../../../../src/internal/roomClient/subscribeWritingMessageStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAAE,UAAU,EAAY,MAAM,MAAM,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAQtE,eAAO,MAAM,6BAA6B,sBAEvC;IACC,YAAY,EAAE,UAAU,CACpB,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAChF,CAAC;CACL;;;CA8CA,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/roomClient/updateWritingMessageStatus.d.ts b/packages/sdk/dist/cjs/internal/roomClient/updateWritingMessageStatus.d.ts new file mode 100644 index 000000000..880b7a22e --- /dev/null +++ b/packages/sdk/dist/cjs/internal/roomClient/updateWritingMessageStatus.d.ts @@ -0,0 +1,7 @@ +import { WritingMessageStatusInputType } from '@flocon-trpg/typed-document-node'; +import { GraphQLClientWithStatus } from './graphqlClient'; +export declare const updateWritingMessageStatus: (client: Pick, "updateWritingMessagesStatusMutation">) => { + next: (inputType: WritingMessageStatusInputType) => void; + unsubscribe: () => void; +}; +//# sourceMappingURL=updateWritingMessageStatus.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/roomClient/updateWritingMessageStatus.d.ts.map b/packages/sdk/dist/cjs/internal/roomClient/updateWritingMessageStatus.d.ts.map new file mode 100644 index 000000000..b76f19e3b --- /dev/null +++ b/packages/sdk/dist/cjs/internal/roomClient/updateWritingMessageStatus.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"updateWritingMessageStatus.d.ts","sourceRoot":"","sources":["../../../../src/internal/roomClient/updateWritingMessageStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAI1D,eAAO,MAAM,0BAA0B,GAAI,aAAa,UAC5C,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE,qCAAqC,CAAC;sBAGlE,6BAA6B;;CAgBzD,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/rxjs/behaviorEvent.d.ts b/packages/sdk/dist/cjs/internal/rxjs/behaviorEvent.d.ts new file mode 100644 index 000000000..8f39123f4 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/rxjs/behaviorEvent.d.ts @@ -0,0 +1,14 @@ +import { Observer, Subscription } from 'rxjs'; +/** RxJS の `BehaviorSubject` と似たクラスです。ただし、error が流されないという点で異なります。 */ +export declare class BehaviorEvent { + #private; + constructor(value: T); + next(value: T): void; + complete(): void; + subscribe(observer: Partial, 'error'>>): Subscription; + getValue(): T; + get value(): T; + asObservable(): import("rxjs").Observable; + unsubscribe(): void; +} +//# sourceMappingURL=behaviorEvent.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/rxjs/behaviorEvent.d.ts.map b/packages/sdk/dist/cjs/internal/rxjs/behaviorEvent.d.ts.map new file mode 100644 index 000000000..928fe49bb --- /dev/null +++ b/packages/sdk/dist/cjs/internal/rxjs/behaviorEvent.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"behaviorEvent.d.ts","sourceRoot":"","sources":["../../../../src/internal/rxjs/behaviorEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,QAAQ,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAE/D,oEAAoE;AACpE,qBAAa,aAAa,CAAC,CAAC;;gBAGZ,KAAK,EAAE,CAAC;IAIpB,IAAI,CAAC,KAAK,EAAE,CAAC;IAIb,QAAQ;IAIR,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,YAAY;IAItE,QAAQ;IAIR,IAAI,KAAK,MAER;IAED,YAAY;IAIZ,WAAW;CAGd"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/rxjs/readonlyBehaviorEvent.d.ts b/packages/sdk/dist/cjs/internal/rxjs/readonlyBehaviorEvent.d.ts new file mode 100644 index 000000000..dbc175998 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/rxjs/readonlyBehaviorEvent.d.ts @@ -0,0 +1,22 @@ +import { BehaviorEvent } from './behaviorEvent'; +/** + * 現在の値の取得と、値の変更を監視できるクラスです。 + * + * RxJS の `BehaviorSubject` を read-only にしたものと似たクラスです。ただし、error が流されないという点で異なります。 */ +export declare class ReadonlyBehaviorEvent { + #private; + constructor(source: BehaviorEvent); + /** + * 値の変更を購読します。 + * + * subscribe した瞬間に現在の値が流されます。これは RxJS の `BehaviorSubject` の挙動と合わせるためです。 + */ + subscribe(observer: Parameters['subscribe']>[0]): import("rxjs").Subscription; + getValue(): T; + /** `getValue()` の alias です。 */ + get value(): T; + /** RxJS の `Observable` に変換します。 */ + asObservable(): import("rxjs").Observable; + static of(value: T): ReadonlyBehaviorEvent; +} +//# sourceMappingURL=readonlyBehaviorEvent.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/rxjs/readonlyBehaviorEvent.d.ts.map b/packages/sdk/dist/cjs/internal/rxjs/readonlyBehaviorEvent.d.ts.map new file mode 100644 index 000000000..df4572899 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/rxjs/readonlyBehaviorEvent.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"readonlyBehaviorEvent.d.ts","sourceRoot":"","sources":["../../../../src/internal/rxjs/readonlyBehaviorEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;oFAGoF;AACpF,qBAAa,qBAAqB,CAAC,CAAC;;gBAGpB,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAIpC;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAIhE,QAAQ;IAIR,+BAA+B;IAC/B,IAAI,KAAK,MAER;IAED,kCAAkC;IAClC,YAAY;IAIZ,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;CAKxB"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/create.d.ts b/packages/sdk/dist/cjs/internal/stateManager/create.d.ts new file mode 100644 index 000000000..0bd169be6 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/create.d.ts @@ -0,0 +1,7 @@ +import { State as S, UpOperation as U, roomTemplate } from '@flocon-trpg/core'; +import { StateManager } from './stateManager/stateManager'; +type State = S; +type UpOperation = U; +export declare const create: (state: State, revision: number) => StateManager; +export {}; +//# sourceMappingURL=create.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/create.d.ts.map b/packages/sdk/dist/cjs/internal/stateManager/create.d.ts.map new file mode 100644 index 000000000..a23403780 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/create.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/internal/stateManager/create.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,IAAI,CAAC,EACV,WAAW,IAAI,CAAC,EAIhB,YAAY,EAGf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,KAAK,KAAK,GAAG,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC;AACpC,KAAK,WAAW,GAAG,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC;AAiC1C,eAAO,MAAM,MAAM,UAAW,KAAK,YAAY,MAAM,KAAG,YAAY,CAAC,KAAK,EAAE,WAAW,CAEtF,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateGetter.d.ts b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateGetter.d.ts new file mode 100644 index 000000000..e93dd07a5 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateGetter.d.ts @@ -0,0 +1,40 @@ +import { Diff } from './types'; +type PostingState = { + operation: TOperation | undefined; + state: TState; + metadata: TMetadata; +}; +export declare class StateGetter { + /** + * クライアントから見た、API サーバーにおける最新の State。 + * + * ただし、通信のラグなどの影響で、実際の最新の状態より少し古い可能性があります。 + */ + syncedState: TState; + private _diff; + private _postingState; + private _uiStateCore; + constructor({ syncedState, diff, }: { + syncedState: TState; + diff: Diff; + }); + /** + * クライアントの画面に表示すべき State。 + */ + get uiState(): TState; + setUiState(value: TState): void; + /** `uiState` を `syncedState` の状態に戻します。 */ + clearUiState(): void; + /** API サーバーに Operation の post を開始した時点の State。 */ + get postingState(): Readonly> | undefined; + setPostingState(state: TState, metadata: TMetadata): void; + clearPostingState(): void; + /** + * まだpostしていないoperation。 + * + * post中の場合は、post後にクライアント側でたまっているoperationを表します。post中でないときは、単にクライアント側でたまっているoperationを表します。 + */ + getLocalOperation(): TOperation | undefined; +} +export {}; +//# sourceMappingURL=stateGetter.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateGetter.d.ts.map b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateGetter.d.ts.map new file mode 100644 index 000000000..a70ee3bf0 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateGetter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"stateGetter.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/stateManager/stateGetter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI/B,KAAK,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,IAAI;IAC/C,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,qBAAa,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS;IAClD;;;;OAIG;IACI,WAAW,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,KAAK,CAA2B;IAIxC,OAAO,CAAC,aAAa,CAA0D;IAE/E,OAAO,CAAC,YAAY,CAAiC;gBAElC,EACf,WAAW,EACX,IAAI,GACP,EAAE;QACC,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;KAClC;IAKD;;OAEG;IACH,IAAW,OAAO,IAAI,MAAM,CAK3B;IAEM,UAAU,CAAC,KAAK,EAAE,MAAM;IAI/B,0CAA0C;IACnC,YAAY;IAInB,iDAAiD;IACjD,IAAW,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,GAAG,SAAS,CAE3F;IAEM,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;IAQlD,iBAAiB;IAIxB;;;;OAIG;IACI,iBAAiB,IAAI,UAAU,GAAG,SAAS;CAarD"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManager.d.ts b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManager.d.ts new file mode 100644 index 000000000..2a12ddd84 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManager.d.ts @@ -0,0 +1,86 @@ +import { StateManagerParameters } from './types'; +type OnPosted = { + isSuccess: true; + isId: false; + revisionTo: number; + result: T; +} | { + isSuccess: true; + isId: true; + requestId: string; +} | { + isSuccess: false | null; +}; +export type PostResult = { + operationToPost: TOperation; + syncedState: TState; + revision: number; + requestId: string; + onPosted: (onPosted: OnPosted) => void; +}; +export declare class StateManager { + private readonly args; + private core; + private _requiresReload; + private _history?; + constructor(args: StateManagerParameters); + get isPosting(): boolean; + get uiState(): TState; + get revision(): number; + get requiresReload(): boolean; + waitingResponseSince(): Date | null; + onOtherClientsGet(operation: TOperation, revisionTo: number): void; + setUiState(state: TState): void; + setUiStateByApply(operation: TOperation): void; + post(): PostResult | undefined; + reload({ state, revision }: { + state: TState; + revision: number; + }): void; + get history(): readonly ({ + type: "operate"; + revision: number; + nextState: TState; + } | { + type: "beforePost"; + uiState: TState; + } | { + type: "posting"; + uiState: TState; + value: Omit, "onPosted"> | undefined; + } | { + type: "beforeEndPostAsSuccess"; + operation: TOperation; + uiState: TState; + revisionTo: number; + } | { + type: "afterEndPostAsSuccess"; + uiState: TState; + } | { + type: "beforeEndPostAsId"; + requestId: string; + uiState: TState; + } | { + type: "afterEndPostAsId"; + uiState: TState; + } | { + type: "beforeEndPostAsNotSuccess"; + uiState: TState; + } | { + type: "afterEndPostAsNotSuccess"; + uiState: TState; + } | { + type: "endPostAsUnknown"; + uiState: TState; + } | { + type: "beforeOtherClientsGet"; + uiState: TState; + operation: TOperation; + revisionTo: number; + } | { + type: "afterOtherClientsGet"; + uiState: TState; + })[] | undefined; +} +export {}; +//# sourceMappingURL=stateManager.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManager.d.ts.map b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManager.d.ts.map new file mode 100644 index 000000000..42831071e --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManager.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"stateManager.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/stateManager/stateManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,KAAK,QAAQ,CAAC,CAAC,IACT;IACI,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,CAAC,CAAC;CACb,GACD;IACI,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACrB,GACD;IACI,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;CAC3B,CAAC;AAER,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,UAAU,IAAI;IACzC,eAAe,EAAE,UAAU,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,qBAAa,YAAY,CAAC,MAAM,EAAE,UAAU;IAKrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJxC,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,CAA+C;gBAE5B,IAAI,EAAE,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC;IAKpF,IAAW,SAAS,IAAI,OAAO,CAK9B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,cAAc,IAAI,OAAO,CAEnC;IAEM,oBAAoB,IAAI,IAAI,GAAG,IAAI;IAOnC,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAWlE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAW/B,iBAAiB,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAO9C,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,SAAS;IAwDlD,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAU7E,IAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAEjB;CACJ"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerCore.d.ts b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerCore.d.ts new file mode 100644 index 000000000..e17a89146 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerCore.d.ts @@ -0,0 +1,25 @@ +import { StateManagerParameters } from './types'; +export declare class StateManagerCore { + private readonly params; + private _revision; + private _stateGetter; + private readonly _pendingGetOperations; + constructor(params: StateManagerParameters); + waitingResponseSince(): Date | null; + get isPosting(): boolean; + get syncedState(): TState; + get uiState(): TState; + get revision(): number; + setUiState(state: TState): void; + private tryApplyPendingGetOperations; + onGet(operation: TOperation, revisionTo: number, isByMyClient: boolean): void; + post(): { + operationToPost: TOperation; + syncedState: TState; + revision: number; + requestId: string; + } | undefined; + endPostAsId(requestId: string): boolean; + cancelPost(): boolean; +} +//# sourceMappingURL=stateManagerCore.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerCore.d.ts.map b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerCore.d.ts.map new file mode 100644 index 000000000..ca0fa7aa5 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerCore.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"stateManagerCore.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/stateManager/stateManagerCore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AASjD,qBAAa,gBAAgB,CAAC,MAAM,EAAE,UAAU;IAUzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAT1C,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,YAAY,CAA4C;IAEhE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAGlC;gBAEgC,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC;IAM/E,oBAAoB,IAAI,IAAI,GAAG,IAAI;IAmB1C,IAAW,SAAS,YAEnB;IAED,IAAW,WAAW,WAErB;IAED,IAAW,OAAO,WAEjB;IAED,IAAW,QAAQ,WAElB;IAEM,UAAU,CAAC,KAAK,EAAE,MAAM;IAI/B,OAAO,CAAC,4BAA4B;IA6G7B,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO;IAwBtE,IAAI,IACL;QAAE,eAAe,EAAE,UAAU,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GACzF,SAAS;IAsBR,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAiBvC,UAAU,IAAI,OAAO;CAU/B"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts new file mode 100644 index 000000000..abccecd39 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts @@ -0,0 +1,64 @@ +import { PostResult, StateManager } from './stateManager'; +type HistoryElement = { + type: 'operate'; + revision: number; + nextState: TState; +} | { + type: 'beforePost'; + uiState: TState; +} | { + type: 'posting'; + uiState: TState; + value: Omit, 'onPosted'> | undefined; +} | { + type: 'beforeEndPostAsSuccess'; + operation: TOperation; + uiState: TState; + revisionTo: number; +} | { + type: 'afterEndPostAsSuccess'; + uiState: TState; +} | { + type: 'beforeEndPostAsId'; + requestId: string; + uiState: TState; +} | { + type: 'afterEndPostAsId'; + uiState: TState; +} | { + type: 'beforeEndPostAsNotSuccess'; + uiState: TState; +} | { + type: 'afterEndPostAsNotSuccess'; + uiState: TState; +} | { + type: 'endPostAsUnknown'; + uiState: TState; +} | { + type: 'beforeOtherClientsGet'; + uiState: TState; + operation: TOperation; + revisionTo: number; +} | { + type: 'afterOtherClientsGet'; + uiState: TState; +}; +export declare class StateManagerHistoryQueue { + private _history; + private add; + get history(): ReadonlyArray>; + operateAsState(stateManager: StateManager, state: TState): void; + beforePost(stateManager: StateManager): void; + beginPost(stateManager: StateManager, value: Omit, 'onPosted'> | undefined): void; + beforeEndPostAsId(stateManager: StateManager, requestId: string): void; + afterEndPostAsId(stateManager: StateManager): void; + beforeEndPostAsSuccess(stateManager: StateManager, operation: TOperation, revisionTo: number): void; + afterEndPostAsSuccess(stateManager: StateManager): void; + beforeOtherClientsGet(stateManager: StateManager, operation: TOperation, revisionTo: number): void; + afterOtherClientsGet(stateManager: StateManager): void; + beforeEndPostAsNotSuccess(stateManager: StateManager): void; + afterEndPostAsNotSuccess(stateManager: StateManager): void; + endPostAsUnknown(stateManager: StateManager): void; +} +export {}; +//# sourceMappingURL=stateManagerHistoryQueue.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts.map b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts.map new file mode 100644 index 000000000..5eb0dbff0 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"stateManagerHistoryQueue.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/stateManager/stateManagerHistoryQueue.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/stateManager/types.d.ts b/packages/sdk/dist/cjs/internal/stateManager/stateManager/types.d.ts new file mode 100644 index 000000000..f0086f61d --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/stateManager/types.d.ts @@ -0,0 +1,30 @@ +export type Apply = (params: { + state: TState; + operation: TOperation; +}) => TState; +export type Compose = (params: { + state: TState; + first: TOperation; + second: TOperation; +}) => TOperation; +export type Transform = (params: { + state: TState; + first: TFirstOperation; + second: TSecondOperation; +}) => { + firstPrime: TFirstOperation; + secondPrime: TSecondOperation; +}; +export type Diff = (params: { + prevState: TState; + nextState: TState; +}) => TOperation | undefined; +export type StateManagerParameters = { + revision: number; + state: TState; + apply: Apply; + transform: Transform; + diff: Diff; + enableHistory?: boolean; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/stateManager/types.d.ts.map b/packages/sdk/dist/cjs/internal/stateManager/stateManager/types.d.ts.map new file mode 100644 index 000000000..84640796d --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/stateManager/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/stateManager/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,CAAC;CACzB,KAAK,MAAM,CAAC;AAEb,MAAM,MAAM,OAAO,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;CACtB,KAAK,UAAU,CAAC;AAEjB,MAAM,MAAM,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,gBAAgB,IAAI,CAAC,MAAM,EAAE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;CAC5B,KAAK;IAAE,UAAU,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB,KAAK,UAAU,GAAG,SAAS,CAAC;AAE7B,MAAM,MAAM,sBAAsB,CAAC,MAAM,EAAE,UAAU,IAAI;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAG/B,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/states/room.d.ts b/packages/sdk/dist/cjs/internal/stateManager/states/room.d.ts new file mode 100644 index 000000000..880efc63b --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/states/room.d.ts @@ -0,0 +1,11 @@ +import { State as S, UpOperation as U, roomTemplate } from '@flocon-trpg/core'; +import { RoomGetStateFragment, RoomOperationFragment, RoomOperationInput } from '@flocon-trpg/typed-document-node'; +type State = S; +type UpOperation = U; +export declare namespace Room { + const createState: (source: RoomGetStateFragment) => State; + const createGetOperation: (source: RoomOperationFragment) => UpOperation; + const toGraphQLInput: (source: UpOperation, clientId: string) => RoomOperationInput; +} +export {}; +//# sourceMappingURL=room.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/states/room.d.ts.map b/packages/sdk/dist/cjs/internal/stateManager/states/room.d.ts.map new file mode 100644 index 000000000..3654b1692 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/states/room.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/states/room.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,IAAI,CAAC,EACV,WAAW,IAAI,CAAC,EAGhB,YAAY,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EACrB,MAAM,kCAAkC,CAAC;AAE1C,KAAK,KAAK,GAAG,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC;AACpC,KAAK,WAAW,GAAG,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC;AAE1C,yBAAiB,IAAI,CAAC;IACX,MAAM,WAAW,WAAY,oBAAoB,KAAG,KAE1D,CAAC;IAEK,MAAM,kBAAkB,WAAY,qBAAqB,KAAG,WAElE,CAAC;IAEK,MAAM,cAAc,WAAY,WAAW,YAAY,MAAM,KAAG,kBAKtE,CAAC;CACL"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/states/types.d.ts b/packages/sdk/dist/cjs/internal/stateManager/states/types.d.ts new file mode 100644 index 000000000..9e5c76019 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/states/types.d.ts @@ -0,0 +1,10 @@ +export declare const replace = "replace"; +export declare const update = "update"; +export type OperationElement = { + type: typeof replace; + newValue: TState | undefined; +} | { + type: typeof update; + operation: TOperation; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/stateManager/states/types.d.ts.map b/packages/sdk/dist/cjs/internal/stateManager/states/types.d.ts.map new file mode 100644 index 000000000..c9b1b5ada --- /dev/null +++ b/packages/sdk/dist/cjs/internal/stateManager/states/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/states/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,IACzC;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;CACzB,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/types.d.ts b/packages/sdk/dist/cjs/internal/types.d.ts new file mode 100644 index 000000000..2324761ce --- /dev/null +++ b/packages/sdk/dist/cjs/internal/types.d.ts @@ -0,0 +1 @@ +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/cjs/internal/types.d.ts.map b/packages/sdk/dist/cjs/internal/types.d.ts.map new file mode 100644 index 000000000..526363083 --- /dev/null +++ b/packages/sdk/dist/cjs/internal/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/internal/types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/sdk/dist/esm/index.d.ts b/packages/sdk/dist/esm/index.d.ts new file mode 100644 index 000000000..22efda90c --- /dev/null +++ b/packages/sdk/dist/esm/index.d.ts @@ -0,0 +1,8 @@ +export { createRoomClient, RoomClient } from './internal/createRoomClient'; +export { GraphQLClient, PromiseError, ObservableError } from './internal/roomClient/graphqlClient'; +export { GetMessagesQueryStatus } from './internal/roomClient/roomMessages'; +export { RoomState } from './internal/roomClient/roomState'; +export { createTestRoomClient } from './internal/createTestRoomClient'; +export { BehaviorEvent } from './internal/rxjs/behaviorEvent'; +export { ReadonlyBehaviorEvent } from './internal/rxjs/readonlyBehaviorEvent'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/index.d.ts.map b/packages/sdk/dist/esm/index.d.ts.map new file mode 100644 index 000000000..4c67c2d03 --- /dev/null +++ b/packages/sdk/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/index.js b/packages/sdk/dist/esm/index.js new file mode 100644 index 000000000..1fd3ba4c4 --- /dev/null +++ b/packages/sdk/dist/esm/index.js @@ -0,0 +1,1340 @@ +import { simpleId, apply, roomTemplate, toOtError, clientTransform, diff, toUpOperation, parseState, parseUpOperation, stringifyUpOperation } from '@flocon-trpg/core'; +import { BehaviorSubject, catchError, EMPTY, mergeMap, of, shareReplay, Subject, sampleTime, map, mergeAll, interval, bufferTime, filter, take } from 'rxjs'; +import { Result } from '@kizahasi/result'; +import { RoomMessagesClient } from '@flocon-trpg/web-server-utils'; +import { loggerRef } from '@flocon-trpg/utils'; +import { Option } from '@kizahasi/option'; + +/** RxJS の `BehaviorSubject` と似たクラスです。ただし、error が流されないという点で異なります。 */ +class BehaviorEvent { + #source; + constructor(value) { + this.#source = new BehaviorSubject(value); + } + next(value) { + this.#source.next(value); + } + complete() { + this.#source.complete(); + } + subscribe(observer) { + return this.#source.subscribe(observer); + } + getValue() { + return this.#source.getValue(); + } + get value() { + return this.#source.value; + } + asObservable() { + return this.#source.asObservable(); + } + unsubscribe() { + return this.#source.unsubscribe(); + } +} + +/** + * 現在の値の取得と、値の変更を監視できるクラスです。 + * + * RxJS の `BehaviorSubject` を read-only にしたものと似たクラスです。ただし、error が流されないという点で異なります。 */ +class ReadonlyBehaviorEvent { + #source; + constructor(source) { + this.#source = source; + } + /** + * 値の変更を購読します。 + * + * subscribe した瞬間に現在の値が流されます。これは RxJS の `BehaviorSubject` の挙動と合わせるためです。 + */ + subscribe(observer) { + return this.#source.subscribe(observer); + } + getValue() { + return this.#source.getValue(); + } + /** `getValue()` の alias です。 */ + get value() { + return this.#source.value; + } + /** RxJS の `Observable` に変換します。 */ + asObservable() { + return this.#source.asObservable(); + } + static of(value) { + const source = new BehaviorEvent(value); + source.complete(); + return new ReadonlyBehaviorEvent(source); + } +} + +const fetching$2 = 'fetching'; +const error$2 = 'error'; +const ok = 'ok'; +const resultError = 'resultError'; +const GetMessagesQuery = 'GetMessagesQuery'; +const GetRoomConnectionsQuery = 'GetRoomConnectionsQuery'; +const GetRoomQuery = 'GetRoomQuery'; +class GraphQLStatusEventEmitter { + #status = new BehaviorEvent({ + GetMessagesQuery: { type: fetching$2 }, + GetRoomConnectionsQuery: { type: fetching$2 }, + GetRoomQuery: { type: fetching$2 }, + RoomEventSubscription: { type: ok }, + hasError: false, + }); + next(update) { + const oldValue = this.#status.getValue(); + const newValue = update(oldValue); + this.#status.next({ ...newValue, hasError: hasError(newValue) }); + } + toReadonlyBehaviorEvent() { + return new ReadonlyBehaviorEvent(this.#status); + } +} +const hasError = (source) => { + return (source.GetMessagesQuery.type === error$2 || + source.GetRoomConnectionsQuery.type === error$2 || + source.GetRoomQuery.type === error$2 || + source.RoomEventSubscription.type === error$2); +}; +class GraphQLClientWithStatus { + source; + roomId; + #e = new GraphQLStatusEventEmitter(); + #readonlyStatus = this.#e.toReadonlyBehaviorEvent(); + #roomEventSubscription; + constructor(source, roomId) { + this.source = source; + this.roomId = roomId; + this.#roomEventSubscription = this.source.roomEventSubscription({ id: roomId }).pipe(catchError(e => { + this.#e.next(prevValue => ({ + ...prevValue, + RoomEventSubscription: { + type: error$2, + error: { type: 'observableError', value: e }, + }, + })); + return EMPTY; + }), mergeMap(e => { + if (e.isError) { + this.#e.next(prevValue => ({ + ...prevValue, + RoomEventSubscription: { + type: error$2, + error: { type: resultError, value: e.error }, + }, + })); + return EMPTY; + } + return of(e.value); + }), shareReplay({ windowTime: 10_000, refCount: true })); + } + // ブラウザなどで Promise uncaught エラーが出ないようにすべて catch している。 + #catchPromiseError(source, name) { + return source + .then(result => { + if (result.isError) { + const promiseError = { + type: resultError, + value: result.error, + }; + this.#e.next(oldValue => { + const newValue = { ...oldValue }; + newValue[name] = { + type: error$2, + error: promiseError, + }; + return newValue; + }); + return Result.error(promiseError); + } + return Result.ok(result.value); + }) + .catch(e => { + const promiseError = { + type: 'promiseError', + value: e, + }; + this.#e.next(oldValue => { + const newValue = { ...oldValue }; + newValue[name] = { + type: error$2, + error: promiseError, + }; + return newValue; + }); + return Result.error(promiseError); + }); + } + getMessagesQuery() { + return this.#catchPromiseError(this.source.getMessagesQuery({ roomId: this.roomId }), GetMessagesQuery); + } + getRoomConnectionsQuery() { + return this.#catchPromiseError(this.source.getRoomConnectionsQuery({ roomId: this.roomId }), GetRoomConnectionsQuery); + } + getRoomQuery() { + return this.#catchPromiseError(this.source.getRoomQuery({ id: this.roomId }), GetRoomQuery); + } + operateMutation(variables) { + return this.source.operateMutation({ ...variables, id: this.roomId }); + } + get roomEventSubscription() { + return this.#roomEventSubscription; + } + updateWritingMessagesStatusMutation(variables) { + return this.source.updateWritingMessagesStatusMutation({ + ...variables, + roomId: this.roomId, + }); + } + get status() { + return this.#readonlyStatus; + } +} + +class RoomConnectionsManager { + #map = new Map(); + #event = new BehaviorEvent({ current: this.#map, diff: null }); + #invokeNext(diff) { + this.#event.next({ current: new Map(this.#map), diff }); + } + connect({ userUid, updatedAt }) { + const value = this.#map.get(userUid); + if (value == null || value.updatedAt < updatedAt) { + this.#map.set(userUid, { isConnected: true, updatedAt: new Date(updatedAt) }); + this.#invokeNext({ type: 'connect', userUid }); + return; + } + } + disconnect({ userUid, updatedAt }) { + const value = this.#map.get(userUid); + if (value == null || value.updatedAt < updatedAt) { + this.#map.set(userUid, { isConnected: false, updatedAt: new Date(updatedAt) }); + this.#invokeNext({ type: 'disconnect', userUid }); + return; + } + } + onQuery({ connectedUserUids, fetchedAt, }) { + connectedUserUids.forEach(userUid => { + const value = this.#map.get(userUid); + if (value == null || value.updatedAt < fetchedAt) { + this.#map.set(userUid, { updatedAt: fetchedAt, isConnected: true }); + } + }); + this.#invokeNext(null); + } + toReadonlyBehaviorEvent() { + return new ReadonlyBehaviorEvent(this.#event); + } +} +const subscribeRoomConnections = ({ client, subscription, }) => { + const manager = new RoomConnectionsManager(); + const subscriptionSubscription = subscription.subscribe({ + next: status => { + const e = status.roomConnectionEvent; + if (e == null) { + return; + } + if (e.isConnected) { + manager.connect({ userUid: e.userUid, updatedAt: new Date(e.updatedAt) }); + return; + } + manager.disconnect({ userUid: e.userUid, updatedAt: new Date(e.updatedAt) }); + return; + }, + }); + const executeQuery = () => { + void client.getRoomConnectionsQuery().then(r => { + const result = r.value?.result; + if (result?.__typename !== 'GetRoomConnectionsSuccessResult') { + return; + } + manager.onQuery({ + connectedUserUids: result.connectedUserUids, + fetchedAt: new Date(result.fetchedAt), + }); + }); + }; + return { + value: manager.toReadonlyBehaviorEvent(), + // RoomState が joined になってから Query を実行させたいので、executeQuery が実行されるまで Query は実行されないようにしている。 + executeQuery, + unsubscribe: () => { + subscriptionSubscription.unsubscribe(); + }, + }; +}; + +const success = 'success'; +const fetching$1 = 'fetching'; +const error$1 = 'error'; +const createRoomMessagesClient = ({ client, roomEventSubscription, }) => { + const roomMessagesClient = new RoomMessagesClient(); + const writableQueryStatus = new BehaviorEvent({ + type: fetching$1, + }); + const executeQuery = () => { + const setQueryStatus = (newValue) => { + if (writableQueryStatus.getValue().type === error$1) { + return; + } + writableQueryStatus.next(newValue); + }; + void client.getMessagesQuery().then(result => { + if (result.isError) { + setQueryStatus({ + type: error$1, + error: { type: 'GraphQLError', error: result.error }, + }); + return; + } + if (result.value.result.__typename !== 'RoomMessages') { + setQueryStatus({ + type: error$1, + error: { + type: 'GetRoomMessagesFailureResult', + failureType: result.value.result.failureType, + }, + }); + return; + } + roomMessagesClient.onQuery(result.value.result); + setQueryStatus({ type: success }); + }); + }; + const subscriptionSubscription = roomEventSubscription.subscribe({ + next: roomMessageEvent => { + roomMessagesClient.onEvent(roomMessageEvent); + }, + }); + let isUnsubscribed = false; + return { + value: { + messages: roomMessagesClient.messages, + queryStatus: new ReadonlyBehaviorEvent(writableQueryStatus), + addCustomMessage: (message) => roomMessagesClient.addCustomMessage(message), + }, + // RoomState が joined になってから Query を実行させたいので、executeQuery が実行されるまで Query は実行されないようにしている。 + executeQuery, + unsubscribe: () => { + subscriptionSubscription.unsubscribe(); + isUnsubscribed = true; + }, + isUnsubscribed, + }; +}; + +class StateGetter { + /** + * クライアントから見た、API サーバーにおける最新の State。 + * + * ただし、通信のラグなどの影響で、実際の最新の状態より少し古い可能性があります。 + */ + syncedState; + _diff; + // this._syncedStateにthis._postingState.operationをapplyした結果がstateになる。通常、this._postingState.operationをAPIサーバーに送信して、その応答を待つ形になる。 + // operationは、transformの結果idになることもあり得るので、undefinedも代入可能にしている。 + _postingState; + _uiStateCore = Option.none(); + constructor({ syncedState, diff, }) { + this.syncedState = syncedState; + this._diff = diff; + } + /** + * クライアントの画面に表示すべき State。 + */ + get uiState() { + if (this._uiStateCore.isNone) { + return this._postingState?.state ?? this.syncedState; + } + return this._uiStateCore.value; + } + setUiState(value) { + this._uiStateCore = Option.some(value); + } + /** `uiState` を `syncedState` の状態に戻します。 */ + clearUiState() { + this._uiStateCore = Option.none(); + } + /** API サーバーに Operation の post を開始した時点の State。 */ + get postingState() { + return this._postingState; + } + setPostingState(state, metadata) { + this._postingState = { + state, + operation: this._diff({ prevState: this.syncedState, nextState: state }), + metadata, + }; + } + clearPostingState() { + this._postingState = undefined; + } + /** + * まだpostしていないoperation。 + * + * post中の場合は、post後にクライアント側でたまっているoperationを表します。post中でないときは、単にクライアント側でたまっているoperationを表します。 + */ + getLocalOperation() { + if (this._uiStateCore.isNone) { + return undefined; + } + const result = this._diff({ + prevState: this._postingState?.state ?? this.syncedState, + nextState: this.uiState, + }); + if (result == null) { + this._uiStateCore = Option.none(); + } + return result; + } +} + +// StateManagerから、PostUnknownを受け取る機能とreloadを取り除いたもの。 +// ユーザーが行ったOperationを保持する際、composeしていく戦略ではなく、stateをapplyしていき、operationが欲しい場合はdiffをとるという戦略を取っている。理由の1つ目は、Recordで同一キーでremove→addされた場合、upOperationではcomposeできないので困るため。TwoWayOperationならばcomposeしても情報は失われないが、prevValueをミスなく設定する必要が出てくる。理由の2つ目は、useStateEditorではOperationではなくStateをセットしたいため、その際に便利だから。 +class StateManagerCore { + params; + _revision; + _stateGetter; + _pendingGetOperations = new Map(); // keyはrevision。isByMyClient===trueである要素は1個以下になるはず。 + constructor(params) { + this.params = params; + this._revision = params.revision; + this._stateGetter = new StateGetter({ syncedState: params.state, diff: params.diff }); + } + // 現在時刻 - waitingResponseSince の値が数秒程度の場合は正常だが、古すぎる場合は通信に問題が生じた(もしくはコードにバグがある)可能性が高い。 + waitingResponseSince() { + const dates = []; + if (this._stateGetter.postingState !== undefined) { + dates.push(this._stateGetter.postingState.metadata.postedAt); + } + this._pendingGetOperations.forEach(value => dates.push(value.addedAt)); + let result = null; + dates.forEach(date => { + if (result == null) { + result = date; + return; + } + if (result < date) { + result = date; + } + }); + return result; + } + get isPosting() { + return this._stateGetter.postingState !== undefined; + } + get syncedState() { + return this._stateGetter.syncedState; + } + get uiState() { + return this._stateGetter.uiState; + } + get revision() { + return this._revision; + } + setUiState(state) { + this._stateGetter.setUiState(state); + } + tryApplyPendingGetOperations() { + const toApply = this._pendingGetOperations.get(this._revision + 1); + if (toApply === undefined) { + return; + } + this._pendingGetOperations.delete(this._revision + 1); + if (toApply.isByMyClient) { + // see "by my client" page in ./transformation.drawio + const prevSyncedState = this._stateGetter.syncedState; + this._stateGetter.syncedState = this.params.apply({ + state: this._stateGetter.syncedState, + operation: toApply.operation, + }); + const localOperation = this._stateGetter.getLocalOperation(); + if (localOperation === undefined) { + this._stateGetter.clearUiState(); + } + else { + let diff; + if (this._stateGetter.postingState == null) { + diff = undefined; + } + else { + diff = this.params.diff({ + prevState: this._stateGetter.postingState.state, + nextState: this._stateGetter.syncedState, + }); + } + if (diff !== undefined) { + const xform = this.params.transform({ + state: this._stateGetter.postingState?.state ?? prevSyncedState, + first: localOperation, + second: diff, + }); + this._stateGetter.setUiState(this.params.apply({ + state: this._stateGetter.syncedState, + operation: xform.firstPrime, + })); + } + } + this._stateGetter.clearPostingState(); + this._revision++; + this.tryApplyPendingGetOperations(); + return; + } + // see "not by my client" page in ./transformation.drawio + const prevSyncedState = this._stateGetter.syncedState; + const prevLocalOperation = this._stateGetter.getLocalOperation(); + this._stateGetter.syncedState = this.params.apply({ + state: this._stateGetter.syncedState, + operation: toApply.operation, + }); + const { toApplyOperationPrime, nextPostingOperation } = (() => { + if (this._stateGetter.postingState?.operation === undefined) { + return { + toApplyOperationPrime: toApply.operation, + nextPostingOperation: undefined, + }; + } + const xform = this.params.transform({ + state: prevSyncedState, + first: toApply.operation, + second: this._stateGetter.postingState.operation, + }); + return { + toApplyOperationPrime: xform.firstPrime, + nextPostingOperation: xform.secondPrime, + }; + })(); + if (this._stateGetter.postingState !== undefined) { + this._stateGetter.setPostingState(nextPostingOperation == null + ? this._stateGetter.syncedState + : this.params.apply({ + state: this._stateGetter.syncedState, + operation: nextPostingOperation, + }), this._stateGetter.postingState.metadata); + } + const nextLocalOperation = prevLocalOperation === undefined + ? undefined + : this.params.transform({ + state: this._stateGetter.postingState?.state ?? prevSyncedState, + first: toApplyOperationPrime, + second: prevLocalOperation, + }).firstPrime; + if (nextLocalOperation !== undefined) { + this._stateGetter.setUiState(this.params.apply({ + state: this._stateGetter.uiState, + operation: nextLocalOperation, + })); + } + else { + this._stateGetter.clearUiState(); + } + this._revision++; + this.tryApplyPendingGetOperations(); + } + // isByMyClient === true の場合、revisionToで対応関係がわかるため、requestIdは必要ない。 + onGet(operation, revisionTo, isByMyClient) { + if (!Number.isInteger(revisionTo)) { + loggerRef.warn(`${revisionTo} is not an integer. onGet is cancelled.`); + return; + } + if (revisionTo <= this._revision) { + loggerRef.info(`revisionTo of GetOperation is ${revisionTo}, but state revision is already ${this._revision}`); + return; + } + if (this._pendingGetOperations.has(revisionTo)) { + loggerRef.warn(`stateManagerCore.__pendingGetOperations already contains ${revisionTo}`); + } + this._pendingGetOperations.set(revisionTo, { + operation, + isByMyClient, + addedAt: new Date(), + }); + this.tryApplyPendingGetOperations(); + } + post() { + if (this.isPosting) { + throw new Error('cannot execute post when isPosting === true'); + } + const localOperation = this._stateGetter.getLocalOperation(); + if (localOperation === undefined) { + return undefined; + } + const requestId = simpleId(); + this._stateGetter.setPostingState(this.uiState, { + postedAt: new Date(), + requestId, + }); + this._stateGetter.clearUiState(); + return { + operationToPost: localOperation, + syncedState: this._stateGetter.syncedState, + revision: this._revision, + requestId, + }; + } + endPostAsId(requestId) { + if (this._stateGetter.postingState === undefined) { + return false; + } + if (this._stateGetter.postingState.metadata.requestId !== requestId) { + return false; + } + const localOperation = this._stateGetter.getLocalOperation(); + if (localOperation === undefined) { + this._stateGetter.clearPostingState(); + this._stateGetter.clearUiState(); + return true; + } + this._stateGetter.clearPostingState(); + return true; + } + cancelPost() { + if (this._stateGetter.postingState == null) { + return false; + } + this._stateGetter.setUiState(this._stateGetter.uiState ?? this._stateGetter.postingState.state); + this._stateGetter.clearPostingState(); + return true; + } +} + +const maxHistoryCount = 20; +class StateManagerHistoryQueue { + _history = []; + add(elem) { + this._history.push(elem); + if (this._history.length > maxHistoryCount) { + this._history.shift(); + } + } + get history() { + return this._history; + } + operateAsState(stateManager, state) { + this.add({ + type: 'operate', + revision: stateManager.revision, + nextState: state, + }); + } + beforePost(stateManager) { + this.add({ + type: 'beforePost', + uiState: stateManager.uiState, + }); + } + beginPost(stateManager, value) { + this.add({ + type: 'posting', + uiState: stateManager.uiState, + value, + }); + } + beforeEndPostAsId(stateManager, requestId) { + this.add({ + type: 'beforeEndPostAsId', + requestId, + uiState: stateManager.uiState, + }); + } + afterEndPostAsId(stateManager) { + this.add({ + type: 'afterEndPostAsId', + uiState: stateManager.uiState, + }); + } + beforeEndPostAsSuccess(stateManager, operation, revisionTo) { + this.add({ + type: 'beforeEndPostAsSuccess', + uiState: stateManager.uiState, + operation, + revisionTo, + }); + } + afterEndPostAsSuccess(stateManager) { + this.add({ + type: 'afterEndPostAsSuccess', + uiState: stateManager.uiState, + }); + } + beforeOtherClientsGet(stateManager, operation, revisionTo) { + this.add({ + type: 'beforeOtherClientsGet', + uiState: stateManager.uiState, + operation, + revisionTo, + }); + } + afterOtherClientsGet(stateManager) { + this.add({ + type: 'afterOtherClientsGet', + uiState: stateManager.uiState, + }); + } + beforeEndPostAsNotSuccess(stateManager) { + this.add({ + type: 'beforeEndPostAsNotSuccess', + uiState: stateManager.uiState, + }); + } + afterEndPostAsNotSuccess(stateManager) { + this.add({ + type: 'afterEndPostAsNotSuccess', + uiState: stateManager.uiState, + }); + } + endPostAsUnknown(stateManager) { + this.add({ + type: 'endPostAsUnknown', + uiState: stateManager.uiState, + }); + } +} + +class StateManager { + args; + core; + _requiresReload = false; + _history; + constructor(args) { + this.args = args; + this.core = new StateManagerCore(args); + this._history = args.enableHistory === true ? new StateManagerHistoryQueue() : undefined; + } + get isPosting() { + if (this.requiresReload) { + return false; + } + return this.core.isPosting; + } + get uiState() { + return this.core.uiState; + } + get revision() { + return this.core.revision; + } + get requiresReload() { + return this._requiresReload; + } + waitingResponseSince() { + if (this.requiresReload) { + return null; + } + return this.core.waitingResponseSince(); + } + onOtherClientsGet(operation, revisionTo) { + if (this.requiresReload) { + throw new Error('this.requiresReload === true'); + } + loggerRef.debug({ operation, revisionTo }, 'StateManager.onOtherClientGet'); + this._history?.beforeOtherClientsGet(this, operation, revisionTo); + this.core.onGet(operation, revisionTo, false); + this._history?.afterOtherClientsGet(this); + } + setUiState(state) { + if (this.requiresReload) { + throw new Error('this.requiresReload === true'); + } + loggerRef.debug({ state }, 'StateManager.setUiState'); + this._history?.operateAsState(this, state); + this.core.setUiState(state); + } + // このメソッドは「setUiStateを使えばよい」と判断して一時削除していたが、Operationを書いて適用させたいという場面が少なくなく、必要なapply関数もStateManager内部で保持しているため復帰させた。 + setUiStateByApply(operation) { + loggerRef.debug({ operation }, 'StateManager.setUiStateByApply'); + const newState = this.args.apply({ state: this.uiState, operation }); + loggerRef.debug({ newState }, 'StateManager.setUiStateByApply'); + this.setUiState(newState); + } + post() { + if (this.requiresReload) { + throw new Error('this.requiresReload === true'); + } + this._history?.beforePost(this); + const toPost = this.core.post(); + loggerRef.debug({ toPost }, 'StateManager.post begin'); + this._history?.beginPost(this, toPost); + if (toPost === undefined) { + loggerRef.debug('StateManager.post is finished because toPost is undefined.'); + return undefined; + } + let isOnPostedExecuted = false; + const onPosted = (onPosted) => { + if (isOnPostedExecuted) { + return; + } + isOnPostedExecuted = true; + switch (onPosted.isSuccess) { + case true: + if (onPosted.isId) { + loggerRef.debug({ onPosted }, 'StateManager.post is completing as id'); + this._history?.beforeEndPostAsId(this, onPosted.requestId); + this.core.endPostAsId(onPosted.requestId); + this._history?.afterEndPostAsId(this); + return; + } + loggerRef.debug({ onPosted }, 'StateManager.post is completing as non-id'); + this._history?.beforeEndPostAsSuccess(this, onPosted.result, onPosted.revisionTo); + this.core.onGet(onPosted.result, onPosted.revisionTo, true); + this._history?.afterEndPostAsSuccess(this); + return; + case false: + loggerRef.debug({ onPosted }, 'StateManager.post is completing as non-success'); + this._history?.beforeEndPostAsNotSuccess(this); + this.core.cancelPost(); + this._history?.afterEndPostAsNotSuccess(this); + return; + case null: + loggerRef.debug({ onPosted }, 'StateManager.post is completing as unknown result'); + this._history?.endPostAsUnknown(this); + this._requiresReload = true; + return; + } + }; + return { ...toPost, onPosted }; + } + reload({ state, revision }) { + this.core = new StateManagerCore({ + ...this.args, + revision: revision, + state, + }); + this._requiresReload = false; + } + // コンストラクタでenableHistoryにtrueを渡したときにのみnon-undefinedとなる + get history() { + return this._history?.history; + } +} + +const createParameters = (state, revision) => { + return { + state, + revision, + apply: params => { + const result = apply(roomTemplate)(params); + if (result.isError) { + throw toOtError(result.error); + } + return result.value; + }, + transform: params => { + const result = clientTransform(roomTemplate)(params); + if (result.isError) { + throw toOtError(result.error); + } + return { + firstPrime: result.value.firstPrime ?? { $v: 2, $r: 1 }, + secondPrime: result.value.secondPrime ?? { $v: 2, $r: 1 }, + }; + }, + diff: params => { + const result = diff(roomTemplate)(params); + return toUpOperation(roomTemplate)(result ?? { $v: 2, $r: 1 }); + }, + enableHistory: false, + }; +}; +const create = (state, revision) => { + return new StateManager(createParameters(state, revision)); +}; + +var Room; +(function (Room) { + Room.createState = (source) => { + return parseState(source.stateJson); + }; + Room.createGetOperation = (source) => { + return parseUpOperation(source.valueJson); + }; + Room.toGraphQLInput = (source, clientId) => { + return { + clientId, + valueJson: stringifyUpOperation(source), + }; + }; +})(Room || (Room = {})); + +const fetching = 'fetching'; +const joined = 'joined'; +const nonJoined = 'nonJoined'; +const GetRoomFailure = 'GetRoomFailure'; +const GraphQLError = 'GraphQLError'; +const transformationError = 'transformationError'; +const OperateRoomFailure = 'OperateRoomFailure'; +const deleted = 'deleted'; +const onChangedLocallySampleTime = 3000; +const error = 'error'; +class RoomStateManager { + #stateStream = new BehaviorEvent({ + type: fetching, + }); + #roomStateManager = null; + #mutationError = new BehaviorEvent(null); + #readonlyMutationError = new ReadonlyBehaviorEvent(this.#mutationError); + #unsubscribe; + /** GetRoom query が完了する前に、Subscription で受け取った RoomOperation を保持する Map です。 */ + // キーはrevisionTo + #roomOperationCache = new Map(); + /** `setState` もしくは `setStateByApply` が実行されたときにトリガーされます。 */ + #onStateChangedLocally = new Subject(); + constructor({ client, subscription, userUid, clientId, }) { + const onStateChangedSubscription = this.#subscribeOnStateChangedLocally({ + client, + clientId, + }); + const subscriptionSubscription = subscription.subscribe({ + next: event => { + if (event.deleteRoomOperation != null) { + this.#setState({ + type: deleted, + deletedBy: event.deleteRoomOperation.deletedBy, + }); + } + if (event.roomOperation != null) { + const roomOperation = event.roomOperation; + if (this.#roomStateManager == null) { + this.#roomOperationCache.set(roomOperation.revisionTo, roomOperation); + return; + } + if (roomOperation.operatedBy?.userUid === userUid && + roomOperation.operatedBy.clientId === clientId) { + // Roomは、他のクライアントが行った変更はSubscriptionの結果を用い、自分のクライアントが行った変更はMutationの結果を用いている。 + return; + } + const operation = Room.createGetOperation(roomOperation); + this.#roomStateManager.onOtherClientsGet(operation, roomOperation.revisionTo); + this.#onRoomStateManagerUpdate(); + } + }, + complete: () => { + this.#stateStream.complete(); + }, + }); + this.#unsubscribe = () => { + onStateChangedSubscription.unsubscribe(); + subscriptionSubscription.unsubscribe(); + }; + this.#executeGetRoomQuery({ client, userUid, clientId }); + } + #setState(action) { + const prevValue = this.stateStream.getValue(); + switch (prevValue.type) { + case fetching: + case joined: + break; + default: + return; + } + const nextValue = typeof action === 'function' ? action(prevValue) : action; + this.#stateStream.next(nextValue); + } + #onRoomStateManagerUpdate() { + const $stateManager = this.#roomStateManager; + if ($stateManager == null) { + return; + } + this.#setState(oldValue => { + if (oldValue.type !== joined) { + return oldValue; + } + const newState = $stateManager.uiState; + if ($stateManager.requiresReload) { + return { + type: error, + state: newState, + setStateByApply: undefined, + setState: undefined, + error: { + type: transformationError, + }, + }; + } + return { + type: oldValue.type, + state: newState, + setStateByApply: oldValue.setStateByApply, + setState: oldValue.setState, + }; + }); + } + #subscribeOnStateChangedLocally({ client, clientId, }) { + return this.#onStateChangedLocally + .pipe(sampleTime(onChangedLocallySampleTime), map(() => { + const roomStateManager = this.#roomStateManager; + if (roomStateManager == null) { + return EMPTY; + } + if (roomStateManager.isPosting || roomStateManager.requiresReload) { + return EMPTY; + } + const toPost = roomStateManager.post(); + if (toPost == null) { + return EMPTY; + } + const valueInput = Room.toGraphQLInput(toPost.operationToPost, clientId); + return client + .operateMutation({ + operation: valueInput, + revisionFrom: toPost.revision, + requestId: toPost.requestId, + }) + .then(operationResult => ({ + type: 'then', + operationResult, + toPost, + getRoomState: () => roomStateManager.uiState, + })) + .catch((e) => ({ + type: 'catch', + toPost, + error: e, + })); + }), mergeAll()) + .subscribe({ + next: result => { + if (result.type === 'catch') { + this.#mutationError.next({ type: 'promiseError', value: result.error }); + result.toPost.onPosted({ isSuccess: null }); + return; + } + if (result.operationResult.isError) { + this.#mutationError.next({ + type: 'resultError', + value: result.operationResult.error, + }); + result.toPost.onPosted({ isSuccess: null }); + return; + } + const { operationResult, toPost, getRoomState } = result; + if (operationResult.isError) { + // TODO: isSuccess: falseのケースに対応(サーバー側の対応も必要か) + toPost.onPosted({ isSuccess: null }); + return; + } + switch (operationResult.value.result.__typename) { + case 'OperateRoomSuccessResult': + toPost.onPosted({ + isSuccess: true, + isId: false, + revisionTo: operationResult.value.result.operation.revisionTo, + result: Room.createGetOperation(operationResult.value.result.operation), + }); + this.#onRoomStateManagerUpdate(); + break; + case 'OperateRoomIdResult': + toPost.onPosted({ + isSuccess: true, + isId: true, + requestId: operationResult.value.result.requestId, + }); + this.#onRoomStateManagerUpdate(); + break; + case 'OperateRoomNonJoinedResult': + this.#setState({ + type: nonJoined, + state: getRoomState(), + nonJoinedRoom: operationResult.value.result.roomAsListItem, + }); + break; + case 'OperateRoomFailureResult': + this.#setState({ + type: error, + state: getRoomState(), + error: { + type: OperateRoomFailure, + error: operationResult.value.result.failureType, + }, + }); + break; + } + }, + }); + } + #executeGetRoomQuery({ client, userUid, clientId, }) { + void client.getRoomQuery().then(q => { + if (q.isError) { + this.#setState({ + type: error, + error: { type: GraphQLError, name: 'GetRoomQuery', error: q.error }, + }); + return; + } + const result = q.value.result; + switch (result.__typename) { + case 'GetJoinedRoomResult': { + const newRoomStateManager = create(Room.createState(result.room), result.room.revision); + this.#roomOperationCache.forEach((operation, revisionTo) => { + if (operation.operatedBy?.userUid !== userUid || + operation.operatedBy.clientId !== clientId) { + newRoomStateManager.onOtherClientsGet(Room.createGetOperation(operation), revisionTo); + } + }); + this.#roomOperationCache.clear(); // 早めのメモリ解放 + this.#roomStateManager = newRoomStateManager; + const setStateCore = (operation) => { + const $stateManager = this.#roomStateManager; + if ($stateManager == null) { + return; + } + if ($stateManager.requiresReload) { + this.#setState(oldValue => { + if (oldValue.type !== joined) { + return oldValue; + } + return { + type: error, + state: oldValue.state, + setStateByApply: undefined, + setState: undefined, + error: { + type: transformationError, + }, + }; + }); + return; + } + if (operation.type === 'state') { + $stateManager.setUiState(operation.state); + } + else { + $stateManager.setUiStateByApply(operation.operation); + } + this.#onRoomStateManagerUpdate(); + this.#onStateChangedLocally.next(); + }; + if (newRoomStateManager.requiresReload) { + this.#setState({ + type: error, + state: newRoomStateManager.uiState, + error: { + type: transformationError, + }, + }); + } + this.#setState({ + type: joined, + state: newRoomStateManager.uiState, + setStateByApply: operation => setStateCore({ type: 'operation', operation }), + setState: setState => { + if (typeof setState === 'function') { + setStateCore({ + type: 'state', + state: setState(newRoomStateManager.uiState), + }); + return; + } + setStateCore({ type: 'state', state: setState }); + }, + }); + break; + } + case 'GetNonJoinedRoomResult': { + this.#setState({ + type: nonJoined, + state: null, + nonJoinedRoom: result.roomAsListItem, + }); + break; + } + case 'GetRoomFailureResult': { + this.#setState({ + type: error, + error: { + type: GetRoomFailure, + error: result.failureType, + }, + }); + break; + } + } + }); + } + #readonlyStateStream = new ReadonlyBehaviorEvent(this.#stateStream); + get stateStream() { + return this.#readonlyStateStream; + } + get mutationError() { + return this.#readonlyMutationError; + } + #isUnsubscribed = false; + get isUnsubscribed() { + return this.#isUnsubscribed; + } + unsubscribe() { + this.#unsubscribe(); + this.#isUnsubscribed = true; + } +} + +const subscribeWritingMessageStatus = ({ subscription, }) => { + const map = new Map(); + const convertMap = (source) => { + const result = new Map(); + source.forEach((value, key) => { + result.set(key, value.current); + }); + return result; + }; + const result = new BehaviorEvent(convertMap(map)); + const subscriptionSubscription = subscription.subscribe({ + next: status => { + if (status.writingMessageStatus == null) { + return; + } + const prev = map.get(status.writingMessageStatus.userUid)?.current; + map.set(status.writingMessageStatus.userUid, { + prev, + current: status.writingMessageStatus.status, + __elapsed: 0, + }); + result.next(convertMap(map)); + }, + }); + // 4~6秒間ほど変わらなかったら自動削除 + const autoDeleterSubscription = interval(2000).subscribe(() => { + [...map].forEach(([key, value]) => { + if (value.__elapsed >= 4000) { + map.delete(key); + return; + } + value.__elapsed += 2000; + }); + result.next(convertMap(map)); + }); + return { + value: new ReadonlyBehaviorEvent(result), + unsubscribe: () => { + subscriptionSubscription.unsubscribe(); + autoDeleterSubscription.unsubscribe(); + }, + }; +}; + +const bufferTimeValue = 1500; +const updateWritingMessageStatus = (client) => { + const subject = new Subject(); + const next = (inputType) => { + subject.next(inputType); + }; + const subscription = subject + .pipe(bufferTime(bufferTimeValue), mergeMap(items => { + const lastElement = items[items.length - 1]; + if (lastElement == null) { + return []; + } + return client.updateWritingMessagesStatusMutation({ newStatus: lastElement }); + })) + .subscribe(); + return { next, unsubscribe: () => subscription.unsubscribe() }; +}; + +const createRoomClient = ({ client: clientSource, roomId, userUid, }) => { + const client = new GraphQLClientWithStatus(clientSource, roomId); + const clientId = simpleId(); + const roomStateManager = new RoomStateManager({ + client, + subscription: client.roomEventSubscription.pipe(mergeMap(e => (e.roomEvent == null ? [] : [e.roomEvent]))), + clientId, + userUid, + }); + const createMessagesResult = createRoomMessagesClient({ + client, + roomEventSubscription: client.roomEventSubscription.pipe(mergeMap(e => e?.roomEvent?.roomMessageEvent == null ? [] : [e.roomEvent.roomMessageEvent])), + }); + const writingMessageStatusResult = subscribeWritingMessageStatus({ + subscription: client.roomEventSubscription.pipe(mergeMap(e => (e.roomEvent == null ? [] : [e.roomEvent]))), + }); + const subscribeRoomConnectionsResult = subscribeRoomConnections({ + client, + subscription: client.roomEventSubscription.pipe(mergeMap(e => (e.roomEvent == null ? [] : [e.roomEvent]))), + }); + const updateWritingMessageStatusResult = updateWritingMessageStatus(client); + const roomJoinedSubscription = roomStateManager.stateStream + .asObservable() + .pipe(filter(x => x.type === 'joined'), take(1)) + .subscribe({ + next: () => { + createMessagesResult.executeQuery(); + subscribeRoomConnectionsResult.executeQuery(); + }, + }); + return { + /** メッセージの取得および変更の監視ができます。 */ + messages: createMessagesResult.value, + /** 部屋に参加しているユーザーの接続状況を表します。キーは Firebase Authentication の userUid です。`isConnected` が false であるか、もしくは Map に含まれないユーザーは未接続を表します。 */ + roomConnections: subscribeRoomConnectionsResult.value, + /** メッセージ、接続状況などを除いた部屋のオブジェクト(ボード、キャラなどが含まれます)を取得できます。 */ + roomState: roomStateManager.stateStream, + /** メッセージを書き込み中のユーザー一覧の取得と、自分が書き込み中かどうかを示すステータスの更新を行えます。ステータスの更新は必ず行ってください。 */ + writingMessageStatus: { + /** メッセージを書き込み中のユーザー一覧。 */ + value: writingMessageStatusResult.value, + /** 実行することで、自分が書き込み中かどうかを示すステータスの更新を行えます。短時間で複数回実行された場合は、間引いてから API サーバーに送信されます。 */ + update: (inputType) => updateWritingMessageStatusResult.next(inputType), + }, + /** `client` のいずれかがエラーを送信(`Promise` の場合は reject、`Observable` の場合は error)したかどうかを示します。エラーが送信された場合は再度 `createRoomClient` を実行することを推奨します。 */ + graphQLStatus: client.status, + /** 内部で使用している `Observable` などの subscription を解除します。これを実行した場合、このオブジェクトの他のプロパティに存在する関数やプロパティにアクセスするとエラーが出ることがありますのでアクセスしないでください。 */ + unsubscribe: () => { + roomStateManager.unsubscribe(); + createMessagesResult.unsubscribe(); + writingMessageStatusResult.unsubscribe(); + subscribeRoomConnectionsResult.unsubscribe(); + updateWritingMessageStatusResult.unsubscribe(); + roomJoinedSubscription.unsubscribe(); + }, + }; +}; + +const createTestRoomClientSource = () => { + const roomMessageClient = new RoomMessagesClient(); + const queryStatus = new BehaviorEvent({ + type: 'fetching', + }); + const roomState = new BehaviorEvent({ type: 'fetching' }); + const graphQLStatus = new GraphQLStatusEventEmitter(); + const roomConnections = new RoomConnectionsManager(); + const writingMessageStatusValue = new BehaviorEvent(new Map()); + return { + roomMessageClient, + queryStatus, + roomState, + clientStatus: graphQLStatus, + roomConnections, + writingMessageStatusValue, + }; +}; +const createTestRoomClient = (callback) => { + const source = createTestRoomClientSource(); + const roomClient = { + messages: { + messages: source.roomMessageClient.messages, + addCustomMessage: notification => source.roomMessageClient.addCustomMessage(notification), + queryStatus: new ReadonlyBehaviorEvent(source.queryStatus), + }, + roomConnections: source.roomConnections.toReadonlyBehaviorEvent(), + roomState: new ReadonlyBehaviorEvent(source.roomState), + writingMessageStatus: { + value: new ReadonlyBehaviorEvent(source.writingMessageStatusValue), + update: inputType => callback.writingMessageStatus && callback.writingMessageStatus(inputType, source), + }, + graphQLStatus: source.clientStatus.toReadonlyBehaviorEvent(), + unsubscribe: () => callback.unsubscribe && callback.unsubscribe(source), + }; + return { + roomClient, + source: { + ...source, + clientStatus: { + next: (update) => source.clientStatus.next(update), + }, + }, + }; +}; + +export { BehaviorEvent, ReadonlyBehaviorEvent, createRoomClient, createTestRoomClient }; +//# sourceMappingURL=index.js.map diff --git a/packages/sdk/dist/esm/index.js.map b/packages/sdk/dist/esm/index.js.map new file mode 100644 index 000000000..123d92655 --- /dev/null +++ b/packages/sdk/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/rxjs/behaviorEvent.ts","../../../src/internal/rxjs/readonlyBehaviorEvent.ts","../../../src/internal/roomClient/graphqlClient.ts","../../../src/internal/roomClient/roomConnections.ts","../../../src/internal/roomClient/roomMessages.ts","../../../src/internal/stateManager/stateManager/stateGetter.ts","../../../src/internal/stateManager/stateManager/stateManagerCore.ts","../../../src/internal/stateManager/stateManager/stateManagerHistoryQueue.ts","../../../src/internal/stateManager/stateManager/stateManager.ts","../../../src/internal/stateManager/create.ts","../../../src/internal/stateManager/states/room.ts","../../../src/internal/roomClient/roomState.ts","../../../src/internal/roomClient/subscribeWritingMessageStatus.ts","../../../src/internal/roomClient/updateWritingMessageStatus.ts","../../../src/internal/createRoomClient.ts","../../../src/internal/createTestRoomClient.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["fetching","error","createStateManager"],"mappings":"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"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/createRoomClient.d.ts b/packages/sdk/dist/esm/internal/createRoomClient.d.ts new file mode 100644 index 000000000..d238c88e9 --- /dev/null +++ b/packages/sdk/dist/esm/internal/createRoomClient.d.ts @@ -0,0 +1,67 @@ +import { WritingMessageStatusInputType } from '@flocon-trpg/typed-document-node'; +import { GraphQLClient } from './roomClient/graphqlClient'; +export declare const createRoomClient: ({ client: clientSource, roomId, userUid, }: { + client: GraphQLClient; + roomId: string; + userUid: string; +}) => { + /** メッセージの取得および変更の監視ができます。 */ + messages: { + messages: import("@flocon-trpg/web-server-utils").AllRoomMessages; + queryStatus: import("..").ReadonlyBehaviorEvent>; + addCustomMessage: (message: Omit, "type">) => void; + }; + /** 部屋に参加しているユーザーの接続状況を表します。キーは Firebase Authentication の userUid です。`isConnected` が false であるか、もしくは Map に含まれないユーザーは未接続を表します。 */ + roomConnections: import("..").ReadonlyBehaviorEvent<{ + current: ReadonlyMap; + diff: import("./roomClient/roomConnections").RoomConnectionStatusDiff | null; + }>; + /** メッセージ、接続状況などを除いた部屋のオブジェクト(ボード、キャラなどが含まれます)を取得できます。 */ + roomState: import("..").ReadonlyBehaviorEvent>; + /** メッセージを書き込み中のユーザー一覧の取得と、自分が書き込み中かどうかを示すステータスの更新を行えます。ステータスの更新は必ず行ってください。 */ + writingMessageStatus: { + /** メッセージを書き込み中のユーザー一覧。 */ + value: import("..").ReadonlyBehaviorEvent>; + /** 実行することで、自分が書き込み中かどうかを示すステータスの更新を行えます。短時間で複数回実行された場合は、間引いてから API サーバーに送信されます。 */ + update: (inputType: WritingMessageStatusInputType) => void; + }; + /** `client` のいずれかがエラーを送信(`Promise` の場合は reject、`Observable` の場合は error)したかどうかを示します。エラーが送信された場合は再度 `createRoomClient` を実行することを推奨します。 */ + graphQLStatus: import("..").ReadonlyBehaviorEvent<{ + RoomEventSubscription: { + type: "ok"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").ObservableError; + }; + GetMessagesQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + GetRoomConnectionsQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + GetRoomQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + } & { + hasError: boolean; + }>; + /** 内部で使用している `Observable` などの subscription を解除します。これを実行した場合、このオブジェクトの他のプロパティに存在する関数やプロパティにアクセスするとエラーが出ることがありますのでアクセスしないでください。 */ + unsubscribe: () => void; +}; +export type RoomClient = ReturnType>; +//# sourceMappingURL=createRoomClient.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/createRoomClient.d.ts.map b/packages/sdk/dist/esm/internal/createRoomClient.d.ts.map new file mode 100644 index 000000000..2fb092898 --- /dev/null +++ b/packages/sdk/dist/esm/internal/createRoomClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createRoomClient.d.ts","sourceRoot":"","sources":["../../../src/internal/createRoomClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,EAAE,aAAa,EAA2B,MAAM,4BAA4B,CAAC;AAOpF,eAAO,MAAM,gBAAgB,GAAI,cAAc,QAAQ,aAAa,oDAIjE;IACC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;IAoDO,6BAA6B;;;;;;IAE7B,gIAAgI;;;;;IAEhI,yDAAyD;;IAEzD,8EAA8E;;QAE1E,0BAA0B;;QAE1B,mFAAmF;4BAC/D,6BAA6B;;IAGrD,uIAAuI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEvI,iIAAiI;;CAUxI,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,cAAc,GAAG,GAAG,EAAE,aAAa,GAAG,GAAG,IAAI,UAAU,CAC1E,OAAO,gBAAgB,CAAC,cAAc,EAAE,aAAa,CAAC,CACzD,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/createTestRoomClient.d.ts b/packages/sdk/dist/esm/internal/createTestRoomClient.d.ts new file mode 100644 index 000000000..e24fdb600 --- /dev/null +++ b/packages/sdk/dist/esm/internal/createTestRoomClient.d.ts @@ -0,0 +1,99 @@ +import { WritingMessageStatusInputType, WritingMessageStatusType } from '@flocon-trpg/typed-document-node'; +import { RoomMessagesClient } from '@flocon-trpg/web-server-utils'; +import { RoomClient } from './createRoomClient'; +import { GraphQLStatusEventEmitter } from './roomClient/graphqlClient'; +import { RoomConnectionsManager } from './roomClient/roomConnections'; +import { GetMessagesQueryStatus } from './roomClient/roomMessages'; +import { RoomState } from './roomClient/roomState'; +import { BehaviorEvent } from './rxjs/behaviorEvent'; +declare const createTestRoomClientSource: () => { + roomMessageClient: RoomMessagesClient; + queryStatus: BehaviorEvent>; + roomState: BehaviorEvent>; + clientStatus: GraphQLStatusEventEmitter; + roomConnections: RoomConnectionsManager; + writingMessageStatusValue: BehaviorEvent>; +}; +type MockSource = ReturnType>; +export declare const createTestRoomClient: (callback: { + writingMessageStatus?: (inputType: WritingMessageStatusInputType, source: MockSource) => void; + unsubscribe?: (source: MockSource) => void; +}) => { + roomClient: RoomClient; + source: { + clientStatus: { + next: (update: Parameters<(update: (source: { + RoomEventSubscription: { + type: "ok"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").ObservableError; + }; + GetMessagesQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + GetRoomConnectionsQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + GetRoomQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + } & { + hasError: boolean; + }) => { + RoomEventSubscription: { + type: "ok"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").ObservableError; + }; + GetMessagesQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + GetRoomConnectionsQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + GetRoomQuery: { + type: "fetching"; + } | { + type: "success"; + } | { + type: "error"; + error: import("./roomClient/graphqlClient").PromiseError; + }; + }) => void>[0]) => void; + }; + roomMessageClient: RoomMessagesClient; + queryStatus: BehaviorEvent>; + roomState: BehaviorEvent>; + roomConnections: RoomConnectionsManager; + writingMessageStatusValue: BehaviorEvent>; + }; +}; +export {}; +//# sourceMappingURL=createTestRoomClient.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/createTestRoomClient.d.ts.map b/packages/sdk/dist/esm/internal/createTestRoomClient.d.ts.map new file mode 100644 index 000000000..46fdca295 --- /dev/null +++ b/packages/sdk/dist/esm/internal/createTestRoomClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createTestRoomClient.d.ts","sourceRoot":"","sources":["../../../src/internal/createTestRoomClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,6BAA6B,EAC7B,wBAAwB,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,QAAA,MAAM,0BAA0B,GAAI,cAAc,EAAE,aAAa;;;;;;;CAoBhE,CAAC;AAEF,KAAK,UAAU,CAAC,cAAc,EAAE,aAAa,IAAI,UAAU,CACvD,OAAO,0BAA0B,CAAC,cAAc,EAAE,aAAa,CAAC,CACnE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,EAAE,aAAa,YAAY;IAC1E,oBAAoB,CAAC,EAAE,CACnB,SAAS,EAAE,6BAA6B,EACxC,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,KAChD,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;CAC7E;;;;2BA0B8B,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAiC,CAAC,CAAC,CAAC;;;;;;;;CAK5E,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/roomClient/graphqlClient.d.ts b/packages/sdk/dist/esm/internal/roomClient/graphqlClient.d.ts new file mode 100644 index 000000000..bae7885cc --- /dev/null +++ b/packages/sdk/dist/esm/internal/roomClient/graphqlClient.d.ts @@ -0,0 +1,90 @@ +import { GetMessagesQuery, GetMessagesQueryVariables, GetRoomConnectionsQuery, GetRoomConnectionsQueryVariables, GetRoomQuery, GetRoomQueryVariables, OperateMutation, OperateMutationVariables, RoomEventSubscription, RoomEventSubscriptionVariables, RoomOperationInput, UpdateWritingMessageStatusMutation, UpdateWritingMessageStatusMutationVariables, WritingMessageStatusInputType } from '@flocon-trpg/typed-document-node'; +import { Result } from '@kizahasi/result'; +import { Observable } from 'rxjs'; +import { ReadonlyBehaviorEvent } from '../rxjs/readonlyBehaviorEvent'; +/** + * RoomClient で実行される GraphQL のクライアントです。 + * + * urql を使う場合は、`@flocon-trpg/sdk-urql` を利用することで簡単に作成できます。 + * + * urql を使わない場合は、自作する必要があります。エラーは、Promise の reject や Observable の error ではなく、Promise の resolve や Observable の next から Result.error を返すことで、型を any にせずにエラーを渡すことができます。 + */ +export type GraphQLClient = { + getMessagesQuery: (variables: GetMessagesQueryVariables) => Promise>; + getRoomConnectionsQuery: (variables: GetRoomConnectionsQueryVariables) => Promise>; + getRoomQuery: (variables: GetRoomQueryVariables) => Promise>; + operateMutation: (variables: OperateMutationVariables) => Promise>; + roomEventSubscription: (variables: RoomEventSubscriptionVariables) => Observable>; + updateWritingMessagesStatusMutation: (variables: UpdateWritingMessageStatusMutationVariables) => Promise>; +}; +declare const fetching = "fetching"; +declare const success = "success"; +declare const error = "error"; +declare const ok = "ok"; +declare const resultError = "resultError"; +export type PromiseError = { + type: typeof resultError; + value: TGraphQLError; +} | { + type: 'promiseError'; + value: unknown; +}; +export type ObservableError = { + type: typeof resultError; + value: TGraphQLError; +} | { + type: 'observableError'; + value: unknown; +}; +type QueryStatus = { + type: typeof fetching; +} | { + type: typeof success; +} | { + type: typeof error; + error: PromiseError; +}; +type SubscriptionStatus = { + type: typeof ok; +} | { + type: typeof error; + error: ObservableError; +}; +declare const GetMessagesQuery = "GetMessagesQuery"; +declare const GetRoomConnectionsQuery = "GetRoomConnectionsQuery"; +declare const GetRoomQuery = "GetRoomQuery"; +type GraphQLStatusSource = { + [GetMessagesQuery]: QueryStatus; + [GetRoomConnectionsQuery]: QueryStatus; + [GetRoomQuery]: QueryStatus; + RoomEventSubscription: SubscriptionStatus; +}; +type GraphQLStatus = GraphQLStatusSource & { + hasError: boolean; +}; +export declare class GraphQLStatusEventEmitter { + #private; + next(update: (source: GraphQLStatus) => GraphQLStatusSource): void; + toReadonlyBehaviorEvent(): ReadonlyBehaviorEvent>; +} +export declare class GraphQLClientWithStatus { + #private; + private readonly source; + private readonly roomId; + constructor(source: GraphQLClient, roomId: string); + getMessagesQuery(): Promise>>; + getRoomConnectionsQuery(): Promise>>; + getRoomQuery(): Promise>>; + operateMutation(variables: { + revisionFrom: number; + operation: RoomOperationInput; + requestId: string; + }): Promise>; + get roomEventSubscription(): Observable; + updateWritingMessagesStatusMutation(variables: { + newStatus: WritingMessageStatusInputType; + }): Promise>; + get status(): ReadonlyBehaviorEvent>; +} +export {}; +//# sourceMappingURL=graphqlClient.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/roomClient/graphqlClient.d.ts.map b/packages/sdk/dist/esm/internal/roomClient/graphqlClient.d.ts.map new file mode 100644 index 000000000..4828c7409 --- /dev/null +++ b/packages/sdk/dist/esm/internal/roomClient/graphqlClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"graphqlClient.d.ts","sourceRoot":"","sources":["../../../../src/internal/roomClient/graphqlClient.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/roomClient/roomConnections.d.ts b/packages/sdk/dist/esm/internal/roomClient/roomConnections.d.ts new file mode 100644 index 000000000..66dc6a837 --- /dev/null +++ b/packages/sdk/dist/esm/internal/roomClient/roomConnections.d.ts @@ -0,0 +1,44 @@ +import { RoomEventSubscription } from '@flocon-trpg/typed-document-node'; +import { Observable } from 'rxjs'; +import { ReadonlyBehaviorEvent } from '../rxjs/readonlyBehaviorEvent'; +import { GraphQLClientWithStatus } from './graphqlClient'; +export type RoomConnectionStatus = { + isConnected: boolean; + /** 接続状況が最後に更新された日時です。`value` が true の場合は最後に接続を開始した日時を、false の場合は切断した日時を表します。 */ + updatedAt: Date; +}; +export type RoomConnectionStatusDiff = { + type: 'connect' | 'disconnect'; + userUid: string; +}; +export declare class RoomConnectionsManager { + #private; + connect({ userUid, updatedAt }: { + userUid: string; + updatedAt: Date; + }): void; + disconnect({ userUid, updatedAt }: { + userUid: string; + updatedAt: Date; + }): void; + onQuery({ connectedUserUids, fetchedAt, }: { + connectedUserUids: readonly string[]; + fetchedAt: Date; + }): void; + toReadonlyBehaviorEvent(): ReadonlyBehaviorEvent<{ + current: ReadonlyMap; + diff: RoomConnectionStatusDiff | null; + }>; +} +export declare const subscribeRoomConnections: ({ client, subscription, }: { + client: Pick, "getRoomConnectionsQuery">; + subscription: Observable, "roomConnectionEvent">>; +}) => { + value: ReadonlyBehaviorEvent<{ + current: ReadonlyMap; + diff: RoomConnectionStatusDiff | null; + }>; + executeQuery: () => void; + unsubscribe: () => void; +}; +//# sourceMappingURL=roomConnections.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/roomClient/roomConnections.d.ts.map b/packages/sdk/dist/esm/internal/roomClient/roomConnections.d.ts.map new file mode 100644 index 000000000..66ffa5c45 --- /dev/null +++ b/packages/sdk/dist/esm/internal/roomClient/roomConnections.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"roomConnections.d.ts","sourceRoot":"","sources":["../../../../src/internal/roomClient/roomConnections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,MAAM,oBAAoB,GAAG;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,SAAS,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IAAE,IAAI,EAAE,SAAS,GAAG,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3F,qBAAa,sBAAsB;;IAW/B,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE;IASpE,UAAU,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE;IASvE,OAAO,CAAC,EACJ,iBAAiB,EACjB,SAAS,GACZ,EAAE;QACC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;QACrC,SAAS,EAAE,IAAI,CAAC;KACnB;IAUD,uBAAuB;iBA1CV,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC;cAC5C,wBAAwB,GAAG,IAAI;;CA4C5C;AAED,eAAO,MAAM,wBAAwB,8BAGlC;IACC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC,CAAC;IACtE,YAAY,EAAE,UAAU,CACpB,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAC/E,CAAC;CACL;;iBAvDgB,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC;cAC5C,wBAAwB,GAAG,IAAI;;;;CA6F5C,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/roomClient/roomMessages.d.ts b/packages/sdk/dist/esm/internal/roomClient/roomMessages.d.ts new file mode 100644 index 000000000..0d021455d --- /dev/null +++ b/packages/sdk/dist/esm/internal/roomClient/roomMessages.d.ts @@ -0,0 +1,36 @@ +import { GetRoomMessagesFailureType, RoomEventSubscription } from '@flocon-trpg/typed-document-node'; +import { Observable } from 'rxjs'; +import { ReadonlyBehaviorEvent } from '../rxjs/readonlyBehaviorEvent'; +import { GraphQLClientWithStatus, PromiseError } from './graphqlClient'; +declare const success = "success"; +declare const fetching = "fetching"; +declare const error = "error"; +export type GetMessagesQueryStatus = { + type: typeof fetching; +} | { + type: typeof success; +} | { + type: typeof error; + error: { + type: 'GraphQLError'; + error: PromiseError; + } | { + type: 'GetRoomMessagesFailureResult'; + failureType: GetRoomMessagesFailureType; + }; +}; +export declare const createRoomMessagesClient: ({ client, roomEventSubscription, }: { + client: Pick, "getMessagesQuery">; + roomEventSubscription: Observable["roomMessageEvent"]>>; +}) => { + value: { + messages: import("@flocon-trpg/web-server-utils").AllRoomMessages; + queryStatus: ReadonlyBehaviorEvent>; + addCustomMessage: (message: Parameters<(message: Omit, "type">) => void>[0]) => void; + }; + executeQuery: () => void; + unsubscribe: () => void; + isUnsubscribed: boolean; +}; +export {}; +//# sourceMappingURL=roomMessages.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/roomClient/roomMessages.d.ts.map b/packages/sdk/dist/esm/internal/roomClient/roomMessages.d.ts.map new file mode 100644 index 000000000..7deb9e8f3 --- /dev/null +++ b/packages/sdk/dist/esm/internal/roomClient/roomMessages.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"roomMessages.d.ts","sourceRoot":"","sources":["../../../../src/internal/roomClient/roomMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,0BAA0B,EAC1B,qBAAqB,EACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAExE,QAAA,MAAM,OAAO,YAAY,CAAC;AAC1B,QAAA,MAAM,QAAQ,aAAa,CAAC;AAC5B,QAAA,MAAM,KAAK,UAAU,CAAC;AAEtB,MAAM,MAAM,sBAAsB,CAAC,aAAa,IAC1C;IAAE,IAAI,EAAE,OAAO,QAAQ,CAAA;CAAE,GACzB;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;CACxB,GACD;IACI,IAAI,EAAE,OAAO,KAAK,CAAC;IACnB,KAAK,EACC;QACI,IAAI,EAAE,cAAc,CAAC;QACrB,KAAK,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;KACtC,GACD;QACI,IAAI,EAAE,8BAA8B,CAAC;QACrC,WAAW,EAAE,0BAA0B,CAAC;KAC3C,CAAC;CACX,CAAC;AAER,eAAO,MAAM,wBAAwB,GAAI,cAAc,EAAE,aAAa,sCAGnE;IACC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACzE,qBAAqB,EAAE,UAAU,CAC7B,WAAW,CAAC,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CACnF,CAAC;CACL;;;;oCA+CwB,UAAU,wGAA4C,CAAC,CAAC,CAAC;;;;;CAWjF,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/roomClient/roomState.d.ts b/packages/sdk/dist/esm/internal/roomClient/roomState.d.ts new file mode 100644 index 000000000..7aba2a60e --- /dev/null +++ b/packages/sdk/dist/esm/internal/roomClient/roomState.d.ts @@ -0,0 +1,74 @@ +import { State as S, UpOperation as U, roomTemplate } from '@flocon-trpg/core'; +import { GetRoomFailureType, OperateRoomFailureType, RoomEventSubscription } from '@flocon-trpg/typed-document-node'; +import { Observable } from 'rxjs'; +import { ReadonlyBehaviorEvent } from '../rxjs/readonlyBehaviorEvent'; +import { GraphQLClientWithStatus, PromiseError } from './graphqlClient'; +declare const fetching = "fetching"; +declare const joined = "joined"; +declare const nonJoined = "nonJoined"; +declare const GetRoomFailure = "GetRoomFailure"; +declare const GraphQLError = "GraphQLError"; +declare const transformationError = "transformationError"; +declare const OperateRoomFailure = "OperateRoomFailure"; +declare const deleted = "deleted"; +type State = S; +type UpOperation = U; +declare const error = "error"; +export type SetAction = State | ((prevState: State) => State); +type NonJoinedRoom = { + id: string; + name: string; + createdBy: string; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; +}; +export type RoomState = { + type: typeof fetching; +} | { + type: typeof joined; + state: State; + setState: (setState: SetAction) => void; + setStateByApply: (operation: UpOperation) => void; +} | { + type: typeof error; + state: State; + error: { + type: typeof transformationError; + } | { + type: typeof OperateRoomFailure; + error: OperateRoomFailureType; + }; +} | { + type: typeof error; + error: { + type: typeof GetRoomFailure; + error: GetRoomFailureType; + } | { + type: typeof GraphQLError; + name: 'GetRoomQuery'; + error: PromiseError; + }; +} | { + type: typeof nonJoined; + state: State | null; + nonJoinedRoom: NonJoinedRoom; +} | { + type: typeof deleted; + deletedBy: string; +}; +export declare class RoomStateManager { + #private; + constructor({ client, subscription, userUid, clientId, }: { + client: Pick, 'getRoomQuery' | 'operateMutation'>; + subscription: Observable, 'deleteRoomOperation' | 'roomOperation'>>; + userUid: string; + /** 同一ユーザーが複数のブラウザでアクセスしたなどの際に、それらを区別するための文字列です。 */ + clientId: string; + }); + get stateStream(): ReadonlyBehaviorEvent>; + get mutationError(): ReadonlyBehaviorEvent | null>; + get isUnsubscribed(): boolean; + unsubscribe(): void; +} +export {}; +//# sourceMappingURL=roomState.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/roomClient/roomState.d.ts.map b/packages/sdk/dist/esm/internal/roomClient/roomState.d.ts.map new file mode 100644 index 000000000..093604d72 --- /dev/null +++ b/packages/sdk/dist/esm/internal/roomClient/roomState.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"roomState.d.ts","sourceRoot":"","sources":["../../../../src/internal/roomClient/roomState.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/roomClient/subscribeWritingMessageStatus.d.ts b/packages/sdk/dist/esm/internal/roomClient/subscribeWritingMessageStatus.d.ts new file mode 100644 index 000000000..dc9471735 --- /dev/null +++ b/packages/sdk/dist/esm/internal/roomClient/subscribeWritingMessageStatus.d.ts @@ -0,0 +1,10 @@ +import { RoomEventSubscription, WritingMessageStatusType } from '@flocon-trpg/typed-document-node'; +import { Observable } from 'rxjs'; +import { ReadonlyBehaviorEvent } from '../rxjs/readonlyBehaviorEvent'; +export declare const subscribeWritingMessageStatus: ({ subscription, }: { + subscription: Observable, "writingMessageStatus">>; +}) => { + value: ReadonlyBehaviorEvent>; + unsubscribe: () => void; +}; +//# sourceMappingURL=subscribeWritingMessageStatus.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/roomClient/subscribeWritingMessageStatus.d.ts.map b/packages/sdk/dist/esm/internal/roomClient/subscribeWritingMessageStatus.d.ts.map new file mode 100644 index 000000000..1ca80908b --- /dev/null +++ b/packages/sdk/dist/esm/internal/roomClient/subscribeWritingMessageStatus.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeWritingMessageStatus.d.ts","sourceRoot":"","sources":["../../../../src/internal/roomClient/subscribeWritingMessageStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAAE,UAAU,EAAY,MAAM,MAAM,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAQtE,eAAO,MAAM,6BAA6B,sBAEvC;IACC,YAAY,EAAE,UAAU,CACpB,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAChF,CAAC;CACL;;;CA8CA,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/roomClient/updateWritingMessageStatus.d.ts b/packages/sdk/dist/esm/internal/roomClient/updateWritingMessageStatus.d.ts new file mode 100644 index 000000000..880b7a22e --- /dev/null +++ b/packages/sdk/dist/esm/internal/roomClient/updateWritingMessageStatus.d.ts @@ -0,0 +1,7 @@ +import { WritingMessageStatusInputType } from '@flocon-trpg/typed-document-node'; +import { GraphQLClientWithStatus } from './graphqlClient'; +export declare const updateWritingMessageStatus: (client: Pick, "updateWritingMessagesStatusMutation">) => { + next: (inputType: WritingMessageStatusInputType) => void; + unsubscribe: () => void; +}; +//# sourceMappingURL=updateWritingMessageStatus.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/roomClient/updateWritingMessageStatus.d.ts.map b/packages/sdk/dist/esm/internal/roomClient/updateWritingMessageStatus.d.ts.map new file mode 100644 index 000000000..b76f19e3b --- /dev/null +++ b/packages/sdk/dist/esm/internal/roomClient/updateWritingMessageStatus.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"updateWritingMessageStatus.d.ts","sourceRoot":"","sources":["../../../../src/internal/roomClient/updateWritingMessageStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAI1D,eAAO,MAAM,0BAA0B,GAAI,aAAa,UAC5C,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE,qCAAqC,CAAC;sBAGlE,6BAA6B;;CAgBzD,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/rxjs/behaviorEvent.d.ts b/packages/sdk/dist/esm/internal/rxjs/behaviorEvent.d.ts new file mode 100644 index 000000000..8f39123f4 --- /dev/null +++ b/packages/sdk/dist/esm/internal/rxjs/behaviorEvent.d.ts @@ -0,0 +1,14 @@ +import { Observer, Subscription } from 'rxjs'; +/** RxJS の `BehaviorSubject` と似たクラスです。ただし、error が流されないという点で異なります。 */ +export declare class BehaviorEvent { + #private; + constructor(value: T); + next(value: T): void; + complete(): void; + subscribe(observer: Partial, 'error'>>): Subscription; + getValue(): T; + get value(): T; + asObservable(): import("rxjs").Observable; + unsubscribe(): void; +} +//# sourceMappingURL=behaviorEvent.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/rxjs/behaviorEvent.d.ts.map b/packages/sdk/dist/esm/internal/rxjs/behaviorEvent.d.ts.map new file mode 100644 index 000000000..928fe49bb --- /dev/null +++ b/packages/sdk/dist/esm/internal/rxjs/behaviorEvent.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"behaviorEvent.d.ts","sourceRoot":"","sources":["../../../../src/internal/rxjs/behaviorEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,QAAQ,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAE/D,oEAAoE;AACpE,qBAAa,aAAa,CAAC,CAAC;;gBAGZ,KAAK,EAAE,CAAC;IAIpB,IAAI,CAAC,KAAK,EAAE,CAAC;IAIb,QAAQ;IAIR,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,YAAY;IAItE,QAAQ;IAIR,IAAI,KAAK,MAER;IAED,YAAY;IAIZ,WAAW;CAGd"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/rxjs/readonlyBehaviorEvent.d.ts b/packages/sdk/dist/esm/internal/rxjs/readonlyBehaviorEvent.d.ts new file mode 100644 index 000000000..dbc175998 --- /dev/null +++ b/packages/sdk/dist/esm/internal/rxjs/readonlyBehaviorEvent.d.ts @@ -0,0 +1,22 @@ +import { BehaviorEvent } from './behaviorEvent'; +/** + * 現在の値の取得と、値の変更を監視できるクラスです。 + * + * RxJS の `BehaviorSubject` を read-only にしたものと似たクラスです。ただし、error が流されないという点で異なります。 */ +export declare class ReadonlyBehaviorEvent { + #private; + constructor(source: BehaviorEvent); + /** + * 値の変更を購読します。 + * + * subscribe した瞬間に現在の値が流されます。これは RxJS の `BehaviorSubject` の挙動と合わせるためです。 + */ + subscribe(observer: Parameters['subscribe']>[0]): import("rxjs").Subscription; + getValue(): T; + /** `getValue()` の alias です。 */ + get value(): T; + /** RxJS の `Observable` に変換します。 */ + asObservable(): import("rxjs").Observable; + static of(value: T): ReadonlyBehaviorEvent; +} +//# sourceMappingURL=readonlyBehaviorEvent.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/rxjs/readonlyBehaviorEvent.d.ts.map b/packages/sdk/dist/esm/internal/rxjs/readonlyBehaviorEvent.d.ts.map new file mode 100644 index 000000000..df4572899 --- /dev/null +++ b/packages/sdk/dist/esm/internal/rxjs/readonlyBehaviorEvent.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"readonlyBehaviorEvent.d.ts","sourceRoot":"","sources":["../../../../src/internal/rxjs/readonlyBehaviorEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;oFAGoF;AACpF,qBAAa,qBAAqB,CAAC,CAAC;;gBAGpB,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAIpC;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAIhE,QAAQ;IAIR,+BAA+B;IAC/B,IAAI,KAAK,MAER;IAED,kCAAkC;IAClC,YAAY;IAIZ,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;CAKxB"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/create.d.ts b/packages/sdk/dist/esm/internal/stateManager/create.d.ts new file mode 100644 index 000000000..0bd169be6 --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/create.d.ts @@ -0,0 +1,7 @@ +import { State as S, UpOperation as U, roomTemplate } from '@flocon-trpg/core'; +import { StateManager } from './stateManager/stateManager'; +type State = S; +type UpOperation = U; +export declare const create: (state: State, revision: number) => StateManager; +export {}; +//# sourceMappingURL=create.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/create.d.ts.map b/packages/sdk/dist/esm/internal/stateManager/create.d.ts.map new file mode 100644 index 000000000..a23403780 --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/create.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/internal/stateManager/create.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,IAAI,CAAC,EACV,WAAW,IAAI,CAAC,EAIhB,YAAY,EAGf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,KAAK,KAAK,GAAG,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC;AACpC,KAAK,WAAW,GAAG,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC;AAiC1C,eAAO,MAAM,MAAM,UAAW,KAAK,YAAY,MAAM,KAAG,YAAY,CAAC,KAAK,EAAE,WAAW,CAEtF,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/stateManager/stateGetter.d.ts b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateGetter.d.ts new file mode 100644 index 000000000..e93dd07a5 --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateGetter.d.ts @@ -0,0 +1,40 @@ +import { Diff } from './types'; +type PostingState = { + operation: TOperation | undefined; + state: TState; + metadata: TMetadata; +}; +export declare class StateGetter { + /** + * クライアントから見た、API サーバーにおける最新の State。 + * + * ただし、通信のラグなどの影響で、実際の最新の状態より少し古い可能性があります。 + */ + syncedState: TState; + private _diff; + private _postingState; + private _uiStateCore; + constructor({ syncedState, diff, }: { + syncedState: TState; + diff: Diff; + }); + /** + * クライアントの画面に表示すべき State。 + */ + get uiState(): TState; + setUiState(value: TState): void; + /** `uiState` を `syncedState` の状態に戻します。 */ + clearUiState(): void; + /** API サーバーに Operation の post を開始した時点の State。 */ + get postingState(): Readonly> | undefined; + setPostingState(state: TState, metadata: TMetadata): void; + clearPostingState(): void; + /** + * まだpostしていないoperation。 + * + * post中の場合は、post後にクライアント側でたまっているoperationを表します。post中でないときは、単にクライアント側でたまっているoperationを表します。 + */ + getLocalOperation(): TOperation | undefined; +} +export {}; +//# sourceMappingURL=stateGetter.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/stateManager/stateGetter.d.ts.map b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateGetter.d.ts.map new file mode 100644 index 000000000..a70ee3bf0 --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateGetter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"stateGetter.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/stateManager/stateGetter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI/B,KAAK,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,IAAI;IAC/C,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,qBAAa,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS;IAClD;;;;OAIG;IACI,WAAW,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,KAAK,CAA2B;IAIxC,OAAO,CAAC,aAAa,CAA0D;IAE/E,OAAO,CAAC,YAAY,CAAiC;gBAElC,EACf,WAAW,EACX,IAAI,GACP,EAAE;QACC,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;KAClC;IAKD;;OAEG;IACH,IAAW,OAAO,IAAI,MAAM,CAK3B;IAEM,UAAU,CAAC,KAAK,EAAE,MAAM;IAI/B,0CAA0C;IACnC,YAAY;IAInB,iDAAiD;IACjD,IAAW,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,GAAG,SAAS,CAE3F;IAEM,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;IAQlD,iBAAiB;IAIxB;;;;OAIG;IACI,iBAAiB,IAAI,UAAU,GAAG,SAAS;CAarD"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManager.d.ts b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManager.d.ts new file mode 100644 index 000000000..2a12ddd84 --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManager.d.ts @@ -0,0 +1,86 @@ +import { StateManagerParameters } from './types'; +type OnPosted = { + isSuccess: true; + isId: false; + revisionTo: number; + result: T; +} | { + isSuccess: true; + isId: true; + requestId: string; +} | { + isSuccess: false | null; +}; +export type PostResult = { + operationToPost: TOperation; + syncedState: TState; + revision: number; + requestId: string; + onPosted: (onPosted: OnPosted) => void; +}; +export declare class StateManager { + private readonly args; + private core; + private _requiresReload; + private _history?; + constructor(args: StateManagerParameters); + get isPosting(): boolean; + get uiState(): TState; + get revision(): number; + get requiresReload(): boolean; + waitingResponseSince(): Date | null; + onOtherClientsGet(operation: TOperation, revisionTo: number): void; + setUiState(state: TState): void; + setUiStateByApply(operation: TOperation): void; + post(): PostResult | undefined; + reload({ state, revision }: { + state: TState; + revision: number; + }): void; + get history(): readonly ({ + type: "operate"; + revision: number; + nextState: TState; + } | { + type: "beforePost"; + uiState: TState; + } | { + type: "posting"; + uiState: TState; + value: Omit, "onPosted"> | undefined; + } | { + type: "beforeEndPostAsSuccess"; + operation: TOperation; + uiState: TState; + revisionTo: number; + } | { + type: "afterEndPostAsSuccess"; + uiState: TState; + } | { + type: "beforeEndPostAsId"; + requestId: string; + uiState: TState; + } | { + type: "afterEndPostAsId"; + uiState: TState; + } | { + type: "beforeEndPostAsNotSuccess"; + uiState: TState; + } | { + type: "afterEndPostAsNotSuccess"; + uiState: TState; + } | { + type: "endPostAsUnknown"; + uiState: TState; + } | { + type: "beforeOtherClientsGet"; + uiState: TState; + operation: TOperation; + revisionTo: number; + } | { + type: "afterOtherClientsGet"; + uiState: TState; + })[] | undefined; +} +export {}; +//# sourceMappingURL=stateManager.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManager.d.ts.map b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManager.d.ts.map new file mode 100644 index 000000000..42831071e --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManager.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"stateManager.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/stateManager/stateManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,KAAK,QAAQ,CAAC,CAAC,IACT;IACI,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,CAAC,CAAC;CACb,GACD;IACI,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACrB,GACD;IACI,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;CAC3B,CAAC;AAER,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,UAAU,IAAI;IACzC,eAAe,EAAE,UAAU,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,qBAAa,YAAY,CAAC,MAAM,EAAE,UAAU;IAKrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJxC,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,CAA+C;gBAE5B,IAAI,EAAE,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC;IAKpF,IAAW,SAAS,IAAI,OAAO,CAK9B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,cAAc,IAAI,OAAO,CAEnC;IAEM,oBAAoB,IAAI,IAAI,GAAG,IAAI;IAOnC,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAWlE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAW/B,iBAAiB,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAO9C,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,SAAS;IAwDlD,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAU7E,IAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAEjB;CACJ"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerCore.d.ts b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerCore.d.ts new file mode 100644 index 000000000..e17a89146 --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerCore.d.ts @@ -0,0 +1,25 @@ +import { StateManagerParameters } from './types'; +export declare class StateManagerCore { + private readonly params; + private _revision; + private _stateGetter; + private readonly _pendingGetOperations; + constructor(params: StateManagerParameters); + waitingResponseSince(): Date | null; + get isPosting(): boolean; + get syncedState(): TState; + get uiState(): TState; + get revision(): number; + setUiState(state: TState): void; + private tryApplyPendingGetOperations; + onGet(operation: TOperation, revisionTo: number, isByMyClient: boolean): void; + post(): { + operationToPost: TOperation; + syncedState: TState; + revision: number; + requestId: string; + } | undefined; + endPostAsId(requestId: string): boolean; + cancelPost(): boolean; +} +//# sourceMappingURL=stateManagerCore.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerCore.d.ts.map b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerCore.d.ts.map new file mode 100644 index 000000000..ca0fa7aa5 --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerCore.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"stateManagerCore.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/stateManager/stateManagerCore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AASjD,qBAAa,gBAAgB,CAAC,MAAM,EAAE,UAAU;IAUzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAT1C,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,YAAY,CAA4C;IAEhE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAGlC;gBAEgC,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC;IAM/E,oBAAoB,IAAI,IAAI,GAAG,IAAI;IAmB1C,IAAW,SAAS,YAEnB;IAED,IAAW,WAAW,WAErB;IAED,IAAW,OAAO,WAEjB;IAED,IAAW,QAAQ,WAElB;IAEM,UAAU,CAAC,KAAK,EAAE,MAAM;IAI/B,OAAO,CAAC,4BAA4B;IA6G7B,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO;IAwBtE,IAAI,IACL;QAAE,eAAe,EAAE,UAAU,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GACzF,SAAS;IAsBR,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAiBvC,UAAU,IAAI,OAAO;CAU/B"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts new file mode 100644 index 000000000..abccecd39 --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts @@ -0,0 +1,64 @@ +import { PostResult, StateManager } from './stateManager'; +type HistoryElement = { + type: 'operate'; + revision: number; + nextState: TState; +} | { + type: 'beforePost'; + uiState: TState; +} | { + type: 'posting'; + uiState: TState; + value: Omit, 'onPosted'> | undefined; +} | { + type: 'beforeEndPostAsSuccess'; + operation: TOperation; + uiState: TState; + revisionTo: number; +} | { + type: 'afterEndPostAsSuccess'; + uiState: TState; +} | { + type: 'beforeEndPostAsId'; + requestId: string; + uiState: TState; +} | { + type: 'afterEndPostAsId'; + uiState: TState; +} | { + type: 'beforeEndPostAsNotSuccess'; + uiState: TState; +} | { + type: 'afterEndPostAsNotSuccess'; + uiState: TState; +} | { + type: 'endPostAsUnknown'; + uiState: TState; +} | { + type: 'beforeOtherClientsGet'; + uiState: TState; + operation: TOperation; + revisionTo: number; +} | { + type: 'afterOtherClientsGet'; + uiState: TState; +}; +export declare class StateManagerHistoryQueue { + private _history; + private add; + get history(): ReadonlyArray>; + operateAsState(stateManager: StateManager, state: TState): void; + beforePost(stateManager: StateManager): void; + beginPost(stateManager: StateManager, value: Omit, 'onPosted'> | undefined): void; + beforeEndPostAsId(stateManager: StateManager, requestId: string): void; + afterEndPostAsId(stateManager: StateManager): void; + beforeEndPostAsSuccess(stateManager: StateManager, operation: TOperation, revisionTo: number): void; + afterEndPostAsSuccess(stateManager: StateManager): void; + beforeOtherClientsGet(stateManager: StateManager, operation: TOperation, revisionTo: number): void; + afterOtherClientsGet(stateManager: StateManager): void; + beforeEndPostAsNotSuccess(stateManager: StateManager): void; + afterEndPostAsNotSuccess(stateManager: StateManager): void; + endPostAsUnknown(stateManager: StateManager): void; +} +export {}; +//# sourceMappingURL=stateManagerHistoryQueue.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts.map b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts.map new file mode 100644 index 000000000..5eb0dbff0 --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/stateManager/stateManagerHistoryQueue.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"stateManagerHistoryQueue.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/stateManager/stateManagerHistoryQueue.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/stateManager/types.d.ts b/packages/sdk/dist/esm/internal/stateManager/stateManager/types.d.ts new file mode 100644 index 000000000..f0086f61d --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/stateManager/types.d.ts @@ -0,0 +1,30 @@ +export type Apply = (params: { + state: TState; + operation: TOperation; +}) => TState; +export type Compose = (params: { + state: TState; + first: TOperation; + second: TOperation; +}) => TOperation; +export type Transform = (params: { + state: TState; + first: TFirstOperation; + second: TSecondOperation; +}) => { + firstPrime: TFirstOperation; + secondPrime: TSecondOperation; +}; +export type Diff = (params: { + prevState: TState; + nextState: TState; +}) => TOperation | undefined; +export type StateManagerParameters = { + revision: number; + state: TState; + apply: Apply; + transform: Transform; + diff: Diff; + enableHistory?: boolean; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/stateManager/types.d.ts.map b/packages/sdk/dist/esm/internal/stateManager/stateManager/types.d.ts.map new file mode 100644 index 000000000..84640796d --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/stateManager/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/stateManager/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,CAAC;CACzB,KAAK,MAAM,CAAC;AAEb,MAAM,MAAM,OAAO,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;CACtB,KAAK,UAAU,CAAC;AAEjB,MAAM,MAAM,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,gBAAgB,IAAI,CAAC,MAAM,EAAE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;CAC5B,KAAK;IAAE,UAAU,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB,KAAK,UAAU,GAAG,SAAS,CAAC;AAE7B,MAAM,MAAM,sBAAsB,CAAC,MAAM,EAAE,UAAU,IAAI;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAG/B,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/states/room.d.ts b/packages/sdk/dist/esm/internal/stateManager/states/room.d.ts new file mode 100644 index 000000000..880efc63b --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/states/room.d.ts @@ -0,0 +1,11 @@ +import { State as S, UpOperation as U, roomTemplate } from '@flocon-trpg/core'; +import { RoomGetStateFragment, RoomOperationFragment, RoomOperationInput } from '@flocon-trpg/typed-document-node'; +type State = S; +type UpOperation = U; +export declare namespace Room { + const createState: (source: RoomGetStateFragment) => State; + const createGetOperation: (source: RoomOperationFragment) => UpOperation; + const toGraphQLInput: (source: UpOperation, clientId: string) => RoomOperationInput; +} +export {}; +//# sourceMappingURL=room.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/states/room.d.ts.map b/packages/sdk/dist/esm/internal/stateManager/states/room.d.ts.map new file mode 100644 index 000000000..3654b1692 --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/states/room.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/states/room.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,IAAI,CAAC,EACV,WAAW,IAAI,CAAC,EAGhB,YAAY,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EACrB,MAAM,kCAAkC,CAAC;AAE1C,KAAK,KAAK,GAAG,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC;AACpC,KAAK,WAAW,GAAG,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC;AAE1C,yBAAiB,IAAI,CAAC;IACX,MAAM,WAAW,WAAY,oBAAoB,KAAG,KAE1D,CAAC;IAEK,MAAM,kBAAkB,WAAY,qBAAqB,KAAG,WAElE,CAAC;IAEK,MAAM,cAAc,WAAY,WAAW,YAAY,MAAM,KAAG,kBAKtE,CAAC;CACL"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/states/types.d.ts b/packages/sdk/dist/esm/internal/stateManager/states/types.d.ts new file mode 100644 index 000000000..9e5c76019 --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/states/types.d.ts @@ -0,0 +1,10 @@ +export declare const replace = "replace"; +export declare const update = "update"; +export type OperationElement = { + type: typeof replace; + newValue: TState | undefined; +} | { + type: typeof update; + operation: TOperation; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/stateManager/states/types.d.ts.map b/packages/sdk/dist/esm/internal/stateManager/states/types.d.ts.map new file mode 100644 index 000000000..c9b1b5ada --- /dev/null +++ b/packages/sdk/dist/esm/internal/stateManager/states/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/internal/stateManager/states/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,IACzC;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,GACD;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;CACzB,CAAC"} \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/types.d.ts b/packages/sdk/dist/esm/internal/types.d.ts new file mode 100644 index 000000000..2324761ce --- /dev/null +++ b/packages/sdk/dist/esm/internal/types.d.ts @@ -0,0 +1 @@ +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/sdk/dist/esm/internal/types.d.ts.map b/packages/sdk/dist/esm/internal/types.d.ts.map new file mode 100644 index 000000000..526363083 --- /dev/null +++ b/packages/sdk/dist/esm/internal/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/internal/types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/typed-document-node/dist/cjs/generated/graphql.d.ts b/packages/typed-document-node/dist/cjs/generated/graphql.d.ts new file mode 100644 index 000000000..162a8b31d --- /dev/null +++ b/packages/typed-document-node/dist/cjs/generated/graphql.d.ts @@ -0,0 +1,2447 @@ +import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { + [K in keyof T]: T[K]; +}; +export type MakeOptional = Omit & { + [SubKey in K]?: Maybe; +}; +export type MakeMaybe = Omit & { + [SubKey in K]: Maybe; +}; +export type MakeEmpty = { + [_ in K]?: never; +}; +export type Incremental = T | { + [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never; +}; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { + input: string; + output: string; + }; + String: { + input: string; + output: string; + }; + Boolean: { + input: boolean; + output: boolean; + }; + Int: { + input: number; + output: number; + }; + Float: { + input: number; + output: number; + }; +}; +export declare enum AnswerRollCallFailureType { + NotAuthorizedParticipant = "NotAuthorizedParticipant", + RollCallNotFound = "RollCallNotFound", + RoomNotFound = "RoomNotFound", + TooManyRequests = "TooManyRequests" +} +export type AnswerRollCallResult = { + __typename?: 'AnswerRollCallResult'; + failureType?: Maybe; +}; +export type AvailableGameSystem = { + __typename?: 'AvailableGameSystem'; + id: Scalars['String']['output']; + name: Scalars['String']['output']; + sortKey: Scalars['String']['output']; +}; +export declare enum ChangeParticipantNameFailureType { + NotFound = "NotFound", + NotParticipant = "NotParticipant" +} +export type ChangeParticipantNameResult = { + __typename?: 'ChangeParticipantNameResult'; + failureType?: Maybe; +}; +export type CharacterValueForMessage = { + __typename?: 'CharacterValueForMessage'; + image?: Maybe; + isPrivate: Scalars['Boolean']['output']; + name: Scalars['String']['output']; + portraitImage?: Maybe; + stateId: Scalars['String']['output']; +}; +export declare enum CloseRollCallFailureType { + AlreadyClosed = "AlreadyClosed", + NotAuthorizedParticipant = "NotAuthorizedParticipant", + RollCallNotFound = "RollCallNotFound", + RoomNotFound = "RoomNotFound", + TooManyRequests = "TooManyRequests" +} +export type CloseRollCallResult = { + __typename?: 'CloseRollCallResult'; + failureType?: Maybe; +}; +export type CommandResult = { + __typename?: 'CommandResult'; + /** 成功判定のないコマンドの場合はnullish。成功判定のあるコマンドの場合はその結果。 */ + isSuccess?: Maybe; + text: Scalars['String']['output']; +}; +export type CreateRoomFailureResult = { + __typename?: 'CreateRoomFailureResult'; + failureType: CreateRoomFailureType; +}; +export declare enum CreateRoomFailureType { + UnknownError = "UnknownError" +} +export type CreateRoomInput = { + participantName: Scalars['String']['input']; + playerPassword?: InputMaybe; + roomName: Scalars['String']['input']; + spectatorPassword?: InputMaybe; +}; +export type CreateRoomResult = CreateRoomFailureResult | CreateRoomSuccessResult; +export type CreateRoomSuccessResult = { + __typename?: 'CreateRoomSuccessResult'; + id: Scalars['String']['output']; + room: RoomGetState; +}; +export declare enum DeleteMessageFailureType { + MessageDeleted = "MessageDeleted", + MessageNotFound = "MessageNotFound", + NotParticipant = "NotParticipant", + NotYourMessage = "NotYourMessage", + RoomNotFound = "RoomNotFound" +} +export type DeleteMessageResult = { + __typename?: 'DeleteMessageResult'; + failureType?: Maybe; +}; +export declare enum DeleteRoomAsAdminFailureType { + NotFound = "NotFound" +} +export type DeleteRoomAsAdminResult = { + __typename?: 'DeleteRoomAsAdminResult'; + failureType?: Maybe; +}; +export declare enum DeleteRoomFailureType { + NotCreatedByYou = "NotCreatedByYou", + NotFound = "NotFound" +} +export type DeleteRoomOperation = { + __typename?: 'DeleteRoomOperation'; + deletedBy: Scalars['String']['output']; + /** since v0.7.2 */ + deletedByAdmin: Scalars['Boolean']['output']; +}; +export type DeleteRoomResult = { + __typename?: 'DeleteRoomResult'; + failureType?: Maybe; +}; +export type EditFileTagActionInput = { + add: Array; + filename: Scalars['String']['input']; + remove: Array; +}; +export type EditFileTagsInput = { + actions: Array; +}; +export declare enum EditMessageFailureType { + MessageDeleted = "MessageDeleted", + MessageNotFound = "MessageNotFound", + NotParticipant = "NotParticipant", + NotYourMessage = "NotYourMessage", + RoomNotFound = "RoomNotFound" +} +export type EditMessageResult = { + __typename?: 'EditMessageResult'; + failureType?: Maybe; +}; +export type EntryToServerResult = { + __typename?: 'EntryToServerResult'; + type: EntryToServerResultType; +}; +export declare enum EntryToServerResultType { + AlreadyEntried = "AlreadyEntried", + NoPasswordRequired = "NoPasswordRequired", + NotSignIn = "NotSignIn", + Success = "Success", + WrongPassword = "WrongPassword" +} +export type FileItem = { + __typename?: 'FileItem'; + createdAt?: Maybe; + /** ファイルをアップロードしたユーザー。Firebase AuthenticationのUserUidで表現される。 */ + createdBy: Scalars['String']['output']; + /** サーバーで管理されているファイル名。axiosなどでファイルを取得する際はこれを用いる。ソートするとアップロードした時系列順になる。 */ + filename: Scalars['ID']['output']; + listType: FileListType; + /** ユーザーが名付けたファイル名。 */ + screenname: Scalars['String']['output']; + /** サムネイル画像のファイル名。axiosなどを用いてファイルを取得する。 */ + thumbFilename?: Maybe; +}; +export declare enum FileListType { + Public = "Public", + Unlisted = "Unlisted" +} +export type FilePath = { + __typename?: 'FilePath'; + path: Scalars['String']['output']; + sourceType: FileSourceType; +}; +export type FilePathInput = { + path: Scalars['String']['input']; + sourceType: FileSourceType; +}; +export declare enum FileSourceType { + Default = "Default", + FirebaseStorage = "FirebaseStorage", + Uploader = "Uploader" +} +export type FileTag = { + __typename?: 'FileTag'; + id: Scalars['String']['output']; + name: Scalars['String']['output']; +}; +export type GetAvailableGameSystemsResult = { + __typename?: 'GetAvailableGameSystemsResult'; + value: Array; +}; +export type GetFilesInput = { + /** FileTagのidを指定することで、指定したタグが付いているファイルのみを抽出して表示する。例えばidがx,yの3つのタグが付いているファイルは、[]や[x]や[x,y]と指定した場合にマッチするが、[x,y,z]と指定された場合は除外される。 */ + fileTagIds: Array; +}; +export type GetFilesResult = { + __typename?: 'GetFilesResult'; + files: Array; +}; +export type GetJoinedRoomResult = { + __typename?: 'GetJoinedRoomResult'; + /** 自分の現在のParticipantRoleType。room.roleと同じ値をとる。 */ + role: ParticipantRole; + room: RoomGetState; +}; +export type GetNonJoinedRoomResult = { + __typename?: 'GetNonJoinedRoomResult'; + roomAsListItem: RoomAsListItem; +}; +export type GetRoomAsListItemFailureResult = { + __typename?: 'GetRoomAsListItemFailureResult'; + failureType: GetRoomFailureType; +}; +export type GetRoomAsListItemResult = GetRoomAsListItemFailureResult | GetRoomAsListItemSuccessResult; +export type GetRoomAsListItemSuccessResult = { + __typename?: 'GetRoomAsListItemSuccessResult'; + room: RoomAsListItem; +}; +export declare enum GetRoomConnectionFailureType { + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound" +} +export type GetRoomConnectionsFailureResult = { + __typename?: 'GetRoomConnectionsFailureResult'; + failureType: GetRoomConnectionFailureType; +}; +export type GetRoomConnectionsResult = GetRoomConnectionsFailureResult | GetRoomConnectionsSuccessResult; +export type GetRoomConnectionsSuccessResult = { + __typename?: 'GetRoomConnectionsSuccessResult'; + connectedUserUids: Array; + fetchedAt: Scalars['Float']['output']; +}; +export type GetRoomFailureResult = { + __typename?: 'GetRoomFailureResult'; + failureType: GetRoomFailureType; +}; +export declare enum GetRoomFailureType { + NotFound = "NotFound" +} +export type GetRoomLogFailureResult = { + __typename?: 'GetRoomLogFailureResult'; + failureType: GetRoomLogFailureType; +}; +export declare enum GetRoomLogFailureType { + NotAuthorized = "NotAuthorized", + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound", + UnknownError = "UnknownError" +} +export type GetRoomLogResult = GetRoomLogFailureResult | RoomMessages; +export type GetRoomMessagesFailureResult = { + __typename?: 'GetRoomMessagesFailureResult'; + failureType: GetRoomMessagesFailureType; +}; +export declare enum GetRoomMessagesFailureType { + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound" +} +export type GetRoomMessagesResult = GetRoomMessagesFailureResult | RoomMessages; +export type GetRoomResult = GetJoinedRoomResult | GetNonJoinedRoomResult | GetRoomFailureResult; +export type GetRoomsListFailureResult = { + __typename?: 'GetRoomsListFailureResult'; + failureType: GetRoomFailureType; +}; +export type GetRoomsListResult = GetRoomsListFailureResult | GetRoomsListSuccessResult; +export type GetRoomsListSuccessResult = { + __typename?: 'GetRoomsListSuccessResult'; + rooms: Array; +}; +export type JoinRoomFailureResult = { + __typename?: 'JoinRoomFailureResult'; + failureType: JoinRoomFailureType; +}; +export declare enum JoinRoomFailureType { + AlreadyParticipant = "AlreadyParticipant", + NotFound = "NotFound", + TransformError = "TransformError", + WrongPassword = "WrongPassword" +} +export type JoinRoomResult = JoinRoomFailureResult | JoinRoomSuccessResult; +export type JoinRoomSuccessResult = { + __typename?: 'JoinRoomSuccessResult'; + operation?: Maybe; +}; +export declare enum LeaveRoomFailureType { + NotFound = "NotFound", + NotParticipant = "NotParticipant" +} +export type LeaveRoomResult = { + __typename?: 'LeaveRoomResult'; + failureType?: Maybe; +}; +export declare enum MakeMessageNotSecretFailureType { + MessageNotFound = "MessageNotFound", + NotParticipant = "NotParticipant", + NotSecret = "NotSecret", + NotYourMessage = "NotYourMessage", + RoomNotFound = "RoomNotFound" +} +export type MakeMessageNotSecretResult = { + __typename?: 'MakeMessageNotSecretResult'; + failureType?: Maybe; +}; +export type Mutation = { + __typename?: 'Mutation'; + /** since v0.7.13 */ + answerRollCall: AnswerRollCallResult; + changeParticipantName: ChangeParticipantNameResult; + /** since v0.7.13 */ + closeRollCall: CloseRollCallResult; + /** @deprecated Use screenname to group files by folders instead. */ + createFileTag?: Maybe; + createRoom: CreateRoomResult; + /** @deprecated Use screenname to group files by folders instead. */ + deleteFileTag: Scalars['Boolean']['output']; + /** since v0.7.8 */ + deleteFiles: Array; + deleteMessage: DeleteMessageResult; + deleteRoom: DeleteRoomResult; + /** since v0.7.2 */ + deleteRoomAsAdmin: DeleteRoomAsAdminResult; + /** @deprecated Use screenname to group files by folders instead. */ + editFileTags: Scalars['Boolean']['output']; + editMessage: EditMessageResult; + entryToServer: EntryToServerResult; + joinRoomAsPlayer: JoinRoomResult; + joinRoomAsSpectator: JoinRoomResult; + leaveRoom: LeaveRoomResult; + makeMessageNotSecret: MakeMessageNotSecretResult; + /** この Mutation を直接実行することは非推奨です。代わりに @flocon-trpg/sdk を用いてください。 */ + operate: OperateRoomResult; + /** since v0.7.13 */ + performRollCall: PerformRollCallResult; + /** GraphQL の動作テストに用いられます。3rd-party の Web サーバーを作成する際は利用しなくて構いません。 */ + ping: Pong; + promoteToPlayer: PromoteResult; + renameFiles: Array; + resetMessages: ResetRoomMessagesResult; + updateBookmark: UpdateBookmarkResult; + /** この Mutation を直接実行することは非推奨です。代わりに @flocon-trpg/sdk を用いてください。 */ + updateWritingMessageStatus: Scalars['Boolean']['output']; + writePrivateMessage: WriteRoomPrivateMessageResult; + writePublicMessage: WriteRoomPublicMessageResult; + writeRoomSoundEffect: WriteRoomSoundEffectResult; +}; +export type MutationAnswerRollCallArgs = { + answer: Scalars['Boolean']['input']; + rollCallId: Scalars['String']['input']; + roomId: Scalars['String']['input']; +}; +export type MutationChangeParticipantNameArgs = { + newName: Scalars['String']['input']; + roomId: Scalars['String']['input']; +}; +export type MutationCloseRollCallArgs = { + rollCallId: Scalars['String']['input']; + roomId: Scalars['String']['input']; +}; +export type MutationCreateFileTagArgs = { + tagName: Scalars['String']['input']; +}; +export type MutationCreateRoomArgs = { + input: CreateRoomInput; +}; +export type MutationDeleteFileTagArgs = { + tagId: Scalars['String']['input']; +}; +export type MutationDeleteFilesArgs = { + filenames: Array; +}; +export type MutationDeleteMessageArgs = { + messageId: Scalars['String']['input']; + roomId: Scalars['String']['input']; +}; +export type MutationDeleteRoomArgs = { + id: Scalars['String']['input']; +}; +export type MutationDeleteRoomAsAdminArgs = { + id: Scalars['String']['input']; +}; +export type MutationEditFileTagsArgs = { + input: EditFileTagsInput; +}; +export type MutationEditMessageArgs = { + messageId: Scalars['String']['input']; + roomId: Scalars['String']['input']; + text: Scalars['String']['input']; +}; +export type MutationEntryToServerArgs = { + password?: InputMaybe; +}; +export type MutationJoinRoomAsPlayerArgs = { + id: Scalars['String']['input']; + name: Scalars['String']['input']; + password?: InputMaybe; +}; +export type MutationJoinRoomAsSpectatorArgs = { + id: Scalars['String']['input']; + name: Scalars['String']['input']; + password?: InputMaybe; +}; +export type MutationLeaveRoomArgs = { + id: Scalars['String']['input']; +}; +export type MutationMakeMessageNotSecretArgs = { + messageId: Scalars['String']['input']; + roomId: Scalars['String']['input']; +}; +export type MutationOperateArgs = { + id: Scalars['String']['input']; + operation: RoomOperationInput; + prevRevision: Scalars['Int']['input']; + requestId: Scalars['String']['input']; +}; +export type MutationPerformRollCallArgs = { + input: PerformRollCallInput; +}; +export type MutationPingArgs = { + value: Scalars['Float']['input']; +}; +export type MutationPromoteToPlayerArgs = { + password?: InputMaybe; + roomId: Scalars['String']['input']; +}; +export type MutationRenameFilesArgs = { + input: Array; +}; +export type MutationResetMessagesArgs = { + roomId: Scalars['String']['input']; +}; +export type MutationUpdateBookmarkArgs = { + newValue: Scalars['Boolean']['input']; + roomId: Scalars['String']['input']; +}; +export type MutationUpdateWritingMessageStatusArgs = { + newStatus: WritingMessageStatusInputType; + roomId: Scalars['String']['input']; +}; +export type MutationWritePrivateMessageArgs = { + characterId?: InputMaybe; + customName?: InputMaybe; + gameType?: InputMaybe; + roomId: Scalars['String']['input']; + text: Scalars['String']['input']; + textColor?: InputMaybe; + visibleTo: Array; +}; +export type MutationWritePublicMessageArgs = { + channelKey: Scalars['String']['input']; + characterId?: InputMaybe; + customName?: InputMaybe; + gameType?: InputMaybe; + roomId: Scalars['String']['input']; + text: Scalars['String']['input']; + textColor?: InputMaybe; +}; +export type MutationWriteRoomSoundEffectArgs = { + file: FilePathInput; + roomId: Scalars['String']['input']; + volume: Scalars['Float']['input']; +}; +export type OperateRoomFailureResult = { + __typename?: 'OperateRoomFailureResult'; + failureType: OperateRoomFailureType; +}; +export declare enum OperateRoomFailureType { + NotFound = "NotFound" +} +export type OperateRoomIdResult = { + __typename?: 'OperateRoomIdResult'; + requestId: Scalars['String']['output']; +}; +export type OperateRoomNonJoinedResult = { + __typename?: 'OperateRoomNonJoinedResult'; + roomAsListItem: RoomAsListItem; +}; +export type OperateRoomResult = OperateRoomFailureResult | OperateRoomIdResult | OperateRoomNonJoinedResult | OperateRoomSuccessResult; +export type OperateRoomSuccessResult = { + __typename?: 'OperateRoomSuccessResult'; + operation: RoomOperation; +}; +export type OperatedBy = { + __typename?: 'OperatedBy'; + clientId: Scalars['String']['output']; + userUid: Scalars['String']['output']; +}; +export declare enum ParticipantRole { + Master = "Master", + Player = "Player", + Spectator = "Spectator" +} +export declare enum PerformRollCallFailureType { + HasOpenRollCall = "HasOpenRollCall", + NotAuthorizedParticipant = "NotAuthorizedParticipant", + NotFound = "NotFound", + TooManyRequests = "TooManyRequests" +} +export type PerformRollCallInput = { + roomId: Scalars['String']['input']; + /** SE を設定する場合、これと併せて soundEffectVolume もセットする必要があります。 */ + soundEffectFile?: InputMaybe; + /** SE を設定する場合、これと併せて soundEffectFile もセットする必要があります。 */ + soundEffectVolume?: InputMaybe; +}; +export type PerformRollCallResult = { + __typename?: 'PerformRollCallResult'; + failureType?: Maybe; +}; +export type PieceLog = { + __typename?: 'PieceLog'; + createdAt: Scalars['Float']['output']; + logType: PieceLogType; + messageId: Scalars['String']['output']; + stateId: Scalars['String']['output']; + valueJson: Scalars['String']['output']; +}; +export declare enum PieceLogType { + Dice = "Dice", + String = "String" +} +export type Pong = { + __typename?: 'Pong'; + createdBy?: Maybe; + value: Scalars['Float']['output']; +}; +export type Prerelease = { + __typename?: 'Prerelease'; + type: PrereleaseType; + version: Scalars['Float']['output']; +}; +export declare enum PrereleaseType { + Alpha = "Alpha", + Beta = "Beta", + Rc = "Rc" +} +export declare enum PromoteFailureType { + NoNeedToPromote = "NoNeedToPromote", + NotFound = "NotFound", + NotParticipant = "NotParticipant", + WrongPassword = "WrongPassword" +} +export type PromoteResult = { + __typename?: 'PromoteResult'; + failureType?: Maybe; +}; +export type Query = { + __typename?: 'Query'; + getAvailableGameSystems: GetAvailableGameSystemsResult; + getDiceHelpMessage?: Maybe; + getFiles: GetFilesResult; + getLog: GetRoomLogResult; + getMessages: GetRoomMessagesResult; + /** since v0.7.2 */ + getMyRoles: Roles; + /** 通常はこの Query を直接実行する必要はありません。@flocon-trpg/sdk を用いることで、リアルタイムに Room を取得および自動更新できます。 */ + getRoom: GetRoomResult; + getRoomAsListItem: GetRoomAsListItemResult; + /** 通常はこの Query を直接実行する必要はありません。@flocon-trpg/sdk を用いることで、リアルタイムに値を取得および自動更新できます。 */ + getRoomConnections: GetRoomConnectionsResult; + getRoomsList: GetRoomsListResult; + getServerInfo: ServerInfo; + isEntry: Scalars['Boolean']['output']; +}; +export type QueryGetDiceHelpMessageArgs = { + id: Scalars['String']['input']; +}; +export type QueryGetFilesArgs = { + input: GetFilesInput; +}; +export type QueryGetLogArgs = { + roomId: Scalars['String']['input']; +}; +export type QueryGetMessagesArgs = { + roomId: Scalars['String']['input']; +}; +export type QueryGetRoomArgs = { + id: Scalars['String']['input']; +}; +export type QueryGetRoomAsListItemArgs = { + roomId: Scalars['String']['input']; +}; +export type QueryGetRoomConnectionsArgs = { + roomId: Scalars['String']['input']; +}; +export type RenameFileInput = { + filename: Scalars['String']['input']; + newScreenname: Scalars['String']['input']; +}; +export declare enum ResetRoomMessagesFailureType { + NotAuthorized = "NotAuthorized", + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound" +} +export type ResetRoomMessagesResult = { + __typename?: 'ResetRoomMessagesResult'; + failureType?: Maybe; +}; +export type Roles = { + __typename?: 'Roles'; + admin: Scalars['Boolean']['output']; +}; +export type RoomAsListItem = { + __typename?: 'RoomAsListItem'; + /** since v0.7.2 */ + createdAt?: Maybe; + /** この部屋の作成者。Firebase AuthenticationのUserUidで表現される。 */ + createdBy: Scalars['String']['output']; + id: Scalars['ID']['output']; + /** since v0.7.2 */ + isBookmarked: Scalars['Boolean']['output']; + name: Scalars['String']['output']; + requiresPlayerPassword: Scalars['Boolean']['output']; + requiresSpectatorPassword: Scalars['Boolean']['output']; + /** since v0.7.2 */ + role?: Maybe; + /** + * データベースのRoomエンティティが最後に更新された日時。Roomエンティティのみが対象であるため、例えばメッセージの投稿などは反映されないことに注意。 + * since v0.7.2 + */ + updatedAt?: Maybe; +}; +export type RoomConnectionEvent = { + __typename?: 'RoomConnectionEvent'; + isConnected: Scalars['Boolean']['output']; + updatedAt: Scalars['Float']['output']; + userUid: Scalars['String']['output']; +}; +export type RoomEvent = { + __typename?: 'RoomEvent'; + deleteRoomOperation?: Maybe; + isRoomMessagesResetEvent: Scalars['Boolean']['output']; + roomConnectionEvent?: Maybe; + roomMessageEvent?: Maybe; + roomOperation?: Maybe; + writingMessageStatus?: Maybe; +}; +export type RoomGetState = { + __typename?: 'RoomGetState'; + /** since v0.7.2 */ + createdAt?: Maybe; + /** この部屋の作成者。Firebase AuthenticationのUserUidで表現される。 */ + createdBy: Scalars['String']['output']; + /** since v0.7.2 */ + isBookmarked: Scalars['Boolean']['output']; + /** Current revision of Room. Whenever Room is updated, this value is incremented by 1. This value is required when you apply RoomOperation. / Roomの現在のリビジョン。Roomが更新されるたび、この値は1増加する。RoomOperationを適用する際に必要となる。 */ + revision: Scalars['Float']['output']; + /** since v0.7.2 */ + role?: Maybe; + /** room.state をJSON化したもの */ + stateJson: Scalars['String']['output']; + /** + * データベースのRoomエンティティが最後に更新された日時。Roomエンティティのみが対象であるため、例えばメッセージの投稿などは反映されないことに注意。 + * since v0.7.2 + */ + updatedAt?: Maybe; +}; +export type RoomMessageEvent = PieceLog | RoomMessagesReset | RoomPrivateMessage | RoomPrivateMessageUpdate | RoomPublicChannel | RoomPublicChannelUpdate | RoomPublicMessage | RoomPublicMessageUpdate | RoomSoundEffect; +export type RoomMessageSyntaxError = { + __typename?: 'RoomMessageSyntaxError'; + errorMessage: Scalars['String']['output']; +}; +export type RoomMessages = { + __typename?: 'RoomMessages'; + pieceLogs: Array; + privateMessages: Array; + publicChannels: Array; + publicMessages: Array; + soundEffects: Array; +}; +export type RoomMessagesReset = { + __typename?: 'RoomMessagesReset'; + publicMessagesDeleted: Scalars['Boolean']['output']; +}; +export type RoomOperation = { + __typename?: 'RoomOperation'; + /** operateRoomを呼んだ人物。promoteなどの結果の場合はnullishになる。 */ + operatedBy?: Maybe; + revisionTo: Scalars['Float']['output']; + /** room.upOperationをJSONにしたもの。idならばnullish。 */ + valueJson: Scalars['String']['output']; +}; +export type RoomOperationInput = { + /** クライアントを識別するID。適当なIDをクライアント側で生成して渡す。Operationごとに変える必要はない */ + clientId: Scalars['String']['input']; + /** room.upOperationをJSONにしたもの */ + valueJson: Scalars['String']['input']; +}; +export type RoomPrivateMessage = { + __typename?: 'RoomPrivateMessage'; + altTextToSecret?: Maybe; + /** 発言がCharacterと紐付いているときはnon-nullish。PLとしての発言、もしくはcreatedByがnullishのときはnullish。後からCharacterの値が更新されても、この値が更新されることはない。 */ + character?: Maybe; + commandResult?: Maybe; + createdAt: Scalars['Float']['output']; + createdBy?: Maybe; + customName?: Maybe; + initText?: Maybe; + initTextSource?: Maybe; + isSecret: Scalars['Boolean']['output']; + messageId: Scalars['String']['output']; + textColor?: Maybe; + updatedAt?: Maybe; + updatedText?: Maybe; + visibleTo: Array; +}; +export type RoomPrivateMessageUpdate = { + __typename?: 'RoomPrivateMessageUpdate'; + altTextToSecret?: Maybe; + commandResult?: Maybe; + initText?: Maybe; + initTextSource?: Maybe; + isSecret: Scalars['Boolean']['output']; + messageId: Scalars['String']['output']; + updatedAt?: Maybe; + updatedText?: Maybe; +}; +export type RoomPublicChannel = { + __typename?: 'RoomPublicChannel'; + /** 現在の仕様では、$system, $free, '1', … , '10' の12個のみをサポートしている。このうち、$systemはシステムメッセージ専用チャンネルであるため誰も書き込むことができない。'1', …, '10'はSpectatorが書き込むことはできないが、$freeはSpectatorも書き込むことができる。 */ + key: Scalars['String']['output']; + name?: Maybe; +}; +export type RoomPublicChannelUpdate = { + __typename?: 'RoomPublicChannelUpdate'; + key: Scalars['String']['output']; + name?: Maybe; +}; +export type RoomPublicMessage = { + __typename?: 'RoomPublicMessage'; + altTextToSecret?: Maybe; + channelKey: Scalars['String']['output']; + /** 発言がCharacterと紐付いているときはnon-nullish。PLとしての発言、もしくはcreatedByがnullishのときはnullish。 */ + character?: Maybe; + commandResult?: Maybe; + createdAt: Scalars['Float']['output']; + /** channelKeyが$system以外のときは、システムメッセージならばnullishで、そうでないならばnullishではない。$systemのとき、原則として全てシステムメッセージであるため常にnullishになる。 */ + createdBy?: Maybe; + customName?: Maybe; + initText?: Maybe; + initTextSource?: Maybe; + isSecret: Scalars['Boolean']['output']; + messageId: Scalars['String']['output']; + textColor?: Maybe; + updatedAt?: Maybe; + updatedText?: Maybe; +}; +export type RoomPublicMessageUpdate = { + __typename?: 'RoomPublicMessageUpdate'; + altTextToSecret?: Maybe; + commandResult?: Maybe; + initText?: Maybe; + initTextSource?: Maybe; + isSecret: Scalars['Boolean']['output']; + messageId: Scalars['String']['output']; + updatedAt?: Maybe; + updatedText?: Maybe; +}; +export type RoomSoundEffect = { + __typename?: 'RoomSoundEffect'; + createdAt: Scalars['Float']['output']; + createdBy?: Maybe; + file: FilePath; + messageId: Scalars['String']['output']; + volume: Scalars['Float']['output']; +}; +export type SemVer = { + __typename?: 'SemVer'; + major: Scalars['Float']['output']; + minor: Scalars['Float']['output']; + patch: Scalars['Float']['output']; + prerelease?: Maybe; +}; +export type ServerInfo = { + __typename?: 'ServerInfo'; + uploaderEnabled: Scalars['Boolean']['output']; + version: SemVer; +}; +export type Subscription = { + __typename?: 'Subscription'; + /** GraphQL の動作テストに用いられます。3rd-party の Web サーバーを作成する際は利用しなくて構いません。 */ + pong: Pong; + /** この Subscription を直接実行することは非推奨です。代わりに @flocon-trpg/sdk を用いてください。 */ + roomEvent?: Maybe; +}; +export type SubscriptionRoomEventArgs = { + id: Scalars['String']['input']; +}; +export type UpdateBookmarkFailureResult = { + __typename?: 'UpdateBookmarkFailureResult'; + failureType: UpdateBookmarkFailureType; +}; +export declare enum UpdateBookmarkFailureType { + NotFound = "NotFound" +} +export type UpdateBookmarkResult = UpdateBookmarkFailureResult | UpdateBookmarkSuccessResult; +export type UpdateBookmarkSuccessResult = { + __typename?: 'UpdateBookmarkSuccessResult'; + currentValue: Scalars['Boolean']['output']; + prevValue: Scalars['Boolean']['output']; +}; +export type UpdatedText = { + __typename?: 'UpdatedText'; + currentText?: Maybe; + updatedAt: Scalars['Float']['output']; +}; +export type WriteRoomPrivateMessageFailureResult = { + __typename?: 'WriteRoomPrivateMessageFailureResult'; + failureType: WriteRoomPrivateMessageFailureType; +}; +export declare enum WriteRoomPrivateMessageFailureType { + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound", + SyntaxError = "SyntaxError", + VisibleToIsInvalid = "VisibleToIsInvalid" +} +export type WriteRoomPrivateMessageResult = RoomMessageSyntaxError | RoomPrivateMessage | WriteRoomPrivateMessageFailureResult; +export type WriteRoomPublicMessageFailureResult = { + __typename?: 'WriteRoomPublicMessageFailureResult'; + failureType: WriteRoomPublicMessageFailureType; +}; +export declare enum WriteRoomPublicMessageFailureType { + NotAllowedChannelKey = "NotAllowedChannelKey", + NotAuthorized = "NotAuthorized", + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound", + SyntaxError = "SyntaxError" +} +export type WriteRoomPublicMessageResult = RoomMessageSyntaxError | RoomPublicMessage | WriteRoomPublicMessageFailureResult; +export type WriteRoomSoundEffectFailureResult = { + __typename?: 'WriteRoomSoundEffectFailureResult'; + failureType: WriteRoomSoundEffectFailureType; +}; +export declare enum WriteRoomSoundEffectFailureType { + NotAuthorized = "NotAuthorized", + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound" +} +export type WriteRoomSoundEffectResult = RoomSoundEffect | WriteRoomSoundEffectFailureResult; +export type WritingMessageStatus = { + __typename?: 'WritingMessageStatus'; + status: WritingMessageStatusType; + updatedAt: Scalars['Float']['output']; + userUid: Scalars['String']['output']; +}; +export declare enum WritingMessageStatusInputType { + Cleared = "Cleared", + KeepWriting = "KeepWriting", + StartWriting = "StartWriting" +} +export declare enum WritingMessageStatusType { + Cleared = "Cleared", + Disconnected = "Disconnected", + Submit = "Submit", + Writing = "Writing" +} +export type CharacterValueForMessageFragment = { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; +}; +type CreateRoomResult_CreateRoomFailureResult_Fragment = { + __typename: 'CreateRoomFailureResult'; + failureType: CreateRoomFailureType; +}; +type CreateRoomResult_CreateRoomSuccessResult_Fragment = { + __typename: 'CreateRoomSuccessResult'; + id: string; + room: { + __typename?: 'RoomGetState'; + revision: number; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + stateJson: string; + }; +}; +export type CreateRoomResultFragment = CreateRoomResult_CreateRoomFailureResult_Fragment | CreateRoomResult_CreateRoomSuccessResult_Fragment; +export type FileItemFragment = { + __typename?: 'FileItem'; + filename: string; + thumbFilename?: string | null; + screenname: string; + createdBy: string; + createdAt?: number | null; + listType: FileListType; +}; +export type FilePathFragment = { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; +}; +export type FileTagFragment = { + __typename?: 'FileTag'; + id: string; + name: string; +}; +export type GetNonJoinedRoomResultFragment = { + __typename?: 'GetNonJoinedRoomResult'; + roomAsListItem: { + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }; +}; +type GetRoomListResult_GetRoomsListFailureResult_Fragment = { + __typename: 'GetRoomsListFailureResult'; + failureType: GetRoomFailureType; +}; +type GetRoomListResult_GetRoomsListSuccessResult_Fragment = { + __typename: 'GetRoomsListSuccessResult'; + rooms: Array<{ + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }>; +}; +export type GetRoomListResultFragment = GetRoomListResult_GetRoomsListFailureResult_Fragment | GetRoomListResult_GetRoomsListSuccessResult_Fragment; +type GetRoomResult_GetJoinedRoomResult_Fragment = { + __typename: 'GetJoinedRoomResult'; + role: ParticipantRole; + room: { + __typename?: 'RoomGetState'; + revision: number; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + stateJson: string; + }; +}; +type GetRoomResult_GetNonJoinedRoomResult_Fragment = { + __typename: 'GetNonJoinedRoomResult'; + roomAsListItem: { + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }; +}; +type GetRoomResult_GetRoomFailureResult_Fragment = { + __typename: 'GetRoomFailureResult'; + failureType: GetRoomFailureType; +}; +export type GetRoomResultFragment = GetRoomResult_GetJoinedRoomResult_Fragment | GetRoomResult_GetNonJoinedRoomResult_Fragment | GetRoomResult_GetRoomFailureResult_Fragment; +type JoinRoomResult_JoinRoomFailureResult_Fragment = { + __typename: 'JoinRoomFailureResult'; + failureType: JoinRoomFailureType; +}; +type JoinRoomResult_JoinRoomSuccessResult_Fragment = { + __typename: 'JoinRoomSuccessResult'; + operation?: { + __typename?: 'RoomOperation'; + revisionTo: number; + valueJson: string; + operatedBy?: { + __typename?: 'OperatedBy'; + userUid: string; + clientId: string; + } | null; + } | null; +}; +export type JoinRoomResultFragment = JoinRoomResult_JoinRoomFailureResult_Fragment | JoinRoomResult_JoinRoomSuccessResult_Fragment; +export type PieceLogFragment = { + __typename?: 'PieceLog'; + messageId: string; + stateId: string; + createdAt: number; + logType: PieceLogType; + valueJson: string; +}; +export type RoomAsListItemFragment = { + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; +}; +export type RoomGetStateFragment = { + __typename?: 'RoomGetState'; + revision: number; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + stateJson: string; +}; +export type RoomOperationFragment = { + __typename?: 'RoomOperation'; + revisionTo: number; + valueJson: string; + operatedBy?: { + __typename?: 'OperatedBy'; + userUid: string; + clientId: string; + } | null; +}; +export type RoomPublicChannelFragment = { + __typename?: 'RoomPublicChannel'; + key: string; + name?: string | null; +}; +export type RoomPublicMessageFragment = { + __typename?: 'RoomPublicMessage'; + messageId: string; + channelKey: string; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; +}; +export type RoomPrivateMessageFragment = { + __typename?: 'RoomPrivateMessage'; + messageId: string; + visibleTo: Array; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; +}; +export type RoomSoundEffectFragment = { + __typename?: 'RoomSoundEffect'; + messageId: string; + createdBy?: string | null; + createdAt: number; + volume: number; + file: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + }; +}; +type RoomMessageEvent_PieceLog_Fragment = { + __typename: 'PieceLog'; + messageId: string; + stateId: string; + createdAt: number; + logType: PieceLogType; + valueJson: string; +}; +type RoomMessageEvent_RoomMessagesReset_Fragment = { + __typename: 'RoomMessagesReset'; +}; +type RoomMessageEvent_RoomPrivateMessage_Fragment = { + __typename: 'RoomPrivateMessage'; + messageId: string; + visibleTo: Array; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; +}; +type RoomMessageEvent_RoomPrivateMessageUpdate_Fragment = { + __typename: 'RoomPrivateMessageUpdate'; + messageId: string; + initText?: string | null; + initTextSource?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; +}; +type RoomMessageEvent_RoomPublicChannel_Fragment = { + __typename: 'RoomPublicChannel'; + key: string; + name?: string | null; +}; +type RoomMessageEvent_RoomPublicChannelUpdate_Fragment = { + __typename: 'RoomPublicChannelUpdate'; + key: string; + name?: string | null; +}; +type RoomMessageEvent_RoomPublicMessage_Fragment = { + __typename: 'RoomPublicMessage'; + messageId: string; + channelKey: string; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; +}; +type RoomMessageEvent_RoomPublicMessageUpdate_Fragment = { + __typename: 'RoomPublicMessageUpdate'; + messageId: string; + initText?: string | null; + initTextSource?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; +}; +type RoomMessageEvent_RoomSoundEffect_Fragment = { + __typename: 'RoomSoundEffect'; + messageId: string; + createdBy?: string | null; + createdAt: number; + volume: number; + file: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + }; +}; +export type RoomMessageEventFragment = RoomMessageEvent_PieceLog_Fragment | RoomMessageEvent_RoomMessagesReset_Fragment | RoomMessageEvent_RoomPrivateMessage_Fragment | RoomMessageEvent_RoomPrivateMessageUpdate_Fragment | RoomMessageEvent_RoomPublicChannel_Fragment | RoomMessageEvent_RoomPublicChannelUpdate_Fragment | RoomMessageEvent_RoomPublicMessage_Fragment | RoomMessageEvent_RoomPublicMessageUpdate_Fragment | RoomMessageEvent_RoomSoundEffect_Fragment; +export type SemVerFragment = { + __typename?: 'SemVer'; + major: number; + minor: number; + patch: number; + prerelease?: { + __typename?: 'Prerelease'; + type: PrereleaseType; + version: number; + } | null; +}; +export type GetAvailableGameSystemsQueryVariables = Exact<{ + [key: string]: never; +}>; +export type GetAvailableGameSystemsQuery = { + __typename?: 'Query'; + result: { + __typename?: 'GetAvailableGameSystemsResult'; + value: Array<{ + __typename?: 'AvailableGameSystem'; + id: string; + name: string; + sortKey: string; + }>; + }; +}; +export type GetDiceHelpMessagesQueryVariables = Exact<{ + id: Scalars['String']['input']; +}>; +export type GetDiceHelpMessagesQuery = { + __typename?: 'Query'; + result?: string | null; +}; +export type GetFilesQueryVariables = Exact<{ + input: GetFilesInput; +}>; +export type GetFilesQuery = { + __typename?: 'Query'; + result: { + __typename?: 'GetFilesResult'; + files: Array<{ + __typename?: 'FileItem'; + filename: string; + thumbFilename?: string | null; + screenname: string; + createdBy: string; + createdAt?: number | null; + listType: FileListType; + }>; + }; +}; +export type GetRoomQueryVariables = Exact<{ + id: Scalars['String']['input']; +}>; +export type GetRoomQuery = { + __typename?: 'Query'; + result: { + __typename: 'GetJoinedRoomResult'; + role: ParticipantRole; + room: { + __typename?: 'RoomGetState'; + revision: number; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + stateJson: string; + }; + } | { + __typename: 'GetNonJoinedRoomResult'; + roomAsListItem: { + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }; + } | { + __typename: 'GetRoomFailureResult'; + failureType: GetRoomFailureType; + }; +}; +export type GetRoomsListQueryVariables = Exact<{ + [key: string]: never; +}>; +export type GetRoomsListQuery = { + __typename?: 'Query'; + result: { + __typename: 'GetRoomsListFailureResult'; + failureType: GetRoomFailureType; + } | { + __typename: 'GetRoomsListSuccessResult'; + rooms: Array<{ + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }>; + }; +}; +export type GetMessagesQueryVariables = Exact<{ + roomId: Scalars['String']['input']; +}>; +export type GetMessagesQuery = { + __typename?: 'Query'; + result: { + __typename: 'GetRoomMessagesFailureResult'; + failureType: GetRoomMessagesFailureType; + } | { + __typename: 'RoomMessages'; + publicMessages: Array<{ + __typename?: 'RoomPublicMessage'; + messageId: string; + channelKey: string; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + }>; + privateMessages: Array<{ + __typename?: 'RoomPrivateMessage'; + messageId: string; + visibleTo: Array; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + }>; + pieceLogs: Array<{ + __typename?: 'PieceLog'; + messageId: string; + stateId: string; + createdAt: number; + logType: PieceLogType; + valueJson: string; + }>; + publicChannels: Array<{ + __typename?: 'RoomPublicChannel'; + key: string; + name?: string | null; + }>; + soundEffects: Array<{ + __typename?: 'RoomSoundEffect'; + messageId: string; + createdBy?: string | null; + createdAt: number; + volume: number; + file: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + }; + }>; + }; +}; +export type GetLogQueryVariables = Exact<{ + roomId: Scalars['String']['input']; +}>; +export type GetLogQuery = { + __typename?: 'Query'; + result: { + __typename: 'GetRoomLogFailureResult'; + failureType: GetRoomLogFailureType; + } | { + __typename: 'RoomMessages'; + publicMessages: Array<{ + __typename?: 'RoomPublicMessage'; + messageId: string; + channelKey: string; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + }>; + privateMessages: Array<{ + __typename?: 'RoomPrivateMessage'; + messageId: string; + visibleTo: Array; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + }>; + pieceLogs: Array<{ + __typename?: 'PieceLog'; + messageId: string; + stateId: string; + createdAt: number; + logType: PieceLogType; + valueJson: string; + }>; + publicChannels: Array<{ + __typename?: 'RoomPublicChannel'; + key: string; + name?: string | null; + }>; + soundEffects: Array<{ + __typename?: 'RoomSoundEffect'; + messageId: string; + createdBy?: string | null; + createdAt: number; + volume: number; + file: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + }; + }>; + }; +}; +export type GetMyRolesQueryVariables = Exact<{ + [key: string]: never; +}>; +export type GetMyRolesQuery = { + __typename?: 'Query'; + result: { + __typename?: 'Roles'; + admin: boolean; + }; +}; +export type GetRoomConnectionsQueryVariables = Exact<{ + roomId: Scalars['String']['input']; +}>; +export type GetRoomConnectionsQuery = { + __typename?: 'Query'; + result: { + __typename: 'GetRoomConnectionsFailureResult'; + failureType: GetRoomConnectionFailureType; + } | { + __typename: 'GetRoomConnectionsSuccessResult'; + fetchedAt: number; + connectedUserUids: Array; + }; +}; +export type GetServerInfoQueryVariables = Exact<{ + [key: string]: never; +}>; +export type GetServerInfoQuery = { + __typename?: 'Query'; + result: { + __typename?: 'ServerInfo'; + uploaderEnabled: boolean; + version: { + __typename?: 'SemVer'; + major: number; + minor: number; + patch: number; + prerelease?: { + __typename?: 'Prerelease'; + type: PrereleaseType; + version: number; + } | null; + }; + }; +}; +export type IsEntryQueryVariables = Exact<{ + [key: string]: never; +}>; +export type IsEntryQuery = { + __typename?: 'Query'; + result: boolean; +}; +export type GetRoomAsListItemQueryVariables = Exact<{ + roomId: Scalars['String']['input']; +}>; +export type GetRoomAsListItemQuery = { + __typename?: 'Query'; + result: { + __typename: 'GetRoomAsListItemFailureResult'; + failureType: GetRoomFailureType; + } | { + __typename: 'GetRoomAsListItemSuccessResult'; + room: { + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }; + }; +}; +export type AnswerRollCallMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + rollCallId: Scalars['String']['input']; + answer: Scalars['Boolean']['input']; +}>; +export type AnswerRollCallMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'AnswerRollCallResult'; + failureType?: AnswerRollCallFailureType | null; + }; +}; +export type CreateFileTagMutationVariables = Exact<{ + tagName: Scalars['String']['input']; +}>; +export type CreateFileTagMutation = { + __typename?: 'Mutation'; + result?: { + __typename?: 'FileTag'; + id: string; + name: string; + } | null; +}; +export type ChangeParticipantNameMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + newName: Scalars['String']['input']; +}>; +export type ChangeParticipantNameMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'ChangeParticipantNameResult'; + failureType?: ChangeParticipantNameFailureType | null; + }; +}; +export type CloseRollCallMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + rollCallId: Scalars['String']['input']; +}>; +export type CloseRollCallMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'CloseRollCallResult'; + failureType?: CloseRollCallFailureType | null; + }; +}; +export type CreateRoomMutationVariables = Exact<{ + input: CreateRoomInput; +}>; +export type CreateRoomMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'CreateRoomFailureResult'; + failureType: CreateRoomFailureType; + } | { + __typename: 'CreateRoomSuccessResult'; + id: string; + room: { + __typename?: 'RoomGetState'; + revision: number; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + stateJson: string; + }; + }; +}; +export type DeleteFilesMutationVariables = Exact<{ + filenames: Array | Scalars['String']['input']; +}>; +export type DeleteFilesMutation = { + __typename?: 'Mutation'; + result: Array; +}; +export type DeleteFileTagMutationVariables = Exact<{ + tagId: Scalars['String']['input']; +}>; +export type DeleteFileTagMutation = { + __typename?: 'Mutation'; + result: boolean; +}; +export type DeleteRoomMutationVariables = Exact<{ + id: Scalars['String']['input']; +}>; +export type DeleteRoomMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'DeleteRoomResult'; + failureType?: DeleteRoomFailureType | null; + }; +}; +export type DeleteRoomAsAdminMutationVariables = Exact<{ + id: Scalars['String']['input']; +}>; +export type DeleteRoomAsAdminMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'DeleteRoomAsAdminResult'; + failureType?: DeleteRoomAsAdminFailureType | null; + }; +}; +export type EditFileTagsMutationVariables = Exact<{ + input: EditFileTagsInput; +}>; +export type EditFileTagsMutation = { + __typename?: 'Mutation'; + result: boolean; +}; +export type JoinRoomAsPlayerMutationVariables = Exact<{ + id: Scalars['String']['input']; + name: Scalars['String']['input']; + password?: InputMaybe; +}>; +export type JoinRoomAsPlayerMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'JoinRoomFailureResult'; + failureType: JoinRoomFailureType; + } | { + __typename: 'JoinRoomSuccessResult'; + operation?: { + __typename?: 'RoomOperation'; + revisionTo: number; + valueJson: string; + operatedBy?: { + __typename?: 'OperatedBy'; + userUid: string; + clientId: string; + } | null; + } | null; + }; +}; +export type JoinRoomAsSpectatorMutationVariables = Exact<{ + id: Scalars['String']['input']; + name: Scalars['String']['input']; + password?: InputMaybe; +}>; +export type JoinRoomAsSpectatorMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'JoinRoomFailureResult'; + failureType: JoinRoomFailureType; + } | { + __typename: 'JoinRoomSuccessResult'; + operation?: { + __typename?: 'RoomOperation'; + revisionTo: number; + valueJson: string; + operatedBy?: { + __typename?: 'OperatedBy'; + userUid: string; + clientId: string; + } | null; + } | null; + }; +}; +export type EntryToServerMutationVariables = Exact<{ + password: Scalars['String']['input']; +}>; +export type EntryToServerMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'EntryToServerResult'; + type: EntryToServerResultType; + }; +}; +export type LeaveRoomMutationVariables = Exact<{ + id: Scalars['String']['input']; +}>; +export type LeaveRoomMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'LeaveRoomResult'; + failureType?: LeaveRoomFailureType | null; + }; +}; +export type OperateMutationVariables = Exact<{ + id: Scalars['String']['input']; + revisionFrom: Scalars['Int']['input']; + operation: RoomOperationInput; + requestId: Scalars['String']['input']; +}>; +export type OperateMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'OperateRoomFailureResult'; + failureType: OperateRoomFailureType; + } | { + __typename: 'OperateRoomIdResult'; + requestId: string; + } | { + __typename: 'OperateRoomNonJoinedResult'; + roomAsListItem: { + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }; + } | { + __typename: 'OperateRoomSuccessResult'; + operation: { + __typename?: 'RoomOperation'; + revisionTo: number; + valueJson: string; + operatedBy?: { + __typename?: 'OperatedBy'; + userUid: string; + clientId: string; + } | null; + }; + }; +}; +export type PerformRollCallMutationVariables = Exact<{ + input: PerformRollCallInput; +}>; +export type PerformRollCallMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'PerformRollCallResult'; + failureType?: PerformRollCallFailureType | null; + }; +}; +export type PingMutationVariables = Exact<{ + value: Scalars['Float']['input']; +}>; +export type PingMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'Pong'; + createdBy?: string | null; + value: number; + }; +}; +export type PromoteToPlayerMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + password?: InputMaybe; +}>; +export type PromoteToPlayerMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'PromoteResult'; + failureType?: PromoteFailureType | null; + }; +}; +export type RenameFilesMutationVariables = Exact<{ + input: Array | RenameFileInput; +}>; +export type RenameFilesMutation = { + __typename?: 'Mutation'; + result: Array; +}; +export type ResetMessagesMutationVariables = Exact<{ + roomId: Scalars['String']['input']; +}>; +export type ResetMessagesMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'ResetRoomMessagesResult'; + failureType?: ResetRoomMessagesFailureType | null; + }; +}; +export type UpdateBookmarkMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + newValue: Scalars['Boolean']['input']; +}>; +export type UpdateBookmarkMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'UpdateBookmarkFailureResult'; + failureType: UpdateBookmarkFailureType; + } | { + __typename: 'UpdateBookmarkSuccessResult'; + prevValue: boolean; + currentValue: boolean; + }; +}; +export type WritePublicMessageMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + text: Scalars['String']['input']; + textColor?: InputMaybe; + channelKey: Scalars['String']['input']; + characterId?: InputMaybe; + customName?: InputMaybe; + gameType?: InputMaybe; +}>; +export type WritePublicMessageMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'RoomMessageSyntaxError'; + errorMessage: string; + } | { + __typename: 'RoomPublicMessage'; + messageId: string; + channelKey: string; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + } | { + __typename: 'WriteRoomPublicMessageFailureResult'; + failureType: WriteRoomPublicMessageFailureType; + }; +}; +export type WritePrivateMessageMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + visibleTo: Array | Scalars['String']['input']; + text: Scalars['String']['input']; + textColor?: InputMaybe; + characterId?: InputMaybe; + customName?: InputMaybe; + gameType?: InputMaybe; +}>; +export type WritePrivateMessageMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'RoomMessageSyntaxError'; + errorMessage: string; + } | { + __typename: 'RoomPrivateMessage'; + messageId: string; + visibleTo: Array; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + } | { + __typename: 'WriteRoomPrivateMessageFailureResult'; + failureType: WriteRoomPrivateMessageFailureType; + }; +}; +export type WriteRoomSoundEffectMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + file: FilePathInput; + volume: Scalars['Float']['input']; +}>; +export type WriteRoomSoundEffectMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'RoomSoundEffect'; + messageId: string; + createdBy?: string | null; + createdAt: number; + volume: number; + file: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + }; + } | { + __typename: 'WriteRoomSoundEffectFailureResult'; + failureType: WriteRoomSoundEffectFailureType; + }; +}; +export type EditMessageMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + messageId: Scalars['String']['input']; + text: Scalars['String']['input']; +}>; +export type EditMessageMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'EditMessageResult'; + failureType?: EditMessageFailureType | null; + }; +}; +export type DeleteMessageMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + messageId: Scalars['String']['input']; +}>; +export type DeleteMessageMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'DeleteMessageResult'; + failureType?: DeleteMessageFailureType | null; + }; +}; +export type MakeMessageNotSecretMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + messageId: Scalars['String']['input']; +}>; +export type MakeMessageNotSecretMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'MakeMessageNotSecretResult'; + failureType?: MakeMessageNotSecretFailureType | null; + }; +}; +export type UpdateWritingMessageStatusMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + newStatus: WritingMessageStatusInputType; +}>; +export type UpdateWritingMessageStatusMutation = { + __typename?: 'Mutation'; + result: boolean; +}; +export type RoomEventSubscriptionVariables = Exact<{ + id: Scalars['String']['input']; +}>; +export type RoomEventSubscription = { + __typename?: 'Subscription'; + roomEvent?: { + __typename?: 'RoomEvent'; + isRoomMessagesResetEvent: boolean; + roomOperation?: { + __typename?: 'RoomOperation'; + revisionTo: number; + valueJson: string; + operatedBy?: { + __typename?: 'OperatedBy'; + userUid: string; + clientId: string; + } | null; + } | null; + deleteRoomOperation?: { + __typename?: 'DeleteRoomOperation'; + deletedBy: string; + } | null; + roomMessageEvent?: { + __typename: 'PieceLog'; + messageId: string; + stateId: string; + createdAt: number; + logType: PieceLogType; + valueJson: string; + } | { + __typename: 'RoomMessagesReset'; + } | { + __typename: 'RoomPrivateMessage'; + messageId: string; + visibleTo: Array; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + } | { + __typename: 'RoomPrivateMessageUpdate'; + messageId: string; + initText?: string | null; + initTextSource?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + } | { + __typename: 'RoomPublicChannel'; + key: string; + name?: string | null; + } | { + __typename: 'RoomPublicChannelUpdate'; + key: string; + name?: string | null; + } | { + __typename: 'RoomPublicMessage'; + messageId: string; + channelKey: string; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + } | { + __typename: 'RoomPublicMessageUpdate'; + messageId: string; + initText?: string | null; + initTextSource?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + } | { + __typename: 'RoomSoundEffect'; + messageId: string; + createdBy?: string | null; + createdAt: number; + volume: number; + file: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + }; + } | null; + roomConnectionEvent?: { + __typename?: 'RoomConnectionEvent'; + userUid: string; + isConnected: boolean; + updatedAt: number; + } | null; + writingMessageStatus?: { + __typename?: 'WritingMessageStatus'; + userUid: string; + status: WritingMessageStatusType; + } | null; + } | null; +}; +export type PongSubscriptionVariables = Exact<{ + [key: string]: never; +}>; +export type PongSubscription = { + __typename?: 'Subscription'; + pong: { + __typename?: 'Pong'; + createdBy?: string | null; + value: number; + }; +}; +export declare const RoomGetStateFragmentDoc: DocumentNode; +export declare const CreateRoomResultFragmentDoc: DocumentNode; +export declare const FileItemFragmentDoc: DocumentNode; +export declare const FileTagFragmentDoc: DocumentNode; +export declare const RoomAsListItemFragmentDoc: DocumentNode; +export declare const GetRoomListResultFragmentDoc: DocumentNode; +export declare const GetNonJoinedRoomResultFragmentDoc: DocumentNode; +export declare const GetRoomResultFragmentDoc: DocumentNode; +export declare const RoomOperationFragmentDoc: DocumentNode; +export declare const JoinRoomResultFragmentDoc: DocumentNode; +export declare const FilePathFragmentDoc: DocumentNode; +export declare const RoomSoundEffectFragmentDoc: DocumentNode; +export declare const CharacterValueForMessageFragmentDoc: DocumentNode; +export declare const RoomPublicMessageFragmentDoc: DocumentNode; +export declare const RoomPublicChannelFragmentDoc: DocumentNode; +export declare const RoomPrivateMessageFragmentDoc: DocumentNode; +export declare const PieceLogFragmentDoc: DocumentNode; +export declare const RoomMessageEventFragmentDoc: DocumentNode; +export declare const SemVerFragmentDoc: DocumentNode; +export declare const GetAvailableGameSystemsDocument: DocumentNode; +export declare const GetDiceHelpMessagesDocument: DocumentNode; +export declare const GetFilesDocument: DocumentNode; +export declare const GetRoomDocument: DocumentNode; +export declare const GetRoomsListDocument: DocumentNode; +export declare const GetMessagesDocument: DocumentNode; +export declare const GetLogDocument: DocumentNode; +export declare const GetMyRolesDocument: DocumentNode; +export declare const GetRoomConnectionsDocument: DocumentNode; +export declare const GetServerInfoDocument: DocumentNode; +export declare const IsEntryDocument: DocumentNode; +export declare const GetRoomAsListItemDocument: DocumentNode; +export declare const AnswerRollCallDocument: DocumentNode; +export declare const CreateFileTagDocument: DocumentNode; +export declare const ChangeParticipantNameDocument: DocumentNode; +export declare const CloseRollCallDocument: DocumentNode; +export declare const CreateRoomDocument: DocumentNode; +export declare const DeleteFilesDocument: DocumentNode; +export declare const DeleteFileTagDocument: DocumentNode; +export declare const DeleteRoomDocument: DocumentNode; +export declare const DeleteRoomAsAdminDocument: DocumentNode; +export declare const EditFileTagsDocument: DocumentNode; +export declare const JoinRoomAsPlayerDocument: DocumentNode; +export declare const JoinRoomAsSpectatorDocument: DocumentNode; +export declare const EntryToServerDocument: DocumentNode; +export declare const LeaveRoomDocument: DocumentNode; +export declare const OperateDocument: DocumentNode; +export declare const PerformRollCallDocument: DocumentNode; +export declare const PingDocument: DocumentNode; +export declare const PromoteToPlayerDocument: DocumentNode; +export declare const RenameFilesDocument: DocumentNode; +export declare const ResetMessagesDocument: DocumentNode; +export declare const UpdateBookmarkDocument: DocumentNode; +export declare const WritePublicMessageDocument: DocumentNode; +export declare const WritePrivateMessageDocument: DocumentNode; +export declare const WriteRoomSoundEffectDocument: DocumentNode; +export declare const EditMessageDocument: DocumentNode; +export declare const DeleteMessageDocument: DocumentNode; +export declare const MakeMessageNotSecretDocument: DocumentNode; +export declare const UpdateWritingMessageStatusDocument: DocumentNode; +export declare const RoomEventDocument: DocumentNode; +export declare const PongDocument: DocumentNode; +export {}; +//# sourceMappingURL=graphql.d.ts.map \ No newline at end of file diff --git a/packages/typed-document-node/dist/cjs/generated/graphql.d.ts.map b/packages/typed-document-node/dist/cjs/generated/graphql.d.ts.map new file mode 100644 index 000000000..70656fb1b --- /dev/null +++ b/packages/typed-document-node/dist/cjs/generated/graphql.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/generated/graphql.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/typed-document-node/dist/cjs/index.d.ts b/packages/typed-document-node/dist/cjs/index.d.ts new file mode 100644 index 000000000..5627165a2 --- /dev/null +++ b/packages/typed-document-node/dist/cjs/index.d.ts @@ -0,0 +1,2 @@ +export * from './generated/graphql'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/typed-document-node/dist/cjs/index.d.ts.map b/packages/typed-document-node/dist/cjs/index.d.ts.map new file mode 100644 index 000000000..4345b20ee --- /dev/null +++ b/packages/typed-document-node/dist/cjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"} \ No newline at end of file diff --git a/packages/typed-document-node/dist/cjs/index.js b/packages/typed-document-node/dist/cjs/index.js new file mode 100644 index 000000000..6a4b292ac --- /dev/null +++ b/packages/typed-document-node/dist/cjs/index.js @@ -0,0 +1,6286 @@ +'use strict'; + +exports.AnswerRollCallFailureType = void 0; +(function (AnswerRollCallFailureType) { + AnswerRollCallFailureType["NotAuthorizedParticipant"] = "NotAuthorizedParticipant"; + AnswerRollCallFailureType["RollCallNotFound"] = "RollCallNotFound"; + AnswerRollCallFailureType["RoomNotFound"] = "RoomNotFound"; + AnswerRollCallFailureType["TooManyRequests"] = "TooManyRequests"; +})(exports.AnswerRollCallFailureType || (exports.AnswerRollCallFailureType = {})); +exports.ChangeParticipantNameFailureType = void 0; +(function (ChangeParticipantNameFailureType) { + ChangeParticipantNameFailureType["NotFound"] = "NotFound"; + ChangeParticipantNameFailureType["NotParticipant"] = "NotParticipant"; +})(exports.ChangeParticipantNameFailureType || (exports.ChangeParticipantNameFailureType = {})); +exports.CloseRollCallFailureType = void 0; +(function (CloseRollCallFailureType) { + CloseRollCallFailureType["AlreadyClosed"] = "AlreadyClosed"; + CloseRollCallFailureType["NotAuthorizedParticipant"] = "NotAuthorizedParticipant"; + CloseRollCallFailureType["RollCallNotFound"] = "RollCallNotFound"; + CloseRollCallFailureType["RoomNotFound"] = "RoomNotFound"; + CloseRollCallFailureType["TooManyRequests"] = "TooManyRequests"; +})(exports.CloseRollCallFailureType || (exports.CloseRollCallFailureType = {})); +exports.CreateRoomFailureType = void 0; +(function (CreateRoomFailureType) { + CreateRoomFailureType["UnknownError"] = "UnknownError"; +})(exports.CreateRoomFailureType || (exports.CreateRoomFailureType = {})); +exports.DeleteMessageFailureType = void 0; +(function (DeleteMessageFailureType) { + DeleteMessageFailureType["MessageDeleted"] = "MessageDeleted"; + DeleteMessageFailureType["MessageNotFound"] = "MessageNotFound"; + DeleteMessageFailureType["NotParticipant"] = "NotParticipant"; + DeleteMessageFailureType["NotYourMessage"] = "NotYourMessage"; + DeleteMessageFailureType["RoomNotFound"] = "RoomNotFound"; +})(exports.DeleteMessageFailureType || (exports.DeleteMessageFailureType = {})); +exports.DeleteRoomAsAdminFailureType = void 0; +(function (DeleteRoomAsAdminFailureType) { + DeleteRoomAsAdminFailureType["NotFound"] = "NotFound"; +})(exports.DeleteRoomAsAdminFailureType || (exports.DeleteRoomAsAdminFailureType = {})); +exports.DeleteRoomFailureType = void 0; +(function (DeleteRoomFailureType) { + DeleteRoomFailureType["NotCreatedByYou"] = "NotCreatedByYou"; + DeleteRoomFailureType["NotFound"] = "NotFound"; +})(exports.DeleteRoomFailureType || (exports.DeleteRoomFailureType = {})); +exports.EditMessageFailureType = void 0; +(function (EditMessageFailureType) { + EditMessageFailureType["MessageDeleted"] = "MessageDeleted"; + EditMessageFailureType["MessageNotFound"] = "MessageNotFound"; + EditMessageFailureType["NotParticipant"] = "NotParticipant"; + EditMessageFailureType["NotYourMessage"] = "NotYourMessage"; + EditMessageFailureType["RoomNotFound"] = "RoomNotFound"; +})(exports.EditMessageFailureType || (exports.EditMessageFailureType = {})); +exports.EntryToServerResultType = void 0; +(function (EntryToServerResultType) { + EntryToServerResultType["AlreadyEntried"] = "AlreadyEntried"; + EntryToServerResultType["NoPasswordRequired"] = "NoPasswordRequired"; + EntryToServerResultType["NotSignIn"] = "NotSignIn"; + EntryToServerResultType["Success"] = "Success"; + EntryToServerResultType["WrongPassword"] = "WrongPassword"; +})(exports.EntryToServerResultType || (exports.EntryToServerResultType = {})); +exports.FileListType = void 0; +(function (FileListType) { + FileListType["Public"] = "Public"; + FileListType["Unlisted"] = "Unlisted"; +})(exports.FileListType || (exports.FileListType = {})); +exports.FileSourceType = void 0; +(function (FileSourceType) { + FileSourceType["Default"] = "Default"; + FileSourceType["FirebaseStorage"] = "FirebaseStorage"; + FileSourceType["Uploader"] = "Uploader"; +})(exports.FileSourceType || (exports.FileSourceType = {})); +exports.GetRoomConnectionFailureType = void 0; +(function (GetRoomConnectionFailureType) { + GetRoomConnectionFailureType["NotParticipant"] = "NotParticipant"; + GetRoomConnectionFailureType["RoomNotFound"] = "RoomNotFound"; +})(exports.GetRoomConnectionFailureType || (exports.GetRoomConnectionFailureType = {})); +exports.GetRoomFailureType = void 0; +(function (GetRoomFailureType) { + GetRoomFailureType["NotFound"] = "NotFound"; +})(exports.GetRoomFailureType || (exports.GetRoomFailureType = {})); +exports.GetRoomLogFailureType = void 0; +(function (GetRoomLogFailureType) { + GetRoomLogFailureType["NotAuthorized"] = "NotAuthorized"; + GetRoomLogFailureType["NotParticipant"] = "NotParticipant"; + GetRoomLogFailureType["RoomNotFound"] = "RoomNotFound"; + GetRoomLogFailureType["UnknownError"] = "UnknownError"; +})(exports.GetRoomLogFailureType || (exports.GetRoomLogFailureType = {})); +exports.GetRoomMessagesFailureType = void 0; +(function (GetRoomMessagesFailureType) { + GetRoomMessagesFailureType["NotParticipant"] = "NotParticipant"; + GetRoomMessagesFailureType["RoomNotFound"] = "RoomNotFound"; +})(exports.GetRoomMessagesFailureType || (exports.GetRoomMessagesFailureType = {})); +exports.JoinRoomFailureType = void 0; +(function (JoinRoomFailureType) { + JoinRoomFailureType["AlreadyParticipant"] = "AlreadyParticipant"; + JoinRoomFailureType["NotFound"] = "NotFound"; + JoinRoomFailureType["TransformError"] = "TransformError"; + JoinRoomFailureType["WrongPassword"] = "WrongPassword"; +})(exports.JoinRoomFailureType || (exports.JoinRoomFailureType = {})); +exports.LeaveRoomFailureType = void 0; +(function (LeaveRoomFailureType) { + LeaveRoomFailureType["NotFound"] = "NotFound"; + LeaveRoomFailureType["NotParticipant"] = "NotParticipant"; +})(exports.LeaveRoomFailureType || (exports.LeaveRoomFailureType = {})); +exports.MakeMessageNotSecretFailureType = void 0; +(function (MakeMessageNotSecretFailureType) { + MakeMessageNotSecretFailureType["MessageNotFound"] = "MessageNotFound"; + MakeMessageNotSecretFailureType["NotParticipant"] = "NotParticipant"; + MakeMessageNotSecretFailureType["NotSecret"] = "NotSecret"; + MakeMessageNotSecretFailureType["NotYourMessage"] = "NotYourMessage"; + MakeMessageNotSecretFailureType["RoomNotFound"] = "RoomNotFound"; +})(exports.MakeMessageNotSecretFailureType || (exports.MakeMessageNotSecretFailureType = {})); +exports.OperateRoomFailureType = void 0; +(function (OperateRoomFailureType) { + OperateRoomFailureType["NotFound"] = "NotFound"; +})(exports.OperateRoomFailureType || (exports.OperateRoomFailureType = {})); +exports.ParticipantRole = void 0; +(function (ParticipantRole) { + ParticipantRole["Master"] = "Master"; + ParticipantRole["Player"] = "Player"; + ParticipantRole["Spectator"] = "Spectator"; +})(exports.ParticipantRole || (exports.ParticipantRole = {})); +exports.PerformRollCallFailureType = void 0; +(function (PerformRollCallFailureType) { + PerformRollCallFailureType["HasOpenRollCall"] = "HasOpenRollCall"; + PerformRollCallFailureType["NotAuthorizedParticipant"] = "NotAuthorizedParticipant"; + PerformRollCallFailureType["NotFound"] = "NotFound"; + PerformRollCallFailureType["TooManyRequests"] = "TooManyRequests"; +})(exports.PerformRollCallFailureType || (exports.PerformRollCallFailureType = {})); +exports.PieceLogType = void 0; +(function (PieceLogType) { + PieceLogType["Dice"] = "Dice"; + PieceLogType["String"] = "String"; +})(exports.PieceLogType || (exports.PieceLogType = {})); +exports.PrereleaseType = void 0; +(function (PrereleaseType) { + PrereleaseType["Alpha"] = "Alpha"; + PrereleaseType["Beta"] = "Beta"; + PrereleaseType["Rc"] = "Rc"; +})(exports.PrereleaseType || (exports.PrereleaseType = {})); +exports.PromoteFailureType = void 0; +(function (PromoteFailureType) { + PromoteFailureType["NoNeedToPromote"] = "NoNeedToPromote"; + PromoteFailureType["NotFound"] = "NotFound"; + PromoteFailureType["NotParticipant"] = "NotParticipant"; + PromoteFailureType["WrongPassword"] = "WrongPassword"; +})(exports.PromoteFailureType || (exports.PromoteFailureType = {})); +exports.ResetRoomMessagesFailureType = void 0; +(function (ResetRoomMessagesFailureType) { + ResetRoomMessagesFailureType["NotAuthorized"] = "NotAuthorized"; + ResetRoomMessagesFailureType["NotParticipant"] = "NotParticipant"; + ResetRoomMessagesFailureType["RoomNotFound"] = "RoomNotFound"; +})(exports.ResetRoomMessagesFailureType || (exports.ResetRoomMessagesFailureType = {})); +exports.UpdateBookmarkFailureType = void 0; +(function (UpdateBookmarkFailureType) { + UpdateBookmarkFailureType["NotFound"] = "NotFound"; +})(exports.UpdateBookmarkFailureType || (exports.UpdateBookmarkFailureType = {})); +exports.WriteRoomPrivateMessageFailureType = void 0; +(function (WriteRoomPrivateMessageFailureType) { + WriteRoomPrivateMessageFailureType["NotParticipant"] = "NotParticipant"; + WriteRoomPrivateMessageFailureType["RoomNotFound"] = "RoomNotFound"; + WriteRoomPrivateMessageFailureType["SyntaxError"] = "SyntaxError"; + WriteRoomPrivateMessageFailureType["VisibleToIsInvalid"] = "VisibleToIsInvalid"; +})(exports.WriteRoomPrivateMessageFailureType || (exports.WriteRoomPrivateMessageFailureType = {})); +exports.WriteRoomPublicMessageFailureType = void 0; +(function (WriteRoomPublicMessageFailureType) { + WriteRoomPublicMessageFailureType["NotAllowedChannelKey"] = "NotAllowedChannelKey"; + WriteRoomPublicMessageFailureType["NotAuthorized"] = "NotAuthorized"; + WriteRoomPublicMessageFailureType["NotParticipant"] = "NotParticipant"; + WriteRoomPublicMessageFailureType["RoomNotFound"] = "RoomNotFound"; + WriteRoomPublicMessageFailureType["SyntaxError"] = "SyntaxError"; +})(exports.WriteRoomPublicMessageFailureType || (exports.WriteRoomPublicMessageFailureType = {})); +exports.WriteRoomSoundEffectFailureType = void 0; +(function (WriteRoomSoundEffectFailureType) { + WriteRoomSoundEffectFailureType["NotAuthorized"] = "NotAuthorized"; + WriteRoomSoundEffectFailureType["NotParticipant"] = "NotParticipant"; + WriteRoomSoundEffectFailureType["RoomNotFound"] = "RoomNotFound"; +})(exports.WriteRoomSoundEffectFailureType || (exports.WriteRoomSoundEffectFailureType = {})); +exports.WritingMessageStatusInputType = void 0; +(function (WritingMessageStatusInputType) { + WritingMessageStatusInputType["Cleared"] = "Cleared"; + WritingMessageStatusInputType["KeepWriting"] = "KeepWriting"; + WritingMessageStatusInputType["StartWriting"] = "StartWriting"; +})(exports.WritingMessageStatusInputType || (exports.WritingMessageStatusInputType = {})); +exports.WritingMessageStatusType = void 0; +(function (WritingMessageStatusType) { + WritingMessageStatusType["Cleared"] = "Cleared"; + WritingMessageStatusType["Disconnected"] = "Disconnected"; + WritingMessageStatusType["Submit"] = "Submit"; + WritingMessageStatusType["Writing"] = "Writing"; +})(exports.WritingMessageStatusType || (exports.WritingMessageStatusType = {})); +const RoomGetStateFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomGetState' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomGetState' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revision' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateJson' } }, + ], + }, + }, + ], +}; +const CreateRoomResultFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CreateRoomResult' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'CreateRoomResult' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'room' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomGetState' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomGetState' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomGetState' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revision' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateJson' } }, + ], + }, + }, + ], +}; +const FileItemFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FileItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FileItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'filename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'thumbFilename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'screenname' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'listType' } }, + ], + }, + }, + ], +}; +const FileTagFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FileTag' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FileTag' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + ], +}; +const RoomAsListItemFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const GetRoomListResultFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'GetRoomListResult' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomsListResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomsListSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'rooms' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomAsListItem' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomsListFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const GetNonJoinedRoomResultFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'roomAsListItem' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomAsListItem' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const GetRoomResultFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'GetRoomResult' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'GetRoomResult' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetJoinedRoomResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'room' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomGetState' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomGetState' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomGetState' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revision' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'roomAsListItem' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomAsListItem' }, + }, + ], + }, + }, + ], + }, + }, + ], +}; +const RoomOperationFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomOperation' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomOperation' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revisionTo' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'operatedBy' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'userUid' } }, + { kind: 'Field', name: { kind: 'Name', value: 'clientId' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + ], +}; +const JoinRoomResultFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'JoinRoomResult' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'JoinRoomResult' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'JoinRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'operation' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomOperation' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'JoinRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomOperation' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomOperation' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revisionTo' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'operatedBy' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'userUid' } }, + { kind: 'Field', name: { kind: 'Name', value: 'clientId' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + ], +}; +const FilePathFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + ], +}; +const RoomSoundEffectFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomSoundEffect' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'file' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'volume' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + ], +}; +const CharacterValueForMessageFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + ], +}; +const RoomPublicMessageFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'channelKey' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + ], +}; +const RoomPublicChannelFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + ], +}; +const RoomPrivateMessageFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'visibleTo' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + ], +}; +const PieceLogFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'PieceLog' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'PieceLog' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'logType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + ], +}; +const RoomMessageEventFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomMessageEvent' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomMessageEvent' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'PieceLog' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'PieceLog' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannelUpdate' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessageUpdate' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'currentText' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedAt' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'text' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'isSuccess' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessageUpdate' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'currentText' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedAt' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'text' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'isSuccess' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomSoundEffect' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'file' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'volume' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'channelKey' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'visibleTo' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'PieceLog' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'PieceLog' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'logType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + ], +}; +const SemVerFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'SemVer' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'SemVer' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'major' } }, + { kind: 'Field', name: { kind: 'Name', value: 'minor' } }, + { kind: 'Field', name: { kind: 'Name', value: 'patch' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'prerelease' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { kind: 'Field', name: { kind: 'Name', value: 'version' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const GetAvailableGameSystemsDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetAvailableGameSystems' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getAvailableGameSystems' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'value' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'name' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'sortKey' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + ], +}; +const GetDiceHelpMessagesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetDiceHelpMessages' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getDiceHelpMessage' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + ], + }, + ], + }, + }, + ], +}; +const GetFilesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetFiles' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'GetFilesInput' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getFiles' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'input' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'files' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FileItem' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FileItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FileItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'filename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'thumbFilename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'screenname' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'listType' } }, + ], + }, + }, + ], +}; +const GetRoomDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetRoom' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getRoom' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetJoinedRoomResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'role' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'room' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomGetState', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'roomAsListItem' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomAsListItem', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomGetState' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomGetState' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revision' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const GetRoomsListDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetRoomsList' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getRoomsList' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomsListSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'rooms' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomAsListItem', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomsListFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const GetMessagesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetMessages' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getMessages' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomMessages' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'publicMessages' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomPublicMessage', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'privateMessages' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomPrivateMessage', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'pieceLogs' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'PieceLog', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'publicChannels' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomPublicChannel', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'soundEffects' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomSoundEffect', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'GetRoomMessagesFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'channelKey' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'visibleTo' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'PieceLog' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'PieceLog' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'logType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomSoundEffect' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'file' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'volume' } }, + ], + }, + }, + ], +}; +const GetLogDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetLog' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getLog' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomMessages' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'publicMessages' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomPublicMessage', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'privateMessages' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomPrivateMessage', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'pieceLogs' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'PieceLog', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'publicChannels' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomPublicChannel', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'soundEffects' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomSoundEffect', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomLogFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'channelKey' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'visibleTo' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'PieceLog' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'PieceLog' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'logType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomSoundEffect' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'file' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'volume' } }, + ], + }, + }, + ], +}; +const GetMyRolesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetMyRoles' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getMyRoles' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'Field', name: { kind: 'Name', value: 'admin' } }], + }, + }, + ], + }, + }, + ], +}; +const GetRoomConnectionsDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetRoomConnections' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getRoomConnections' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'GetRoomConnectionsSuccessResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'fetchedAt' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'connectedUserUids' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'GetRoomConnectionsFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + ], +}; +const GetServerInfoDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetServerInfo' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getServerInfo' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'version' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'SemVer' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'uploaderEnabled' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'SemVer' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'SemVer' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'major' } }, + { kind: 'Field', name: { kind: 'Name', value: 'minor' } }, + { kind: 'Field', name: { kind: 'Name', value: 'patch' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'prerelease' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { kind: 'Field', name: { kind: 'Name', value: 'version' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const IsEntryDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'IsEntry' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'isEntry' }, + }, + ], + }, + }, + ], +}; +const GetRoomAsListItemDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetRoomAsListItem' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getRoomAsListItem' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'GetRoomAsListItemSuccessResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'room' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomAsListItem', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'GetRoomAsListItemFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const AnswerRollCallDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'AnswerRollCall' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'rollCallId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'answer' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'Boolean' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'answerRollCall' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'rollCallId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'rollCallId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'answer' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'answer' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const CreateFileTagDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'CreateFileTag' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'tagName' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'createFileTag' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'tagName' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'tagName' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FileTag' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FileTag' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FileTag' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + ], +}; +const ChangeParticipantNameDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'ChangeParticipantName' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'newName' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'changeParticipantName' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'newName' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'newName' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const CloseRollCallDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'CloseRollCall' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'rollCallId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'closeRollCall' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'rollCallId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'rollCallId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const CreateRoomDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'CreateRoom' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomInput' }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'createRoom' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'input' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CreateRoomResult' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomGetState' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomGetState' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revision' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CreateRoomResult' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'CreateRoomResult' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'room' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomGetState' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const DeleteFilesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'DeleteFiles' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'filenames' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'ListType', + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'String' }, + }, + }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'deleteFiles' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'filenames' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'filenames' }, + }, + }, + ], + }, + ], + }, + }, + ], +}; +const DeleteFileTagDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'DeleteFileTag' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'tagId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'deleteFileTag' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'tagId' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'tagId' } }, + }, + ], + }, + ], + }, + }, + ], +}; +const DeleteRoomDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'DeleteRoom' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'deleteRoom' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const DeleteRoomAsAdminDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'DeleteRoomAsAdmin' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'deleteRoomAsAdmin' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const EditFileTagsDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'EditFileTags' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'EditFileTagsInput' }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'editFileTags' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'input' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + }, + ], + }, + ], + }, + }, + ], +}; +const JoinRoomAsPlayerDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'JoinRoomAsPlayer' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'name' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'password' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'joinRoomAsPlayer' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'name' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'name' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'password' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'password' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'JoinRoomResult' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomOperation' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomOperation' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revisionTo' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'operatedBy' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'userUid' } }, + { kind: 'Field', name: { kind: 'Name', value: 'clientId' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'JoinRoomResult' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'JoinRoomResult' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'JoinRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'operation' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomOperation' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'JoinRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const JoinRoomAsSpectatorDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'JoinRoomAsSpectator' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'name' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'password' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'joinRoomAsSpectator' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'name' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'name' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'password' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'password' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'JoinRoomResult' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomOperation' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomOperation' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revisionTo' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'operatedBy' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'userUid' } }, + { kind: 'Field', name: { kind: 'Name', value: 'clientId' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'JoinRoomResult' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'JoinRoomResult' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'JoinRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'operation' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomOperation' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'JoinRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const EntryToServerDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'EntryToServer' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'password' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'entryToServer' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'password' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'password' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'Field', name: { kind: 'Name', value: 'type' } }], + }, + }, + ], + }, + }, + ], +}; +const LeaveRoomDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'LeaveRoom' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'leaveRoom' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const OperateDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'Operate' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'revisionFrom' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'Int' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'operation' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomOperationInput' }, + }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'requestId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'operate' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'prevRevision' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'revisionFrom' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'operation' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'operation' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'requestId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'requestId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'OperateRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'operation' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomOperation', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'OperateRoomIdResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'requestId' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'OperateRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'OperateRoomNonJoinedResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'roomAsListItem' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomAsListItem', + }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomOperation' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomOperation' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revisionTo' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'operatedBy' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'userUid' } }, + { kind: 'Field', name: { kind: 'Name', value: 'clientId' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const PerformRollCallDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'PerformRollCall' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'PerformRollCallInput' }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'performRollCall' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'input' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const PingDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'Ping' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'value' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'Float' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'ping' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'value' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'value' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const PromoteToPlayerDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'PromoteToPlayer' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'password' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'promoteToPlayer' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'password' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'password' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const RenameFilesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'RenameFiles' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'ListType', + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RenameFileInput' }, + }, + }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'renameFiles' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'input' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + }, + ], + }, + ], + }, + }, + ], +}; +const ResetMessagesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'ResetMessages' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'resetMessages' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const UpdateBookmarkDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'UpdateBookmark' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'newValue' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'Boolean' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'updateBookmark' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'newValue' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'newValue' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'UpdateBookmarkSuccessResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'prevValue' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'currentValue' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'UpdateBookmarkFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + ], +}; +const WritePublicMessageDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'WritePublicMessage' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'text' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'textColor' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'channelKey' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'characterId' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'customName' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'gameType' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'writePublicMessage' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'text' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'text' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'textColor' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'textColor' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'channelKey' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'channelKey' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'characterId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'characterId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'customName' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'customName' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'gameType' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'gameType' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'WriteRoomPublicMessageFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomMessageSyntaxError' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'errorMessage' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'channelKey' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + ], +}; +const WritePrivateMessageDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'WritePrivateMessage' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'visibleTo' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'ListType', + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'String' }, + }, + }, + }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'text' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'textColor' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'characterId' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'customName' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'gameType' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'writePrivateMessage' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'visibleTo' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'visibleTo' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'text' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'text' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'textColor' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'textColor' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'characterId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'characterId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'customName' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'customName' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'gameType' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'gameType' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'WriteRoomPrivateMessageFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomMessageSyntaxError' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'errorMessage' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'visibleTo' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + ], +}; +const WriteRoomSoundEffectDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'WriteRoomSoundEffect' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'file' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePathInput' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'volume' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'Float' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'writeRoomSoundEffect' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'file' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'file' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'volume' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'volume' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'WriteRoomSoundEffectFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomSoundEffect' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'file' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'volume' } }, + ], + }, + }, + ], +}; +const EditMessageDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'EditMessage' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'messageId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'text' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'editMessage' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'messageId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'messageId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'text' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'text' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const DeleteMessageDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'DeleteMessage' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'messageId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'deleteMessage' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'messageId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'messageId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const MakeMessageNotSecretDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'MakeMessageNotSecret' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'messageId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'makeMessageNotSecret' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'messageId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'messageId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const UpdateWritingMessageStatusDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'UpdateWritingMessageStatus' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'newStatus' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'WritingMessageStatusInputType' }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'updateWritingMessageStatus' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'newStatus' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'newStatus' }, + }, + }, + ], + }, + ], + }, + }, + ], +}; +const RoomEventDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'subscription', + name: { kind: 'Name', value: 'RoomEvent' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'roomEvent' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'isRoomMessagesResetEvent' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'roomOperation' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomOperation' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'deleteRoomOperation' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'deletedBy' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'roomMessageEvent' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomMessageEvent' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'roomConnectionEvent' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'userUid' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'isConnected' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedAt' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'writingMessageStatus' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'userUid' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'status' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomSoundEffect' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'file' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'volume' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'channelKey' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'visibleTo' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'PieceLog' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'PieceLog' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'logType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomOperation' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomOperation' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revisionTo' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'operatedBy' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'userUid' } }, + { kind: 'Field', name: { kind: 'Name', value: 'clientId' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomMessageEvent' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomMessageEvent' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'PieceLog' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'PieceLog' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannelUpdate' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessageUpdate' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'currentText' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedAt' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'text' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'isSuccess' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessageUpdate' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'currentText' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedAt' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'text' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'isSuccess' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const PongDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'subscription', + name: { kind: 'Name', value: 'Pong' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'pong' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + ], + }, + }, + ], + }, + }, + ], +}; + +exports.AnswerRollCallDocument = AnswerRollCallDocument; +exports.ChangeParticipantNameDocument = ChangeParticipantNameDocument; +exports.CharacterValueForMessageFragmentDoc = CharacterValueForMessageFragmentDoc; +exports.CloseRollCallDocument = CloseRollCallDocument; +exports.CreateFileTagDocument = CreateFileTagDocument; +exports.CreateRoomDocument = CreateRoomDocument; +exports.CreateRoomResultFragmentDoc = CreateRoomResultFragmentDoc; +exports.DeleteFileTagDocument = DeleteFileTagDocument; +exports.DeleteFilesDocument = DeleteFilesDocument; +exports.DeleteMessageDocument = DeleteMessageDocument; +exports.DeleteRoomAsAdminDocument = DeleteRoomAsAdminDocument; +exports.DeleteRoomDocument = DeleteRoomDocument; +exports.EditFileTagsDocument = EditFileTagsDocument; +exports.EditMessageDocument = EditMessageDocument; +exports.EntryToServerDocument = EntryToServerDocument; +exports.FileItemFragmentDoc = FileItemFragmentDoc; +exports.FilePathFragmentDoc = FilePathFragmentDoc; +exports.FileTagFragmentDoc = FileTagFragmentDoc; +exports.GetAvailableGameSystemsDocument = GetAvailableGameSystemsDocument; +exports.GetDiceHelpMessagesDocument = GetDiceHelpMessagesDocument; +exports.GetFilesDocument = GetFilesDocument; +exports.GetLogDocument = GetLogDocument; +exports.GetMessagesDocument = GetMessagesDocument; +exports.GetMyRolesDocument = GetMyRolesDocument; +exports.GetNonJoinedRoomResultFragmentDoc = GetNonJoinedRoomResultFragmentDoc; +exports.GetRoomAsListItemDocument = GetRoomAsListItemDocument; +exports.GetRoomConnectionsDocument = GetRoomConnectionsDocument; +exports.GetRoomDocument = GetRoomDocument; +exports.GetRoomListResultFragmentDoc = GetRoomListResultFragmentDoc; +exports.GetRoomResultFragmentDoc = GetRoomResultFragmentDoc; +exports.GetRoomsListDocument = GetRoomsListDocument; +exports.GetServerInfoDocument = GetServerInfoDocument; +exports.IsEntryDocument = IsEntryDocument; +exports.JoinRoomAsPlayerDocument = JoinRoomAsPlayerDocument; +exports.JoinRoomAsSpectatorDocument = JoinRoomAsSpectatorDocument; +exports.JoinRoomResultFragmentDoc = JoinRoomResultFragmentDoc; +exports.LeaveRoomDocument = LeaveRoomDocument; +exports.MakeMessageNotSecretDocument = MakeMessageNotSecretDocument; +exports.OperateDocument = OperateDocument; +exports.PerformRollCallDocument = PerformRollCallDocument; +exports.PieceLogFragmentDoc = PieceLogFragmentDoc; +exports.PingDocument = PingDocument; +exports.PongDocument = PongDocument; +exports.PromoteToPlayerDocument = PromoteToPlayerDocument; +exports.RenameFilesDocument = RenameFilesDocument; +exports.ResetMessagesDocument = ResetMessagesDocument; +exports.RoomAsListItemFragmentDoc = RoomAsListItemFragmentDoc; +exports.RoomEventDocument = RoomEventDocument; +exports.RoomGetStateFragmentDoc = RoomGetStateFragmentDoc; +exports.RoomMessageEventFragmentDoc = RoomMessageEventFragmentDoc; +exports.RoomOperationFragmentDoc = RoomOperationFragmentDoc; +exports.RoomPrivateMessageFragmentDoc = RoomPrivateMessageFragmentDoc; +exports.RoomPublicChannelFragmentDoc = RoomPublicChannelFragmentDoc; +exports.RoomPublicMessageFragmentDoc = RoomPublicMessageFragmentDoc; +exports.RoomSoundEffectFragmentDoc = RoomSoundEffectFragmentDoc; +exports.SemVerFragmentDoc = SemVerFragmentDoc; +exports.UpdateBookmarkDocument = UpdateBookmarkDocument; +exports.UpdateWritingMessageStatusDocument = UpdateWritingMessageStatusDocument; +exports.WritePrivateMessageDocument = WritePrivateMessageDocument; +exports.WritePublicMessageDocument = WritePublicMessageDocument; +exports.WriteRoomSoundEffectDocument = WriteRoomSoundEffectDocument; +//# sourceMappingURL=index.js.map diff --git a/packages/typed-document-node/dist/cjs/index.js.map b/packages/typed-document-node/dist/cjs/index.js.map new file mode 100644 index 000000000..235f9a501 --- /dev/null +++ b/packages/typed-document-node/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/generated/graphql.ts"],"sourcesContent":[null],"names":["AnswerRollCallFailureType","ChangeParticipantNameFailureType","CloseRollCallFailureType","CreateRoomFailureType","DeleteMessageFailureType","DeleteRoomAsAdminFailureType","DeleteRoomFailureType","EditMessageFailureType","EntryToServerResultType","FileListType","FileSourceType","GetRoomConnectionFailureType","GetRoomFailureType","GetRoomLogFailureType","GetRoomMessagesFailureType","JoinRoomFailureType","LeaveRoomFailureType","MakeMessageNotSecretFailureType","OperateRoomFailureType","ParticipantRole","PerformRollCallFailureType","PieceLogType","PrereleaseType","PromoteFailureType","ResetRoomMessagesFailureType","UpdateBookmarkFailureType","WriteRoomPrivateMessageFailureType","WriteRoomPublicMessageFailureType","WriteRoomSoundEffectFailureType","WritingMessageStatusInputType","WritingMessageStatusType"],"mappings":"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"} \ No newline at end of file diff --git a/packages/typed-document-node/dist/esm/generated/graphql.d.ts b/packages/typed-document-node/dist/esm/generated/graphql.d.ts new file mode 100644 index 000000000..162a8b31d --- /dev/null +++ b/packages/typed-document-node/dist/esm/generated/graphql.d.ts @@ -0,0 +1,2447 @@ +import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { + [K in keyof T]: T[K]; +}; +export type MakeOptional = Omit & { + [SubKey in K]?: Maybe; +}; +export type MakeMaybe = Omit & { + [SubKey in K]: Maybe; +}; +export type MakeEmpty = { + [_ in K]?: never; +}; +export type Incremental = T | { + [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never; +}; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { + input: string; + output: string; + }; + String: { + input: string; + output: string; + }; + Boolean: { + input: boolean; + output: boolean; + }; + Int: { + input: number; + output: number; + }; + Float: { + input: number; + output: number; + }; +}; +export declare enum AnswerRollCallFailureType { + NotAuthorizedParticipant = "NotAuthorizedParticipant", + RollCallNotFound = "RollCallNotFound", + RoomNotFound = "RoomNotFound", + TooManyRequests = "TooManyRequests" +} +export type AnswerRollCallResult = { + __typename?: 'AnswerRollCallResult'; + failureType?: Maybe; +}; +export type AvailableGameSystem = { + __typename?: 'AvailableGameSystem'; + id: Scalars['String']['output']; + name: Scalars['String']['output']; + sortKey: Scalars['String']['output']; +}; +export declare enum ChangeParticipantNameFailureType { + NotFound = "NotFound", + NotParticipant = "NotParticipant" +} +export type ChangeParticipantNameResult = { + __typename?: 'ChangeParticipantNameResult'; + failureType?: Maybe; +}; +export type CharacterValueForMessage = { + __typename?: 'CharacterValueForMessage'; + image?: Maybe; + isPrivate: Scalars['Boolean']['output']; + name: Scalars['String']['output']; + portraitImage?: Maybe; + stateId: Scalars['String']['output']; +}; +export declare enum CloseRollCallFailureType { + AlreadyClosed = "AlreadyClosed", + NotAuthorizedParticipant = "NotAuthorizedParticipant", + RollCallNotFound = "RollCallNotFound", + RoomNotFound = "RoomNotFound", + TooManyRequests = "TooManyRequests" +} +export type CloseRollCallResult = { + __typename?: 'CloseRollCallResult'; + failureType?: Maybe; +}; +export type CommandResult = { + __typename?: 'CommandResult'; + /** 成功判定のないコマンドの場合はnullish。成功判定のあるコマンドの場合はその結果。 */ + isSuccess?: Maybe; + text: Scalars['String']['output']; +}; +export type CreateRoomFailureResult = { + __typename?: 'CreateRoomFailureResult'; + failureType: CreateRoomFailureType; +}; +export declare enum CreateRoomFailureType { + UnknownError = "UnknownError" +} +export type CreateRoomInput = { + participantName: Scalars['String']['input']; + playerPassword?: InputMaybe; + roomName: Scalars['String']['input']; + spectatorPassword?: InputMaybe; +}; +export type CreateRoomResult = CreateRoomFailureResult | CreateRoomSuccessResult; +export type CreateRoomSuccessResult = { + __typename?: 'CreateRoomSuccessResult'; + id: Scalars['String']['output']; + room: RoomGetState; +}; +export declare enum DeleteMessageFailureType { + MessageDeleted = "MessageDeleted", + MessageNotFound = "MessageNotFound", + NotParticipant = "NotParticipant", + NotYourMessage = "NotYourMessage", + RoomNotFound = "RoomNotFound" +} +export type DeleteMessageResult = { + __typename?: 'DeleteMessageResult'; + failureType?: Maybe; +}; +export declare enum DeleteRoomAsAdminFailureType { + NotFound = "NotFound" +} +export type DeleteRoomAsAdminResult = { + __typename?: 'DeleteRoomAsAdminResult'; + failureType?: Maybe; +}; +export declare enum DeleteRoomFailureType { + NotCreatedByYou = "NotCreatedByYou", + NotFound = "NotFound" +} +export type DeleteRoomOperation = { + __typename?: 'DeleteRoomOperation'; + deletedBy: Scalars['String']['output']; + /** since v0.7.2 */ + deletedByAdmin: Scalars['Boolean']['output']; +}; +export type DeleteRoomResult = { + __typename?: 'DeleteRoomResult'; + failureType?: Maybe; +}; +export type EditFileTagActionInput = { + add: Array; + filename: Scalars['String']['input']; + remove: Array; +}; +export type EditFileTagsInput = { + actions: Array; +}; +export declare enum EditMessageFailureType { + MessageDeleted = "MessageDeleted", + MessageNotFound = "MessageNotFound", + NotParticipant = "NotParticipant", + NotYourMessage = "NotYourMessage", + RoomNotFound = "RoomNotFound" +} +export type EditMessageResult = { + __typename?: 'EditMessageResult'; + failureType?: Maybe; +}; +export type EntryToServerResult = { + __typename?: 'EntryToServerResult'; + type: EntryToServerResultType; +}; +export declare enum EntryToServerResultType { + AlreadyEntried = "AlreadyEntried", + NoPasswordRequired = "NoPasswordRequired", + NotSignIn = "NotSignIn", + Success = "Success", + WrongPassword = "WrongPassword" +} +export type FileItem = { + __typename?: 'FileItem'; + createdAt?: Maybe; + /** ファイルをアップロードしたユーザー。Firebase AuthenticationのUserUidで表現される。 */ + createdBy: Scalars['String']['output']; + /** サーバーで管理されているファイル名。axiosなどでファイルを取得する際はこれを用いる。ソートするとアップロードした時系列順になる。 */ + filename: Scalars['ID']['output']; + listType: FileListType; + /** ユーザーが名付けたファイル名。 */ + screenname: Scalars['String']['output']; + /** サムネイル画像のファイル名。axiosなどを用いてファイルを取得する。 */ + thumbFilename?: Maybe; +}; +export declare enum FileListType { + Public = "Public", + Unlisted = "Unlisted" +} +export type FilePath = { + __typename?: 'FilePath'; + path: Scalars['String']['output']; + sourceType: FileSourceType; +}; +export type FilePathInput = { + path: Scalars['String']['input']; + sourceType: FileSourceType; +}; +export declare enum FileSourceType { + Default = "Default", + FirebaseStorage = "FirebaseStorage", + Uploader = "Uploader" +} +export type FileTag = { + __typename?: 'FileTag'; + id: Scalars['String']['output']; + name: Scalars['String']['output']; +}; +export type GetAvailableGameSystemsResult = { + __typename?: 'GetAvailableGameSystemsResult'; + value: Array; +}; +export type GetFilesInput = { + /** FileTagのidを指定することで、指定したタグが付いているファイルのみを抽出して表示する。例えばidがx,yの3つのタグが付いているファイルは、[]や[x]や[x,y]と指定した場合にマッチするが、[x,y,z]と指定された場合は除外される。 */ + fileTagIds: Array; +}; +export type GetFilesResult = { + __typename?: 'GetFilesResult'; + files: Array; +}; +export type GetJoinedRoomResult = { + __typename?: 'GetJoinedRoomResult'; + /** 自分の現在のParticipantRoleType。room.roleと同じ値をとる。 */ + role: ParticipantRole; + room: RoomGetState; +}; +export type GetNonJoinedRoomResult = { + __typename?: 'GetNonJoinedRoomResult'; + roomAsListItem: RoomAsListItem; +}; +export type GetRoomAsListItemFailureResult = { + __typename?: 'GetRoomAsListItemFailureResult'; + failureType: GetRoomFailureType; +}; +export type GetRoomAsListItemResult = GetRoomAsListItemFailureResult | GetRoomAsListItemSuccessResult; +export type GetRoomAsListItemSuccessResult = { + __typename?: 'GetRoomAsListItemSuccessResult'; + room: RoomAsListItem; +}; +export declare enum GetRoomConnectionFailureType { + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound" +} +export type GetRoomConnectionsFailureResult = { + __typename?: 'GetRoomConnectionsFailureResult'; + failureType: GetRoomConnectionFailureType; +}; +export type GetRoomConnectionsResult = GetRoomConnectionsFailureResult | GetRoomConnectionsSuccessResult; +export type GetRoomConnectionsSuccessResult = { + __typename?: 'GetRoomConnectionsSuccessResult'; + connectedUserUids: Array; + fetchedAt: Scalars['Float']['output']; +}; +export type GetRoomFailureResult = { + __typename?: 'GetRoomFailureResult'; + failureType: GetRoomFailureType; +}; +export declare enum GetRoomFailureType { + NotFound = "NotFound" +} +export type GetRoomLogFailureResult = { + __typename?: 'GetRoomLogFailureResult'; + failureType: GetRoomLogFailureType; +}; +export declare enum GetRoomLogFailureType { + NotAuthorized = "NotAuthorized", + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound", + UnknownError = "UnknownError" +} +export type GetRoomLogResult = GetRoomLogFailureResult | RoomMessages; +export type GetRoomMessagesFailureResult = { + __typename?: 'GetRoomMessagesFailureResult'; + failureType: GetRoomMessagesFailureType; +}; +export declare enum GetRoomMessagesFailureType { + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound" +} +export type GetRoomMessagesResult = GetRoomMessagesFailureResult | RoomMessages; +export type GetRoomResult = GetJoinedRoomResult | GetNonJoinedRoomResult | GetRoomFailureResult; +export type GetRoomsListFailureResult = { + __typename?: 'GetRoomsListFailureResult'; + failureType: GetRoomFailureType; +}; +export type GetRoomsListResult = GetRoomsListFailureResult | GetRoomsListSuccessResult; +export type GetRoomsListSuccessResult = { + __typename?: 'GetRoomsListSuccessResult'; + rooms: Array; +}; +export type JoinRoomFailureResult = { + __typename?: 'JoinRoomFailureResult'; + failureType: JoinRoomFailureType; +}; +export declare enum JoinRoomFailureType { + AlreadyParticipant = "AlreadyParticipant", + NotFound = "NotFound", + TransformError = "TransformError", + WrongPassword = "WrongPassword" +} +export type JoinRoomResult = JoinRoomFailureResult | JoinRoomSuccessResult; +export type JoinRoomSuccessResult = { + __typename?: 'JoinRoomSuccessResult'; + operation?: Maybe; +}; +export declare enum LeaveRoomFailureType { + NotFound = "NotFound", + NotParticipant = "NotParticipant" +} +export type LeaveRoomResult = { + __typename?: 'LeaveRoomResult'; + failureType?: Maybe; +}; +export declare enum MakeMessageNotSecretFailureType { + MessageNotFound = "MessageNotFound", + NotParticipant = "NotParticipant", + NotSecret = "NotSecret", + NotYourMessage = "NotYourMessage", + RoomNotFound = "RoomNotFound" +} +export type MakeMessageNotSecretResult = { + __typename?: 'MakeMessageNotSecretResult'; + failureType?: Maybe; +}; +export type Mutation = { + __typename?: 'Mutation'; + /** since v0.7.13 */ + answerRollCall: AnswerRollCallResult; + changeParticipantName: ChangeParticipantNameResult; + /** since v0.7.13 */ + closeRollCall: CloseRollCallResult; + /** @deprecated Use screenname to group files by folders instead. */ + createFileTag?: Maybe; + createRoom: CreateRoomResult; + /** @deprecated Use screenname to group files by folders instead. */ + deleteFileTag: Scalars['Boolean']['output']; + /** since v0.7.8 */ + deleteFiles: Array; + deleteMessage: DeleteMessageResult; + deleteRoom: DeleteRoomResult; + /** since v0.7.2 */ + deleteRoomAsAdmin: DeleteRoomAsAdminResult; + /** @deprecated Use screenname to group files by folders instead. */ + editFileTags: Scalars['Boolean']['output']; + editMessage: EditMessageResult; + entryToServer: EntryToServerResult; + joinRoomAsPlayer: JoinRoomResult; + joinRoomAsSpectator: JoinRoomResult; + leaveRoom: LeaveRoomResult; + makeMessageNotSecret: MakeMessageNotSecretResult; + /** この Mutation を直接実行することは非推奨です。代わりに @flocon-trpg/sdk を用いてください。 */ + operate: OperateRoomResult; + /** since v0.7.13 */ + performRollCall: PerformRollCallResult; + /** GraphQL の動作テストに用いられます。3rd-party の Web サーバーを作成する際は利用しなくて構いません。 */ + ping: Pong; + promoteToPlayer: PromoteResult; + renameFiles: Array; + resetMessages: ResetRoomMessagesResult; + updateBookmark: UpdateBookmarkResult; + /** この Mutation を直接実行することは非推奨です。代わりに @flocon-trpg/sdk を用いてください。 */ + updateWritingMessageStatus: Scalars['Boolean']['output']; + writePrivateMessage: WriteRoomPrivateMessageResult; + writePublicMessage: WriteRoomPublicMessageResult; + writeRoomSoundEffect: WriteRoomSoundEffectResult; +}; +export type MutationAnswerRollCallArgs = { + answer: Scalars['Boolean']['input']; + rollCallId: Scalars['String']['input']; + roomId: Scalars['String']['input']; +}; +export type MutationChangeParticipantNameArgs = { + newName: Scalars['String']['input']; + roomId: Scalars['String']['input']; +}; +export type MutationCloseRollCallArgs = { + rollCallId: Scalars['String']['input']; + roomId: Scalars['String']['input']; +}; +export type MutationCreateFileTagArgs = { + tagName: Scalars['String']['input']; +}; +export type MutationCreateRoomArgs = { + input: CreateRoomInput; +}; +export type MutationDeleteFileTagArgs = { + tagId: Scalars['String']['input']; +}; +export type MutationDeleteFilesArgs = { + filenames: Array; +}; +export type MutationDeleteMessageArgs = { + messageId: Scalars['String']['input']; + roomId: Scalars['String']['input']; +}; +export type MutationDeleteRoomArgs = { + id: Scalars['String']['input']; +}; +export type MutationDeleteRoomAsAdminArgs = { + id: Scalars['String']['input']; +}; +export type MutationEditFileTagsArgs = { + input: EditFileTagsInput; +}; +export type MutationEditMessageArgs = { + messageId: Scalars['String']['input']; + roomId: Scalars['String']['input']; + text: Scalars['String']['input']; +}; +export type MutationEntryToServerArgs = { + password?: InputMaybe; +}; +export type MutationJoinRoomAsPlayerArgs = { + id: Scalars['String']['input']; + name: Scalars['String']['input']; + password?: InputMaybe; +}; +export type MutationJoinRoomAsSpectatorArgs = { + id: Scalars['String']['input']; + name: Scalars['String']['input']; + password?: InputMaybe; +}; +export type MutationLeaveRoomArgs = { + id: Scalars['String']['input']; +}; +export type MutationMakeMessageNotSecretArgs = { + messageId: Scalars['String']['input']; + roomId: Scalars['String']['input']; +}; +export type MutationOperateArgs = { + id: Scalars['String']['input']; + operation: RoomOperationInput; + prevRevision: Scalars['Int']['input']; + requestId: Scalars['String']['input']; +}; +export type MutationPerformRollCallArgs = { + input: PerformRollCallInput; +}; +export type MutationPingArgs = { + value: Scalars['Float']['input']; +}; +export type MutationPromoteToPlayerArgs = { + password?: InputMaybe; + roomId: Scalars['String']['input']; +}; +export type MutationRenameFilesArgs = { + input: Array; +}; +export type MutationResetMessagesArgs = { + roomId: Scalars['String']['input']; +}; +export type MutationUpdateBookmarkArgs = { + newValue: Scalars['Boolean']['input']; + roomId: Scalars['String']['input']; +}; +export type MutationUpdateWritingMessageStatusArgs = { + newStatus: WritingMessageStatusInputType; + roomId: Scalars['String']['input']; +}; +export type MutationWritePrivateMessageArgs = { + characterId?: InputMaybe; + customName?: InputMaybe; + gameType?: InputMaybe; + roomId: Scalars['String']['input']; + text: Scalars['String']['input']; + textColor?: InputMaybe; + visibleTo: Array; +}; +export type MutationWritePublicMessageArgs = { + channelKey: Scalars['String']['input']; + characterId?: InputMaybe; + customName?: InputMaybe; + gameType?: InputMaybe; + roomId: Scalars['String']['input']; + text: Scalars['String']['input']; + textColor?: InputMaybe; +}; +export type MutationWriteRoomSoundEffectArgs = { + file: FilePathInput; + roomId: Scalars['String']['input']; + volume: Scalars['Float']['input']; +}; +export type OperateRoomFailureResult = { + __typename?: 'OperateRoomFailureResult'; + failureType: OperateRoomFailureType; +}; +export declare enum OperateRoomFailureType { + NotFound = "NotFound" +} +export type OperateRoomIdResult = { + __typename?: 'OperateRoomIdResult'; + requestId: Scalars['String']['output']; +}; +export type OperateRoomNonJoinedResult = { + __typename?: 'OperateRoomNonJoinedResult'; + roomAsListItem: RoomAsListItem; +}; +export type OperateRoomResult = OperateRoomFailureResult | OperateRoomIdResult | OperateRoomNonJoinedResult | OperateRoomSuccessResult; +export type OperateRoomSuccessResult = { + __typename?: 'OperateRoomSuccessResult'; + operation: RoomOperation; +}; +export type OperatedBy = { + __typename?: 'OperatedBy'; + clientId: Scalars['String']['output']; + userUid: Scalars['String']['output']; +}; +export declare enum ParticipantRole { + Master = "Master", + Player = "Player", + Spectator = "Spectator" +} +export declare enum PerformRollCallFailureType { + HasOpenRollCall = "HasOpenRollCall", + NotAuthorizedParticipant = "NotAuthorizedParticipant", + NotFound = "NotFound", + TooManyRequests = "TooManyRequests" +} +export type PerformRollCallInput = { + roomId: Scalars['String']['input']; + /** SE を設定する場合、これと併せて soundEffectVolume もセットする必要があります。 */ + soundEffectFile?: InputMaybe; + /** SE を設定する場合、これと併せて soundEffectFile もセットする必要があります。 */ + soundEffectVolume?: InputMaybe; +}; +export type PerformRollCallResult = { + __typename?: 'PerformRollCallResult'; + failureType?: Maybe; +}; +export type PieceLog = { + __typename?: 'PieceLog'; + createdAt: Scalars['Float']['output']; + logType: PieceLogType; + messageId: Scalars['String']['output']; + stateId: Scalars['String']['output']; + valueJson: Scalars['String']['output']; +}; +export declare enum PieceLogType { + Dice = "Dice", + String = "String" +} +export type Pong = { + __typename?: 'Pong'; + createdBy?: Maybe; + value: Scalars['Float']['output']; +}; +export type Prerelease = { + __typename?: 'Prerelease'; + type: PrereleaseType; + version: Scalars['Float']['output']; +}; +export declare enum PrereleaseType { + Alpha = "Alpha", + Beta = "Beta", + Rc = "Rc" +} +export declare enum PromoteFailureType { + NoNeedToPromote = "NoNeedToPromote", + NotFound = "NotFound", + NotParticipant = "NotParticipant", + WrongPassword = "WrongPassword" +} +export type PromoteResult = { + __typename?: 'PromoteResult'; + failureType?: Maybe; +}; +export type Query = { + __typename?: 'Query'; + getAvailableGameSystems: GetAvailableGameSystemsResult; + getDiceHelpMessage?: Maybe; + getFiles: GetFilesResult; + getLog: GetRoomLogResult; + getMessages: GetRoomMessagesResult; + /** since v0.7.2 */ + getMyRoles: Roles; + /** 通常はこの Query を直接実行する必要はありません。@flocon-trpg/sdk を用いることで、リアルタイムに Room を取得および自動更新できます。 */ + getRoom: GetRoomResult; + getRoomAsListItem: GetRoomAsListItemResult; + /** 通常はこの Query を直接実行する必要はありません。@flocon-trpg/sdk を用いることで、リアルタイムに値を取得および自動更新できます。 */ + getRoomConnections: GetRoomConnectionsResult; + getRoomsList: GetRoomsListResult; + getServerInfo: ServerInfo; + isEntry: Scalars['Boolean']['output']; +}; +export type QueryGetDiceHelpMessageArgs = { + id: Scalars['String']['input']; +}; +export type QueryGetFilesArgs = { + input: GetFilesInput; +}; +export type QueryGetLogArgs = { + roomId: Scalars['String']['input']; +}; +export type QueryGetMessagesArgs = { + roomId: Scalars['String']['input']; +}; +export type QueryGetRoomArgs = { + id: Scalars['String']['input']; +}; +export type QueryGetRoomAsListItemArgs = { + roomId: Scalars['String']['input']; +}; +export type QueryGetRoomConnectionsArgs = { + roomId: Scalars['String']['input']; +}; +export type RenameFileInput = { + filename: Scalars['String']['input']; + newScreenname: Scalars['String']['input']; +}; +export declare enum ResetRoomMessagesFailureType { + NotAuthorized = "NotAuthorized", + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound" +} +export type ResetRoomMessagesResult = { + __typename?: 'ResetRoomMessagesResult'; + failureType?: Maybe; +}; +export type Roles = { + __typename?: 'Roles'; + admin: Scalars['Boolean']['output']; +}; +export type RoomAsListItem = { + __typename?: 'RoomAsListItem'; + /** since v0.7.2 */ + createdAt?: Maybe; + /** この部屋の作成者。Firebase AuthenticationのUserUidで表現される。 */ + createdBy: Scalars['String']['output']; + id: Scalars['ID']['output']; + /** since v0.7.2 */ + isBookmarked: Scalars['Boolean']['output']; + name: Scalars['String']['output']; + requiresPlayerPassword: Scalars['Boolean']['output']; + requiresSpectatorPassword: Scalars['Boolean']['output']; + /** since v0.7.2 */ + role?: Maybe; + /** + * データベースのRoomエンティティが最後に更新された日時。Roomエンティティのみが対象であるため、例えばメッセージの投稿などは反映されないことに注意。 + * since v0.7.2 + */ + updatedAt?: Maybe; +}; +export type RoomConnectionEvent = { + __typename?: 'RoomConnectionEvent'; + isConnected: Scalars['Boolean']['output']; + updatedAt: Scalars['Float']['output']; + userUid: Scalars['String']['output']; +}; +export type RoomEvent = { + __typename?: 'RoomEvent'; + deleteRoomOperation?: Maybe; + isRoomMessagesResetEvent: Scalars['Boolean']['output']; + roomConnectionEvent?: Maybe; + roomMessageEvent?: Maybe; + roomOperation?: Maybe; + writingMessageStatus?: Maybe; +}; +export type RoomGetState = { + __typename?: 'RoomGetState'; + /** since v0.7.2 */ + createdAt?: Maybe; + /** この部屋の作成者。Firebase AuthenticationのUserUidで表現される。 */ + createdBy: Scalars['String']['output']; + /** since v0.7.2 */ + isBookmarked: Scalars['Boolean']['output']; + /** Current revision of Room. Whenever Room is updated, this value is incremented by 1. This value is required when you apply RoomOperation. / Roomの現在のリビジョン。Roomが更新されるたび、この値は1増加する。RoomOperationを適用する際に必要となる。 */ + revision: Scalars['Float']['output']; + /** since v0.7.2 */ + role?: Maybe; + /** room.state をJSON化したもの */ + stateJson: Scalars['String']['output']; + /** + * データベースのRoomエンティティが最後に更新された日時。Roomエンティティのみが対象であるため、例えばメッセージの投稿などは反映されないことに注意。 + * since v0.7.2 + */ + updatedAt?: Maybe; +}; +export type RoomMessageEvent = PieceLog | RoomMessagesReset | RoomPrivateMessage | RoomPrivateMessageUpdate | RoomPublicChannel | RoomPublicChannelUpdate | RoomPublicMessage | RoomPublicMessageUpdate | RoomSoundEffect; +export type RoomMessageSyntaxError = { + __typename?: 'RoomMessageSyntaxError'; + errorMessage: Scalars['String']['output']; +}; +export type RoomMessages = { + __typename?: 'RoomMessages'; + pieceLogs: Array; + privateMessages: Array; + publicChannels: Array; + publicMessages: Array; + soundEffects: Array; +}; +export type RoomMessagesReset = { + __typename?: 'RoomMessagesReset'; + publicMessagesDeleted: Scalars['Boolean']['output']; +}; +export type RoomOperation = { + __typename?: 'RoomOperation'; + /** operateRoomを呼んだ人物。promoteなどの結果の場合はnullishになる。 */ + operatedBy?: Maybe; + revisionTo: Scalars['Float']['output']; + /** room.upOperationをJSONにしたもの。idならばnullish。 */ + valueJson: Scalars['String']['output']; +}; +export type RoomOperationInput = { + /** クライアントを識別するID。適当なIDをクライアント側で生成して渡す。Operationごとに変える必要はない */ + clientId: Scalars['String']['input']; + /** room.upOperationをJSONにしたもの */ + valueJson: Scalars['String']['input']; +}; +export type RoomPrivateMessage = { + __typename?: 'RoomPrivateMessage'; + altTextToSecret?: Maybe; + /** 発言がCharacterと紐付いているときはnon-nullish。PLとしての発言、もしくはcreatedByがnullishのときはnullish。後からCharacterの値が更新されても、この値が更新されることはない。 */ + character?: Maybe; + commandResult?: Maybe; + createdAt: Scalars['Float']['output']; + createdBy?: Maybe; + customName?: Maybe; + initText?: Maybe; + initTextSource?: Maybe; + isSecret: Scalars['Boolean']['output']; + messageId: Scalars['String']['output']; + textColor?: Maybe; + updatedAt?: Maybe; + updatedText?: Maybe; + visibleTo: Array; +}; +export type RoomPrivateMessageUpdate = { + __typename?: 'RoomPrivateMessageUpdate'; + altTextToSecret?: Maybe; + commandResult?: Maybe; + initText?: Maybe; + initTextSource?: Maybe; + isSecret: Scalars['Boolean']['output']; + messageId: Scalars['String']['output']; + updatedAt?: Maybe; + updatedText?: Maybe; +}; +export type RoomPublicChannel = { + __typename?: 'RoomPublicChannel'; + /** 現在の仕様では、$system, $free, '1', … , '10' の12個のみをサポートしている。このうち、$systemはシステムメッセージ専用チャンネルであるため誰も書き込むことができない。'1', …, '10'はSpectatorが書き込むことはできないが、$freeはSpectatorも書き込むことができる。 */ + key: Scalars['String']['output']; + name?: Maybe; +}; +export type RoomPublicChannelUpdate = { + __typename?: 'RoomPublicChannelUpdate'; + key: Scalars['String']['output']; + name?: Maybe; +}; +export type RoomPublicMessage = { + __typename?: 'RoomPublicMessage'; + altTextToSecret?: Maybe; + channelKey: Scalars['String']['output']; + /** 発言がCharacterと紐付いているときはnon-nullish。PLとしての発言、もしくはcreatedByがnullishのときはnullish。 */ + character?: Maybe; + commandResult?: Maybe; + createdAt: Scalars['Float']['output']; + /** channelKeyが$system以外のときは、システムメッセージならばnullishで、そうでないならばnullishではない。$systemのとき、原則として全てシステムメッセージであるため常にnullishになる。 */ + createdBy?: Maybe; + customName?: Maybe; + initText?: Maybe; + initTextSource?: Maybe; + isSecret: Scalars['Boolean']['output']; + messageId: Scalars['String']['output']; + textColor?: Maybe; + updatedAt?: Maybe; + updatedText?: Maybe; +}; +export type RoomPublicMessageUpdate = { + __typename?: 'RoomPublicMessageUpdate'; + altTextToSecret?: Maybe; + commandResult?: Maybe; + initText?: Maybe; + initTextSource?: Maybe; + isSecret: Scalars['Boolean']['output']; + messageId: Scalars['String']['output']; + updatedAt?: Maybe; + updatedText?: Maybe; +}; +export type RoomSoundEffect = { + __typename?: 'RoomSoundEffect'; + createdAt: Scalars['Float']['output']; + createdBy?: Maybe; + file: FilePath; + messageId: Scalars['String']['output']; + volume: Scalars['Float']['output']; +}; +export type SemVer = { + __typename?: 'SemVer'; + major: Scalars['Float']['output']; + minor: Scalars['Float']['output']; + patch: Scalars['Float']['output']; + prerelease?: Maybe; +}; +export type ServerInfo = { + __typename?: 'ServerInfo'; + uploaderEnabled: Scalars['Boolean']['output']; + version: SemVer; +}; +export type Subscription = { + __typename?: 'Subscription'; + /** GraphQL の動作テストに用いられます。3rd-party の Web サーバーを作成する際は利用しなくて構いません。 */ + pong: Pong; + /** この Subscription を直接実行することは非推奨です。代わりに @flocon-trpg/sdk を用いてください。 */ + roomEvent?: Maybe; +}; +export type SubscriptionRoomEventArgs = { + id: Scalars['String']['input']; +}; +export type UpdateBookmarkFailureResult = { + __typename?: 'UpdateBookmarkFailureResult'; + failureType: UpdateBookmarkFailureType; +}; +export declare enum UpdateBookmarkFailureType { + NotFound = "NotFound" +} +export type UpdateBookmarkResult = UpdateBookmarkFailureResult | UpdateBookmarkSuccessResult; +export type UpdateBookmarkSuccessResult = { + __typename?: 'UpdateBookmarkSuccessResult'; + currentValue: Scalars['Boolean']['output']; + prevValue: Scalars['Boolean']['output']; +}; +export type UpdatedText = { + __typename?: 'UpdatedText'; + currentText?: Maybe; + updatedAt: Scalars['Float']['output']; +}; +export type WriteRoomPrivateMessageFailureResult = { + __typename?: 'WriteRoomPrivateMessageFailureResult'; + failureType: WriteRoomPrivateMessageFailureType; +}; +export declare enum WriteRoomPrivateMessageFailureType { + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound", + SyntaxError = "SyntaxError", + VisibleToIsInvalid = "VisibleToIsInvalid" +} +export type WriteRoomPrivateMessageResult = RoomMessageSyntaxError | RoomPrivateMessage | WriteRoomPrivateMessageFailureResult; +export type WriteRoomPublicMessageFailureResult = { + __typename?: 'WriteRoomPublicMessageFailureResult'; + failureType: WriteRoomPublicMessageFailureType; +}; +export declare enum WriteRoomPublicMessageFailureType { + NotAllowedChannelKey = "NotAllowedChannelKey", + NotAuthorized = "NotAuthorized", + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound", + SyntaxError = "SyntaxError" +} +export type WriteRoomPublicMessageResult = RoomMessageSyntaxError | RoomPublicMessage | WriteRoomPublicMessageFailureResult; +export type WriteRoomSoundEffectFailureResult = { + __typename?: 'WriteRoomSoundEffectFailureResult'; + failureType: WriteRoomSoundEffectFailureType; +}; +export declare enum WriteRoomSoundEffectFailureType { + NotAuthorized = "NotAuthorized", + NotParticipant = "NotParticipant", + RoomNotFound = "RoomNotFound" +} +export type WriteRoomSoundEffectResult = RoomSoundEffect | WriteRoomSoundEffectFailureResult; +export type WritingMessageStatus = { + __typename?: 'WritingMessageStatus'; + status: WritingMessageStatusType; + updatedAt: Scalars['Float']['output']; + userUid: Scalars['String']['output']; +}; +export declare enum WritingMessageStatusInputType { + Cleared = "Cleared", + KeepWriting = "KeepWriting", + StartWriting = "StartWriting" +} +export declare enum WritingMessageStatusType { + Cleared = "Cleared", + Disconnected = "Disconnected", + Submit = "Submit", + Writing = "Writing" +} +export type CharacterValueForMessageFragment = { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; +}; +type CreateRoomResult_CreateRoomFailureResult_Fragment = { + __typename: 'CreateRoomFailureResult'; + failureType: CreateRoomFailureType; +}; +type CreateRoomResult_CreateRoomSuccessResult_Fragment = { + __typename: 'CreateRoomSuccessResult'; + id: string; + room: { + __typename?: 'RoomGetState'; + revision: number; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + stateJson: string; + }; +}; +export type CreateRoomResultFragment = CreateRoomResult_CreateRoomFailureResult_Fragment | CreateRoomResult_CreateRoomSuccessResult_Fragment; +export type FileItemFragment = { + __typename?: 'FileItem'; + filename: string; + thumbFilename?: string | null; + screenname: string; + createdBy: string; + createdAt?: number | null; + listType: FileListType; +}; +export type FilePathFragment = { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; +}; +export type FileTagFragment = { + __typename?: 'FileTag'; + id: string; + name: string; +}; +export type GetNonJoinedRoomResultFragment = { + __typename?: 'GetNonJoinedRoomResult'; + roomAsListItem: { + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }; +}; +type GetRoomListResult_GetRoomsListFailureResult_Fragment = { + __typename: 'GetRoomsListFailureResult'; + failureType: GetRoomFailureType; +}; +type GetRoomListResult_GetRoomsListSuccessResult_Fragment = { + __typename: 'GetRoomsListSuccessResult'; + rooms: Array<{ + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }>; +}; +export type GetRoomListResultFragment = GetRoomListResult_GetRoomsListFailureResult_Fragment | GetRoomListResult_GetRoomsListSuccessResult_Fragment; +type GetRoomResult_GetJoinedRoomResult_Fragment = { + __typename: 'GetJoinedRoomResult'; + role: ParticipantRole; + room: { + __typename?: 'RoomGetState'; + revision: number; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + stateJson: string; + }; +}; +type GetRoomResult_GetNonJoinedRoomResult_Fragment = { + __typename: 'GetNonJoinedRoomResult'; + roomAsListItem: { + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }; +}; +type GetRoomResult_GetRoomFailureResult_Fragment = { + __typename: 'GetRoomFailureResult'; + failureType: GetRoomFailureType; +}; +export type GetRoomResultFragment = GetRoomResult_GetJoinedRoomResult_Fragment | GetRoomResult_GetNonJoinedRoomResult_Fragment | GetRoomResult_GetRoomFailureResult_Fragment; +type JoinRoomResult_JoinRoomFailureResult_Fragment = { + __typename: 'JoinRoomFailureResult'; + failureType: JoinRoomFailureType; +}; +type JoinRoomResult_JoinRoomSuccessResult_Fragment = { + __typename: 'JoinRoomSuccessResult'; + operation?: { + __typename?: 'RoomOperation'; + revisionTo: number; + valueJson: string; + operatedBy?: { + __typename?: 'OperatedBy'; + userUid: string; + clientId: string; + } | null; + } | null; +}; +export type JoinRoomResultFragment = JoinRoomResult_JoinRoomFailureResult_Fragment | JoinRoomResult_JoinRoomSuccessResult_Fragment; +export type PieceLogFragment = { + __typename?: 'PieceLog'; + messageId: string; + stateId: string; + createdAt: number; + logType: PieceLogType; + valueJson: string; +}; +export type RoomAsListItemFragment = { + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; +}; +export type RoomGetStateFragment = { + __typename?: 'RoomGetState'; + revision: number; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + stateJson: string; +}; +export type RoomOperationFragment = { + __typename?: 'RoomOperation'; + revisionTo: number; + valueJson: string; + operatedBy?: { + __typename?: 'OperatedBy'; + userUid: string; + clientId: string; + } | null; +}; +export type RoomPublicChannelFragment = { + __typename?: 'RoomPublicChannel'; + key: string; + name?: string | null; +}; +export type RoomPublicMessageFragment = { + __typename?: 'RoomPublicMessage'; + messageId: string; + channelKey: string; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; +}; +export type RoomPrivateMessageFragment = { + __typename?: 'RoomPrivateMessage'; + messageId: string; + visibleTo: Array; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; +}; +export type RoomSoundEffectFragment = { + __typename?: 'RoomSoundEffect'; + messageId: string; + createdBy?: string | null; + createdAt: number; + volume: number; + file: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + }; +}; +type RoomMessageEvent_PieceLog_Fragment = { + __typename: 'PieceLog'; + messageId: string; + stateId: string; + createdAt: number; + logType: PieceLogType; + valueJson: string; +}; +type RoomMessageEvent_RoomMessagesReset_Fragment = { + __typename: 'RoomMessagesReset'; +}; +type RoomMessageEvent_RoomPrivateMessage_Fragment = { + __typename: 'RoomPrivateMessage'; + messageId: string; + visibleTo: Array; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; +}; +type RoomMessageEvent_RoomPrivateMessageUpdate_Fragment = { + __typename: 'RoomPrivateMessageUpdate'; + messageId: string; + initText?: string | null; + initTextSource?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; +}; +type RoomMessageEvent_RoomPublicChannel_Fragment = { + __typename: 'RoomPublicChannel'; + key: string; + name?: string | null; +}; +type RoomMessageEvent_RoomPublicChannelUpdate_Fragment = { + __typename: 'RoomPublicChannelUpdate'; + key: string; + name?: string | null; +}; +type RoomMessageEvent_RoomPublicMessage_Fragment = { + __typename: 'RoomPublicMessage'; + messageId: string; + channelKey: string; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; +}; +type RoomMessageEvent_RoomPublicMessageUpdate_Fragment = { + __typename: 'RoomPublicMessageUpdate'; + messageId: string; + initText?: string | null; + initTextSource?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; +}; +type RoomMessageEvent_RoomSoundEffect_Fragment = { + __typename: 'RoomSoundEffect'; + messageId: string; + createdBy?: string | null; + createdAt: number; + volume: number; + file: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + }; +}; +export type RoomMessageEventFragment = RoomMessageEvent_PieceLog_Fragment | RoomMessageEvent_RoomMessagesReset_Fragment | RoomMessageEvent_RoomPrivateMessage_Fragment | RoomMessageEvent_RoomPrivateMessageUpdate_Fragment | RoomMessageEvent_RoomPublicChannel_Fragment | RoomMessageEvent_RoomPublicChannelUpdate_Fragment | RoomMessageEvent_RoomPublicMessage_Fragment | RoomMessageEvent_RoomPublicMessageUpdate_Fragment | RoomMessageEvent_RoomSoundEffect_Fragment; +export type SemVerFragment = { + __typename?: 'SemVer'; + major: number; + minor: number; + patch: number; + prerelease?: { + __typename?: 'Prerelease'; + type: PrereleaseType; + version: number; + } | null; +}; +export type GetAvailableGameSystemsQueryVariables = Exact<{ + [key: string]: never; +}>; +export type GetAvailableGameSystemsQuery = { + __typename?: 'Query'; + result: { + __typename?: 'GetAvailableGameSystemsResult'; + value: Array<{ + __typename?: 'AvailableGameSystem'; + id: string; + name: string; + sortKey: string; + }>; + }; +}; +export type GetDiceHelpMessagesQueryVariables = Exact<{ + id: Scalars['String']['input']; +}>; +export type GetDiceHelpMessagesQuery = { + __typename?: 'Query'; + result?: string | null; +}; +export type GetFilesQueryVariables = Exact<{ + input: GetFilesInput; +}>; +export type GetFilesQuery = { + __typename?: 'Query'; + result: { + __typename?: 'GetFilesResult'; + files: Array<{ + __typename?: 'FileItem'; + filename: string; + thumbFilename?: string | null; + screenname: string; + createdBy: string; + createdAt?: number | null; + listType: FileListType; + }>; + }; +}; +export type GetRoomQueryVariables = Exact<{ + id: Scalars['String']['input']; +}>; +export type GetRoomQuery = { + __typename?: 'Query'; + result: { + __typename: 'GetJoinedRoomResult'; + role: ParticipantRole; + room: { + __typename?: 'RoomGetState'; + revision: number; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + stateJson: string; + }; + } | { + __typename: 'GetNonJoinedRoomResult'; + roomAsListItem: { + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }; + } | { + __typename: 'GetRoomFailureResult'; + failureType: GetRoomFailureType; + }; +}; +export type GetRoomsListQueryVariables = Exact<{ + [key: string]: never; +}>; +export type GetRoomsListQuery = { + __typename?: 'Query'; + result: { + __typename: 'GetRoomsListFailureResult'; + failureType: GetRoomFailureType; + } | { + __typename: 'GetRoomsListSuccessResult'; + rooms: Array<{ + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }>; + }; +}; +export type GetMessagesQueryVariables = Exact<{ + roomId: Scalars['String']['input']; +}>; +export type GetMessagesQuery = { + __typename?: 'Query'; + result: { + __typename: 'GetRoomMessagesFailureResult'; + failureType: GetRoomMessagesFailureType; + } | { + __typename: 'RoomMessages'; + publicMessages: Array<{ + __typename?: 'RoomPublicMessage'; + messageId: string; + channelKey: string; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + }>; + privateMessages: Array<{ + __typename?: 'RoomPrivateMessage'; + messageId: string; + visibleTo: Array; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + }>; + pieceLogs: Array<{ + __typename?: 'PieceLog'; + messageId: string; + stateId: string; + createdAt: number; + logType: PieceLogType; + valueJson: string; + }>; + publicChannels: Array<{ + __typename?: 'RoomPublicChannel'; + key: string; + name?: string | null; + }>; + soundEffects: Array<{ + __typename?: 'RoomSoundEffect'; + messageId: string; + createdBy?: string | null; + createdAt: number; + volume: number; + file: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + }; + }>; + }; +}; +export type GetLogQueryVariables = Exact<{ + roomId: Scalars['String']['input']; +}>; +export type GetLogQuery = { + __typename?: 'Query'; + result: { + __typename: 'GetRoomLogFailureResult'; + failureType: GetRoomLogFailureType; + } | { + __typename: 'RoomMessages'; + publicMessages: Array<{ + __typename?: 'RoomPublicMessage'; + messageId: string; + channelKey: string; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + }>; + privateMessages: Array<{ + __typename?: 'RoomPrivateMessage'; + messageId: string; + visibleTo: Array; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + }>; + pieceLogs: Array<{ + __typename?: 'PieceLog'; + messageId: string; + stateId: string; + createdAt: number; + logType: PieceLogType; + valueJson: string; + }>; + publicChannels: Array<{ + __typename?: 'RoomPublicChannel'; + key: string; + name?: string | null; + }>; + soundEffects: Array<{ + __typename?: 'RoomSoundEffect'; + messageId: string; + createdBy?: string | null; + createdAt: number; + volume: number; + file: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + }; + }>; + }; +}; +export type GetMyRolesQueryVariables = Exact<{ + [key: string]: never; +}>; +export type GetMyRolesQuery = { + __typename?: 'Query'; + result: { + __typename?: 'Roles'; + admin: boolean; + }; +}; +export type GetRoomConnectionsQueryVariables = Exact<{ + roomId: Scalars['String']['input']; +}>; +export type GetRoomConnectionsQuery = { + __typename?: 'Query'; + result: { + __typename: 'GetRoomConnectionsFailureResult'; + failureType: GetRoomConnectionFailureType; + } | { + __typename: 'GetRoomConnectionsSuccessResult'; + fetchedAt: number; + connectedUserUids: Array; + }; +}; +export type GetServerInfoQueryVariables = Exact<{ + [key: string]: never; +}>; +export type GetServerInfoQuery = { + __typename?: 'Query'; + result: { + __typename?: 'ServerInfo'; + uploaderEnabled: boolean; + version: { + __typename?: 'SemVer'; + major: number; + minor: number; + patch: number; + prerelease?: { + __typename?: 'Prerelease'; + type: PrereleaseType; + version: number; + } | null; + }; + }; +}; +export type IsEntryQueryVariables = Exact<{ + [key: string]: never; +}>; +export type IsEntryQuery = { + __typename?: 'Query'; + result: boolean; +}; +export type GetRoomAsListItemQueryVariables = Exact<{ + roomId: Scalars['String']['input']; +}>; +export type GetRoomAsListItemQuery = { + __typename?: 'Query'; + result: { + __typename: 'GetRoomAsListItemFailureResult'; + failureType: GetRoomFailureType; + } | { + __typename: 'GetRoomAsListItemSuccessResult'; + room: { + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }; + }; +}; +export type AnswerRollCallMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + rollCallId: Scalars['String']['input']; + answer: Scalars['Boolean']['input']; +}>; +export type AnswerRollCallMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'AnswerRollCallResult'; + failureType?: AnswerRollCallFailureType | null; + }; +}; +export type CreateFileTagMutationVariables = Exact<{ + tagName: Scalars['String']['input']; +}>; +export type CreateFileTagMutation = { + __typename?: 'Mutation'; + result?: { + __typename?: 'FileTag'; + id: string; + name: string; + } | null; +}; +export type ChangeParticipantNameMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + newName: Scalars['String']['input']; +}>; +export type ChangeParticipantNameMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'ChangeParticipantNameResult'; + failureType?: ChangeParticipantNameFailureType | null; + }; +}; +export type CloseRollCallMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + rollCallId: Scalars['String']['input']; +}>; +export type CloseRollCallMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'CloseRollCallResult'; + failureType?: CloseRollCallFailureType | null; + }; +}; +export type CreateRoomMutationVariables = Exact<{ + input: CreateRoomInput; +}>; +export type CreateRoomMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'CreateRoomFailureResult'; + failureType: CreateRoomFailureType; + } | { + __typename: 'CreateRoomSuccessResult'; + id: string; + room: { + __typename?: 'RoomGetState'; + revision: number; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + stateJson: string; + }; + }; +}; +export type DeleteFilesMutationVariables = Exact<{ + filenames: Array | Scalars['String']['input']; +}>; +export type DeleteFilesMutation = { + __typename?: 'Mutation'; + result: Array; +}; +export type DeleteFileTagMutationVariables = Exact<{ + tagId: Scalars['String']['input']; +}>; +export type DeleteFileTagMutation = { + __typename?: 'Mutation'; + result: boolean; +}; +export type DeleteRoomMutationVariables = Exact<{ + id: Scalars['String']['input']; +}>; +export type DeleteRoomMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'DeleteRoomResult'; + failureType?: DeleteRoomFailureType | null; + }; +}; +export type DeleteRoomAsAdminMutationVariables = Exact<{ + id: Scalars['String']['input']; +}>; +export type DeleteRoomAsAdminMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'DeleteRoomAsAdminResult'; + failureType?: DeleteRoomAsAdminFailureType | null; + }; +}; +export type EditFileTagsMutationVariables = Exact<{ + input: EditFileTagsInput; +}>; +export type EditFileTagsMutation = { + __typename?: 'Mutation'; + result: boolean; +}; +export type JoinRoomAsPlayerMutationVariables = Exact<{ + id: Scalars['String']['input']; + name: Scalars['String']['input']; + password?: InputMaybe; +}>; +export type JoinRoomAsPlayerMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'JoinRoomFailureResult'; + failureType: JoinRoomFailureType; + } | { + __typename: 'JoinRoomSuccessResult'; + operation?: { + __typename?: 'RoomOperation'; + revisionTo: number; + valueJson: string; + operatedBy?: { + __typename?: 'OperatedBy'; + userUid: string; + clientId: string; + } | null; + } | null; + }; +}; +export type JoinRoomAsSpectatorMutationVariables = Exact<{ + id: Scalars['String']['input']; + name: Scalars['String']['input']; + password?: InputMaybe; +}>; +export type JoinRoomAsSpectatorMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'JoinRoomFailureResult'; + failureType: JoinRoomFailureType; + } | { + __typename: 'JoinRoomSuccessResult'; + operation?: { + __typename?: 'RoomOperation'; + revisionTo: number; + valueJson: string; + operatedBy?: { + __typename?: 'OperatedBy'; + userUid: string; + clientId: string; + } | null; + } | null; + }; +}; +export type EntryToServerMutationVariables = Exact<{ + password: Scalars['String']['input']; +}>; +export type EntryToServerMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'EntryToServerResult'; + type: EntryToServerResultType; + }; +}; +export type LeaveRoomMutationVariables = Exact<{ + id: Scalars['String']['input']; +}>; +export type LeaveRoomMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'LeaveRoomResult'; + failureType?: LeaveRoomFailureType | null; + }; +}; +export type OperateMutationVariables = Exact<{ + id: Scalars['String']['input']; + revisionFrom: Scalars['Int']['input']; + operation: RoomOperationInput; + requestId: Scalars['String']['input']; +}>; +export type OperateMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'OperateRoomFailureResult'; + failureType: OperateRoomFailureType; + } | { + __typename: 'OperateRoomIdResult'; + requestId: string; + } | { + __typename: 'OperateRoomNonJoinedResult'; + roomAsListItem: { + __typename?: 'RoomAsListItem'; + id: string; + name: string; + createdBy: string; + createdAt?: number | null; + updatedAt?: number | null; + role?: ParticipantRole | null; + isBookmarked: boolean; + requiresPlayerPassword: boolean; + requiresSpectatorPassword: boolean; + }; + } | { + __typename: 'OperateRoomSuccessResult'; + operation: { + __typename?: 'RoomOperation'; + revisionTo: number; + valueJson: string; + operatedBy?: { + __typename?: 'OperatedBy'; + userUid: string; + clientId: string; + } | null; + }; + }; +}; +export type PerformRollCallMutationVariables = Exact<{ + input: PerformRollCallInput; +}>; +export type PerformRollCallMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'PerformRollCallResult'; + failureType?: PerformRollCallFailureType | null; + }; +}; +export type PingMutationVariables = Exact<{ + value: Scalars['Float']['input']; +}>; +export type PingMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'Pong'; + createdBy?: string | null; + value: number; + }; +}; +export type PromoteToPlayerMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + password?: InputMaybe; +}>; +export type PromoteToPlayerMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'PromoteResult'; + failureType?: PromoteFailureType | null; + }; +}; +export type RenameFilesMutationVariables = Exact<{ + input: Array | RenameFileInput; +}>; +export type RenameFilesMutation = { + __typename?: 'Mutation'; + result: Array; +}; +export type ResetMessagesMutationVariables = Exact<{ + roomId: Scalars['String']['input']; +}>; +export type ResetMessagesMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'ResetRoomMessagesResult'; + failureType?: ResetRoomMessagesFailureType | null; + }; +}; +export type UpdateBookmarkMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + newValue: Scalars['Boolean']['input']; +}>; +export type UpdateBookmarkMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'UpdateBookmarkFailureResult'; + failureType: UpdateBookmarkFailureType; + } | { + __typename: 'UpdateBookmarkSuccessResult'; + prevValue: boolean; + currentValue: boolean; + }; +}; +export type WritePublicMessageMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + text: Scalars['String']['input']; + textColor?: InputMaybe; + channelKey: Scalars['String']['input']; + characterId?: InputMaybe; + customName?: InputMaybe; + gameType?: InputMaybe; +}>; +export type WritePublicMessageMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'RoomMessageSyntaxError'; + errorMessage: string; + } | { + __typename: 'RoomPublicMessage'; + messageId: string; + channelKey: string; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + } | { + __typename: 'WriteRoomPublicMessageFailureResult'; + failureType: WriteRoomPublicMessageFailureType; + }; +}; +export type WritePrivateMessageMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + visibleTo: Array | Scalars['String']['input']; + text: Scalars['String']['input']; + textColor?: InputMaybe; + characterId?: InputMaybe; + customName?: InputMaybe; + gameType?: InputMaybe; +}>; +export type WritePrivateMessageMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'RoomMessageSyntaxError'; + errorMessage: string; + } | { + __typename: 'RoomPrivateMessage'; + messageId: string; + visibleTo: Array; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + } | { + __typename: 'WriteRoomPrivateMessageFailureResult'; + failureType: WriteRoomPrivateMessageFailureType; + }; +}; +export type WriteRoomSoundEffectMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + file: FilePathInput; + volume: Scalars['Float']['input']; +}>; +export type WriteRoomSoundEffectMutation = { + __typename?: 'Mutation'; + result: { + __typename: 'RoomSoundEffect'; + messageId: string; + createdBy?: string | null; + createdAt: number; + volume: number; + file: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + }; + } | { + __typename: 'WriteRoomSoundEffectFailureResult'; + failureType: WriteRoomSoundEffectFailureType; + }; +}; +export type EditMessageMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + messageId: Scalars['String']['input']; + text: Scalars['String']['input']; +}>; +export type EditMessageMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'EditMessageResult'; + failureType?: EditMessageFailureType | null; + }; +}; +export type DeleteMessageMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + messageId: Scalars['String']['input']; +}>; +export type DeleteMessageMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'DeleteMessageResult'; + failureType?: DeleteMessageFailureType | null; + }; +}; +export type MakeMessageNotSecretMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + messageId: Scalars['String']['input']; +}>; +export type MakeMessageNotSecretMutation = { + __typename?: 'Mutation'; + result: { + __typename?: 'MakeMessageNotSecretResult'; + failureType?: MakeMessageNotSecretFailureType | null; + }; +}; +export type UpdateWritingMessageStatusMutationVariables = Exact<{ + roomId: Scalars['String']['input']; + newStatus: WritingMessageStatusInputType; +}>; +export type UpdateWritingMessageStatusMutation = { + __typename?: 'Mutation'; + result: boolean; +}; +export type RoomEventSubscriptionVariables = Exact<{ + id: Scalars['String']['input']; +}>; +export type RoomEventSubscription = { + __typename?: 'Subscription'; + roomEvent?: { + __typename?: 'RoomEvent'; + isRoomMessagesResetEvent: boolean; + roomOperation?: { + __typename?: 'RoomOperation'; + revisionTo: number; + valueJson: string; + operatedBy?: { + __typename?: 'OperatedBy'; + userUid: string; + clientId: string; + } | null; + } | null; + deleteRoomOperation?: { + __typename?: 'DeleteRoomOperation'; + deletedBy: string; + } | null; + roomMessageEvent?: { + __typename: 'PieceLog'; + messageId: string; + stateId: string; + createdAt: number; + logType: PieceLogType; + valueJson: string; + } | { + __typename: 'RoomMessagesReset'; + } | { + __typename: 'RoomPrivateMessage'; + messageId: string; + visibleTo: Array; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + } | { + __typename: 'RoomPrivateMessageUpdate'; + messageId: string; + initText?: string | null; + initTextSource?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + } | { + __typename: 'RoomPublicChannel'; + key: string; + name?: string | null; + } | { + __typename: 'RoomPublicChannelUpdate'; + key: string; + name?: string | null; + } | { + __typename: 'RoomPublicMessage'; + messageId: string; + channelKey: string; + initText?: string | null; + initTextSource?: string | null; + textColor?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + createdBy?: string | null; + customName?: string | null; + createdAt: number; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + character?: { + __typename?: 'CharacterValueForMessage'; + stateId: string; + isPrivate: boolean; + name: string; + image?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + portraitImage?: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + } | null; + } | null; + } | { + __typename: 'RoomPublicMessageUpdate'; + messageId: string; + initText?: string | null; + initTextSource?: string | null; + altTextToSecret?: string | null; + isSecret: boolean; + updatedAt?: number | null; + updatedText?: { + __typename?: 'UpdatedText'; + currentText?: string | null; + updatedAt: number; + } | null; + commandResult?: { + __typename?: 'CommandResult'; + text: string; + isSuccess?: boolean | null; + } | null; + } | { + __typename: 'RoomSoundEffect'; + messageId: string; + createdBy?: string | null; + createdAt: number; + volume: number; + file: { + __typename?: 'FilePath'; + sourceType: FileSourceType; + path: string; + }; + } | null; + roomConnectionEvent?: { + __typename?: 'RoomConnectionEvent'; + userUid: string; + isConnected: boolean; + updatedAt: number; + } | null; + writingMessageStatus?: { + __typename?: 'WritingMessageStatus'; + userUid: string; + status: WritingMessageStatusType; + } | null; + } | null; +}; +export type PongSubscriptionVariables = Exact<{ + [key: string]: never; +}>; +export type PongSubscription = { + __typename?: 'Subscription'; + pong: { + __typename?: 'Pong'; + createdBy?: string | null; + value: number; + }; +}; +export declare const RoomGetStateFragmentDoc: DocumentNode; +export declare const CreateRoomResultFragmentDoc: DocumentNode; +export declare const FileItemFragmentDoc: DocumentNode; +export declare const FileTagFragmentDoc: DocumentNode; +export declare const RoomAsListItemFragmentDoc: DocumentNode; +export declare const GetRoomListResultFragmentDoc: DocumentNode; +export declare const GetNonJoinedRoomResultFragmentDoc: DocumentNode; +export declare const GetRoomResultFragmentDoc: DocumentNode; +export declare const RoomOperationFragmentDoc: DocumentNode; +export declare const JoinRoomResultFragmentDoc: DocumentNode; +export declare const FilePathFragmentDoc: DocumentNode; +export declare const RoomSoundEffectFragmentDoc: DocumentNode; +export declare const CharacterValueForMessageFragmentDoc: DocumentNode; +export declare const RoomPublicMessageFragmentDoc: DocumentNode; +export declare const RoomPublicChannelFragmentDoc: DocumentNode; +export declare const RoomPrivateMessageFragmentDoc: DocumentNode; +export declare const PieceLogFragmentDoc: DocumentNode; +export declare const RoomMessageEventFragmentDoc: DocumentNode; +export declare const SemVerFragmentDoc: DocumentNode; +export declare const GetAvailableGameSystemsDocument: DocumentNode; +export declare const GetDiceHelpMessagesDocument: DocumentNode; +export declare const GetFilesDocument: DocumentNode; +export declare const GetRoomDocument: DocumentNode; +export declare const GetRoomsListDocument: DocumentNode; +export declare const GetMessagesDocument: DocumentNode; +export declare const GetLogDocument: DocumentNode; +export declare const GetMyRolesDocument: DocumentNode; +export declare const GetRoomConnectionsDocument: DocumentNode; +export declare const GetServerInfoDocument: DocumentNode; +export declare const IsEntryDocument: DocumentNode; +export declare const GetRoomAsListItemDocument: DocumentNode; +export declare const AnswerRollCallDocument: DocumentNode; +export declare const CreateFileTagDocument: DocumentNode; +export declare const ChangeParticipantNameDocument: DocumentNode; +export declare const CloseRollCallDocument: DocumentNode; +export declare const CreateRoomDocument: DocumentNode; +export declare const DeleteFilesDocument: DocumentNode; +export declare const DeleteFileTagDocument: DocumentNode; +export declare const DeleteRoomDocument: DocumentNode; +export declare const DeleteRoomAsAdminDocument: DocumentNode; +export declare const EditFileTagsDocument: DocumentNode; +export declare const JoinRoomAsPlayerDocument: DocumentNode; +export declare const JoinRoomAsSpectatorDocument: DocumentNode; +export declare const EntryToServerDocument: DocumentNode; +export declare const LeaveRoomDocument: DocumentNode; +export declare const OperateDocument: DocumentNode; +export declare const PerformRollCallDocument: DocumentNode; +export declare const PingDocument: DocumentNode; +export declare const PromoteToPlayerDocument: DocumentNode; +export declare const RenameFilesDocument: DocumentNode; +export declare const ResetMessagesDocument: DocumentNode; +export declare const UpdateBookmarkDocument: DocumentNode; +export declare const WritePublicMessageDocument: DocumentNode; +export declare const WritePrivateMessageDocument: DocumentNode; +export declare const WriteRoomSoundEffectDocument: DocumentNode; +export declare const EditMessageDocument: DocumentNode; +export declare const DeleteMessageDocument: DocumentNode; +export declare const MakeMessageNotSecretDocument: DocumentNode; +export declare const UpdateWritingMessageStatusDocument: DocumentNode; +export declare const RoomEventDocument: DocumentNode; +export declare const PongDocument: DocumentNode; +export {}; +//# sourceMappingURL=graphql.d.ts.map \ No newline at end of file diff --git a/packages/typed-document-node/dist/esm/generated/graphql.d.ts.map b/packages/typed-document-node/dist/esm/generated/graphql.d.ts.map new file mode 100644 index 000000000..70656fb1b --- /dev/null +++ b/packages/typed-document-node/dist/esm/generated/graphql.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/generated/graphql.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/typed-document-node/dist/esm/index.d.ts b/packages/typed-document-node/dist/esm/index.d.ts new file mode 100644 index 000000000..5627165a2 --- /dev/null +++ b/packages/typed-document-node/dist/esm/index.d.ts @@ -0,0 +1,2 @@ +export * from './generated/graphql'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/typed-document-node/dist/esm/index.d.ts.map b/packages/typed-document-node/dist/esm/index.d.ts.map new file mode 100644 index 000000000..4345b20ee --- /dev/null +++ b/packages/typed-document-node/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"} \ No newline at end of file diff --git a/packages/typed-document-node/dist/esm/index.js b/packages/typed-document-node/dist/esm/index.js new file mode 100644 index 000000000..25aeb46f8 --- /dev/null +++ b/packages/typed-document-node/dist/esm/index.js @@ -0,0 +1,6224 @@ +var AnswerRollCallFailureType; +(function (AnswerRollCallFailureType) { + AnswerRollCallFailureType["NotAuthorizedParticipant"] = "NotAuthorizedParticipant"; + AnswerRollCallFailureType["RollCallNotFound"] = "RollCallNotFound"; + AnswerRollCallFailureType["RoomNotFound"] = "RoomNotFound"; + AnswerRollCallFailureType["TooManyRequests"] = "TooManyRequests"; +})(AnswerRollCallFailureType || (AnswerRollCallFailureType = {})); +var ChangeParticipantNameFailureType; +(function (ChangeParticipantNameFailureType) { + ChangeParticipantNameFailureType["NotFound"] = "NotFound"; + ChangeParticipantNameFailureType["NotParticipant"] = "NotParticipant"; +})(ChangeParticipantNameFailureType || (ChangeParticipantNameFailureType = {})); +var CloseRollCallFailureType; +(function (CloseRollCallFailureType) { + CloseRollCallFailureType["AlreadyClosed"] = "AlreadyClosed"; + CloseRollCallFailureType["NotAuthorizedParticipant"] = "NotAuthorizedParticipant"; + CloseRollCallFailureType["RollCallNotFound"] = "RollCallNotFound"; + CloseRollCallFailureType["RoomNotFound"] = "RoomNotFound"; + CloseRollCallFailureType["TooManyRequests"] = "TooManyRequests"; +})(CloseRollCallFailureType || (CloseRollCallFailureType = {})); +var CreateRoomFailureType; +(function (CreateRoomFailureType) { + CreateRoomFailureType["UnknownError"] = "UnknownError"; +})(CreateRoomFailureType || (CreateRoomFailureType = {})); +var DeleteMessageFailureType; +(function (DeleteMessageFailureType) { + DeleteMessageFailureType["MessageDeleted"] = "MessageDeleted"; + DeleteMessageFailureType["MessageNotFound"] = "MessageNotFound"; + DeleteMessageFailureType["NotParticipant"] = "NotParticipant"; + DeleteMessageFailureType["NotYourMessage"] = "NotYourMessage"; + DeleteMessageFailureType["RoomNotFound"] = "RoomNotFound"; +})(DeleteMessageFailureType || (DeleteMessageFailureType = {})); +var DeleteRoomAsAdminFailureType; +(function (DeleteRoomAsAdminFailureType) { + DeleteRoomAsAdminFailureType["NotFound"] = "NotFound"; +})(DeleteRoomAsAdminFailureType || (DeleteRoomAsAdminFailureType = {})); +var DeleteRoomFailureType; +(function (DeleteRoomFailureType) { + DeleteRoomFailureType["NotCreatedByYou"] = "NotCreatedByYou"; + DeleteRoomFailureType["NotFound"] = "NotFound"; +})(DeleteRoomFailureType || (DeleteRoomFailureType = {})); +var EditMessageFailureType; +(function (EditMessageFailureType) { + EditMessageFailureType["MessageDeleted"] = "MessageDeleted"; + EditMessageFailureType["MessageNotFound"] = "MessageNotFound"; + EditMessageFailureType["NotParticipant"] = "NotParticipant"; + EditMessageFailureType["NotYourMessage"] = "NotYourMessage"; + EditMessageFailureType["RoomNotFound"] = "RoomNotFound"; +})(EditMessageFailureType || (EditMessageFailureType = {})); +var EntryToServerResultType; +(function (EntryToServerResultType) { + EntryToServerResultType["AlreadyEntried"] = "AlreadyEntried"; + EntryToServerResultType["NoPasswordRequired"] = "NoPasswordRequired"; + EntryToServerResultType["NotSignIn"] = "NotSignIn"; + EntryToServerResultType["Success"] = "Success"; + EntryToServerResultType["WrongPassword"] = "WrongPassword"; +})(EntryToServerResultType || (EntryToServerResultType = {})); +var FileListType; +(function (FileListType) { + FileListType["Public"] = "Public"; + FileListType["Unlisted"] = "Unlisted"; +})(FileListType || (FileListType = {})); +var FileSourceType; +(function (FileSourceType) { + FileSourceType["Default"] = "Default"; + FileSourceType["FirebaseStorage"] = "FirebaseStorage"; + FileSourceType["Uploader"] = "Uploader"; +})(FileSourceType || (FileSourceType = {})); +var GetRoomConnectionFailureType; +(function (GetRoomConnectionFailureType) { + GetRoomConnectionFailureType["NotParticipant"] = "NotParticipant"; + GetRoomConnectionFailureType["RoomNotFound"] = "RoomNotFound"; +})(GetRoomConnectionFailureType || (GetRoomConnectionFailureType = {})); +var GetRoomFailureType; +(function (GetRoomFailureType) { + GetRoomFailureType["NotFound"] = "NotFound"; +})(GetRoomFailureType || (GetRoomFailureType = {})); +var GetRoomLogFailureType; +(function (GetRoomLogFailureType) { + GetRoomLogFailureType["NotAuthorized"] = "NotAuthorized"; + GetRoomLogFailureType["NotParticipant"] = "NotParticipant"; + GetRoomLogFailureType["RoomNotFound"] = "RoomNotFound"; + GetRoomLogFailureType["UnknownError"] = "UnknownError"; +})(GetRoomLogFailureType || (GetRoomLogFailureType = {})); +var GetRoomMessagesFailureType; +(function (GetRoomMessagesFailureType) { + GetRoomMessagesFailureType["NotParticipant"] = "NotParticipant"; + GetRoomMessagesFailureType["RoomNotFound"] = "RoomNotFound"; +})(GetRoomMessagesFailureType || (GetRoomMessagesFailureType = {})); +var JoinRoomFailureType; +(function (JoinRoomFailureType) { + JoinRoomFailureType["AlreadyParticipant"] = "AlreadyParticipant"; + JoinRoomFailureType["NotFound"] = "NotFound"; + JoinRoomFailureType["TransformError"] = "TransformError"; + JoinRoomFailureType["WrongPassword"] = "WrongPassword"; +})(JoinRoomFailureType || (JoinRoomFailureType = {})); +var LeaveRoomFailureType; +(function (LeaveRoomFailureType) { + LeaveRoomFailureType["NotFound"] = "NotFound"; + LeaveRoomFailureType["NotParticipant"] = "NotParticipant"; +})(LeaveRoomFailureType || (LeaveRoomFailureType = {})); +var MakeMessageNotSecretFailureType; +(function (MakeMessageNotSecretFailureType) { + MakeMessageNotSecretFailureType["MessageNotFound"] = "MessageNotFound"; + MakeMessageNotSecretFailureType["NotParticipant"] = "NotParticipant"; + MakeMessageNotSecretFailureType["NotSecret"] = "NotSecret"; + MakeMessageNotSecretFailureType["NotYourMessage"] = "NotYourMessage"; + MakeMessageNotSecretFailureType["RoomNotFound"] = "RoomNotFound"; +})(MakeMessageNotSecretFailureType || (MakeMessageNotSecretFailureType = {})); +var OperateRoomFailureType; +(function (OperateRoomFailureType) { + OperateRoomFailureType["NotFound"] = "NotFound"; +})(OperateRoomFailureType || (OperateRoomFailureType = {})); +var ParticipantRole; +(function (ParticipantRole) { + ParticipantRole["Master"] = "Master"; + ParticipantRole["Player"] = "Player"; + ParticipantRole["Spectator"] = "Spectator"; +})(ParticipantRole || (ParticipantRole = {})); +var PerformRollCallFailureType; +(function (PerformRollCallFailureType) { + PerformRollCallFailureType["HasOpenRollCall"] = "HasOpenRollCall"; + PerformRollCallFailureType["NotAuthorizedParticipant"] = "NotAuthorizedParticipant"; + PerformRollCallFailureType["NotFound"] = "NotFound"; + PerformRollCallFailureType["TooManyRequests"] = "TooManyRequests"; +})(PerformRollCallFailureType || (PerformRollCallFailureType = {})); +var PieceLogType; +(function (PieceLogType) { + PieceLogType["Dice"] = "Dice"; + PieceLogType["String"] = "String"; +})(PieceLogType || (PieceLogType = {})); +var PrereleaseType; +(function (PrereleaseType) { + PrereleaseType["Alpha"] = "Alpha"; + PrereleaseType["Beta"] = "Beta"; + PrereleaseType["Rc"] = "Rc"; +})(PrereleaseType || (PrereleaseType = {})); +var PromoteFailureType; +(function (PromoteFailureType) { + PromoteFailureType["NoNeedToPromote"] = "NoNeedToPromote"; + PromoteFailureType["NotFound"] = "NotFound"; + PromoteFailureType["NotParticipant"] = "NotParticipant"; + PromoteFailureType["WrongPassword"] = "WrongPassword"; +})(PromoteFailureType || (PromoteFailureType = {})); +var ResetRoomMessagesFailureType; +(function (ResetRoomMessagesFailureType) { + ResetRoomMessagesFailureType["NotAuthorized"] = "NotAuthorized"; + ResetRoomMessagesFailureType["NotParticipant"] = "NotParticipant"; + ResetRoomMessagesFailureType["RoomNotFound"] = "RoomNotFound"; +})(ResetRoomMessagesFailureType || (ResetRoomMessagesFailureType = {})); +var UpdateBookmarkFailureType; +(function (UpdateBookmarkFailureType) { + UpdateBookmarkFailureType["NotFound"] = "NotFound"; +})(UpdateBookmarkFailureType || (UpdateBookmarkFailureType = {})); +var WriteRoomPrivateMessageFailureType; +(function (WriteRoomPrivateMessageFailureType) { + WriteRoomPrivateMessageFailureType["NotParticipant"] = "NotParticipant"; + WriteRoomPrivateMessageFailureType["RoomNotFound"] = "RoomNotFound"; + WriteRoomPrivateMessageFailureType["SyntaxError"] = "SyntaxError"; + WriteRoomPrivateMessageFailureType["VisibleToIsInvalid"] = "VisibleToIsInvalid"; +})(WriteRoomPrivateMessageFailureType || (WriteRoomPrivateMessageFailureType = {})); +var WriteRoomPublicMessageFailureType; +(function (WriteRoomPublicMessageFailureType) { + WriteRoomPublicMessageFailureType["NotAllowedChannelKey"] = "NotAllowedChannelKey"; + WriteRoomPublicMessageFailureType["NotAuthorized"] = "NotAuthorized"; + WriteRoomPublicMessageFailureType["NotParticipant"] = "NotParticipant"; + WriteRoomPublicMessageFailureType["RoomNotFound"] = "RoomNotFound"; + WriteRoomPublicMessageFailureType["SyntaxError"] = "SyntaxError"; +})(WriteRoomPublicMessageFailureType || (WriteRoomPublicMessageFailureType = {})); +var WriteRoomSoundEffectFailureType; +(function (WriteRoomSoundEffectFailureType) { + WriteRoomSoundEffectFailureType["NotAuthorized"] = "NotAuthorized"; + WriteRoomSoundEffectFailureType["NotParticipant"] = "NotParticipant"; + WriteRoomSoundEffectFailureType["RoomNotFound"] = "RoomNotFound"; +})(WriteRoomSoundEffectFailureType || (WriteRoomSoundEffectFailureType = {})); +var WritingMessageStatusInputType; +(function (WritingMessageStatusInputType) { + WritingMessageStatusInputType["Cleared"] = "Cleared"; + WritingMessageStatusInputType["KeepWriting"] = "KeepWriting"; + WritingMessageStatusInputType["StartWriting"] = "StartWriting"; +})(WritingMessageStatusInputType || (WritingMessageStatusInputType = {})); +var WritingMessageStatusType; +(function (WritingMessageStatusType) { + WritingMessageStatusType["Cleared"] = "Cleared"; + WritingMessageStatusType["Disconnected"] = "Disconnected"; + WritingMessageStatusType["Submit"] = "Submit"; + WritingMessageStatusType["Writing"] = "Writing"; +})(WritingMessageStatusType || (WritingMessageStatusType = {})); +const RoomGetStateFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomGetState' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomGetState' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revision' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateJson' } }, + ], + }, + }, + ], +}; +const CreateRoomResultFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CreateRoomResult' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'CreateRoomResult' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'room' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomGetState' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomGetState' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomGetState' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revision' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateJson' } }, + ], + }, + }, + ], +}; +const FileItemFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FileItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FileItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'filename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'thumbFilename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'screenname' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'listType' } }, + ], + }, + }, + ], +}; +const FileTagFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FileTag' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FileTag' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + ], +}; +const RoomAsListItemFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const GetRoomListResultFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'GetRoomListResult' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomsListResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomsListSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'rooms' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomAsListItem' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomsListFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const GetNonJoinedRoomResultFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'roomAsListItem' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomAsListItem' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const GetRoomResultFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'GetRoomResult' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'GetRoomResult' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetJoinedRoomResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'room' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomGetState' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomGetState' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomGetState' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revision' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'roomAsListItem' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomAsListItem' }, + }, + ], + }, + }, + ], + }, + }, + ], +}; +const RoomOperationFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomOperation' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomOperation' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revisionTo' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'operatedBy' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'userUid' } }, + { kind: 'Field', name: { kind: 'Name', value: 'clientId' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + ], +}; +const JoinRoomResultFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'JoinRoomResult' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'JoinRoomResult' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'JoinRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'operation' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomOperation' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'JoinRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomOperation' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomOperation' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revisionTo' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'operatedBy' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'userUid' } }, + { kind: 'Field', name: { kind: 'Name', value: 'clientId' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + ], +}; +const FilePathFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + ], +}; +const RoomSoundEffectFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomSoundEffect' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'file' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'volume' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + ], +}; +const CharacterValueForMessageFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + ], +}; +const RoomPublicMessageFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'channelKey' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + ], +}; +const RoomPublicChannelFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + ], +}; +const RoomPrivateMessageFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'visibleTo' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + ], +}; +const PieceLogFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'PieceLog' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'PieceLog' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'logType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + ], +}; +const RoomMessageEventFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomMessageEvent' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomMessageEvent' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'PieceLog' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'PieceLog' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannelUpdate' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessageUpdate' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'currentText' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedAt' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'text' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'isSuccess' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessageUpdate' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'currentText' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedAt' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'text' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'isSuccess' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomSoundEffect' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'file' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'volume' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'channelKey' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'visibleTo' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'PieceLog' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'PieceLog' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'logType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + ], +}; +const SemVerFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'SemVer' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'SemVer' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'major' } }, + { kind: 'Field', name: { kind: 'Name', value: 'minor' } }, + { kind: 'Field', name: { kind: 'Name', value: 'patch' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'prerelease' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { kind: 'Field', name: { kind: 'Name', value: 'version' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const GetAvailableGameSystemsDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetAvailableGameSystems' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getAvailableGameSystems' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'value' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'name' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'sortKey' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + ], +}; +const GetDiceHelpMessagesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetDiceHelpMessages' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getDiceHelpMessage' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + ], + }, + ], + }, + }, + ], +}; +const GetFilesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetFiles' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'GetFilesInput' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getFiles' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'input' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'files' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FileItem' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FileItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FileItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'filename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'thumbFilename' } }, + { kind: 'Field', name: { kind: 'Name', value: 'screenname' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'listType' } }, + ], + }, + }, + ], +}; +const GetRoomDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetRoom' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getRoom' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetJoinedRoomResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'role' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'room' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomGetState', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetNonJoinedRoomResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'roomAsListItem' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomAsListItem', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomGetState' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomGetState' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revision' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const GetRoomsListDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetRoomsList' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getRoomsList' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomsListSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'rooms' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomAsListItem', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomsListFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const GetMessagesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetMessages' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getMessages' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomMessages' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'publicMessages' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomPublicMessage', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'privateMessages' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomPrivateMessage', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'pieceLogs' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'PieceLog', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'publicChannels' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomPublicChannel', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'soundEffects' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomSoundEffect', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'GetRoomMessagesFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'channelKey' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'visibleTo' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'PieceLog' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'PieceLog' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'logType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomSoundEffect' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'file' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'volume' } }, + ], + }, + }, + ], +}; +const GetLogDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetLog' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getLog' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomMessages' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'publicMessages' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomPublicMessage', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'privateMessages' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomPrivateMessage', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'pieceLogs' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'PieceLog', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'publicChannels' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomPublicChannel', + }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'soundEffects' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomSoundEffect', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'GetRoomLogFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'channelKey' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'visibleTo' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'PieceLog' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'PieceLog' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'logType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomSoundEffect' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'file' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'volume' } }, + ], + }, + }, + ], +}; +const GetMyRolesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetMyRoles' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getMyRoles' }, + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'Field', name: { kind: 'Name', value: 'admin' } }], + }, + }, + ], + }, + }, + ], +}; +const GetRoomConnectionsDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetRoomConnections' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getRoomConnections' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'GetRoomConnectionsSuccessResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'fetchedAt' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'connectedUserUids' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'GetRoomConnectionsFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + ], +}; +const GetServerInfoDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetServerInfo' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getServerInfo' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'version' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'SemVer' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'uploaderEnabled' } }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'SemVer' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'SemVer' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'major' } }, + { kind: 'Field', name: { kind: 'Name', value: 'minor' } }, + { kind: 'Field', name: { kind: 'Name', value: 'patch' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'prerelease' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'type' } }, + { kind: 'Field', name: { kind: 'Name', value: 'version' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const IsEntryDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'IsEntry' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'isEntry' }, + }, + ], + }, + }, + ], +}; +const GetRoomAsListItemDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'GetRoomAsListItem' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'getRoomAsListItem' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'GetRoomAsListItemSuccessResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'room' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomAsListItem', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'GetRoomAsListItemFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const AnswerRollCallDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'AnswerRollCall' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'rollCallId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'answer' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'Boolean' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'answerRollCall' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'rollCallId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'rollCallId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'answer' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'answer' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const CreateFileTagDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'CreateFileTag' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'tagName' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'createFileTag' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'tagName' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'tagName' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FileTag' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FileTag' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FileTag' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + ], +}; +const ChangeParticipantNameDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'ChangeParticipantName' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'newName' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'changeParticipantName' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'newName' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'newName' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const CloseRollCallDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'CloseRollCall' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'rollCallId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'closeRollCall' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'rollCallId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'rollCallId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const CreateRoomDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'CreateRoom' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomInput' }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'createRoom' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'input' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CreateRoomResult' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomGetState' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomGetState' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revision' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CreateRoomResult' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'CreateRoomResult' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'room' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomGetState' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CreateRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const DeleteFilesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'DeleteFiles' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'filenames' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'ListType', + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'String' }, + }, + }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'deleteFiles' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'filenames' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'filenames' }, + }, + }, + ], + }, + ], + }, + }, + ], +}; +const DeleteFileTagDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'DeleteFileTag' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'tagId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'deleteFileTag' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'tagId' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'tagId' } }, + }, + ], + }, + ], + }, + }, + ], +}; +const DeleteRoomDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'DeleteRoom' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'deleteRoom' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const DeleteRoomAsAdminDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'DeleteRoomAsAdmin' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'deleteRoomAsAdmin' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const EditFileTagsDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'EditFileTags' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'EditFileTagsInput' }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'editFileTags' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'input' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + }, + ], + }, + ], + }, + }, + ], +}; +const JoinRoomAsPlayerDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'JoinRoomAsPlayer' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'name' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'password' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'joinRoomAsPlayer' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'name' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'name' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'password' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'password' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'JoinRoomResult' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomOperation' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomOperation' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revisionTo' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'operatedBy' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'userUid' } }, + { kind: 'Field', name: { kind: 'Name', value: 'clientId' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'JoinRoomResult' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'JoinRoomResult' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'JoinRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'operation' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomOperation' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'JoinRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const JoinRoomAsSpectatorDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'JoinRoomAsSpectator' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'name' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'password' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'joinRoomAsSpectator' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'name' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'name' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'password' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'password' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'JoinRoomResult' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomOperation' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomOperation' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revisionTo' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'operatedBy' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'userUid' } }, + { kind: 'Field', name: { kind: 'Name', value: 'clientId' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'JoinRoomResult' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'JoinRoomResult' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'JoinRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'operation' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomOperation' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'JoinRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const EntryToServerDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'EntryToServer' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'password' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'entryToServer' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'password' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'password' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [{ kind: 'Field', name: { kind: 'Name', value: 'type' } }], + }, + }, + ], + }, + }, + ], +}; +const LeaveRoomDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'LeaveRoom' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'leaveRoom' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const OperateDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'Operate' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'revisionFrom' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'Int' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'operation' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomOperationInput' }, + }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'requestId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'operate' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'prevRevision' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'revisionFrom' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'operation' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'operation' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'requestId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'requestId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'OperateRoomSuccessResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'operation' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomOperation', + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'OperateRoomIdResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'requestId' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'OperateRoomFailureResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'OperateRoomNonJoinedResult' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'roomAsListItem' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { + kind: 'Name', + value: 'RoomAsListItem', + }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomOperation' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomOperation' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revisionTo' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'operatedBy' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'userUid' } }, + { kind: 'Field', name: { kind: 'Name', value: 'clientId' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomAsListItem' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomAsListItem' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'role' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isBookmarked' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresPlayerPassword' } }, + { kind: 'Field', name: { kind: 'Name', value: 'requiresSpectatorPassword' } }, + ], + }, + }, + ], +}; +const PerformRollCallDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'PerformRollCall' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'PerformRollCallInput' }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'performRollCall' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'input' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const PingDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'Ping' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'value' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'Float' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'ping' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'value' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'value' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const PromoteToPlayerDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'PromoteToPlayer' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'password' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'promoteToPlayer' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'password' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'password' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const RenameFilesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'RenameFiles' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'ListType', + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RenameFileInput' }, + }, + }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'renameFiles' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'input' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'input' } }, + }, + ], + }, + ], + }, + }, + ], +}; +const ResetMessagesDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'ResetMessages' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'resetMessages' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const UpdateBookmarkDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'UpdateBookmark' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'newValue' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'Boolean' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'updateBookmark' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'newValue' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'newValue' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'UpdateBookmarkSuccessResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'prevValue' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'currentValue' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'UpdateBookmarkFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + ], +}; +const WritePublicMessageDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'WritePublicMessage' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'text' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'textColor' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'channelKey' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'characterId' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'customName' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'gameType' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'writePublicMessage' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'text' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'text' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'textColor' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'textColor' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'channelKey' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'channelKey' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'characterId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'characterId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'customName' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'customName' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'gameType' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'gameType' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'WriteRoomPublicMessageFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomMessageSyntaxError' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'errorMessage' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'channelKey' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + ], +}; +const WritePrivateMessageDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'WritePrivateMessage' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'visibleTo' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'ListType', + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'String' }, + }, + }, + }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'text' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'textColor' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'characterId' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'customName' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'gameType' } }, + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'writePrivateMessage' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'visibleTo' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'visibleTo' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'text' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'text' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'textColor' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'textColor' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'characterId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'characterId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'customName' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'customName' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'gameType' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'gameType' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'WriteRoomPrivateMessageFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomMessageSyntaxError' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'errorMessage' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'visibleTo' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + ], +}; +const WriteRoomSoundEffectDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'WriteRoomSoundEffect' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'file' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePathInput' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'volume' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'Float' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'writeRoomSoundEffect' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'file' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'file' } }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'volume' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'volume' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { + kind: 'Name', + value: 'WriteRoomSoundEffectFailureResult', + }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'failureType' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomSoundEffect' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'file' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'volume' } }, + ], + }, + }, + ], +}; +const EditMessageDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'EditMessage' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'messageId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'text' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'editMessage' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'messageId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'messageId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'text' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'text' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const DeleteMessageDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'DeleteMessage' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'messageId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'deleteMessage' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'messageId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'messageId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const MakeMessageNotSecretDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'MakeMessageNotSecret' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'messageId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'makeMessageNotSecret' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'messageId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'messageId' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'failureType' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const UpdateWritingMessageStatusDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'mutation', + name: { kind: 'Name', value: 'UpdateWritingMessageStatus' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'roomId' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'newStatus' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'WritingMessageStatusInputType' }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + alias: { kind: 'Name', value: 'result' }, + name: { kind: 'Name', value: 'updateWritingMessageStatus' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'roomId' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'roomId' }, + }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'newStatus' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'newStatus' }, + }, + }, + ], + }, + ], + }, + }, + ], +}; +const RoomEventDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'subscription', + name: { kind: 'Name', value: 'RoomEvent' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'roomEvent' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'isRoomMessagesResetEvent' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'roomOperation' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomOperation' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'deleteRoomOperation' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'deletedBy' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'roomMessageEvent' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomMessageEvent' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'roomConnectionEvent' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'userUid' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'isConnected' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedAt' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'writingMessageStatus' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'userUid' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'status' }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'FilePath' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'FilePath' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'sourceType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'path' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomSoundEffect' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'file' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'volume' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isPrivate' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'image' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'portraitImage' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'FilePath' }, + }, + ], + }, + }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'channelKey' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'visibleTo' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'currentText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'textColor' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'text' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSuccess' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'character' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'CharacterValueForMessage' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'customName' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'PieceLog' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'PieceLog' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'stateId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'createdAt' } }, + { kind: 'Field', name: { kind: 'Name', value: 'logType' } }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomOperation' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomOperation' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'revisionTo' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'operatedBy' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'userUid' } }, + { kind: 'Field', name: { kind: 'Name', value: 'clientId' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'valueJson' } }, + ], + }, + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'RoomMessageEvent' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'RoomMessageEvent' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: '__typename' } }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomSoundEffect' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPublicMessage' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPublicChannel' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'RoomPrivateMessage' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'PieceLog' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'PieceLog' }, + }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicChannelUpdate' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'key' } }, + { kind: 'Field', name: { kind: 'Name', value: 'name' } }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPublicMessageUpdate' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'currentText' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedAt' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'text' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'isSuccess' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + { + kind: 'InlineFragment', + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'RoomPrivateMessageUpdate' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'messageId' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initText' } }, + { kind: 'Field', name: { kind: 'Name', value: 'initTextSource' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedText' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'currentText' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'updatedAt' }, + }, + ], + }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'commandResult' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'text' }, + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'isSuccess' }, + }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'altTextToSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'isSecret' } }, + { kind: 'Field', name: { kind: 'Name', value: 'updatedAt' } }, + ], + }, + }, + ], + }, + }, + ], +}; +const PongDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'subscription', + name: { kind: 'Name', value: 'Pong' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'pong' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'createdBy' } }, + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + ], + }, + }, + ], + }, + }, + ], +}; + +export { AnswerRollCallDocument, AnswerRollCallFailureType, ChangeParticipantNameDocument, ChangeParticipantNameFailureType, CharacterValueForMessageFragmentDoc, CloseRollCallDocument, CloseRollCallFailureType, CreateFileTagDocument, CreateRoomDocument, CreateRoomFailureType, CreateRoomResultFragmentDoc, DeleteFileTagDocument, DeleteFilesDocument, DeleteMessageDocument, DeleteMessageFailureType, DeleteRoomAsAdminDocument, DeleteRoomAsAdminFailureType, DeleteRoomDocument, DeleteRoomFailureType, EditFileTagsDocument, EditMessageDocument, EditMessageFailureType, EntryToServerDocument, EntryToServerResultType, FileItemFragmentDoc, FileListType, FilePathFragmentDoc, FileSourceType, FileTagFragmentDoc, GetAvailableGameSystemsDocument, GetDiceHelpMessagesDocument, GetFilesDocument, GetLogDocument, GetMessagesDocument, GetMyRolesDocument, GetNonJoinedRoomResultFragmentDoc, GetRoomAsListItemDocument, GetRoomConnectionFailureType, GetRoomConnectionsDocument, GetRoomDocument, GetRoomFailureType, GetRoomListResultFragmentDoc, GetRoomLogFailureType, GetRoomMessagesFailureType, GetRoomResultFragmentDoc, GetRoomsListDocument, GetServerInfoDocument, IsEntryDocument, JoinRoomAsPlayerDocument, JoinRoomAsSpectatorDocument, JoinRoomFailureType, JoinRoomResultFragmentDoc, LeaveRoomDocument, LeaveRoomFailureType, MakeMessageNotSecretDocument, MakeMessageNotSecretFailureType, OperateDocument, OperateRoomFailureType, ParticipantRole, PerformRollCallDocument, PerformRollCallFailureType, PieceLogFragmentDoc, PieceLogType, PingDocument, PongDocument, PrereleaseType, PromoteFailureType, PromoteToPlayerDocument, RenameFilesDocument, ResetMessagesDocument, ResetRoomMessagesFailureType, RoomAsListItemFragmentDoc, RoomEventDocument, RoomGetStateFragmentDoc, RoomMessageEventFragmentDoc, RoomOperationFragmentDoc, RoomPrivateMessageFragmentDoc, RoomPublicChannelFragmentDoc, RoomPublicMessageFragmentDoc, RoomSoundEffectFragmentDoc, SemVerFragmentDoc, UpdateBookmarkDocument, UpdateBookmarkFailureType, UpdateWritingMessageStatusDocument, WritePrivateMessageDocument, WritePublicMessageDocument, WriteRoomPrivateMessageFailureType, WriteRoomPublicMessageFailureType, WriteRoomSoundEffectDocument, WriteRoomSoundEffectFailureType, WritingMessageStatusInputType, WritingMessageStatusType }; +//# sourceMappingURL=index.js.map diff --git a/packages/typed-document-node/dist/esm/index.js.map b/packages/typed-document-node/dist/esm/index.js.map new file mode 100644 index 000000000..b596f3335 --- /dev/null +++ b/packages/typed-document-node/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/generated/graphql.ts"],"sourcesContent":[null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/index.d.ts b/packages/utils/dist/cjs/index.d.ts new file mode 100644 index 000000000..d436d7b5d --- /dev/null +++ b/packages/utils/dist/cjs/index.d.ts @@ -0,0 +1,24 @@ +export { arrayEquals } from './internal/arrayEquals'; +export { compare, Operator } from './internal/compare'; +export { CompositeKey, stringToCompositeKey, compositeKeyToJsonString, compositeKeyEquals, } from './internal/compositeKey'; +export { delay } from './internal/delay'; +export { DualKey, DualKeyMap, ReadonlyDualKeyMap, DualKeyMapSource, groupJoinDualKeyMap, groupJoin3DualKeyMap, groupJoin4DualKeyMap, } from './internal/dualKeyMap'; +export { DeletableTree } from './internal/deletableTree'; +export { filterInt } from './internal/filterInt'; +export { groupJoinArray } from './internal/groupJoinArray'; +export { groupJoinMap } from './internal/groupJoinMap'; +export { groupJoinSet } from './internal/groupJoinSet'; +export { mapIterable, chooseIterable, pairwiseIterable } from './internal/iterable'; +export { keyNames } from './internal/keyNames'; +export { loggerRef, createDefaultLogger } from './internal/logger'; +export { MultiKeyMap } from './internal/multiKeyMap'; +export { MultiValueSet } from './internal/multiValueSet'; +export { NonEmptyArray, ReadonlyNonEmptyArray, isReadonlyNonEmptyArray, } from './internal/nonEmptyArray'; +export { parseStringToBoolean, parseStringToBooleanError } from './internal/parseStringToBoolean'; +export { parseEnvListValue } from './internal/parseEnvListValue'; +export { parsePinoLogLevel, PinoLogLevel } from './internal/parsePinoLogLevel'; +export { getExactlyOneKey, chooseDualKeyRecord, chooseRecord, dualKeyRecordForEach, isRecordEmpty, mapDualKeyRecord, mapRecord, mapToRecord, recordForEach, recordForEachAsync, recordToIterator, recordToArray, dualKeyRecordToDualKeyMap, recordToMap, } from './internal/record'; +export { SemVer, alpha, beta, rc, SemverOption } from './internal/semver'; +export { Tree } from './internal/tree'; +export { left, right, both, GroupJoinResult } from './internal/types'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/index.d.ts.map b/packages/utils/dist/cjs/index.d.ts.map new file mode 100644 index 000000000..da4f63124 --- /dev/null +++ b/packages/utils/dist/cjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACH,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EACH,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACH,aAAa,EACb,qBAAqB,EACrB,uBAAuB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,WAAW,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/index.js b/packages/utils/dist/cjs/index.js new file mode 100644 index 000000000..929c9a9d8 --- /dev/null +++ b/packages/utils/dist/cjs/index.js @@ -0,0 +1,1169 @@ +'use strict'; + +var option = require('@kizahasi/option'); +var loggerBase = require('@flocon-trpg/logger-base'); +var browserOrNode = require('browser-or-node'); +var pino = require('pino'); +var result = require('@kizahasi/result'); + +function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } + +var pino__default = /*#__PURE__*/_interopDefault(pino); + +function* groupJoinArray(left, right) { + for (let i = 0;; i++) { + const leftHasValue = i < left.length; + const rightHasValue = i < right.length; + if (leftHasValue) { + if (rightHasValue) { + yield { type: 'both', left: left[i], right: right[i] }; + continue; + } + yield { type: 'left', left: left[i] }; + continue; + } + if (rightHasValue) { + yield { type: 'right', right: right[i] }; + continue; + } + return; + } +} + +const left = 'left'; +const right = 'right'; +const both = 'both'; + +const arrayEquals = (x, y) => { + for (const elem of groupJoinArray(x, y)) { + if (elem.type !== both) { + return false; + } + if (elem.left !== elem.right) { + return false; + } + } + return true; +}; + +const compare = (left, operator, right) => { + switch (operator) { + case '=': + return left === right; + case '<': + return left < right; + case '<=': + return left <= right; + case '>': + return left > right; + case '>=': + return left >= right; + } +}; + +const stringToCompositeKey = (source) => { + const array = source.split('@'); + if (array.length !== 2) { + return null; + } + return { id: array[0], createdBy: array[1] }; +}; +const compositeKeyToJsonString = (source) => { + return `{ id: ${source.id}, createdBy: ${source.createdBy} }`; +}; +const compositeKeyEquals = (x, y) => { + return x.createdBy === y.createdBy && x.id === y.id; +}; + +const delay = async (ms) => { + await new Promise(next => setTimeout(next, ms)); +}; + +// Recordのkeyは、numberはstringとして解釈され、symbolはfor in文で列挙されないため、stringのみの対応としている。 +const mapToRecord = (source) => { + const result = {}; + source.forEach((value, key) => { + if (result[key] !== undefined) { + // プロトタイプ汚染などを防いでいる。ただ、これで十分なのだろうか? + throw new Error(`${key} already exists`); + } + result[key] = value; + }); + return result; +}; +const chooseRecord = (source, chooser) => { + const result = new Map(); + for (const key in source) { + const element = source[key]; + if (element !== undefined) { + const newElement = chooser(element, key); + if (newElement !== undefined) { + result.set(key, newElement); + } + } + } + return mapToRecord(result); +}; +const chooseDualKeyRecord = (source, chooser) => { + return chooseRecord(source, (inner, key1) => inner === undefined + ? undefined + : chooseRecord(inner, (value, key2) => chooser(value, { first: key1, second: key2 }))); +}; +const mapRecord = (source, mapping) => { + const result = new Map(); + for (const key in source) { + const element = source[key]; + if (element !== undefined) { + const newElement = mapping(element, key); + result.set(key, newElement); + } + } + return mapToRecord(result); +}; +const mapDualKeyRecord = (source, mapping) => { + return chooseRecord(source, (inner, key1) => inner === undefined + ? undefined + : mapRecord(inner, (value, key2) => mapping(value, { first: key1, second: key2 }))); +}; +function* recordToIterator(source) { + for (const key in source) { + const value = source[key]; + if (value !== undefined) { + yield { key, value }; + } + } +} +const getExactlyOneKey = (record) => { + let lastKey = null; + for (const pair of recordToIterator(record)) { + if (lastKey != null) { + throw new Error('Expected length to be 1, but actually more than 1.'); + } + lastKey = pair.key; + } + if (lastKey == null) { + throw new Error('Expected length to be 1, but actually 0.'); + } + return lastKey; +}; +const recordToArray = (source) => { + return [...recordToIterator(source)]; +}; +const recordToMap = (source) => { + const result = new Map(); + for (const key in source) { + const value = source[key]; + if (value !== undefined) { + result.set(key, value); + } + } + return result; +}; +const dualKeyRecordToDualKeyMap = (source) => { + const result = new DualKeyMap(); + for (const first in source) { + const innerRecord = source[first]; + if (innerRecord !== undefined) { + for (const second in innerRecord) { + const value = innerRecord[second]; + if (value !== undefined) { + result.set({ first, second }, value); + } + } + } + } + return result; +}; +const recordForEach = (source, action) => { + for (const pair of recordToIterator(source)) { + action(pair.value, pair.key); + } +}; +const recordForEachAsync = async (source, action) => { + for (const pair of recordToIterator(source)) { + await action(pair.value, pair.key); + } +}; +const isRecordEmpty = (source) => { + for (const key in source) { + const value = source[key]; + if (value !== undefined) { + return false; + } + } + return true; +}; +const dualKeyRecordForEach = (source, action) => { + for (const first in source) { + const inner = source[first]; + if (inner === undefined) { + continue; + } + for (const second in inner) { + const value = inner[second]; + if (value === undefined) { + continue; + } + action(value, { first, second }); + } + } +}; + +class DualKeyMap { + // Mapは常に空でないMapとなる + _core; + constructor(sourceMap) { + if (sourceMap != null) { + this._core = DualKeyMap.chooseMap(sourceMap, x => option.Option.some(x)); + return; + } + this._core = new Map(); + } + static chooseMap(source, chooser) { + const result = new Map(); + for (const [firstKey, first] of source) { + if (first.size === 0) { + continue; + } + const toSet = new Map(); + for (const [secondKey, second] of first) { + const chooserResult = chooser(second, { first: firstKey, second: secondKey }); + if (chooserResult.isNone) { + continue; + } + toSet.set(secondKey, chooserResult.value); + } + result.set(firstKey, toSet); + } + return result; + } + static create(source, chooser) { + const result = new DualKeyMap(); + result._core = DualKeyMap.chooseMap(source instanceof DualKeyMap ? source._core : source, chooser); + return result; + } + static ofRecord(source) { + const result = new DualKeyMap(); + for (const key1 in source) { + const inner = source[key1]; + if (inner === undefined) { + continue; + } + for (const key2 in inner) { + const value = inner[key2]; + if (value !== undefined) { + result.set({ first: key1, second: key2 }, value); + } + } + } + return result; + } + map(mapping) { + return DualKeyMap.create(this, (source, key) => option.Option.some(mapping(source, key))); + } + choose(chooser) { + return DualKeyMap.create(this, (source, key) => chooser(source, key)); + } + clone() { + return DualKeyMap.create(this, x => option.Option.some(x)); + } + get({ first, second }) { + const inner = this._core.get(first); + if (inner === undefined) { + return undefined; + } + return inner.get(second); + } + // 戻り値のReadonlyMapをMapにするとDualKeyMapを操作できて一見便利そうだが、そうすると_coreの制約を満たせなくなる。また、ReadonlyMapであれば戻り値がundefinedのときは空のMapを作成して返せるため綺麗になる。 + getByFirst(first) { + return this._core.get(first) ?? new Map(); + } + set({ first, second }, value) { + let inner = this._core.get(first); + if (inner === undefined) { + inner = new Map(); + this._core.set(first, inner); + } + inner.set(second, value); + return this; + } + delete({ first, second }) { + const inner = this._core.get(first); + if (inner === undefined) { + return false; + } + const result = inner.delete(second); + if (inner.size === 0) { + this._core.delete(first); + } + return result; + } + has(key) { + return this.get(key) !== undefined; + } + *[Symbol.iterator]() { + for (const [firstKey, first] of this._core) { + for (const [secondKey, second] of first) { + yield [{ first: firstKey, second: secondKey }, second]; + } + } + } + toArray() { + return Array.from(this); + } + toMap() { + return DualKeyMap.chooseMap(this._core, x => option.Option.some(x)); + } + toStringRecord(createStringKey1, createStringKey2) { + const result = new Map(); + this._core.forEach((inner, first) => { + const innerRecord = new Map(); + inner.forEach((value, second) => { + innerRecord.set(createStringKey2(second), value); + }); + result.set(createStringKey1(first), mapToRecord(innerRecord)); + }); + return mapToRecord(result); + } + get size() { + return this.toArray().length; + } + get isEmpty() { + return this.size === 0; + } + forEach(action) { + for (const [key, value] of this) { + action(value, key); + } + } + reduce(reducer, seed) { + let result = seed; + this.forEach((element, key) => (result = reducer(result, element, key))); + return result; + } + // 主な使用目的はデバッグ目的で文字列化させるため + toJSON(valueToString) { + return JSON.stringify([...this._core].map(([key1, value]) => [ + key1, + [...value].map(([key2, value]) => [ + key2, + valueToString === undefined ? value : valueToString(value), + ]), + ])); + } +} +const groupJoinDualKeyMap = (left, right) => { + const result = new DualKeyMap(); + const rightClone = right.clone(); + left.forEach((leftElement, key) => { + const rightElement = rightClone.get(key); + rightClone.delete(key); + if (rightElement === undefined) { + result.set(key, { type: 'left', left: leftElement }); + return; + } + result.set(key, { + type: 'both', + left: leftElement, + right: rightElement, + }); + }); + rightClone.forEach((rightElement, key) => { + result.set(key, { type: 'right', right: rightElement }); + }); + return result; +}; +// [undefined, undefined, undefined]が返されることはない +const groupJoin3DualKeyMap = (source1, source2, source3) => { + const source = groupJoinDualKeyMap(source1, groupJoinDualKeyMap(source2, source3)); + return source.map(group => { + switch (group.type) { + case left: + return [group.left, undefined, undefined]; + case right: + case both: { + const result1 = (() => { + if (group.type === both) { + return group.left; + } + return undefined; + })(); + switch (group.right.type) { + case left: + return [result1, group.right.left, undefined]; + case right: + return [result1, undefined, group.right.right]; + case both: + return [result1, group.right.left, group.right.right]; + } + } + } + }); +}; +// [undefined, undefined, undefined, undefined]が返されることはない +const groupJoin4DualKeyMap = (source1, source2, source3, source4) => { + const source = groupJoinDualKeyMap(groupJoin3DualKeyMap(source1, source2, source3), source4); + return source.map(group => { + switch (group.type) { + case left: + return [...group.left, undefined]; + case right: + return [undefined, undefined, undefined, group.right]; + case both: { + return [...group.left, group.right]; + } + } + }); +}; + +function* mapIterable(source, mapping) { + for (const elem of source) { + yield mapping(elem); + } +} +function* chooseIterable(source, mapping) { + for (const elem of source) { + const newValue = mapping(elem); + if (!newValue.isNone) { + yield newValue.value; + } + } +} +function* pairwiseIterable(source) { + let prev = undefined; + for (const elem of source) { + yield { prev, current: elem }; + prev = elem; + } +} + +/** ミュータブルな木構造を表します。nodeをdeleteする機能は現時点では未実装です。*/ +class Tree { + #currentNode; + constructor(rootNodeValue) { + this.#currentNode = { + absolutePath: [], + value: rootNodeValue, + children: new Map(), + }; + } + static createTree(node) { + const result = new Tree(undefined); + result.#currentNode = node; + return result; + } + #ensureNode(key, initValue) { + let result = this.#currentNode; + for (const dir of key) { + let next = result.children.get(dir); + if (next == null) { + const absolutePath = [...result.absolutePath, dir]; + next = { + absolutePath, + value: initValue(absolutePath), + children: new Map(), + }; + result.children.set(dir, next); + } + result = next; + } + return result; + } + #getNode(key) { + let result = this.#currentNode; + for (const keyElement of key) { + const next = result.children.get(keyElement); + if (next == null) { + return null; + } + result = next; + } + return result; + } + get absolutePath() { + return this.#currentNode.absolutePath; + } + get value() { + return this.#currentNode.value; + } + /** 指定したkeyにあるnodeを基準とした新しいTreeオブジェクトを返します。nodeへの参照は共有されます。absolutePathは引き継がれます。 */ + createSubTree(key, initValue) { + const node = this.#ensureNode(key, initValue); + return Tree.createTree(node); + } + createSubTreeIfExists(key) { + if (this.get(key).isNone) { + return null; + } + return this.createSubTree(key, () => { + throw new Error('This should not happen'); + }); + } + /** 直接の子の要素を全て取得します。 */ + getChildren() { + const result = new Map(); + for (const [childKey, childNode] of this.#currentNode.children) { + result.set(childKey, Tree.createTree(childNode)); + } + return result; + } + get(key) { + const node = this.#getNode(key); + if (node == null) { + return option.Option.none(); + } + return option.Option.some(node.value); + } + ensure(key, replacer, initValue) { + const node = this.#ensureNode(key, initValue); + const result = replacer(node.value); + node.value = result; + return result; + } + #traverseNodes() { + // eslint-disable-next-line @typescript-eslint/no-this-alias + const self = this; + function* main() { + yield self.#currentNode; + for (const [, child] of self.getChildren()) { + yield* child.#traverseNodes(); + } + } + return main(); + } + traverse() { + return mapIterable(this.#traverseNodes(), elem => ({ + absolutePath: elem.absolutePath, + value: elem.value, + })); + } + replaceAllValues(replacer) { + for (const elem of this.#traverseNodes()) { + elem.value = replacer({ absolutePath: elem.absolutePath, value: elem.value }); + } + } + get size() { + return [...this.traverse()].length; + } + #mapNode(source, mapping) { + const childrenClone = new Map(); + for (const [sourceChildKey, sourceChild] of source.children) { + childrenClone.set(sourceChildKey, this.#mapNode(sourceChild, mapping)); + } + return { + absolutePath: source.absolutePath, + value: mapping(source.value, source.absolutePath), + children: childrenClone, + }; + } + map(mapping) { + const newNode = this.#mapNode(this.#currentNode, (oldValue, absolutePath) => mapping({ value: oldValue, absolutePath })); + return Tree.createTree(newNode); + } +} + +/** 仮想的にnodeをdeleteできる機能を持ったTreeを表します。内部でnodeにdeleteフラグを立てることでdeleteされたことを表すため、deleteしてもメモリの空き容量は増えません。 */ +class DeletableTree { + #source; + constructor(rootValue = option.Option.none()) { + this.#source = new Tree(rootValue); + } + get absolutePath() { + return this.#source.absolutePath; + } + get value() { + // 常に this.get([]) と等しい + return this.#source.value; + } + /** 指定したkeyにあるnodeを基準とした新しいTreeオブジェクトを返します。nodeへの参照は共有されます。absolutePathは引き継がれます。 */ + createSubTree(key, initValue) { + const result = new DeletableTree(); + const newTree = this.#source.createSubTree(key, absolutePath => option.Option.some(initValue(absolutePath))); + result.#source = newTree; + return result; + } + createSubTreeIfExists(key) { + if (this.get(key).isNone) { + return null; + } + return this.createSubTree(key, () => { + throw new Error('this should not happen'); + }); + } + /** 直接の子の要素を全て取得します。 */ + getChildren() { + const result = new Map(); + for (const [childKey] of this.#source.getChildren()) { + if (this.get([childKey]).isNone) { + continue; + } + result.set(childKey, this.createSubTree([childKey], () => { + throw new Error('This should not happen'); + })); + } + return result; + } + get(key) { + const node = this.#source.get(key); + if (node.isNone) { + return option.Option.none(); + } + if (node.value.isNone) { + return option.Option.none(); + } + return option.Option.some(node.value.value); + } + ensure(key, replacer, initValue) { + const result = this.#source.ensure(key, oldValue => option.Option.some(replacer(oldValue)), () => option.Option.none()); + const absolutePath = []; + const ensure = () => { + this.#source.ensure(absolutePath, oldValue => { + if (oldValue.isNone) { + return option.Option.some(initValue(absolutePath)); + } + return oldValue; + }, () => option.Option.none()); + }; + ensure(); + for (const k of key) { + absolutePath.push(k); + ensure(); + } + return result.value; + } + delete(key) { + if (this.get(key).isNone) { + return; + } + const subTree = this.#source.createSubTree(key, () => { + throw new Error('This should not happen'); + }); + // keyのNodeとその子孫すべてをNoneに置き換えている。 + subTree.replaceAllValues(() => option.Option.none()); + } + traverse() { + return chooseIterable(this.#source.traverse(), elem => { + if (elem.value.isNone) { + return option.Option.none(); + } + return option.Option.some({ absolutePath: elem.absolutePath, value: elem.value.value }); + }); + } + get size() { + return [...this.traverse()].length; + } + map(mapping) { + const newTree = this.#source.map(oldValue => { + if (oldValue.value.isNone) { + return oldValue.value; + } + return option.Option.some(mapping({ absolutePath: oldValue.absolutePath, value: oldValue.value.value })); + }); + const result = new DeletableTree(); + result.#source = newTree; + return result; + } + clone() { + return this.map(({ value }) => value); + } +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt#a_stricter_parse_function +const filterInt = (value) => { + if (/^[-+]?\d+$/.test(value)) { + return Number(value); + } + else { + return null; + } +}; + +const groupJoinMap = (left, right) => { + const result = new Map(); + const rightClone = new Map(right); + left.forEach((leftElement, key) => { + const rightElement = rightClone.get(key); + rightClone.delete(key); + if (rightElement === undefined) { + result.set(key, { type: 'left', left: leftElement }); + return; + } + result.set(key, { + type: 'both', + left: leftElement, + right: rightElement, + }); + }); + rightClone.forEach((rightElement, key) => { + result.set(key, { type: 'right', right: rightElement }); + }); + return result; +}; + +const groupJoinSet = (left, right) => { + const result = new Map(); + const rightClone = new Set(right); + left.forEach(leftElement => { + const existsInRight = rightClone.has(leftElement); + rightClone.delete(leftElement); + if (existsInRight) { + result.set(leftElement, 'both'); + return; + } + result.set(leftElement, 'left'); + }); + rightClone.forEach(rightElement => { + result.set(rightElement, 'right'); + }); + return result; +}; + +const isCompositeKey = (source) => { + if (!('createdBy' in source)) { + return false; + } + if (!('id' in source)) { + return false; + } + return typeof source.createdBy === 'string' && typeof source.id === 'string'; +}; +function* keyToStrings(key) { + if (typeof key === 'string') { + yield key; + } + else if (typeof key === 'number') { + yield key.toString(); + } + else if (isCompositeKey(key)) { + yield key.createdBy; + yield key.id; + } + else { + yield key.first; + yield key.second; + } +} +/** React の key に用いる文字列を生成します。 */ +// classNamesを参考にした命名。keyNamesの代わりにkeysは名前が汎用的すぎて衝突しやすいと思うため不採用。 +// clsxを参考にkeyxなどといった命名法も考えられるが、clsxはclassNamesとは引数が異なるようなので、もしかしたら適切ではないかもしれないと考え見送った。 +const keyNames = (...keys) => { + return keys + .map(key => [...keyToStrings(key)]) + .flat() + .reduce((seed, elem, i) => (i === 0 ? elem : `${seed}@${elem}`), ''); +}; + +const defaultLogLevel = 'info'; +const printFn = (logger, methodName) => { + function result(arg1, ...arg2) { + if (typeof arg1 === 'string') { + logger[methodName](arg1, ...arg2); + return; + } + const [msg, ...args] = [...arg2]; + if (typeof msg !== 'string') { + // TypeScript の型に従ってコードを書いている限り、ここには来ないはず。 + throw new Error('When the first argument is an object, the second argument must be a string.'); + } + logger[methodName](arg1, msg, ...args); + } + return result; +}; +// Promise の catch で受け取った値は型が不明なので、それをログに含めるときに便利な関数。 +// もし msg を optional にすると、obj == null かつ msg === undefined のときに出力するエラーメッセージがないのと、msg を空にすることは通常はないので、msg は optional にしていない。printFn の msg のほうも optional でなくするのもいいかもしれない。 +const autoDetectObjFn = (logger, methodName) => (obj, msg, ...args) => { + if (obj instanceof Error) { + printFn(logger, methodName)(obj, msg, ...args); + return; + } + if (typeof obj === 'string') { + if (msg == null) { + printFn(logger, methodName)(obj, ...args); + return; + } + printFn(logger, methodName)(`${msg} (Error: ${obj})`, ...args); + return; + } + if (obj == null) { + printFn(logger, methodName)(msg, ...args); + return; + } + printFn(logger, methodName)(`${msg} (not supported obj type. typeof obj is ${typeof obj})`, ...args); +}; +const createDefaultLogger = (args) => { + return (args?.isBrowser ?? browserOrNode.isBrowser) + ? pino__default.default({ level: args?.logLevel ?? defaultLogLevel, browser: {} }) + : pino__default.default({ + level: args?.logLevel ?? defaultLogLevel, + transport: { target: '@flocon-trpg/default-pino-transport' }, + }); +}; +let currentLogger = null; +/** pino のロガーを取得もしくは変更できます。 */ +const loggerRef = { + /** pino のインスタンスを get もしくは set できます。 */ + get value() { + if (currentLogger == null) { + currentLogger = createDefaultLogger(); + } + return currentLogger; + }, + /** pino のインスタンスを get もしくは set できます。 */ + set value(value) { + currentLogger = value; + }, + get debug() { + return printFn(this.value, 'debug'); + }, + get error() { + return printFn(this.value, 'error'); + }, + get fatal() { + return printFn(this.value, 'fatal'); + }, + get info() { + return printFn(this.value, 'info'); + }, + infoAsNotice(msg) { + return this.info({ [loggerBase.notice]: true }, msg); + }, + get warn() { + return printFn(this.value, 'warn'); + }, + get silent() { + return printFn(this.value, 'silent'); + }, + get trace() { + return printFn(this.value, 'trace'); + }, + get autoDetectObj() { + return { + debug: autoDetectObjFn(this.value, 'debug'), + error: autoDetectObjFn(this.value, 'error'), + fatal: autoDetectObjFn(this.value, 'fatal'), + info: autoDetectObjFn(this.value, 'info'), + warn: autoDetectObjFn(this.value, 'warn'), + silent: autoDetectObjFn(this.value, 'silent'), + trace: autoDetectObjFn(this.value, 'trace'), + }; + }, +}; + +/** 複数のkeyを使用できるMap */ +// valueがNoneであり、なおかつchildrenを再帰的にたどってもSomeであるvalueがないようなNodeは不必要である。だが、現時点ではそれをgarbage collectする機能はない。 +class MultiKeyMap { + #source; + constructor() { + this.#source = new Tree(option.Option.none()); + } + get absolutePath() { + return this.#source.absolutePath; + } + createSubMap(key) { + const result = new MultiKeyMap(); + result.#source = this.#source.createSubTree(key, () => option.Option.none()); + return result; + } + /** 直接の子の要素を全て取得します。 */ + getChildren() { + const result = new Map(); + for (const [childKey, childValue] of this.#source.getChildren()) { + const newValue = new MultiKeyMap(); + newValue.#source = childValue; + result.set(childKey, newValue); + } + return result; + } + get(key) { + const resultAsOption = this.#source.get(key); + if (resultAsOption === undefined) { + return undefined; + } + if (resultAsOption.isNone) { + return undefined; + } + return resultAsOption.value.value; + } + replace(key, replacer) { + const result = this.#source.ensure(key, oldValue => { + const newValue = replacer(oldValue.value); + if (newValue === undefined) { + return option.Option.none(); + } + return option.Option.some(newValue); + }, () => option.Option.none()); + return (result.isNone ? undefined : result.value); + } + ensure(key, onCreate) { + return this.replace(key, oldValue => (oldValue === undefined ? onCreate() : oldValue)); + } + set(key, newValue) { + this.replace(key, () => newValue); + } + delete(key) { + this.replace(key, () => undefined); + } + traverse() { + return chooseIterable(this.#source.traverse(), element => { + if (element.value.isNone) { + return option.Option.none(); + } + return option.Option.some({ + absolutePath: element.absolutePath, + value: element.value.value, + }); + }); + } + get size() { + return [...this.traverse()].length; + } + map(mapping) { + const newSource = this.#source.map(oldValue => { + if (oldValue.value.isNone) { + return oldValue.value; + } + const newValue = mapping({ + absolutePath: oldValue.absolutePath, + value: oldValue.value.value, + }); + if (newValue === undefined) { + return option.Option.none(); + } + return option.Option.some(newValue); + }); + const result = new MultiKeyMap(); + result.#source = newSource; + return result; + } +} + +/** 複数の値を使用できるSet */ +class MultiValueSet { + #core = new MultiKeyMap(); + add(key) { + return this.#core.set(key, true); + } + has(key) { + return this.#core.get(key) ?? false; + } + delete(key) { + this.#core.delete(key); + } + get size() { + return [...this.#core.traverse()].filter(({ value }) => value).length; + } + toIterator() { + return mapIterable(this.#core.traverse(), elem => elem.absolutePath); + } + clone() { + const result = new MultiValueSet(); + result.#core = this.#core.map(x => x.value); + return result; + } +} + +const isReadonlyNonEmptyArray = (source) => source.length > 0; + +const parseStringToBooleanError = { + ja: `真偽値に変換できませんでした。真として使用できる値は true, 1, yes, on で、偽として使用できる値は false, 0, no, off です。`, +}; +const parseStringToBooleanCore = (source) => { + switch (source.trim().toLowerCase()) { + case 'true': + case '1': + case 'yes': + case 'on': + return result.Result.ok(true); + case 'false': + case '0': + case 'no': + case 'off': + return result.Result.ok(false); + default: + return result.Result.error(parseStringToBooleanError); + } +}; +const parseStringToBoolean = (source) => { + if (source == null) { + return result.Result.ok(source); + } + return parseStringToBooleanCore(source); +}; + +const parseEnvListValue = (source) => { + if (source == null) { + return source; + } + return source.split(',').map(x => x.trim()); +}; + +const parsePinoLogLevel = (source, envName) => { + const value = source.toLowerCase().trim(); + switch (value) { + case 'fatal': + case 'error': + case 'warn': + case 'info': + case 'debug': + case 'trace': + case 'silent': { + return result.Result.ok(value); + } + } + return result.Result.error(`${envName} value is invalid. Supported values: "fatal", "error", "warn", "info", "debug", "trace", "silent".`); +}; + +// # alpha +// いかなる変更でも起こりうる状態。ソースコードの内容を理解している方向け。 +// 互換性のない変更があってもmajorとminorの規則に従わなくてもいいという特殊な規則がある。 +// minor=patch=0にすることを推奨。ただし、コードの変更量が非常に多い場合などは従わなくてもよい。 +// +// # beta +// 安定性と引き換えになるべく新しいバージョンに触れてみたい方向け。バグ報告やフィードバックを開発者以外からも受け取りたい場合に用いる。 +// x.y.z-beta.nからbetaを外すとき、次のバージョンはx.y.(z+1)ではなくx.y.zにする。理由は、例えば2.0.0-alpha.n→2.0.0-beta.n→2.0.0-rc.nのように用いる場合と整合性を持たせるため。 +// +// # rc +// 大規模なアップデートの正式版リリース直前に用いられる。betaのような不安定さは望まないが、新バージョンに早く触れてみたい方向け。betaはmajorやminorが変わるレベルの新機能の追加を取りやめることがありうるが、rcではそれは原則として避ける点で異なる。 +// minor=patch=0にすることを推奨。ただし、コードの変更量が非常に多い場合などは従わなくてもよい。 +const alpha = 'alpha'; +const beta = 'beta'; +const rc = 'rc'; +class SemVer { + major; + minor; + patch; + prerelease; + static requireToBePositiveInteger(source, propName) { + if (!Number.isInteger(source)) { + throw new Error(`Semver error: ${propName} must be integer. Actual value is "${source}"`); + } + if (source <= 0) { + throw new Error(`Semver error: ${propName} must be positive. Actual value is "${source}"`); + } + } + static requireToBeNonNegativeInteger(source, propName) { + if (!Number.isInteger(source)) { + throw new Error(`Semver error: ${propName} must be integer. Actual value is "${source}"`); + } + if (source < 0) { + throw new Error(`Semver error: ${propName} must not be negative. Actual value is "${source}"`); + } + } + constructor(option) { + SemVer.requireToBeNonNegativeInteger(option.major, 'major'); + SemVer.requireToBeNonNegativeInteger(option.minor, 'minor'); + SemVer.requireToBeNonNegativeInteger(option.patch, 'patch'); + if (option.prerelease != null) { + SemVer.requireToBePositiveInteger(option.prerelease.version, 'prerelease version'); + } + this.major = option.major; + this.minor = option.minor; + this.patch = option.patch; + this.prerelease = option.prerelease ?? null; + } + toString() { + if (this.prerelease == null) { + return `${this.major}.${this.minor}.${this.patch}`; + } + return `${this.major}.${this.minor}.${this.patch}-${this.prerelease.type}.${this.prerelease.version}`; + } + static prereleaseTypeToNumber(type) { + if (type == null) { + return 0; + } + switch (type) { + case rc: + return -1; + case beta: + return -2; + case alpha: + return -3; + } + } + static compareCore(left, operator, right) { + // majorが異なるなら値を即座に返し、同じなら次の判定処理に進むという戦略。他も同様。 + if (left.major !== right.major) { + return compare(left.major, operator, right.major); + } + if (left.minor !== right.minor) { + return compare(left.minor, operator, right.minor); + } + if (left.patch !== right.patch) { + return compare(left.patch, operator, right.patch); + } + const leftPreleaseTypeAsNumber = SemVer.prereleaseTypeToNumber(left.prerelease?.type); + const rightPreleaseTypeAsNumber = SemVer.prereleaseTypeToNumber(right.prerelease?.type); + if (leftPreleaseTypeAsNumber !== rightPreleaseTypeAsNumber) { + return compare(leftPreleaseTypeAsNumber, operator, rightPreleaseTypeAsNumber); + } + // ?? の右側の-1は、実際は使われることはない + return compare(left.prerelease?.version ?? -1, operator, right.prerelease?.version ?? -1); + } + /** + npmのsemverとは異なり、例えば 1.0.0 < 1.0.1-alpha.1 はtrueを返す。注意! + */ + static compare(left, operator, right) { + switch (operator) { + case '=': + case '<': + case '>': + return SemVer.compareCore(left, operator, right); + case '<=': + return !SemVer.compareCore(left, '>', right); + case '>=': + return !SemVer.compareCore(left, '<', right); + } + } +} + +exports.DeletableTree = DeletableTree; +exports.DualKeyMap = DualKeyMap; +exports.MultiKeyMap = MultiKeyMap; +exports.MultiValueSet = MultiValueSet; +exports.SemVer = SemVer; +exports.Tree = Tree; +exports.alpha = alpha; +exports.arrayEquals = arrayEquals; +exports.beta = beta; +exports.both = both; +exports.chooseDualKeyRecord = chooseDualKeyRecord; +exports.chooseIterable = chooseIterable; +exports.chooseRecord = chooseRecord; +exports.compare = compare; +exports.compositeKeyEquals = compositeKeyEquals; +exports.compositeKeyToJsonString = compositeKeyToJsonString; +exports.createDefaultLogger = createDefaultLogger; +exports.delay = delay; +exports.dualKeyRecordForEach = dualKeyRecordForEach; +exports.dualKeyRecordToDualKeyMap = dualKeyRecordToDualKeyMap; +exports.filterInt = filterInt; +exports.getExactlyOneKey = getExactlyOneKey; +exports.groupJoin3DualKeyMap = groupJoin3DualKeyMap; +exports.groupJoin4DualKeyMap = groupJoin4DualKeyMap; +exports.groupJoinArray = groupJoinArray; +exports.groupJoinDualKeyMap = groupJoinDualKeyMap; +exports.groupJoinMap = groupJoinMap; +exports.groupJoinSet = groupJoinSet; +exports.isReadonlyNonEmptyArray = isReadonlyNonEmptyArray; +exports.isRecordEmpty = isRecordEmpty; +exports.keyNames = keyNames; +exports.left = left; +exports.loggerRef = loggerRef; +exports.mapDualKeyRecord = mapDualKeyRecord; +exports.mapIterable = mapIterable; +exports.mapRecord = mapRecord; +exports.mapToRecord = mapToRecord; +exports.pairwiseIterable = pairwiseIterable; +exports.parseEnvListValue = parseEnvListValue; +exports.parsePinoLogLevel = parsePinoLogLevel; +exports.parseStringToBoolean = parseStringToBoolean; +exports.parseStringToBooleanError = parseStringToBooleanError; +exports.rc = rc; +exports.recordForEach = recordForEach; +exports.recordForEachAsync = recordForEachAsync; +exports.recordToArray = recordToArray; +exports.recordToIterator = recordToIterator; +exports.recordToMap = recordToMap; +exports.right = right; +exports.stringToCompositeKey = stringToCompositeKey; +//# sourceMappingURL=index.js.map diff --git a/packages/utils/dist/cjs/index.js.map b/packages/utils/dist/cjs/index.js.map new file mode 100644 index 000000000..7f2636cd8 --- /dev/null +++ b/packages/utils/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/groupJoinArray.ts","../../../src/internal/types.ts","../../../src/internal/arrayEquals.ts","../../../src/internal/compare.ts","../../../src/internal/compositeKey.ts","../../../src/internal/delay.ts","../../../src/internal/record.ts","../../../src/internal/dualKeyMap.ts","../../../src/internal/iterable.ts","../../../src/internal/tree.ts","../../../src/internal/deletableTree.ts","../../../src/internal/filterInt.ts","../../../src/internal/groupJoinMap.ts","../../../src/internal/groupJoinSet.ts","../../../src/internal/keyNames.ts","../../../src/internal/logger.ts","../../../src/internal/multiKeyMap.ts","../../../src/internal/multiValueSet.ts","../../../src/internal/nonEmptyArray.ts","../../../src/internal/parseStringToBoolean.ts","../../../src/internal/parseEnvListValue.ts","../../../src/internal/parsePinoLogLevel.ts","../../../src/internal/semver.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Option","isBrowser","pino","notice","Result"],"mappings":"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"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/arrayEquals.d.ts b/packages/utils/dist/cjs/internal/arrayEquals.d.ts new file mode 100644 index 000000000..7a2ab007e --- /dev/null +++ b/packages/utils/dist/cjs/internal/arrayEquals.d.ts @@ -0,0 +1,2 @@ +export declare const arrayEquals: (x: readonly T[], y: readonly T[]) => boolean; +//# sourceMappingURL=arrayEquals.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/arrayEquals.d.ts.map b/packages/utils/dist/cjs/internal/arrayEquals.d.ts.map new file mode 100644 index 000000000..f4ed167c6 --- /dev/null +++ b/packages/utils/dist/cjs/internal/arrayEquals.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"arrayEquals.d.ts","sourceRoot":"","sources":["../../../src/internal/arrayEquals.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,GAAI,CAAC,KAAK,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,KAAG,OAUjE,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/compare.d.ts b/packages/utils/dist/cjs/internal/compare.d.ts new file mode 100644 index 000000000..9cff6aaaa --- /dev/null +++ b/packages/utils/dist/cjs/internal/compare.d.ts @@ -0,0 +1,3 @@ +export type Operator = '=' | '<' | '<=' | '>' | '>='; +export declare const compare: (left: number, operator: Operator, right: number) => boolean; +//# sourceMappingURL=compare.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/compare.d.ts.map b/packages/utils/dist/cjs/internal/compare.d.ts.map new file mode 100644 index 000000000..591476662 --- /dev/null +++ b/packages/utils/dist/cjs/internal/compare.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/internal/compare.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;AAErD,eAAO,MAAM,OAAO,SAAU,MAAM,YAAY,QAAQ,SAAS,MAAM,KAAG,OAazE,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/compositeKey.d.ts b/packages/utils/dist/cjs/internal/compositeKey.d.ts new file mode 100644 index 000000000..09d78d019 --- /dev/null +++ b/packages/utils/dist/cjs/internal/compositeKey.d.ts @@ -0,0 +1,8 @@ +export type CompositeKey = { + id: string; + createdBy: string; +}; +export declare const stringToCompositeKey: (source: string) => CompositeKey | null; +export declare const compositeKeyToJsonString: (source: CompositeKey) => string; +export declare const compositeKeyEquals: (x: CompositeKey, y: CompositeKey) => boolean; +//# sourceMappingURL=compositeKey.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/compositeKey.d.ts.map b/packages/utils/dist/cjs/internal/compositeKey.d.ts.map new file mode 100644 index 000000000..a8d213fd4 --- /dev/null +++ b/packages/utils/dist/cjs/internal/compositeKey.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"compositeKey.d.ts","sourceRoot":"","sources":["../../../src/internal/compositeKey.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAY,MAAM,KAAG,YAAY,GAAG,IAMpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,WAAY,YAAY,KAAG,MAE/D,CAAC;AAEF,eAAO,MAAM,kBAAkB,MAAO,YAAY,KAAK,YAAY,KAAG,OAErE,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/delay.d.ts b/packages/utils/dist/cjs/internal/delay.d.ts new file mode 100644 index 000000000..f1c5bde80 --- /dev/null +++ b/packages/utils/dist/cjs/internal/delay.d.ts @@ -0,0 +1,2 @@ +export declare const delay: (ms: number) => Promise; +//# sourceMappingURL=delay.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/delay.d.ts.map b/packages/utils/dist/cjs/internal/delay.d.ts.map new file mode 100644 index 000000000..13324a020 --- /dev/null +++ b/packages/utils/dist/cjs/internal/delay.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"delay.d.ts","sourceRoot":"","sources":["../../../src/internal/delay.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,OAAc,MAAM,kBAErC,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/deletableTree.d.ts b/packages/utils/dist/cjs/internal/deletableTree.d.ts new file mode 100644 index 000000000..5adb4adcf --- /dev/null +++ b/packages/utils/dist/cjs/internal/deletableTree.d.ts @@ -0,0 +1,27 @@ +import { Option } from '@kizahasi/option'; +/** 仮想的にnodeをdeleteできる機能を持ったTreeを表します。内部でnodeにdeleteフラグを立てることでdeleteされたことを表すため、deleteしてもメモリの空き容量は増えません。 */ +export declare class DeletableTree { + #private; + constructor(rootValue?: Option); + get absolutePath(): readonly TKey[]; + get value(): Option; + /** 指定したkeyにあるnodeを基準とした新しいTreeオブジェクトを返します。nodeへの参照は共有されます。absolutePathは引き継がれます。 */ + createSubTree(key: readonly TKey[], initValue: (absolutePath: readonly TKey[]) => TValue): DeletableTree; + createSubTreeIfExists(key: readonly TKey[]): DeletableTree | null; + /** 直接の子の要素を全て取得します。 */ + getChildren(): Map>; + get(key: readonly TKey[]): Option; + ensure(key: readonly TKey[], replacer: (oldValue: Option) => TReplaced, initValue: (absolutePath: readonly TKey[]) => TValue): TReplaced; + delete(key: readonly TKey[]): void; + traverse(): Iterable<{ + absolutePath: readonly TKey[]; + value: TValue; + }>; + get size(): number; + map(mapping: (oldValue: { + absolutePath: readonly TKey[]; + value: TValue; + }) => TValue2): DeletableTree; + clone(): DeletableTree; +} +//# sourceMappingURL=deletableTree.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/deletableTree.d.ts.map b/packages/utils/dist/cjs/internal/deletableTree.d.ts.map new file mode 100644 index 000000000..dd7978625 --- /dev/null +++ b/packages/utils/dist/cjs/internal/deletableTree.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"deletableTree.d.ts","sourceRoot":"","sources":["../../../src/internal/deletableTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,0GAA0G;AAC1G,qBAAa,aAAa,CAAC,IAAI,EAAE,MAAM;;gBAGhB,SAAS,GAAE,MAAM,CAAC,MAAM,CAAiB;IAI5D,IAAW,YAAY,oBAEtB;IAED,IAAW,KAAK,mBAGf;IAED,mFAAmF;IAC5E,aAAa,CAChB,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,SAAS,EAAE,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,KAAK,MAAM;IAUjD,qBAAqB,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IASjD,uBAAuB;IAChB,WAAW;IAgBX,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IAWzC,MAAM,CAAC,SAAS,SAAS,MAAM,EAClC,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,EACjD,SAAS,EAAE,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,KAAK,MAAM,GACrD,SAAS;IA8BL,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IAY3B,QAAQ,IAAI,QAAQ,CAAC;QAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAS7E,IAAW,IAAI,IAAI,MAAM,CAExB;IAEM,GAAG,CAAC,OAAO,EACd,OAAO,EAAE,CAAC,QAAQ,EAAE;QAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,GACjF,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;IAcxB,KAAK;CAGf"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/dualKeyMap.d.ts b/packages/utils/dist/cjs/internal/dualKeyMap.d.ts new file mode 100644 index 000000000..2c5b2cd16 --- /dev/null +++ b/packages/utils/dist/cjs/internal/dualKeyMap.d.ts @@ -0,0 +1,41 @@ +import { Option } from '@kizahasi/option'; +import { GroupJoinResult } from './types'; +export type DualKey = { + readonly first: T1; + readonly second: T2; +}; +export type DualKeyMapSource = Map> | Map> | ReadonlyMap> | ReadonlyMap>; +type RecordKey = string | number | symbol; +export declare class DualKeyMap { + private _core; + constructor(sourceMap?: DualKeyMapSource); + private static chooseMap; + private static create; + static ofRecord(source: Record | undefined>): DualKeyMap; + map(mapping: (source: TValue, key: DualKey) => TResult): DualKeyMap; + choose(chooser: (source: TValue, key: DualKey) => Option): DualKeyMap; + clone(): DualKeyMap; + get({ first, second }: DualKey): TValue | undefined; + getByFirst(first: TKey1): ReadonlyMap; + set({ first, second }: DualKey, value: TValue): DualKeyMap; + delete({ first, second }: DualKey): boolean; + has(key: DualKey): boolean; + [Symbol.iterator](): IterableIterator, TValue]>; + toArray(): (readonly [DualKey, TValue])[]; + toMap(): Map>; + toStringRecord(createStringKey1: (first: TKey1) => string, createStringKey2: (second: TKey2) => string): Record>; + get size(): number; + get isEmpty(): boolean; + forEach(action: (value: TValue, key: DualKey) => void): void; + reduce(reducer: (seed: TResult, element: TValue, key: DualKey) => TResult, seed: TResult): TResult; + toJSON(valueToString?: (value: TValue) => string): string; +} +export type ReadonlyDualKeyMap = Omit>, 'set' | 'delete' | 'getByFirst'> & { + [Symbol.iterator](): IterableIterator, TValue]>; + getByFirst(key: TKey1): ReadonlyMap | undefined; +}; +export declare const groupJoinDualKeyMap: (left: ReadonlyDualKeyMap, right: ReadonlyDualKeyMap) => DualKeyMap>; +export declare const groupJoin3DualKeyMap: (source1: ReadonlyDualKeyMap, source2: ReadonlyDualKeyMap, source3: ReadonlyDualKeyMap) => DualKeyMap; +export declare const groupJoin4DualKeyMap: (source1: ReadonlyDualKeyMap, source2: ReadonlyDualKeyMap, source3: ReadonlyDualKeyMap, source4: ReadonlyDualKeyMap) => DualKeyMap; +export {}; +//# sourceMappingURL=dualKeyMap.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/dualKeyMap.d.ts.map b/packages/utils/dist/cjs/internal/dualKeyMap.d.ts.map new file mode 100644 index 000000000..a583310f7 --- /dev/null +++ b/packages/utils/dist/cjs/internal/dualKeyMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"dualKeyMap.d.ts","sourceRoot":"","sources":["../../../src/internal/dualKeyMap.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/filterInt.d.ts b/packages/utils/dist/cjs/internal/filterInt.d.ts new file mode 100644 index 000000000..2a912b7ac --- /dev/null +++ b/packages/utils/dist/cjs/internal/filterInt.d.ts @@ -0,0 +1,2 @@ +export declare const filterInt: (value: string) => number | null; +//# sourceMappingURL=filterInt.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/filterInt.d.ts.map b/packages/utils/dist/cjs/internal/filterInt.d.ts.map new file mode 100644 index 000000000..167cd9997 --- /dev/null +++ b/packages/utils/dist/cjs/internal/filterInt.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"filterInt.d.ts","sourceRoot":"","sources":["../../../src/internal/filterInt.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,UAAW,MAAM,kBAMtC,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/groupJoinArray.d.ts b/packages/utils/dist/cjs/internal/groupJoinArray.d.ts new file mode 100644 index 000000000..d0c4f84f8 --- /dev/null +++ b/packages/utils/dist/cjs/internal/groupJoinArray.d.ts @@ -0,0 +1,3 @@ +import { GroupJoinResult } from './types'; +export declare function groupJoinArray(left: readonly TLeft[], right: readonly TRight[]): IterableIterator>; +//# sourceMappingURL=groupJoinArray.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/groupJoinArray.d.ts.map b/packages/utils/dist/cjs/internal/groupJoinArray.d.ts.map new file mode 100644 index 000000000..ab50c08ee --- /dev/null +++ b/packages/utils/dist/cjs/internal/groupJoinArray.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"groupJoinArray.d.ts","sourceRoot":"","sources":["../../../src/internal/groupJoinArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,wBAAiB,cAAc,CAAC,KAAK,EAAE,MAAM,EACzC,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,KAAK,EAAE,SAAS,MAAM,EAAE,GACzB,gBAAgB,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAkBlD"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/groupJoinMap.d.ts b/packages/utils/dist/cjs/internal/groupJoinMap.d.ts new file mode 100644 index 000000000..fcc5e798c --- /dev/null +++ b/packages/utils/dist/cjs/internal/groupJoinMap.d.ts @@ -0,0 +1,3 @@ +import { GroupJoinResult } from './types'; +export declare const groupJoinMap: (left: ReadonlyMap, right: ReadonlyMap) => Map>; +//# sourceMappingURL=groupJoinMap.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/groupJoinMap.d.ts.map b/packages/utils/dist/cjs/internal/groupJoinMap.d.ts.map new file mode 100644 index 000000000..b95dac336 --- /dev/null +++ b/packages/utils/dist/cjs/internal/groupJoinMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"groupJoinMap.d.ts","sourceRoot":"","sources":["../../../src/internal/groupJoinMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,YAAY,GAAI,IAAI,EAAE,KAAK,EAAE,MAAM,QACtC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,SACvB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,KACjC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAoB1C,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/groupJoinSet.d.ts b/packages/utils/dist/cjs/internal/groupJoinSet.d.ts new file mode 100644 index 000000000..8d5ef1081 --- /dev/null +++ b/packages/utils/dist/cjs/internal/groupJoinSet.d.ts @@ -0,0 +1,5 @@ +import { both, left, right } from './types'; +type GroupJoinResultType = typeof left | typeof right | typeof both; +export declare const groupJoinSet: (left: ReadonlySet, right: ReadonlySet) => Map; +export {}; +//# sourceMappingURL=groupJoinSet.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/groupJoinSet.d.ts.map b/packages/utils/dist/cjs/internal/groupJoinSet.d.ts.map new file mode 100644 index 000000000..d9e1f982f --- /dev/null +++ b/packages/utils/dist/cjs/internal/groupJoinSet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"groupJoinSet.d.ts","sourceRoot":"","sources":["../../../src/internal/groupJoinSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE5C,KAAK,mBAAmB,GAAG,OAAO,IAAI,GAAG,OAAO,KAAK,GAAG,OAAO,IAAI,CAAC;AAEpE,eAAO,MAAM,YAAY,GAAI,CAAC,QACpB,WAAW,CAAC,CAAC,CAAC,SACb,WAAW,CAAC,CAAC,CAAC,KACtB,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAiB5B,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/iterable.d.ts b/packages/utils/dist/cjs/internal/iterable.d.ts new file mode 100644 index 000000000..502d7e2e4 --- /dev/null +++ b/packages/utils/dist/cjs/internal/iterable.d.ts @@ -0,0 +1,8 @@ +import { Option } from '@kizahasi/option'; +export declare function mapIterable(source: Iterable, mapping: (source: T1) => T2): Generator; +export declare function chooseIterable(source: Iterable, mapping: (source: T1) => Option): Generator; +export declare function pairwiseIterable(source: Iterable): Generator<{ + prev: T | undefined; + current: T; +}, void, unknown>; +//# sourceMappingURL=iterable.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/iterable.d.ts.map b/packages/utils/dist/cjs/internal/iterable.d.ts.map new file mode 100644 index 000000000..204ce05a8 --- /dev/null +++ b/packages/utils/dist/cjs/internal/iterable.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"iterable.d.ts","sourceRoot":"","sources":["../../../src/internal/iterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,wBAAiB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,gCAIrF;AAED,wBAAiB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,gCAOhG;AAED,wBAAiB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;;;kBAMvD"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/keyNames.d.ts b/packages/utils/dist/cjs/internal/keyNames.d.ts new file mode 100644 index 000000000..138dc4637 --- /dev/null +++ b/packages/utils/dist/cjs/internal/keyNames.d.ts @@ -0,0 +1,7 @@ +import { CompositeKey } from './compositeKey'; +import { DualKey } from './dualKeyMap'; +type Key = string | number | CompositeKey | DualKey; +/** React の key に用いる文字列を生成します。 */ +export declare const keyNames: (keys_0: Key, ...keys: Key[]) => string; +export {}; +//# sourceMappingURL=keyNames.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/keyNames.d.ts.map b/packages/utils/dist/cjs/internal/keyNames.d.ts.map new file mode 100644 index 000000000..048ce5bea --- /dev/null +++ b/packages/utils/dist/cjs/internal/keyNames.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"keyNames.d.ts","sourceRoot":"","sources":["../../../src/internal/keyNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,KAAK,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AA0BpE,iCAAiC;AAGjC,eAAO,MAAM,QAAQ,mCAAkC,MAKtD,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/logger.d.ts b/packages/utils/dist/cjs/internal/logger.d.ts new file mode 100644 index 000000000..99db82c3c --- /dev/null +++ b/packages/utils/dist/cjs/internal/logger.d.ts @@ -0,0 +1,34 @@ +import { Logger } from 'pino'; +import { PinoLogLevel } from './parsePinoLogLevel'; +interface LogFn { + (msg: string, ...args: readonly unknown[]): void; + (obj: Error | Record, msg?: string, ...args: readonly unknown[]): void; +} +export declare const createDefaultLogger: (args?: { + logLevel?: PinoLogLevel; + isBrowser?: boolean; +}) => Logger; +/** pino のロガーを取得もしくは変更できます。 */ +export declare const loggerRef: { + /** pino のインスタンスを get もしくは set できます。 */ + value: Logger; + readonly debug: LogFn; + readonly error: LogFn; + readonly fatal: LogFn; + readonly info: LogFn; + infoAsNotice(msg: string): void; + readonly warn: LogFn; + readonly silent: LogFn; + readonly trace: LogFn; + readonly autoDetectObj: { + debug: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + error: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + fatal: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + info: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + warn: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + silent: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + trace: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + }; +}; +export {}; +//# sourceMappingURL=logger.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/logger.d.ts.map b/packages/utils/dist/cjs/internal/logger.d.ts.map new file mode 100644 index 000000000..3268c55ee --- /dev/null +++ b/packages/utils/dist/cjs/internal/logger.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/internal/logger.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,UAAU,KAAK;IACX,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;CAC3F;AA2DD,eAAO,MAAM,mBAAmB,UAAW;IAAE,QAAQ,CAAC,EAAE,YAAY,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,2BAO1F,CAAC;AAIF,8BAA8B;AAC9B,eAAO,MAAM,SAAS;IAClB,uCAAuC;;;;;;sBAuBrB,MAAM;;;;;qBA3DlB,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;qBAAjD,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;qBAAjD,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;oBAAjD,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;oBAAjD,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;sBAAjD,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;qBAAjD,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;;CAkF1D,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/multiKeyMap.d.ts b/packages/utils/dist/cjs/internal/multiKeyMap.d.ts new file mode 100644 index 000000000..edfd28339 --- /dev/null +++ b/packages/utils/dist/cjs/internal/multiKeyMap.d.ts @@ -0,0 +1,24 @@ +/** 複数のkeyを使用できるMap */ +export declare class MultiKeyMap { + #private; + constructor(); + get absolutePath(): readonly TKey[]; + createSubMap(key: readonly TKey[]): MultiKeyMap; + /** 直接の子の要素を全て取得します。 */ + getChildren(): Map>; + get(key: readonly TKey[]): TValue | undefined; + replace(key: readonly TKey[], replacer: (oldValue: TValue | undefined) => TReplaced): TReplaced; + ensure(key: readonly TKey[], onCreate: () => TValue): TValue; + set(key: readonly TKey[], newValue: TValue): void; + delete(key: readonly TKey[]): void; + traverse(): Iterable<{ + absolutePath: readonly TKey[]; + value: TValue; + }>; + get size(): number; + map(mapping: (oldValue: { + value: TValue; + absolutePath: readonly TKey[]; + }) => TValue2 | undefined): MultiKeyMap; +} +//# sourceMappingURL=multiKeyMap.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/multiKeyMap.d.ts.map b/packages/utils/dist/cjs/internal/multiKeyMap.d.ts.map new file mode 100644 index 000000000..eea60af14 --- /dev/null +++ b/packages/utils/dist/cjs/internal/multiKeyMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"multiKeyMap.d.ts","sourceRoot":"","sources":["../../../src/internal/multiKeyMap.ts"],"names":[],"mappings":"AAIA,sBAAsB;AAEtB,qBAAa,WAAW,CAAC,IAAI,EAAE,MAAM;;;IAOjC,IAAW,YAAY,oBAEtB;IAEM,YAAY,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IAMxC,uBAAuB;IAChB,WAAW;IAUX,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IAWxB,OAAO,CAAC,SAAS,SAAS,MAAM,GAAG,SAAS,EAC/C,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,SAAS,GACtD,SAAS;IAeL,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,MAAM;IAInD,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM;IAI1C,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IAI3B,QAAQ,IAAI,QAAQ,CAAC;QAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAY7E,IAAW,IAAI,IAAI,MAAM,CAExB;IAEM,GAAG,CAAC,OAAO,EACd,OAAO,EAAE,CAAC,QAAQ,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;KACjC,KAAK,OAAO,GAAG,SAAS,GAC1B,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;CAkBhC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/multiValueSet.d.ts b/packages/utils/dist/cjs/internal/multiValueSet.d.ts new file mode 100644 index 000000000..200170a4c --- /dev/null +++ b/packages/utils/dist/cjs/internal/multiValueSet.d.ts @@ -0,0 +1,11 @@ +/** 複数の値を使用できるSet */ +export declare class MultiValueSet { + #private; + add(key: readonly T[]): void; + has(key: readonly T[]): boolean; + delete(key: readonly T[]): void; + get size(): number; + toIterator(): Iterable; + clone(): MultiValueSet; +} +//# sourceMappingURL=multiValueSet.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/multiValueSet.d.ts.map b/packages/utils/dist/cjs/internal/multiValueSet.d.ts.map new file mode 100644 index 000000000..c0e60b7ce --- /dev/null +++ b/packages/utils/dist/cjs/internal/multiValueSet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"multiValueSet.d.ts","sourceRoot":"","sources":["../../../src/internal/multiValueSet.ts"],"names":[],"mappings":"AAGA,oBAAoB;AACpB,qBAAa,aAAa,CAAC,CAAC;;IAGjB,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;IAIrB,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO;IAI/B,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;IAI/B,IAAW,IAAI,IAAI,MAAM,CAExB;IAEM,UAAU,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IAIpC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC;CAKnC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/nonEmptyArray.d.ts b/packages/utils/dist/cjs/internal/nonEmptyArray.d.ts new file mode 100644 index 000000000..54a44d724 --- /dev/null +++ b/packages/utils/dist/cjs/internal/nonEmptyArray.d.ts @@ -0,0 +1,4 @@ +export type NonEmptyArray = [T, ...T[]]; +export type ReadonlyNonEmptyArray = [T, ...T[]]; +export declare const isReadonlyNonEmptyArray: (source: ReadonlyArray) => source is ReadonlyNonEmptyArray; +//# sourceMappingURL=nonEmptyArray.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/nonEmptyArray.d.ts.map b/packages/utils/dist/cjs/internal/nonEmptyArray.d.ts.map new file mode 100644 index 000000000..ab163d8ea --- /dev/null +++ b/packages/utils/dist/cjs/internal/nonEmptyArray.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"nonEmptyArray.d.ts","sourceRoot":"","sources":["../../../src/internal/nonEmptyArray.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3C,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AACnD,eAAO,MAAM,uBAAuB,GAAI,CAAC,UAC7B,aAAa,CAAC,CAAC,CAAC,KACzB,MAAM,IAAI,qBAAqB,CAAC,CAAC,CAAsB,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/parseEnvListValue.d.ts b/packages/utils/dist/cjs/internal/parseEnvListValue.d.ts new file mode 100644 index 000000000..ce57e803b --- /dev/null +++ b/packages/utils/dist/cjs/internal/parseEnvListValue.d.ts @@ -0,0 +1,2 @@ +export declare const parseEnvListValue: (source: string | null | undefined) => string[] | null | undefined; +//# sourceMappingURL=parseEnvListValue.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/parseEnvListValue.d.ts.map b/packages/utils/dist/cjs/internal/parseEnvListValue.d.ts.map new file mode 100644 index 000000000..d16f05db5 --- /dev/null +++ b/packages/utils/dist/cjs/internal/parseEnvListValue.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"parseEnvListValue.d.ts","sourceRoot":"","sources":["../../../src/internal/parseEnvListValue.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,WAClB,MAAM,GAAG,IAAI,GAAG,SAAS,KAClC,MAAM,EAAE,GAAG,IAAI,GAAG,SAKpB,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/parsePinoLogLevel.d.ts b/packages/utils/dist/cjs/internal/parsePinoLogLevel.d.ts new file mode 100644 index 000000000..7d3f6aee7 --- /dev/null +++ b/packages/utils/dist/cjs/internal/parsePinoLogLevel.d.ts @@ -0,0 +1,4 @@ +import { Result } from '@kizahasi/result'; +export type PinoLogLevel = 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace' | 'silent'; +export declare const parsePinoLogLevel: (source: string, envName: string) => Result; +//# sourceMappingURL=parsePinoLogLevel.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/parsePinoLogLevel.d.ts.map b/packages/utils/dist/cjs/internal/parsePinoLogLevel.d.ts.map new file mode 100644 index 000000000..322135606 --- /dev/null +++ b/packages/utils/dist/cjs/internal/parsePinoLogLevel.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"parsePinoLogLevel.d.ts","sourceRoot":"","sources":["../../../src/internal/parsePinoLogLevel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE9F,eAAO,MAAM,iBAAiB,WAAY,MAAM,WAAW,MAAM,KAAG,MAAM,CAAC,YAAY,CAiBtF,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/parseStringToBoolean.d.ts b/packages/utils/dist/cjs/internal/parseStringToBoolean.d.ts new file mode 100644 index 000000000..ecb8914f4 --- /dev/null +++ b/packages/utils/dist/cjs/internal/parseStringToBoolean.d.ts @@ -0,0 +1,9 @@ +import { Result } from '@kizahasi/result'; +export type ParseError = { + ja: string; +}; +export declare const parseStringToBooleanError: ParseError; +type ValueType = Exclude | (T extends string ? boolean : never); +export declare const parseStringToBoolean: (source: T) => Result, ParseError>; +export {}; +//# sourceMappingURL=parseStringToBoolean.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/parseStringToBoolean.d.ts.map b/packages/utils/dist/cjs/internal/parseStringToBoolean.d.ts.map new file mode 100644 index 000000000..191db42dc --- /dev/null +++ b/packages/utils/dist/cjs/internal/parseStringToBoolean.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"parseStringToBoolean.d.ts","sourceRoot":"","sources":["../../../src/internal/parseStringToBoolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,MAAM,UAAU,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,UAEvC,CAAC;AAmBF,KAAK,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;AAE9E,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,UAC5D,CAAC,KACV,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAKjC,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/record.d.ts b/packages/utils/dist/cjs/internal/record.d.ts new file mode 100644 index 000000000..f916874dd --- /dev/null +++ b/packages/utils/dist/cjs/internal/record.d.ts @@ -0,0 +1,22 @@ +import { DualKey, DualKeyMap } from './dualKeyMap'; +export declare const mapToRecord: (source: Map) => Record; +export declare const chooseRecord: (source: Record, chooser: (element: TSource, key: string) => TResult | undefined) => Record; +export declare const chooseDualKeyRecord: (source: Record | undefined>, chooser: (element: TSource, key: DualKey) => TResult | undefined) => Record>; +export declare const mapRecord: (source: Record, mapping: (element: TSource, key: string) => TResult) => Record; +export declare const mapDualKeyRecord: (source: Record | undefined>, mapping: (element: TSource, key: DualKey) => TResult) => Record>; +export declare function recordToIterator(source: Record): IterableIterator<{ + key: string; + value: T; +}>; +export declare const getExactlyOneKey: (record: Record) => string; +export declare const recordToArray: (source: Record) => { + key: string; + value: T; +}[]; +export declare const recordToMap: (source: Record) => Map; +export declare const dualKeyRecordToDualKeyMap: (source: Record | undefined>) => DualKeyMap; +export declare const recordForEach: (source: Record, action: (value: T, key: string) => void) => void; +export declare const recordForEachAsync: (source: Record, action: (value: T, key: string) => Promise) => Promise; +export declare const isRecordEmpty: (source: Record) => boolean; +export declare const dualKeyRecordForEach: (source: Record | undefined>, action: (value: T, key: DualKey) => void) => void; +//# sourceMappingURL=record.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/record.d.ts.map b/packages/utils/dist/cjs/internal/record.d.ts.map new file mode 100644 index 000000000..0dc986382 --- /dev/null +++ b/packages/utils/dist/cjs/internal/record.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../src/internal/record.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/semver.d.ts b/packages/utils/dist/cjs/internal/semver.d.ts new file mode 100644 index 000000000..e3298d269 --- /dev/null +++ b/packages/utils/dist/cjs/internal/semver.d.ts @@ -0,0 +1,32 @@ +import { Operator } from './compare'; +export declare const alpha = "alpha"; +export declare const beta = "beta"; +export declare const rc = "rc"; +type Prerelease = { + type: typeof alpha | typeof beta | typeof rc; + version: number; +}; +export type SemverOption = { + major: number; + minor: number; + patch: number; + prerelease?: Prerelease | null; +}; +export declare class SemVer { + readonly major: number; + readonly minor: number; + readonly patch: number; + readonly prerelease: Readonly | null; + private static requireToBePositiveInteger; + private static requireToBeNonNegativeInteger; + constructor(option: SemverOption); + toString(): string; + private static prereleaseTypeToNumber; + private static compareCore; + /** + npmのsemverとは異なり、例えば 1.0.0 < 1.0.1-alpha.1 はtrueを返す。注意! + */ + static compare(left: SemVer, operator: Operator, right: SemVer): boolean; +} +export {}; +//# sourceMappingURL=semver.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/semver.d.ts.map b/packages/utils/dist/cjs/internal/semver.d.ts.map new file mode 100644 index 000000000..a6ee08bc8 --- /dev/null +++ b/packages/utils/dist/cjs/internal/semver.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../../../src/internal/semver.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,QAAQ,EAAW,MAAM,WAAW,CAAC;AAG9C,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,EAAE,OAAO,CAAC;AAEvB,KAAK,UAAU,GAAG;IACd,IAAI,EAAE,OAAO,KAAK,GAAG,OAAO,IAAI,GAAG,OAAO,EAAE,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,qBAAa,MAAM;IACf,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAExD,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAazC,OAAO,CAAC,MAAM,CAAC,6BAA6B;gBAYzB,MAAM,EAAE,YAAY;IAchC,QAAQ,IAAI,MAAM;IAOzB,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAgBrC,OAAO,CAAC,MAAM,CAAC,WAAW;IAuB1B;;MAEE;WACY,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAYlF"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/tree.d.ts b/packages/utils/dist/cjs/internal/tree.d.ts new file mode 100644 index 000000000..32d6610e5 --- /dev/null +++ b/packages/utils/dist/cjs/internal/tree.d.ts @@ -0,0 +1,29 @@ +/** ミュータブルな木構造を表します。nodeをdeleteする機能は現時点では未実装です。*/ +export declare class Tree { + #private; + constructor(rootNodeValue: TValue); + private static createTree; + get absolutePath(): readonly TKey[]; + get value(): TValue; + /** 指定したkeyにあるnodeを基準とした新しいTreeオブジェクトを返します。nodeへの参照は共有されます。absolutePathは引き継がれます。 */ + createSubTree(key: readonly TKey[], initValue: (absolutePath: readonly TKey[]) => TValue): Tree; + createSubTreeIfExists(key: readonly TKey[]): Tree | null; + /** 直接の子の要素を全て取得します。 */ + getChildren(): Map>; + get(key: readonly TKey[]): import("@kizahasi/option").None | import("@kizahasi/option").Some; + ensure(key: readonly TKey[], replacer: (oldValue: TValue) => TReplaced, initValue: (absolutePath: readonly TKey[]) => TValue): TReplaced; + traverse(): Iterable<{ + absolutePath: readonly TKey[]; + value: TValue; + }>; + replaceAllValues(replacer: (oldValue: { + absolutePath: readonly TKey[]; + value: TValue; + }) => TValue): void; + get size(): number; + map(mapping: (oldValue: { + absolutePath: readonly TKey[]; + value: TValue; + }) => TValue2): Tree; +} +//# sourceMappingURL=tree.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/tree.d.ts.map b/packages/utils/dist/cjs/internal/tree.d.ts.map new file mode 100644 index 000000000..337954827 --- /dev/null +++ b/packages/utils/dist/cjs/internal/tree.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../src/internal/tree.ts"],"names":[],"mappings":"AASA,iDAAiD;AACjD,qBAAa,IAAI,CAAC,IAAI,EAAE,MAAM;;gBAGP,aAAa,EAAE,MAAM;IAQxC,OAAO,CAAC,MAAM,CAAC,UAAU;IAoCzB,IAAW,YAAY,oBAEtB;IAED,IAAW,KAAK,WAEf;IAED,mFAAmF;IAC5E,aAAa,CAChB,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,SAAS,EAAE,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,KAAK,MAAM;IAMjD,qBAAqB,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IASjD,uBAAuB;IAChB,WAAW;IAQX,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IAQxB,MAAM,CAAC,SAAS,SAAS,MAAM,EAClC,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,EACzC,SAAS,EAAE,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,KAAK,MAAM,GACrD,SAAS;IAmBL,QAAQ,IAAI,QAAQ,CAAC;QAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAOtE,gBAAgB,CACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM;IAOpF,IAAW,IAAI,IAAI,MAAM,CAExB;IAiBM,GAAG,CAAC,OAAO,EACd,OAAO,EAAE,CAAC,QAAQ,EAAE;QAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,GACjF,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;CAMzB"} \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/types.d.ts b/packages/utils/dist/cjs/internal/types.d.ts new file mode 100644 index 000000000..d39700e57 --- /dev/null +++ b/packages/utils/dist/cjs/internal/types.d.ts @@ -0,0 +1,21 @@ +export declare const left = "left"; +export declare const right = "right"; +export declare const both = "both"; +type Left = { + type: typeof left; + left: TLeft; + right?: undefined; +}; +type Right = { + type: typeof right; + left?: undefined; + right: TRight; +}; +type Both = { + type: typeof both; + left: TLeft; + right: TRight; +}; +export type GroupJoinResult = Left | Right | Both; +export {}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/cjs/internal/types.d.ts.map b/packages/utils/dist/cjs/internal/types.d.ts.map new file mode 100644 index 000000000..59ef922ef --- /dev/null +++ b/packages/utils/dist/cjs/internal/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/internal/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,IAAI,SAAS,CAAC;AAE3B,KAAK,IAAI,CAAC,KAAK,IAAI;IACf,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,KAAK,KAAK,CAAC,MAAM,IAAI;IACjB,IAAI,EAAE,OAAO,KAAK,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI;IACvB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/index.d.ts b/packages/utils/dist/esm/index.d.ts new file mode 100644 index 000000000..d436d7b5d --- /dev/null +++ b/packages/utils/dist/esm/index.d.ts @@ -0,0 +1,24 @@ +export { arrayEquals } from './internal/arrayEquals'; +export { compare, Operator } from './internal/compare'; +export { CompositeKey, stringToCompositeKey, compositeKeyToJsonString, compositeKeyEquals, } from './internal/compositeKey'; +export { delay } from './internal/delay'; +export { DualKey, DualKeyMap, ReadonlyDualKeyMap, DualKeyMapSource, groupJoinDualKeyMap, groupJoin3DualKeyMap, groupJoin4DualKeyMap, } from './internal/dualKeyMap'; +export { DeletableTree } from './internal/deletableTree'; +export { filterInt } from './internal/filterInt'; +export { groupJoinArray } from './internal/groupJoinArray'; +export { groupJoinMap } from './internal/groupJoinMap'; +export { groupJoinSet } from './internal/groupJoinSet'; +export { mapIterable, chooseIterable, pairwiseIterable } from './internal/iterable'; +export { keyNames } from './internal/keyNames'; +export { loggerRef, createDefaultLogger } from './internal/logger'; +export { MultiKeyMap } from './internal/multiKeyMap'; +export { MultiValueSet } from './internal/multiValueSet'; +export { NonEmptyArray, ReadonlyNonEmptyArray, isReadonlyNonEmptyArray, } from './internal/nonEmptyArray'; +export { parseStringToBoolean, parseStringToBooleanError } from './internal/parseStringToBoolean'; +export { parseEnvListValue } from './internal/parseEnvListValue'; +export { parsePinoLogLevel, PinoLogLevel } from './internal/parsePinoLogLevel'; +export { getExactlyOneKey, chooseDualKeyRecord, chooseRecord, dualKeyRecordForEach, isRecordEmpty, mapDualKeyRecord, mapRecord, mapToRecord, recordForEach, recordForEachAsync, recordToIterator, recordToArray, dualKeyRecordToDualKeyMap, recordToMap, } from './internal/record'; +export { SemVer, alpha, beta, rc, SemverOption } from './internal/semver'; +export { Tree } from './internal/tree'; +export { left, right, both, GroupJoinResult } from './internal/types'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/index.d.ts.map b/packages/utils/dist/esm/index.d.ts.map new file mode 100644 index 000000000..da4f63124 --- /dev/null +++ b/packages/utils/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACH,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EACH,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACH,aAAa,EACb,qBAAqB,EACrB,uBAAuB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,WAAW,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/index.js b/packages/utils/dist/esm/index.js new file mode 100644 index 000000000..9815cabd3 --- /dev/null +++ b/packages/utils/dist/esm/index.js @@ -0,0 +1,1114 @@ +import { Option } from '@kizahasi/option'; +import { notice } from '@flocon-trpg/logger-base'; +import { isBrowser } from 'browser-or-node'; +import pino from 'pino'; +import { Result } from '@kizahasi/result'; + +function* groupJoinArray(left, right) { + for (let i = 0;; i++) { + const leftHasValue = i < left.length; + const rightHasValue = i < right.length; + if (leftHasValue) { + if (rightHasValue) { + yield { type: 'both', left: left[i], right: right[i] }; + continue; + } + yield { type: 'left', left: left[i] }; + continue; + } + if (rightHasValue) { + yield { type: 'right', right: right[i] }; + continue; + } + return; + } +} + +const left = 'left'; +const right = 'right'; +const both = 'both'; + +const arrayEquals = (x, y) => { + for (const elem of groupJoinArray(x, y)) { + if (elem.type !== both) { + return false; + } + if (elem.left !== elem.right) { + return false; + } + } + return true; +}; + +const compare = (left, operator, right) => { + switch (operator) { + case '=': + return left === right; + case '<': + return left < right; + case '<=': + return left <= right; + case '>': + return left > right; + case '>=': + return left >= right; + } +}; + +const stringToCompositeKey = (source) => { + const array = source.split('@'); + if (array.length !== 2) { + return null; + } + return { id: array[0], createdBy: array[1] }; +}; +const compositeKeyToJsonString = (source) => { + return `{ id: ${source.id}, createdBy: ${source.createdBy} }`; +}; +const compositeKeyEquals = (x, y) => { + return x.createdBy === y.createdBy && x.id === y.id; +}; + +const delay = async (ms) => { + await new Promise(next => setTimeout(next, ms)); +}; + +// Recordのkeyは、numberはstringとして解釈され、symbolはfor in文で列挙されないため、stringのみの対応としている。 +const mapToRecord = (source) => { + const result = {}; + source.forEach((value, key) => { + if (result[key] !== undefined) { + // プロトタイプ汚染などを防いでいる。ただ、これで十分なのだろうか? + throw new Error(`${key} already exists`); + } + result[key] = value; + }); + return result; +}; +const chooseRecord = (source, chooser) => { + const result = new Map(); + for (const key in source) { + const element = source[key]; + if (element !== undefined) { + const newElement = chooser(element, key); + if (newElement !== undefined) { + result.set(key, newElement); + } + } + } + return mapToRecord(result); +}; +const chooseDualKeyRecord = (source, chooser) => { + return chooseRecord(source, (inner, key1) => inner === undefined + ? undefined + : chooseRecord(inner, (value, key2) => chooser(value, { first: key1, second: key2 }))); +}; +const mapRecord = (source, mapping) => { + const result = new Map(); + for (const key in source) { + const element = source[key]; + if (element !== undefined) { + const newElement = mapping(element, key); + result.set(key, newElement); + } + } + return mapToRecord(result); +}; +const mapDualKeyRecord = (source, mapping) => { + return chooseRecord(source, (inner, key1) => inner === undefined + ? undefined + : mapRecord(inner, (value, key2) => mapping(value, { first: key1, second: key2 }))); +}; +function* recordToIterator(source) { + for (const key in source) { + const value = source[key]; + if (value !== undefined) { + yield { key, value }; + } + } +} +const getExactlyOneKey = (record) => { + let lastKey = null; + for (const pair of recordToIterator(record)) { + if (lastKey != null) { + throw new Error('Expected length to be 1, but actually more than 1.'); + } + lastKey = pair.key; + } + if (lastKey == null) { + throw new Error('Expected length to be 1, but actually 0.'); + } + return lastKey; +}; +const recordToArray = (source) => { + return [...recordToIterator(source)]; +}; +const recordToMap = (source) => { + const result = new Map(); + for (const key in source) { + const value = source[key]; + if (value !== undefined) { + result.set(key, value); + } + } + return result; +}; +const dualKeyRecordToDualKeyMap = (source) => { + const result = new DualKeyMap(); + for (const first in source) { + const innerRecord = source[first]; + if (innerRecord !== undefined) { + for (const second in innerRecord) { + const value = innerRecord[second]; + if (value !== undefined) { + result.set({ first, second }, value); + } + } + } + } + return result; +}; +const recordForEach = (source, action) => { + for (const pair of recordToIterator(source)) { + action(pair.value, pair.key); + } +}; +const recordForEachAsync = async (source, action) => { + for (const pair of recordToIterator(source)) { + await action(pair.value, pair.key); + } +}; +const isRecordEmpty = (source) => { + for (const key in source) { + const value = source[key]; + if (value !== undefined) { + return false; + } + } + return true; +}; +const dualKeyRecordForEach = (source, action) => { + for (const first in source) { + const inner = source[first]; + if (inner === undefined) { + continue; + } + for (const second in inner) { + const value = inner[second]; + if (value === undefined) { + continue; + } + action(value, { first, second }); + } + } +}; + +class DualKeyMap { + // Mapは常に空でないMapとなる + _core; + constructor(sourceMap) { + if (sourceMap != null) { + this._core = DualKeyMap.chooseMap(sourceMap, x => Option.some(x)); + return; + } + this._core = new Map(); + } + static chooseMap(source, chooser) { + const result = new Map(); + for (const [firstKey, first] of source) { + if (first.size === 0) { + continue; + } + const toSet = new Map(); + for (const [secondKey, second] of first) { + const chooserResult = chooser(second, { first: firstKey, second: secondKey }); + if (chooserResult.isNone) { + continue; + } + toSet.set(secondKey, chooserResult.value); + } + result.set(firstKey, toSet); + } + return result; + } + static create(source, chooser) { + const result = new DualKeyMap(); + result._core = DualKeyMap.chooseMap(source instanceof DualKeyMap ? source._core : source, chooser); + return result; + } + static ofRecord(source) { + const result = new DualKeyMap(); + for (const key1 in source) { + const inner = source[key1]; + if (inner === undefined) { + continue; + } + for (const key2 in inner) { + const value = inner[key2]; + if (value !== undefined) { + result.set({ first: key1, second: key2 }, value); + } + } + } + return result; + } + map(mapping) { + return DualKeyMap.create(this, (source, key) => Option.some(mapping(source, key))); + } + choose(chooser) { + return DualKeyMap.create(this, (source, key) => chooser(source, key)); + } + clone() { + return DualKeyMap.create(this, x => Option.some(x)); + } + get({ first, second }) { + const inner = this._core.get(first); + if (inner === undefined) { + return undefined; + } + return inner.get(second); + } + // 戻り値のReadonlyMapをMapにするとDualKeyMapを操作できて一見便利そうだが、そうすると_coreの制約を満たせなくなる。また、ReadonlyMapであれば戻り値がundefinedのときは空のMapを作成して返せるため綺麗になる。 + getByFirst(first) { + return this._core.get(first) ?? new Map(); + } + set({ first, second }, value) { + let inner = this._core.get(first); + if (inner === undefined) { + inner = new Map(); + this._core.set(first, inner); + } + inner.set(second, value); + return this; + } + delete({ first, second }) { + const inner = this._core.get(first); + if (inner === undefined) { + return false; + } + const result = inner.delete(second); + if (inner.size === 0) { + this._core.delete(first); + } + return result; + } + has(key) { + return this.get(key) !== undefined; + } + *[Symbol.iterator]() { + for (const [firstKey, first] of this._core) { + for (const [secondKey, second] of first) { + yield [{ first: firstKey, second: secondKey }, second]; + } + } + } + toArray() { + return Array.from(this); + } + toMap() { + return DualKeyMap.chooseMap(this._core, x => Option.some(x)); + } + toStringRecord(createStringKey1, createStringKey2) { + const result = new Map(); + this._core.forEach((inner, first) => { + const innerRecord = new Map(); + inner.forEach((value, second) => { + innerRecord.set(createStringKey2(second), value); + }); + result.set(createStringKey1(first), mapToRecord(innerRecord)); + }); + return mapToRecord(result); + } + get size() { + return this.toArray().length; + } + get isEmpty() { + return this.size === 0; + } + forEach(action) { + for (const [key, value] of this) { + action(value, key); + } + } + reduce(reducer, seed) { + let result = seed; + this.forEach((element, key) => (result = reducer(result, element, key))); + return result; + } + // 主な使用目的はデバッグ目的で文字列化させるため + toJSON(valueToString) { + return JSON.stringify([...this._core].map(([key1, value]) => [ + key1, + [...value].map(([key2, value]) => [ + key2, + valueToString === undefined ? value : valueToString(value), + ]), + ])); + } +} +const groupJoinDualKeyMap = (left, right) => { + const result = new DualKeyMap(); + const rightClone = right.clone(); + left.forEach((leftElement, key) => { + const rightElement = rightClone.get(key); + rightClone.delete(key); + if (rightElement === undefined) { + result.set(key, { type: 'left', left: leftElement }); + return; + } + result.set(key, { + type: 'both', + left: leftElement, + right: rightElement, + }); + }); + rightClone.forEach((rightElement, key) => { + result.set(key, { type: 'right', right: rightElement }); + }); + return result; +}; +// [undefined, undefined, undefined]が返されることはない +const groupJoin3DualKeyMap = (source1, source2, source3) => { + const source = groupJoinDualKeyMap(source1, groupJoinDualKeyMap(source2, source3)); + return source.map(group => { + switch (group.type) { + case left: + return [group.left, undefined, undefined]; + case right: + case both: { + const result1 = (() => { + if (group.type === both) { + return group.left; + } + return undefined; + })(); + switch (group.right.type) { + case left: + return [result1, group.right.left, undefined]; + case right: + return [result1, undefined, group.right.right]; + case both: + return [result1, group.right.left, group.right.right]; + } + } + } + }); +}; +// [undefined, undefined, undefined, undefined]が返されることはない +const groupJoin4DualKeyMap = (source1, source2, source3, source4) => { + const source = groupJoinDualKeyMap(groupJoin3DualKeyMap(source1, source2, source3), source4); + return source.map(group => { + switch (group.type) { + case left: + return [...group.left, undefined]; + case right: + return [undefined, undefined, undefined, group.right]; + case both: { + return [...group.left, group.right]; + } + } + }); +}; + +function* mapIterable(source, mapping) { + for (const elem of source) { + yield mapping(elem); + } +} +function* chooseIterable(source, mapping) { + for (const elem of source) { + const newValue = mapping(elem); + if (!newValue.isNone) { + yield newValue.value; + } + } +} +function* pairwiseIterable(source) { + let prev = undefined; + for (const elem of source) { + yield { prev, current: elem }; + prev = elem; + } +} + +/** ミュータブルな木構造を表します。nodeをdeleteする機能は現時点では未実装です。*/ +class Tree { + #currentNode; + constructor(rootNodeValue) { + this.#currentNode = { + absolutePath: [], + value: rootNodeValue, + children: new Map(), + }; + } + static createTree(node) { + const result = new Tree(undefined); + result.#currentNode = node; + return result; + } + #ensureNode(key, initValue) { + let result = this.#currentNode; + for (const dir of key) { + let next = result.children.get(dir); + if (next == null) { + const absolutePath = [...result.absolutePath, dir]; + next = { + absolutePath, + value: initValue(absolutePath), + children: new Map(), + }; + result.children.set(dir, next); + } + result = next; + } + return result; + } + #getNode(key) { + let result = this.#currentNode; + for (const keyElement of key) { + const next = result.children.get(keyElement); + if (next == null) { + return null; + } + result = next; + } + return result; + } + get absolutePath() { + return this.#currentNode.absolutePath; + } + get value() { + return this.#currentNode.value; + } + /** 指定したkeyにあるnodeを基準とした新しいTreeオブジェクトを返します。nodeへの参照は共有されます。absolutePathは引き継がれます。 */ + createSubTree(key, initValue) { + const node = this.#ensureNode(key, initValue); + return Tree.createTree(node); + } + createSubTreeIfExists(key) { + if (this.get(key).isNone) { + return null; + } + return this.createSubTree(key, () => { + throw new Error('This should not happen'); + }); + } + /** 直接の子の要素を全て取得します。 */ + getChildren() { + const result = new Map(); + for (const [childKey, childNode] of this.#currentNode.children) { + result.set(childKey, Tree.createTree(childNode)); + } + return result; + } + get(key) { + const node = this.#getNode(key); + if (node == null) { + return Option.none(); + } + return Option.some(node.value); + } + ensure(key, replacer, initValue) { + const node = this.#ensureNode(key, initValue); + const result = replacer(node.value); + node.value = result; + return result; + } + #traverseNodes() { + // eslint-disable-next-line @typescript-eslint/no-this-alias + const self = this; + function* main() { + yield self.#currentNode; + for (const [, child] of self.getChildren()) { + yield* child.#traverseNodes(); + } + } + return main(); + } + traverse() { + return mapIterable(this.#traverseNodes(), elem => ({ + absolutePath: elem.absolutePath, + value: elem.value, + })); + } + replaceAllValues(replacer) { + for (const elem of this.#traverseNodes()) { + elem.value = replacer({ absolutePath: elem.absolutePath, value: elem.value }); + } + } + get size() { + return [...this.traverse()].length; + } + #mapNode(source, mapping) { + const childrenClone = new Map(); + for (const [sourceChildKey, sourceChild] of source.children) { + childrenClone.set(sourceChildKey, this.#mapNode(sourceChild, mapping)); + } + return { + absolutePath: source.absolutePath, + value: mapping(source.value, source.absolutePath), + children: childrenClone, + }; + } + map(mapping) { + const newNode = this.#mapNode(this.#currentNode, (oldValue, absolutePath) => mapping({ value: oldValue, absolutePath })); + return Tree.createTree(newNode); + } +} + +/** 仮想的にnodeをdeleteできる機能を持ったTreeを表します。内部でnodeにdeleteフラグを立てることでdeleteされたことを表すため、deleteしてもメモリの空き容量は増えません。 */ +class DeletableTree { + #source; + constructor(rootValue = Option.none()) { + this.#source = new Tree(rootValue); + } + get absolutePath() { + return this.#source.absolutePath; + } + get value() { + // 常に this.get([]) と等しい + return this.#source.value; + } + /** 指定したkeyにあるnodeを基準とした新しいTreeオブジェクトを返します。nodeへの参照は共有されます。absolutePathは引き継がれます。 */ + createSubTree(key, initValue) { + const result = new DeletableTree(); + const newTree = this.#source.createSubTree(key, absolutePath => Option.some(initValue(absolutePath))); + result.#source = newTree; + return result; + } + createSubTreeIfExists(key) { + if (this.get(key).isNone) { + return null; + } + return this.createSubTree(key, () => { + throw new Error('this should not happen'); + }); + } + /** 直接の子の要素を全て取得します。 */ + getChildren() { + const result = new Map(); + for (const [childKey] of this.#source.getChildren()) { + if (this.get([childKey]).isNone) { + continue; + } + result.set(childKey, this.createSubTree([childKey], () => { + throw new Error('This should not happen'); + })); + } + return result; + } + get(key) { + const node = this.#source.get(key); + if (node.isNone) { + return Option.none(); + } + if (node.value.isNone) { + return Option.none(); + } + return Option.some(node.value.value); + } + ensure(key, replacer, initValue) { + const result = this.#source.ensure(key, oldValue => Option.some(replacer(oldValue)), () => Option.none()); + const absolutePath = []; + const ensure = () => { + this.#source.ensure(absolutePath, oldValue => { + if (oldValue.isNone) { + return Option.some(initValue(absolutePath)); + } + return oldValue; + }, () => Option.none()); + }; + ensure(); + for (const k of key) { + absolutePath.push(k); + ensure(); + } + return result.value; + } + delete(key) { + if (this.get(key).isNone) { + return; + } + const subTree = this.#source.createSubTree(key, () => { + throw new Error('This should not happen'); + }); + // keyのNodeとその子孫すべてをNoneに置き換えている。 + subTree.replaceAllValues(() => Option.none()); + } + traverse() { + return chooseIterable(this.#source.traverse(), elem => { + if (elem.value.isNone) { + return Option.none(); + } + return Option.some({ absolutePath: elem.absolutePath, value: elem.value.value }); + }); + } + get size() { + return [...this.traverse()].length; + } + map(mapping) { + const newTree = this.#source.map(oldValue => { + if (oldValue.value.isNone) { + return oldValue.value; + } + return Option.some(mapping({ absolutePath: oldValue.absolutePath, value: oldValue.value.value })); + }); + const result = new DeletableTree(); + result.#source = newTree; + return result; + } + clone() { + return this.map(({ value }) => value); + } +} + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt#a_stricter_parse_function +const filterInt = (value) => { + if (/^[-+]?\d+$/.test(value)) { + return Number(value); + } + else { + return null; + } +}; + +const groupJoinMap = (left, right) => { + const result = new Map(); + const rightClone = new Map(right); + left.forEach((leftElement, key) => { + const rightElement = rightClone.get(key); + rightClone.delete(key); + if (rightElement === undefined) { + result.set(key, { type: 'left', left: leftElement }); + return; + } + result.set(key, { + type: 'both', + left: leftElement, + right: rightElement, + }); + }); + rightClone.forEach((rightElement, key) => { + result.set(key, { type: 'right', right: rightElement }); + }); + return result; +}; + +const groupJoinSet = (left, right) => { + const result = new Map(); + const rightClone = new Set(right); + left.forEach(leftElement => { + const existsInRight = rightClone.has(leftElement); + rightClone.delete(leftElement); + if (existsInRight) { + result.set(leftElement, 'both'); + return; + } + result.set(leftElement, 'left'); + }); + rightClone.forEach(rightElement => { + result.set(rightElement, 'right'); + }); + return result; +}; + +const isCompositeKey = (source) => { + if (!('createdBy' in source)) { + return false; + } + if (!('id' in source)) { + return false; + } + return typeof source.createdBy === 'string' && typeof source.id === 'string'; +}; +function* keyToStrings(key) { + if (typeof key === 'string') { + yield key; + } + else if (typeof key === 'number') { + yield key.toString(); + } + else if (isCompositeKey(key)) { + yield key.createdBy; + yield key.id; + } + else { + yield key.first; + yield key.second; + } +} +/** React の key に用いる文字列を生成します。 */ +// classNamesを参考にした命名。keyNamesの代わりにkeysは名前が汎用的すぎて衝突しやすいと思うため不採用。 +// clsxを参考にkeyxなどといった命名法も考えられるが、clsxはclassNamesとは引数が異なるようなので、もしかしたら適切ではないかもしれないと考え見送った。 +const keyNames = (...keys) => { + return keys + .map(key => [...keyToStrings(key)]) + .flat() + .reduce((seed, elem, i) => (i === 0 ? elem : `${seed}@${elem}`), ''); +}; + +const defaultLogLevel = 'info'; +const printFn = (logger, methodName) => { + function result(arg1, ...arg2) { + if (typeof arg1 === 'string') { + logger[methodName](arg1, ...arg2); + return; + } + const [msg, ...args] = [...arg2]; + if (typeof msg !== 'string') { + // TypeScript の型に従ってコードを書いている限り、ここには来ないはず。 + throw new Error('When the first argument is an object, the second argument must be a string.'); + } + logger[methodName](arg1, msg, ...args); + } + return result; +}; +// Promise の catch で受け取った値は型が不明なので、それをログに含めるときに便利な関数。 +// もし msg を optional にすると、obj == null かつ msg === undefined のときに出力するエラーメッセージがないのと、msg を空にすることは通常はないので、msg は optional にしていない。printFn の msg のほうも optional でなくするのもいいかもしれない。 +const autoDetectObjFn = (logger, methodName) => (obj, msg, ...args) => { + if (obj instanceof Error) { + printFn(logger, methodName)(obj, msg, ...args); + return; + } + if (typeof obj === 'string') { + if (msg == null) { + printFn(logger, methodName)(obj, ...args); + return; + } + printFn(logger, methodName)(`${msg} (Error: ${obj})`, ...args); + return; + } + if (obj == null) { + printFn(logger, methodName)(msg, ...args); + return; + } + printFn(logger, methodName)(`${msg} (not supported obj type. typeof obj is ${typeof obj})`, ...args); +}; +const createDefaultLogger = (args) => { + return (args?.isBrowser ?? isBrowser) + ? pino({ level: args?.logLevel ?? defaultLogLevel, browser: {} }) + : pino({ + level: args?.logLevel ?? defaultLogLevel, + transport: { target: '@flocon-trpg/default-pino-transport' }, + }); +}; +let currentLogger = null; +/** pino のロガーを取得もしくは変更できます。 */ +const loggerRef = { + /** pino のインスタンスを get もしくは set できます。 */ + get value() { + if (currentLogger == null) { + currentLogger = createDefaultLogger(); + } + return currentLogger; + }, + /** pino のインスタンスを get もしくは set できます。 */ + set value(value) { + currentLogger = value; + }, + get debug() { + return printFn(this.value, 'debug'); + }, + get error() { + return printFn(this.value, 'error'); + }, + get fatal() { + return printFn(this.value, 'fatal'); + }, + get info() { + return printFn(this.value, 'info'); + }, + infoAsNotice(msg) { + return this.info({ [notice]: true }, msg); + }, + get warn() { + return printFn(this.value, 'warn'); + }, + get silent() { + return printFn(this.value, 'silent'); + }, + get trace() { + return printFn(this.value, 'trace'); + }, + get autoDetectObj() { + return { + debug: autoDetectObjFn(this.value, 'debug'), + error: autoDetectObjFn(this.value, 'error'), + fatal: autoDetectObjFn(this.value, 'fatal'), + info: autoDetectObjFn(this.value, 'info'), + warn: autoDetectObjFn(this.value, 'warn'), + silent: autoDetectObjFn(this.value, 'silent'), + trace: autoDetectObjFn(this.value, 'trace'), + }; + }, +}; + +/** 複数のkeyを使用できるMap */ +// valueがNoneであり、なおかつchildrenを再帰的にたどってもSomeであるvalueがないようなNodeは不必要である。だが、現時点ではそれをgarbage collectする機能はない。 +class MultiKeyMap { + #source; + constructor() { + this.#source = new Tree(Option.none()); + } + get absolutePath() { + return this.#source.absolutePath; + } + createSubMap(key) { + const result = new MultiKeyMap(); + result.#source = this.#source.createSubTree(key, () => Option.none()); + return result; + } + /** 直接の子の要素を全て取得します。 */ + getChildren() { + const result = new Map(); + for (const [childKey, childValue] of this.#source.getChildren()) { + const newValue = new MultiKeyMap(); + newValue.#source = childValue; + result.set(childKey, newValue); + } + return result; + } + get(key) { + const resultAsOption = this.#source.get(key); + if (resultAsOption === undefined) { + return undefined; + } + if (resultAsOption.isNone) { + return undefined; + } + return resultAsOption.value.value; + } + replace(key, replacer) { + const result = this.#source.ensure(key, oldValue => { + const newValue = replacer(oldValue.value); + if (newValue === undefined) { + return Option.none(); + } + return Option.some(newValue); + }, () => Option.none()); + return (result.isNone ? undefined : result.value); + } + ensure(key, onCreate) { + return this.replace(key, oldValue => (oldValue === undefined ? onCreate() : oldValue)); + } + set(key, newValue) { + this.replace(key, () => newValue); + } + delete(key) { + this.replace(key, () => undefined); + } + traverse() { + return chooseIterable(this.#source.traverse(), element => { + if (element.value.isNone) { + return Option.none(); + } + return Option.some({ + absolutePath: element.absolutePath, + value: element.value.value, + }); + }); + } + get size() { + return [...this.traverse()].length; + } + map(mapping) { + const newSource = this.#source.map(oldValue => { + if (oldValue.value.isNone) { + return oldValue.value; + } + const newValue = mapping({ + absolutePath: oldValue.absolutePath, + value: oldValue.value.value, + }); + if (newValue === undefined) { + return Option.none(); + } + return Option.some(newValue); + }); + const result = new MultiKeyMap(); + result.#source = newSource; + return result; + } +} + +/** 複数の値を使用できるSet */ +class MultiValueSet { + #core = new MultiKeyMap(); + add(key) { + return this.#core.set(key, true); + } + has(key) { + return this.#core.get(key) ?? false; + } + delete(key) { + this.#core.delete(key); + } + get size() { + return [...this.#core.traverse()].filter(({ value }) => value).length; + } + toIterator() { + return mapIterable(this.#core.traverse(), elem => elem.absolutePath); + } + clone() { + const result = new MultiValueSet(); + result.#core = this.#core.map(x => x.value); + return result; + } +} + +const isReadonlyNonEmptyArray = (source) => source.length > 0; + +const parseStringToBooleanError = { + ja: `真偽値に変換できませんでした。真として使用できる値は true, 1, yes, on で、偽として使用できる値は false, 0, no, off です。`, +}; +const parseStringToBooleanCore = (source) => { + switch (source.trim().toLowerCase()) { + case 'true': + case '1': + case 'yes': + case 'on': + return Result.ok(true); + case 'false': + case '0': + case 'no': + case 'off': + return Result.ok(false); + default: + return Result.error(parseStringToBooleanError); + } +}; +const parseStringToBoolean = (source) => { + if (source == null) { + return Result.ok(source); + } + return parseStringToBooleanCore(source); +}; + +const parseEnvListValue = (source) => { + if (source == null) { + return source; + } + return source.split(',').map(x => x.trim()); +}; + +const parsePinoLogLevel = (source, envName) => { + const value = source.toLowerCase().trim(); + switch (value) { + case 'fatal': + case 'error': + case 'warn': + case 'info': + case 'debug': + case 'trace': + case 'silent': { + return Result.ok(value); + } + } + return Result.error(`${envName} value is invalid. Supported values: "fatal", "error", "warn", "info", "debug", "trace", "silent".`); +}; + +// # alpha +// いかなる変更でも起こりうる状態。ソースコードの内容を理解している方向け。 +// 互換性のない変更があってもmajorとminorの規則に従わなくてもいいという特殊な規則がある。 +// minor=patch=0にすることを推奨。ただし、コードの変更量が非常に多い場合などは従わなくてもよい。 +// +// # beta +// 安定性と引き換えになるべく新しいバージョンに触れてみたい方向け。バグ報告やフィードバックを開発者以外からも受け取りたい場合に用いる。 +// x.y.z-beta.nからbetaを外すとき、次のバージョンはx.y.(z+1)ではなくx.y.zにする。理由は、例えば2.0.0-alpha.n→2.0.0-beta.n→2.0.0-rc.nのように用いる場合と整合性を持たせるため。 +// +// # rc +// 大規模なアップデートの正式版リリース直前に用いられる。betaのような不安定さは望まないが、新バージョンに早く触れてみたい方向け。betaはmajorやminorが変わるレベルの新機能の追加を取りやめることがありうるが、rcではそれは原則として避ける点で異なる。 +// minor=patch=0にすることを推奨。ただし、コードの変更量が非常に多い場合などは従わなくてもよい。 +const alpha = 'alpha'; +const beta = 'beta'; +const rc = 'rc'; +class SemVer { + major; + minor; + patch; + prerelease; + static requireToBePositiveInteger(source, propName) { + if (!Number.isInteger(source)) { + throw new Error(`Semver error: ${propName} must be integer. Actual value is "${source}"`); + } + if (source <= 0) { + throw new Error(`Semver error: ${propName} must be positive. Actual value is "${source}"`); + } + } + static requireToBeNonNegativeInteger(source, propName) { + if (!Number.isInteger(source)) { + throw new Error(`Semver error: ${propName} must be integer. Actual value is "${source}"`); + } + if (source < 0) { + throw new Error(`Semver error: ${propName} must not be negative. Actual value is "${source}"`); + } + } + constructor(option) { + SemVer.requireToBeNonNegativeInteger(option.major, 'major'); + SemVer.requireToBeNonNegativeInteger(option.minor, 'minor'); + SemVer.requireToBeNonNegativeInteger(option.patch, 'patch'); + if (option.prerelease != null) { + SemVer.requireToBePositiveInteger(option.prerelease.version, 'prerelease version'); + } + this.major = option.major; + this.minor = option.minor; + this.patch = option.patch; + this.prerelease = option.prerelease ?? null; + } + toString() { + if (this.prerelease == null) { + return `${this.major}.${this.minor}.${this.patch}`; + } + return `${this.major}.${this.minor}.${this.patch}-${this.prerelease.type}.${this.prerelease.version}`; + } + static prereleaseTypeToNumber(type) { + if (type == null) { + return 0; + } + switch (type) { + case rc: + return -1; + case beta: + return -2; + case alpha: + return -3; + } + } + static compareCore(left, operator, right) { + // majorが異なるなら値を即座に返し、同じなら次の判定処理に進むという戦略。他も同様。 + if (left.major !== right.major) { + return compare(left.major, operator, right.major); + } + if (left.minor !== right.minor) { + return compare(left.minor, operator, right.minor); + } + if (left.patch !== right.patch) { + return compare(left.patch, operator, right.patch); + } + const leftPreleaseTypeAsNumber = SemVer.prereleaseTypeToNumber(left.prerelease?.type); + const rightPreleaseTypeAsNumber = SemVer.prereleaseTypeToNumber(right.prerelease?.type); + if (leftPreleaseTypeAsNumber !== rightPreleaseTypeAsNumber) { + return compare(leftPreleaseTypeAsNumber, operator, rightPreleaseTypeAsNumber); + } + // ?? の右側の-1は、実際は使われることはない + return compare(left.prerelease?.version ?? -1, operator, right.prerelease?.version ?? -1); + } + /** + npmのsemverとは異なり、例えば 1.0.0 < 1.0.1-alpha.1 はtrueを返す。注意! + */ + static compare(left, operator, right) { + switch (operator) { + case '=': + case '<': + case '>': + return SemVer.compareCore(left, operator, right); + case '<=': + return !SemVer.compareCore(left, '>', right); + case '>=': + return !SemVer.compareCore(left, '<', right); + } + } +} + +export { DeletableTree, DualKeyMap, MultiKeyMap, MultiValueSet, SemVer, Tree, alpha, arrayEquals, beta, both, chooseDualKeyRecord, chooseIterable, chooseRecord, compare, compositeKeyEquals, compositeKeyToJsonString, createDefaultLogger, delay, dualKeyRecordForEach, dualKeyRecordToDualKeyMap, filterInt, getExactlyOneKey, groupJoin3DualKeyMap, groupJoin4DualKeyMap, groupJoinArray, groupJoinDualKeyMap, groupJoinMap, groupJoinSet, isReadonlyNonEmptyArray, isRecordEmpty, keyNames, left, loggerRef, mapDualKeyRecord, mapIterable, mapRecord, mapToRecord, pairwiseIterable, parseEnvListValue, parsePinoLogLevel, parseStringToBoolean, parseStringToBooleanError, rc, recordForEach, recordForEachAsync, recordToArray, recordToIterator, recordToMap, right, stringToCompositeKey }; +//# sourceMappingURL=index.js.map diff --git a/packages/utils/dist/esm/index.js.map b/packages/utils/dist/esm/index.js.map new file mode 100644 index 000000000..a17b815c9 --- /dev/null +++ b/packages/utils/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/groupJoinArray.ts","../../../src/internal/types.ts","../../../src/internal/arrayEquals.ts","../../../src/internal/compare.ts","../../../src/internal/compositeKey.ts","../../../src/internal/delay.ts","../../../src/internal/record.ts","../../../src/internal/dualKeyMap.ts","../../../src/internal/iterable.ts","../../../src/internal/tree.ts","../../../src/internal/deletableTree.ts","../../../src/internal/filterInt.ts","../../../src/internal/groupJoinMap.ts","../../../src/internal/groupJoinSet.ts","../../../src/internal/keyNames.ts","../../../src/internal/logger.ts","../../../src/internal/multiKeyMap.ts","../../../src/internal/multiValueSet.ts","../../../src/internal/nonEmptyArray.ts","../../../src/internal/parseStringToBoolean.ts","../../../src/internal/parseEnvListValue.ts","../../../src/internal/parsePinoLogLevel.ts","../../../src/internal/semver.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;UAEiB,cAAc,CAC3B,IAAsB,EACtB,KAAwB,EAAA;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAI,CAAC,EAAE,EAAE;AACnB,QAAA,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;AACpC,QAAA,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM;QACtC,IAAI,YAAY,EAAE;YACd,IAAI,aAAa,EAAE;AACf,gBAAA,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE;gBACxD;;AAEJ,YAAA,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE;YACtC;;QAEJ,IAAI,aAAa,EAAE;AACf,YAAA,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE;YACzC;;QAEJ;;AAER;;ACvBO,MAAM,IAAI,GAAG;AACb,MAAM,KAAK,GAAG;AACd,MAAM,IAAI,GAAG;;MCCP,WAAW,GAAG,CAAI,CAAe,EAAE,CAAe,KAAa;IACxE,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACrC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpB,YAAA,OAAO,KAAK;;QAEhB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,OAAO,KAAK;;;AAGpB,IAAA,OAAO,IAAI;AACf;;ACXa,MAAA,OAAO,GAAG,CAAC,IAAY,EAAE,QAAkB,EAAE,KAAa,KAAa;IAChF,QAAQ,QAAQ;AACZ,QAAA,KAAK,GAAG;YACJ,OAAO,IAAI,KAAK,KAAK;AACzB,QAAA,KAAK,GAAG;YACJ,OAAO,IAAI,GAAG,KAAK;AACvB,QAAA,KAAK,IAAI;YACL,OAAO,IAAI,IAAI,KAAK;AACxB,QAAA,KAAK,GAAG;YACJ,OAAO,IAAI,GAAG,KAAK;AACvB,QAAA,KAAK,IAAI;YACL,OAAO,IAAI,IAAI,KAAK;;AAEhC;;ACVa,MAAA,oBAAoB,GAAG,CAAC,MAAc,KAAyB;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/B,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,IAAI;;AAEf,IAAA,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE;AAClD;AAEa,MAAA,wBAAwB,GAAG,CAAC,MAAoB,KAAY;IACrE,OAAO,CAAA,MAAA,EAAS,MAAM,CAAC,EAAE,gBAAgB,MAAM,CAAC,SAAS,CAAA,EAAA,CAAI;AACjE;MAEa,kBAAkB,GAAG,CAAC,CAAe,EAAE,CAAe,KAAa;AAC5E,IAAA,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;AACvD;;MCnBa,KAAK,GAAG,OAAO,EAAU,KAAI;AACtC,IAAA,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACnD;;ACFA;AAIa,MAAA,WAAW,GAAG,CAAS,MAA2B,KAA4B;IACvF,MAAM,MAAM,GAA2B,EAAE;IACzC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;AAC1B,QAAA,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;;AAE3B,YAAA,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAA,eAAA,CAAiB,CAAC;;AAE5C,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;AACvB,KAAC,CAAC;AACF,IAAA,OAAO,MAAM;AACjB;MAEa,YAAY,GAAG,CACxB,MAA2C,EAC3C,OAA+D,KACtC;AACzB,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB;AACzC,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtB,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAC3B,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACvB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACxC,YAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAC1B,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC;;;;AAIvC,IAAA,OAAO,WAAW,CAAC,MAAM,CAAC;AAC9B;MAEa,mBAAmB,GAAG,CAC/B,MAAuE,EACvE,OAAgF,KACvC;AACzC,IAAA,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,KACpC,KAAK,KAAK;AACN,UAAE;AACF,UAAE,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAC5F;AACL;MAEa,SAAS,GAAG,CACrB,MAA2C,EAC3C,OAAmD,KAC1B;AACzB,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB;AACzC,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtB,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAC3B,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACvB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACxC,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC;;;AAGnC,IAAA,OAAO,WAAW,CAAC,MAAM,CAAC;AAC9B;MAEa,gBAAgB,GAAG,CAC5B,MAAuE,EACvE,OAAoE,KAC3B;AACzC,IAAA,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,KACpC,KAAK,KAAK;AACN,UAAE;AACF,UAAE,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CACzF;AACL;AAEe,UAAE,gBAAgB,CAC7B,MAAqC,EAAA;AAErC,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtB,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;AACzB,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;;;AAGhC;AAEa,MAAA,gBAAgB,GAAG,CAAC,MAA+B,KAAY;IACxE,IAAI,OAAO,GAAkB,IAAI;IACjC,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;AACzC,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC;;AAEzE,QAAA,OAAO,GAAG,IAAI,CAAC,GAAG;;AAEtB,IAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;;AAE/D,IAAA,OAAO,OAAO;AAClB;AAEa,MAAA,aAAa,GAAG,CACzB,MAAqC,KACR;AAC7B,IAAA,OAAO,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACxC;AAEa,MAAA,WAAW,GAAG,CAAI,MAAqC,KAAoB;AACpF,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAa;AACnC,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtB,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;AACzB,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;;;AAG9B,IAAA,OAAO,MAAM;AACjB;AAEa,MAAA,yBAAyB,GAAG,CACrC,MAAiE,KAClC;AAC/B,IAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAqB;AAClD,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACxB,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAC3B,YAAA,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE;AAC9B,gBAAA,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;AACjC,gBAAA,IAAI,KAAK,KAAK,SAAS,EAAE;oBACrB,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC;;;;;AAKpD,IAAA,OAAO,MAAM;AACjB;MAEa,aAAa,GAAG,CACzB,MAAqC,EACrC,MAAuC,KACjC;IACN,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;QACzC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;;AAEpC;AAEa,MAAA,kBAAkB,GAAG,OAC9B,MAAqC,EACrC,MAAgD,KACjC;IACf,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;QACzC,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;;AAE1C;AAEa,MAAA,aAAa,GAAG,CAAI,MAAqC,KAAI;AACtE,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtB,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;AACzB,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,OAAO,KAAK;;;AAGpB,IAAA,OAAO,IAAI;AACf;MAEa,oBAAoB,GAAG,CAChC,MAAiE,EACjE,MAAwD,KAClD;AACN,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACxB,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB;;AAEJ,QAAA,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;AACxB,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;AAC3B,YAAA,IAAI,KAAK,KAAK,SAAS,EAAE;gBACrB;;YAEJ,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;;;AAG5C;;MC9Ja,UAAU,CAAA;;AAEX,IAAA,KAAK;AAEb,IAAA,WAAA,CAAmB,SAAkD,EAAA;AACjE,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;YACnB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjE;;AAEJ,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAA6B;;AAG7C,IAAA,OAAO,SAAS,CACpB,MAA+C,EAC/C,OAAyE,EAAA;AAEzE,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B;QACpD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE;AACpC,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;gBAClB;;AAEJ,YAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB;YACvC,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,EAAE;AACrC,gBAAA,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC7E,gBAAA,IAAI,aAAa,CAAC,MAAM,EAAE;oBACtB;;gBAEJ,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC;;AAE7C,YAAA,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;;AAE/B,QAAA,OAAO,MAAM;;AAGT,IAAA,OAAO,MAAM,CACjB,MAAmF,EACnF,OAAyE,EAAA;AAEzE,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAyB;QACtD,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAC/B,MAAM,YAAY,UAAU,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,EACpD,OAAO,CACV;AACD,QAAA,OAAO,MAAM;;IAGV,OAAO,QAAQ,CAClB,MAAoE,EAAA;AAEpE,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAwB;AACrD,QAAA,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;AACvB,YAAA,MAAM,KAAK,GAAkD,MAAM,CAAC,IAAI,CAAC;AACzE,YAAA,IAAI,KAAK,KAAK,SAAS,EAAE;gBACrB;;AAEJ,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,gBAAA,MAAM,KAAK,GAAuB,KAAK,CAAC,IAAI,CAAC;AAC7C,gBAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,oBAAA,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC;;;;AAI5D,QAAA,OAAO,MAAM;;AAGV,IAAA,GAAG,CACN,OAAgE,EAAA;QAEhE,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;;AAG/E,IAAA,MAAM,CACT,OAAwE,EAAA;QAExE,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;;IAGlE,KAAK,GAAA;AACR,QAAA,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;AAGhD,IAAA,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAyB,EAAA;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,OAAO,SAAS;;AAEpB,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;;;AAIrB,IAAA,UAAU,CAAC,KAAY,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE;;AAGtC,IAAA,GAAG,CACN,EAAE,KAAK,EAAE,MAAM,EAAyB,EACxC,KAAa,EAAA;QAEb,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,KAAK,GAAG,IAAI,GAAG,EAAiB;YAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;;AAEhC,QAAA,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;AACxB,QAAA,OAAO,IAAI;;AAGR,IAAA,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAyB,EAAA;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,OAAO,KAAK;;QAEhB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AACnC,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;;AAE5B,QAAA,OAAO,MAAM;;AAGV,IAAA,GAAG,CAAC,GAA0B,EAAA;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS;;AAGtC,IAAA,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAA;QACd,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YACxC,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,EAAE;AACrC,gBAAA,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,CAAU;;;;IAKpE,OAAO,GAAA;AACV,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGpB,KAAK,GAAA;AACR,QAAA,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;IAGzD,cAAc,CACjB,gBAA0C,EAC1C,gBAA2C,EAAA;AAE3C,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkC;QACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;AAChC,YAAA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB;YAC7C,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,KAAI;gBAC5B,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;AACpD,aAAC,CAAC;AACF,YAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;AACjE,SAAC,CAAC;AACF,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC;;AAG9B,IAAA,IAAW,IAAI,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM;;AAGhC,IAAA,IAAW,OAAO,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC;;AAGnB,IAAA,OAAO,CAAC,MAA2D,EAAA;QACtE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;AAC7B,YAAA,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;;;IAInB,MAAM,CACT,OAAgF,EAChF,IAAa,EAAA;QAEb,IAAI,MAAM,GAAG,IAAI;QACjB,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AACxE,QAAA,OAAO,MAAM;;;AAIV,IAAA,MAAM,CAAC,aAAyC,EAAA;QACnD,OAAO,IAAI,CAAC,SAAS,CACjB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK;YACnC,IAAI;AACJ,YAAA,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK;gBAC9B,IAAI;AACJ,gBAAA,aAAa,KAAK,SAAS,GAAG,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;aAC7D,CAAC;AACL,SAAA,CAAC,CACL;;AAER;MAUY,mBAAmB,GAAG,CAC/B,IAA6C,EAC7C,KAA+C,KACW;AAC1D,IAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAgD;AAC7E,IAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE;IAChC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,KAAI;QAC9B,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AACxC,QAAA,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;AACtB,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAC5B,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YACpD;;AAEJ,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,KAAK,EAAE,YAAY;AACtB,SAAA,CAAC;AACN,KAAC,CAAC;IACF,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,KAAI;AACrC,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAC3D,KAAC,CAAC;AACF,IAAA,OAAO,MAAM;AACjB;AAEA;AACa,MAAA,oBAAoB,GAAG,CAChC,OAA6C,EAC7C,OAA6C,EAC7C,OAA6C,KACwC;AACrF,IAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAClF,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,IAAG;AACtB,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAK,IAAI;gBACL,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;AAC7C,YAAA,KAAK,KAAK;YACV,KAAK,IAAI,EAAE;AACP,gBAAA,MAAM,OAAO,GAAG,CAAC,MAAK;AAClB,oBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;wBACrB,OAAO,KAAK,CAAC,IAAI;;AAErB,oBAAA,OAAO,SAAS;iBACnB,GAAG;AACJ,gBAAA,QAAQ,KAAK,CAAC,KAAK,CAAC,IAAI;AACpB,oBAAA,KAAK,IAAI;wBACL,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AACjD,oBAAA,KAAK,KAAK;wBACN,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AAClD,oBAAA,KAAK,IAAI;AACL,wBAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;;;;AAIzE,KAAC,CAAC;AACN;AAEA;AACO,MAAM,oBAAoB,GAAG,CAChC,OAA6C,EAC7C,OAA6C,EAC7C,OAA6C,EAC7C,OAA6C,KAK7C;AACA,IAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC;AAC5F,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,IAAG;AACtB,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAK,IAAI;gBACL,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AACrC,YAAA,KAAK,KAAK;gBACN,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC;YACzD,KAAK,IAAI,EAAE;gBACP,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;;;AAG/C,KAAC,CAAC;AACN;;UCtSiB,WAAW,CAAS,MAAoB,EAAE,OAA2B,EAAA;AAClF,IAAA,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;AACvB,QAAA,MAAM,OAAO,CAAC,IAAI,CAAC;;AAE3B;UAEiB,cAAc,CAAS,MAAoB,EAAE,OAAmC,EAAA;AAC7F,IAAA,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;AACvB,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAClB,MAAM,QAAQ,CAAC,KAAK;;;AAGhC;AAEe,UAAE,gBAAgB,CAAI,MAAmB,EAAA;IACpD,IAAI,IAAI,GAAkB,SAAS;AACnC,IAAA,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;AACvB,QAAA,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;QAC7B,IAAI,GAAG,IAAI;;AAEnB;;ACdA;MACa,IAAI,CAAA;AACb,IAAA,YAAY;AAEZ,IAAA,WAAA,CAAmB,aAAqB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG;AAChB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,IAAI,GAAG,EAAE;SACtB;;IAGG,OAAO,UAAU,CAAe,IAAwB,EAAA;AAC5D,QAAA,MAAM,MAAM,GAAG,IAAI,IAAI,CAA2B,SAAS,CAAuB;AAClF,QAAA,MAAM,CAAC,YAAY,GAAG,IAAI;AAC1B,QAAA,OAAO,MAAM;;IAGjB,WAAW,CAAC,GAAoB,EAAE,SAAoD,EAAA;AAClF,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY;AAC9B,QAAA,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;YACnB,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;AACnC,YAAA,IAAI,IAAI,IAAI,IAAI,EAAE;gBACd,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC;AAClD,gBAAA,IAAI,GAAG;oBACH,YAAY;AACZ,oBAAA,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC;oBAC9B,QAAQ,EAAE,IAAI,GAAG,EAAE;iBACtB;gBACD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;;YAElC,MAAM,GAAG,IAAI;;AAEjB,QAAA,OAAO,MAAM;;AAGjB,IAAA,QAAQ,CAAC,GAAoB,EAAA;AACzB,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY;AAC9B,QAAA,KAAK,MAAM,UAAU,IAAI,GAAG,EAAE;YAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;AAC5C,YAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,gBAAA,OAAO,IAAI;;YAEf,MAAM,GAAG,IAAI;;AAEjB,QAAA,OAAO,MAAM;;AAGjB,IAAA,IAAW,YAAY,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY;;AAGzC,IAAA,IAAW,KAAK,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK;;;IAI3B,aAAa,CAChB,GAAoB,EACpB,SAAoD,EAAA;QAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC;AAC7C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;;AAGzB,IAAA,qBAAqB,CAAC,GAAoB,EAAA;QAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;AACtB,YAAA,OAAO,IAAI;;AAEf,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAK;AAChC,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;AAC7C,SAAC,CAAC;;;IAIC,WAAW,GAAA;AACd,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B;AAClD,QAAA,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC5D,YAAA,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;;AAEpD,QAAA,OAAO,MAAM;;AAGV,IAAA,GAAG,CAAC,GAAoB,EAAA;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC/B,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,YAAA,OAAO,MAAM,CAAC,IAAI,EAAE;;QAExB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG3B,IAAA,MAAM,CACT,GAAoB,EACpB,QAAyC,EACzC,SAAoD,EAAA;QAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM;AACnB,QAAA,OAAO,MAAM;;IAGjB,cAAc,GAAA;;QAEV,MAAM,IAAI,GAAG,IAAI;QACjB,UAAU,IAAI,GAAA;YACV,MAAM,IAAI,CAAC,YAAY;YACvB,KAAK,MAAM,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACxC,gBAAA,OAAO,KAAK,CAAC,cAAc,EAAE;;;QAGrC,OAAO,IAAI,EAAE;;IAGV,QAAQ,GAAA;QACX,OAAO,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,KAAK;YAC/C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;AACpB,SAAA,CAAC,CAAC;;AAGA,IAAA,gBAAgB,CACnB,QAAgF,EAAA;QAEhF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;AACtC,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;;;AAIrF,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM;;IAGtC,QAAQ,CACJ,MAA0B,EAC1B,OAAmE,EAAA;AAEnE,QAAA,MAAM,aAAa,GAAG,IAAI,GAAG,EAA6B;QAC1D,KAAK,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE;AACzD,YAAA,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;;QAE1E,OAAO;YACH,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC;AACjD,YAAA,QAAQ,EAAE,aAAa;SAC1B;;AAGE,IAAA,GAAG,CACN,OAAgF,EAAA;AAEhF,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,YAAY,KACpE,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAC7C;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;;AAEtC;;ACjKD;MACa,aAAa,CAAA;AACtB,IAAA,OAAO;AAEP,IAAA,WAAA,CAAmB,SAA4B,GAAA,MAAM,CAAC,IAAI,EAAE,EAAA;QACxD,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;;AAGtC,IAAA,IAAW,YAAY,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY;;AAGpC,IAAA,IAAW,KAAK,GAAA;;AAEZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;;;IAItB,aAAa,CAChB,GAAoB,EACpB,SAAoD,EAAA;AAEpD,QAAA,MAAM,MAAM,GAAG,IAAI,aAAa,EAAgB;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,YAAY,IACxD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CACvC;AACD,QAAA,MAAM,CAAC,OAAO,GAAG,OAAO;AACxB,QAAA,OAAO,MAAM;;AAGV,IAAA,qBAAqB,CAAC,GAAoB,EAAA;QAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;AACtB,YAAA,OAAO,IAAI;;AAEf,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAK;AAChC,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;AAC7C,SAAC,CAAC;;;IAIC,WAAW,GAAA;AACd,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqC;AAC3D,QAAA,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE;gBAC7B;;AAEJ,YAAA,MAAM,CAAC,GAAG,CACN,QAAQ,EACR,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAK;AAChC,gBAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;aAC5C,CAAC,CACL;;AAEL,QAAA,OAAO,MAAM;;AAGV,IAAA,GAAG,CAAC,GAAoB,EAAA;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,OAAO,MAAM,CAAC,IAAI,EAAE;;AAExB,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACnB,YAAA,OAAO,MAAM,CAAC,IAAI,EAAE;;QAExB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;AAGjC,IAAA,MAAM,CACT,GAAoB,EACpB,QAAiD,EACjD,SAAoD,EAAA;AAEpD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAC9B,GAAG,EACH,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAC3C,MAAM,MAAM,CAAC,IAAI,EAAE,CACtB;QAED,MAAM,YAAY,GAAW,EAAE;QAC/B,MAAM,MAAM,GAAG,MAAK;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CACf,YAAY,EACZ,QAAQ,IAAG;AACP,gBAAA,IAAI,QAAQ,CAAC,MAAM,EAAE;oBACjB,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;;AAE/C,gBAAA,OAAO,QAAQ;aAClB,EACD,MAAM,MAAM,CAAC,IAAI,EAAE,CACtB;AACL,SAAC;AAED,QAAA,MAAM,EAAE;AACR,QAAA,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;AACjB,YAAA,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACpB,YAAA,MAAM,EAAE;;QAGZ,OAAO,MAAM,CAAC,KAAK;;AAGhB,IAAA,MAAM,CAAC,GAAoB,EAAA;QAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;YACtB;;QAGJ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,MAAK;AACjD,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;AAC7C,SAAC,CAAC;;QAEF,OAAO,CAAC,gBAAgB,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;;IAG1C,QAAQ,GAAA;QACX,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAG;AAClD,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACnB,gBAAA,OAAO,MAAM,CAAC,IAAI,EAAE;;YAExB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACpF,SAAC,CAAC;;AAGN,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM;;AAG/B,IAAA,GAAG,CACN,OAAgF,EAAA;QAEhF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAG;AACxC,YAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;gBACvB,OAAO,QAAQ,CAAC,KAAK;;YAEzB,OAAO,MAAM,CAAC,IAAI,CACd,OAAO,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAChF;AACL,SAAC,CAAC;AACF,QAAA,MAAM,MAAM,GAAG,IAAI,aAAa,EAAiB;AACjD,QAAA,MAAM,CAAC,OAAO,GAAG,OAAO;AACxB,QAAA,OAAO,MAAM;;IAGV,KAAK,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC;;AAE5C;;ACrJD;AACa,MAAA,SAAS,GAAG,CAAC,KAAa,KAAI;AACvC,IAAA,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1B,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC;;SACjB;AACH,QAAA,OAAO,IAAI;;AAEnB;;MCLa,YAAY,GAAG,CACxB,IAA8B,EAC9B,KAAgC,KACW;AAC3C,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwC;AAC9D,IAAA,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,KAAI;QAC9B,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AACxC,QAAA,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;AACtB,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAC5B,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YACpD;;AAEJ,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,KAAK,EAAE,YAAY;AACtB,SAAA,CAAC;AACN,KAAC,CAAC;IACF,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,KAAI;AACrC,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAC3D,KAAC,CAAC;AACF,IAAA,OAAO,MAAM;AACjB;;MCrBa,YAAY,GAAG,CACxB,IAAoB,EACpB,KAAqB,KACQ;AAC7B,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B;AAChD,IAAA,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;AACjC,IAAA,IAAI,CAAC,OAAO,CAAC,WAAW,IAAG;QACvB,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;AACjD,QAAA,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC;QAC9B,IAAI,aAAa,EAAE;AACf,YAAA,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;YAE/B;;AAEJ,QAAA,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;AACnC,KAAC,CAAC;AACF,IAAA,UAAU,CAAC,OAAO,CAAC,YAAY,IAAG;AAC9B,QAAA,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC;AACrC,KAAC,CAAC;AACF,IAAA,OAAO,MAAM;AACjB;;ACjBA,MAAM,cAAc,GAAG,CAAC,MAA8C,KAA4B;AAC9F,IAAA,IAAI,EAAE,WAAW,IAAI,MAAM,CAAC,EAAE;AAC1B,QAAA,OAAO,KAAK;;AAEhB,IAAA,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC,EAAE;AACnB,QAAA,OAAO,KAAK;;AAEhB,IAAA,OAAO,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ;AAChF,CAAC;AAED,UAAU,YAAY,CAAC,GAAQ,EAAA;AAC3B,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzB,QAAA,MAAM,GAAG;;AACN,SAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAChC,QAAA,MAAM,GAAG,CAAC,QAAQ,EAAE;;AACjB,SAAA,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;QAC5B,MAAM,GAAG,CAAC,SAAS;QACnB,MAAM,GAAG,CAAC,EAAE;;SACT;QACH,MAAM,GAAG,CAAC,KAAK;QACf,MAAM,GAAG,CAAC,MAAM;;AAExB;AAEA;AACA;AACA;MACa,QAAQ,GAAG,CAAC,GAAG,IAAwB,KAAY;AAC5D,IAAA,OAAO;AACF,SAAA,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AACjC,SAAA,IAAI;AACJ,SAAA,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAG,EAAA,IAAI,CAAI,CAAA,EAAA,IAAI,CAAE,CAAA,CAAC,EAAE,EAAE,CAAC;AAC5E;;AClCA,MAAM,eAAe,GAAG,MAAM;AAU9B,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,UAA0B,KAAW;AAOlE,IAAA,SAAS,MAAM,CACX,IAA8C,EAC9C,GAAG,IAAwB,EAAA;AAE3B,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC1B,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;YACjC;;QAEJ,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAChC,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;;AAEzB,YAAA,MAAM,IAAI,KAAK,CACX,6EAA6E,CAChF;;QAEL,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;;AAG1C,IAAA,OAAO,MAAM;AACjB,CAAC;AAED;AACA;AACA,MAAM,eAAe,GACjB,CAAC,MAAc,EAAE,UAA0B,KAC3C,CAAC,GAAY,EAAE,GAAW,EAAE,GAAG,IAAwB,KAAI;AACvD,IAAA,IAAI,GAAG,YAAY,KAAK,EAAE;AACtB,QAAA,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC9C;;AAEJ,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzB,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;YACb,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACzC;;AAEJ,QAAA,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA,EAAG,GAAG,CAAA,SAAA,EAAY,GAAG,CAAG,CAAA,CAAA,EAAE,GAAG,IAAI,CAAC;QAC9D;;AAEJ,IAAA,IAAI,GAAG,IAAI,IAAI,EAAE;QACb,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACzC;;AAEJ,IAAA,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CACvB,CAAG,EAAA,GAAG,CAA2C,wCAAA,EAAA,OAAO,GAAG,CAAG,CAAA,CAAA,EAC9D,GAAG,IAAI,CACV;AACL,CAAC;AAEQ,MAAA,mBAAmB,GAAG,CAAC,IAAuD,KAAI;AAC3F,IAAA,OAAO,CAAC,IAAI,EAAE,SAAS,IAAI,SAAS;AAChC,UAAE,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,IAAI,eAAe,EAAE,OAAO,EAAE,EAAE,EAAE;UAC9D,IAAI,CAAC;AACD,YAAA,KAAK,EAAE,IAAI,EAAE,QAAQ,IAAI,eAAe;AACxC,YAAA,SAAS,EAAE,EAAE,MAAM,EAAE,qCAAqC,EAAE;AAC/D,SAAA,CAAC;AACZ;AAEA,IAAI,aAAa,GAAkB,IAAI;AAEvC;AACa,MAAA,SAAS,GAAG;;AAErB,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,IAAI,aAAa,IAAI,IAAI,EAAE;YACvB,aAAa,GAAG,mBAAmB,EAAE;;AAEzC,QAAA,OAAO,aAAa;KACvB;;IAED,IAAI,KAAK,CAAC,KAAa,EAAA;QACnB,aAAa,GAAG,KAAK;KACxB;AACD,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;KACtC;AACD,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;KACtC;AACD,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;KACtC;AACD,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;KACrC;AACD,IAAA,YAAY,CAAC,GAAW,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC;KAC5C;AACD,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;KACrC;AACD,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;KACvC;AACD,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;KACtC;AACD,IAAA,IAAI,aAAa,GAAA;QACb,OAAO;YACH,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;YAC3C,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;YAC3C,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;YAC3C,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;YACzC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;YACzC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC7C,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;SAC9C;KACJ;;;AC5HL;AACA;MACa,WAAW,CAAA;AACpB,IAAA,OAAO;AAEP,IAAA,WAAA,GAAA;QACI,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;;AAG1C,IAAA,IAAW,YAAY,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY;;AAG7B,IAAA,YAAY,CAAC,GAAoB,EAAA;AACpC,QAAA,MAAM,MAAM,GAAG,IAAI,WAAW,EAAgB;AAC9C,QAAA,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;AACrE,QAAA,OAAO,MAAM;;;IAIV,WAAW,GAAA;AACd,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmC;AACzD,QAAA,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;AAC7D,YAAA,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAgB;AAChD,YAAA,QAAQ,CAAC,OAAO,GAAG,UAAU;AAC7B,YAAA,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;;AAElC,QAAA,OAAO,MAAM;;AAGV,IAAA,GAAG,CAAC,GAAoB,EAAA;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAC5C,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAC9B,YAAA,OAAO,SAAS;;AAEpB,QAAA,IAAI,cAAc,CAAC,MAAM,EAAE;AACvB,YAAA,OAAO,SAAS;;AAEpB,QAAA,OAAO,cAAc,CAAC,KAAK,CAAC,KAAK;;IAG9B,OAAO,CACV,GAAoB,EACpB,QAAqD,EAAA;AAErD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAC9B,GAAG,EACH,QAAQ,IAAG;YACP,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzC,YAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AACxB,gBAAA,OAAO,MAAM,CAAC,IAAI,EAAE;;AAExB,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAiB;SAC/C,EACD,MAAM,MAAM,CAAC,IAAI,EAAE,CACtB;AACD,QAAA,QAAQ,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK;;IAG7C,MAAM,CAAC,GAAoB,EAAE,QAAsB,EAAA;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,QAAQ,KAAK,SAAS,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;;IAGnF,GAAG,CAAC,GAAoB,EAAE,QAAgB,EAAA;QAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,QAAQ,CAAC;;AAG9B,IAAA,MAAM,CAAC,GAAoB,EAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,SAAS,CAAC;;IAG/B,QAAQ,GAAA;QACX,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,IAAG;AACrD,YAAA,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;AACtB,gBAAA,OAAO,MAAM,CAAC,IAAI,EAAE;;YAExB,OAAO,MAAM,CAAC,IAAI,CAAC;gBACf,YAAY,EAAE,OAAO,CAAC,YAAY;AAClC,gBAAA,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;AAC7B,aAAA,CAAC;AACN,SAAC,CAAC;;AAGN,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM;;AAG/B,IAAA,GAAG,CACN,OAGyB,EAAA;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAG;AAC1C,YAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;gBACvB,OAAO,QAAQ,CAAC,KAAK;;YAEzB,MAAM,QAAQ,GAAG,OAAO,CAAC;gBACrB,YAAY,EAAE,QAAQ,CAAC,YAAY;AACnC,gBAAA,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK;AAC9B,aAAA,CAAC;AACF,YAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AACxB,gBAAA,OAAO,MAAM,CAAC,IAAI,EAAE;;AAExB,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChC,SAAC,CAAC;AACF,QAAA,MAAM,MAAM,GAAG,IAAI,WAAW,EAAiB;AAC/C,QAAA,MAAM,CAAC,OAAO,GAAG,SAAS;AAC1B,QAAA,OAAO,MAAM;;AAEpB;;AC/GD;MACa,aAAa,CAAA;AACtB,IAAA,KAAK,GAAG,IAAI,WAAW,EAAc;AAE9B,IAAA,GAAG,CAAC,GAAiB,EAAA;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;;AAG7B,IAAA,GAAG,CAAC,GAAiB,EAAA;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK;;AAGhC,IAAA,MAAM,CAAC,GAAiB,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;;AAG1B,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,MAAM;;IAGlE,UAAU,GAAA;AACb,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC;;IAGjE,KAAK,GAAA;AACR,QAAA,MAAM,MAAM,GAAG,IAAI,aAAa,EAAK;AACrC,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;AAC3C,QAAA,OAAO,MAAM;;AAEpB;;AC9BM,MAAM,uBAAuB,GAAG,CACnC,MAAwB,KACa,MAAM,CAAC,MAAM,GAAG;;ACE5C,MAAA,yBAAyB,GAAe;AACjD,IAAA,EAAE,EAAE,CAAiF,+EAAA,CAAA;;AAGzF,MAAM,wBAAwB,GAAG,CAAC,MAAc,KAAiC;IAC7E,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC/B,QAAA,KAAK,MAAM;AACX,QAAA,KAAK,GAAG;AACR,QAAA,KAAK,KAAK;AACV,QAAA,KAAK,IAAI;AACL,YAAA,OAAO,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;AAC1B,QAAA,KAAK,OAAO;AACZ,QAAA,KAAK,GAAG;AACR,QAAA,KAAK,IAAI;AACT,QAAA,KAAK,KAAK;AACN,YAAA,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;AAC3B,QAAA;AACI,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC;;AAE1D,CAAC;AAIY,MAAA,oBAAoB,GAAG,CAChC,MAAS,KACyB;AAClC,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,MAAsB,CAAC;;AAE5C,IAAA,OAAO,wBAAwB,CAAC,MAAM,CAAqC;AAC/E;;ACpCa,MAAA,iBAAiB,GAAG,CAC7B,MAAiC,KACJ;AAC7B,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,QAAA,OAAO,MAAM;;AAEjB,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/C;;MCHa,iBAAiB,GAAG,CAAC,MAAc,EAAE,OAAe,KAA0B;IACvF,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;IACzC,QAAQ,KAAK;AACT,QAAA,KAAK,OAAO;AACZ,QAAA,KAAK,OAAO;AACZ,QAAA,KAAK,MAAM;AACX,QAAA,KAAK,MAAM;AACX,QAAA,KAAK,OAAO;AACZ,QAAA,KAAK,OAAO;QACZ,KAAK,QAAQ,EAAE;AACX,YAAA,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;;;IAI/B,OAAO,MAAM,CAAC,KAAK,CACf,GAAG,OAAO,CAAA,kGAAA,CAAoG,CACjH;AACL;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACO,MAAM,KAAK,GAAG;AACd,MAAM,IAAI,GAAG;AACb,MAAM,EAAE,GAAG;MAcL,MAAM,CAAA;AACC,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,UAAU;AAElB,IAAA,OAAO,0BAA0B,CAAC,MAAc,EAAE,QAAgB,EAAA;QACtE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CACX,CAAA,cAAA,EAAiB,QAAQ,CAAsC,mCAAA,EAAA,MAAM,CAAG,CAAA,CAAA,CAC3E;;AAEL,QAAA,IAAI,MAAM,IAAI,CAAC,EAAE;YACb,MAAM,IAAI,KAAK,CACX,CAAA,cAAA,EAAiB,QAAQ,CAAuC,oCAAA,EAAA,MAAM,CAAG,CAAA,CAAA,CAC5E;;;AAID,IAAA,OAAO,6BAA6B,CAAC,MAAc,EAAE,QAAgB,EAAA;QACzE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CACX,CAAA,cAAA,EAAiB,QAAQ,CAAsC,mCAAA,EAAA,MAAM,CAAG,CAAA,CAAA,CAC3E;;AAEL,QAAA,IAAI,MAAM,GAAG,CAAC,EAAE;YACZ,MAAM,IAAI,KAAK,CACX,CAAA,cAAA,EAAiB,QAAQ,CAA2C,wCAAA,EAAA,MAAM,CAAG,CAAA,CAAA,CAChF;;;AAGT,IAAA,WAAA,CAAmB,MAAoB,EAAA;QACnC,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;QAC3D,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;QAC3D,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;AAC3D,QAAA,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,MAAM,CAAC,0BAA0B,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC;;AAGtF,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;QACzB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI;;IAGxC,QAAQ,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;AACzB,YAAA,OAAO,CAAG,EAAA,IAAI,CAAC,KAAK,CAAI,CAAA,EAAA,IAAI,CAAC,KAAK,CAAI,CAAA,EAAA,IAAI,CAAC,KAAK,EAAE;;QAEtD,OAAO,CAAA,EAAG,IAAI,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAI,CAAA,EAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAA,CAAE;;IAGjG,OAAO,sBAAsB,CACjC,IAA+D,EAAA;AAE/D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,YAAA,OAAO,CAAC;;QAEZ,QAAQ,IAAI;AACR,YAAA,KAAK,EAAE;gBACH,OAAO,CAAC,CAAC;AACb,YAAA,KAAK,IAAI;gBACL,OAAO,CAAC,CAAC;AACb,YAAA,KAAK,KAAK;gBACN,OAAO,CAAC,CAAC;;;AAIb,IAAA,OAAO,WAAW,CAAC,IAAY,EAAE,QAAyB,EAAE,KAAa,EAAA;;QAE7E,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE;AAC5B,YAAA,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC;;QAErD,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE;AAC5B,YAAA,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC;;QAErD,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE;AAC5B,YAAA,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC;;AAGrD,QAAA,MAAM,wBAAwB,GAAG,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;AACrF,QAAA,MAAM,yBAAyB,GAAG,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC;AAEvF,QAAA,IAAI,wBAAwB,KAAK,yBAAyB,EAAE;YACxD,OAAO,OAAO,CAAC,wBAAwB,EAAE,QAAQ,EAAE,yBAAyB,CAAC;;;QAIjF,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;;AAG7F;;AAEE;AACK,IAAA,OAAO,OAAO,CAAC,IAAY,EAAE,QAAkB,EAAE,KAAa,EAAA;QACjE,QAAQ,QAAQ;AACZ,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;gBACJ,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC;AACpD,YAAA,KAAK,IAAI;gBACL,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;AAChD,YAAA,KAAK,IAAI;gBACL,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;;;AAG3D;;;;"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/arrayEquals.d.ts b/packages/utils/dist/esm/internal/arrayEquals.d.ts new file mode 100644 index 000000000..7a2ab007e --- /dev/null +++ b/packages/utils/dist/esm/internal/arrayEquals.d.ts @@ -0,0 +1,2 @@ +export declare const arrayEquals: (x: readonly T[], y: readonly T[]) => boolean; +//# sourceMappingURL=arrayEquals.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/arrayEquals.d.ts.map b/packages/utils/dist/esm/internal/arrayEquals.d.ts.map new file mode 100644 index 000000000..f4ed167c6 --- /dev/null +++ b/packages/utils/dist/esm/internal/arrayEquals.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"arrayEquals.d.ts","sourceRoot":"","sources":["../../../src/internal/arrayEquals.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,GAAI,CAAC,KAAK,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,KAAG,OAUjE,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/compare.d.ts b/packages/utils/dist/esm/internal/compare.d.ts new file mode 100644 index 000000000..9cff6aaaa --- /dev/null +++ b/packages/utils/dist/esm/internal/compare.d.ts @@ -0,0 +1,3 @@ +export type Operator = '=' | '<' | '<=' | '>' | '>='; +export declare const compare: (left: number, operator: Operator, right: number) => boolean; +//# sourceMappingURL=compare.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/compare.d.ts.map b/packages/utils/dist/esm/internal/compare.d.ts.map new file mode 100644 index 000000000..591476662 --- /dev/null +++ b/packages/utils/dist/esm/internal/compare.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/internal/compare.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;AAErD,eAAO,MAAM,OAAO,SAAU,MAAM,YAAY,QAAQ,SAAS,MAAM,KAAG,OAazE,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/compositeKey.d.ts b/packages/utils/dist/esm/internal/compositeKey.d.ts new file mode 100644 index 000000000..09d78d019 --- /dev/null +++ b/packages/utils/dist/esm/internal/compositeKey.d.ts @@ -0,0 +1,8 @@ +export type CompositeKey = { + id: string; + createdBy: string; +}; +export declare const stringToCompositeKey: (source: string) => CompositeKey | null; +export declare const compositeKeyToJsonString: (source: CompositeKey) => string; +export declare const compositeKeyEquals: (x: CompositeKey, y: CompositeKey) => boolean; +//# sourceMappingURL=compositeKey.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/compositeKey.d.ts.map b/packages/utils/dist/esm/internal/compositeKey.d.ts.map new file mode 100644 index 000000000..a8d213fd4 --- /dev/null +++ b/packages/utils/dist/esm/internal/compositeKey.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"compositeKey.d.ts","sourceRoot":"","sources":["../../../src/internal/compositeKey.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAY,MAAM,KAAG,YAAY,GAAG,IAMpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,WAAY,YAAY,KAAG,MAE/D,CAAC;AAEF,eAAO,MAAM,kBAAkB,MAAO,YAAY,KAAK,YAAY,KAAG,OAErE,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/delay.d.ts b/packages/utils/dist/esm/internal/delay.d.ts new file mode 100644 index 000000000..f1c5bde80 --- /dev/null +++ b/packages/utils/dist/esm/internal/delay.d.ts @@ -0,0 +1,2 @@ +export declare const delay: (ms: number) => Promise; +//# sourceMappingURL=delay.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/delay.d.ts.map b/packages/utils/dist/esm/internal/delay.d.ts.map new file mode 100644 index 000000000..13324a020 --- /dev/null +++ b/packages/utils/dist/esm/internal/delay.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"delay.d.ts","sourceRoot":"","sources":["../../../src/internal/delay.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,OAAc,MAAM,kBAErC,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/deletableTree.d.ts b/packages/utils/dist/esm/internal/deletableTree.d.ts new file mode 100644 index 000000000..5adb4adcf --- /dev/null +++ b/packages/utils/dist/esm/internal/deletableTree.d.ts @@ -0,0 +1,27 @@ +import { Option } from '@kizahasi/option'; +/** 仮想的にnodeをdeleteできる機能を持ったTreeを表します。内部でnodeにdeleteフラグを立てることでdeleteされたことを表すため、deleteしてもメモリの空き容量は増えません。 */ +export declare class DeletableTree { + #private; + constructor(rootValue?: Option); + get absolutePath(): readonly TKey[]; + get value(): Option; + /** 指定したkeyにあるnodeを基準とした新しいTreeオブジェクトを返します。nodeへの参照は共有されます。absolutePathは引き継がれます。 */ + createSubTree(key: readonly TKey[], initValue: (absolutePath: readonly TKey[]) => TValue): DeletableTree; + createSubTreeIfExists(key: readonly TKey[]): DeletableTree | null; + /** 直接の子の要素を全て取得します。 */ + getChildren(): Map>; + get(key: readonly TKey[]): Option; + ensure(key: readonly TKey[], replacer: (oldValue: Option) => TReplaced, initValue: (absolutePath: readonly TKey[]) => TValue): TReplaced; + delete(key: readonly TKey[]): void; + traverse(): Iterable<{ + absolutePath: readonly TKey[]; + value: TValue; + }>; + get size(): number; + map(mapping: (oldValue: { + absolutePath: readonly TKey[]; + value: TValue; + }) => TValue2): DeletableTree; + clone(): DeletableTree; +} +//# sourceMappingURL=deletableTree.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/deletableTree.d.ts.map b/packages/utils/dist/esm/internal/deletableTree.d.ts.map new file mode 100644 index 000000000..dd7978625 --- /dev/null +++ b/packages/utils/dist/esm/internal/deletableTree.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"deletableTree.d.ts","sourceRoot":"","sources":["../../../src/internal/deletableTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,0GAA0G;AAC1G,qBAAa,aAAa,CAAC,IAAI,EAAE,MAAM;;gBAGhB,SAAS,GAAE,MAAM,CAAC,MAAM,CAAiB;IAI5D,IAAW,YAAY,oBAEtB;IAED,IAAW,KAAK,mBAGf;IAED,mFAAmF;IAC5E,aAAa,CAChB,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,SAAS,EAAE,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,KAAK,MAAM;IAUjD,qBAAqB,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IASjD,uBAAuB;IAChB,WAAW;IAgBX,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IAWzC,MAAM,CAAC,SAAS,SAAS,MAAM,EAClC,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,EACjD,SAAS,EAAE,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,KAAK,MAAM,GACrD,SAAS;IA8BL,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IAY3B,QAAQ,IAAI,QAAQ,CAAC;QAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAS7E,IAAW,IAAI,IAAI,MAAM,CAExB;IAEM,GAAG,CAAC,OAAO,EACd,OAAO,EAAE,CAAC,QAAQ,EAAE;QAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,GACjF,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;IAcxB,KAAK;CAGf"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/dualKeyMap.d.ts b/packages/utils/dist/esm/internal/dualKeyMap.d.ts new file mode 100644 index 000000000..2c5b2cd16 --- /dev/null +++ b/packages/utils/dist/esm/internal/dualKeyMap.d.ts @@ -0,0 +1,41 @@ +import { Option } from '@kizahasi/option'; +import { GroupJoinResult } from './types'; +export type DualKey = { + readonly first: T1; + readonly second: T2; +}; +export type DualKeyMapSource = Map> | Map> | ReadonlyMap> | ReadonlyMap>; +type RecordKey = string | number | symbol; +export declare class DualKeyMap { + private _core; + constructor(sourceMap?: DualKeyMapSource); + private static chooseMap; + private static create; + static ofRecord(source: Record | undefined>): DualKeyMap; + map(mapping: (source: TValue, key: DualKey) => TResult): DualKeyMap; + choose(chooser: (source: TValue, key: DualKey) => Option): DualKeyMap; + clone(): DualKeyMap; + get({ first, second }: DualKey): TValue | undefined; + getByFirst(first: TKey1): ReadonlyMap; + set({ first, second }: DualKey, value: TValue): DualKeyMap; + delete({ first, second }: DualKey): boolean; + has(key: DualKey): boolean; + [Symbol.iterator](): IterableIterator, TValue]>; + toArray(): (readonly [DualKey, TValue])[]; + toMap(): Map>; + toStringRecord(createStringKey1: (first: TKey1) => string, createStringKey2: (second: TKey2) => string): Record>; + get size(): number; + get isEmpty(): boolean; + forEach(action: (value: TValue, key: DualKey) => void): void; + reduce(reducer: (seed: TResult, element: TValue, key: DualKey) => TResult, seed: TResult): TResult; + toJSON(valueToString?: (value: TValue) => string): string; +} +export type ReadonlyDualKeyMap = Omit>, 'set' | 'delete' | 'getByFirst'> & { + [Symbol.iterator](): IterableIterator, TValue]>; + getByFirst(key: TKey1): ReadonlyMap | undefined; +}; +export declare const groupJoinDualKeyMap: (left: ReadonlyDualKeyMap, right: ReadonlyDualKeyMap) => DualKeyMap>; +export declare const groupJoin3DualKeyMap: (source1: ReadonlyDualKeyMap, source2: ReadonlyDualKeyMap, source3: ReadonlyDualKeyMap) => DualKeyMap; +export declare const groupJoin4DualKeyMap: (source1: ReadonlyDualKeyMap, source2: ReadonlyDualKeyMap, source3: ReadonlyDualKeyMap, source4: ReadonlyDualKeyMap) => DualKeyMap; +export {}; +//# sourceMappingURL=dualKeyMap.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/dualKeyMap.d.ts.map b/packages/utils/dist/esm/internal/dualKeyMap.d.ts.map new file mode 100644 index 000000000..a583310f7 --- /dev/null +++ b/packages/utils/dist/esm/internal/dualKeyMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"dualKeyMap.d.ts","sourceRoot":"","sources":["../../../src/internal/dualKeyMap.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/filterInt.d.ts b/packages/utils/dist/esm/internal/filterInt.d.ts new file mode 100644 index 000000000..2a912b7ac --- /dev/null +++ b/packages/utils/dist/esm/internal/filterInt.d.ts @@ -0,0 +1,2 @@ +export declare const filterInt: (value: string) => number | null; +//# sourceMappingURL=filterInt.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/filterInt.d.ts.map b/packages/utils/dist/esm/internal/filterInt.d.ts.map new file mode 100644 index 000000000..167cd9997 --- /dev/null +++ b/packages/utils/dist/esm/internal/filterInt.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"filterInt.d.ts","sourceRoot":"","sources":["../../../src/internal/filterInt.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,UAAW,MAAM,kBAMtC,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/groupJoinArray.d.ts b/packages/utils/dist/esm/internal/groupJoinArray.d.ts new file mode 100644 index 000000000..d0c4f84f8 --- /dev/null +++ b/packages/utils/dist/esm/internal/groupJoinArray.d.ts @@ -0,0 +1,3 @@ +import { GroupJoinResult } from './types'; +export declare function groupJoinArray(left: readonly TLeft[], right: readonly TRight[]): IterableIterator>; +//# sourceMappingURL=groupJoinArray.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/groupJoinArray.d.ts.map b/packages/utils/dist/esm/internal/groupJoinArray.d.ts.map new file mode 100644 index 000000000..ab50c08ee --- /dev/null +++ b/packages/utils/dist/esm/internal/groupJoinArray.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"groupJoinArray.d.ts","sourceRoot":"","sources":["../../../src/internal/groupJoinArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,wBAAiB,cAAc,CAAC,KAAK,EAAE,MAAM,EACzC,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,KAAK,EAAE,SAAS,MAAM,EAAE,GACzB,gBAAgB,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAkBlD"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/groupJoinMap.d.ts b/packages/utils/dist/esm/internal/groupJoinMap.d.ts new file mode 100644 index 000000000..fcc5e798c --- /dev/null +++ b/packages/utils/dist/esm/internal/groupJoinMap.d.ts @@ -0,0 +1,3 @@ +import { GroupJoinResult } from './types'; +export declare const groupJoinMap: (left: ReadonlyMap, right: ReadonlyMap) => Map>; +//# sourceMappingURL=groupJoinMap.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/groupJoinMap.d.ts.map b/packages/utils/dist/esm/internal/groupJoinMap.d.ts.map new file mode 100644 index 000000000..b95dac336 --- /dev/null +++ b/packages/utils/dist/esm/internal/groupJoinMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"groupJoinMap.d.ts","sourceRoot":"","sources":["../../../src/internal/groupJoinMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,YAAY,GAAI,IAAI,EAAE,KAAK,EAAE,MAAM,QACtC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,SACvB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,KACjC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAoB1C,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/groupJoinSet.d.ts b/packages/utils/dist/esm/internal/groupJoinSet.d.ts new file mode 100644 index 000000000..8d5ef1081 --- /dev/null +++ b/packages/utils/dist/esm/internal/groupJoinSet.d.ts @@ -0,0 +1,5 @@ +import { both, left, right } from './types'; +type GroupJoinResultType = typeof left | typeof right | typeof both; +export declare const groupJoinSet: (left: ReadonlySet, right: ReadonlySet) => Map; +export {}; +//# sourceMappingURL=groupJoinSet.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/groupJoinSet.d.ts.map b/packages/utils/dist/esm/internal/groupJoinSet.d.ts.map new file mode 100644 index 000000000..d9e1f982f --- /dev/null +++ b/packages/utils/dist/esm/internal/groupJoinSet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"groupJoinSet.d.ts","sourceRoot":"","sources":["../../../src/internal/groupJoinSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE5C,KAAK,mBAAmB,GAAG,OAAO,IAAI,GAAG,OAAO,KAAK,GAAG,OAAO,IAAI,CAAC;AAEpE,eAAO,MAAM,YAAY,GAAI,CAAC,QACpB,WAAW,CAAC,CAAC,CAAC,SACb,WAAW,CAAC,CAAC,CAAC,KACtB,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAiB5B,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/iterable.d.ts b/packages/utils/dist/esm/internal/iterable.d.ts new file mode 100644 index 000000000..502d7e2e4 --- /dev/null +++ b/packages/utils/dist/esm/internal/iterable.d.ts @@ -0,0 +1,8 @@ +import { Option } from '@kizahasi/option'; +export declare function mapIterable(source: Iterable, mapping: (source: T1) => T2): Generator; +export declare function chooseIterable(source: Iterable, mapping: (source: T1) => Option): Generator; +export declare function pairwiseIterable(source: Iterable): Generator<{ + prev: T | undefined; + current: T; +}, void, unknown>; +//# sourceMappingURL=iterable.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/iterable.d.ts.map b/packages/utils/dist/esm/internal/iterable.d.ts.map new file mode 100644 index 000000000..204ce05a8 --- /dev/null +++ b/packages/utils/dist/esm/internal/iterable.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"iterable.d.ts","sourceRoot":"","sources":["../../../src/internal/iterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,wBAAiB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,gCAIrF;AAED,wBAAiB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,gCAOhG;AAED,wBAAiB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;;;kBAMvD"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/keyNames.d.ts b/packages/utils/dist/esm/internal/keyNames.d.ts new file mode 100644 index 000000000..138dc4637 --- /dev/null +++ b/packages/utils/dist/esm/internal/keyNames.d.ts @@ -0,0 +1,7 @@ +import { CompositeKey } from './compositeKey'; +import { DualKey } from './dualKeyMap'; +type Key = string | number | CompositeKey | DualKey; +/** React の key に用いる文字列を生成します。 */ +export declare const keyNames: (keys_0: Key, ...keys: Key[]) => string; +export {}; +//# sourceMappingURL=keyNames.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/keyNames.d.ts.map b/packages/utils/dist/esm/internal/keyNames.d.ts.map new file mode 100644 index 000000000..048ce5bea --- /dev/null +++ b/packages/utils/dist/esm/internal/keyNames.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"keyNames.d.ts","sourceRoot":"","sources":["../../../src/internal/keyNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,KAAK,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AA0BpE,iCAAiC;AAGjC,eAAO,MAAM,QAAQ,mCAAkC,MAKtD,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/logger.d.ts b/packages/utils/dist/esm/internal/logger.d.ts new file mode 100644 index 000000000..99db82c3c --- /dev/null +++ b/packages/utils/dist/esm/internal/logger.d.ts @@ -0,0 +1,34 @@ +import { Logger } from 'pino'; +import { PinoLogLevel } from './parsePinoLogLevel'; +interface LogFn { + (msg: string, ...args: readonly unknown[]): void; + (obj: Error | Record, msg?: string, ...args: readonly unknown[]): void; +} +export declare const createDefaultLogger: (args?: { + logLevel?: PinoLogLevel; + isBrowser?: boolean; +}) => Logger; +/** pino のロガーを取得もしくは変更できます。 */ +export declare const loggerRef: { + /** pino のインスタンスを get もしくは set できます。 */ + value: Logger; + readonly debug: LogFn; + readonly error: LogFn; + readonly fatal: LogFn; + readonly info: LogFn; + infoAsNotice(msg: string): void; + readonly warn: LogFn; + readonly silent: LogFn; + readonly trace: LogFn; + readonly autoDetectObj: { + debug: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + error: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + fatal: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + info: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + warn: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + silent: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + trace: (obj: unknown, msg: string, ...args: readonly unknown[]) => void; + }; +}; +export {}; +//# sourceMappingURL=logger.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/logger.d.ts.map b/packages/utils/dist/esm/internal/logger.d.ts.map new file mode 100644 index 000000000..3268c55ee --- /dev/null +++ b/packages/utils/dist/esm/internal/logger.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/internal/logger.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,UAAU,KAAK;IACX,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;CAC3F;AA2DD,eAAO,MAAM,mBAAmB,UAAW;IAAE,QAAQ,CAAC,EAAE,YAAY,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,2BAO1F,CAAC;AAIF,8BAA8B;AAC9B,eAAO,MAAM,SAAS;IAClB,uCAAuC;;;;;;sBAuBrB,MAAM;;;;;qBA3DlB,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;qBAAjD,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;qBAAjD,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;oBAAjD,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;oBAAjD,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;sBAAjD,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;qBAAjD,OAAO,OAAO,MAAM,WAAW,SAAS,OAAO,EAAE;;CAkF1D,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/multiKeyMap.d.ts b/packages/utils/dist/esm/internal/multiKeyMap.d.ts new file mode 100644 index 000000000..edfd28339 --- /dev/null +++ b/packages/utils/dist/esm/internal/multiKeyMap.d.ts @@ -0,0 +1,24 @@ +/** 複数のkeyを使用できるMap */ +export declare class MultiKeyMap { + #private; + constructor(); + get absolutePath(): readonly TKey[]; + createSubMap(key: readonly TKey[]): MultiKeyMap; + /** 直接の子の要素を全て取得します。 */ + getChildren(): Map>; + get(key: readonly TKey[]): TValue | undefined; + replace(key: readonly TKey[], replacer: (oldValue: TValue | undefined) => TReplaced): TReplaced; + ensure(key: readonly TKey[], onCreate: () => TValue): TValue; + set(key: readonly TKey[], newValue: TValue): void; + delete(key: readonly TKey[]): void; + traverse(): Iterable<{ + absolutePath: readonly TKey[]; + value: TValue; + }>; + get size(): number; + map(mapping: (oldValue: { + value: TValue; + absolutePath: readonly TKey[]; + }) => TValue2 | undefined): MultiKeyMap; +} +//# sourceMappingURL=multiKeyMap.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/multiKeyMap.d.ts.map b/packages/utils/dist/esm/internal/multiKeyMap.d.ts.map new file mode 100644 index 000000000..eea60af14 --- /dev/null +++ b/packages/utils/dist/esm/internal/multiKeyMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"multiKeyMap.d.ts","sourceRoot":"","sources":["../../../src/internal/multiKeyMap.ts"],"names":[],"mappings":"AAIA,sBAAsB;AAEtB,qBAAa,WAAW,CAAC,IAAI,EAAE,MAAM;;;IAOjC,IAAW,YAAY,oBAEtB;IAEM,YAAY,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IAMxC,uBAAuB;IAChB,WAAW;IAUX,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IAWxB,OAAO,CAAC,SAAS,SAAS,MAAM,GAAG,SAAS,EAC/C,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,SAAS,GACtD,SAAS;IAeL,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,MAAM;IAInD,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM;IAI1C,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IAI3B,QAAQ,IAAI,QAAQ,CAAC;QAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAY7E,IAAW,IAAI,IAAI,MAAM,CAExB;IAEM,GAAG,CAAC,OAAO,EACd,OAAO,EAAE,CAAC,QAAQ,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;KACjC,KAAK,OAAO,GAAG,SAAS,GAC1B,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;CAkBhC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/multiValueSet.d.ts b/packages/utils/dist/esm/internal/multiValueSet.d.ts new file mode 100644 index 000000000..200170a4c --- /dev/null +++ b/packages/utils/dist/esm/internal/multiValueSet.d.ts @@ -0,0 +1,11 @@ +/** 複数の値を使用できるSet */ +export declare class MultiValueSet { + #private; + add(key: readonly T[]): void; + has(key: readonly T[]): boolean; + delete(key: readonly T[]): void; + get size(): number; + toIterator(): Iterable; + clone(): MultiValueSet; +} +//# sourceMappingURL=multiValueSet.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/multiValueSet.d.ts.map b/packages/utils/dist/esm/internal/multiValueSet.d.ts.map new file mode 100644 index 000000000..c0e60b7ce --- /dev/null +++ b/packages/utils/dist/esm/internal/multiValueSet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"multiValueSet.d.ts","sourceRoot":"","sources":["../../../src/internal/multiValueSet.ts"],"names":[],"mappings":"AAGA,oBAAoB;AACpB,qBAAa,aAAa,CAAC,CAAC;;IAGjB,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;IAIrB,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO;IAI/B,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;IAI/B,IAAW,IAAI,IAAI,MAAM,CAExB;IAEM,UAAU,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IAIpC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC;CAKnC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/nonEmptyArray.d.ts b/packages/utils/dist/esm/internal/nonEmptyArray.d.ts new file mode 100644 index 000000000..54a44d724 --- /dev/null +++ b/packages/utils/dist/esm/internal/nonEmptyArray.d.ts @@ -0,0 +1,4 @@ +export type NonEmptyArray = [T, ...T[]]; +export type ReadonlyNonEmptyArray = [T, ...T[]]; +export declare const isReadonlyNonEmptyArray: (source: ReadonlyArray) => source is ReadonlyNonEmptyArray; +//# sourceMappingURL=nonEmptyArray.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/nonEmptyArray.d.ts.map b/packages/utils/dist/esm/internal/nonEmptyArray.d.ts.map new file mode 100644 index 000000000..ab163d8ea --- /dev/null +++ b/packages/utils/dist/esm/internal/nonEmptyArray.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"nonEmptyArray.d.ts","sourceRoot":"","sources":["../../../src/internal/nonEmptyArray.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3C,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AACnD,eAAO,MAAM,uBAAuB,GAAI,CAAC,UAC7B,aAAa,CAAC,CAAC,CAAC,KACzB,MAAM,IAAI,qBAAqB,CAAC,CAAC,CAAsB,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/parseEnvListValue.d.ts b/packages/utils/dist/esm/internal/parseEnvListValue.d.ts new file mode 100644 index 000000000..ce57e803b --- /dev/null +++ b/packages/utils/dist/esm/internal/parseEnvListValue.d.ts @@ -0,0 +1,2 @@ +export declare const parseEnvListValue: (source: string | null | undefined) => string[] | null | undefined; +//# sourceMappingURL=parseEnvListValue.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/parseEnvListValue.d.ts.map b/packages/utils/dist/esm/internal/parseEnvListValue.d.ts.map new file mode 100644 index 000000000..d16f05db5 --- /dev/null +++ b/packages/utils/dist/esm/internal/parseEnvListValue.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"parseEnvListValue.d.ts","sourceRoot":"","sources":["../../../src/internal/parseEnvListValue.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,WAClB,MAAM,GAAG,IAAI,GAAG,SAAS,KAClC,MAAM,EAAE,GAAG,IAAI,GAAG,SAKpB,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/parsePinoLogLevel.d.ts b/packages/utils/dist/esm/internal/parsePinoLogLevel.d.ts new file mode 100644 index 000000000..7d3f6aee7 --- /dev/null +++ b/packages/utils/dist/esm/internal/parsePinoLogLevel.d.ts @@ -0,0 +1,4 @@ +import { Result } from '@kizahasi/result'; +export type PinoLogLevel = 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace' | 'silent'; +export declare const parsePinoLogLevel: (source: string, envName: string) => Result; +//# sourceMappingURL=parsePinoLogLevel.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/parsePinoLogLevel.d.ts.map b/packages/utils/dist/esm/internal/parsePinoLogLevel.d.ts.map new file mode 100644 index 000000000..322135606 --- /dev/null +++ b/packages/utils/dist/esm/internal/parsePinoLogLevel.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"parsePinoLogLevel.d.ts","sourceRoot":"","sources":["../../../src/internal/parsePinoLogLevel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE9F,eAAO,MAAM,iBAAiB,WAAY,MAAM,WAAW,MAAM,KAAG,MAAM,CAAC,YAAY,CAiBtF,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/parseStringToBoolean.d.ts b/packages/utils/dist/esm/internal/parseStringToBoolean.d.ts new file mode 100644 index 000000000..ecb8914f4 --- /dev/null +++ b/packages/utils/dist/esm/internal/parseStringToBoolean.d.ts @@ -0,0 +1,9 @@ +import { Result } from '@kizahasi/result'; +export type ParseError = { + ja: string; +}; +export declare const parseStringToBooleanError: ParseError; +type ValueType = Exclude | (T extends string ? boolean : never); +export declare const parseStringToBoolean: (source: T) => Result, ParseError>; +export {}; +//# sourceMappingURL=parseStringToBoolean.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/parseStringToBoolean.d.ts.map b/packages/utils/dist/esm/internal/parseStringToBoolean.d.ts.map new file mode 100644 index 000000000..191db42dc --- /dev/null +++ b/packages/utils/dist/esm/internal/parseStringToBoolean.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"parseStringToBoolean.d.ts","sourceRoot":"","sources":["../../../src/internal/parseStringToBoolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,MAAM,UAAU,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,UAEvC,CAAC;AAmBF,KAAK,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;AAE9E,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,UAC5D,CAAC,KACV,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAKjC,CAAC"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/record.d.ts b/packages/utils/dist/esm/internal/record.d.ts new file mode 100644 index 000000000..f916874dd --- /dev/null +++ b/packages/utils/dist/esm/internal/record.d.ts @@ -0,0 +1,22 @@ +import { DualKey, DualKeyMap } from './dualKeyMap'; +export declare const mapToRecord: (source: Map) => Record; +export declare const chooseRecord: (source: Record, chooser: (element: TSource, key: string) => TResult | undefined) => Record; +export declare const chooseDualKeyRecord: (source: Record | undefined>, chooser: (element: TSource, key: DualKey) => TResult | undefined) => Record>; +export declare const mapRecord: (source: Record, mapping: (element: TSource, key: string) => TResult) => Record; +export declare const mapDualKeyRecord: (source: Record | undefined>, mapping: (element: TSource, key: DualKey) => TResult) => Record>; +export declare function recordToIterator(source: Record): IterableIterator<{ + key: string; + value: T; +}>; +export declare const getExactlyOneKey: (record: Record) => string; +export declare const recordToArray: (source: Record) => { + key: string; + value: T; +}[]; +export declare const recordToMap: (source: Record) => Map; +export declare const dualKeyRecordToDualKeyMap: (source: Record | undefined>) => DualKeyMap; +export declare const recordForEach: (source: Record, action: (value: T, key: string) => void) => void; +export declare const recordForEachAsync: (source: Record, action: (value: T, key: string) => Promise) => Promise; +export declare const isRecordEmpty: (source: Record) => boolean; +export declare const dualKeyRecordForEach: (source: Record | undefined>, action: (value: T, key: DualKey) => void) => void; +//# sourceMappingURL=record.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/record.d.ts.map b/packages/utils/dist/esm/internal/record.d.ts.map new file mode 100644 index 000000000..0dc986382 --- /dev/null +++ b/packages/utils/dist/esm/internal/record.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../src/internal/record.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/semver.d.ts b/packages/utils/dist/esm/internal/semver.d.ts new file mode 100644 index 000000000..e3298d269 --- /dev/null +++ b/packages/utils/dist/esm/internal/semver.d.ts @@ -0,0 +1,32 @@ +import { Operator } from './compare'; +export declare const alpha = "alpha"; +export declare const beta = "beta"; +export declare const rc = "rc"; +type Prerelease = { + type: typeof alpha | typeof beta | typeof rc; + version: number; +}; +export type SemverOption = { + major: number; + minor: number; + patch: number; + prerelease?: Prerelease | null; +}; +export declare class SemVer { + readonly major: number; + readonly minor: number; + readonly patch: number; + readonly prerelease: Readonly | null; + private static requireToBePositiveInteger; + private static requireToBeNonNegativeInteger; + constructor(option: SemverOption); + toString(): string; + private static prereleaseTypeToNumber; + private static compareCore; + /** + npmのsemverとは異なり、例えば 1.0.0 < 1.0.1-alpha.1 はtrueを返す。注意! + */ + static compare(left: SemVer, operator: Operator, right: SemVer): boolean; +} +export {}; +//# sourceMappingURL=semver.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/semver.d.ts.map b/packages/utils/dist/esm/internal/semver.d.ts.map new file mode 100644 index 000000000..a6ee08bc8 --- /dev/null +++ b/packages/utils/dist/esm/internal/semver.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../../../src/internal/semver.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,QAAQ,EAAW,MAAM,WAAW,CAAC;AAG9C,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,EAAE,OAAO,CAAC;AAEvB,KAAK,UAAU,GAAG;IACd,IAAI,EAAE,OAAO,KAAK,GAAG,OAAO,IAAI,GAAG,OAAO,EAAE,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,qBAAa,MAAM;IACf,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAExD,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAazC,OAAO,CAAC,MAAM,CAAC,6BAA6B;gBAYzB,MAAM,EAAE,YAAY;IAchC,QAAQ,IAAI,MAAM;IAOzB,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAgBrC,OAAO,CAAC,MAAM,CAAC,WAAW;IAuB1B;;MAEE;WACY,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAYlF"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/tree.d.ts b/packages/utils/dist/esm/internal/tree.d.ts new file mode 100644 index 000000000..32d6610e5 --- /dev/null +++ b/packages/utils/dist/esm/internal/tree.d.ts @@ -0,0 +1,29 @@ +/** ミュータブルな木構造を表します。nodeをdeleteする機能は現時点では未実装です。*/ +export declare class Tree { + #private; + constructor(rootNodeValue: TValue); + private static createTree; + get absolutePath(): readonly TKey[]; + get value(): TValue; + /** 指定したkeyにあるnodeを基準とした新しいTreeオブジェクトを返します。nodeへの参照は共有されます。absolutePathは引き継がれます。 */ + createSubTree(key: readonly TKey[], initValue: (absolutePath: readonly TKey[]) => TValue): Tree; + createSubTreeIfExists(key: readonly TKey[]): Tree | null; + /** 直接の子の要素を全て取得します。 */ + getChildren(): Map>; + get(key: readonly TKey[]): import("@kizahasi/option").None | import("@kizahasi/option").Some; + ensure(key: readonly TKey[], replacer: (oldValue: TValue) => TReplaced, initValue: (absolutePath: readonly TKey[]) => TValue): TReplaced; + traverse(): Iterable<{ + absolutePath: readonly TKey[]; + value: TValue; + }>; + replaceAllValues(replacer: (oldValue: { + absolutePath: readonly TKey[]; + value: TValue; + }) => TValue): void; + get size(): number; + map(mapping: (oldValue: { + absolutePath: readonly TKey[]; + value: TValue; + }) => TValue2): Tree; +} +//# sourceMappingURL=tree.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/tree.d.ts.map b/packages/utils/dist/esm/internal/tree.d.ts.map new file mode 100644 index 000000000..337954827 --- /dev/null +++ b/packages/utils/dist/esm/internal/tree.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../src/internal/tree.ts"],"names":[],"mappings":"AASA,iDAAiD;AACjD,qBAAa,IAAI,CAAC,IAAI,EAAE,MAAM;;gBAGP,aAAa,EAAE,MAAM;IAQxC,OAAO,CAAC,MAAM,CAAC,UAAU;IAoCzB,IAAW,YAAY,oBAEtB;IAED,IAAW,KAAK,WAEf;IAED,mFAAmF;IAC5E,aAAa,CAChB,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,SAAS,EAAE,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,KAAK,MAAM;IAMjD,qBAAqB,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IASjD,uBAAuB;IAChB,WAAW;IAQX,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;IAQxB,MAAM,CAAC,SAAS,SAAS,MAAM,EAClC,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,EACzC,SAAS,EAAE,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,KAAK,MAAM,GACrD,SAAS;IAmBL,QAAQ,IAAI,QAAQ,CAAC;QAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAOtE,gBAAgB,CACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM;IAOpF,IAAW,IAAI,IAAI,MAAM,CAExB;IAiBM,GAAG,CAAC,OAAO,EACd,OAAO,EAAE,CAAC,QAAQ,EAAE;QAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,GACjF,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;CAMzB"} \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/types.d.ts b/packages/utils/dist/esm/internal/types.d.ts new file mode 100644 index 000000000..d39700e57 --- /dev/null +++ b/packages/utils/dist/esm/internal/types.d.ts @@ -0,0 +1,21 @@ +export declare const left = "left"; +export declare const right = "right"; +export declare const both = "both"; +type Left = { + type: typeof left; + left: TLeft; + right?: undefined; +}; +type Right = { + type: typeof right; + left?: undefined; + right: TRight; +}; +type Both = { + type: typeof both; + left: TLeft; + right: TRight; +}; +export type GroupJoinResult = Left | Right | Both; +export {}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/utils/dist/esm/internal/types.d.ts.map b/packages/utils/dist/esm/internal/types.d.ts.map new file mode 100644 index 000000000..59ef922ef --- /dev/null +++ b/packages/utils/dist/esm/internal/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/internal/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,IAAI,SAAS,CAAC;AAE3B,KAAK,IAAI,CAAC,KAAK,IAAI;IACf,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,KAAK,KAAK,CAAC,MAAM,IAAI;IACjB,IAAI,EAAE,OAAO,KAAK,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI;IACvB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/index.d.ts b/packages/web-server-utils/dist/cjs/index.d.ts new file mode 100644 index 000000000..b33b1c9cc --- /dev/null +++ b/packages/web-server-utils/dist/cjs/index.d.ts @@ -0,0 +1,6 @@ +export { PrivateChannelSet } from './internal/privateChannelSet'; +export { PrivateChannelSets } from './internal/privateChannelSets'; +export { RoomChannels } from './internal/roomChannels'; +export { AllRoomMessages, FilteredRoomMessages, MessagesChange, RoomMessagesClient, clear, event, query, } from './internal/roomMessagesClient'; +export { CustomMessage, Diff, Message, custom, pieceLog, privateMessage, publicChannel, publicMessage, reset, soundEffect, } from './internal/roomMessageTypes'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/index.d.ts.map b/packages/web-server-utils/dist/cjs/index.d.ts.map new file mode 100644 index 000000000..4bd85d5c3 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACH,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,KAAK,EACL,KAAK,GACR,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACH,aAAa,EACb,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,aAAa,EACb,aAAa,EACb,KAAK,EACL,WAAW,GACd,MAAM,6BAA6B,CAAC"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/index.js b/packages/web-server-utils/dist/cjs/index.js new file mode 100644 index 000000000..a2903ba98 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/index.js @@ -0,0 +1,839 @@ +'use strict'; + +var utils = require('@flocon-trpg/utils'); +var immer = require('immer'); +var rxjs = require('rxjs'); + +const visibleToToString = (visibleTo) => { + return [...visibleTo] + .sort() + .reduce((seed, elem) => (seed === '' ? elem : `${seed};${elem}`), ''); +}; + +class PrivateChannelSet { + #source; + constructor(userUid) { + if (typeof userUid === 'string') { + this.#source = new Set(userUid.split(';').filter(x => x !== '')); + return; + } + if (userUid instanceof Array) { + this.#source = new Set(userUid); + return; + } + this.#source = userUid; + } + toString() { + return visibleToToString(this.#source); + } + // participantsのkeyはUserUid + toChannelNameBase(participants, skipMe) { + const result = []; + this.#source.forEach(userUid => { + if (userUid === skipMe?.userUid) { + return; + } + const participant = participants.get(userUid); + if (participant === undefined) { + result.push(userUid); + return; + } + result.push(participant.name ?? `不明なユーザー(${userUid})`); + }); + result.sort(); + return result; + } + toStringArray() { + return [...this.#source].sort(); + } + toStringSet() { + return this.#source; + } +} + +class PrivateChannelSets { + #core = new Map(); + constructor(source) { + if (source != null) { + source + .split(',') + .filter(x => x !== '') + .forEach(set => { + const newValue = new PrivateChannelSet(set); + this.add(newValue); + }); + } + } + add(visibleTo) { + const castedVisibleTo = visibleTo; + if (Array.isArray(castedVisibleTo)) { + const set = new Set(castedVisibleTo); + this.#core.set(visibleToToString(set), new PrivateChannelSet(set)); + return; + } + this.#core.set(visibleTo.toString(), castedVisibleTo); + } + clone() { + const result = new PrivateChannelSets(); + result.#core = new Map(this.#core); + return result; + } + toArray() { + return [...this.#core.entries()] + .sort(([a], [b]) => a.localeCompare(b)) + .map(([, elem]) => elem); + } + toString() { + return [...this.#core.entries()] + .sort(([a], [b]) => a.localeCompare(b)) + .reduce((seed, [, elem], i) => (i === 0 ? elem.toString() : `${seed},${elem.toString()}`), ''); + } +} + +class RoomChannels { + #publicChannels = new Map(); + #privateChannels = new PrivateChannelSets(); + get publicChannels() { + return this.#publicChannels; + } + get privateChannels() { + return this.#privateChannels; + } + onEvent(action) { + switch (action.__typename) { + case 'RoomPrivateMessage': { + const privateChannels = this.#privateChannels.clone(); + privateChannels.add(action.visibleTo); + this.#privateChannels = privateChannels; + return true; + } + case 'RoomPublicChannel': + case 'RoomPublicChannelUpdate': { + const publicChannels = new Map(this.#publicChannels); + publicChannels.set(action.key, { name: action.name ?? null }); + this.#publicChannels = publicChannels; + return true; + } + case 'RoomPublicMessage': + case 'RoomPrivateMessageUpdate': + case 'RoomPublicMessageUpdate': + case 'PieceLog': + case 'RoomSoundEffect': + case 'RoomMessagesReset': + case undefined: { + return false; + } + } + } + onQuery(roomMessages) { + const events = []; + // CONSIDER: __typenameをnon-undefinedにしてgraphql.tsを生成し、Spread構文を不要にするほうが綺麗なコードになりそう + roomMessages.publicMessages.forEach(msg => { + events.push({ ...msg, __typename: 'RoomPublicMessage' }); + }); + roomMessages.publicChannels.forEach(ch => { + events.push({ ...ch, __typename: 'RoomPublicChannel' }); + }); + roomMessages.privateMessages.forEach(msg => { + events.push({ ...msg, __typename: 'RoomPrivateMessage' }); + }); + roomMessages.pieceLogs.forEach(msg => { + events.push({ ...msg, __typename: 'PieceLog' }); + }); + roomMessages.soundEffects.forEach(se => { + events.push({ ...se, __typename: 'RoomSoundEffect' }); + }); + events.forEach(event => this.onEvent(event)); + } +} + +// 自動的に昇順にソートされる配列。 +class SortedArray { + createSortKey; + #core; + constructor(createSortKey, init) { + this.createSortKey = createSortKey; + if (init == null) { + this.#core = []; + return; + } + this.#core = init.map(value => ({ value, sortKey: createSortKey(value) })); + this.#core.sort((x, y) => x.sortKey - y.sortKey); + } + clone() { + const result = new SortedArray(this.createSortKey); + result.#core = [...this.#core]; + return result; + } + // 挿入先が末尾に近いほど高速で、先頭に近いほど低速。 + // CONSIDER: バイナリサーチなどで高速化できる。 + add(newValue) { + const sortKeyOfNewValue = this.createSortKey(newValue); + for (let i = this.#core.length - 1; i >= 0; i--) { + const element = this.#core[i]; + if (element == null) { + throw new Error('This should not happen'); + } + if (element.sortKey <= sortKeyOfNewValue) { + const index = i + 1; + this.#core.splice(index, 0, { value: newValue, sortKey: sortKeyOfNewValue }); + return; + } + } + const index = 0; + this.#core.splice(index, 0, { value: newValue, sortKey: sortKeyOfNewValue }); + } + // 該当する要素の位置が末尾に近いほど高速で、先頭に近いほど低速。ただし見つからなかった場合は最も遅い。 + // CONSIDER: バイナリサーチなどで高速化できる。 + #findIndexFromEnd(predicate) { + for (let i = this.#core.length - 1; i >= 0; i--) { + const element = this.#core[i]; + if (element == null) { + throw new Error('This should not happen'); + } + if (predicate(element.value)) { + return i; + } + } + return -1; + } + #removeLast(predicate) { + const index = this.#findIndexFromEnd(predicate); + if (index < 0) { + return undefined; + } + const found = this.#core[index]; + if (found == null) { + throw new Error('This should not happen'); + } + this.#core.splice(index, 1); + return found.value; + } + updateLast(update) { + let newValue = undefined; + const found = this.#removeLast(elem => { + const result = update(elem); + if (result === undefined) { + return false; + } + newValue = result; + return true; + }); + if (found === undefined || newValue === undefined) { + return undefined; + } + this.add(newValue); + return { oldValue: found, newValue }; + } + toArray(mapFilter) { + return this.#core.flatMap(elem => { + const newValue = mapFilter(elem.value); + if (newValue === undefined) { + return []; + } + return [newValue]; + }); + } + clear() { + this.#core = []; + } + createFiltered(filter) { + return FilteredSortedArray.ofSortedKey(this, filter); + } +} +class FilteredSortedArray { + filter; + base; + constructor(filter, base) { + this.filter = filter; + this.base = base; + } + clone() { + const result = new FilteredSortedArray(this.filter, this.base.clone()); + return result; + } + static ofArray(base, filter, createSortKey) { + const b = new SortedArray(x => createSortKey(x.value), base.map(x => ({ value: x, exists: filter(x) }))); + return new FilteredSortedArray(filter, b); + } + static ofSortedKey(base, filter) { + const b = new SortedArray(x => base.createSortKey(x.value), base.toArray(x => ({ value: x, exists: filter(x) }))); + return new FilteredSortedArray(filter, b); + } + toArray(mapFilter) { + return this.base.toArray(elem => { + if (!elem.exists) { + return undefined; + } + return mapFilter(elem.value); + }); + } + clear() { + this.base.clear(); + } + add(newValue) { + const exists = this.filter(newValue); + this.base.add({ value: newValue, exists }); + return exists; + } + updateLast(update) { + const found = this.base.updateLast(elem => { + const newValue = update(elem.value); + if (newValue === undefined) { + return undefined; + } + return { + value: newValue, + exists: this.filter(newValue), + }; + }); + if (found == null) { + return undefined; + } + return { + oldValue: found.oldValue.exists ? found.oldValue.value : undefined, + newValue: found.newValue.exists ? found.newValue.value : undefined, + }; + } +} + +const privateMessage = 'privateMessage'; +const publicMessage = 'publicMessage'; +const pieceLog = 'pieceLog'; +const publicChannel = 'publicChannel'; +const soundEffect = 'soundEffect'; +const custom = 'custom'; +const reset = 'reset'; + +class MessageSet { + #customMessages = []; + #publicMessages = new Map(); + #privateMessages = new Map(); + #pieceLogs = new Map(); + #soundEffects = new Map(); + add(message) { + switch (message.type) { + case custom: + this.#customMessages.push(message); + break; + case pieceLog: + this.#pieceLogs.set(message.value.messageId, message.value); + break; + case privateMessage: + this.#privateMessages.set(message.value.messageId, message.value); + break; + case publicMessage: + this.#publicMessages.set(message.value.messageId, message.value); + break; + case soundEffect: + this.#soundEffects.set(message.value.messageId, message.value); + break; + } + } + // clear() { + // this.#customMessages.clear(); + // this.#pieceLogs.clear(); + // this.#privateMessages.clear(); + // this.#publicMessages.clear(); + // this.#soundEffects.clear(); + // } + getPrivateMessage(messageId) { + return this.#privateMessages.get(messageId); + } + getPublicMessage(messageId) { + return this.#publicMessages.get(messageId); + } + get(message) { + switch (message.type) { + case pieceLog: { + const value = this.#pieceLogs.get(message.value.messageId); + if (value == null) { + return undefined; + } + return { + type: pieceLog, + value, + }; + } + case privateMessage: { + const value = this.getPrivateMessage(message.value.messageId); + if (value == null) { + return undefined; + } + return { + type: privateMessage, + value, + }; + } + case publicMessage: { + const value = this.getPublicMessage(message.value.messageId); + if (value == null) { + return undefined; + } + return { + type: publicMessage, + value, + }; + } + case soundEffect: { + const value = this.#soundEffects.get(message.value.messageId); + if (value == null) { + return undefined; + } + return { + type: soundEffect, + value, + }; + } + } + } + values() { + function* main(self) { + for (const value of self.#customMessages.values()) { + yield value; + } + for (const value of self.#pieceLogs.values()) { + yield { + type: pieceLog, + value, + }; + } + for (const value of self.#privateMessages.values()) { + yield { + type: privateMessage, + value, + }; + } + for (const value of self.#publicMessages.values()) { + yield { + type: publicMessage, + value, + }; + } + for (const value of self.#soundEffects.values()) { + yield { + type: soundEffect, + value, + }; + } + } + return main(this); + } +} + +const createRoomMessage = (source) => { + switch (source.__typename) { + case 'RoomPrivateMessage': + return { + type: privateMessage, + value: source, + }; + case 'RoomPublicMessage': + return { + type: publicMessage, + value: source, + }; + case 'PieceLog': + return { + type: pieceLog, + value: source, + }; + case 'RoomSoundEffect': + return { + type: soundEffect, + value: source, + }; + case undefined: + utils.loggerRef.warn({ object: source }, 'createRoomMessage 関数に渡されたオブジェクトの __typename が undefined だったため、処理はスキップされました。RoomPrivateMessageFragment | RoomPublicMessageFragment | PieceLogFragment | RoomSoundEffectFragment では __typename がないとメッセージを処理できません。GraphQL クライアントの設定を確認し、__typename を常にセットするようにしてください。'); + return undefined; + } +}; +const compareUpdatedAt = (left, operator, right) => { + if (left == null) { + return right != null; + } + if (right == null) { + return false; + } + return left < right; +}; +const noChange = 'noChange'; +// 引数のmessagesには変更は加えられない +const reduceEvent = ({ messages: messagesSource, event, }) => { + const messages = messagesSource.clone(); + switch (event.__typename) { + case custom: { + const added = messages.add(event.value); + if (added === false) { + return { messages, diff: null }; + } + return { + messages, + diff: { + prevValue: undefined, + nextValue: event.value, + }, + }; + } + case 'RoomPrivateMessage': + case 'RoomPublicMessage': + case 'PieceLog': + case 'RoomSoundEffect': { + const newValue = createRoomMessage(event); + if (newValue == null) { + return noChange; + } + const added = messages.add(newValue); + if (added === false) { + return { messages, diff: null }; + } + return { + messages, + diff: { + prevValue: undefined, + nextValue: newValue, + }, + }; + } + case 'RoomPublicChannel': + case 'RoomPublicChannelUpdate': + return noChange; + case 'RoomPrivateMessageUpdate': + case 'RoomPublicMessageUpdate': { + const updateResult = messages.updateLast(msg => { + if (msg.type === custom || msg.type === pieceLog || msg.type === soundEffect) { + return undefined; + } + if (msg.value.messageId !== event.messageId) { + return undefined; + } + if (!compareUpdatedAt(msg.value.updatedAt, '<', event.updatedAt)) { + return undefined; + } + return immer.produce(msg, msg => { + msg.value.altTextToSecret = event.altTextToSecret; + msg.value.commandResult = event.commandResult; + msg.value.isSecret = event.isSecret; + msg.value.initText = event.initText; + msg.value.initTextSource = event.initTextSource; + msg.value.updatedText = event.updatedText; + msg.value.updatedAt = event.updatedAt; + }); + }); + if (updateResult == null) { + return noChange; + } + return { + messages, + diff: { + // CONSIDER: updateResult.oldValue === undefined && updateResult.newValue === undefined のケースがあるのでは?その場合は diff は null を返すべき + prevValue: updateResult.oldValue, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + nextValue: updateResult.newValue, + }, + }; + } + case 'RoomMessagesReset': { + const prevValue = messages.toArray(x => x); + messages.clear(); + return { + messages, + diff: { + prevValue: { type: reset, value: prevValue }, + nextValue: { type: reset, value: [] }, + }, + }; + } + } +}; +const event = 'event'; +const query = 'query'; +const clear = 'clear'; +const createSortKey = (message) => message.type === custom ? message.createdAt : message.value.createdAt; +class RoomMessagesClient { + #messagesState = { + isQueryFetched: false, + eventsQueue: [], + }; + #messagesChanged = new rxjs.Subject(); + #messages = new SortedArray(createSortKey); + messages; + constructor() { + this.messages = { + getCurrent: () => this.#messages.toArray(x => x), + changed: this.#messagesChanged.pipe(rxjs.map(changeEvent => { + switch (changeEvent.type) { + case event: { + return { + type: event, + current: changeEvent.current.toArray(x => x), + diff: changeEvent.diff, + }; + } + case query: { + return { + type: query, + current: changeEvent.current.toArray(x => x), + }; + } + default: + return { + type: clear, + current: changeEvent.current.toArray(x => x), + }; + } + })), + filter: filter => { + return { + getCurrent: () => this.#messages.toArray(x => (filter(x) ? x : undefined)), + changed: new rxjs.Observable(observer => { + let messages = this.#messages.createFiltered(filter); + return this.#messagesChanged.subscribe(changeEvent => { + if (changeEvent.type !== event) { + messages = changeEvent.current.createFiltered(filter); + observer.next({ + type: changeEvent.type, + current: messages.toArray(x => x), + }); + return; + } + if (!this.#messagesState.isQueryFetched && + changeEvent.event.__typename !== custom) { + observer.next({ + type: changeEvent.type, + current: changeEvent.current.toArray(x => x).filter(filter), + diff: null, + }); + return; + } + const reduced = reduceEvent({ + messages, + event: changeEvent.event, + }); + if (reduced === noChange) { + observer.next({ + type: event, + current: messages.toArray(x => x), + diff: null, + }); + return; + } + messages = reduced.messages; + observer.next({ + type: event, + current: reduced.messages.toArray(x => x), + diff: reduced.diff, + }); + }); + }), + }; + }, + }; + } + // 'onEvent' と比べて、重複したメッセージは取り除かれるが、そのぶん処理は重め。 + static #reduceOnQuery({ state, messages, events, }) { + const messagesSet = new MessageSet(); + state.forEach(msg => { + messagesSet.add(msg); + }); + const setMessage = (action) => { + const newValue = createRoomMessage(action); + if (newValue == null) { + return; + } + const exists = messagesSet.get(newValue); + if (exists === undefined) { + messagesSet.add(newValue); + return; + } + let existsUpdatedAt; + switch (exists.type) { + case publicMessage: + case privateMessage: + existsUpdatedAt = exists.value.updatedAt; + break; + default: + existsUpdatedAt = null; + break; + } + let actionUpdatedAt; + switch (action.__typename) { + case 'RoomPublicMessage': + case 'RoomPrivateMessage': + actionUpdatedAt = action.updatedAt; + break; + default: + actionUpdatedAt = null; + break; + } + if (compareUpdatedAt(existsUpdatedAt, '<', actionUpdatedAt)) { + messagesSet.add(newValue); + } + }; + messages.pieceLogs.forEach(setMessage); + messages.privateMessages.forEach(setMessage); + messages.publicMessages.forEach(setMessage); + messages.soundEffects.forEach(setMessage); + for (const event of events) { + switch (event.__typename) { + case 'RoomPrivateMessage': + setMessage({ ...event, __typename: 'RoomPrivateMessage' }); + break; + case 'RoomPublicMessage': + setMessage({ ...event, __typename: 'RoomPublicMessage' }); + break; + case 'PieceLog': + setMessage({ ...event, __typename: 'PieceLog' }); + break; + case 'RoomSoundEffect': + setMessage({ ...event, __typename: 'RoomSoundEffect' }); + break; + case 'RoomPublicChannel': + break; + case 'RoomPrivateMessageUpdate': { + const found = messagesSet.getPrivateMessage(event.messageId); + if (found == null) { + break; + } + if (compareUpdatedAt(found.updatedAt, '<', event.updatedAt)) { + const newValue = immer.produce(found, found => { + found.altTextToSecret = event.altTextToSecret; + found.commandResult = event.commandResult; + found.initText = event.initText; + found.initTextSource = event.initTextSource; + found.isSecret = event.isSecret; + found.updatedAt = event.updatedAt; + found.updatedText = event.updatedText; + }); + messagesSet.add({ type: privateMessage, value: newValue }); + } + break; + } + case 'RoomPublicMessageUpdate': { + const found = messagesSet.getPublicMessage(event.messageId); + if (found == null) { + break; + } + if (compareUpdatedAt(found.updatedAt, '<', event.updatedAt)) { + const newValue = immer.produce(found, found => { + found.altTextToSecret = event.altTextToSecret; + found.commandResult = event.commandResult; + found.initText = event.initText; + found.initTextSource = event.initTextSource; + found.isSecret = event.isSecret; + found.updatedAt = event.updatedAt; + found.updatedText = event.updatedText; + }); + messagesSet.add({ type: publicMessage, value: newValue }); + } + break; + } + case 'RoomPublicChannelUpdate': + case 'RoomMessagesReset': { + utils.loggerRef.warn(`${event.__typename} is deprecated.`); + break; + } + case undefined: + utils.loggerRef.warn({ object: event }, '#reduceOnQuery メソッドの引数で __typename が undefined のオブジェクトが見つかったため、このオブジェクトの処理はスキップされました。RoomMessageEventFragment では __typename がないとメッセージを処理できません。GraphQL クライアントの設定を確認し、__typename を常にセットするようにしてください。'); + break; + } + } + return [...messagesSet.values()].sort((x, y) => createSortKey(x) - createSortKey(y)); + } + onQuery(messages) { + const newMessages = RoomMessagesClient.#reduceOnQuery({ + state: this.#messages.toArray(x => x), + messages, + events: this.#messagesState.isQueryFetched ? [] : this.#messagesState.eventsQueue, + }); + this.#messages = new SortedArray(createSortKey, newMessages); + this.#messagesState = { + isQueryFetched: true, + }; + this.#messagesChanged.next({ + type: query, + isQueryFetched: true, + current: new SortedArray(createSortKey, newMessages), + }); + } + // `#reduceOnQuery` と比べて、重複したメッセージは取り除かれないが、そのぶん処理は軽め。 + onEvent(event) { + const messages = this.#messages; + if (!this.#messagesState.isQueryFetched) { + this.#messagesState = { + ...this.#messagesState, + eventsQueue: [...this.#messagesState.eventsQueue, event], + }; + this.#messagesChanged.next({ + type: 'event', + isQueryFetched: false, + event, + current: messages.clone(), + diff: null, + }); + return; + } + const reduced = reduceEvent({ + messages: this.#messages, + event, + }); + if (reduced === noChange) { + return; + } + this.#messages = reduced.messages; + this.#messagesState = { + isQueryFetched: true, + }; + this.#messagesChanged.next({ + type: 'event', + isQueryFetched: true, + current: reduced.messages, + diff: reduced.diff, + event, + }); + } + addCustomMessage(message) { + const customMessage = { ...message, type: custom }; + const messagesClone = this.#messages.clone(); + messagesClone.add(customMessage); + this.#messages = messagesClone; + this.#messagesChanged.next({ + type: event, + isQueryFetched: false, + event: { __typename: custom, value: customMessage }, + current: this.#messages.clone(), + diff: { + prevValue: undefined, + nextValue: customMessage, + }, + }); + } + clear() { + this.#messagesState = { + isQueryFetched: false, + eventsQueue: [], + }; + this.#messages = new SortedArray(createSortKey); + this.#messagesChanged.next({ + type: clear, + isQueryFetched: false, + current: this.#messages.clone(), + }); + } +} + +exports.PrivateChannelSet = PrivateChannelSet; +exports.PrivateChannelSets = PrivateChannelSets; +exports.RoomChannels = RoomChannels; +exports.RoomMessagesClient = RoomMessagesClient; +exports.clear = clear; +exports.custom = custom; +exports.event = event; +exports.pieceLog = pieceLog; +exports.privateMessage = privateMessage; +exports.publicChannel = publicChannel; +exports.publicMessage = publicMessage; +exports.query = query; +exports.reset = reset; +exports.soundEffect = soundEffect; +//# sourceMappingURL=index.js.map diff --git a/packages/web-server-utils/dist/cjs/index.js.map b/packages/web-server-utils/dist/cjs/index.js.map new file mode 100644 index 000000000..6d5b95bd2 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/utils.ts","../../../src/internal/privateChannelSet.ts","../../../src/internal/privateChannelSets.ts","../../../src/internal/roomChannels.ts","../../../src/internal/filteredArray.ts","../../../src/internal/roomMessageTypes.ts","../../../src/internal/messageSet.ts","../../../src/internal/roomMessagesClient.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["loggerRef","produce","Subject","map","Observable"],"mappings":"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"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/filteredArray.d.ts b/packages/web-server-utils/dist/cjs/internal/filteredArray.d.ts new file mode 100644 index 000000000..46a77915a --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/filteredArray.d.ts @@ -0,0 +1,30 @@ +export declare class SortedArray { + #private; + readonly createSortKey: (value: T) => number; + constructor(createSortKey: (value: T) => number, init?: readonly T[]); + clone(): SortedArray; + add(newValue: T): void; + updateLast(update: (oldValue: T) => T | undefined): { + oldValue: T; + newValue: T; + } | undefined; + toArray(mapFilter: (value: T) => T2 | undefined): T2[]; + clear(): void; + createFiltered(filter: (value: T) => boolean): FilteredSortedArray; +} +export declare class FilteredSortedArray { + private readonly filter; + private readonly base; + private constructor(); + clone(): FilteredSortedArray; + static ofArray(base: readonly T[], filter: (value: T) => boolean, createSortKey: (value: T) => number): FilteredSortedArray; + static ofSortedKey(base: SortedArray, filter: (value: T) => boolean): FilteredSortedArray; + toArray(mapFilter: (value: T) => T2 | undefined): T2[]; + clear(): void; + add(newValue: T): boolean; + updateLast(update: (oldValue: T) => T | undefined): { + oldValue: T | undefined; + newValue: T | undefined; + } | undefined; +} +//# sourceMappingURL=filteredArray.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/filteredArray.d.ts.map b/packages/web-server-utils/dist/cjs/internal/filteredArray.d.ts.map new file mode 100644 index 000000000..f96b34cb8 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/filteredArray.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"filteredArray.d.ts","sourceRoot":"","sources":["../../../src/internal/filteredArray.ts"],"names":[],"mappings":"AACA,qBAAa,WAAW,CAAC,CAAC;;IAIlB,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM;gBAAnC,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,EAC5C,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE;IAUhB,KAAK;IAQL,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI;IA+CtB,UAAU,CACb,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,GACvC;QAAE,QAAQ,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,CAAC,CAAA;KAAE,GAAG,SAAS;IAiBpC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,SAAS,GAAG,EAAE,EAAE;IAU1D,KAAK,IAAI,IAAI;IAIb,cAAc,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO;CAGtD;AAED,qBAAa,mBAAmB,CAAC,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFzB,OAAO;IAKA,KAAK;WAKE,OAAO,CAAC,CAAC,EACnB,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,EAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM;WASzB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO;IAQzE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,SAAS,GAAG,EAAE,EAAE;IAS1D,KAAK,IAAI,IAAI;IAIb,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,OAAO;IAMzB,UAAU,CACb,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,GACvC;QAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;QAAC,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS;CAmBtE"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/messageSet.d.ts b/packages/web-server-utils/dist/cjs/internal/messageSet.d.ts new file mode 100644 index 000000000..aa514dc71 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/messageSet.d.ts @@ -0,0 +1,11 @@ +import { RoomPrivateMessageFragment, RoomPublicMessageFragment } from '@flocon-trpg/typed-document-node'; +import { Message, RoomMessage } from './roomMessageTypes'; +export declare class MessageSet { + #private; + add(message: Message): void; + getPrivateMessage(messageId: string): RoomPrivateMessageFragment | undefined; + getPublicMessage(messageId: string): RoomPublicMessageFragment | undefined; + get(message: RoomMessage): RoomMessage | undefined; + values(): Generator, any, any>; +} +//# sourceMappingURL=messageSet.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/messageSet.d.ts.map b/packages/web-server-utils/dist/cjs/internal/messageSet.d.ts.map new file mode 100644 index 000000000..7225d00c0 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/messageSet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"messageSet.d.ts","sourceRoot":"","sources":["../../../src/internal/messageSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,0BAA0B,EAC1B,yBAAyB,EAE5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEH,OAAO,EACP,WAAW,EAMd,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,UAAU,CAAC,cAAc;;IAOlC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC;IA4BpC,iBAAiB,CAAC,SAAS,EAAE,MAAM;IAInC,gBAAgB,CAAC,SAAS,EAAE,MAAM;IAIlC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;IA6ClD,MAAM;CAgCT"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/privateChannelSet.d.ts b/packages/web-server-utils/dist/cjs/internal/privateChannelSet.d.ts new file mode 100644 index 000000000..1b495dd6d --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/privateChannelSet.d.ts @@ -0,0 +1,14 @@ +import { State, participantTemplate } from '@flocon-trpg/core'; +type ParticipantState = State; +export declare class PrivateChannelSet { + #private; + constructor(userUid: string | ReadonlySet | ReadonlyArray); + toString(): string; + toChannelNameBase(participants: ReadonlyMap, skipMe?: { + userUid: string; + }): string[]; + toStringArray(): string[]; + toStringSet(): ReadonlySet; +} +export {}; +//# sourceMappingURL=privateChannelSet.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/privateChannelSet.d.ts.map b/packages/web-server-utils/dist/cjs/internal/privateChannelSet.d.ts.map new file mode 100644 index 000000000..ed87b6246 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/privateChannelSet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"privateChannelSet.d.ts","sourceRoot":"","sources":["../../../src/internal/privateChannelSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG/D,KAAK,gBAAgB,GAAG,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE1D,qBAAa,iBAAiB;;gBAGP,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;IAYzE,QAAQ,IAAI,MAAM;IAKlB,iBAAiB,CACpB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACnD,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAC7B,MAAM,EAAE;IAiBJ,aAAa,IAAI,MAAM,EAAE;IAIzB,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC;CAG5C"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/privateChannelSets.d.ts b/packages/web-server-utils/dist/cjs/internal/privateChannelSets.d.ts new file mode 100644 index 000000000..773573aa2 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/privateChannelSets.d.ts @@ -0,0 +1,10 @@ +import { PrivateChannelSet } from './privateChannelSet'; +export declare class PrivateChannelSets { + #private; + constructor(source?: string); + add(visibleTo: ReadonlyArray | PrivateChannelSet): void; + clone(): PrivateChannelSets; + toArray(): PrivateChannelSet[]; + toString(): string; +} +//# sourceMappingURL=privateChannelSets.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/privateChannelSets.d.ts.map b/packages/web-server-utils/dist/cjs/internal/privateChannelSets.d.ts.map new file mode 100644 index 000000000..4e5e1e1d6 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/privateChannelSets.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"privateChannelSets.d.ts","sourceRoot":"","sources":["../../../src/internal/privateChannelSets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,kBAAkB;;gBAGR,MAAM,CAAC,EAAE,MAAM;IAY3B,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB,GAAG,IAAI;IAU/D,KAAK,IAAI,kBAAkB;IAM3B,OAAO,IAAI,iBAAiB,EAAE;IAM9B,QAAQ,IAAI,MAAM;CAQ5B"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/roomChannels.d.ts b/packages/web-server-utils/dist/cjs/internal/roomChannels.d.ts new file mode 100644 index 000000000..17b9a130e --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/roomChannels.d.ts @@ -0,0 +1,16 @@ +import { RoomMessageEventFragment, RoomMessages } from '@flocon-trpg/typed-document-node'; +import { PrivateChannelSet } from './privateChannelSet'; +type PublicChannel = { + name: string | null; +}; +export declare class RoomChannels { + #private; + get publicChannels(): ReadonlyMap; + get privateChannels(): { + toArray(): PrivateChannelSet[]; + }; + onEvent(action: RoomMessageEventFragment): boolean; + onQuery(roomMessages: RoomMessages): void; +} +export {}; +//# sourceMappingURL=roomChannels.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/roomChannels.d.ts.map b/packages/web-server-utils/dist/cjs/internal/roomChannels.d.ts.map new file mode 100644 index 000000000..f605665a4 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/roomChannels.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"roomChannels.d.ts","sourceRoot":"","sources":["../../../src/internal/roomChannels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,KAAK,aAAa,GAAG;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,qBAAa,YAAY;;IAIrB,IAAW,cAAc,IAAI,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAE9D;IAED,IAAW,eAAe,IAAI;QAAE,OAAO,IAAI,iBAAiB,EAAE,CAAA;KAAE,CAE/D;IAEM,OAAO,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO;IA2BlD,OAAO,CAAC,YAAY,EAAE,YAAY;CAsB5C"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/roomMessageTypes.d.ts b/packages/web-server-utils/dist/cjs/internal/roomMessageTypes.d.ts new file mode 100644 index 000000000..940015fe5 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/roomMessageTypes.d.ts @@ -0,0 +1,57 @@ +import { PieceLogFragment, RoomPrivateMessageFragment, RoomPublicChannelFragment, RoomPublicMessageFragment, RoomSoundEffectFragment } from '@flocon-trpg/typed-document-node'; +export declare const privateMessage = "privateMessage"; +export declare const publicMessage = "publicMessage"; +export declare const pieceLog = "pieceLog"; +export declare const publicChannel = "publicChannel"; +export declare const soundEffect = "soundEffect"; +type PrivateMessageType = { + type: typeof privateMessage; + value: RoomPrivateMessageFragment; +}; +type PublicMessageType = { + type: typeof publicMessage; + value: RoomPublicMessageFragment; +}; +type PieceLogType = { + type: typeof pieceLog; + value: PieceLogFragment; +}; +type SoundEffectType = { + type: typeof soundEffect; + value: RoomSoundEffectFragment; +}; +export type RoomMessage = PrivateMessageType | PublicMessageType | PieceLogType | SoundEffectType; +export type RoomMessageEvent = { + type: typeof publicChannel; + value: RoomPublicChannelFragment; +} | RoomMessage; +export declare const custom = "custom"; +export type CustomMessage = { + type: typeof custom; + value: T; + createdAt: number; +}; +export type Message = CustomMessage | RoomMessage; +export declare const reset = "reset"; +type DiffBase = { + prevValue: T; + nextValue: T; +} | { + prevValue: T; + nextValue: undefined; +} | { + prevValue: undefined; + nextValue: T; +}; +export type Diff = DiffBase | DiffBase | DiffBase | DiffBase | DiffBase> | { + prevValue: { + type: typeof reset; + value: readonly Message[]; + }; + nextValue: { + type: typeof reset; + value: readonly Message[]; + }; +}; +export {}; +//# sourceMappingURL=roomMessageTypes.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/roomMessageTypes.d.ts.map b/packages/web-server-utils/dist/cjs/internal/roomMessageTypes.d.ts.map new file mode 100644 index 000000000..8d48580a1 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/roomMessageTypes.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"roomMessageTypes.d.ts","sourceRoot":"","sources":["../../../src/internal/roomMessageTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EAC1B,MAAM,kCAAkC,CAAC;AAE1C,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,KAAK,kBAAkB,GAAG;IACtB,IAAI,EAAE,OAAO,cAAc,CAAC;IAC5B,KAAK,EAAE,0BAA0B,CAAC;CACrC,CAAC;AACF,KAAK,iBAAiB,GAAG;IACrB,IAAI,EAAE,OAAO,aAAa,CAAC;IAC3B,KAAK,EAAE,yBAAyB,CAAC;CACpC,CAAC;AACF,KAAK,YAAY,GAAG;IAChB,IAAI,EAAE,OAAO,QAAQ,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,KAAK,eAAe,GAAG;IACnB,IAAI,EAAE,OAAO,WAAW,CAAC;IACzB,KAAK,EAAE,uBAAuB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,YAAY,GAAG,eAAe,CAAC;AAElG,MAAM,MAAM,gBAAgB,GACtB;IACI,IAAI,EAAE,OAAO,aAAa,CAAC;IAC3B,KAAK,EAAE,yBAAyB,CAAC;CACpC,GACD,WAAW,CAAC;AAElB,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC3B,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,cAAc,IAAI,aAAa,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;AAElF,eAAO,MAAM,KAAK,UAAU,CAAC;AAE7B,KAAK,QAAQ,CAAC,CAAC,IACT;IACI,SAAS,EAAE,CAAC,CAAC;IACb,SAAS,EAAE,CAAC,CAAC;CAChB,GACD;IACI,SAAS,EAAE,CAAC,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;CACxB,GACD;IACI,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,CAAC,CAAC;CAChB,CAAC;AAER,MAAM,MAAM,IAAI,CAAC,cAAc,IACzB,QAAQ,CAAC,iBAAiB,CAAC,GAC3B,QAAQ,CAAC,kBAAkB,CAAC,GAC5B,QAAQ,CAAC,YAAY,CAAC,GACtB,QAAQ,CAAC,eAAe,CAAC,GACzB,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,GACvC;IACI,SAAS,EAAE;QAAE,IAAI,EAAE,OAAO,KAAK,CAAC;QAAC,KAAK,EAAE,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE,CAAA;KAAE,CAAC;IAC7E,SAAS,EAAE;QAAE,IAAI,EAAE,OAAO,KAAK,CAAC;QAAC,KAAK,EAAE,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE,CAAA;KAAE,CAAC;CAChF,CAAC"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/roomMessagesClient.d.ts b/packages/web-server-utils/dist/cjs/internal/roomMessagesClient.d.ts new file mode 100644 index 000000000..54b5e0d4f --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/roomMessagesClient.d.ts @@ -0,0 +1,31 @@ +import { RoomMessageEventFragment, RoomMessages } from '@flocon-trpg/typed-document-node'; +import { Observable } from 'rxjs'; +import { CustomMessage, Diff, Message } from './roomMessageTypes'; +export declare const event = "event"; +export declare const query = "query"; +export declare const clear = "clear"; +export type MessagesChange = { + type: typeof event; + current: readonly Message[]; + diff: Diff | null; +} | { + type: typeof query | typeof clear; + current: readonly Message[]; +}; +export type FilteredRoomMessages = Readonly<{ + getCurrent(): readonly Message[]; + changed: Observable>; +}>; +export type AllRoomMessages = FilteredRoomMessages & Readonly<{ + filter(filter: (message: Message) => boolean): FilteredRoomMessages; +}>; +export declare class RoomMessagesClient { + #private; + readonly messages: AllRoomMessages; + constructor(); + onQuery(messages: RoomMessages): void; + onEvent(event: RoomMessageEventFragment): void; + addCustomMessage(message: Omit, 'type'>): void; + clear(): void; +} +//# sourceMappingURL=roomMessagesClient.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/roomMessagesClient.d.ts.map b/packages/web-server-utils/dist/cjs/internal/roomMessagesClient.d.ts.map new file mode 100644 index 000000000..345d5a788 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/roomMessagesClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"roomMessagesClient.d.ts","sourceRoot":"","sources":["../../../src/internal/roomMessagesClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,wBAAwB,EACxB,YAAY,EAIf,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAgB,MAAM,MAAM,CAAC;AAGhD,OAAO,EACH,aAAa,EACb,IAAI,EACJ,OAAO,EAQV,MAAM,oBAAoB,CAAC;AA+J5B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,KAAK,UAAU,CAAC;AA0B7B,MAAM,MAAM,cAAc,CAAC,cAAc,IACnC;IACI,IAAI,EAAE,OAAO,KAAK,CAAC;IACnB,OAAO,EAAE,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;IAE5C,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;CACrC,GACD;IACI,IAAI,EAAE,OAAO,KAAK,GAAG,OAAO,KAAK,CAAC;IAClC,OAAO,EAAE,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;CAC/C,CAAC;AAER,MAAM,MAAM,oBAAoB,CAAC,cAAc,IAAI,QAAQ,CAAC;IACxD,UAAU,IAAI,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;IACjD,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,CAAC,cAAc,IAAI,oBAAoB,CAAC,cAAc,CAAC,GAC9E,QAAQ,CAAC;IACL,MAAM,CACF,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,OAAO,GACtD,oBAAoB,CAAC,cAAc,CAAC,CAAC;CAC3C,CAAC,CAAC;AAKP,qBAAa,kBAAkB,CAAC,cAAc;;IAiB1C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;;IA+MnD,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAkBrC,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,IAAI;IAoC9C,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI;IAiB5E,KAAK,IAAI,IAAI;CAYhB"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/utils.d.ts b/packages/web-server-utils/dist/cjs/internal/utils.d.ts new file mode 100644 index 000000000..41d11674a --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/utils.d.ts @@ -0,0 +1,2 @@ +export declare const visibleToToString: (visibleTo: ReadonlyArray | ReadonlySet) => string; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/cjs/internal/utils.d.ts.map b/packages/web-server-utils/dist/cjs/internal/utils.d.ts.map new file mode 100644 index 000000000..7548c2510 --- /dev/null +++ b/packages/web-server-utils/dist/cjs/internal/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/internal/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,cACf,aAAa,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,KACvD,MAIF,CAAC"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/index.d.ts b/packages/web-server-utils/dist/esm/index.d.ts new file mode 100644 index 000000000..b33b1c9cc --- /dev/null +++ b/packages/web-server-utils/dist/esm/index.d.ts @@ -0,0 +1,6 @@ +export { PrivateChannelSet } from './internal/privateChannelSet'; +export { PrivateChannelSets } from './internal/privateChannelSets'; +export { RoomChannels } from './internal/roomChannels'; +export { AllRoomMessages, FilteredRoomMessages, MessagesChange, RoomMessagesClient, clear, event, query, } from './internal/roomMessagesClient'; +export { CustomMessage, Diff, Message, custom, pieceLog, privateMessage, publicChannel, publicMessage, reset, soundEffect, } from './internal/roomMessageTypes'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/index.d.ts.map b/packages/web-server-utils/dist/esm/index.d.ts.map new file mode 100644 index 000000000..4bd85d5c3 --- /dev/null +++ b/packages/web-server-utils/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACH,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,KAAK,EACL,KAAK,GACR,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACH,aAAa,EACb,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,aAAa,EACb,aAAa,EACb,KAAK,EACL,WAAW,GACd,MAAM,6BAA6B,CAAC"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/index.js b/packages/web-server-utils/dist/esm/index.js new file mode 100644 index 000000000..03bac8bbb --- /dev/null +++ b/packages/web-server-utils/dist/esm/index.js @@ -0,0 +1,824 @@ +import { loggerRef } from '@flocon-trpg/utils'; +import { produce } from 'immer'; +import { Subject, map, Observable } from 'rxjs'; + +const visibleToToString = (visibleTo) => { + return [...visibleTo] + .sort() + .reduce((seed, elem) => (seed === '' ? elem : `${seed};${elem}`), ''); +}; + +class PrivateChannelSet { + #source; + constructor(userUid) { + if (typeof userUid === 'string') { + this.#source = new Set(userUid.split(';').filter(x => x !== '')); + return; + } + if (userUid instanceof Array) { + this.#source = new Set(userUid); + return; + } + this.#source = userUid; + } + toString() { + return visibleToToString(this.#source); + } + // participantsのkeyはUserUid + toChannelNameBase(participants, skipMe) { + const result = []; + this.#source.forEach(userUid => { + if (userUid === skipMe?.userUid) { + return; + } + const participant = participants.get(userUid); + if (participant === undefined) { + result.push(userUid); + return; + } + result.push(participant.name ?? `不明なユーザー(${userUid})`); + }); + result.sort(); + return result; + } + toStringArray() { + return [...this.#source].sort(); + } + toStringSet() { + return this.#source; + } +} + +class PrivateChannelSets { + #core = new Map(); + constructor(source) { + if (source != null) { + source + .split(',') + .filter(x => x !== '') + .forEach(set => { + const newValue = new PrivateChannelSet(set); + this.add(newValue); + }); + } + } + add(visibleTo) { + const castedVisibleTo = visibleTo; + if (Array.isArray(castedVisibleTo)) { + const set = new Set(castedVisibleTo); + this.#core.set(visibleToToString(set), new PrivateChannelSet(set)); + return; + } + this.#core.set(visibleTo.toString(), castedVisibleTo); + } + clone() { + const result = new PrivateChannelSets(); + result.#core = new Map(this.#core); + return result; + } + toArray() { + return [...this.#core.entries()] + .sort(([a], [b]) => a.localeCompare(b)) + .map(([, elem]) => elem); + } + toString() { + return [...this.#core.entries()] + .sort(([a], [b]) => a.localeCompare(b)) + .reduce((seed, [, elem], i) => (i === 0 ? elem.toString() : `${seed},${elem.toString()}`), ''); + } +} + +class RoomChannels { + #publicChannels = new Map(); + #privateChannels = new PrivateChannelSets(); + get publicChannels() { + return this.#publicChannels; + } + get privateChannels() { + return this.#privateChannels; + } + onEvent(action) { + switch (action.__typename) { + case 'RoomPrivateMessage': { + const privateChannels = this.#privateChannels.clone(); + privateChannels.add(action.visibleTo); + this.#privateChannels = privateChannels; + return true; + } + case 'RoomPublicChannel': + case 'RoomPublicChannelUpdate': { + const publicChannels = new Map(this.#publicChannels); + publicChannels.set(action.key, { name: action.name ?? null }); + this.#publicChannels = publicChannels; + return true; + } + case 'RoomPublicMessage': + case 'RoomPrivateMessageUpdate': + case 'RoomPublicMessageUpdate': + case 'PieceLog': + case 'RoomSoundEffect': + case 'RoomMessagesReset': + case undefined: { + return false; + } + } + } + onQuery(roomMessages) { + const events = []; + // CONSIDER: __typenameをnon-undefinedにしてgraphql.tsを生成し、Spread構文を不要にするほうが綺麗なコードになりそう + roomMessages.publicMessages.forEach(msg => { + events.push({ ...msg, __typename: 'RoomPublicMessage' }); + }); + roomMessages.publicChannels.forEach(ch => { + events.push({ ...ch, __typename: 'RoomPublicChannel' }); + }); + roomMessages.privateMessages.forEach(msg => { + events.push({ ...msg, __typename: 'RoomPrivateMessage' }); + }); + roomMessages.pieceLogs.forEach(msg => { + events.push({ ...msg, __typename: 'PieceLog' }); + }); + roomMessages.soundEffects.forEach(se => { + events.push({ ...se, __typename: 'RoomSoundEffect' }); + }); + events.forEach(event => this.onEvent(event)); + } +} + +// 自動的に昇順にソートされる配列。 +class SortedArray { + createSortKey; + #core; + constructor(createSortKey, init) { + this.createSortKey = createSortKey; + if (init == null) { + this.#core = []; + return; + } + this.#core = init.map(value => ({ value, sortKey: createSortKey(value) })); + this.#core.sort((x, y) => x.sortKey - y.sortKey); + } + clone() { + const result = new SortedArray(this.createSortKey); + result.#core = [...this.#core]; + return result; + } + // 挿入先が末尾に近いほど高速で、先頭に近いほど低速。 + // CONSIDER: バイナリサーチなどで高速化できる。 + add(newValue) { + const sortKeyOfNewValue = this.createSortKey(newValue); + for (let i = this.#core.length - 1; i >= 0; i--) { + const element = this.#core[i]; + if (element == null) { + throw new Error('This should not happen'); + } + if (element.sortKey <= sortKeyOfNewValue) { + const index = i + 1; + this.#core.splice(index, 0, { value: newValue, sortKey: sortKeyOfNewValue }); + return; + } + } + const index = 0; + this.#core.splice(index, 0, { value: newValue, sortKey: sortKeyOfNewValue }); + } + // 該当する要素の位置が末尾に近いほど高速で、先頭に近いほど低速。ただし見つからなかった場合は最も遅い。 + // CONSIDER: バイナリサーチなどで高速化できる。 + #findIndexFromEnd(predicate) { + for (let i = this.#core.length - 1; i >= 0; i--) { + const element = this.#core[i]; + if (element == null) { + throw new Error('This should not happen'); + } + if (predicate(element.value)) { + return i; + } + } + return -1; + } + #removeLast(predicate) { + const index = this.#findIndexFromEnd(predicate); + if (index < 0) { + return undefined; + } + const found = this.#core[index]; + if (found == null) { + throw new Error('This should not happen'); + } + this.#core.splice(index, 1); + return found.value; + } + updateLast(update) { + let newValue = undefined; + const found = this.#removeLast(elem => { + const result = update(elem); + if (result === undefined) { + return false; + } + newValue = result; + return true; + }); + if (found === undefined || newValue === undefined) { + return undefined; + } + this.add(newValue); + return { oldValue: found, newValue }; + } + toArray(mapFilter) { + return this.#core.flatMap(elem => { + const newValue = mapFilter(elem.value); + if (newValue === undefined) { + return []; + } + return [newValue]; + }); + } + clear() { + this.#core = []; + } + createFiltered(filter) { + return FilteredSortedArray.ofSortedKey(this, filter); + } +} +class FilteredSortedArray { + filter; + base; + constructor(filter, base) { + this.filter = filter; + this.base = base; + } + clone() { + const result = new FilteredSortedArray(this.filter, this.base.clone()); + return result; + } + static ofArray(base, filter, createSortKey) { + const b = new SortedArray(x => createSortKey(x.value), base.map(x => ({ value: x, exists: filter(x) }))); + return new FilteredSortedArray(filter, b); + } + static ofSortedKey(base, filter) { + const b = new SortedArray(x => base.createSortKey(x.value), base.toArray(x => ({ value: x, exists: filter(x) }))); + return new FilteredSortedArray(filter, b); + } + toArray(mapFilter) { + return this.base.toArray(elem => { + if (!elem.exists) { + return undefined; + } + return mapFilter(elem.value); + }); + } + clear() { + this.base.clear(); + } + add(newValue) { + const exists = this.filter(newValue); + this.base.add({ value: newValue, exists }); + return exists; + } + updateLast(update) { + const found = this.base.updateLast(elem => { + const newValue = update(elem.value); + if (newValue === undefined) { + return undefined; + } + return { + value: newValue, + exists: this.filter(newValue), + }; + }); + if (found == null) { + return undefined; + } + return { + oldValue: found.oldValue.exists ? found.oldValue.value : undefined, + newValue: found.newValue.exists ? found.newValue.value : undefined, + }; + } +} + +const privateMessage = 'privateMessage'; +const publicMessage = 'publicMessage'; +const pieceLog = 'pieceLog'; +const publicChannel = 'publicChannel'; +const soundEffect = 'soundEffect'; +const custom = 'custom'; +const reset = 'reset'; + +class MessageSet { + #customMessages = []; + #publicMessages = new Map(); + #privateMessages = new Map(); + #pieceLogs = new Map(); + #soundEffects = new Map(); + add(message) { + switch (message.type) { + case custom: + this.#customMessages.push(message); + break; + case pieceLog: + this.#pieceLogs.set(message.value.messageId, message.value); + break; + case privateMessage: + this.#privateMessages.set(message.value.messageId, message.value); + break; + case publicMessage: + this.#publicMessages.set(message.value.messageId, message.value); + break; + case soundEffect: + this.#soundEffects.set(message.value.messageId, message.value); + break; + } + } + // clear() { + // this.#customMessages.clear(); + // this.#pieceLogs.clear(); + // this.#privateMessages.clear(); + // this.#publicMessages.clear(); + // this.#soundEffects.clear(); + // } + getPrivateMessage(messageId) { + return this.#privateMessages.get(messageId); + } + getPublicMessage(messageId) { + return this.#publicMessages.get(messageId); + } + get(message) { + switch (message.type) { + case pieceLog: { + const value = this.#pieceLogs.get(message.value.messageId); + if (value == null) { + return undefined; + } + return { + type: pieceLog, + value, + }; + } + case privateMessage: { + const value = this.getPrivateMessage(message.value.messageId); + if (value == null) { + return undefined; + } + return { + type: privateMessage, + value, + }; + } + case publicMessage: { + const value = this.getPublicMessage(message.value.messageId); + if (value == null) { + return undefined; + } + return { + type: publicMessage, + value, + }; + } + case soundEffect: { + const value = this.#soundEffects.get(message.value.messageId); + if (value == null) { + return undefined; + } + return { + type: soundEffect, + value, + }; + } + } + } + values() { + function* main(self) { + for (const value of self.#customMessages.values()) { + yield value; + } + for (const value of self.#pieceLogs.values()) { + yield { + type: pieceLog, + value, + }; + } + for (const value of self.#privateMessages.values()) { + yield { + type: privateMessage, + value, + }; + } + for (const value of self.#publicMessages.values()) { + yield { + type: publicMessage, + value, + }; + } + for (const value of self.#soundEffects.values()) { + yield { + type: soundEffect, + value, + }; + } + } + return main(this); + } +} + +const createRoomMessage = (source) => { + switch (source.__typename) { + case 'RoomPrivateMessage': + return { + type: privateMessage, + value: source, + }; + case 'RoomPublicMessage': + return { + type: publicMessage, + value: source, + }; + case 'PieceLog': + return { + type: pieceLog, + value: source, + }; + case 'RoomSoundEffect': + return { + type: soundEffect, + value: source, + }; + case undefined: + loggerRef.warn({ object: source }, 'createRoomMessage 関数に渡されたオブジェクトの __typename が undefined だったため、処理はスキップされました。RoomPrivateMessageFragment | RoomPublicMessageFragment | PieceLogFragment | RoomSoundEffectFragment では __typename がないとメッセージを処理できません。GraphQL クライアントの設定を確認し、__typename を常にセットするようにしてください。'); + return undefined; + } +}; +const compareUpdatedAt = (left, operator, right) => { + if (left == null) { + return right != null; + } + if (right == null) { + return false; + } + return left < right; +}; +const noChange = 'noChange'; +// 引数のmessagesには変更は加えられない +const reduceEvent = ({ messages: messagesSource, event, }) => { + const messages = messagesSource.clone(); + switch (event.__typename) { + case custom: { + const added = messages.add(event.value); + if (added === false) { + return { messages, diff: null }; + } + return { + messages, + diff: { + prevValue: undefined, + nextValue: event.value, + }, + }; + } + case 'RoomPrivateMessage': + case 'RoomPublicMessage': + case 'PieceLog': + case 'RoomSoundEffect': { + const newValue = createRoomMessage(event); + if (newValue == null) { + return noChange; + } + const added = messages.add(newValue); + if (added === false) { + return { messages, diff: null }; + } + return { + messages, + diff: { + prevValue: undefined, + nextValue: newValue, + }, + }; + } + case 'RoomPublicChannel': + case 'RoomPublicChannelUpdate': + return noChange; + case 'RoomPrivateMessageUpdate': + case 'RoomPublicMessageUpdate': { + const updateResult = messages.updateLast(msg => { + if (msg.type === custom || msg.type === pieceLog || msg.type === soundEffect) { + return undefined; + } + if (msg.value.messageId !== event.messageId) { + return undefined; + } + if (!compareUpdatedAt(msg.value.updatedAt, '<', event.updatedAt)) { + return undefined; + } + return produce(msg, msg => { + msg.value.altTextToSecret = event.altTextToSecret; + msg.value.commandResult = event.commandResult; + msg.value.isSecret = event.isSecret; + msg.value.initText = event.initText; + msg.value.initTextSource = event.initTextSource; + msg.value.updatedText = event.updatedText; + msg.value.updatedAt = event.updatedAt; + }); + }); + if (updateResult == null) { + return noChange; + } + return { + messages, + diff: { + // CONSIDER: updateResult.oldValue === undefined && updateResult.newValue === undefined のケースがあるのでは?その場合は diff は null を返すべき + prevValue: updateResult.oldValue, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + nextValue: updateResult.newValue, + }, + }; + } + case 'RoomMessagesReset': { + const prevValue = messages.toArray(x => x); + messages.clear(); + return { + messages, + diff: { + prevValue: { type: reset, value: prevValue }, + nextValue: { type: reset, value: [] }, + }, + }; + } + } +}; +const event = 'event'; +const query = 'query'; +const clear = 'clear'; +const createSortKey = (message) => message.type === custom ? message.createdAt : message.value.createdAt; +class RoomMessagesClient { + #messagesState = { + isQueryFetched: false, + eventsQueue: [], + }; + #messagesChanged = new Subject(); + #messages = new SortedArray(createSortKey); + messages; + constructor() { + this.messages = { + getCurrent: () => this.#messages.toArray(x => x), + changed: this.#messagesChanged.pipe(map(changeEvent => { + switch (changeEvent.type) { + case event: { + return { + type: event, + current: changeEvent.current.toArray(x => x), + diff: changeEvent.diff, + }; + } + case query: { + return { + type: query, + current: changeEvent.current.toArray(x => x), + }; + } + default: + return { + type: clear, + current: changeEvent.current.toArray(x => x), + }; + } + })), + filter: filter => { + return { + getCurrent: () => this.#messages.toArray(x => (filter(x) ? x : undefined)), + changed: new Observable(observer => { + let messages = this.#messages.createFiltered(filter); + return this.#messagesChanged.subscribe(changeEvent => { + if (changeEvent.type !== event) { + messages = changeEvent.current.createFiltered(filter); + observer.next({ + type: changeEvent.type, + current: messages.toArray(x => x), + }); + return; + } + if (!this.#messagesState.isQueryFetched && + changeEvent.event.__typename !== custom) { + observer.next({ + type: changeEvent.type, + current: changeEvent.current.toArray(x => x).filter(filter), + diff: null, + }); + return; + } + const reduced = reduceEvent({ + messages, + event: changeEvent.event, + }); + if (reduced === noChange) { + observer.next({ + type: event, + current: messages.toArray(x => x), + diff: null, + }); + return; + } + messages = reduced.messages; + observer.next({ + type: event, + current: reduced.messages.toArray(x => x), + diff: reduced.diff, + }); + }); + }), + }; + }, + }; + } + // 'onEvent' と比べて、重複したメッセージは取り除かれるが、そのぶん処理は重め。 + static #reduceOnQuery({ state, messages, events, }) { + const messagesSet = new MessageSet(); + state.forEach(msg => { + messagesSet.add(msg); + }); + const setMessage = (action) => { + const newValue = createRoomMessage(action); + if (newValue == null) { + return; + } + const exists = messagesSet.get(newValue); + if (exists === undefined) { + messagesSet.add(newValue); + return; + } + let existsUpdatedAt; + switch (exists.type) { + case publicMessage: + case privateMessage: + existsUpdatedAt = exists.value.updatedAt; + break; + default: + existsUpdatedAt = null; + break; + } + let actionUpdatedAt; + switch (action.__typename) { + case 'RoomPublicMessage': + case 'RoomPrivateMessage': + actionUpdatedAt = action.updatedAt; + break; + default: + actionUpdatedAt = null; + break; + } + if (compareUpdatedAt(existsUpdatedAt, '<', actionUpdatedAt)) { + messagesSet.add(newValue); + } + }; + messages.pieceLogs.forEach(setMessage); + messages.privateMessages.forEach(setMessage); + messages.publicMessages.forEach(setMessage); + messages.soundEffects.forEach(setMessage); + for (const event of events) { + switch (event.__typename) { + case 'RoomPrivateMessage': + setMessage({ ...event, __typename: 'RoomPrivateMessage' }); + break; + case 'RoomPublicMessage': + setMessage({ ...event, __typename: 'RoomPublicMessage' }); + break; + case 'PieceLog': + setMessage({ ...event, __typename: 'PieceLog' }); + break; + case 'RoomSoundEffect': + setMessage({ ...event, __typename: 'RoomSoundEffect' }); + break; + case 'RoomPublicChannel': + break; + case 'RoomPrivateMessageUpdate': { + const found = messagesSet.getPrivateMessage(event.messageId); + if (found == null) { + break; + } + if (compareUpdatedAt(found.updatedAt, '<', event.updatedAt)) { + const newValue = produce(found, found => { + found.altTextToSecret = event.altTextToSecret; + found.commandResult = event.commandResult; + found.initText = event.initText; + found.initTextSource = event.initTextSource; + found.isSecret = event.isSecret; + found.updatedAt = event.updatedAt; + found.updatedText = event.updatedText; + }); + messagesSet.add({ type: privateMessage, value: newValue }); + } + break; + } + case 'RoomPublicMessageUpdate': { + const found = messagesSet.getPublicMessage(event.messageId); + if (found == null) { + break; + } + if (compareUpdatedAt(found.updatedAt, '<', event.updatedAt)) { + const newValue = produce(found, found => { + found.altTextToSecret = event.altTextToSecret; + found.commandResult = event.commandResult; + found.initText = event.initText; + found.initTextSource = event.initTextSource; + found.isSecret = event.isSecret; + found.updatedAt = event.updatedAt; + found.updatedText = event.updatedText; + }); + messagesSet.add({ type: publicMessage, value: newValue }); + } + break; + } + case 'RoomPublicChannelUpdate': + case 'RoomMessagesReset': { + loggerRef.warn(`${event.__typename} is deprecated.`); + break; + } + case undefined: + loggerRef.warn({ object: event }, '#reduceOnQuery メソッドの引数で __typename が undefined のオブジェクトが見つかったため、このオブジェクトの処理はスキップされました。RoomMessageEventFragment では __typename がないとメッセージを処理できません。GraphQL クライアントの設定を確認し、__typename を常にセットするようにしてください。'); + break; + } + } + return [...messagesSet.values()].sort((x, y) => createSortKey(x) - createSortKey(y)); + } + onQuery(messages) { + const newMessages = RoomMessagesClient.#reduceOnQuery({ + state: this.#messages.toArray(x => x), + messages, + events: this.#messagesState.isQueryFetched ? [] : this.#messagesState.eventsQueue, + }); + this.#messages = new SortedArray(createSortKey, newMessages); + this.#messagesState = { + isQueryFetched: true, + }; + this.#messagesChanged.next({ + type: query, + isQueryFetched: true, + current: new SortedArray(createSortKey, newMessages), + }); + } + // `#reduceOnQuery` と比べて、重複したメッセージは取り除かれないが、そのぶん処理は軽め。 + onEvent(event) { + const messages = this.#messages; + if (!this.#messagesState.isQueryFetched) { + this.#messagesState = { + ...this.#messagesState, + eventsQueue: [...this.#messagesState.eventsQueue, event], + }; + this.#messagesChanged.next({ + type: 'event', + isQueryFetched: false, + event, + current: messages.clone(), + diff: null, + }); + return; + } + const reduced = reduceEvent({ + messages: this.#messages, + event, + }); + if (reduced === noChange) { + return; + } + this.#messages = reduced.messages; + this.#messagesState = { + isQueryFetched: true, + }; + this.#messagesChanged.next({ + type: 'event', + isQueryFetched: true, + current: reduced.messages, + diff: reduced.diff, + event, + }); + } + addCustomMessage(message) { + const customMessage = { ...message, type: custom }; + const messagesClone = this.#messages.clone(); + messagesClone.add(customMessage); + this.#messages = messagesClone; + this.#messagesChanged.next({ + type: event, + isQueryFetched: false, + event: { __typename: custom, value: customMessage }, + current: this.#messages.clone(), + diff: { + prevValue: undefined, + nextValue: customMessage, + }, + }); + } + clear() { + this.#messagesState = { + isQueryFetched: false, + eventsQueue: [], + }; + this.#messages = new SortedArray(createSortKey); + this.#messagesChanged.next({ + type: clear, + isQueryFetched: false, + current: this.#messages.clone(), + }); + } +} + +export { PrivateChannelSet, PrivateChannelSets, RoomChannels, RoomMessagesClient, clear, custom, event, pieceLog, privateMessage, publicChannel, publicMessage, query, reset, soundEffect }; +//# sourceMappingURL=index.js.map diff --git a/packages/web-server-utils/dist/esm/index.js.map b/packages/web-server-utils/dist/esm/index.js.map new file mode 100644 index 000000000..08c53fd04 --- /dev/null +++ b/packages/web-server-utils/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/utils.ts","../../../src/internal/privateChannelSet.ts","../../../src/internal/privateChannelSets.ts","../../../src/internal/roomChannels.ts","../../../src/internal/filteredArray.ts","../../../src/internal/roomMessageTypes.ts","../../../src/internal/messageSet.ts","../../../src/internal/roomMessagesClient.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/filteredArray.d.ts b/packages/web-server-utils/dist/esm/internal/filteredArray.d.ts new file mode 100644 index 000000000..46a77915a --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/filteredArray.d.ts @@ -0,0 +1,30 @@ +export declare class SortedArray { + #private; + readonly createSortKey: (value: T) => number; + constructor(createSortKey: (value: T) => number, init?: readonly T[]); + clone(): SortedArray; + add(newValue: T): void; + updateLast(update: (oldValue: T) => T | undefined): { + oldValue: T; + newValue: T; + } | undefined; + toArray(mapFilter: (value: T) => T2 | undefined): T2[]; + clear(): void; + createFiltered(filter: (value: T) => boolean): FilteredSortedArray; +} +export declare class FilteredSortedArray { + private readonly filter; + private readonly base; + private constructor(); + clone(): FilteredSortedArray; + static ofArray(base: readonly T[], filter: (value: T) => boolean, createSortKey: (value: T) => number): FilteredSortedArray; + static ofSortedKey(base: SortedArray, filter: (value: T) => boolean): FilteredSortedArray; + toArray(mapFilter: (value: T) => T2 | undefined): T2[]; + clear(): void; + add(newValue: T): boolean; + updateLast(update: (oldValue: T) => T | undefined): { + oldValue: T | undefined; + newValue: T | undefined; + } | undefined; +} +//# sourceMappingURL=filteredArray.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/filteredArray.d.ts.map b/packages/web-server-utils/dist/esm/internal/filteredArray.d.ts.map new file mode 100644 index 000000000..f96b34cb8 --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/filteredArray.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"filteredArray.d.ts","sourceRoot":"","sources":["../../../src/internal/filteredArray.ts"],"names":[],"mappings":"AACA,qBAAa,WAAW,CAAC,CAAC;;IAIlB,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM;gBAAnC,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,EAC5C,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE;IAUhB,KAAK;IAQL,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI;IA+CtB,UAAU,CACb,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,GACvC;QAAE,QAAQ,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,CAAC,CAAA;KAAE,GAAG,SAAS;IAiBpC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,SAAS,GAAG,EAAE,EAAE;IAU1D,KAAK,IAAI,IAAI;IAIb,cAAc,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO;CAGtD;AAED,qBAAa,mBAAmB,CAAC,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFzB,OAAO;IAKA,KAAK;WAKE,OAAO,CAAC,CAAC,EACnB,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,EAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM;WASzB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO;IAQzE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,SAAS,GAAG,EAAE,EAAE;IAS1D,KAAK,IAAI,IAAI;IAIb,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,OAAO;IAMzB,UAAU,CACb,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,GACvC;QAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;QAAC,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS;CAmBtE"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/messageSet.d.ts b/packages/web-server-utils/dist/esm/internal/messageSet.d.ts new file mode 100644 index 000000000..aa514dc71 --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/messageSet.d.ts @@ -0,0 +1,11 @@ +import { RoomPrivateMessageFragment, RoomPublicMessageFragment } from '@flocon-trpg/typed-document-node'; +import { Message, RoomMessage } from './roomMessageTypes'; +export declare class MessageSet { + #private; + add(message: Message): void; + getPrivateMessage(messageId: string): RoomPrivateMessageFragment | undefined; + getPublicMessage(messageId: string): RoomPublicMessageFragment | undefined; + get(message: RoomMessage): RoomMessage | undefined; + values(): Generator, any, any>; +} +//# sourceMappingURL=messageSet.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/messageSet.d.ts.map b/packages/web-server-utils/dist/esm/internal/messageSet.d.ts.map new file mode 100644 index 000000000..7225d00c0 --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/messageSet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"messageSet.d.ts","sourceRoot":"","sources":["../../../src/internal/messageSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,0BAA0B,EAC1B,yBAAyB,EAE5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEH,OAAO,EACP,WAAW,EAMd,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,UAAU,CAAC,cAAc;;IAOlC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC;IA4BpC,iBAAiB,CAAC,SAAS,EAAE,MAAM;IAInC,gBAAgB,CAAC,SAAS,EAAE,MAAM;IAIlC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;IA6ClD,MAAM;CAgCT"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/privateChannelSet.d.ts b/packages/web-server-utils/dist/esm/internal/privateChannelSet.d.ts new file mode 100644 index 000000000..1b495dd6d --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/privateChannelSet.d.ts @@ -0,0 +1,14 @@ +import { State, participantTemplate } from '@flocon-trpg/core'; +type ParticipantState = State; +export declare class PrivateChannelSet { + #private; + constructor(userUid: string | ReadonlySet | ReadonlyArray); + toString(): string; + toChannelNameBase(participants: ReadonlyMap, skipMe?: { + userUid: string; + }): string[]; + toStringArray(): string[]; + toStringSet(): ReadonlySet; +} +export {}; +//# sourceMappingURL=privateChannelSet.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/privateChannelSet.d.ts.map b/packages/web-server-utils/dist/esm/internal/privateChannelSet.d.ts.map new file mode 100644 index 000000000..ed87b6246 --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/privateChannelSet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"privateChannelSet.d.ts","sourceRoot":"","sources":["../../../src/internal/privateChannelSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG/D,KAAK,gBAAgB,GAAG,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE1D,qBAAa,iBAAiB;;gBAGP,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;IAYzE,QAAQ,IAAI,MAAM;IAKlB,iBAAiB,CACpB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACnD,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAC7B,MAAM,EAAE;IAiBJ,aAAa,IAAI,MAAM,EAAE;IAIzB,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC;CAG5C"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/privateChannelSets.d.ts b/packages/web-server-utils/dist/esm/internal/privateChannelSets.d.ts new file mode 100644 index 000000000..773573aa2 --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/privateChannelSets.d.ts @@ -0,0 +1,10 @@ +import { PrivateChannelSet } from './privateChannelSet'; +export declare class PrivateChannelSets { + #private; + constructor(source?: string); + add(visibleTo: ReadonlyArray | PrivateChannelSet): void; + clone(): PrivateChannelSets; + toArray(): PrivateChannelSet[]; + toString(): string; +} +//# sourceMappingURL=privateChannelSets.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/privateChannelSets.d.ts.map b/packages/web-server-utils/dist/esm/internal/privateChannelSets.d.ts.map new file mode 100644 index 000000000..4e5e1e1d6 --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/privateChannelSets.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"privateChannelSets.d.ts","sourceRoot":"","sources":["../../../src/internal/privateChannelSets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,kBAAkB;;gBAGR,MAAM,CAAC,EAAE,MAAM;IAY3B,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB,GAAG,IAAI;IAU/D,KAAK,IAAI,kBAAkB;IAM3B,OAAO,IAAI,iBAAiB,EAAE;IAM9B,QAAQ,IAAI,MAAM;CAQ5B"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/roomChannels.d.ts b/packages/web-server-utils/dist/esm/internal/roomChannels.d.ts new file mode 100644 index 000000000..17b9a130e --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/roomChannels.d.ts @@ -0,0 +1,16 @@ +import { RoomMessageEventFragment, RoomMessages } from '@flocon-trpg/typed-document-node'; +import { PrivateChannelSet } from './privateChannelSet'; +type PublicChannel = { + name: string | null; +}; +export declare class RoomChannels { + #private; + get publicChannels(): ReadonlyMap; + get privateChannels(): { + toArray(): PrivateChannelSet[]; + }; + onEvent(action: RoomMessageEventFragment): boolean; + onQuery(roomMessages: RoomMessages): void; +} +export {}; +//# sourceMappingURL=roomChannels.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/roomChannels.d.ts.map b/packages/web-server-utils/dist/esm/internal/roomChannels.d.ts.map new file mode 100644 index 000000000..f605665a4 --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/roomChannels.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"roomChannels.d.ts","sourceRoot":"","sources":["../../../src/internal/roomChannels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,KAAK,aAAa,GAAG;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,qBAAa,YAAY;;IAIrB,IAAW,cAAc,IAAI,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAE9D;IAED,IAAW,eAAe,IAAI;QAAE,OAAO,IAAI,iBAAiB,EAAE,CAAA;KAAE,CAE/D;IAEM,OAAO,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO;IA2BlD,OAAO,CAAC,YAAY,EAAE,YAAY;CAsB5C"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/roomMessageTypes.d.ts b/packages/web-server-utils/dist/esm/internal/roomMessageTypes.d.ts new file mode 100644 index 000000000..940015fe5 --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/roomMessageTypes.d.ts @@ -0,0 +1,57 @@ +import { PieceLogFragment, RoomPrivateMessageFragment, RoomPublicChannelFragment, RoomPublicMessageFragment, RoomSoundEffectFragment } from '@flocon-trpg/typed-document-node'; +export declare const privateMessage = "privateMessage"; +export declare const publicMessage = "publicMessage"; +export declare const pieceLog = "pieceLog"; +export declare const publicChannel = "publicChannel"; +export declare const soundEffect = "soundEffect"; +type PrivateMessageType = { + type: typeof privateMessage; + value: RoomPrivateMessageFragment; +}; +type PublicMessageType = { + type: typeof publicMessage; + value: RoomPublicMessageFragment; +}; +type PieceLogType = { + type: typeof pieceLog; + value: PieceLogFragment; +}; +type SoundEffectType = { + type: typeof soundEffect; + value: RoomSoundEffectFragment; +}; +export type RoomMessage = PrivateMessageType | PublicMessageType | PieceLogType | SoundEffectType; +export type RoomMessageEvent = { + type: typeof publicChannel; + value: RoomPublicChannelFragment; +} | RoomMessage; +export declare const custom = "custom"; +export type CustomMessage = { + type: typeof custom; + value: T; + createdAt: number; +}; +export type Message = CustomMessage | RoomMessage; +export declare const reset = "reset"; +type DiffBase = { + prevValue: T; + nextValue: T; +} | { + prevValue: T; + nextValue: undefined; +} | { + prevValue: undefined; + nextValue: T; +}; +export type Diff = DiffBase | DiffBase | DiffBase | DiffBase | DiffBase> | { + prevValue: { + type: typeof reset; + value: readonly Message[]; + }; + nextValue: { + type: typeof reset; + value: readonly Message[]; + }; +}; +export {}; +//# sourceMappingURL=roomMessageTypes.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/roomMessageTypes.d.ts.map b/packages/web-server-utils/dist/esm/internal/roomMessageTypes.d.ts.map new file mode 100644 index 000000000..8d48580a1 --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/roomMessageTypes.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"roomMessageTypes.d.ts","sourceRoot":"","sources":["../../../src/internal/roomMessageTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EAC1B,MAAM,kCAAkC,CAAC;AAE1C,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,KAAK,kBAAkB,GAAG;IACtB,IAAI,EAAE,OAAO,cAAc,CAAC;IAC5B,KAAK,EAAE,0BAA0B,CAAC;CACrC,CAAC;AACF,KAAK,iBAAiB,GAAG;IACrB,IAAI,EAAE,OAAO,aAAa,CAAC;IAC3B,KAAK,EAAE,yBAAyB,CAAC;CACpC,CAAC;AACF,KAAK,YAAY,GAAG;IAChB,IAAI,EAAE,OAAO,QAAQ,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,KAAK,eAAe,GAAG;IACnB,IAAI,EAAE,OAAO,WAAW,CAAC;IACzB,KAAK,EAAE,uBAAuB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,YAAY,GAAG,eAAe,CAAC;AAElG,MAAM,MAAM,gBAAgB,GACtB;IACI,IAAI,EAAE,OAAO,aAAa,CAAC;IAC3B,KAAK,EAAE,yBAAyB,CAAC;CACpC,GACD,WAAW,CAAC;AAElB,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC3B,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,cAAc,IAAI,aAAa,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;AAElF,eAAO,MAAM,KAAK,UAAU,CAAC;AAE7B,KAAK,QAAQ,CAAC,CAAC,IACT;IACI,SAAS,EAAE,CAAC,CAAC;IACb,SAAS,EAAE,CAAC,CAAC;CAChB,GACD;IACI,SAAS,EAAE,CAAC,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;CACxB,GACD;IACI,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,CAAC,CAAC;CAChB,CAAC;AAER,MAAM,MAAM,IAAI,CAAC,cAAc,IACzB,QAAQ,CAAC,iBAAiB,CAAC,GAC3B,QAAQ,CAAC,kBAAkB,CAAC,GAC5B,QAAQ,CAAC,YAAY,CAAC,GACtB,QAAQ,CAAC,eAAe,CAAC,GACzB,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,GACvC;IACI,SAAS,EAAE;QAAE,IAAI,EAAE,OAAO,KAAK,CAAC;QAAC,KAAK,EAAE,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE,CAAA;KAAE,CAAC;IAC7E,SAAS,EAAE;QAAE,IAAI,EAAE,OAAO,KAAK,CAAC;QAAC,KAAK,EAAE,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE,CAAA;KAAE,CAAC;CAChF,CAAC"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/roomMessagesClient.d.ts b/packages/web-server-utils/dist/esm/internal/roomMessagesClient.d.ts new file mode 100644 index 000000000..54b5e0d4f --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/roomMessagesClient.d.ts @@ -0,0 +1,31 @@ +import { RoomMessageEventFragment, RoomMessages } from '@flocon-trpg/typed-document-node'; +import { Observable } from 'rxjs'; +import { CustomMessage, Diff, Message } from './roomMessageTypes'; +export declare const event = "event"; +export declare const query = "query"; +export declare const clear = "clear"; +export type MessagesChange = { + type: typeof event; + current: readonly Message[]; + diff: Diff | null; +} | { + type: typeof query | typeof clear; + current: readonly Message[]; +}; +export type FilteredRoomMessages = Readonly<{ + getCurrent(): readonly Message[]; + changed: Observable>; +}>; +export type AllRoomMessages = FilteredRoomMessages & Readonly<{ + filter(filter: (message: Message) => boolean): FilteredRoomMessages; +}>; +export declare class RoomMessagesClient { + #private; + readonly messages: AllRoomMessages; + constructor(); + onQuery(messages: RoomMessages): void; + onEvent(event: RoomMessageEventFragment): void; + addCustomMessage(message: Omit, 'type'>): void; + clear(): void; +} +//# sourceMappingURL=roomMessagesClient.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/roomMessagesClient.d.ts.map b/packages/web-server-utils/dist/esm/internal/roomMessagesClient.d.ts.map new file mode 100644 index 000000000..345d5a788 --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/roomMessagesClient.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"roomMessagesClient.d.ts","sourceRoot":"","sources":["../../../src/internal/roomMessagesClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,wBAAwB,EACxB,YAAY,EAIf,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAgB,MAAM,MAAM,CAAC;AAGhD,OAAO,EACH,aAAa,EACb,IAAI,EACJ,OAAO,EAQV,MAAM,oBAAoB,CAAC;AA+J5B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,KAAK,UAAU,CAAC;AA0B7B,MAAM,MAAM,cAAc,CAAC,cAAc,IACnC;IACI,IAAI,EAAE,OAAO,KAAK,CAAC;IACnB,OAAO,EAAE,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;IAE5C,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;CACrC,GACD;IACI,IAAI,EAAE,OAAO,KAAK,GAAG,OAAO,KAAK,CAAC;IAClC,OAAO,EAAE,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;CAC/C,CAAC;AAER,MAAM,MAAM,oBAAoB,CAAC,cAAc,IAAI,QAAQ,CAAC;IACxD,UAAU,IAAI,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;IACjD,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,CAAC,cAAc,IAAI,oBAAoB,CAAC,cAAc,CAAC,GAC9E,QAAQ,CAAC;IACL,MAAM,CACF,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,OAAO,GACtD,oBAAoB,CAAC,cAAc,CAAC,CAAC;CAC3C,CAAC,CAAC;AAKP,qBAAa,kBAAkB,CAAC,cAAc;;IAiB1C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;;IA+MnD,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAkBrC,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,IAAI;IAoC9C,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI;IAiB5E,KAAK,IAAI,IAAI;CAYhB"} \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/utils.d.ts b/packages/web-server-utils/dist/esm/internal/utils.d.ts new file mode 100644 index 000000000..41d11674a --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/utils.d.ts @@ -0,0 +1,2 @@ +export declare const visibleToToString: (visibleTo: ReadonlyArray | ReadonlySet) => string; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/packages/web-server-utils/dist/esm/internal/utils.d.ts.map b/packages/web-server-utils/dist/esm/internal/utils.d.ts.map new file mode 100644 index 000000000..7548c2510 --- /dev/null +++ b/packages/web-server-utils/dist/esm/internal/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/internal/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,cACf,aAAa,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,KACvD,MAIF,CAAC"} \ No newline at end of file