From 7ae2a3369cf65a461236764c8f1079544661f9ca Mon Sep 17 00:00:00 2001 From: "auto-build.yml[bot]" Date: Sat, 9 Nov 2024 06:55:55 +0000 Subject: [PATCH] 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":"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"} \ 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":";;;;;;;;;;;;AA4BA,IAAM,aAAa,GAAnB,MAAM,aAAa,CAAA;CAMlB;AAJUA,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACe,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAGhBD,gBAAA,CAAA;AADN,IAAAC,iBAAK,EAAE;;AACkB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AALxB,aAAa,GAAAD,gBAAA,CAAA;AADlB,IAAAE,oBAAQ;AACH,CAAA,EAAA,aAAa,CAMlB;AAGYC,oCAA4B,GAAlC,MAAM,4BAA4B,CAAA;IAIxB,MAAA,oBAAoB,CACrB,IAAmB,EACpB,OAAwB,EACrB,MAAoB,EAAA;AAE9B,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;gBACH,WAAW,EAAEC,+DAA+B,CAAC,YAAY;aAC5D;;AAEL,QAAA,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,UAAU;AAC/B,QAAA,IAAI,EAAE,KAAK,SAAS,EAAE;YAClB,OAAO;gBACH,WAAW,EAAEA,+DAA+B,CAAC,cAAc;aAC9D;;AAEL,QAAA,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAACC,iBAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AACtE,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;YACnB,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;AACpE,YAAA,IAAI,SAAS,KAAK,iBAAiB,EAAE;gBACjC,OAAO;oBACH,WAAW,EAAED,+DAA+B,CAAC,cAAc;iBAC9D;;AAEL,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACrB,OAAO;oBACH,WAAW,EAAEA,+DAA+B,CAAC,SAAS;iBACzD;;AAEL,YAAA,SAAS,CAAC,QAAQ,GAAG,KAAK;AAC1B,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,IAAI,EAAE;AACnC,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE;AAEhB,YAAA,MAAM,YAAY,GAAGE,mCAA6B,CAAC,SAAS,CAAC;YAC7D,MAAMC,sBAAgB,CAAC,MAAM,EAAE;AAC3B,gBAAA,IAAI,EAAE,sBAAsB;AAC5B,gBAAA,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE;gBACnC,MAAM,EAAE,IAAI,CAAC,EAAE;AACf,gBAAA,SAAS,EAAE,SAAS;gBACpB,SAAS;AACT,gBAAA,KAAK,EAAE,YAAY;AACtB,aAAA,CAAC;AACF,YAAA,OAAO,EAAE;;AAEb,QAAA,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAACC,iBAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AACvE,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;YACpB,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;AACrE,YAAA,IAAI,SAAS,KAAK,iBAAiB,EAAE;gBACjC,OAAO;oBACH,WAAW,EAAEJ,+DAA+B,CAAC,cAAc;iBAC9D;;AAEL,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;gBACtB,OAAO;oBACH,WAAW,EAAEA,+DAA+B,CAAC,SAAS;iBACzD;;AAEL,YAAA,UAAU,CAAC,QAAQ,GAAG,KAAK;AAC3B,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,IAAI,EAAE;AACnC,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE;AAEhB,YAAA,MAAM,YAAY,GAAGK,oCAA8B,CAAC,UAAU,CAAC;YAC/D,MAAMF,sBAAgB,CAAC,MAAM,EAAE;AAC3B,gBAAA,IAAI,EAAE,sBAAsB;AAC5B,gBAAA,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE;gBACnC,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS,EAAE,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;gBAC7E,SAAS;AACT,gBAAA,KAAK,EAAE,YAAY;AACtB,aAAA,CAAC;AACF,YAAA,OAAO,EAAE;;QAGb,OAAO;YACH,WAAW,EAAEH,+DAA+B,CAAC,eAAe;SAC/D;;;AAlFQN,gBAAA,CAAA;AAHZ,IAAAY,oBAAQ,CAAC,MAAMC,sCAA0B,CAAC;IAC1CC,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,aAAa,UAETC,wBAAY,CAAA,CAAA;;AAgFjC,CAAA,EAAArB,oCAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,IAAA,CAAA;AAvFQA,oCAA4B,GAAAH,gBAAA,CAAA;AADxC,IAAAyB,oBAAQ;AACI,CAAA,EAAAtB,oCAA4B,CAwFxC;;"} \ 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":";;;;;;;;;;;;AAwBaA,6BAAqB,GAA3B,MAAM,qBAAqB,CAAA;IAKjB,MAAA,aAAa,CACP,MAAc,EACtB,OAAwB,EACrB,MAAoB,EAAA;AAE9B,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE;AACrB,QAAA,MAAM,cAAc,GAAGC,0BAAoB,CAAC,OAAO,CAAC;AACpD,QAAA,MAAM,UAAU,GAAG,MAAMC,8BAAwB,CAAC;YAC9C,EAAE;YACF,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,MAAM;AACT,SAAA,CAAC;AACF,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;YACpB,OAAO;AACH,gBAAA,QAAQ,EAAEC,uCAA2B;gBACrC,WAAW,EAAEC,yDAA4B,CAAC,YAAY;aACzD;;AAEL,QAAA,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,UAAU;AAC/B,QAAA,IAAI,EAAE,KAAK,SAAS,EAAE;YAClB,OAAO;AACH,gBAAA,QAAQ,EAAED,uCAA2B;gBACrC,WAAW,EAAEC,yDAA4B,CAAC,cAAc;aAC3D;;AAEL,QAAA,IAAI,EAAE,CAAC,IAAI,KAAKC,wBAAS,EAAE;YACvB,OAAO;AACH,gBAAA,QAAQ,EAAEF,uCAA2B;gBACrC,WAAW,EAAEC,yDAA4B,CAAC,aAAa;aAC1D;;QAGL,KAAK,MAAM,MAAM,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE;AACrD,YAAA,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;AAC/B,YAAA,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACxD,YAAA,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE;AAC9B,YAAA,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;;AAGtB,QAAA,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AAE5B,QAAA,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;AAE9B,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;AAEhC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,IAAI,EAAE;AAEnC,QAAA,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,QAAA,MAAM,EAAE,CAAC,KAAK,EAAE;QAEhB,MAAME,sBAAgB,CAAC,MAAM,EAAE;AAC3B,YAAA,IAAI,EAAE,0BAA0B;AAChC,YAAA,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE;YACnC,MAAM;AACT,SAAA,CAAC;QACF,OAAO;AACH,YAAA,QAAQ,EAAE,yBAAyB;SACtC;;;AA/DQC,gBAAA,CAAA;AAHZ,IAAAC,oBAAQ,CAAC,MAAMC,mCAAuB,CAAC;IACvCC,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;IACLF,aAAA,CAAA,CAAA,EAAAG,kBAAM,EAAE,CAAA;;2DAASC,wBAAY,CAAA,CAAA;;AA6DjC,CAAA,EAAAnB,6BAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AArEQA,6BAAqB,GAAAO,gBAAA,CAAA;AADjC,IAAAa,oBAAQ;AACI,CAAA,EAAApB,6BAAqB,CAsEjC;;"} \ 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":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EACH,SAAS,EACT,cAAc,EACd,WAAW,EACX,UAAU,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,eAAe,EACf,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,aAAa,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EACH,cAAc,EACd,SAAS,EACT,4BAA4B,EAC5B,mBAAmB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,kBAAkB,GACrB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9F,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEpG,OAAO,EACH,OAAO,EACP,QAAQ,EACR,eAAe,EACf,gBAAgB,GACnB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACH,EAAE,EACF,EAAE,EACF,eAAe,EACf,aAAa,EACb,KAAK,EACL,SAAS,EACT,oBAAoB,EACpB,OAAO,EACP,IAAI,EACJ,eAAe,GAClB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACH,MAAM,EAEN,EAAE,EACF,MAAM,EACN,WAAW,EACX,MAAM,EACN,KAAK,EACL,KAAK,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,GAC7B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAErF,OAAO,EACH,QAAQ,IAAI,YAAY,EACxB,UAAU,IAAI,cAAc,GAC/B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE1F,OAAO,EACH,UAAU,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,QAAQ,IAAI,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAE7F,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EACH,MAAM,EACN,MAAM,EACN,SAAS,EACT,eAAe,EACf,QAAQ,IAAI,mBAAmB,GAClC,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAElF,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE1F,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AAEpG,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,MAAM,0DAA0D,CAAC;AAE9G,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEhG,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AAElG,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AAElG,OAAO,EAAE,QAAQ,IAAI,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAE5G,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAElG,OAAO,EACH,QAAQ,IAAI,iBAAiB,EAC7B,mBAAmB,GACtB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EACH,MAAM,IAAI,eAAe,EACzB,KAAK,IAAI,cAAc,GAC1B,MAAM,qDAAqD,CAAC;AAE7D,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,0DAA0D,CAAC;AAExG,OAAO,EACH,IAAI,IAAI,YAAY,EACpB,IAAI,IAAI,YAAY,GACvB,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAElG,OAAO,EACH,QAAQ,IAAI,mBAAmB,EAC/B,MAAM,EACN,MAAM,GACT,MAAM,mDAAmD,CAAC;AAE3D,OAAO,EACH,MAAM,IAAI,iBAAiB,EAC3B,KAAK,IAAI,gBAAgB,GAC5B,MAAM,uDAAuD,CAAC;AAE/D,OAAO,EACH,IAAI,IAAI,cAAc,EACtB,IAAI,IAAI,cAAc,GACzB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAEjG,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AAErF,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AAEnF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EACH,aAAa,IAAI,yBAAyB,EAC1C,WAAW,IAAI,uBAAuB,EACtC,eAAe,IAAI,2BAA2B,EAC9C,KAAK,IAAI,iBAAiB,EAC1B,IAAI,IAAI,gBAAgB,EACxB,aAAa,IAAI,yBAAyB,GAC7C,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EACH,OAAO,EACP,MAAM,EACN,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,GAC3B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACH,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACH,aAAa,IAAI,iBAAiB,EAClC,WAAW,IAAI,eAAe,EAC9B,eAAe,IAAI,mBAAmB,EACtC,KAAK,IAAI,SAAS,EAClB,IAAI,IAAI,QAAQ,EAChB,aAAa,IAAI,iBAAiB,GACrC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEnG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC"} \ 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":";;;;;;;;;;;;;;;;;AAAO,MAAM,SAAS,GAAG;AAClB,MAAM,SAAS,GAAG;AAClB,MAAM,KAAK,GAAG;AACd,MAAM,OAAO,GAAG;;ACHV,MAAA,GAAG,GAAG;;AAEf,IAAA,2BAA2B,EAAE,6BAA6B;AAC1D,IAAA,oBAAoB,EAAE,sBAAsB;AAC5C,IAAA,kBAAkB,EAAE,oBAAoB;AACxC,IAAA,0BAA0B,EAAE,4BAA4B;AACxD,IAAA,oCAAoC,EAAE,sCAAsC;AAC5E,IAAA,qBAAqB,EAAE,uBAAuB;AAE9C,IAAA,cAAc,EAAE;AACZ,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,iBAAiB,EAAE,mBAAmB;AACtC,QAAA,KAAK,EAAE,OAAO;AACjB,KAAA;AAED,IAAA,aAAa,EAAE;;AAEX,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,OAAO;AACjB,KAAA;;;ACxBQ,MAAA,cAAc,GAAGA,KAAC,CAAC,MAAM,CAAC;;IAGnC,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,GAAGA,KAAC,CAAC,MAAM,EAAE;IACvC,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,GAAGA,KAAC,CAAC,MAAM,EAAE;IAC3C,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,GAAGA,KAAC,CAAC,MAAM,EAAE;IAC1C,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,GAAGA,KAAC,CAAC,MAAM,EAAE;IAC9C,CAAC,GAAG,CAAC,cAAc,CAAC,iBAAiB,GAAGA,KAAC,CAAC,MAAM,EAAE;IAClD,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,GAAGA,KAAC,CAAC,MAAM,EAAE;AACzC,CAAA;;ACVM,MAAM,cAAc,GAA6B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAEhF,MAAM,YAAY,GAAmB,IAAI,GAAG,CAAC,cAAc,CAAC;AAE/C,MAAA,WAAW,GAAG,CAAC,MAAc,KAAyB;AAC/D,IAAA,OAAQ,YAA4B,CAAC,GAAG,CAAC,MAAM,CAAC;AACpD;AAGa,MAAA,eAAe,GAA8B;IACtD,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;;AAGR,MAAM,aAAa,GAAoB,IAAI,GAAG,CAAC,eAAe,CAAC;AAElD,MAAA,YAAY,GAAG,CAAC,MAAc,KAA0B;AACjE,IAAA,OAAQ,aAA6B,CAAC,GAAG,CAAC,MAAM,CAAC;AACrD;AAwBa,MAAA,eAAe,GAA8B;IACtD,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;;AAGR,MAAM,aAAa,GAAoB,IAAI,GAAG,CAAC,eAAe,CAAC;AAElD,MAAA,YAAY,GAAG,CAAC,MAAc,KAA0B;AACjE,IAAA,OAAQ,aAA6B,CAAC,GAAG,CAAC,MAAM,CAAC;AACrD;AAwGa,MAAA,gBAAgB,GAA+B;IACxD,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;;AAGT,MAAM,cAAc,GAAqB,IAAI,GAAG,CAAC,gBAAgB,CAAC;AAErD,MAAA,aAAa,GAAG,CAAC,MAAc,KAA2B;AACnE,IAAA,OAAQ,cAA8B,CAAC,GAAG,CAAC,MAAM,CAAC;AACtD;;AChSA;AACO,MAAM,eAAe,GAAG,CAAmB,SAAY,KAC1DA,KAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAyB;MAE/C,kBAAkB,GAAG,eAAe,CAAC,GAAG;AAE9C,MAAM,mBAAmB,GAAG,eAAe,CAAC,IAAI,CAAC;AAGxD,MAAM,WAAW,GAAG,EAAE;AAElB,kBAAkB,CAAC,KAAK,CAAC,WAAW;AAEpC,mBAAmB,CAAC,KAAK,CAAC,WAAW;;ACb5B,MAAA,uBAAuB,GAAG,CAAC,MAAc,KAAwB;AAC1E,IAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3C;;ACFA;AACO,MAAM,KAAK,GAAG,CAAyB,MAAS,KAAK,MAAM,CAAC,QAAQ;;ACA1DC;AAAjB,CAAA,UAAiB,gBAAgB,EAAA;AAC7B,IAAA,CAAA,UAAiB,cAAc,EAAA;AAGd,QAAA,cAAA,CAAA,iBAAiB,GAAoC;AAC9D,YAAA,GAAG,eAAe;YAClB,KAAK;SACR;AAEY,QAAA,cAAA,CAAA,kBAAkB,GAAG,CAAC,MAAe,KAAgC;AAC9E,YAAA,OAAO,cAAA,CAAA,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC,KAAK,SAAS;AACtE,SAAC;AACL,KAAC,EAXgB,gBAAc,CAAA,cAAA,KAAd,+BAAc,GAW9B,EAAA,CAAA,CAAA;AAED,IAAA,CAAA,UAAiB,WAAW,EAAA;AAGX,QAAA,WAAA,CAAA,iBAAiB,GAAoC;AAC9D,YAAA,GAAG,eAAe;YAClB,KAAK;YACL,OAAO;SACV;AAEY,QAAA,WAAA,CAAA,kBAAkB,GAAG,CAAC,MAAe,KAAgC;AAC9E,YAAA,OAAO,WAAA,CAAA,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC,KAAK,SAAS;AACtE,SAAC;AACL,KAAC,EAZgB,gBAAW,CAAA,WAAA,KAAX,4BAAW,GAY3B,EAAA,CAAA,CAAA;AACL,CAAC,EA3BgBA,wBAAgB,KAAhBA,wBAAgB,GA2BhC,EAAA,CAAA,CAAA;;AC9BD;AACO,MAAM,QAAQ,GAAG,MAAa;IACjC,MAAM,QAAQ,GAAG,CAAC;AAClB,IAAA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM;SACnB,QAAQ,CAAC,EAAE;AACX,SAAA,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;AAC/B,IAAA,OAAO,MAAM,CAAC,MAAM,GAAG,QAAQ,EAAE;AAC7B,QAAA,MAAM,GAAG,MAAM,GAAG,GAAG;;AAEzB,IAAA,OAAO,MAAM;AACjB;;ACRO,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,GAAG;AACrB,MAAM,KAAK,GAAG,OAAO;AA2CrB,MAAM,gBAAgB,GAAG,CAAC,IAAY,KAAqC;IACvE,MAAM,OAAO,GAAG,eAAe;AAE/B,IAAA,MAAM,IAAI,GAAqB,EAAE,CAAC;AAClC,IAAA,IAAI,IAAI,GAAmB;AACvB,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,IAAI,EAAE,EAAE;KACX;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC;IAEd,OAAO,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;AACxC,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC;AAC9B,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;;AAGtE,QAAA,QAAQ,IAAI,CAAC,IAAI;AACb,YAAA,KAAK,KAAK;gBACN,QAAQ,IAAI;oBACR,KAAK,IAAI,EAAE;wBACP,MAAM,QAAQ,GAAuB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1D,wBAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;4BAClB,OAAOC,aAAM,CAAC,KAAK,CAAC;AAChB,gCAAA,OAAO,EAAE,qBAAqB;AAC9B,gCAAA,KAAK,EAAE,MAAM;AAChB,6BAAA,CAAC;;AAEN,wBAAA,MAAM,EAAE;AACR,wBAAA,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE;wBAC9C;;oBAEJ,KAAK,GAAG,EAAE;wBACN,MAAM,QAAQ,GAAuB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1D,wBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACf,wBAAA,IAAI,QAAQ,KAAK,GAAG,EAAE;AAClB,4BAAA,MAAM,EAAE;AACR,4BAAA,IAAI,GAAG;AACH,gCAAA,IAAI,EAAE,KAAK;AACX,gCAAA,IAAI,EAAE,EAAE;AACR,gCAAA,GAAG,EAAE,IAAI;AACT,gCAAA,OAAO,EAAE;AACL,oCAAA,IAAI,EAAE,OAAO;AAChB,iCAAA;6BACJ;4BACD;;AAEJ,wBAAA,IAAI,GAAG;AACH,4BAAA,IAAI,EAAE,KAAK;AACX,4BAAA,IAAI,EAAE,EAAE;AACR,4BAAA,GAAG,EAAE,GAAG;AACR,4BAAA,OAAO,EAAE;AACL,gCAAA,IAAI,EAAE,OAAO;AAChB,6BAAA;yBACJ;wBACD;;oBAEJ,KAAK,GAAG,EAAE;wBACN,OAAOA,aAAM,CAAC,KAAK,CAAC;AAChB,4BAAA,OAAO,EAAE,qBAAqB;AAC9B,4BAAA,KAAK,EAAE,MAAM;AAChB,yBAAA,CAAC;;oBAEN,SAAS;AACL,wBAAA,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE;wBAC1C;;;AAGZ,YAAA,KAAK,KAAK;YACV,KAAK,KAAK,EAAE;;;AAGR,gBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AACd,oBAAA,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI;AACrB,wBAAA,KAAK,OAAO;4BACR,OAAOA,aAAM,CAAC,KAAK,CAAC;AAChB,gCAAA,OAAO,EAAE,qBAAqB;AAC9B,gCAAA,KAAK,EAAE,MAAM;AAChB,6BAAA,CAAC;AACN,wBAAA,KAAK,MAAM;wBACX,KAAK,WAAW,EAAE;AACd,4BAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gCACrB,IAAI,CAAC,IAAI,CAAC;AACN,oCAAA,IAAI,EAAE,KAAK;AACX,oCAAA,IAAI,EACA,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK;AAClB,0CAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;0CAChC,IAAI,CAAC,IAAI;AACnB,oCAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AACtB,iCAAA,CAAC;gCACF,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;gCAChC;;4BAEJ,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,4BAAA,IAAI,QAAQ,KAAK,GAAG,EAAE;gCAClB,OAAOA,aAAM,CAAC,KAAK,CAAC;AAChB,oCAAA,OAAO,EAAE,sBAAsB;AAC/B,oCAAA,KAAK,EAAE,MAAM;AAChB,iCAAA,CAAC;;4BAEN;;;;AAOZ,gBAAA,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI;oBACrB,KAAK,OAAO,EAAE;wBACV,QAAQ,IAAI;;AAGR,4BAAA,KAAK,GAAG;gCACJ;4BACJ,KAAK,GAAG,EAAE;AACN,gCAAA,IAAI,GAAG;AACH,oCAAA,GAAG,IAAI;AACP,oCAAA,OAAO,EAAE;AACL,wCAAA,IAAI,EAAE,eAAe;AACrB,wCAAA,IAAI,EAAE,EAAE;AACX,qCAAA;AACD,oCAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;iCACvB;gCACD;;4BAEJ,KAAK,GAAG,EAAE;AACN,gCAAA,IAAI,GAAG;AACH,oCAAA,GAAG,IAAI;AACP,oCAAA,OAAO,EAAE;AACL,wCAAA,IAAI,EAAE,eAAe;AACrB,wCAAA,IAAI,EAAE,EAAE;AACX,qCAAA;AACD,oCAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;iCACvB;gCACD;;4BAEJ,SAAS;gCACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oCACrB,OAAOA,aAAM,CAAC,KAAK,CAAC;wCAChB,OAAO,EAAE,CAAG,EAAA,IAAI,CAAoB,kBAAA,CAAA;AACpC,wCAAA,KAAK,EAAE,MAAM;AAChB,qCAAA,CAAC;;AAEN,gCAAA,IAAI,GAAG;AACH,oCAAA,GAAG,IAAI;AACP,oCAAA,OAAO,EAAE;AACL,wCAAA,IAAI,EAAE,MAAM;AACZ,wCAAA,IAAI,EAAE,IAAI;AACb,qCAAA;AACD,oCAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;iCACvB;gCACD;;;;oBAIZ,KAAK,WAAW,EAAE;wBACd,QAAQ,IAAI;AACR,4BAAA,KAAK,GAAG;gCACJ;4BACJ,KAAK,GAAG,EAAE;AACN,gCAAA,IAAI,GAAG;AACH,oCAAA,GAAG,IAAI;AACP,oCAAA,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC1B,oCAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;iCACvB;gCACD;;4BAEJ,SAAS;gCACL,OAAOA,aAAM,CAAC,KAAK,CAAC;oCAChB,OAAO,EAAE,CAAG,EAAA,IAAI,CAAoB,kBAAA,CAAA;AACpC,oCAAA,KAAK,EAAE,MAAM;AAChB,iCAAA,CAAC;;;;oBAId,KAAK,MAAM,EAAE;wBACT,QAAQ,IAAI;4BACR,KAAK,GAAG,EAAE;AACN,gCAAA,IAAI,GAAG;AACH,oCAAA,GAAG,IAAI;AACP,oCAAA,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACvC,oCAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;AACpB,oCAAA,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;iCACjC;gCACD;;AAEJ,4BAAA,KAAK,GAAG;AACJ,gCAAA,IAAI,GAAG;oCACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,oCAAA,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACvC,oCAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;AACpB,oCAAA,OAAO,EAAE;AACL,wCAAA,IAAI,EAAE,OAAO;AAChB,qCAAA;iCACJ;gCACD;4BAEJ,SAAS;gCACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oCACrB,OAAOA,aAAM,CAAC,KAAK,CAAC;wCAChB,OAAO,EAAE,CAAG,EAAA,IAAI,CAAsB,oBAAA,CAAA;AACtC,wCAAA,KAAK,EAAE,MAAM;AAChB,qCAAA,CAAC;;AAEN,gCAAA,IAAI,GAAG;AACH,oCAAA,GAAG,IAAI;AACP,oCAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;AACpB,oCAAA,OAAO,EAAE;AACL,wCAAA,IAAI,EAAE,MAAM;AACZ,wCAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI;AACjC,qCAAA;iCACJ;gCACD;;;;oBAIZ,KAAK,eAAe,EAAE;wBAClB,QAAQ,IAAI;4BACR,KAAK,GAAG,EAAE;AACN,gCAAA,IAAI,GAAG;AACH,oCAAA,GAAG,IAAI;AACP,oCAAA,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACvC,oCAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;AACpB,oCAAA,OAAO,EAAE;AACL,wCAAA,IAAI,EAAE,WAAW;AACpB,qCAAA;iCACJ;gCACD;;4BAEJ,KAAK,IAAI,EAAE;gCACP,MAAM,QAAQ,GAAuB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gCAC1D,QAAQ,QAAQ;AACZ,oCAAA,KAAK,GAAG;AACJ,wCAAA,IAAI,GAAG;AACH,4CAAA,GAAG,IAAI;AACP,4CAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;AACpB,4CAAA,OAAO,EAAE;AACL,gDAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AACvB,gDAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG;AAChC,6CAAA;yCACJ;AACD,wCAAA,MAAM,EAAE;wCACR;oCACJ,KAAK,IAAI,EAAE;AACP,wCAAA,IAAI,GAAG;AACH,4CAAA,GAAG,IAAI;AACP,4CAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;AACpB,4CAAA,OAAO,EAAE;AACL,gDAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AACvB,gDAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI;AACjC,6CAAA;yCACJ;AACD,wCAAA,MAAM,EAAE;wCACR;;AAEJ,oCAAA,KAAK,SAAS;wCACV,OAAOA,aAAM,CAAC,KAAK,CAAC;AAChB,4CAAA,OAAO,EAAE,qBAAqB;AAC9B,4CAAA,KAAK,EAAE,MAAM;AAChB,yCAAA,CAAC;AACN,oCAAA;;wCAEI,OAAOA,aAAM,CAAC,KAAK,CAAC;4CAChB,OAAO,EAAE,CAAK,EAAA,EAAA,QAAQ,CAAoB,kBAAA,CAAA;AAC1C,4CAAA,KAAK,EAAE,MAAM;AAChB,yCAAA,CAAC;;;AAGd,4BAAA;AACI,gCAAA,IAAI,GAAG;AACH,oCAAA,GAAG,IAAI;AACP,oCAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;AACpB,oCAAA,OAAO,EAAE;AACL,wCAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AACvB,wCAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI;AACjC,qCAAA;iCACJ;gCACD;;;oBAGZ,KAAK,eAAe,EAAE;wBAClB,QAAQ,IAAI;AACR,4BAAA,KAAK,GAAG;AACJ,gCAAA,IAAI,GAAG;AACH,oCAAA,GAAG,IAAI;AACP,oCAAA,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACvC,oCAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;AACpB,oCAAA,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;iCACjC;gCACD;AACJ,4BAAA;AACI,gCAAA,IAAI,GAAG;AACH,oCAAA,GAAG,IAAI;AACP,oCAAA,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;AACpB,oCAAA,OAAO,EAAE;AACL,wCAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AACvB,wCAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI;AACjC,qCAAA;iCACJ;gCACD;;;;;;;AAQ5B,IAAA,QAAQ,IAAI,CAAC,IAAI;AACb,QAAA,KAAK,KAAK;YACN,OAAOA,aAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,QAAA,KAAK,KAAK;YACN,OAAOA,aAAM,CAAC,KAAK,CAAC;gBAChB,KAAK,EAAE,MAAM,GAAG,CAAC;AACjB,gBAAA,OAAO,EAAE,mBAAmB;AAC/B,aAAA,CAAC;AACN,QAAA,KAAK,KAAK;YACN,OAAOA,aAAM,CAAC,KAAK,CAAC;gBAChB,KAAK,EAAE,MAAM,GAAG,CAAC;AACjB,gBAAA,OAAO,EAAE,qBAAqB;AACjC,aAAA,CAAC;;AAEd,CAAC;AAaY,MAAA,OAAO,GAAG,CAAC,IAAY,KAA0B;AAC1D,IAAA,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC;AAC1C,IAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,QAAA,OAAOA,aAAM,CAAC,KAAK,CAAC,CAAG,EAAA,WAAW,CAAC,KAAK,CAAC,KAAK,CAAA,EAAA,EAAK,WAAW,CAAC,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;;IAEnF,MAAMC,QAAM,GAAiB,EAAE;AAC/B,IAAA,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE;AAClC,QAAA,QAAQ,IAAI,CAAC,IAAI;AACb,YAAA,KAAK,KAAK;AACN,gBAAA,OAAOD,aAAM,CAAC,KAAK,CACf,6CAA6C,CAChD;AACL,YAAA,KAAK,KAAK;gBACNC,QAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC5D;AACJ,YAAA;AACI,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE;AAClB,oBAAAA,QAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;;gBAEjD;;;AAGZ,IAAA,OAAOD,aAAM,CAAC,EAAE,CAACC,QAAM,CAAC;AAC5B;;ACvYA,MAAM,cAAc,GAAG,CAAC,MAAe,KAA4B;IAC/D,QACI,MAAM,YAAYC,eAAa;AAC/B,QAAA,MAAM,YAAYC,mBAAiB;AACnC,QAAA,MAAM,YAAYC,eAAa;QAC/B,MAAM,YAAYC,oBAAkB;AAE5C,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,IAAY,KAAI;AACnC,IAAA,IAAI,MAAM;AACV,IAAA,IAAI;QACA,MAAM,GAAGC,WAAS,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;;IAC9C,OAAO,KAAK,EAAE;AACZ,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,YAAA,OAAON,aAAM,CAAC,KAAK,CAAC,KAAK,CAAC;;AAE9B,QAAA,IAAI,KAAK,YAAY,KAAK,EAAE;YACxB,OAAOA,aAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;;AAEtC,QAAA,MAAM,KAAK;;AAEf,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,MAAM,CAAC;AAC5B,CAAC;AAEY,MAAA,SAAS,GAAG,CAAC,IAAY,KAAI;AACtC,IAAA,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;AAChC,IAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,OAAO,IAAI;;IAEf,OAAOA,aAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAgB,CAAC;AAC3C;AAEa,MAAA,cAAc,GAAG,CAAC,IAAY,KAAkB;AACzD,IAAA,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;AAClC,IAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAChB,QAAA,OAAO,MAAM;;AAEjB,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;AAC/B;AAEA,MAAM,YAAY,GAAGF,KAAC,CAAC,KAAK,CAAC;AACzB,IAAAA,KAAC,CAAC,UAAU,CAACI,eAAa,CAAC;AAC3B,IAAAJ,KAAC,CAAC,UAAU,CAACK,mBAAiB,CAAC;AAC/B,IAAAL,KAAC,CAAC,UAAU,CAACM,eAAa,CAAC;AAC3B,IAAAN,KAAC,CAAC,UAAU,CAACO,oBAAkB,CAAC;AACnC,CAAA,CAAC;AAEF,MAAM,cAAc,GAAGP,KAAC,CAAC,KAAK,CAAC;;IAE3B,YAAY;AACZ,IAAAA,KAAC,CAAC,MAAM,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;IACrBA,KAAC,CAAC,MAAM,EAAE;IACVA,KAAC,CAAC,MAAM,EAAE;IACVA,KAAC,CAAC,IAAI,EAAE;IACRA,KAAC,CAAC,SAAS,EAAE;AAChB,CAAA,CAAC;MAEW,4BAA4B,GAAG,CAAC,UAAmB,EAAE,IAA2B,KAAI;IAC7F,IAAI,OAAO,GAAG,UAAU;AACxB,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACpB,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC;AAChD,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACjB,OAAOE,aAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;;AAE7C,QAAA,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE;AACrB,YAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAE/B,QAAA,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AACpE,YAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAE/B,QAAA,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AAC7B,YAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAE/B,QAAA,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;;IAE9B,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC;AAChD,IAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACjB,OAAOA,aAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;;IAE7C,OAAOA,aAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AACjC;AAEA,MAAM,WAAW,GAAGF,KAAC,CAAC,MAAM,CAAC;AACzB,IAAA,GAAG,EAAE,KAAK,CAACA,KAAC,CAAC,MAAM,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC,CAAC;;;AAIjC,IAAA,IAAI,EAAEA,KAAC,CAAC,MAAM,CAAC;AACX,QAAA,KAAK,EAAEA,KAAC,CAAC,MAAM,EAAE;KACpB,CAAC;AACL,CAAA,CAAC;AAEF;AACA;AACa,MAAA,mBAAmB,GAAG,CAAC,IAAY,KAAsB;;AAElE,IAAA,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;AAClC,IAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAChB,QAAA,OAAO,MAAM;;IAEjB,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAE/C,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,IAAI,IAAG;AAChE,QAAA,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;AACnC,QAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACvB,YAAA,OAAO,IAAI;;QAEf,OAAO,aAAa,CAAC;aAChB,GAAG,CAAC,IAAI,IAAG;AACR,YAAA,QAAQ,IAAI,CAAC,IAAI;gBACb,KAAK,KAAK,EAAE;AACR,oBAAA,MAAM,QAAQ,GAAG,4BAA4B,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;AACrE,oBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;wBAClB,OAAO,IAAI,CAAC,GAAG;;;AAGnB,oBAAA,QAAQ,OAAO,QAAQ,CAAC,KAAK;AACzB,wBAAA,KAAK,QAAQ;AACb,wBAAA,KAAK,QAAQ;AACb,wBAAA,KAAK,SAAS;AACV,4BAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;AACpC,wBAAA;AACI,4BAAA,OAAO,EAAE;;;gBAGrB,SAAS;oBACL,OAAO,IAAI,CAAC,IAAI;;;AAG5B,SAAC;AACA,aAAA,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;AAChD,KAAC,CAAC;AAEF,IAAA,OAAOE,aAAM,CAAC,EAAE,CAAC,KAAK,CAAC;AAC3B;;ACzIA,MAAMO,OAAK,GAAG,OAAO;AACrB,MAAMC,eAAa,GAAG,eAAe;AAE/B,MAAO,UAAW,SAAQC,oBAAO,CAAA;AACC,IAAA,SAAA;AAApC,IAAA,WAAA,CAAoC,SAA2C,EAAA;AAC3E,QAAA,KAAK,EAAE;QADyB,IAAS,CAAA,SAAA,GAAT,SAAS;;IAIpC,OAAO,CAAC,EAAE,GAAG,EAAmB,EAAA;AACrC,QAAA,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE;QAClC,QAAQ,WAAW;AACf,YAAA,KAAKF,OAAK;AACN,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI;AAC3B,sBAAE;sBACA,IAAIG,qBAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC5C,YAAA,KAAKF,eAAa;gBACd,OAAO,IAAIE,qBAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AACtD,YAAA;AACI,gBAAA,OAAO,SAAS;;;AAInB,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAmB,EAAA;AACxD,QAAA,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE;QAClC,QAAQ,WAAW;AACf,YAAA,KAAKH,OAAK;gBACN,IAAI,CAAC,SAAS,CAAC,KAAK,GAAGI,sBAAS,CAAC,QAAQ,EAAE,OAAO;AAC7C,qBAAA,UAAU;AACV,qBAAA,YAAY;AACZ,qBAAA,IAAI,EAAE;gBACX;AACJ,YAAA,KAAKH,eAAa;AACd,gBAAA,IAAI,CAAC,SAAS,CAAC,cAAc,GAAGG,sBAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;gBAChF;AACJ,YAAA;AACI,gBAAA,MAAM,IAAIC,wBAAW,CACjB,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAA,iBAAA,CAAmB,CACjE;;;IAIJ,SAAS,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;;AAE5B;;ACxCD,MAAMC,oBAAkB,GAAG,OAAyC;AAChE,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,uBAAuB,EAAE,SAAS;AACrC,CAAA,CAAC;AAEI,MAAO,WAAY,SAAQJ,oBAAO,CAAA;AAEf,IAAA,UAAA;AACA,IAAA,IAAA;IAFrB,WACqB,CAAA,UAAuE,EACvE,IAAiC,EAAA;AAElD,QAAA,KAAK,EAAE;QAHU,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAI,CAAA,IAAA,GAAJ,IAAI;;AAKjB,IAAA,mBAAmB,CAAC,SAA0B,EAAA;QAClD,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;AAClC,YAAA,OAAO,EAAE;;AAEb,QAAA,OAAOK,mBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc;aACxC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;aACxE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;;IAGtB,eAAe,CAAC,cAAsB,EAAE,OAA4B,EAAA;AACxE,QAAA,MAAM,SAAS,GAAGH,sBAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;AAChD,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,YAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,GAAG,CAAC;AAC1C,YAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,gBAAA,MAAM,QAAQ,GAAGE,oBAAkB,EAAE;AACrC,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ;AAC/B,gBAAA,OAAO,QAAQ;;AAEnB,YAAA,OAAO,KAAK;;AAEhB,QAAA,OAAO,SAAS;;IAGZ,WAAW,CAAC,cAAsB,EAAE,OAA4B,EAAA;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC;AAC3D,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACf;;AAEJ,QAAA,KAAK,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,KAAK,IAAIA,oBAAkB,EAAE,CAAC,KAAK,CAAC;;AAGtD,IAAA,iBAAiB,CACrB,cAAsB,EACtB,QAAgB,EAChB,OAA4B,EAAA;AAE5B,QAAA,MAAM,SAAS,GAAGF,sBAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC;AAC3D,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACf;;AAEJ,QAAA,KAAK,CAAC,cAAc,GAAG,SAAS;;AAG3B,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAmB,EAAA;AAC9C,QAAA,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE;QAClC,QAAQ,WAAW;AACf,YAAA,KAAK,MAAM;gBACP,OAAO,IAAII,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACrD,oBAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,wBAAA,OAAO,SAAS;;AAEpB,oBAAA,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC;AACjC,iBAAC,CAAC;AACN,YAAA,KAAK,aAAa;gBACd,OAAO,IAAIA,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;oBAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAClC,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;AACN,YAAA,KAAK,UAAU;gBACX,OAAO,IAAIA,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,MAAM,QAAQ,GAAGJ,sBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;AAChE,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACpD,oBAAA,IAAI,KAAK,IAAI,IAAI,EAAE;wBACf;;AAEJ,oBAAA,KAAK,CAAC,KAAK,GAAG,QAAQ;AACtB,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;AACN,YAAA,KAAK,kBAAkB;gBACnB,OAAO,IAAII,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACjD,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;;AAIV,QAAA,OAAO,SAAS;;IAGX,OAAO,GAAA;AACZ,QAAA,MAAM,IAAIH,wBAAW,CAAC,iBAAiB,CAAC;;IAGnC,SAAS,GAAA;QACd,OAAO,IAAI,CAAC,UAAU;;AAE7B;;ACvHM,MAAMI,QAAM,GAAG;AACf,MAAMC,SAAO,GAAG;AAEhB,MAAM,iCAAiC,GAAG,CAI7C,KAAa,EACb,SAAqB,KAErBnB,KAAC,CAAC,KAAK,CAAC;IACJA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAACmB,SAAO,CAAC;AACxB,QAAA,OAAO,EAAEnB;AACJ,aAAA,MAAM,CAAC;AACJ,YAAA,QAAQ,EAAE,KAAK;SAClB;AACA,aAAA,OAAO,EAAE;KACjB,CAAC;IACFA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAACkB,QAAM,CAAC;AACvB,QAAA,MAAM,EAAE,SAAS;KACpB,CAAC;AACL,CAAA,CAAC;AAcC,MAAM,+BAA+B,GAAG,CAI3C,KAAa,EACb,SAAqB,KAErBlB,KAAC,CAAC,KAAK,CAAC;IACJA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAACmB,SAAO,CAAC;AACxB,QAAA,OAAO,EAAEnB;AACJ,aAAA,MAAM,CAAC;AACJ,YAAA,QAAQ,EAAE,KAAK;SAClB;AACA,aAAA,OAAO,EAAE;KACjB,CAAC;IACFA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAACkB,QAAM,CAAC;AACvB,QAAA,MAAM,EAAE,SAAS;KACpB,CAAC;AACL,CAAA,CAAC;;ACnCN,MAAM,CAAC,GAAG,GAAG;AACb,MAAM,CAAC,GAAG,GAAG;AACb,MAAM,CAAC,GAAG,GAAG;AAEb,MAAM,iBAAiB,GAAGlB,KAAC,CAAC,KAAK,CAAC;IAC9BA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACf,QAAA,CAAC,EAAEA,KAAC,CAAC,MAAM,EAAE;KAChB,CAAC;IACFA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACf,QAAA,CAAC,EAAEA,KAAC,CAAC,MAAM,EAAE;KAChB,CAAC;IACFA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACf,QAAA,CAAC,EAAEA,KAAC,CAAC,MAAM,EAAE;KAChB,CAAC;AACL,CAAA,CAAC;AAEK,MAAMoB,eAAa,GAAGpB,KAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAGvD,MAAM,eAAe,GAAGA,KAAC,CAAC,KAAK,CAAC;IAC5BA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACf,QAAA,CAAC,EAAEA,KAAC,CAAC,MAAM,EAAE;KAChB,CAAC;IACFA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACf,QAAA,CAAC,EAAEA,KAAC,CAAC,MAAM,EAAE;KAChB,CAAC;IACFA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACf,QAAA,CAAC,EAAEA,KAAC,CAAC,MAAM,EAAE;KAChB,CAAC;AACL,CAAA,CAAC;AAEK,MAAMqB,aAAW,GAAGrB,KAAC,CAAC,KAAK,CAAC,eAAe,CAAC;MAkBtCsB,OAAK,GAAG,CAAC,KAAa,EAAE,MAAqC,KAAI;AAC1E,IAAA,MAAM,OAAO,GAAGC,+BAAsB,CAAC,MAAM,CAAC;AAC9C,IAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AACjB,QAAA,OAAOrB,aAAM,CAAC,EAAE,CAAC,KAAK,CAAC;;AAE3B,IAAA,OAAOsB,cAAS,CAAC;AACb,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,WAAW,EAAE,OAAO;AACvB,KAAA,CAAC;AACN;AAEO,MAAMC,WAAS,GAAG,CAAC,KAAa,EAAE,MAAqB,KAAI;AAC9D,IAAA,MAAM,OAAO,GAAGC,iCAAwB,CAAC,MAAM,CAAC;AAChD,IAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AACjB,QAAA,OAAOxB,aAAM,CAAC,EAAE,CAAC,KAAK,CAAC;;AAE3B,IAAA,OAAOyB,kBAAa,CAAC;AACjB,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,aAAa,EAAE,OAAO;AACzB,KAAA,CAAC;AACN,CAAC;AAwBM,MAAMC,sBAAoB,GAAG,CAChC,KAAgC,EAChC,MAAiC,KACyD;AAC1F,IAAA,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,GAAG,SAAS,GAAGF,iCAAwB,CAAC,KAAK,CAAC;AAC1E,IAAA,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,GAAG,SAAS,GAAGA,iCAAwB,CAAC,MAAM,CAAC;AAC7E,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,QAAA,OAAOxB,aAAM,CAAC,EAAE,CAAC,MAAM,CAAC;;AAE5B,IAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AACjB,QAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,KAAK,CAAC;;IAE3B,MAAMC,QAAM,GAAG0B,6BAAwB,CAAC;AACpC,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,OAAO;AAClB,KAAA,CAAC;AACF,IAAA,IAAI1B,QAAM,CAAC,OAAO,EAAE;AAChB,QAAA,OAAOA,QAAM;;IAEjB,OAAOD,aAAM,CAAC,EAAE,CAAC4B,+BAAsB,CAAC3B,QAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAEM,MAAM4B,SAAO,GAAG,CAAC,EACpB,SAAS,EACT,aAAa,GAIhB,KAAI;AACD,IAAA,MAAM,cAAc,GAChB,aAAa,IAAI,IAAI,GAAG,SAAS,GAAGL,iCAAwB,CAAC,aAAa,CAAC;AAC/E,IAAA,IAAI,cAAc,IAAI,IAAI,EAAE;QACxB,OAAOxB,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,eAAe,EAAE,SAAS;AAC7B,SAAA,CAAC;;IAEN,MAAMC,QAAM,GAAG6B,4BAAmB,CAAC;QAC/B,SAAS;AACT,QAAA,aAAa,EAAE,cAAc;AAChC,KAAA,CAAC;AACF,IAAA,IAAI7B,QAAM,CAAC,OAAO,EAAE;AAChB,QAAA,OAAOA,QAAM;;IAEjB,OAAOD,aAAM,CAAC,EAAE,CAAC;AACb,QAAA,SAAS,EAAEC,QAAM,CAAC,KAAK,CAAC,SAAS;QACjC,eAAe,EAAE8B,iCAAwB,CAAC9B,QAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;AACnE,KAAA,CAAC;AACN,CAAC;AAED;AACA,MAAM,mBAAmB,GAAG,CAAC,EACzB,KAAK,EACL,MAAM,EACN,SAAS,GAKZ,KAAI;AACD,IAAA,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,GAAG,SAAS,GAAG+B,mCAA0B,CAAC,KAAK,CAAC;AAC5E,IAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACtB,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,GAAG,SAAS,GAAGX,+BAAsB,CAAC,MAAM,CAAC;AAC3E,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACvB,OAAOrB,aAAM,CAAC,EAAE,CAAC;AACb,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,WAAW,EAAE,SAAS;AACzB,aAAA,CAAC;;QAEN,MAAM,aAAa,GAAGiC,wBAAe,CAAC;YAClC,SAAS;AACT,YAAA,WAAW,EAAE,OAAO;AACvB,SAAA,CAAC;AACF,QAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACvB,YAAA,OAAO,aAAa;;QAExB,OAAOjC,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE+B,iCAAwB,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;AACtE,SAAA,CAAC;;AAEN,IAAA,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,GAAG,SAAS,GAAGV,+BAAsB,CAAC,MAAM,CAAC;AAC3E,IAAA,IAAI,OAAO,KAAK,SAAS,EAAE;QACvB,OAAOrB,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,WAAW,EAAE,SAAS;AACzB,SAAA,CAAC;;IAEN,MAAM,YAAY,GAAGiC,wBAAe,CAAC;QACjC,SAAS;AACT,QAAA,WAAW,EAAE,OAAO;AACvB,KAAA,CAAC;AACF,IAAA,IAAI,YAAY,CAAC,OAAO,EAAE;AACtB,QAAA,OAAO,YAAY;;IAEvB,MAAMhC,QAAM,GAAGiC,iCAAwB,CAAC;AACpC,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ;AACtC,KAAA,CAAC;AACF,IAAA,IAAIjC,QAAM,CAAC,OAAO,EAAE;AAChB,QAAA,OAAOA,QAAM;;IAEjB,OAAOD,aAAM,CAAC,EAAE,CAAC;QACb,UAAU,EAAE+B,iCAAwB,CAAC9B,QAAM,CAAC,KAAK,CAAC,UAAU,CAAC;QAC7D,WAAW,EAAE8B,iCAAwB,CAAC9B,QAAM,CAAC,KAAK,CAAC,WAAW,CAAC;AAClE,KAAA,CAAC;AACN,CAAC;AAEM,MAAMkC,iBAAe,GAAG,CAAC,EAC5B,KAAK,EACL,MAAM,EACN,SAAS,GAKZ,KAAI;AACD,IAAA,MAAMlC,QAAM,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAChE,IAAA,IAAIA,QAAM,CAAC,OAAO,EAAE;AAChB,QAAA,OAAOA,QAAM;;IAEjB,OAAOD,aAAM,CAAC,EAAE,CAACC,QAAM,CAAC,KAAK,CAAC,WAAW,CAAC;AAC9C,CAAC;AAEM,MAAMmC,iBAAe,GAAG,CAAC,EAC5B,KAAK,EACL,MAAM,GAIT,KAAI;AACD,IAAA,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,GAAG,SAAS,GAAGf,+BAAsB,CAAC,KAAK,CAAC;AACxE,IAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACtB,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,GAAG,SAAS,GAAGA,+BAAsB,CAAC,MAAM,CAAC;AAC3E,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACvB,OAAOrB,aAAM,CAAC,EAAE,CAAC;AACb,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,WAAW,EAAE,SAAS;AACzB,aAAA,CAAC;;QAEN,OAAOA,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,WAAW,EAAEqC,6BAAoB,CAAC,OAAO,CAAC;AAC7C,SAAA,CAAC;;AAEN,IAAA,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,GAAG,SAAS,GAAGhB,+BAAsB,CAAC,MAAM,CAAC;AAC3E,IAAA,IAAI,OAAO,KAAK,SAAS,EAAE;QACvB,OAAOrB,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,UAAU,EAAEqC,6BAAoB,CAAC,MAAM,CAAC;AACxC,YAAA,WAAW,EAAE,SAAS;AACzB,SAAA,CAAC;;IAEN,MAAMpC,QAAM,GAAGqC,6BAAoB,CAAC;AAChC,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,OAAO;AAClB,KAAA,CAAC;AACF,IAAA,IAAIrC,QAAM,CAAC,OAAO,EAAE;AAChB,QAAA,OAAOA,QAAM;;IAEjB,OAAOD,aAAM,CAAC,EAAE,CAAC;QACb,UAAU,EAAEqC,6BAAoB,CAACpC,QAAM,CAAC,KAAK,CAAC,UAAU,CAAC;QACzD,WAAW,EAAEoC,6BAAoB,CAACpC,QAAM,CAAC,KAAK,CAAC,WAAW,CAAC;AAC9D,KAAA,CAAC;AACN,CAAC;AAEY,MAAAsC,MAAI,GAAG,CAAC,EACjB,IAAI,EACJ,IAAI,GAIP,KAAiC;AAC9B,IAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACf,QAAA,OAAO,SAAS;;IAEpB,OAAOR,iCAAwB,CAC3BS,aAAQ,CAAC;AACL,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,SAAS,EAAE,IAAI;AAClB,KAAA,CAAC,CACL;AACL;AAoBa,MAAAC,eAAa,GAAG,CAAC,MAAuB,KAAiB;AAClE,IAAA,MAAM,eAAe,GAAGT,mCAA0B,CAAC,MAAM,CAAC;AAC1D,IAAA,IAAI,eAAe,IAAI,IAAI,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;AAE7C,IAAA,MAAM,WAAW,GAAGU,sBAAiB,CAAC,eAAe,CAAC;AACtD,IAAA,OAAOL,6BAAoB,CAAC,WAAW,CAAC;AAC5C;AAEO,MAAMM,iBAAe,GAAG,CAAC,MAAuB,KAAmB;AACtE,IAAA,MAAM,eAAe,GAAGX,mCAA0B,CAAC,MAAM,CAAC;AAC1D,IAAA,IAAI,eAAe,IAAI,IAAI,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;AAE7C,IAAA,MAAM,aAAa,GAAGY,wBAAmB,CAAC,eAAe,CAAC;AAC1D,IAAA,OAAOhB,+BAAsB,CAAC,aAAa,CAAC;AAChD,CAAC;;AC7UD;AAEA,MAAM,gCAAgC,GAAG,+BAA+B;AACxE,MAAM,iCAAiC,GAAG,2CAA2C;AAErF,MAAM,iBAAiB,GAAG9B,KAAC,CAAC,KAAK,CAAC,CAACA,KAAC,CAAC,MAAM,EAAE,EAAEA,KAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAgBvD,MAAMoB,eAAa,GAAGpB,KAAC,CAAC,KAAK,CAAC;IACjCA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAACmB,SAAO,CAAC;AACxB,QAAA,OAAO,EAAEnB,KAAC,CAAC,MAAM,CAAC;AACd,YAAA,QAAQ,EAAE,iBAAiB;SAC9B,CAAC;KACL,CAAC;IACFA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAACkB,QAAM,CAAC;QACvB,MAAM,EAAE6B,eAA2B;KACtC,CAAC;AACL,CAAA,CAAC;AAGK,MAAM1B,aAAW,GAAGrB,KAAC,CAAC,KAAK,CAAC;IAC/BA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAACmB,SAAO,CAAC;AACxB,QAAA,OAAO,EAAEnB,KAAC,CAAC,MAAM,CAAC;AACd,YAAA,QAAQ,EAAE,iBAAiB;SAC9B,CAAC;KACL,CAAC;IACFA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAACkB,QAAM,CAAC;QACvB,MAAM,EAAE8B,aAAyB;KACpC,CAAC;AACL,CAAA,CAAC;AAsBW,MAAAL,eAAa,GAAG,CAAC,MAAuB,KAAiB;AAClE,IAAA,IAAI,MAAM,CAAC,IAAI,KAAKxB,SAAO,EAAE;QACzB,OAAO;AACH,YAAA,IAAI,EAAEA,SAAO;AACb,YAAA,OAAO,EAAE;AACL,gBAAA,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;AACpC,aAAA;SACJ;;IAEL,OAAO;AACH,QAAA,IAAI,EAAED,QAAM;QACZ,MAAM,EAAE+B,eAA2B,CAAC,MAAM,CAAC,MAAM,CAAC;KACrD;AACL;AAEO,MAAMJ,iBAAe,GAAG,CAAC,MAAuB,KAAmB;AACtE,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK1B,SAAO,EAAE;QACzB,OAAO;AACH,YAAA,IAAI,EAAEA,SAAO;AACb,YAAA,OAAO,EAAE;AACL,gBAAA,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;AACpC,aAAA;SACJ;;IAEL,OAAO;AACH,QAAA,IAAI,EAAED,QAAM;QACZ,MAAM,EAAEgC,iBAA6B,CAAC,MAAM,CAAC,MAAM,CAAC;KACvD;AACL,CAAC;MAEY5B,OAAK,GAAG,CAAC,KAAyB,EAAE,MAAqC,KAAI;AACtF,IAAA,IAAI,MAAM,CAAC,IAAI,KAAKH,SAAO,EAAE;QACzB,OAAOjB,aAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;;AAE7C,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,QAAA,OAAOA,aAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC;;IAEzD,OAAOiD,OAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;AACpD;AAEO,MAAM1B,WAAS,GAAG,CAAC,KAAyB,EAAE,MAAqB,KAAI;AAC1E,IAAA,IAAI,MAAM,CAAC,IAAI,KAAKN,SAAO,EAAE;QACzB,OAAOjB,aAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;;AAE7C,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,QAAA,OAAOA,aAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC;;IAEzD,OAAOkD,WAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;AACxD,CAAC;AAED;AACO,MAAMxB,sBAAoB,GAAG,CAChC,KAAgC,EAChC,MAAiC,KACoD;AACrF,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,QAAA,OAAO1B,aAAM,CAAC,EAAE,CAAC,MAAM,CAAC;;AAE5B,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,QAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,KAAK,CAAC;;AAE3B,IAAA,QAAQ,KAAK,CAAC,IAAI;AACd,QAAA,KAAKiB,SAAO;AACR,YAAA,OAAOjB,aAAM,CAAC,EAAE,CAAC,KAAK,CAAC;AAC3B,QAAA,KAAKgB,QAAM;AACP,YAAA,QAAQ,MAAM,CAAC,IAAI;gBACf,KAAKC,SAAO,EAAE;oBACV,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;AACjC,wBAAA,OAAOjB,aAAM,CAAC,KAAK,CACf,kEAAkE,CACrE;;AAEL,oBAAA,MAAM,QAAQ,GAAGkD,WAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;AAC/E,oBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,wBAAA,OAAO,QAAQ;;oBAEnB,OAAOlD,aAAM,CAAC,EAAE,CAAC;AACb,wBAAA,IAAI,EAAEiB,SAAO;AACb,wBAAA,OAAO,EAAE;4BACL,QAAQ,EAAE,QAAQ,CAAC,KAAK;AAC3B,yBAAA;AACJ,qBAAA,CAAC;;gBAEN,KAAK,QAAQ,EAAE;AACX,oBAAA,MAAM,QAAQ,GAAGkC,sBAAkC,CAC/C,KAAK,CAAC,MAAM,EACZ,MAAM,CAAC,MAAM,CAChB;AACD,oBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,wBAAA,OAAO,QAAQ;;AAEnB,oBAAA,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;AACxB,wBAAA,OAAOnD,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;oBAE/B,OAAOA,aAAM,CAAC,EAAE,CAAC;AACb,wBAAA,IAAI,EAAEgB,QAAM;wBACZ,MAAM,EAAE,QAAQ,CAAC,KAAK;AACzB,qBAAA,CAAC;;;;AAItB,CAAC;AAEY,MAAAuB,MAAI,GAAG,CAAC,EACjB,IAAI,EACJ,IAAI,GAIP,KAAiC;AAC9B,IAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,YAAA,OAAO,SAAS;;QAEpB,OAAO;AACH,YAAA,IAAI,EAAEtB,SAAO;AACb,YAAA,OAAO,EAAE;AACL,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,QAAQ,EAAE,IAAI;AACjB,aAAA;SACJ;;AAEL,IAAA,IAAI,IAAI,IAAI,IAAI,EAAE;QACd,OAAO;AACH,YAAA,IAAI,EAAEA,SAAO;AACb,YAAA,OAAO,EAAE;AACL,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,QAAQ,EAAE,IAAI;AACjB,aAAA;SACJ;;AAEL,IAAA,MAAM,IAAI,GAAGmC,MAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC/C,IAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,QAAA,OAAO,SAAS;;IAEpB,OAAO;AACH,QAAA,IAAI,EAAEpC,QAAM;AACZ,QAAA,MAAM,EAAE,IAAI;KACf;AACL;AAEA;AACO,MAAMa,SAAO,GAAG,CAAC,EACpB,SAAS,EACT,aAAa,GAIhB,KAMG;AACA,IAAA,IAAI,aAAa,IAAI,IAAI,EAAE;QACvB,OAAO7B,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,eAAe,EAAE,SAAS;AAC7B,SAAA,CAAC;;AAEN,IAAA,IAAI,aAAa,CAAC,IAAI,KAAKiB,SAAO,EAAE;QAChC,OAAOjB,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ;AACzC,YAAA,eAAe,EAAEuC,MAAI,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACnF,SAAA,CAAC;;AAGN,IAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AACnB,QAAA,OAAOvC,aAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC;;AAEzD,IAAA,MAAM,cAAc,GAAGqD,SAAqB,CAAC;QACzC,SAAS;QACT,aAAa,EAAE,aAAa,CAAC,MAAM;AACtC,KAAA,CAAC;AACF,IAAA,IAAI,cAAc,CAAC,OAAO,EAAE;AACxB,QAAA,OAAO,cAAc;;IAEzB,OAAOrD,aAAM,CAAC,EAAE,CAAC;AACb,QAAA,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,SAAS;AACzC,QAAA,eAAe,EACX,cAAc,CAAC,KAAK,CAAC,eAAe,IAAI;AACpC,cAAE;AACF,cAAE;AACI,gBAAA,IAAI,EAAEgB,QAAM;AACZ,gBAAA,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,eAAe;AAC/C,aAAA;AACd,KAAA,CAAC;AACN,CAAC;AAEM,MAAMmB,iBAAe,GAAG,CAAC,EAC5B,KAAK,EACL,MAAM,EACN,SAAS,GAKZ,KAA+F;AAC5F,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,QAAA,OAAOnC,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,IAAI,MAAM,CAAC,IAAI,KAAKiB,SAAO,EAAE;QACzB,MAAM,QAAQ,GAAG,SAAS;AAC1B,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ;AACxC,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAClB,gBAAA,OAAOjB,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;YAE/B,OAAOA,aAAM,CAAC,EAAE,CAAC;AACb,gBAAA,IAAI,EAAEiB,SAAO;AACb,gBAAA,OAAO,EAAE;oBACL,QAAQ;oBACR,QAAQ;AACX,iBAAA;AACJ,aAAA,CAAC;;AAEN,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;YAClB,OAAOjB,aAAM,CAAC,EAAE,CAAC;AACb,gBAAA,IAAI,EAAEiB,SAAO;AACb,gBAAA,OAAO,EAAE;oBACL,QAAQ;oBACR,QAAQ;AACX,iBAAA;AACJ,aAAA,CAAC;;AAGN,QAAA,MAAM,IAAI,GAAGmC,MAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,YAAA,OAAOpD,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;QAE/B,OAAOA,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,IAAI,EAAEgB,QAAM;AACZ,YAAA,MAAM,EAAE,IAAI;AACf,SAAA,CAAC;;AAGN,IAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AACnB,QAAA,OAAOhB,aAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC;;AAGzD,IAAA,IAAI,KAAK,EAAE,IAAI,KAAKiB,SAAO,EAAE;AACzB,QAAA,OAAOjB,aAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC;;AAG1D,IAAA,MAAM,WAAW,GAAGsD,iBAA6B,CAAC;QAC9C,KAAK,EAAE,KAAK,EAAE,MAAM;QACpB,MAAM,EAAE,MAAM,CAAC,MAAM;AACrB,QAAA,SAAS,EAAE,SAAS;AACvB,KAAA,CAAC;AACF,IAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,QAAA,OAAO,WAAW;;AAEtB,IAAA,IAAI,WAAW,CAAC,KAAK,IAAI,IAAI,EAAE;AAC3B,QAAA,OAAOtD,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;IAE/B,OAAOA,aAAM,CAAC,EAAE,CAAC;AACb,QAAA,IAAI,EAAEgB,QAAM;QACZ,MAAM,EAAE,WAAW,CAAC,KAAK;AAC5B,KAAA,CAAC;AACN,CAAC;AAEM,MAAMoB,iBAAe,GAAG,CAAC,EAC5B,KAAK,EACL,MAAM,GAIT,KAMG;IACA,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE;QACjC,OAAOpC,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,WAAW,EAAE,MAAM;AACtB,SAAA,CAAC;;AAGN,IAAA,IAAI,KAAK,CAAC,IAAI,KAAKiB,SAAO,EAAE;AACxB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAKD,QAAM,EAAE;YACxB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;AAChC,gBAAA,MAAM,IAAI,KAAK,CACX,wEAAwE,CAC3E;;YAEL,OAAOhB,aAAM,CAAC,EAAE,CAAC;AACb,gBAAA,UAAU,EAAE,KAAK;AACpB,aAAA,CAAC;;QAGN,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;YAChC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;AACjC,gBAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;;AAEvD,YAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,EAAE,CAAC;;QAExB,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;AACjC,YAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;;AAEvD,QAAA,MAAM,IAAI,GAAGoD,MAAkB,CAAC;AAC5B,YAAA,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;AAC7B,YAAA,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;AAC/B,SAAA,CAAC;QACF,OAAOpD,aAAM,CAAC,EAAE,CAAC;YACb,UAAU,EACN,IAAI,IAAI;AACJ,kBAAE;AACF,kBAAE;AACI,oBAAA,IAAI,EAAEgB,QAAM;AACZ,oBAAA,MAAM,EAAE+B,eAA2B,CAAC,IAAI,CAAC;AAC5C,iBAAA;AACd,SAAA,CAAC;;AAGN,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK/B,QAAM,EAAE;AACxB,QAAA,MAAM,WAAW,GAAGuC,iBAA6B,CAAC;YAC9C,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;AACxB,SAAA,CAAC;AACF,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,YAAA,OAAO,WAAW;;QAEtB,OAAOvD,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,UAAU,EACN,WAAW,CAAC,KAAK,CAAC,UAAU,IAAI;AAC5B,kBAAE;AACF,kBAAE;AACI,oBAAA,IAAI,EAAEgB,QAAM;AACZ,oBAAA,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,UAAU;AACvC,iBAAA;AACX,YAAA,WAAW,EACP,WAAW,CAAC,KAAK,CAAC,WAAW,IAAI;AAC7B,kBAAE;AACF,kBAAE;AACI,oBAAA,IAAI,EAAEA,QAAM;AACZ,oBAAA,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW;AACxC,iBAAA;AACd,SAAA,CAAC;;IAGN,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;AACjC,QAAA,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC;;IAE7F,OAAOhB,aAAM,CAAC,EAAE,CAAC;AACb,QAAA,WAAW,EAAE,MAAM;AACtB,KAAA,CAAC;AACN,CAAC;;ACxaM,MAAM,aAAa,GAAG,CAAC,MAA+B,KAAa;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,CAAC;AAEY,MAAA,UAAU,GAAG,CAAC,MAA+B,KAAa;AACnE,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE;YAC9B;;AAEJ,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;AACzB,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,OAAO,KAAK;;;AAGpB,IAAA,OAAO,IAAI;AACf;AAEO,MAAMwD,QAAM,GAAG,CAA6B,KAAY,KAAK1D,KAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;;ACzB9F;AACA;AAiBO,MAAM,MAAM,GAAG;AACf,MAAM,OAAO,GAAG,SAAS;AACzB,MAAM,EAAE,GAAG;AACX,MAAM,MAAM,GAAG;AACf,MAAM,WAAW,GAAG;AACpB,MAAM,MAAM,GAAG;AAQtB;AACa,MAAA,0BAA0B,GAAG,CAAyB,KAAQ,KAAI;IAC3E,OAAO;AACH,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,OAAO;QACb,KAAK;KACC;AACd;AASA;MACa,uBAAuB,GAAG,CAAoB,QAAW,MACjE;AACG,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,EAAE;IACR,QAAQ;AACX,CAAA;AAOL;AACa,MAAA,yBAAyB,GAAG,CACrC,KAAa,KACgB;IAC7B,OAAO;AACH,QAAA,IAAI,EAAE,MAAM;QACZ,KAAK;KACC;AACd;AAQA;MACa,8BAA8B,GAAG,CAC1C,KAAa,EACb,YAA2B,KAC3B;IACA,OAAO;AACH,QAAA,IAAI,EAAE,WAAW;QACjB,KAAK;QACL,YAAY;KACN;AACd;AAeA;AACa,MAAA,yBAAyB,GAAG,CAKrC,KAAQ,EACR,EAAK,EACL,EAAK,KACL;IACA,OAAO;AACH,QAAA,IAAI,EAAE,MAAM;QACZ,EAAE;QACF,EAAE;QACF,KAAK;KACC;AACd;AAuDa,MAAA,KAAK,GAAG,CAAwB,MAAS,KAAyB;AAC3E,IAAA,QAAQ,MAAM,CAAC,IAAI;QACf,KAAK,MAAM,EAAE;AACT,YAAA,QAAQ,MAAM,CAAC,IAAI;AACf,gBAAA,KAAK,OAAO;oBACR,OAAO,MAAM,CAAC,KAAK;AACvB,gBAAA,KAAK,EAAE;oBACH,OAAO,MAAM,CAAC;AACV,0BAAEA,KAAC,CAAC,KAAK,CAAC,CAACA,KAAC,CAAC,MAAM,EAAE,EAAEA,KAAC,CAAC,SAAS,EAAE,CAAC;AACrC,0BAAGA,KAAC,CAAC,MAAM,EAAU;;YAEjC;;AAEJ,QAAA,KAAK,MAAM;QACX,KAAK,WAAW,EAAE;YACd,OAAOA,KAAC,CAAC,KAAK,CAAC,CAAC2D,QAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE3D,KAAC,CAAC,SAAS,EAAE,CAAC,CAAQ;;QAExE,KAAK,MAAM,EAAE;AACT,YAAA,OAAOA;AACF,iBAAA,MAAM,CAAC;gBACJ,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,GAAGA,KAAC,CAAC,SAAS,EAAE,GAAGA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,GAAGA,KAAC,CAAC,SAAS,EAAE,GAAGA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;aAC/D;iBACA,GAAG,CAACA,KAAC,CAAC,MAAM,CAAC4D,eAAS,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAQ;;;AAGrF;AAqBa,MAAA,WAAW,GAAG,CAAwB,MAAS,KAA+B;AACvF,IAAA,QAAQ,MAAM,CAAC,IAAI;QACf,KAAK,MAAM,EAAE;AACT,YAAA,QAAQ,MAAM,CAAC,IAAI;AACf,gBAAA,KAAK,OAAO;AACR,oBAAA,OAAO5D,KAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,CAAQ;AACtD,gBAAA,KAAK,EAAE;oBACH,OAAO,MAAM,CAAC;0BACR6D;AACF,0BAAGb,aAAiC;;YAEhD;;QAEJ,KAAK,MAAM,EAAE;AACT,YAAA,OAAOW,QAAO,CACV,+BAA+B,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC3E;;AAEZ,QAAA,KAAK,WAAW;YACZ,OAAOA,QAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAQ;QACpD,KAAK,MAAM,EAAE;AACT,YAAA,OAAO3D;AACF,iBAAA,MAAM,CAAC;gBACJ,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,GAAGA,KAAC,CAAC,SAAS,EAAE,GAAGA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,GAAGA,KAAC,CAAC,SAAS,EAAE,GAAGA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;aAC/D;iBACA,GAAG,CACAA,KAAC,CAAC,MAAM,CAAC4D,eAAS,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CACpE;;;AAGxB;AAqBa,MAAA,aAAa,GAAG,CAAwB,MAAS,KAAiC;AAC3F,IAAA,QAAQ,MAAM,CAAC,IAAI;QACf,KAAK,MAAM,EAAE;AACT,YAAA,QAAQ,MAAM,CAAC,IAAI;AACf,gBAAA,KAAK,OAAO;AACR,oBAAA,OAAO5D,KAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,CAAQ;AACtD,gBAAA,KAAK,EAAE;oBACH,OAAO,MAAM,CAAC;0BACR8D;AACF,0BAAGf,eAAmC;;YAElD;;QAEJ,KAAK,MAAM,EAAE;AACT,YAAA,OAAOY,QAAO,CACV,iCAAiC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC/E;;QAEZ,KAAK,WAAW,EAAE;YACd,OAAOA,QAAO,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAQ;;QAEtD,KAAK,MAAM,EAAE;YACT,MAAM,IAAI,GAAG3D;AACR,iBAAA,MAAM,CAAC;gBACJ,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,GAAGA,KAAC,CAAC,SAAS,EAAE,GAAGA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,GAAGA,KAAC,CAAC,SAAS,EAAE,GAAGA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;aAC/D;iBACA,GAAG,CACAA,KAAC,CAAC,MAAM,CAAC4D,eAAS,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CACtE;AACZ,YAAA,OAAO,IAAI;;;AAGvB;;AC7SO,MAAM,OAAO,GAAG;AAChB,MAAM,QAAQ,GAAG;AACjB,MAAM,eAAe,GAAG;AAE/B,MAAM,UAAU,GAAG5D,KAAC,CAAC,KAAK,CAAC,CAACA,KAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AAE1F,MAAM,aAAa,GAAGA,KAAC,CAAC,MAAM,CAAC;AAClC,IAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,IAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAEhB,IAAA,IAAI,EAAEA,KAAC,CAAC,MAAM,EAAE;IAChB,UAAU;AACb,CAAA,CAAC;MAEW,gBAAgB,GAAG,0BAA0B,CAAC,aAAa;;ACJjE,MAAM,WAAW,GAAG,CACvB,MAA+C,EAC/C,OAA4B,KACnB;AACT,IAAA,MAAM,MAAM,GAAG,IAAI+D,oBAAO,EAAE;IAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAIC,oBAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAIA,oBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1F,MAAM,CAAC,GAAG,CAAC;AACP,QAAA,QAAQ,EAAE,IAAIA,oBAAO,CAAC,YAAY,CAAC;AACnC,QAAA,QAAQ,EAAE,IAAIA,oBAAO,CAAC,MAAM,CAAC,UAAU,CAAC;QACxC,OAAO;AACV,KAAA,CAAC;AACF,IAAA,OAAO,MAAM;AACjB,CAAC;AAEM,MAAM,qBAAqB,GAAG,CACjC,MAAc,EACd,OAA4B,KACyB;AACrD,IAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACtB,QAAA,OAAO,SAAS;;IAEpB,IAAI,MAAM,EAAE,IAAI,KAAKC,kBAAK,CAAC,MAAM,EAAE;QAC/B,MAAM,IAAInD,wBAAW,EAAE;;IAE3B,MAAM,IAAI,GAAGD,sBAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAImD,oBAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO;AACjF,SAAA,SAAS;AACT,SAAA,IAAI,EAAE;IACX,MAAM,UAAU,GAAGnD,sBAAS,CACxB,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAImD,oBAAO,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,EAC5D,OAAO;AAEN,SAAA,SAAS;AACT,SAAA,IAAI,EAAE;AACX,IAAA,IAAI,UAAU,KAAKE,OAAgB,IAAI,UAAU,KAAKC,eAAwB,EAAE;AAC5E,QAAA,MAAM,IAAIrD,wBAAW,CACjB,CAAsB,mBAAA,EAAAoD,OAAgB,CAAA,MAAA,EAASC,eAAwB,CAAG,CAAA,CAAA,EAC1E,OAAO,EAAE,KAAK,CACjB;;IAEL,OAAO;AACH,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;QACL,IAAI;QACJ,UAAU;KACb;AACL,CAAC;;AC7CD,MAAM1D,OAAK,GAAG,OAAO;AACrB,MAAMC,eAAa,GAAG,eAAe;AAE/B,MAAO,SAAU,SAAQC,oBAAO,CAAA;AACE,IAAA,QAAA;AAApC,IAAA,WAAA,CAAoC,QAAyC,EAAA;AACzE,QAAA,KAAK,EAAE;QADyB,IAAQ,CAAA,QAAA,GAAR,QAAQ;;IAInC,OAAO,CAAC,EAAE,GAAG,EAAmB,EAAA;AACrC,QAAA,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE;QAClC,QAAQ,WAAW;AACf,YAAA,KAAKF,OAAK;gBACN,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,GAAG,SAAS,GAAG,IAAI2D,oBAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrF,YAAA,KAAK1D,eAAa;gBACd,OAAO,IAAIE,qBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;AACrD,YAAA;AACI,gBAAA,OAAO,SAAS;;;AAInB,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAmB,EAAA;AACxD,QAAA,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE;QAClC,QAAQ,WAAW;AACf,YAAA,KAAKH,OAAK;gBACN,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAGI,sBAAS,CAAC,QAAQ,EAAE,OAAO;AAC5C,qBAAA,SAAS;AACT,qBAAA,YAAY;AACZ,qBAAA,IAAI,EAAE;gBACX;AACJ,YAAA,KAAKH,eAAa;AACd,gBAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAGG,sBAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;gBAC/E;AACJ,YAAA;AACI,gBAAA,MAAM,IAAIC,wBAAW,CACjB,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAA,iBAAA,CAAmB,CACjE;;;IAIJ,SAAS,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ;;AAE3B;;ACvCD,MAAMC,oBAAkB,GAAG,OAAwC;AAC/D,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,uBAAuB,EAAE,SAAS;AACrC,CAAA,CAAC;AAEI,MAAO,UAAW,SAAQJ,oBAAO,CAAA;AAEd,IAAA,SAAA;AACA,IAAA,IAAA;IAFrB,WACqB,CAAA,SAAqE,EACrE,IAAiC,EAAA;AAElD,QAAA,KAAK,EAAE;QAHU,IAAS,CAAA,SAAA,GAAT,SAAS;QACT,IAAI,CAAA,IAAA,GAAJ,IAAI;;AAKjB,IAAA,cAAc,CAAC,SAA0B,EAAA;QAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;AACjC,YAAA,OAAO,EAAE;;AAEb,QAAA,OAAOK,mBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa;aACvC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;aACxE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;;IAGtB,UAAU,CAAC,cAAsB,EAAE,OAA4B,EAAA;AACnE,QAAA,MAAM,IAAI,GAAGH,sBAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;QAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACtC,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AACjC,YAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,gBAAA,MAAM,QAAQ,GAAGE,oBAAkB,EAAE;AACrC,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ;AAC9B,gBAAA,OAAO,QAAQ;;AAEnB,YAAA,OAAO,KAAK;;AAEhB,QAAA,OAAO,SAAS;;AAGZ,IAAA,eAAe,CACnB,cAAsB,EACtB,SAAiB,EACjB,MAAe,EACf,OAA4B,EAAA;AAE5B,QAAA,MAAM,IAAI,GAAGF,sBAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC;AACtD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACf;;AAEJ,QAAA,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE;YACrB;;QAEJ,IAAI,MAAM,EAAE;AACR,YAAA,KAAK,CAAC,KAAK,IAAI,IAAI;;aAChB;AACH,YAAA,KAAK,CAAC,KAAK,IAAI,IAAI;;;AAInB,IAAA,iBAAiB,CACrB,cAAsB,EACtB,QAAgB,EAChB,OAA4B,EAAA;AAE5B,QAAA,MAAM,SAAS,GAAGA,sBAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC;AACtD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACf;;AAEJ,QAAA,KAAK,CAAC,cAAc,GAAG,SAAS;;AAG3B,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAmB,EAAA;AAC9C,QAAA,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE;QAClC,QAAQ,WAAW;AACf,YAAA,KAAK,MAAM;gBACP,OAAO,IAAII,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAChD,oBAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,wBAAA,OAAO,SAAS;;AAEpB,oBAAA,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC;AAChC,iBAAC,CAAC;AACN,YAAA,KAAK,gBAAgB;gBACjB,OAAO,IAAIA,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;AACrD,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;AACN,YAAA,KAAK,gBAAgB;gBACjB,OAAO,IAAIA,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;AACtD,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;AACN,YAAA,KAAK,UAAU;gBACX,OAAO,IAAIA,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,MAAM,QAAQ,GAAGJ,sBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;AAC/D,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAC/C,oBAAA,IAAI,KAAK,IAAI,IAAI,EAAE;wBACf;;AAEJ,oBAAA,KAAK,CAAC,KAAK,GAAG,QAAQ;AACtB,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;AACN,YAAA,KAAK,kBAAkB;gBACnB,OAAO,IAAII,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACjD,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;;AAIV,QAAA,OAAO,SAAS;;IAGX,OAAO,GAAA;AACZ,QAAA,MAAM,IAAIH,wBAAW,CAAC,iBAAiB,CAAC;;IAGnC,SAAS,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;;AAE5B;;AC9HD,MAAM,KAAK,GAAG,OAAO;AACrB,MAAM,aAAa,GAAG,eAAe;AAE/B,MAAO,SAAU,SAAQH,oBAAO,CAAA;AACE,IAAA,QAAA;AAApC,IAAA,WAAA,CAAoC,QAAyC,EAAA;AACzE,QAAA,KAAK,EAAE;QADyB,IAAQ,CAAA,QAAA,GAAR,QAAQ;;IAInC,OAAO,CAAC,EAAE,GAAG,EAAmB,EAAA;AACrC,QAAA,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE;QAClC,QAAQ,WAAW;AACf,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,GAAG,SAAS,GAAG,IAAIqD,oBAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrF,YAAA,KAAK,aAAa;gBACd,OAAO,IAAIpD,qBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;AACrD,YAAA;AACI,gBAAA,OAAO,SAAS;;;AAInB,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAmB,EAAA;AACxD,QAAA,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE;QAClC,QAAQ,WAAW;AACf,YAAA,KAAK,KAAK;AACN,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAGC,sBAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;gBACrE;AACJ,YAAA,KAAK,aAAa;AACd,gBAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAGA,sBAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;gBAC/E;AACJ,YAAA;AACI,gBAAA,MAAM,IAAIC,wBAAW,CACjB,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAA,iBAAA,CAAmB,CACjE;;;IAIJ,SAAS,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ;;AAE3B;;ACpCD,MAAM,kBAAkB,GAAG,OAAwC;AAC/D,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,uBAAuB,EAAE,SAAS;AACrC,CAAA,CAAC;AAEI,MAAO,UAAW,SAAQH,oBAAO,CAAA;AAEd,IAAA,SAAA;AACA,IAAA,IAAA;IAFrB,WACqB,CAAA,SAAqE,EACrE,IAAiC,EAAA;AAElD,QAAA,KAAK,EAAE;QAHU,IAAS,CAAA,SAAA,GAAT,SAAS;QACT,IAAI,CAAA,IAAA,GAAJ,IAAI;;AAKjB,IAAA,cAAc,CAAC,SAA0B,EAAA;QAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;AACjC,YAAA,OAAO,EAAE;;AAEb,QAAA,OAAOK,mBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa;aACvC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;aACxE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;;IAGtB,UAAU,CAAC,cAAsB,EAAE,OAA4B,EAAA;AACnE,QAAA,MAAM,IAAI,GAAGH,sBAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACtC,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AACjC,YAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,gBAAA,MAAM,QAAQ,GAAG,kBAAkB,EAAE;AACrC,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ;AAC9B,gBAAA,OAAO,QAAQ;;AAEnB,YAAA,OAAO,KAAK;;AAEhB,QAAA,OAAO,SAAS;;AAGZ,IAAA,iBAAiB,CACrB,cAAsB,EACtB,QAAgB,EAChB,OAA4B,EAAA;AAE5B,QAAA,MAAM,SAAS,GAAGA,sBAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC;AACtD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACf;;AAEJ,QAAA,KAAK,CAAC,cAAc,GAAG,SAAS;;AAG3B,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAmB,EAAA;AAC9C,QAAA,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE;QAClC,QAAQ,WAAW;AACf,YAAA,KAAK,MAAM;gBACP,OAAO,IAAII,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAChD,oBAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,wBAAA,OAAO,SAAS;;AAEpB,oBAAA,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC;AAChC,iBAAC,CAAC;AACN,YAAA,KAAK,UAAU;gBACX,OAAO,IAAIA,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,MAAM,QAAQ,GAAGJ,sBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;AAC/D,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAC/C,oBAAA,IAAI,KAAK,IAAI,IAAI,EAAE;wBACf;;AAEJ,oBAAA,KAAK,CAAC,KAAK,GAAG,QAAQ;AACtB,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;AACN,YAAA,KAAK,kBAAkB;gBACnB,OAAO,IAAII,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACjD,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;;AAKV,QAAA,OAAO,SAAS;;IAGX,OAAO,GAAA;AACZ,QAAA,MAAM,IAAIH,wBAAW,CAAC,iBAAiB,CAAC;;IAGnC,SAAS,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;;AAE5B;;AC5FD,MAAM,IAAI,GAAG,MAAM;AACnB,MAAMuD,MAAI,GAAG,MAAM;AACnB,MAAM,iBAAiB,GAAG,mBAAmB;AAC7C,MAAM,gBAAgB,GAAG,kBAAkB;AAC3C,MAAM,mBAAmB,GAAG,qBAAqB;AACjD,MAAM,QAAQ,GAAG,UAAU;AAC3B,MAAM,gBAAgB,GAAG,kBAAkB;AAErC,MAAO,UAAW,SAAQ1D,oBAAO,CAAA;AAEf,IAAA,SAAA;AACC,IAAA,IAAA;IAFrB,WACoB,CAAA,SAA2C,EAC1C,IAAiC,EAAA;AAElD,QAAA,KAAK,EAAE;QAHS,IAAS,CAAA,SAAA,GAAT,SAAS;QACR,IAAI,CAAA,IAAA,GAAJ,IAAI;;AAKhB,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAmB,EAAA;QAC9C,QAAQ,GAAG;YACP,KAAK,iBAAiB,EAAE;gBACpB,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,EAAE;AACnC,oBAAA,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,EAAE;;AAElC,gBAAA,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC;;AAEhE,YAAA,KAAK,IAAI;AACL,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI;AAC3B,sBAAE;sBACA,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC;YACpD,KAAK,mBAAmB,EAAE;gBACtB,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,IAAI,EAAE;AACrC,oBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,EAAE;;AAEpC,gBAAA,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC;;AAEjE,YAAA,KAAK0D,MAAI;gBACL,OAAO,IAAIL,oBAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC3C,KAAK,gBAAgB,EAAE;gBACnB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,IAAI,EAAE;AAClC,oBAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE;;AAEjC,gBAAA,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;;AAE9D,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI;AACnC,sBAAE;sBACA,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;YAC5D,KAAK,gBAAgB,EAAE;gBACnB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,IAAI,EAAE;AAClC,oBAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE;;AAEjC,gBAAA,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;;AAE9D,YAAA;AACI,gBAAA,OAAO,SAAS;;;AAInB,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAmB,EAAA;QACxD,QAAQ,GAAG;YACP,KAAK,IAAI,EAAE;AACP,gBAAA,MAAM,SAAS,GAAGnD,sBAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;gBACjE,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC;gBAChE;;YAEJ,KAAKwD,MAAI,EAAE;AACP,gBAAA,MAAM,SAAS,GAAGxD,sBAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;AACjE,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS;gBAC/B;;AAEJ,YAAA,KAAK,iBAAiB;AACtB,YAAA,KAAK,mBAAmB;AACxB,YAAA,KAAK,gBAAgB;YACrB,KAAK,gBAAgB,EAAE;AACnB,gBAAA,MAAM,IAAIC,wBAAW,CAAC,GAAG,GAAG,CAAA,eAAA,CAAiB,CAAC;;YAElD,KAAK,QAAQ,EAAE;AACX,gBAAA,MAAM,SAAS,GAAGD,sBAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;gBACjE,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC;gBACxE;;AAEJ,YAAA;gBACI,MAAM,IAAIC,wBAAW,CACjB,CAAA,CAAA,EAAI,OAAO,GAAG,KAAK,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAA,mBAAA,CAAqB,EACjE,OAAO,EAAE,KAAK,CACjB;;;IAIJ,SAAS,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;;AAE5B;;AC5FK,MAAO,WAAY,SAAQH,oBAAO,CAAA;AAEf,IAAA,IAAA;AACA,IAAA,IAAA;IAFrB,WACqB,CAAA,IAAiC,EACjC,IAAqC,EAAA;AAEtD,QAAA,KAAK,EAAE;QAHU,IAAI,CAAA,IAAA,GAAJ,IAAI;QACJ,IAAI,CAAA,IAAA,GAAJ,IAAI;;IAKjB,aAAa,GAAA;AACjB,QAAA,QAAQ,IAAI,CAAC,IAAI;YACb,KAAK,SAAS,EAAE;gBACZ,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;AAClC,oBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE;;AAEjC,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc;;YAEnC,KAAK,QAAQ,EAAE;gBACX,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;AACjC,oBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE;;AAEhC,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa;;YAElC,KAAK,QAAQ,EAAE;gBACX,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;AACjC,oBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE;;AAEhC,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa;;;;IAKlC,IAAI,CAAC,GAAW,EAAE,OAA4B,EAAA;AAClD,QAAA,MAAM,WAAW,GAAGE,sBAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;AACzE,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;AAC5B,YAAA,OAAO,SAAS;;AAEpB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC;;IAGpC,MAAM,CAAC,GAAW,EAAE,OAA4B,EAAA;AACpD,QAAA,MAAM,WAAW,GAAGA,sBAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;AACzE,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;AAC5B,YAAA,OAAO,SAAS;;QAEpB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC;AAC/C,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,YAAA,OAAO,KAAK;;AAEhB,QAAA,MAAM,MAAM,GAAqC;AAC7C,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,EAAE;SACX;QACD,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,GAAG,MAAM;AAC1C,QAAA,OAAO,MAAM;;IAGT,MAAM,CAAC,GAAW,EAAE,OAA4B,EAAA;AACpD,QAAA,MAAM,WAAW,GAAGA,sBAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;AACzE,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;AAC5B,YAAA,OAAO,KAAK;;QAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC;AAC/C,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,YAAA,OAAO,KAAK;;QAEhB,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,GAAG,SAAS;AAC7C,QAAA,OAAO,IAAI;;AAGN,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAmB,EAAA;AAC9C,QAAA,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE;QAClC,QAAQ,WAAW;AACf,YAAA,KAAK,SAAS;gBACV,OAAO,IAAII,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAC1C,oBAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,wBAAA,OAAO,SAAS;;AAEpB,oBAAA,OAAO,IAAI+C,oBAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACnC,iBAAC,CAAC;AACN,YAAA,KAAK,SAAS;gBACV,OAAO,IAAI/C,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAC5C,oBAAA,MAAM,OAAO,GAAGJ,sBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;AAC9D,oBAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAChB,wBAAA,OAAO,SAAS;;AAEpB,oBAAA,MAAM,CAAC,IAAI,GAAG,OAAO;AACrB,oBAAA,OAAO,SAAS;AACpB,iBAAC,CAAC;AACN,YAAA,KAAK,QAAQ;gBACT,OAAO,IAAII,sBAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AAC9B,oBAAA,OAAO,IAAIL,qBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACtD,iBAAC,CAAC;;AAIV,QAAA,OAAO,SAAS;;IAGX,OAAO,GAAA;AACZ,QAAA,MAAM,IAAIE,wBAAW,CAAC,iBAAiB,CAAC;;IAGnC,SAAS,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE;;AAElC;;AC/GD,MAAMuD,MAAI,GAAG,MAAM;AAEb,MAAO,YAAa,SAAQ1D,oBAAO,CAAA;AACF,IAAA,WAAA;AAAnC,IAAA,WAAA,CAAmC,WAA+C,EAAA;AAC9E,QAAA,KAAK,EAAE;QADwB,IAAW,CAAA,WAAA,GAAX,WAAW;;IAIrC,OAAO,CAAC,EAAE,GAAG,EAAmB,EAAA;QACrC,QAAQ,GAAG;YACP,KAAK0D,MAAI,EAAE;AACP,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI;AAClC,gBAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,oBAAA,OAAO,IAAI;;AAEf,gBAAA,OAAO,IAAIL,oBAAO,CAAC,IAAI,CAAC;;AAE5B,YAAA;AACI,gBAAA,OAAO,SAAS;;;AAInB,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAmB,EAAA;QACxD,QAAQ,GAAG;YACP,KAAKK,MAAI,EAAE;AACP,gBAAA,MAAM,SAAS,GAAGxD,sBAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;AAC3E,gBAAA,IAAI,SAAS,KAAK,IAAI,EAAE;AACpB,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,SAAS;oBACjC;;gBAEJ,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC;AACtD,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACjB,oBAAA,MAAM,IAAIC,wBAAW,CAAC,GAAG,GAAG,CAAA,mBAAA,CAAqB,CAAC;;gBAEtD,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;gBACnC;;AAEJ,YAAA;gBACI,MAAM,IAAIA,wBAAW,CACjB,CAAA,CAAA,EAAI,OAAO,GAAG,KAAK,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAA,mBAAA,CAAqB,EACjE,OAAO,EAAE,KAAK,CACjB;;;IAIJ,SAAS,GAAA;QACd,OAAO,IAAI,CAAC,WAAW;;AAE9B;;AClDK,MAAO,YAA2C,SAAQwD,uBAA+B,CAAA;AAC1E,IAAA,cAAc;AACd,IAAA,KAAK;IAEtB,WAAmB,CAAA,EACf,MAAM,EACN,cAAc,EACd,KAAK,EACL,KAAK,GASR,EAAA;AACG,QAAA,KAAK,CACD,MAAM,EACN,KAAK,KAAK,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EACzD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAC1B;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGb,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAmB,EAAA;QAC9C,QAAQ,GAAG;AACP,YAAA,KAAK,KAAK;;AAEN,gBAAA,OAAO,SAAS;YACpB,KAAK,QAAQ,EAAE;AACX,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc;AAC1C,gBAAA,IAAI,cAAc,IAAI,IAAI,EAAE;AACxB,oBAAA,OAAO,SAAS;;AAGpB;;;;;;;;;;AAUE;gBAEF,OAAO,IAAIrD,sBAAS,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAI;AACxC,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,oBAAA,MAAM,QAAQ,GAAG,cAAc,EAAE;AACjC,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,oBAAA,MAAM,EAAE,GAAG,QAAQ,EAAE;AACrB,oBAAA,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ;AACrB,oBAAA,MAAM,MAAM,GAAG,IAAI8C,oBAAO,EAAE;oBAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAIC,oBAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAIA,oBAAO,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;oBAC/E,MAAM,CAAC,GAAG,CAAC;AACP,wBAAA,QAAQ,EAAE,IAAIA,oBAAO,CAAC,OAAO,CAAC;AAC9B,wBAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;wBAC9B,OAAO;AACV,qBAAA,CAAC;AACF,oBAAA,OAAO,MAAM;AACjB,iBAAC,CAAC;;AAEN,YAAA;gBACI,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;;;AAGrD;;AC9DD,MAAM,IAAI,GAAG,MAAM;AACnB,MAAM,UAAU,GAAG,YAAY;AAEzB,MAAO,KAAM,SAAQrD,oBAAO,CAAA;AAMT,IAAA,SAAA;;AAJJ,IAAA,KAAK;IAEtB,WACI,CAAA,MAAmC,EAClB,SAAiB,EAAA;AAElC,QAAA,KAAK,EAAE;QAFU,IAAS,CAAA,SAAA,GAAT,SAAS;AAG1B,QAAA,IAAI,CAAC,KAAK,GAAG4D,mBAAS,CAAC,MAAM,CAAC;;AAGlC,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;;AAGd,IAAA,aAAa,CAAC,OAAe,EAAA;AAChC,QAAA,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,CAAC;AACxD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AACnB,YAAA,OAAO,SAAS;;QAEpB,OAAO,IAAI,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;;IAGtC,OAAO,CAAC,EAAE,GAAG,EAAiB,EAAA;QACnC,QAAQ,GAAG;AACP,YAAA,KAAK,IAAI;gBACL,OAAO,IAAIP,oBAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACvC,YAAA,KAAK,uBAAuB;gBACxB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;AAChD,YAAA,KAAK,UAAU;gBACX,OAAO,IAAI,YAAY,CAA+C;oBAClE,MAAM,EAAE,CAAC,MAAK;wBACV,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;AAC9B,4BAAA,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE;;AAE7B,wBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU;AAC/B,qBAAC,GAAG;AACJ,oBAAA,cAAc,EAAE,OAAO;AACnB,wBAAA,EAAE,EAAE,CAAC;AACL,wBAAA,EAAE,EAAE,CAAC;wBACL,kBAAkB,EAAE,IAAI,CAAC,SAAS;AAClC,wBAAA,KAAK,EAAE,SAAS;AAChB,wBAAA,SAAS,EAAE,KAAK;AAChB,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,WAAW,EAAE,EAAE;AACf,wBAAA,eAAe,EAAE,EAAE;AACnB,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,QAAQ,EAAE,KAAK;AACf,wBAAA,MAAM,EAAE,EAAE;AACV,wBAAA,eAAe,EAAE,EAAE;AACnB,wBAAA,cAAc,EAAE,EAAE;AAClB,wBAAA,aAAa,EAAE,SAAS;AACxB,wBAAA,cAAc,EAAE,EAAE;AAClB,wBAAA,UAAU,EAAE,EAAE;AACd,wBAAA,SAAS,EAAE,EAAE;AACb,wBAAA,YAAY,EAAE,EAAE;AAChB,wBAAA,SAAS,EAAE,EAAE;AACb,wBAAA,iBAAiB,EAAE,EAAE;qBACxB,CAAC;AACF,oBAAA,KAAK,EAAE,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;oBACxC,KAAK,EAAE,CAAC,IAAG;AACP,wBAAA,IAAI,CAAC,YAAY,UAAU,EAAE;4BACzB,OAAO,CAAC,CAAC,SAAS;;AAEtB,wBAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;qBAC5C;AACJ,iBAAA,CAAC;AACN,YAAA,KAAK,sBAAsB;gBACvB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/C,YAAA,KAAK,sBAAsB;gBACvB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/C,YAAA,KAAK,cAAc;gBACf,OAAO,IAAI,YAAY,CAAC;oBACpB,MAAM,EAAE,CAAC,MAAK;wBACV,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;AAChC,4BAAA,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE;;AAE/B,wBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;AACjC,qBAAC,GAAG;AACJ,oBAAA,cAAc,EAAE,SAAS;oBACzB,KAAK,EAAE,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC;oBAC/B,KAAK,EAAE,CAAC,IAAG;AACP,wBAAA,IAAI,CAAC,YAAY,YAAY,EAAE;4BAC3B,OAAO,CAAC,CAAC,WAAW;;AAExB,wBAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;qBAC5C;AACJ,iBAAA,CAAC;AACN,YAAA;AACI,gBAAA,OAAO,SAAS;;;AAInB,IAAA,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAiB,EAAA;QACtD,QAAQ,GAAG;YACP,KAAK,IAAI,EAAE;AACP,gBAAA,MAAM,SAAS,GAAGnD,sBAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;AACjE,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS;gBAC3B;;AAEJ,YAAA;gBACI,MAAM,IAAIC,wBAAW,CACjB,CAAA,EAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAA,iBAAA,CAAmB,EAC9D,OAAO,EAAE,KAAK,CACjB;;;IAIJ,SAAS,GAAA;QACd,OAAO,IAAI,CAAC,KAAK;;AAExB;;AC/HD,MAAM,YAAa,SAAQ,KAAK,CAAA;AAGR,IAAA,KAAA;IAFpB,WACI,CAAA,OAAe,EACC,KAAiC,EAAA;QAEjD,KAAK,CAAC,OAAO,CAAC;QAFE,IAAK,CAAA,KAAA,GAAL,KAAK;AAGrB,QAAA,IAAI,CAAC,IAAI,GAAG,cAAc;;AAEjC;AAEY,MAAA,WAAW,GAAG,CAAC,MAAc,KAAqC;AAC3E,IAAA,IAAI;QACA0D,iBAAI,CAAC,MAAM,CAAC;;IACd,OAAO,CAAU,EAAE;AACjB,QAAA,IAAI,CAAC,YAAY1D,wBAAW,EAAE;AAC1B,YAAA,OAAOZ,aAAM,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;;AAE7D,QAAA,IAAI,CAAC,YAAY,KAAK,EAAE;AACpB,YAAA,OAAOA,aAAM,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;;AAEpD,QAAA,MAAM,CAAC;;AAEX,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;AAC/B;AAWO,MAAM,oBAAoB,GAAG,CAAC,EACjC,MAAM,EACN,IAAI,EACJ,WAAW,EACX,SAAS,GACY,KAAmB;IACxC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;IACxC,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC;AACnD,IAAA,IAAI,UAAU,IAAI,IAAI,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,CAAa,UAAA,EAAAuE,cAAQ,CAAC,WAAW,CAAC,CAAa,WAAA,CAAA,CAAC;;AAEpE,IAAA,MAAM,UAAU,GAAG;AACf,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,KAAK,EAAEC,uBAAU;AACjB,QAAA,OAAO,EAAEC,+BAAkB,CAAC,eAAe,CAAC;KAC/C;AACD,IAAA,IAAI;AACA,QAAAC,iBAAI,CAAC,MAAM,EAAE,UAAU,CAAC;;IAC1B,OAAO,CAAU,EAAE;AACjB,QAAA,IAAI,CAAC,YAAY9D,wBAAW,EAAE;AAC1B,YAAA,OAAOZ,aAAM,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;;AAE7D,QAAA,IAAI,CAAC,YAAY,KAAK,EAAE;AACpB,YAAA,OAAOA,aAAM,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;;AAEpD,QAAA,MAAM,CAAC;;AAEX,IAAA,MAAMC,QAAM,GAAc,KAAK,CAAC,IAAI;AACpC,IAAA,OAAOD,aAAM,CAAC,EAAE,CAACC,QAAM,CAAC;AAC5B;;ACjDA,MAAM,WAAW,GAAG,CAAC,MAA0B,KAAuB;AAClE,IAAA,IAAI,MAAyB;AAC7B,IAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC5B,QAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;;SACnD;QACH,MAAM,GAAG,MAAM;;AAEnB,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,WAAW,GAAG,GAAG;AAEvB,MAAM,YAAY,GAAG,CAAC,KAAa,KAAI;AACnC;;;;;;AAME;IACF,MAAM,SAAS,GAAG,eAAe;;IAEjC,MAAM,SAAS,GAAG,uBAAuB;IACzC,MAAM,UAAU,GAAG,OAAO;AAE1B,IAAA,OAAO;AACF,SAAA,OAAO,CAAC,SAAS,EAAE,WAAW;AAC9B,SAAA,OAAO,CAAC,SAAS,EAAE,WAAW;AAC9B,SAAA,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC;AACzC,CAAC;AAEY,MAAA,kBAAkB,GAAG,CAAC,KAAa,KAAY;AACxD,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;;AAErC,IAAA,OAAO0E,yBAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;AACnC;AAEa,MAAA,gBAAgB,GAAG,CAAC,KAAa,KAAmB;AAC7D,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;;IAErC,MAAM,MAAM,GAAGA,yBAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;AACvC,IAAA,IAAI,SAAS,KAAK,MAAM,EAAE;;AAEtB,QAAA,OAAO,IAAI;;AAEf,IAAA,OAAO,MAAM;AACjB;AAEA,MAAM,QAAQ,GAAG,CAAC,IAAwB,KAAgB;AACtD,IAAA,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;IACrC,OAAO;AACH,QAAA,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7B,QAAA,KAAK,EAAE,WAAW;KACrB;AACL,CAAC;AAEY,MAAA,eAAe,GAAG,CAAC,IAAwB,KAAuB;AAC3E,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;IACnC,MAAM,cAAc,GAAa,EAAE;AACnC,IAAA,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;AAC1B,QAAA,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;AAC/B,QAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;AAG7B,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC;AAEvC,IAAA,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;;QAEvB,MAAM,SAAS,GAAGA,yBAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AAE/C,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;;AAE7B,YAAA,OAAO,IAAI;;;AAInB,IAAA,OAAO,MAAM;AACjB;AAEA;;;AAGG;AACU,MAAA,QAAQ,GAAG,CAAC,IAAwB,EAAE,GAAG,KAA2B,KAAgB;AAC7F,IAAA,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC;AAC9B,IAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AACnB,QAAA,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC;QAC3B,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;;AAEjC,IAAA,OAAO,QAAQ,CAAC,MAAM,CAAC;AAC3B;;ACtHA,MAAM,yBAAyB,GAAG,MAAK;IACnC,MAAM,IAAI,GACN,mNAAmN;AACvN,IAAA,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrD,IAAA,OAAO,CAAC,MAAM,EAAE,IAAc,CAAU;AAC5C,CAAC;AAEY,MAAA,mBAAmB,GAAG,yBAAyB;AAE5D,MAAM,yBAAyB,GAAG,MAAK;IACnC,MAAM,IAAI,GACN,mNAAmN;AACvN,IAAA,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrD,IAAA,OAAO,CAAC,MAAM,EAAE,IAAc,CAAU;AAC5C,CAAC;AAEY,MAAA,mBAAmB,GAAG,yBAAyB;;AClB5D;AACO,MAAM,UAAU,GAAG,CAAC,GAAW,KAAa;;AAE/C,IAAA,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE;AAClB,QAAA,OAAO,KAAK;;IAEhB,OAAO,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,IAAI;AACrD,CAAC;;ACMM,MAAM9C,SAAO,GAAG,CAAkE,EACrF,SAAS,EAAE,eAAe,EAC1B,aAAa,EAAE,mBAAmB,EAClC,YAAY,GASf,KAGG;AACA,IAAA,MAAM,SAAS,GAAG+C,iBAAW,CAAC,eAAe,CAAC;AAE9C,IAAA,IAAI,mBAAmB,IAAI,IAAI,EAAE;QAC7B,OAAO5E,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,SAAS,EAAE6E,iBAAW,CAAC,SAAS,CAAC;AACjC,YAAA,eAAe,EAAE,SAAS;AAC7B,SAAA,CAAC;;AAGN,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC;AACpC,IAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAA4B;AAE3D,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAID,iBAAW,CAAC,mBAAmB,CAAC,EAAE;QACzD,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AAC3C,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAChC,OAAO5E,aAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAA,yCAAA,CAA2C,CAAC;;QAE3F,MAAM,QAAQ,GAAG,YAAY,CAAC;AAC1B,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,SAAS,EAAE,gBAAgB;YAC3B,GAAG;AACN,SAAA,CAAC;AACF,QAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,YAAA,OAAO,QAAQ;;AAEnB,QAAA,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B;;QAEJ,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;QAC5C,IAAI,QAAQ,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE;YAC9C,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC;;;IAIhE,OAAOA,aAAM,CAAC,EAAE,CAAC;AACb,QAAA,SAAS,EAAE6E,iBAAW,CAAC,SAAS,CAAC;AACjC,QAAA,eAAe,EAAE,eAAe,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,GAAGA,iBAAW,CAAC,eAAe,CAAC;AACzF,KAAA,CAAC;AACN,CAAC;AAEM,MAAMzD,OAAK,GAAG,CAA8C,EAC/D,SAAS,EAAE,eAAe,EAC1B,SAAS,EACT,UAAU,EACV,YAAY,GAUf,KAA4D;AACzD,IAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AACnB,QAAA,OAAOpB,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;;AAGrC,IAAA,MAAM,SAAS,GAAG4E,iBAAW,CAAC,eAAe,CAAC;AAC9C,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC;AAEpC,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAIA,iBAAW,CAAC,SAAS,CAAC,EAAE;QAC/C,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY;QAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC;AACxB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,SAAS,EAAE,gBAAgB;YAC3B,GAAG;AACN,SAAA,CAAC;AACF,QAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,YAAA,OAAO,QAAQ;;QAEnB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;;IAGtC,OAAO5E,aAAM,CAAC,EAAE,CAAC6E,iBAAW,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAEM,MAAMtD,WAAS,GAAG,CAAgD,EACrE,SAAS,EAAE,eAAe,EAC1B,SAAS,EACT,cAAc,EACd,YAAY,GAUf,KAA4D;AACzD,IAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AACnB,QAAA,OAAOvB,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;;AAGrC,IAAA,MAAM,SAAS,GAAG4E,iBAAW,CAAC,eAAe,CAAC;AAC9C,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC;AAEpC,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAIA,iBAAW,CAAC,SAAS,CAAC,EAAE;QAC/C,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY;QAC3D,MAAM,QAAQ,GAAG,cAAc,CAAC;AAC5B,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,SAAS,EAAE,gBAAgB;YAC3B,GAAG;AACN,SAAA,CAAC;AACF,QAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,YAAA,OAAO,QAAQ;;QAEnB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;;IAGtC,OAAO5E,aAAM,CAAC,EAAE,CAAC6E,iBAAW,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;AACO,MAAMC,SAAO,GAAG,CAAoC,EACvD,KAAK,EACL,MAAM,EACN,YAAY,GASf,KAA4E;AACzE,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;QACf,OAAO9E,aAAM,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;;AAElF,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,OAAOA,aAAM,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;;AAG/E,IAAA,MAAMC,QAAM,GAAG,IAAI,GAAG,EAAsB;IAE5C,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI8E,kBAAY,CAACH,iBAAW,CAAC,KAAK,CAAC,EAAEA,iBAAW,CAAC,MAAM,CAAC,CAAC,EAAE;AACpF,QAAA,QAAQ,WAAW,CAAC,IAAI;AACpB,YAAA,KAAKI,UAAI;gBACL/E,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC;gBACjC;AACJ,YAAA,KAAKgF,WAAK;gBACNhF,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC;gBAClC;YACJ,KAAKiF,UAAI,EAAE;gBACP,MAAM,MAAM,GAAG,YAAY,CAAC;oBACxB,KAAK,EAAE,WAAW,CAAC,IAAI;oBACvB,MAAM,EAAE,WAAW,CAAC,KAAK;oBACzB,GAAG;AACN,iBAAA,CAAC;AACF,gBAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAChB,oBAAA,OAAO,MAAM;;AAEjB,gBAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;oBAC5BjF,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;;gBAEjC;;;;IAIZ,OAAOD,aAAM,CAAC,EAAE,CAACC,QAAM,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,GAAG4E,iBAAW,CAAC5E,QAAM,CAAC,CAAC;AACzE,CAAC;AAED;AACO,MAAMkC,iBAAe,GAAG,CAK7B,EACE,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,gBAAgB,EAAE,sBAAsB,EACxC,eAAe,EAAE,qBAAqB,EACtC,cAAc,EACd,YAAY,GAYf,KAAiF;AAC9E,IAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAC5B,QAAA,OAAOnC,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,MAAMC,QAAM,GAAG,IAAI,GAAG,EAA2B;AACjD,IAAA,MAAM,SAAS,GAAG2E,iBAAW,CAAC,sBAAsB,CAAC;AACrD,IAAA,MAAM,SAAS,GAAGA,iBAAW,CAAC,qBAAqB,CAAC;AACpD,IAAA,MAAM,KAAK,GAAG,WAAW,IAAI,IAAI,GAAG,SAAS,GAAGA,iBAAW,CAAC,WAAW,CAAC;AAExE,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAIA,iBAAW,CAAC,YAAY,CAAC,EAAE;AACtD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO5E,aAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,oBAAA,CAAsB,CAAC;;QAGrD,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY;QACzD,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY;AACzD,QAAA,MAAM,UAAU,GAAG,KAAK,IAAI,IAAI,GAAG,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAE7D,MAAM,WAAW,GAAG,cAAc,CAAC;AAC/B,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,SAAS,EAAE,cAAc;AACzB,YAAA,SAAS,EAAE,cAAc;YACzB,GAAG;AACN,SAAA,CAAC;AACF,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,YAAA,OAAO,WAAW;;AAEtB,QAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK;AAC3C,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AACjC,YAAAC,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC;;;IAG1C,OAAOD,aAAM,CAAC,EAAE,CAACC,QAAM,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,GAAG4E,iBAAW,CAAC5E,QAAM,CAAC,CAAC;AACzE,CAAC;AAQM,MAAMmC,iBAAe,GAAG,CAAsC,EACjE,KAAK,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,YAAY,GAOf,KAMG;IACA,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;QAC7C,OAAOpC,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,KAAK,KAAK,SAAS,IAAI,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK;AAC3E,YAAA,WAAW,EAAE,MAAM,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM;AAClF,SAAA,CAAC;;AAGN,IAAA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAsB;AAChD,IAAA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsB;IACjD,IAAI,KAAK,GAAG,SAA0C;AAEtD,IAAA+E,kBAAY,CAACH,iBAAW,CAAC,KAAK,CAAC,EAAEA,iBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;AACzE,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACf;;AAEJ,QAAA,QAAQ,KAAK,CAAC,IAAI;YACd,KAAKI,UAAI,EAAE;gBACP,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;gBAC/B;;YAEJ,KAAKC,WAAK,EAAE;gBACR,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC;gBACjC;;YAEJ,KAAKC,UAAI,EAAE;gBACP,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,YAAY;gBACpC,MAAM,KAAK,GAAG,cAAc,CAAC;AACzB,oBAAA,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,MAAM,EAAE,KAAK,CAAC,KAAK;AACtB,iBAAA,CAAC;AACF,gBAAA,IAAI,KAAK,CAAC,OAAO,EAAE;oBACf,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;oBAC9B;;gBAEJ,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE;oBACtC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;;gBAE/C,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE;oBACvC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;;gBAEjD;;;AAGZ,KAAC,CAAC;AACF,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;QACf,OAAOlF,aAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;;IAEpC,OAAOA,aAAM,CAAC,EAAE,CAAC;AACb,QAAA,UAAU,EAAE,UAAU,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,GAAG6E,iBAAW,CAAC,UAAU,CAAC;AACvE,QAAA,WAAW,EAAE,WAAW,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,GAAGA,iBAAW,CAAC,WAAW,CAAC;AAC7E,KAAA,CAAC;AACN,CAAC;AAEM,MAAMtC,MAAI,GAAG,CAAqB,EACrC,SAAS,EACT,SAAS,EACT,SAAS,GASZ,KAA6C;AAC1C,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB;IAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAIwC,kBAAY,CAACH,iBAAW,CAAC,SAAS,CAAC,EAAEA,iBAAW,CAAC,SAAS,CAAC,CAAC,EAAE;QACrF,IAAI,SAAS,GAAuB,SAAS;QAC7C,IAAI,SAAS,GAAuB,SAAS;AAE7C,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAKI,UAAI;AACL,gBAAA,SAAS,GAAG,KAAK,CAAC,IAAI;gBACtB;YACJ,KAAKC,WAAK,EAAE;AACR,gBAAA,SAAS,GAAG,KAAK,CAAC,KAAK;gBACvB;;YAEJ,KAAKC,UAAI,EAAE;AACP,gBAAA,SAAS,GAAG,KAAK,CAAC,IAAI;AACtB,gBAAA,SAAS,GAAG,KAAK,CAAC,KAAK;gBACvB;;;AAGR,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC3D,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;YAC1B;;AAEJ,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC;QAC3B;;AAEJ,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;AACnB,QAAA,OAAO,SAAS;;AAEpB,IAAA,OAAOL,iBAAW,CAAC,MAAM,CAAC;AAC9B,CAAC;;ACvSD;AACO,MAAMM,eAAa,GAAG,CAA6B,EACtD,WAAW,EACX,SAAS,EACT,aAAa,GAShB,KAAI;AACD,IAAA,IAAI,WAAW,IAAI,IAAI,EAAE;AACrB,QAAA,OAAO,SAAS;;AAGpB,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB;IAE9CC,mBAAa,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,KAAI;AACtC,QAAA,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;YACvB;;AAEJ,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACzD,KAAC,CAAC;AAEF,IAAA,OAAOP,iBAAW,CAAC,MAAM,CAAC;AAC9B,CAAC;AAED;AACO,MAAMhD,SAAO,GAAG,CAAkE,EACrF,SAAS,EACT,aAAa,EACb,YAAY,EACZ,SAAS,GAcZ,KAGG;AACA,IAAA,IAAI,aAAa,IAAI,IAAI,EAAE;QACvB,OAAO7B,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,eAAe,EAAE,SAAS;AAC7B,SAAA,CAAC;;AAGN,IAAA,MAAM,SAAS,GAAG4E,iBAAW,CAAC,SAAS,CAAC;AACxC,IAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAG5B;AAEH,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAIA,iBAAW,CAAC,aAAa,CAAC,EAAE;AACnD,QAAA,QAAQ,KAAK,CAAC,IAAI;YACd,KAAK,SAAS,EAAE;AACZ,gBAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ;AACvC,gBAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC;AAC/B,gBAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AACxB,oBAAA,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;;qBAClB;AACH,oBAAA,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC;;AAEhC,gBAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AACxB,oBAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;wBACxB;;AAEJ,oBAAA,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE;AACrB,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAClC,qBAAA,CAAC;oBACF;;AAEJ,gBAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AACxB,oBAAA,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE;AACrB,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC7C,qBAAA,CAAC;oBACF;;gBAEJ,MAAM,IAAI,GAAG,SAAS,CAAC;oBACnB,GAAG;AACH,oBAAA,SAAS,EAAE,QAAQ;AACnB,oBAAA,SAAS,EAAE,QAAQ;AACtB,iBAAA,CAAC;AACF,gBAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACpB,oBAAA,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;gBAE9D;;YAEJ,KAAK,QAAQ,EAAE;AACX,gBAAA,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC;AACvC,gBAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;oBAChC,OAAO5E,aAAM,CAAC,KAAK,CACf,oBAAoB,GAAG,CAAA,yCAAA,CAA2C,CACrE;;gBAEL,MAAM,QAAQ,GAAG,YAAY,CAAC;oBAC1B,GAAG;oBACH,aAAa,EAAE,KAAK,CAAC,MAAM;AAC3B,oBAAA,SAAS,EAAE,gBAAgB;AAC9B,iBAAA,CAAC;AACF,gBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,oBAAA,OAAO,QAAQ;;gBAEnB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;gBAC5C,IAAI,QAAQ,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE;AAC9C,oBAAA,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE;AACrB,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,eAAe;AACzC,qBAAA,CAAC;;gBAEN;;;;IAKZ,OAAOA,aAAM,CAAC,EAAE,CAAC;AACb,QAAA,SAAS,EAAE6E,iBAAW,CAAC,SAAS,CAAC;AACjC,QAAA,eAAe,EAAE,eAAe,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,GAAGA,iBAAW,CAAC,eAAe,CAAC;AACzF,KAAA,CAAC;AACN,CAAC;AAED;AACO,MAAMzD,OAAK,GAAG,CAA4C,EAC7D,SAAS,EACT,SAAS,EACT,UAAU,GASb,KAA4D;AACzD,IAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AACnB,QAAA,OAAOpB,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,MAAM,SAAS,GAAG4E,iBAAW,CAAC,SAAS,CAAC;AAExC,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAIA,iBAAW,CAAC,SAAS,CAAC,EAAE;AAC/C,QAAA,QAAQ,KAAK,CAAC,IAAI;YACd,KAAK,SAAS,EAAE;gBACZ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;AACtC,oBAAA,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;;qBAClB;oBACH,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;;gBAE9C;;YAEJ,KAAK,QAAQ,EAAE;AACX,gBAAA,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC;AACvC,gBAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;oBAChC,OAAO5E,aAAM,CAAC,KAAK,CACf,oBAAoB,GAAG,CAAA,yCAAA,CAA2C,CACrE;;gBAEL,MAAM,QAAQ,GAAG,UAAU,CAAC;oBACxB,GAAG;oBACH,SAAS,EAAE,KAAK,CAAC,MAAM;AACvB,oBAAA,SAAS,EAAE,gBAAgB;AAC9B,iBAAA,CAAC;AACF,gBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,oBAAA,OAAO,QAAQ;;gBAEnB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;gBAClC;;;;IAKZ,OAAOA,aAAM,CAAC,EAAE,CAAC6E,iBAAW,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;AACO,MAAMtD,WAAS,GAAG,CAAgD,EACrE,SAAS,EACT,SAAS,EACT,cAAc,GASjB,KAA4D;AACzD,IAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AACnB,QAAA,OAAOvB,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,MAAM,SAAS,GAAG4E,iBAAW,CAAC,SAAS,CAAC;AAExC,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAIA,iBAAW,CAAC,SAAS,CAAC,EAAE;AAC/C,QAAA,QAAQ,KAAK,CAAC,IAAI;YACd,KAAK,SAAS,EAAE;gBACZ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;AACtC,oBAAA,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;;qBAClB;oBACH,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;;gBAE9C;;YAEJ,KAAK,QAAQ,EAAE;AACX,gBAAA,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC;AACvC,gBAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;oBAChC,OAAO5E,aAAM,CAAC,KAAK,CACf,oBAAoB,GAAG,CAAA,yCAAA,CAA2C,CACrE;;gBAEL,MAAM,QAAQ,GAAG,cAAc,CAAC;oBAC5B,GAAG;oBACH,SAAS,EAAE,KAAK,CAAC,MAAM;AACvB,oBAAA,KAAK,EAAE,gBAAgB;AAC1B,iBAAA,CAAC;AACF,gBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,oBAAA,OAAO,QAAQ;;gBAEnB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;gBAClC;;;;IAKZ,OAAOA,aAAM,CAAC,EAAE,CAAC6E,iBAAW,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;AACO,MAAM,OAAO,GAAG,CAA4B,EAC/C,KAAK,EACL,MAAM,EACN,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GAwBtB,KAAoE;AACjE,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;QACf,OAAO7E,aAAM,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;;AAElF,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,OAAOA,aAAM,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;;AAG/E,IAAA,MAAMC,QAAM,GAAG,IAAI,GAAG,EAAqD;IAE3E,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI8E,kBAAY,CAACH,iBAAW,CAAC,KAAK,CAAC,EAAEA,iBAAW,CAAC,MAAM,CAAC,CAAC,EAAE;AACpF,QAAA,QAAQ,WAAW,CAAC,IAAI;AACpB,YAAA,KAAKI,UAAI;AACL,gBAAA,QAAQ,WAAW,CAAC,IAAI,CAAC,IAAI;AACzB,oBAAA,KAAK,SAAS;AACV,wBAAA/E,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO;AACpC,yBAAA,CAAC;wBACF;AACJ,oBAAA,KAAK,QAAQ;AACT,wBAAAA,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM;AAClC,yBAAA,CAAC;wBACF;;gBAER;AACJ,YAAA,KAAKgF,WAAK;AACN,gBAAA,QAAQ,WAAW,CAAC,KAAK,CAAC,IAAI;AAC1B,oBAAA,KAAK,SAAS;AACV,wBAAAhF,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO;AACrC,yBAAA,CAAC;wBACF;AACJ,oBAAA,KAAK,QAAQ;AACT,wBAAAA,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM;AACnC,yBAAA,CAAC;wBACF;;gBAER;AACJ,YAAA,KAAKiF,UAAI;AACL,gBAAA,QAAQ,WAAW,CAAC,IAAI,CAAC,IAAI;AACzB,oBAAA,KAAK,SAAS;AACV,wBAAA,QAAQ,WAAW,CAAC,KAAK,CAAC,IAAI;4BAC1B,KAAK,SAAS,EAAE;gCACZ,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AACnC,oCAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO;AAC/B,oCAAA,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO;oCACjC,GAAG;AACN,iCAAA,CAAC;AACF,gCAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,oCAAA,OAAO,QAAQ;;AAEnB,gCAAA,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE;oCAC9B;;AAEJ,gCAAAjF,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,oCAAA,IAAI,EAAE,SAAS;oCACf,OAAO,EAAE,QAAQ,CAAC,KAAK;AAC1B,iCAAA,CAAC;gCACF;;4BAEJ,KAAK,QAAQ,EAAE;gCACX,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AAClC,oCAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO;AAC/B,oCAAA,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM;oCAChC,GAAG;AACN,iCAAA,CAAC;AACF,gCAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,oCAAA,OAAO,QAAQ;;AAEnB,gCAAA,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE;oCAC9B;;AAEJ,gCAAAA,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,oCAAA,IAAI,EAAE,SAAS;oCACf,OAAO,EAAE,QAAQ,CAAC,KAAK;AAC1B,iCAAA,CAAC;gCACF;;;wBAGR;AACJ,oBAAA,KAAK,QAAQ;AACT,wBAAA,QAAQ,WAAW,CAAC,KAAK,CAAC,IAAI;4BAC1B,KAAK,SAAS,EAAE;gCACZ,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AAClC,oCAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM;AAC9B,oCAAA,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO;oCACjC,GAAG;AACN,iCAAA,CAAC;AACF,gCAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,oCAAA,OAAO,QAAQ;;AAEnB,gCAAA,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE;oCAC9B;;AAEJ,gCAAAA,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,oCAAA,IAAI,EAAE,SAAS;oCACf,OAAO,EAAE,QAAQ,CAAC,KAAK;AAC1B,iCAAA,CAAC;gCACF;;4BAEJ,KAAK,QAAQ,EAAE;gCACX,MAAM,QAAQ,GAAG,mBAAmB,CAAC;AACjC,oCAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM;AAC9B,oCAAA,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM;oCAChC,GAAG;AACN,iCAAA,CAAC;AACF,gCAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,oCAAA,OAAO,QAAQ;;AAEnB,gCAAA,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE;oCAC9B;;AAEJ,gCAAAA,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,oCAAA,IAAI,EAAE,QAAQ;oCACd,MAAM,EAAE,QAAQ,CAAC,KAAK;AACzB,iCAAA,CAAC;gCACF;;;;gBAIhB;;;IAGZ,OAAOD,aAAM,CAAC,EAAE,CAACC,QAAM,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,GAAG4E,iBAAW,CAAC5E,QAAM,CAAC,CAAC;AACzE,CAAC;AAEM,MAAMyB,sBAAoB,GAAG,CAAgD,EAChF,KAAK,EACL,MAAM,EACN,cAAc,EACd,YAAY,GAcf,KAA4F;AACzF,IAAA,OAAO,OAAO,CAA+D;QACzE,KAAK;QACL,MAAM;QACN,qBAAqB,EAAE,MAAM,IAAG;YAC5B,OAAO1B,aAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QACD,oBAAoB,EAAE,MAAM,IAAG;YAC3B,OAAOA,aAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QACD,oBAAoB,EAAE,MAAM,IAAG;YAC3B,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACtC,OAAOA,aAAM,CAAC,KAAK,CACf,CAAA,0DAAA,EAA6D,MAAM,CAAC,GAAG,CAAI,EAAA,CAAA,CAC9E;;YAEL,MAAM,aAAa,GAAG,cAAc,CAAC;gBACjC,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,SAAS,EAAE,MAAM,CAAC,KAAK;AACvB,gBAAA,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;AAChC,aAAA,CAAC;AACF,YAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACvB,gBAAA,OAAO,aAAa;;AAExB,YAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;SACtD;QACD,mBAAmB,EAAE,MAAM,IAAG;AAC1B,YAAA,OAAO,YAAY,CAAC;gBAChB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;AACxB,aAAA,CAAC;SACL;AACJ,KAAA,CAAC;AACN,CAAC;AAuBD;AACA,MAAM,gCAAgC,GAAG,CAMvC,EACE,KAAK,EACL,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,GAOrB,KAGG;;AAGA,IAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACtB,QAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,MAAMC,QAAM,GAAG,IAAI,GAAG,EAAuE;AAE7F,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI2E,iBAAW,CAAC,MAAM,CAAC,EAAE;AAChD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO5E,aAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,qBAAA,CAAuB,CAAC;;AAGvD,QAAA,QAAQ,SAAS,CAAC,IAAI;YAClB,KAAKiB,SAAO,EAAE;AACV,gBAAA,MAAM,cAAc,GAAG,gBAAgB,GAAG,GAAG,CAAC;AAC9C,gBAAA,MAAM,cAAc,GAAG,eAAe,GAAG,GAAG,CAAC;;gBAI7C,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;AAC1C,oBAAA,IAAI,cAAc,KAAK,SAAS,EAAE;wBAC9B,OAAOjB,aAAM,CAAC,KAAK,CACf,IAAI,GAAG,CAAA,+FAAA,CAAiG,CAC3G;;AAEL,oBAAA,IAAI,cAAc,KAAK,SAAS,EAAE;;wBAE9B;;AAGJ,oBAAA,IAAI,kBAAkB,CAAC,YAAY,EAAE;wBACjC,IACI,kBAAkB,CAAC,YAAY,CAAC;4BAC5B,GAAG;AACH,4BAAA,KAAK,EAAE,cAAc;AACxB,yBAAA,CAAC,EACJ;4BACE;;;AAIR,oBAAAC,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,wBAAA,IAAI,EAAEgB,SAAO;AACb,wBAAA,OAAO,EAAE;AACL,4BAAA,QAAQ,EAAE,cAAc;AACxB,4BAAA,QAAQ,EAAE,SAAS;AACtB,yBAAA;AACJ,qBAAA,CAAC;oBACF;;;AAKJ,gBAAA,IAAI,cAAc,KAAK,SAAS,EAAE;oBAC9B,OAAOjB,aAAM,CAAC,KAAK,CACf,IAAI,GAAG,CAAA,gFAAA,CAAkF,CAC5F;;AAGL,gBAAA,IAAI,cAAc,KAAK,SAAS,EAAE;;oBAE9B;;AAGJ,gBAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;AAC/D,gBAAA,IAAI,kBAAkB,CAAC,YAAY,EAAE;AACjC,oBAAA,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE;wBAC9D;;;AAIR,gBAAAC,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,oBAAA,IAAI,EAAEgB,SAAO;AACb,oBAAA,OAAO,EAAE;AACL,wBAAA,QAAQ,EAAE,SAAS;wBACnB,QAAQ;AACX,qBAAA;AACJ,iBAAA,CAAC;gBACF;;YAEJ,KAAKD,QAAM,EAAE;AACT,gBAAA,MAAM,cAAc,GAAG,gBAAgB,GAAG,GAAG,CAAC;AAC9C,gBAAA,MAAM,cAAc,GAAG,eAAe,GAAG,GAAG,CAAC;AAC7C,gBAAA,MAAM,UAAU,GAAG,KAAK,GAAG,GAAG,CAAC;AAC/B,gBAAA,IAAI,cAAc,KAAK,SAAS,EAAE;oBAC9B,OAAOhB,aAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAA,iBAAA,CAAmB,CAAC;;AAEnE,gBAAA,IAAI,cAAc,KAAK,SAAS,EAAE;;oBAE9B;;;gBAGJ,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,KAAKiB,SAAO,EAAE;oBACzD;;AAEJ,gBAAA,IAAI,kBAAkB,CAAC,YAAY,EAAE;oBACjC,IACI,kBAAkB,CAAC,YAAY,CAAC;wBAC5B,GAAG;AACH,wBAAA,SAAS,EAAE,cAAc;AACzB,wBAAA,SAAS,EAAE,cAAc;AAC5B,qBAAA,CAAC,EACJ;wBACE;;;gBAGR,MAAM,WAAW,GAAG,cAAc,CAAC;oBAC/B,KAAK,EAAE,UAAU,EAAE,MAAM;oBACzB,MAAM,EAAE,SAAS,CAAC,MAAM;AACxB,oBAAA,SAAS,EAAE,cAAc;AACzB,oBAAA,SAAS,EAAE,cAAc;oBACzB,GAAG;AACN,iBAAA,CAAC;AACF,gBAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,oBAAA,OAAO,WAAW;;AAEtB,gBAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK;AAC3C,gBAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AACjC,oBAAAhB,QAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,wBAAA,IAAI,EAAEe,QAAM;AACZ,wBAAA,MAAM,EAAE,iBAAiB;AAC5B,qBAAA,CAAC;;;;;IAKlB,OAAOhB,aAAM,CAAC,EAAE,CAACC,QAAM,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,GAAG4E,iBAAW,CAAC5E,QAAM,CAAC,CAAC;AACzE,CAAC;AAyBD;AACO,MAAMkC,iBAAe,GAAG,CAO3B,MAMC,KAID;AACA,IAAA,MAAMlC,QAAM,GAAG,gCAAgC,CAAC,MAAM,CAAC;AACvD,IAAA,IAAIA,QAAM,CAAC,OAAO,EAAE;AAChB,QAAA,OAAOA,QAAM;;AAEjB,IAAA,IAAIA,QAAM,CAAC,KAAK,IAAI,IAAI,EAAE;AACtB,QAAA,OAAOA,QAAM;;IAEjB,IAAI,MAAM,CAAC,UAAU,EAAE,eAAe,IAAI,IAAI,EAAE;QAC5C,MAAM,eAAe,GAAGa,mBAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM;QACpE,IAAI,eAAe,GAAG,eAAe;AACrC,QAAAsE,mBAAa,CAACnF,QAAM,CAAC,KAAK,EAAE,SAAS,IAAG;AACpC,YAAA,IAAI,SAAS,CAAC,IAAI,KAAKe,QAAM,EAAE;gBAC3B;;YAEJ,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;AACpC,gBAAA,eAAe,EAAE;;YAErB,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;AACpC,gBAAA,eAAe,EAAE;;AAEzB,SAAC,CAAC;AACF,QAAA,IACI,MAAM,CAAC,UAAU,CAAC,eAAe,GAAG,eAAe;YACnD,eAAe,GAAG,eAAe,EACnC;AACE,YAAA,OAAOhB,aAAM,CAAC,KAAK,CACf,CAAG,EAAA,MAAM,CAAC,UAAU,CAAC,UAAU,CAAuD,qDAAA,CAAA,CACzF;;;AAGT,IAAA,OAAOC,QAAM;AACjB,CAAC;AAmBD,MAAM,gBAAgB,GAAG,CAA6D,EAClF,KAAK,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,SAAS,EACT,2BAA2B,GAQ9B,KAMG;AACA,IAAA,QAAQ,KAAK,CAAC,IAAI;AACd,QAAA,KAAKgB,SAAO;AACR,YAAA,QAAQ,MAAM,CAAC,IAAI;AACf,gBAAA,KAAKA,SAAO;;AAER,oBAAA,IACI,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;AACpC,wBAAA,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EACvC;wBACE,MAAM,UAAU,GAAG,SAAS,CAAC;AACzB,4BAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;AACjC,4BAAA,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;AACrC,yBAAA,CAAC;AACF,wBAAA,IAAI,UAAU,KAAK,SAAS,EAAE;4BAC1B,OAAOjB,aAAM,CAAC,EAAE,CAAC;AACb,gCAAA,UAAU,EAAE,SAAS;AACrB,gCAAA,WAAW,EAAE,SAAS;AACzB,6BAAA,CAAC;;wBAEN,OAAOA,aAAM,CAAC,EAAE,CAAC;4BACb,UAAU,EAAE,EAAE,IAAI,EAAEgB,QAAM,EAAE,MAAM,EAAE,UAAU,EAAE;AAChD,4BAAA,WAAW,EAAE,SAAS;AACzB,yBAAA,CAAC;;;oBAGN,OAAOhB,aAAM,CAAC,EAAE,CAAC;AACb,wBAAA,UAAU,EAAE,SAAS;AACrB,wBAAA,WAAW,EAAE,SAAS;AACzB,qBAAA,CAAC;AACN,gBAAA,KAAKgB,QAAM;oBACP,OAAOhB,aAAM,CAAC,EAAE,CAAC;AACb,wBAAA,UAAU,EAAE,KAAK;AACjB,wBAAA,WAAW,EAAE,SAAS;AACzB,qBAAA,CAAC;;YAEV;AACJ,QAAA,KAAKgB,QAAM;AACP,YAAA,QAAQ,MAAM,CAAC,IAAI;gBACf,KAAKC,SAAO,EAAE;oBACV,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;AACvC,wBAAA,MAAM,IAAI,KAAK,CACX,4DAA4D,CAC/D;;oBAGL,OAAOjB,aAAM,CAAC,EAAE,CAAC;AACb,wBAAA,UAAU,EAAE,SAAS;AACrB,wBAAA,WAAW,EAAE;AACT,4BAAA,IAAI,EAAEiB,SAAO;AACb,4BAAA,OAAO,EAAE;AACL,gCAAA,QAAQ,EAAE,SAAS;AACtB,6BAAA;AACJ,yBAAA;AACJ,qBAAA,CAAC;;gBAEN,KAAKD,QAAM,EAAE;AACT,oBAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,wBAAA,OAAOhB,aAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC;;oBAEpD,MAAM,KAAK,GAAG,cAAc,CAAC;wBACzB,KAAK;wBACL,KAAK,EAAE,KAAK,CAAC,MAAM;wBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;AACxB,qBAAA,CAAC;AACF,oBAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACf,wBAAA,OAAO,KAAK;;oBAEhB,OAAOA,aAAM,CAAC,EAAE,CAAC;AACb,wBAAA,UAAU,EACN,KAAK,CAAC,KAAK,CAAC,UAAU,IAAI;AACtB,8BAAE;AACF,8BAAE;AACI,gCAAA,IAAI,EAAEgB,QAAM;AACZ,gCAAA,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU;AACjC,6BAAA;AACX,wBAAA,WAAW,EACP,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI;AACvB,8BAAE;AACF,8BAAE;AACI,gCAAA,IAAI,EAAEA,QAAM;AACZ,gCAAA,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW;AAClC,6BAAA;AACd,qBAAA,CAAC;;;YAGV;;AAEZ,CAAC;AAEM,MAAMoB,iBAAe,GAAG,CAA4C,EACvE,KAAK,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,SAAS,GAOZ,KAMG;IACA,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE;QACjC,OAAOpC,aAAM,CAAC,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,KAAK,IAAI,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK;AACrE,YAAA,WAAW,EAAE,MAAM,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM;AAC5E,SAAA,CAAC;;AAGN,IAAA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAwD;AAClF,IAAA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwD;IACnF,IAAI,KAAK,GAAG,SAAyD;AAErE,IAAA+E,kBAAY,CAACH,iBAAW,CAAC,KAAK,CAAC,EAAEA,iBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;AACzE,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACf;;AAEJ,QAAA,QAAQ,KAAK,CAAC,IAAI;YACd,KAAKI,UAAI,EAAE;gBACP,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;gBAC/B;;YAEJ,KAAKC,WAAK,EAAE;gBACR,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC;gBACjC;;YAEJ,KAAKC,UAAI,EAAE;gBACP,MAAM,KAAK,GAAG,gBAAgB,CAAC;AAC3B,oBAAA,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,MAAM,EAAE,KAAK,CAAC,KAAK;oBACnB,cAAc;oBACd,SAAS;oBACT,2BAA2B,EAAE,CAAI,CAAA,EAAA,GAAG,CAAoD,kDAAA,CAAA;AAC3F,iBAAA,CAAC;AACF,gBAAA,IAAI,KAAK,CAAC,OAAO,EAAE;oBACf,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;oBAC9B;;gBAEJ,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE;oBACtC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;;gBAE/C,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE;oBACvC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;;gBAEjD;;;AAGZ,KAAC,CAAC;AACF,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;QACf,OAAOlF,aAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;;IAEpC,OAAOA,aAAM,CAAC,EAAE,CAAC;AACb,QAAA,UAAU,EAAE,UAAU,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,GAAG6E,iBAAW,CAAC,UAAU,CAAC;AACvE,QAAA,WAAW,EAAE,WAAW,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,GAAGA,iBAAW,CAAC,WAAW,CAAC;AAC7E,KAAA,CAAC;AACN,CAAC;AAEM,MAAMtC,MAAI,GAAG,CAAqB,EACrC,SAAS,EACT,SAAS,EACT,SAAS,GASZ,KAAI;AACD,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4D;IAClF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAIwC,kBAAY,CAACH,iBAAW,CAAC,SAAS,CAAC,EAAEA,iBAAW,CAAC,SAAS,CAAC,CAAC,EAAE;AACrF,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAKI,UAAI;AACL,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,oBAAA,IAAI,EAAE/D,SAAO;oBACb,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;AACzD,iBAAA,CAAC;gBACF;YACJ,KAAKgE,WAAK,EAAE;AACR,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACZ,oBAAA,IAAI,EAAEhE,SAAO;oBACb,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE;AAC1D,iBAAA,CAAC;gBACF;;YAEJ,KAAKiE,UAAI,EAAE;gBACP,MAAM,UAAU,GAAG,SAAS,CAAC;oBACzB,GAAG;oBACH,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,SAAS,EAAE,KAAK,CAAC,KAAK;AACzB,iBAAA,CAAC;AACF,gBAAA,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC1B;;AAEJ,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAElE,QAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;gBACrD;;;;AAIZ,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;AACnB,QAAA,OAAO,SAAS;;AAEpB,IAAA,OAAO6D,iBAAW,CAAC,MAAM,CAAC;AAC9B,CAAC;AAEM,MAAM,oBAAoB,GAAG,CAA6C,EAC7E,MAAM,EACN,QAAQ,EACR,YAAY,GAKf,KAAoE;AACjE,IAAA,OAAOQ,kBAAY,CAAC,MAAM,EAAE,OAAO,IAAG;AAClC,QAAA,IAAI,OAAO,CAAC,IAAI,KAAKpE,SAAO,EAAE;YAC1B,OAAO;AACH,gBAAA,IAAI,EAAEA,SAAO;AACb,gBAAA,OAAO,EAAE;AACL,oBAAA,QAAQ,EACJ,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI;AACxB,0BAAE;0BACA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC/C,iBAAA;aACJ;;QAEL,OAAO;AACH,YAAA,IAAI,EAAED,QAAM;AACZ,YAAA,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;SACvC;AACL,KAAC,CAAC;AACN,CAAC;AAEM,MAAM,sBAAsB,GAAG,CAA6C,EAC/E,MAAM,EACN,QAAQ,EACR,YAAY,GAKf,KAAsE;AACnE,IAAA,OAAOqE,kBAAY,CAAC,MAAM,EAAE,OAAO,IAAG;AAClC,QAAA,IAAI,OAAO,CAAC,IAAI,KAAKpE,SAAO,EAAE;YAC1B,OAAO;AACH,gBAAA,IAAI,EAAEA,SAAO;AACb,gBAAA,OAAO,EAAE;AACL,oBAAA,QAAQ,EACJ,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI;AACxB,0BAAE;0BACA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC/C,iBAAA;aACJ;;QAEL,OAAO;AACH,YAAA,IAAI,EAAED,QAAM;AACZ,YAAA,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;SACvC;AACL,KAAC,CAAC;AACN,CAAC;;AC5kCD;AACA;AACA;AACA;AAiCO,MAAM,EAAE,GAAG;AACX,MAAM,EAAE,GAAG;AAElB,MAAM,aAAa,GAAG,CAAC,GAAW,KAAK,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE;AAE/D,MAAM,oBAAoB,GAAG,CAAC,EAC1B,GAAG,EACH,UAAU,GAIb,KAAU;IACPsE,eAAS,CAAC,IAAI,CACV,CAAI,CAAA,EAAA,GAAG,CAAsB,mBAAA,EAAA,UAAU,CAAiF,8EAAA,EAAA,UAAU,CAAiD,+CAAA,CAAA,CACtL;AACL,CAAC;AAED;AACO,MAAM,aAAa,GACtB,CAAwB,QAAW,KACnC,CAAC,eAAmC,KAAoB;IACpD,MAAM,oBAAoB,GAAG,eAAsB;AACnD,IAAA,QAAQ,QAAQ,CAAC,IAAI;QACjB,KAAK,MAAM,EAAE;AACT,YAAA,QAAQ,QAAQ,CAAC,IAAI;AACjB,gBAAA,KAAK,OAAO;oBACR,OAAO;wBACH,QAAQ,EAAE,oBAAoB,CAAC,QAAQ;qBACnC;AACZ,gBAAA,KAAK,EAAE;oBACH,OAAO,QAAQ,CAAC;AACZ,0BAAEC,eAAmC,CAAC,oBAAoB;AAC1D,0BAAGxC,eAA2B,CAAC,oBAAoB,CAAS;;YAExE;;QAEJ,KAAK,MAAM,EAAE;YACT,OAAOyC,oBAAoC,CAAC;AACxC,gBAAA,MAAM,EAAE,eAGP;AACD,gBAAA,QAAQ,EAAE,CAAC,IAAI,CAAC;AAChB,gBAAA,YAAY,EAAE,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAgB,CAAC;AAC7E,aAAA,CAAQ;;QAEb,KAAK,WAAW,EAAE;AACd,YAAA,OAAO9B,eAAS,CACZ,eAA2E,EAC3E,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACjC;;QAEZ,KAAK,MAAM,EAAE;YACT,OAAOA,eAAS,CACZ,eAA+D,EAC/D,CAAC,gBAAgB,EAAE,GAAG,KAAI;AACtB,gBAAA,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;AACpB,oBAAA,OAAO,gBAAgB;;gBAE3B,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,gBAAA,IAAI,eAAe,IAAI,IAAI,EAAE;oBACzB,oBAAoB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AACtD,oBAAA,OAAO,SAAS;;AAEpB,gBAAA,OAAO,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC;AAC3D,aAAC,CACG;;;AAGpB;AAEJ;AACO,MAAM,eAAe,GACxB,CAAwB,QAAW,KACnC,CAAC,eAAmC,KAAsB;IACtD,MAAM,oBAAoB,GAAG,eAAsB;AACnD,IAAA,QAAQ,QAAQ,CAAC,IAAI;QACjB,KAAK,MAAM,EAAE;AACT,YAAA,QAAQ,QAAQ,CAAC,IAAI;AACjB,gBAAA,KAAK,OAAO;oBACR,OAAO;wBACH,QAAQ,EAAE,oBAAoB,CAAC,QAAQ;qBACnC;AACZ,gBAAA,KAAK,EAAE;oBACH,OAAO,QAAQ,CAAC;AACZ,0BAAE+B,iBAAqC,CAAC,oBAAoB;AAC5D,0BAAGzC,iBAA6B,CAAC,oBAAoB,CAAS;;YAE1E;;QAEJ,KAAK,MAAM,EAAE;YACT,OAAO0C,sBAAsC,CAAC;AAC1C,gBAAA,MAAM,EAAE,eAGP;AACD,gBAAA,QAAQ,EAAE,CAAC,IAAI,CAAC;AAChB,gBAAA,YAAY,EAAE,SAAS,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAgB,CAAC;AAC/E,aAAA,CAAQ;;QAEb,KAAK,WAAW,EAAE;AACd,YAAA,OAAOhC,eAAS,CACZ,eAA2E,EAC3E,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACnC;;QAEZ,KAAK,MAAM,EAAE;YACT,OAAOA,eAAS,CACZ,eAA+D,EAC/D,CAAC,gBAAgB,EAAE,GAAG,KAAI;AACtB,gBAAA,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;AACpB,oBAAA,OAAO,gBAAgB;;gBAE3B,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,gBAAA,IAAI,eAAe,IAAI,IAAI,EAAE;oBACzB,oBAAoB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AACtD,oBAAA,OAAO,SAAS;;AAEpB,gBAAA,OAAO,eAAe,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC;AAC7D,aAAC,CACG;;;AAGpB;AAEJ;AACa,MAAAtC,OAAK,GACd,CAAwB,QAAW,KACnC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAI;IACrB,MAAM,cAAc,GAAG,SAAgB;AACvC,IAAA,QAAQ,QAAQ,CAAC,IAAI;QACjB,KAAK,MAAM,EAAE;AACT,YAAA,QAAQ,QAAQ,CAAC,IAAI;AACjB,gBAAA,KAAK,OAAO;oBACR,OAAOpB,aAAM,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC7C,gBAAA,KAAK,EAAE;oBACH,OAAO,QAAQ,CAAC;0BACV2F,OAA2B,CAAC,KAAK,EAAE,cAAc;0BACjD1C,OAAmB,CAAC,KAAK,EAAE,cAAc,CAAC;;YAExD;;QAEJ,KAAK,MAAM,EAAE;YACT,OAAO2C,OAAqB,CAAC;AACzB,gBAAA,SAAS,GAAG,KAAK,IAAI,EAAE,CAAuC;AAC9D,gBAAA,SAAS,EAAE,SAGV;AACD,gBAAA,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KACjCxE,OAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,SAAS,EAAE,SAAgB;iBAC9B,CAAC;AACT,aAAA,CAAC;;QAEN,KAAK,WAAW,EAAE;YACd,OAAOyE,OAA0B,CAAC;gBAC9B,SAAS,EAAE,KAAK,IAAI,EAAE;AACtB,gBAAA,SAAS,EAAE,SAAqD;AAChE,gBAAA,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KACjCzE,OAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,SAAS,EAAE,SAAS;iBACvB,CAAC;gBACN,YAAY,EAAE,QAAQ,CAAC,YAAY;AACtC,aAAA,CAAC;;QAEN,KAAK,MAAM,EAAE;AACT,YAAA,MAAMnB,QAAM,GAAG,EAAE,GAAG,KAAK,EAAE;AAC3B,YAAA,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAIa,mBAAa,CACtC,SAAqD,CACxD,EAAE;AACC,gBAAA,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;oBACpB;;gBAEJ,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,gBAAA,IAAI,eAAe,IAAI,IAAI,EAAE;oBACzB,oBAAoB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;oBACtD;;AAEJ,gBAAA,MAAM,OAAO,GAAGM,OAAK,CAAC,eAAe,CAAC,CAAC;AACnC,oBAAA,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;AACjB,oBAAA,SAAS,EAAE,KAAK;AACnB,iBAAA,CAAC;AACF,gBAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACjB,oBAAA,OAAO,OAAO;;AAElB,gBAAAnB,QAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK;;AAE/B,YAAA,OAAOD,aAAM,CAAC,EAAE,CAACC,QAAM,CAAC;;;AAGpC;AAEJ;AACa,MAAA,SAAS,GAClB,CAAwB,QAAW,KACnC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAI;IACrB,MAAM,cAAc,GAAG,SAAgB;AACvC,IAAA,QAAQ,QAAQ,CAAC,IAAI;QACjB,KAAK,MAAM,EAAE;AACT,YAAA,QAAQ,QAAQ,CAAC,IAAI;AACjB,gBAAA,KAAK,OAAO;oBACR,OAAOD,aAAM,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC7C,gBAAA,KAAK,EAAE;oBACH,OAAO,QAAQ,CAAC;0BACV8F,WAA+B,CAAC,KAAK,EAAE,cAAc;0BACrD5C,WAAuB,CAAC,KAAK,EAAE,cAAc,CAAC;;YAE5D;;QAEJ,KAAK,MAAM,EAAE;YACT,OAAO6C,WAAyB,CAAC;AAC7B,gBAAA,SAAS,GAAG,KAAK,IAAI,EAAE,CAAuC;AAC9D,gBAAA,SAAS,EAAE,SAGV;AACD,gBAAA,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KACjC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACtB,KAAK;AACL,oBAAA,SAAS,EAAE,SAAgB;iBAC9B,CAAC;AACT,aAAA,CAAC;;QAEN,KAAK,WAAW,EAAE;YACd,OAAOC,WAA8B,CAAC;gBAClC,SAAS,EAAE,KAAK,IAAI,EAAE;AACtB,gBAAA,SAAS,EAAE,SAAuD;AAClE,gBAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KACrC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,SAAS,EAAE,SAAS;iBACvB,CAAC;gBACN,YAAY,EAAE,QAAQ,CAAC,YAAY;AACtC,aAAA,CAAC;;QAEN,KAAK,MAAM,EAAE;AACT,YAAA,MAAM/F,QAAM,GAAG,EAAE,GAAG,KAAK,EAAE;AAC3B,YAAA,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAIa,mBAAa,CACtC,SAAuD,CAC1D,EAAE;AACC,gBAAA,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;oBACpB;;gBAEJ,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,gBAAA,IAAI,eAAe,IAAI,IAAI,EAAE;oBACzB,oBAAoB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;oBACtD;;AAEJ,gBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AACvC,oBAAA,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;AACjB,oBAAA,SAAS,EAAE,KAAK;AACnB,iBAAA,CAAC;AACF,gBAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACjB,oBAAA,OAAO,OAAO;;AAElB,gBAAAb,QAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK;;AAE/B,YAAA,OAAOD,aAAM,CAAC,EAAE,CAACC,QAAM,CAAC;;;AAGpC;AAEJ;AACa,MAAA,oBAAoB,GAC7B,CAAwB,QAAW,KACnC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAI;IAClB,MAAM,UAAU,GAAG,KAAY;IAC/B,MAAM,WAAW,GAAG,MAAa;AACjC,IAAA,QAAQ,QAAQ,CAAC,IAAI;QACjB,KAAK,MAAM,EAAE;AACT,YAAA,QAAQ,QAAQ,CAAC,IAAI;AACjB,gBAAA,KAAK,OAAO;oBACR,OAAOD,aAAM,CAAC,EAAE,CAAC;wBACb,QAAQ,EAAE,UAAU,CAAC,QAAQ;AACzB,qBAAA,CAAC;AACb,gBAAA,KAAK,EAAE;oBACH,OAAO,QAAQ,CAAC;0BACViG,sBAA0C,CAAC,UAAU,EAAE,WAAW;0BAClE9C,sBAAkC,CAAC,UAAU,EAAE,WAAW,CAAC;;YAEzE;;QAEJ,KAAK,MAAM,EAAE;YACT,OAAO+C,sBAAoC,CAAC;AACxC,gBAAA,KAAK,EAAE,KAGN;AACD,gBAAA,MAAM,EAAE,MAGP;gBACD,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KACjC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBACnD,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAC5B,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC9D,aAAA,CAAC;;QAEN,KAAK,WAAW,EAAE;YACd,OAAOC,SAA4B,CAAC;gBAChC,KAAK;gBACL,MAAM;gBACN,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAC5B,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC9D,aAAA,CAAC;;QAEN,KAAK,MAAM,EAAE;AACT,YAAA,MAAM,QAAQ,GAAGvB,iBAAW,CAAC,KAAK,CAAC;AACnC,YAAA,MAAM,SAAS,GAAGA,iBAAW,CAAC,MAAM,CAAC;AACrC,YAAA,MAAM3E,QAAM,GAAoE;AAC5E,gBAAA,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;AACjB,gBAAA,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;aACpB;AACD,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI8E,kBAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;AAC1D,gBAAA,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;oBACpB;;AAEJ,gBAAA,QAAQ,KAAK,CAAC,IAAI;AACd,oBAAA,KAAKC,UAAI;AACL,wBAAA/E,QAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI;wBACxB;AACJ,oBAAA,KAAKgF,WAAK;AACN,wBAAAhF,QAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK;wBACzB;oBACJ,SAAS;wBACL,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,wBAAA,IAAI,eAAe,IAAI,IAAI,EAAE;4BACzB,oBAAoB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;4BACtD;;AAEJ,wBAAA,MAAM,QAAQ,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;4BACnD,KAAK,EAAE,KAAK,CAAC,IAAI;4BACjB,MAAM,EAAE,KAAK,CAAC,KAAK;AACtB,yBAAA,CAAC;AACF,wBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,4BAAA,OAAO,QAAQ;;AAEnB,wBAAAA,QAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK;;;;AAIxC,YAAA,OAAOD,aAAM,CAAC,EAAE,CAACC,QAAM,CAAC;;;AAGpC;AAEJ;;;AAGG;AACU,MAAA,OAAO,GAChB,CAAwB,QAAW,KACnC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,KAAI;IAC7B,MAAM,cAAc,GAAG,SAAgB;IACvC,MAAM,kBAAkB,GAAG,aAAoB;AAC/C,IAAA,QAAQ,QAAQ,CAAC,IAAI;QACjB,KAAK,MAAM,EAAE;AACT,YAAA,QAAQ,QAAQ,CAAC,IAAI;AACjB,gBAAA,KAAK,OAAO;oBACR,OAAOD,aAAM,CAAC,EAAE,CAAC;wBACb,SAAS,EAAE,kBAAkB,CAAC,QAAQ;AACtC,wBAAA,eAAe,EAAE;4BACb,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;AACrC,4BAAA,QAAQ,EAAE,SAAS;AACf,yBAAA;AACX,qBAAA,CAAC;AACN,gBAAA,KAAK,EAAE;oBACH,OAAO,QAAQ,CAAC;AACZ,0BAAEoG,SAA6B,CAAC;AAC1B,4BAAA,SAAS,EAAE,cAAc;AACzB,4BAAA,aAAa,EAAE,kBAAkB;yBACpC;AACH,0BAAE/C,SAAqB,CAAC;AAClB,4BAAA,SAAS,EAAE,cAAc;AACzB,4BAAA,aAAa,EAAE,kBAAkB;AACpC,yBAAA,CAAC;;YAEhB;;QAEJ,KAAK,MAAM,EAAE;YACT,OAAOgD,SAAuB,CAAC;AAC3B,gBAAA,SAAS,GAAG,SAAS,IAAI,EAAE,CAAuC;AAClE,gBAAA,aAAa,EAAE,aAGd;gBACD,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;gBAClD,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,KACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,EAAE,aAAoB,EAAE,SAAS,EAAE,CAAC;AAClF,aAAA,CAAC;;QAEN,KAAK,WAAW,EAAE;YACd,OAAOC,SAA4B,CAAC;gBAChC,SAAS,EAAE,SAAS,IAAI,EAAE;AAC1B,gBAAA,aAAa,EAAE,aAGd;gBACD,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,KACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,EAAE,aAAoB,EAAE,SAAS,EAAE,CAAC;AAClF,aAAA,CAAC;;QAEN,KAAK,MAAM,EAAE;AACT,YAAA,MAAM,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE;AAClC,YAAA,MAAM,eAAe,GAA4D;AAC7E,gBAAA,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;AACjB,gBAAA,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;aACpB;AACD,YAAA,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAIxF,mBAAa,CACtC,aAA2D,CAC9D,EAAE;AACC,gBAAA,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;oBACpB;;gBAEJ,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,gBAAA,IAAI,eAAe,IAAI,IAAI,EAAE;oBACzB,oBAAoB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;oBACtD;;AAEJ,gBAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACtC,oBAAA,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;AACzB,oBAAA,aAAa,EAAE,KAAK;AACvB,iBAAA,CAAC;AACF,gBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,oBAAA,OAAO,QAAQ;;gBAEnB,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS;gBACzC,eAAe,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,eAEvB;;YAEnB,OAAOd,aAAM,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;;;AAG5D;AAEJ;;AAEG;AACU,MAAA,IAAI,GACb,CAAwB,QAAW,KACnC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAI;IACzB,MAAM,cAAc,GAAG,SAAgB;IACvC,MAAM,cAAc,GAAG,SAAgB;AACvC,IAAA,QAAQ,QAAQ,CAAC,IAAI;QACjB,KAAK,MAAM,EAAE;AACT,YAAA,QAAQ,QAAQ,CAAC,IAAI;AACjB,gBAAA,KAAK,OAAO;oBACR,OAAO,SAAS,KAAK;AACjB,0BAAE;AACF,0BAAG;AACG,4BAAA,QAAQ,EAAE,SAAS;AACnB,4BAAA,QAAQ,EAAE,SAAS;yBACd;AACnB,gBAAA,KAAK,EAAE;oBACH,OAAO,QAAQ,CAAC;AACZ,0BAAEuG,MAA0B,CAAC;AACvB,4BAAA,IAAI,EAAE,cAAc;AACpB,4BAAA,IAAI,EAAE,cAAc;yBACvB;AACH,0BAAEnD,MAAkB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;YAEhF;;QAEJ,KAAK,MAAM,EAAE;YACT,OAAOoD,MAAoB,CAAC;AACxB,gBAAA,SAAS,GAAG,SAAS,IAAI,EAAE,CAAuC;AAClE,gBAAA,SAAS,GAAG,SAAS,IAAI,EAAE,CAAuC;gBAClE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AACrD,aAAA,CAAC;;QAEN,KAAK,WAAW,EAAE;YACd,OAAOC,MAAyB,CAAC;AAC7B,gBAAA,SAAS,GAAG,SAAS,IAAI,EAAE,CAAuC;AAClE,gBAAA,SAAS,GAAG,SAAS,IAAI,EAAE,CAAuC;AAClE,gBAAA,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjB,oBAAA,SAAS,EAAE,SAAS,IAAI,QAAQ,CAAC,YAAY;AAC7C,oBAAA,SAAS,EAAE,SAAS,IAAI,QAAQ,CAAC,YAAY;iBAChD,CAAC;AACT,aAAA,CAAC;;QAEN,KAAK,MAAM,EAAE;AACT,YAAA,MAAM,YAAY,GAAG7B,iBAAW,CAAC,SAAS,CAAC;AAC3C,YAAA,MAAM,YAAY,GAAGA,iBAAW,CAAC,SAAS,CAAC;AAC3C,YAAA,MAAM,MAAM,GAAsE;AAC9E,gBAAA,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;AACjB,gBAAA,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;aACpB;AACD,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAIG,kBAAY,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE;AACjE,gBAAA,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;oBACpB;;gBAEJ,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,gBAAA,IAAI,eAAe,IAAI,IAAI,EAAE;oBACzB,oBAAoB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;oBAClD;;gBAEJ,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;oBAChC,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,SAAS,EAAE,KAAK,CAAC,KAAK;AACzB,iBAAA,CAAC;;AAEN,YAAA,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AACpB,gBAAA,OAAO,SAAS;;AAEpB,YAAA,OAAO,MAAM;;;AAGzB;AAEJ,MAAM,2BAA2B,GAAG,CAChC,UAAwF,KAC/E;AACT,IAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAChC,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;YACnB;;QAEJ,KAAK,MAAM,gBAAgB,IAAIjE,mBAAa,CAAC,SAAS,CAAC,EAAE;YACrD,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;gBACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ;gBACxD,IACI,OAAO,QAAQ,KAAK,QAAQ;AAC5B,oBAAA,QAAQ,IAAI,IAAI;AAChB,oBAAA,MAAM,IAAI,QAAQ;AAClB,oBAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,SAAS,EAChC;AACE,oBAAA,OAAO,IAAI;;gBAEf;;AAGJ,YAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM;YAC5C,IACI,OAAO,MAAM,KAAK,QAAQ;AAC1B,gBAAA,MAAM,IAAI,IAAI;AACd,gBAAA,MAAM,IAAI,MAAM;AAChB,gBAAA,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,EAC9B;AACE,gBAAA,OAAO,IAAI;;;;AAKvB,IAAA,OAAO,KAAK;AAChB,CAAC;AAED;;;;;;;;AAQG;AACU,MAAAsB,iBAAe,GACxB,CAAwB,QAAW,KACnC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAI;AACzB,IAAA,QAAQ,QAAQ,CAAC,IAAI;QACjB,KAAK,MAAM,EAAE;AACT,YAAA,QAAQ,QAAQ,CAAC,IAAI;AACjB,gBAAA,KAAK,OAAO;oBACR,OAAOpC,aAAM,CAAC,EAAE,CAAC;AACb,wBAAA,UAAU,EAAE;4BACR,QAAQ,EAAG,KAAa,CAAC,QAAQ;AACpC,yBAAA;AACD,wBAAA,WAAW,EAAE,SAAS;AACzB,qBAAA,CAAQ;AACb,gBAAA,KAAK,EAAE;oBACH,OAAO,QAAQ,CAAC;AACZ,0BAAE0G,iBAAqC,CAAC;AAClC,4BAAA,KAAK,EAAE,KAAY;AACnB,4BAAA,MAAM,EAAE,MAAa;yBACxB;AACH,0BAAEnD,iBAA6B,CAAC;AAC1B,4BAAA,KAAK,EAAE,KAAY;AACnB,4BAAA,MAAM,EAAE,MAAa;AACxB,yBAAA,CAAC;;YAEhB;;QAEJ,KAAK,MAAM,EAAE;YACT,MAAM,MAAM,GAAG,KAGd;YACD,MAAM,OAAO,GAAG,MAGf;AACD,YAAA,MAAM,IAAI,GAEH;gBACH,KAAK;AACL,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KACrCnB,iBAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC5B,KAAK;oBACL,KAAK;oBACL,MAAM;iBACT,CAAC;gBACN,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAI;AACpC,oBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AACxD,oBAAA,IAAI,CAAC,IAAI,IAAI,EAAE;AACX,wBAAA,OAAO,SAAS;;oBAEpB,OAAO,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAC1C;aACJ;YACD,IAAI,2BAA2B,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE;gBAChD,OAAOuE,eAA8B,CAAC;AAClC,oBAAA,GAAG,IAAI;oBACP,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KACjCvF,OAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC7D,iBAAA,CAAC;;AAEN,YAAA,OAAOwF,iBAA+B,CAAC,IAAI,CAAC;;QAEhD,KAAK,WAAW,EAAE;YACd,OAAOC,iBAAoC,CAAC;gBACxC,KAAK;gBACL,YAAY,EAAE,QAAQ,CAAC,YAAY;AACnC,gBAAA,KAAK,EAAE,KAA6D;AACpE,gBAAA,MAAM,EAAE,MAA8D;AACtE,gBAAA,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KACrCzE,iBAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC5B,KAAK;oBACL,KAAK;oBACL,MAAM;iBACT,CAAC;AACT,aAAA,CAAC;;QAEN,KAAK,MAAM,EAAE;AACT,YAAA,MAAM,QAAQ,GAAGwC,iBAAW,CAAC,KAAK,CAAC;AACnC,YAAA,MAAM,SAAS,GAAGA,iBAAW,CAAC,MAAM,CAAC;AACrC,YAAA,MAAM,UAAU,GAAkE;AAC9E,gBAAA,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;AACjB,gBAAA,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;aACpB;AACD,YAAA,MAAM,WAAW,GAAkE;AAC/E,gBAAA,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;AACjB,gBAAA,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;aACpB;AACD,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAIG,kBAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;AAC1D,gBAAA,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;oBACpB;;AAEJ,gBAAA,QAAQ,KAAK,CAAC,IAAI;AACd,oBAAA,KAAKC,UAAI;AACL,wBAAA,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI;wBAC5B;AACJ,oBAAA,KAAKC,WAAK;AACN,wBAAA,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK;wBAC9B;oBACJ,SAAS;AACL,wBAAA,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;AACpB,wBAAA,IAAI,CAAC,KAAK,SAAS,EAAE;4BACjB,OAAOjF,aAAM,CAAC,KAAK,CACf,GAAG,GAAG,CAAA,yCAAA,CAA2C,CACpD;;wBAEL,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,wBAAA,IAAI,eAAe,IAAI,IAAI,EAAE;4BACzB,oBAAoB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;4BACtD;;AAEJ,wBAAA,MAAM,OAAO,GAAGoC,iBAAe,CAAC,eAAe,CAAC,CAAC;AAC7C,4BAAA,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,KAAK,CAAC,IAAI;4BACjB,MAAM,EAAE,KAAK,CAAC,KAAK;AACtB,yBAAA,CAAC;AACF,wBAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACjB,4BAAA,OAAO,OAAO;;wBAElB,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU;wBAC1C,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW;;;;YAIxD,OAAOpC,aAAM,CAAC,EAAE,CAAC;AACb,gBAAA,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,UAAU;AAC3D,gBAAA,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,SAAS,GAAG,WAAW;AACjE,aAAA,CAAC;;;AAGd;;ACptBE,MAAO,OAAQ,SAAQ,KAAK,CAAA;AACd,IAAA,OAAO;AACvB,IAAA,WAAA,CAAY,OAAqB,EAAA;;AAE7B,QAAA,MAAM,OAAO,GAAW,OAAO,CAAC,IAAI;QACpC,KAAK,CAAC,OAAO,CAAC;AACd,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS;;AAE5B;AAEY,MAAA,SAAS,GAAG,CAAC,OAA8B,KAAW;AAC/D,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;;AAE7B,IAAA,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;AAC/B;;ACXA,MAAM,YAAY,CAAA;AAED,IAAA,IAAA;AAEA,IAAA,eAAA;AAHb,IAAA,WAAA,CACa,IAAO;;IAEP,eAA2C,EAAA;QAF3C,IAAI,CAAA,IAAA,GAAJ,IAAI;QAEJ,IAAe,CAAA,eAAA,GAAf,eAAe;;IAG5B,iBAAiB,GAA6C,IAAI;;;IAGlE,YAAY,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE;YAChC,OAAO,IAAI,CAAC,iBAAiB;;AAGjC,QAAA,IAAI,YAAY,GAA6B,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpE,IAAI,iBAAiB,GAAG,CAAC;AACzB,QAAA,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE;YAC/C,KAAK,MAAM,WAAW,IAAI,cAAc,CAAC,YAAY,EAAE,EAAE;AACrD,gBAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;AAC7C,gBAAA,IAAI,IAAI,CAAC,MAAM,GAAG,iBAAiB,EAAE;oBACjC;;AAEJ,gBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB,EAAE;AACnC,oBAAA,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;oBAC3B;;AAEJ,gBAAA,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;AACzB,gBAAA,iBAAiB,GAAG,IAAI,CAAC,MAAM;;;AAGvC,QAAA,IAAI,CAAC,iBAAiB,GAAG,YAAY;QACrC,OAAO,IAAI,CAAC,iBAAiB;;AAEpC;AAED;;;;;;;;;;;;;;;;AAgBG;AACH,MAAM,WAAW,GAAG,CAAI,MAAoB,EAAE,QAAmC,KAAI;IACjF,MAAM,QAAQ,GAA+B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC;IAEnE,SAAS,eAAe,CAAC,WAAmB,EAAA;AACxC,QAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC;AAC7C,QAAA,IAAI,eAAe,IAAI,IAAI,EAAE;AACzB,YAAA,OAAO,eAAe;;AAE1B,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAE;QACzC,MAAM,eAAe,GAAsB,EAAE;AAC7C,QAAA,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,YAAA,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC;YAEzC,MAAM,kBAAkB,GAAG,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;;YAGtE,IACI,kBAAkB,IAAI,IAAI;AAC1B,gBAAA,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,GAAG,EAChE;gBACE;;YAGJ,IAAI,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE;AACrD,gBAAA,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;;;QAI5C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,eAAe,CAAC;AAC9D,QAAA,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM;AAC9B,QAAA,OAAO,MAAM;;AAGjB,IAAA,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC;AAEpD,IAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAG;AACvB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;AAG7C,QAAA,OAAO,IAAI;AACf,KAAC,CAAC;AACN,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAI,EAC7B,CAAC,EACD,CAAC,EACD,QAAQ,GAKX,KAAwC;IACrC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE;AACrB,QAAA,OAAO,WAAW;;IAEtB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE;AACrB,QAAA,OAAO,WAAW;;AAGtB,IAAA,MAAM,OAAO,GAAG,CAAC,IAAkB,KAC/B,CAAC,GAAG8G,sBAAgB,CAAC,IAAI,CAAC;SACrB,OAAO,CAAC,IAAI,IAAG;AACZ,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;AACnB,YAAA,OAAO,EAAE;;AAEb,QAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,KAAC;AACA,SAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE9B,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;AAC7B,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;IAE7B,KAAK,MAAM,KAAK,IAAIC,oBAAc,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE;AACxD,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK7B,UAAI,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,CAAyB,sBAAA,EAAAA,UAAI,CAAoB,iBAAA,EAAA,KAAK,CAAC,IAAI,CAAI,EAAA,CAAA,CAAC;;QAGpF,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,EAAE;YAC5B;;AAEJ,QAAA,OAAO,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,WAAW,GAAG,WAAW;;AAG/D,IAAA,OAAO,MAAM;AACjB,CAAC;AAED;AACA,MAAM,kBAAkB,GAAG,CAAU,EACjC,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,QAAQ,GAOX,KAAI;AACD,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAEtF,MAAM,KAAK,GAAG,WAAW,CACrB,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAC1F,CAAC,CAAC,EAAE,CAAC,KAAI;AACL,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1C,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;;AAG1C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,OAAO,GAAG;;AAEd,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,OAAO,GAAG;;AAGd,QAAA,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;AACjC,KAAC,CACJ;IAED,IAAI,WAAW,GAA2C,EAAE;AAC5D,IAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;QACnB,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;YACrC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AACvC,gBAAA,CAAC,EAAE,WAAW;AACd,gBAAA,CAAC,EAAE,IAAI;AACP,gBAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK;AACzB,aAAA,CAAC;YACF,QAAQ,aAAa;AACjB,gBAAA,KAAK,WAAW;oBACZ;AACJ,gBAAA,KAAK,WAAW;oBACZ,WAAW,GAAG,IAAI;oBAClB;;;;AAQhB,IAAA,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC;AAChD,CAAC;AAED;;;;;;AAMG;AACH,MAAM,WAAW,GAAG,CAAI,MAAW,EAAE,SAA+B,KAAI;IACpE,MAAM,MAAM,GAAQ,EAAE;AACtB,IAAA,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACnB,YAAA,OAAO,MAAM;;AAEjB,QAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAClB,QAAA,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;;AAEvB,IAAA,OAAO,MAAM;AACjB,CAAC;AAEM,MAAM,SAAS,GAAG,CAAU,EAC/B,IAAI,EACJ,IAAI,EACJ,MAAM,GAMT,KAAI;AACD,IAAA,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC;AAC5B,IAAA,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC;IAE5B,MAAM,WAAW,GAAG,kBAAkB,CAAC;AACnC,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,IAAI,EAAE,UAAU;QAChB,MAAM;QACN,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;AACtD,KAAA,CAAC;AAEF,IAAA,MAAM,OAAO,GAAG,IAAI8B,uBAAgB,CAAqD;QACrF,eAAe,EAAE,MAAM,IAAI,IAAIC,kBAAW,CAAC,MAAM,CAAC,MAAM,CAAC;QACzD,eAAe,EAAE,GAAG,IAAI,IAAIA,kBAAW,CAAC,GAAG,CAAC,MAAM,CAAC;AACnD,QAAA,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACpC,QAAA,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACvC,KAAA,CAAC;AAEF,IAAA,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QAClC,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9E,QAAA,IAAIC,6BAAuB,CAAC,OAAO,CAAC,EAAE;AAClC,YAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;;AAE3B,QAAA,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAEvB,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC;AAC/E,QAAA,IAAIA,6BAAuB,CAAC,QAAQ,CAAC,EAAE;AACnC,YAAA,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;;AAE5B,QAAA,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAEvB,QAAA,OAAO,CAAC,MAAM,CAACD,kBAAW,CAAC,GAAG,CAAC;;AAGnC,IAAA,IAAIC,6BAAuB,CAAC,UAAU,CAAC,EAAE;AACrC,QAAA,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;;AAE9B,IAAA,IAAIA,6BAAuB,CAAC,UAAU,CAAC,EAAE;AACrC,QAAA,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;;IAG9B,OAAO;AACH,QAAA,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;AACtB,QAAA,OAAO,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE;AACnC,QAAA,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE;KACnC;AACL,CAAC;;AC3QD,MAAM,KAAK,GAAG,CAAI,KAAmB,EAAE,SAA4B,KAAI;AACnE,IAAA,MAAM,OAAO,GAAG,IAAIF,uBAAgB,CAChC;QACI,eAAe,EAAE,MAAM,IAAI,IAAIC,kBAAW,CAAC,MAAM,CAAC,MAAM,CAAC;QACzD,eAAe,EAAE,GAAG,IAAI,IAAIA,kBAAW,CAAC,GAAG,CAAC,MAAM,CAAC;AACnD,QAAA,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,EAAE,GAAG,MAAM,CAA6B;AAClF,QAAA,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,EAAE,GAAG,MAAM,CAA6B;KACrF,EACD,SAAS,CACZ;IACD,MAAM,OAAO,GAAG3F,YAAS,CAAC;QACtB,KAAK;AACL,QAAA,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;AACjC,QAAA,cAAc,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM;AACrC,QAAA,eAAe,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM;QACxC,eAAe,EAAE,GAAG,IAAI,IAAI2F,kBAAW,CAAC,GAAG,CAAC,MAAM,CAAC;QACnD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,KAAI;YACtC,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChF,YAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE;SAC9B;AACD,QAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,KAAI;AACpD,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAA6B;AACjF,YAAA,MAAM,MAAM,GAAG;AACX,gBAAA,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;AACxB,gBAAA,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC;gBAChD,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;aAC5C;YACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;SAChD;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACjB,QAAA,OAAO,OAAO;;IAElB,OAAOjH,aAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC5C,CAAC;AAEM,MAAM,SAAS,GAAG,CACrB,KAAmB,EACnB,iBAA+B,EAC/B,kBAAgC,EAChC,MAA4B,KAC5B;IACA,MAAM,MAAM,GAAG,MAAM;IAGrB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAU,CAAC;IACpE,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAU,CAAC;IAC5F,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAU,CAAC;AAE9F,IAAA,MAAM,OAAO,GAAG,CAAC,CAAY,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACjD,MAAM,KAAK,GAAG,SAAS,CAAkB;AACrC,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,MAAM,EAAE,OAAO;AAClB,KAAA,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,SAAS,CAAkB;AACtC,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,MAAM,EAAE,OAAO;AAClB,KAAA,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAEzC,MAAM,WAAW,GAAGmH,gBAAa,CAAC;AAC9B,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,KAAI;AAC3B,YAAA,MAAM,IAAI,GAAgB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;YACtD,MAAM,KAAK,GAAgB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YACpD,OAAO;gBACH,IAAwC;gBACxC,KAAyC;aAC5C;SACJ;AACD,QAAA,OAAO,EAAE;YACL,eAAe,EAAE,MAAM,IAAI,IAAIF,kBAAW,CAAC,MAAM,CAAC,MAAM,CAAC;YACzD,eAAe,EAAE,GAAG,IAAI,IAAIA,kBAAW,CAAC,GAAG,CAAC,MAAM,CAAC;AACnD,YAAA,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KACxB,CAAC,GAAG,KAAK,EAAE,GAAG,MAAM,CAAqC;AAC7D,YAAA,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KACxB,CAAC,GAAG,KAAK,EAAE,GAAG,MAAM,CAAqC;AAChE,SAAA;AACJ,KAAA,CAAC;AAEF,IAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,QAAA,OAAO,WAAW;;;AAItB,IAAA,MAAM,qBAAqB,GAAG,KAAK,CAAC,kBAAkB,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;AACtF,IAAA,IAAI,qBAAqB,CAAC,OAAO,EAAE;AAC/B,QAAA,OAAO,qBAAqB;;AAGhC;;;;;AAKE;AAEF,IAAA,MAAM,cAAc,GAAG,IAAIG,gBAAU,EAAqB;AAC1D,IAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAChC,QAAA,IAAI,SAAS,CAAC,IAAI,KAAKC,cAAO,EAAE;AAC5B,YAAA,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;gBAC9B,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;;;;AAI3E,IAAA,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE;AACjC,QAAA,IAAI,SAAS,CAAC,IAAI,KAAKA,cAAO,EAAE;AAC5B,YAAA,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;gBAC9B,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;;;;AAK3E,IAAA,MAAM,gBAAgB,GAAG,IAAID,gBAAU,EAAqB;IAC5D,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,qBAAqB,CAAC,KAAK,EAAE;AACvD,QAAA,IAAI,IAAI,KAAK,CAAC,EAAE;;YAEZ;;AAEJ,QAAA,gBAAgB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC;;AAGtE,IAAA,MAAMnH,QAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAI;AACnE,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;AACzB,QAAA,MAAM,qBAAqB,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;QACtE,IAAI,CAAC,qBAAqB,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC;;QAElB,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC;AAC7C,QAAA,QAAQ,IAAI,CAAC,IAAI;AACb,YAAA,KAAK,CAAC;;;AAGF,gBAAA,OAAO,EAAE;AACb,YAAA,KAAK,CAAC;;;AAGF,gBAAA,OAAO,EAAE;AACb,YAAA,KAAK,CAAC;;;;AAIF,gBAAA,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;AACpC,YAAA;;AAEI,gBAAA,OAAO,EAAE;;AAErB,KAAC,CAAC;AACF,IAAA,OAAOD,aAAM,CAAC,EAAE,CAACC,QAAM,CAAC;AAC5B,CAAC;;AClJD;AACO,MAAM,MAAM,GAAG;AAEtB;;;;;;;;;;;;;;;;;AAiBG;AACH;;;AAGE;AACK,MAAM,wBAAwB,GAAG;AACpC;;;;AAIG;AACH,IAAA,CAAC,MAAM,GAAG,0BAA0B,CAACH,KAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC;CACvE;AAED,MAAM,YAAY,GAAG,SAAS;AAE9B,MAAM,mBAAmB,GAAG,yBAAyB,CACjD,wBAAwB,EACxB,YAAY,EACZ,YAAY,CACf;AAcY,MAAA,mBAAmB,GAAG,CAC/B,MAAqC,KACjB;IACpB,MAAM,aAAa,GAAG8E,iBAAW,CAC7B0C,iBAAO,CAACxG,mBAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAC1E;IAED,MAAMb,QAAM,GAAe,EAAE;AAC7B,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClD,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/C,YAAA,OAAOD,aAAM,CAAC,KAAK,CACf,mCAAmC,CAAC,CAAA,6BAAA,EAChC,UAAU,EAAE,MAAM,IAAI,CAC1B,CAAA,eAAA,CAAiB,CACpB;;AAEL,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAE;AAC9B,QAAAC,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC;;AAGxB,IAAA,OAAOD,aAAM,CAAC,EAAE,CAACC,QAAM,CAAC;AAC5B;AAEA;;;;AAIG;AACU,MAAA,mBAAmB,GAAG,CAA6B,KAAyB,KAAI;IACzF,MAAM,MAAM,GAAkC,EAAE;IAChD,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAI;QAC7B,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAC,GAAG,CAAsB,oBAAA,CAAA,CAAC;;AAE1D,QAAA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAGsH,aAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,IAAG;AACjD,YAAA,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK;AACzB,SAAC,CAAC;AACN,KAAC,CAAC;AACF,IAAA,OAAO,MAAM;AACjB;AAEA,MAAM,iBAAiB,GAAG,CAAa,EACnC,SAAS,EACT,SAAS,EACT,YAAY,GAKf,KAAI;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;IAErE,MAAM,UAAU,GAAG,QAAQ,CAAC;AACxB,QAAA,SAAS,EAAE7D,eAAS,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM;AAC7C,YAAA,EAAE,EAAE,YAAY;AAChB,YAAA,EAAE,EAAE,YAAY;YAChB,MAAM;AACT,SAAA,CAAC,CAAC;AACH,QAAA,SAAS,EAAEA,eAAS,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM;AAC7C,YAAA,EAAE,EAAE,YAAY;AAChB,YAAA,EAAE,EAAE,YAAY;YAChB,MAAM;AACT,SAAA,CAAC,CAAC;AACN,KAAA,CAAC;;AAGF,IAAA,OAAOA,eAAS,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC,IAChC,CAAC,CAAC,IAAI,KAAK1C;AACP,UAAE;AACI,YAAA,GAAG,CAAC;;AAEJ,YAAA,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;AACjC;UACD,SAAS,CAClB;AACL,CAAC;AA6LD;;;;AAIG;AACI,MAAM,eAAe,GAAG,CAK3B,MAOC,KAUD;;;IAGA,MAAM,8BAA8B,GAAG4F,iBAA+B,CAAC,MAAM,CAAC;AAC9E,IAAA,IAAI,8BAA8B,CAAC,OAAO,EAAE;AACxC,QAAA,OAAO,8BAA8B;;IAGzC,MAAM,SAAS,GAAGxF,OAAK,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;IAEvE,MAAM,qBAAqB,GAAG,SAAS,CAAC;AACpC,QAAA,KAAK,EAAEsC,eAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM;AAC5C,YAAA,EAAE,EAAE,YAAY;AAChB,YAAA,EAAE,EAAE,YAAY;YAChB,MAAM;AACT,SAAA,CAAC,CAAC;AACH,QAAA,SAAS,EAAE8B,oBAAoC,CAAC;AAC5C,YAAA,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;YAC1B,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;YAC1E,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;SACjF,CAAC;AACL,KAAA,CAAC;AACF,IAAA,IAAI,qBAAqB,CAAC,OAAO,EAAE;;AAE/B,QAAA,OAAOxF,aAAM,CAAC,KAAK,CACf,mFAAmF;YAC/E,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,OAAO,CACrD;;IAGL,MAAM,sBAAsB,GAAG,SAAS,CAAC;AACrC,QAAA,KAAK,EAAE0D,eAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM;AAC5C,YAAA,EAAE,EAAE,YAAY;AAChB,YAAA,EAAE,EAAE,YAAY;YAChB,MAAM;AACT,SAAA,CAAC,CAAC;AACH,QAAA,SAAS,EAAE8B,oBAAoC,CAAC;AAC5C,YAAA,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;YAC1E,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;SACjF,CAAC;AACL,KAAA,CAAC;AACF,IAAA,IAAI,sBAAsB,CAAC,OAAO,EAAE;;AAEhC,QAAA,OAAOxF,aAAM,CAAC,KAAK,CACf,oFAAoF;YAChF,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,OAAO,CACtD;;IAGL,MAAM,SAAS,GAAG,mBAAmB,CAAC0D,eAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC5F,IAAA,IAAI,SAAS,CAAC,OAAO,EAAE;QACnB,OAAO1D,aAAM,CAAC,KAAK,CAAC,yCAAyC,GAAG,SAAS,CAAC,KAAK,CAAC;;IAEpF,MAAM,eAAe,GAAG,mBAAmB,CACvC0D,eAAS,CAAC,qBAAqB,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAC7E;AACD,IAAA,IAAI,eAAe,CAAC,OAAO,EAAE;QACzB,OAAO1D,aAAM,CAAC,KAAK,CACf,uDAAuD,GAAG,eAAe,CAAC,KAAK,CAClF;;IAEL,MAAM,gBAAgB,GAAG,mBAAmB,CACxC0D,eAAS,CAAC,sBAAsB,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAC9E;AACD,IAAA,IAAI,gBAAgB,CAAC,OAAO,EAAE;QAC1B,OAAO1D,aAAM,CAAC,KAAK,CACf,wDAAwD,GAAG,eAAe,CAAC,KAAK,CACnF;;IAGL,MAAM,gBAAgB,GAAG,SAAS,CAC9B,SAAS,CAAC,KAAK,EACf,eAAe,CAAC,KAAK,EACrB,gBAAgB,CAAC,KAAK,EACtB,CAAC,IAAI,CAAC,CAAC,GAAG,CACb;AACD,IAAA,IAAI,gBAAgB,CAAC,OAAO,EAAE;;AAE1B,QAAA,OAAOA,aAAM,CAAC,KAAK,CACf,8EAA8E;YAC1E,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAC7C;;AAGL,IAAA,MAAM,eAAe,GAAG4F,OAAqB,CAAC;QAC1C,SAAS,EAAE,MAAM,CAAC,KAAK;AACvB,QAAA,SAAS,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;AAC7B,QAAA,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,MAAM,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AACxF,KAAA,CAAC;AAEF,IAAA,IAAI,eAAe,CAAC,OAAO,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,eAAe,CAAC,KAAK,CAAC;;AAGhF,IAAA,MAAM,kCAAkC,GAAGA,OAAqB,CAAC;QAC7D,SAAS,EAAE,eAAe,CAAC,KAAK;AAChC,QAAA,SAAS,EAAE,8BAA8B,CAAC,KAAK,CAAC,WAAW;AAC3D,QAAA,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,MAAM,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AACxF,KAAA,CAAC;AACF,IAAA,IAAI,kCAAkC,CAAC,OAAO,EAAE;QAC5C,MAAM,IAAI,KAAK,CACX,mCAAmC,GAAG,kCAAkC,CAAC,KAAK,CACjF;;IAGL,MAAM,YAAY,GAAG,iBAAiB,CAAC;QACnC,SAAS,EAAE,kCAAkC,CAAC,KAAK;AACnD,QAAA,SAAS,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACtD,QAAA,YAAY,EAAE,CAAC,KAAK;YAChB,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,SAAS,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;SAC7E,CAAC;AACL,KAAA,CAAC;IAEF,MAAMd,SAAO,GAAG,CAAC,KAA4D,KACzE0C,OAAuB,CAIrB;QACE,KAAK;AACL,QAAA,MAAM,EAAE,YAAY;QACpB,oBAAoB,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAI;AACxC,YAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;;AAE9B,gBAAA,OAAOxH,aAAM,CAAC,EAAE,CAAC,KAAK,CAAC;;YAE3B,OAAOA,aAAM,CAAC,EAAE,CACZuH,aAAO,CAAC,KAAK,EAAE,KAAK,IAAG;AACnB,gBAAA,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;oBAC7B;;AAEJ,gBAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;oBAC9B;;gBAEJ,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ;aACjD,CAAC,CACL;SACJ;QACD,mBAAmB,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAI;AACvC,YAAA,IAAI,uBAAyD;AAC7D,YAAA,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AAC9B,gBAAA,uBAAuB,GAAG,KAAK,CAAC,MAAM,CAAC;;iBACpC;AACH,gBAAA,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC;;YAE5C,MAAMtH,QAAM,GAAGsH,aAAO,CAAC,KAAK,EAAE,KAAK,IAAG;AAClC,gBAAA,KAAK,CAAC,MAAM,GAAG,uBAAuB;AAC1C,aAAC,CAAC;AACF,YAAA,OAAOvH,aAAM,CAAC,EAAE,CAAC,UAAU,CAACC,QAAM,CAAC,GAAG,SAAS,GAAGA,QAAM,CAAC;SAC5D;QACD,qBAAqB,EAAE,MAAK;AACxB,YAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;SAC7C;QACD,oBAAoB,EAAE,MAAK;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;SAC7C;AACJ,KAAA,CAAC;AAEN,IAAA,MAAM,UAAU,GAAG6E,SAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;AACjF,IAAA,IAAI,UAAU,CAAC,OAAO,EAAE;AACpB,QAAA,OAAO,UAAU;;AAErB,IAAA,MAAM,WAAW,GAAGA,SAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;AACnF,IAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,QAAA,OAAO,WAAW;;IAGtB,OAAO9E,aAAM,CAAC,EAAE,CAAC;AACb,QAAA,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,KAAK;AAC7E,QAAA,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,SAAS,GAAG,WAAW,CAAC,KAAK;AACnF,KAAA,CAAC;AACN,CAAC;;ACzhBD;AACO,MAAM,KAAK,GAAG;AAErB;AACO,MAAM,MAAM,GAAG;AAEtB;AACO,MAAM,QAAQ,GAAG;AAcjB,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,UAAU,EAAW;AAC9C,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAW;AAEtC,MAAM,YAAY,GAAG,CAAC,EACzB,WAAW,EACX,aAAa,GAIhB,KAAa;IACV,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE;AACpE,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,KAAK,EAAE;AAC5B,YAAA,OAAO,IAAI;;AAEf,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC/B,YAAA,OAAO,KAAK;;AAEhB,QAAA,OAAO,WAAW,CAAC,OAAO,KAAK,aAAa;;AAEhD,IAAA,OAAO,IAAI;AACf,CAAC;AAED;AACA;AACO,MAAM,OAAO,GAAG,CAAC,EACpB,WAAW,EACX,kBAAkB,GAIrB,KAAa;IACV,OAAO,YAAY,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;AAC3E,CAAC;AAEM,MAAM,YAAY,GAAG,CAAC,EACzB,OAAO,EACP,WAAW,EACX,gBAAgB,GAKnB,KAAa;AACV,IAAA,IAAI,WAAW,CAAC,IAAI,KAAK,KAAK,EAAE;AAC5B,QAAA,OAAO,IAAI;;AAEf,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,KAAK,MAAM,GAAG,WAAW,CAAC,OAAO,GAAG,SAAS;AAE7E,IAAA,MAAM,KAAK,GAAG,CAAC,gBAAgB,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC;AACtD,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,QAAA,IAAI,KAAK,CAAC,kBAAkB,IAAI,IAAI,EAAE;AAClC,YAAA,OAAO,IAAI;;AAEf,QAAA,IAAI,KAAK,CAAC,kBAAkB,KAAK,OAAO,EAAE;AACtC,YAAA,OAAO,IAAI;;AAEf,QAAA,OAAO,KAAK;;AAGhB,IAAA,OAAO,KAAK;AAChB,CAAC;AAEM,MAAM,cAAc,GAAG,CAAC,EAC3B,OAAO,EACP,WAAW,EACX,gBAAgB,GAKnB,KAAa;AACV,IAAA,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,KAAK,KAAK,EAAE;AAC7E,QAAA,OAAO,IAAI;;AAEf,IAAA,OAAO,gBAAgB,CAAC,aAAa,KAAK,OAAO;AACrD,CAAC;AAEM,MAAM,iBAAiB,GAAG,mBAAmB;AAE7C,MAAM,gBAAgB,GAAG,CAAC,EAC7B,WAAW,EACX,WAAW,EACX,gBAAgB,GAKnB,KAAwC;AACrC,IAAA,IAAI,WAAW,CAAC,IAAI,KAAK,KAAK,EAAE;AAC5B,QAAA,OAAO,IAAI;;AAEf,IAAA,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACjC,QAAA,OAAO,WAAW,CAAC,IAAI,KAAK,UAAU;;AAE1C,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,KAAK,MAAM,GAAG,WAAW,CAAC,OAAO,GAAG,SAAS;AAC7E,IAAA,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,UAAU,IAAI,EAAE,EAAE,WAAW,CAAC;AAElE,IAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AACnB,QAAA,OAAO,iBAAiB;;AAG5B,IAAA,IAAI,SAAS,CAAC,kBAAkB,IAAI,IAAI,EAAE;AACtC,QAAA,OAAO,IAAI;;AAEf,IAAA,IAAI,SAAS,CAAC,kBAAkB,KAAK,OAAO,EAAE;AAC1C,QAAA,OAAO,IAAI;;AAEf,IAAA,OAAO,KAAK;AAChB;AAEO,MAAM,uBAAuB,GAAG,CAAC,IAA4C,KAAa;AAC7F,IAAA,OAAO,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACnC,CAAC;AAWM,MAAM,2BAA2B,GAAG,CAAC,EACxC,WAAW,EACX,uBAAuB,GAI1B,KAAa;AACV,IAAA,IAAI,WAAW,CAAC,IAAI,KAAK,KAAK,EAAE;AAC5B,QAAA,OAAO,IAAI;;AAEf,IAAA,IAAI,yBAA6C;AACjD,IAAA,IAAI,OAAO,uBAAuB,KAAK,QAAQ,EAAE;QAC7C,yBAAyB,GAAG,uBAAuB;;SAChD;AACH,QAAA,yBAAyB,GAAG,uBAAuB,EAAE,kBAAkB;;AAE3E,IAAA,OAAO,OAAO,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,yBAAyB,IAAI,QAAQ,EAAE,CAAC;AAC9F,CAAC;AAWM,MAAM,yBAAyB,GAAG,CAAC,EACtC,WAAW,EACX,qBAAqB,EACrB,gBAAgB,GAKnB,KAAa;AACV,IAAA,IAAI,WAAW,CAAC,IAAI,KAAK,KAAK,EAAE;AAC5B,QAAA,OAAO,IAAI;;AAEf,IAAA,IAAI,uBAA2C;AAC/C,IAAA,IAAI,OAAO,qBAAqB,KAAK,QAAQ,EAAE;QAC3C,uBAAuB,GAAG,qBAAqB;;SAC5C;AACH,QAAA,uBAAuB,GAAG,qBAAqB,EAAE,gBAAgB;;AAErE,IAAA,OAAO,uBAAuB,CAAC;QAC3B,WAAW;QACX,WAAW,EAAE,uBAAuB,IAAI,QAAQ;QAChD,gBAAgB;AACnB,KAAA,CAAC;AACN,CAAC;;AC/LM,MAAMmC,iBAAe,GAAG,CAAI,EAC/B,KAAK,EACL,MAAM,EACN,SAAS,GACkB,KAA8B;IACzD,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;AAC7C,QAAA,MAAM,YAAY,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;QACvE,IAAI,YAAY,CAAC,QAAQ,KAAK,YAAY,CAAC,QAAQ,EAAE;YACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;;;AAGjE,IAAA,OAAO,SAAS;AACpB,CAAC;;ACZM,MAAMgD,eAAa,GAAG,CAAC,MAA8B,KAA6B,MAAM;AAExF,MAAMhD,iBAAe,GAIxB,CAAC,EAAE,0BAA0B,EAAE,eAAe,EAAE,eAAe,EAAE,KAAI;IACrE,MAAM,eAAe,GAAqC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AAE1E,IAAA,eAAe,CAAC,QAAQ,GAAGsF,iBAAgC,CAAC;QACxD,KAAK,EAAE,eAAe,EAAE,QAAQ;QAChC,MAAM,EAAE,eAAe,CAAC,QAAQ;QAChC,SAAS,EAAE,0BAA0B,CAAC,QAAQ;AACjD,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,KAAK,GAAGA,iBAAgC,CAAC;QACrD,KAAK,EAAE,eAAe,EAAE,KAAK;QAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;QAC7B,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,MAAM,GAAGA,iBAAgC,CAAC;QACtD,KAAK,EAAE,eAAe,EAAE,MAAM;QAC9B,MAAM,EAAE,eAAe,CAAC,MAAM;QAC9B,SAAS,EAAE,0BAA0B,CAAC,MAAM;AAC/C,KAAA,CAAC;AAEF,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;ACzBM,MAAMmC,iBAAe,GAIxB,CAAC,EAAE,0BAA0B,EAAE,eAAe,EAAE,eAAe,EAAE,KAAI;IACrE,MAAM,eAAe,GAAqC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AAE1F,IAAA,eAAe,CAAC,CAAC,GAAGsF,iBAAgC,CAAC;QACjD,KAAK,EAAE,eAAe,EAAE,CAAC;QACzB,MAAM,EAAE,eAAe,CAAC,CAAC;QACzB,SAAS,EAAE,0BAA0B,CAAC,CAAC;AAC1C,KAAA,CAAC;AAEF,IAAA,eAAe,CAAC,gBAAgB,GAAGA,iBAAgC,CAAC;QAChE,KAAK,EAAE,eAAe,EAAE,gBAAgB;QACxC,MAAM,EAAE,eAAe,CAAC,gBAAgB;QACxC,SAAS,EAAE,0BAA0B,CAAC,gBAAgB;AACzD,KAAA,CAAC;AAEF,IAAA,MAAM,eAAe,GAAGC,iBAAqC,CAAC;QAC1D,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;QAC5B,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,KAAA,CAAC;AACF,IAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AACzB,QAAA,OAAO,eAAe;;AAE1B,IAAA,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK;AAE5C,IAAA,MAAM,eAAe,GAAGA,iBAAqC,CAAC;QAC1D,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;QAC5B,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,KAAA,CAAC;AACF,IAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AACzB,QAAA,OAAO,eAAe;;AAE1B,IAAA,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK;AAE5C,IAAA,eAAe,CAAC,OAAO,GAAGD,iBAAgC,CAAC;QACvD,KAAK,EAAE,eAAe,EAAE,OAAO;QAC/B,MAAM,EAAE,eAAe,CAAC,OAAO;QAC/B,SAAS,EAAE,0BAA0B,CAAC,OAAO;AAChD,KAAA,CAAC;AAEF,IAAA,eAAe,CAAC,CAAC,GAAGA,iBAAgC,CAAC;QACjD,KAAK,EAAE,eAAe,EAAE,CAAC;QACzB,MAAM,EAAE,eAAe,CAAC,CAAC;QACzB,SAAS,EAAE,0BAA0B,CAAC,CAAC;AAC1C,KAAA,CAAC;AAEF,IAAA,eAAe,CAAC,CAAC,GAAGA,iBAAgC,CAAC;QACjD,KAAK,EAAE,eAAe,EAAE,CAAC;QACzB,MAAM,EAAE,eAAe,CAAC,CAAC;QACzB,SAAS,EAAE,0BAA0B,CAAC,CAAC;AAC1C,KAAA,CAAC;AAEF,IAAA,eAAe,CAAC,CAAC,GAAGA,iBAAgC,CAAC;QACjD,KAAK,EAAE,eAAe,EAAE,CAAC;QACzB,MAAM,EAAE,eAAe,CAAC,CAAC;QACzB,SAAS,EAAE,0BAA0B,CAAC,CAAC;AAC1C,KAAA,CAAC;AAEF,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;ACpEM,MAAMmC,iBAAe,GAIxB,CAAC,EACD,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;AACD,IAAA,MAAM,aAAa,GAAGwF,iBAA6B,CAAC;AAChD,QAAA,0BAA0B,EAAE,0BAA0B;AACtD,QAAA,yBAAyB,EAAE,yBAAyB;QACpD,eAAe;QACf,eAAe;AAClB,KAAA,CAAC;AACF,IAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACvB,QAAA,OAAO,aAAa;;AAGxB,IAAA,MAAM,eAAe,GAAqC;QACtD,GAAG,aAAa,CAAC,KAAK;AACtB,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,SAAS;KAChB;AAED,IAAA,eAAe,CAAC,KAAK,GAAGF,iBAAgC,CAAC;QACrD,KAAK,EAAE,eAAe,EAAE,KAAK;QAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;QAC7B,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,KAAK,GAAGA,iBAAgC,CAAC;QACrD,KAAK,EAAE,eAAe,EAAE,KAAK;QAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;QAC7B,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,KAAK,GAAGA,iBAAgC,CAAC;QACrD,KAAK,EAAE,eAAe,EAAE,KAAK;QAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;QAC7B,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,KAAK,GAAGA,iBAAgC,CAAC;QACrD,KAAK,EAAE,eAAe,EAAE,KAAK;QAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;QAC7B,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,UAAU,GAAGA,iBAAgC,CAAC;QAC1D,KAAK,EAAE,eAAe,EAAE,UAAU;QAClC,MAAM,EAAE,eAAe,CAAC,UAAU;QAClC,SAAS,EAAE,0BAA0B,CAAC,UAAU;AACnD,KAAA,CAAC;AAEF,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;AC9DM,MAAMmF,eAAa,GACtB,CAAC,YAAqB,KACtB,CAAC,MAA8B,KAA4B;IACvD,OAAO;AACH,QAAA,GAAG,MAAM;AACT,QAAA,KAAK,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK;KAC3E;AACL,CAAC;AAEE,MAAMhD,iBAAe,GACxB,CACI,YAAqB,KAMzB,CAAC,EAAE,0BAA0B,EAAE,eAAe,EAAE,eAAe,EAAE,KAAI;AAMjE,IAAA,MAAM,eAAe,GAAqC;AACtD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;KACR;AAED,IAAA,eAAe,CAAC,OAAO,GAAGsF,iBAAgC,CAAC;AACvD,QAAA,KAAK,EAAE,eAAe,EAAE,OAAO,IAAI,SAAS;AAC5C,QAAA,MAAM,EAAE,eAAe,CAAC,OAAO,IAAI,SAAS;QAC5C,SAAS,EAAE,0BAA0B,CAAC,OAAO;AAChD,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,cAAc,GAAGA,iBAAgC,CAAC;AAC9D,QAAA,KAAK,EAAE,eAAe,EAAE,cAAc,IAAI,SAAS;AACnD,QAAA,MAAM,EAAE,eAAe,CAAC,cAAc,IAAI,SAAS;QACnD,SAAS,EAAE,0BAA0B,CAAC,cAAc;AACvD,KAAA,CAAC;;AAEF,IAAA,eAAe,CAAC,KAAK,GAAGA,iBAAgC,CAAC;AACrD,QAAA,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,SAAS;AAC1C,QAAA,MAAM,EAAE,eAAe,CAAC,KAAK,IAAI,SAAS;QAC1C,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,KAAA,CAAC;AAEF,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;IAG/B,OAAOA,aAAM,CAAC,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;AAC5C,CAAC;;ACjDE,MAAM4H,eAAa,GAAG;AACzB,IAAA,CAAC,EAAE,0BAA0B,CAAC9H,KAAC,CAAC,MAAM,EAAE,CAAC;AACzC,IAAA,gBAAgB,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AAEzD;;AAEG;AACH,IAAA,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC;AAEnC;;AAEG;AACH,IAAA,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC;AAEnC;;AAEG;IACH,OAAO,EAAE,0BAA0B,CAAC,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEtD,IAAA,CAAC,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AACzC,IAAA,CAAC,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AACzC,IAAA,CAAC,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;CAC5C;AAEM,MAAM+H,UAAQ,GAAG,yBAAyB,CAACD,eAAa,EAAE,SAAS,EAAE,SAAS;;AC5B9E,MAAM,aAAa,GAAG;IACzB,GAAGE,eAA2B;AAC9B,IAAA,KAAK,EAAE,0BAA0B,CAAChI,KAAC,CAAC,MAAM,EAAE,CAAC;AAC7C,IAAA,KAAK,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AAC7C,IAAA,KAAK,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AAC7C,IAAA,KAAK,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AAC7C,IAAA,UAAU,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;CACtD;AAEM,MAAM+H,UAAQ,GAAG,yBAAyB,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS;;ACNrF;AACO,MAAM,EAAE,GAAG,IAAI;AACf,MAAM,EAAE,GAAG,IAAI;AACf,MAAM,OAAO,GAAG/H,KAAC,CAAC,KAAK,CAAC,CAACA,KAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAGvD,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,OAAO,EAAE,0BAA0B,CAAC,OAAO,CAAC;AAC5C,IAAA,cAAc,EAAE,0BAA0B,CAAC/H,KAAC,CAAC,OAAO,EAAE,CAAC;;;;IAIvD,KAAK,EAAE,0BAA0B,CAAC,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACvD,CAAA,EACD,CAAC,EACD,CAAC;;ACbE,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAE/C,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;IACI,GAAGE,aAAmB;IACtB,gBAAgB,EAAE,0BAA0B,CAAC,KAAK,CAACjI,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/D,IAAA,IAAI,EAAE,yBAAyB,CAACkI,UAAsB,CAAC;AAC1D,CAAA,EACD,CAAC,EACD,CAAC;;ACAE,MAAM7C,eAAa,GACtB,CAAC,WAAwB,EAAE,gBAA6C,KACxE,CAAC,MAA8B,KAA4B;IACvD,MAAM,YAAY,GAAG,uBAAuB,CAAC;QACzC,WAAW;AACX,QAAA,WAAW,EAAE,MAAM,CAAC,gBAAgB,IAAI,QAAQ;QAChD,gBAAgB;AACnB,KAAA,CAAC;IACF,OAAO;AACH,QAAA,GAAG,MAAM;QACT,IAAI,EAAEE,kBAAY,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,IACvC4C,eAAsB,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAC9C;KACJ;AACL,CAAC;AAEE,MAAM9F,iBAAe,GACxB,CACI,WAAwB,EACxB,gBAA6C,KAMjD,CAAC,EACG,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;IACD,MAAM,YAAY,GAAG,uBAAuB,CAAC;QACzC,WAAW;AACX,QAAA,WAAW,EAAE,yBAAyB,CAAC,gBAAgB,IAAI,QAAQ;QACnE,gBAAgB;AACnB,KAAA,CAAC;AAEF,IAAA,MAAM,IAAI,GAAG+F,iBAA+B,CAM1C;AACE,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,IAAI,IAAI,EAAE;AACvD,QAAA,eAAe,EAAE,yBAAyB,CAAC,IAAI,IAAI,EAAE;QACrD,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;QAC5B,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpDC,iBAAwB,CAAK,CAAC,CAAC;AAC3B,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;YAChB,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,KAClB,CAAC,YAAY,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;AAC9D,YAAA,YAAY,EAAE,MAAM,CAAC,YAAY;AACjC,YAAA,YAAY,EAAE,MAAM,CAAC,YAAY;AACpC,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,OAAO,IAAI;;AAGf,IAAA,MAAM,KAAK,GAAGC,iBAAqB,CAAC;AAChC,QAAA,0BAA0B,EAAE;AACxB,YAAA,GAAG,0BAA0B;AAC7B,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AAChB,SAAA;AACD,QAAA,yBAAyB,EAAE;AACvB,YAAA,GAAG,yBAAyB;AAC5B,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AAChB,SAAA;AACD,QAAA,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACrE,QAAA,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACxE,KAAA,CAAC;AACF,IAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACf,QAAA,OAAO,KAAK;;AAGhB,IAAA,MAAM,eAAe,GAAqC;AACtD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;QACL,GAAG,KAAK,CAAC,KAAK;QACd,IAAI,EAAE,IAAI,CAAC,KAAK;KACnB;AAED,IAAA,IACI,yBAAyB,CAAC;QACtB,WAAW;AACX,QAAA,qBAAqB,EAAE,yBAAyB;QAChD,gBAAgB;AACnB,KAAA,CAAC,EACJ;AACE,QAAA,eAAe,CAAC,gBAAgB,GAAGX,iBAAgC,CAAC;YAChE,KAAK,EAAE,eAAe,EAAE,gBAAgB;YACxC,MAAM,EAAE,eAAe,CAAC,gBAAgB;YACxC,SAAS,EAAE,0BAA0B,CAAC,gBAAgB;AACzD,SAAA,CAAC;;AAGN,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;ACzHE,MAAMmF,eAAa,GAAG,CAAC,MAA8B,KAA4B;AACpF,IAAA,OAAO,MAAM;AACjB,CAAC;AAEM,MAAMhD,iBAAe,GACxB,CACI,WAAwB,KAM5B,CAAC,EACG,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;AACD,IAAA,MAAM,KAAK,GAAGiG,iBAAqB,CAAC;AAChC,QAAA,0BAA0B,EAAE;AACxB,YAAA,GAAG,0BAA0B;AAC7B,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AAChB,SAAA;AACD,QAAA,yBAAyB,EAAE;AACvB,YAAA,GAAG,yBAAyB;AAC5B,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AAChB,SAAA;AACD,QAAA,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACrE,QAAA,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACxE,KAAA,CAAC;AACF,IAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACf,QAAA,OAAO,KAAK;;AAGhB,IAAA,MAAM,eAAe,GAAqC;AACtD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;QACL,GAAG,KAAK,CAAC,KAAK;KACjB;AAED,IAAA,IACI,2BAA2B,CAAC;QACxB,WAAW;AACX,QAAA,uBAAuB,EAAE,yBAAyB;AACrD,KAAA,CAAC,EACJ;AACE,QAAA,eAAe,CAAC,kBAAkB,GAAGX,iBAAgC,CAAC;YAClE,KAAK,EAAE,eAAe,EAAE,kBAAkB;YAC1C,MAAM,EAAE,eAAe,CAAC,kBAAkB;YAC1C,SAAS,EAAE,0BAA0B,CAAC,kBAAkB;AAC3D,SAAA,CAAC;;AAGN,IAAA,eAAe,CAAC,KAAK,GAAGA,iBAAgC,CAAC;QACrD,KAAK,EAAE,eAAe,EAAE,KAAK;QAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;QAC7B,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,KAAA,CAAC;AAEF,IAAA,eAAe,CAAC,SAAS,GAAGA,iBAAgC,CAAC;QACzD,KAAK,EAAE,eAAe,EAAE,SAAS;QACjC,MAAM,EAAE,eAAe,CAAC,SAAS;QACjC,SAAS,EAAE,0BAA0B,CAAC,SAAS;AAClD,KAAA,CAAC;AAEF,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;ACtEE,MAAMmC,iBAAe,GAIxB,CAAC,EAAE,0BAA0B,EAAE,eAAe,EAAE,eAAe,EAAE,KAAI;AACrE,IAAA,MAAM,eAAe,GAAqC;AACtD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;KACR;AAED,IAAA,eAAe,CAAC,IAAI,GAAGsF,iBAAgC,CAAC;QACpD,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;QAC5B,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,KAAA,CAAC;AAEF,IAAA,eAAe,CAAC,KAAK,GAAGA,iBAAgC,CAAC;QACrD,KAAK,EAAE,eAAe,EAAE,KAAK;QAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;QAC7B,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,KAAA,CAAC;AAEF,IAAA,eAAe,CAAC,MAAM,GAAGA,iBAAgC,CAAC;QACtD,KAAK,EAAE,eAAe,EAAE,MAAM;QAC9B,MAAM,EAAE,eAAe,CAAC,MAAM;QAC9B,SAAS,EAAE,0BAA0B,CAAC,MAAM;AAC/C,KAAA,CAAC;AAEF,IAAA,eAAe,CAAC,WAAW,GAAGA,iBAAgC,CAAC;QAC3D,KAAK,EAAE,eAAe,EAAE,WAAW;QACnC,MAAM,EAAE,eAAe,CAAC,WAAW;QACnC,SAAS,EAAE,0BAA0B,CAAC,WAAW;AACpD,KAAA,CAAC;AAEF,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;ACvCD;AACA,MAAM,gBAAgB,GAAG,CAAC,GAAW,KAAI;IACrC,MAAM,KAAK,GAAG,SAAS;AACvB,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,CAAC;AAEM,MAAMmF,eAAa,GAAG,CAAC,MAA8B,KAA4B;AACpF,IAAA,OAAO,MAAM;AACjB,CAAC;AAEM,MAAMhD,iBAAe,GACxB,CACI,WAAwB,KAM5B,CAAC,EACG,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;AACD,IAAA,MAAM,KAAK,GAAGiG,iBAAqB,CAAC;AAChC,QAAA,0BAA0B,EAAE;AACxB,YAAA,GAAG,0BAA0B;AAC7B,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AAChB,SAAA;AACD,QAAA,yBAAyB,EAAE;AACvB,YAAA,GAAG,yBAAyB;AAC5B,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AAChB,SAAA;AACD,QAAA,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACrE,QAAA,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACxE,KAAA,CAAC;AACF,IAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACf,QAAA,OAAO,KAAK;;AAGhB,IAAA,MAAM,eAAe,GAAqC;AACtD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;QACL,GAAG,KAAK,CAAC,KAAK;KACjB;AAED,IAAA,IACI,2BAA2B,CAAC;QACxB,WAAW;AACX,QAAA,uBAAuB,EAAE,yBAAyB;AACrD,KAAA,CAAC,EACJ;AACE,QAAA,eAAe,CAAC,kBAAkB,GAAGX,iBAAgC,CAAC;YAClE,KAAK,EAAE,eAAe,EAAE,kBAAkB;YAC1C,MAAM,EAAE,eAAe,CAAC,kBAAkB;YAC1C,SAAS,EAAE,0BAA0B,CAAC,kBAAkB;AAC3D,SAAA,CAAC;;AAGN,IAAA,eAAe,CAAC,SAAS,GAAGA,iBAAgC,CAAC;QACzD,KAAK,EAAE,eAAe,EAAE,SAAS;QACjC,MAAM,EAAE,eAAe,CAAC,SAAS;QACjC,SAAS,EAAE,0BAA0B,CAAC,SAAS;AAClD,KAAA,CAAC;AAEF,IAAA,MAAM,MAAM,GAAGS,iBAA+B,CAAC;QAC3C,KAAK,EAAE,eAAe,EAAE,MAAM;QAC9B,MAAM,EAAE,eAAe,CAAC,MAAM;AAC9B,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,MAAM,IAAI,EAAE;AACzD,QAAA,eAAe,EAAE,yBAAyB,CAAC,MAAM,IAAI,EAAE;AACvD,QAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpDG,iBAAqB,CAAC;AAClB,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;;AAEhB,YAAA,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC;AACpD,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAChB,QAAA,OAAO,MAAM;;AAEjB,IAAA,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK;AAErC,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOrI,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;AC1FE,MAAMmF,eAAa,GACtB,CAAC,WAAwB,EAAE,gBAA6C,KACxE,CAAC,MAA8B,KAA4B;IACvD,MAAM,YAAY,GAAG,uBAAuB,CAAC;QACzC,WAAW;AACX,QAAA,WAAW,EAAE,MAAM,CAAC,gBAAgB,IAAI,QAAQ;QAChD,gBAAgB;AACnB,KAAA,CAAC;IACF,OAAO;AACH,QAAA,GAAG,MAAM;AACT,QAAA,KAAK,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK;KACpE;AACL,CAAC;AAEE,MAAMhD,iBAAe,GACxB,CACI,WAAwB,EACxB,gBAA6C,KAMjD,CAAC,EACG,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;AACD,IAAA,MAAM,KAAK,GAAGiG,iBAAqB,CAAC;AAChC,QAAA,0BAA0B,EAAE;AACxB,YAAA,GAAG,0BAA0B;AAC7B,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AAChB,SAAA;AACD,QAAA,yBAAyB,EAAE;AACvB,YAAA,GAAG,yBAAyB;AAC5B,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AAChB,SAAA;AACD,QAAA,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACrE,QAAA,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACxE,KAAA,CAAC;AACF,IAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACf,QAAA,OAAO,KAAK;;AAGhB,IAAA,MAAM,eAAe,GAAqC;AACtD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;QACL,GAAG,KAAK,CAAC,KAAK;KACjB;AAED,IAAA,IACI,yBAAyB,CAAC;QACtB,WAAW;AACX,QAAA,qBAAqB,EAAE,yBAAyB;QAChD,gBAAgB;AACnB,KAAA,CAAC,EACJ;AACE,QAAA,eAAe,CAAC,gBAAgB,GAAGX,iBAAgC,CAAC;YAChE,KAAK,EAAE,eAAe,EAAE,gBAAgB;YACxC,MAAM,EAAE,eAAe,CAAC,gBAAgB;YACxC,SAAS,EAAE,0BAA0B,CAAC,gBAAgB;AACzD,SAAA,CAAC;;AAGN,IAAA,eAAe,CAAC,cAAc,GAAGA,iBAAgC,CAAC;AAC9D,QAAA,KAAK,EAAE,eAAe,EAAE,cAAc,IAAI,SAAS;AACnD,QAAA,MAAM,EAAE,eAAe,CAAC,cAAc,IAAI,SAAS;QACnD,SAAS,EAAE,0BAA0B,CAAC,cAAc;AACvD,KAAA,CAAC;;AAGF,IAAA,MAAM,WAAW,GAAGnE,iBAA6B,CAAC;AAC9C,QAAA,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,SAAS;AAC1C,QAAA,MAAM,EAAE,eAAe,CAAC,KAAK,IAAI,SAAS;QAC1C,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,KAAA,CAAC;AACF,IAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,QAAA,OAAO,WAAW;;AAEtB,IAAA,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK;AAEzC,IAAA,eAAe,CAAC,cAAc,GAAGmE,iBAAgC,CAAC;AAC9D,QAAA,KAAK,EAAE,eAAe,EAAE,cAAc,IAAI,SAAS;AACnD,QAAA,MAAM,EAAE,eAAe,CAAC,cAAc,IAAI,SAAS;QACnD,SAAS,EAAE,0BAA0B,CAAC,cAAc;AACvD,KAAA,CAAC;AAEF,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;ACrFE,MAAMmF,eAAa,GACtB,CAAC,WAAwB,EAAE,gBAA6C,KACxE,CAAC,MAA8B,KAA4B;IACvD,OAAO;AACH,QAAA,GAAG,MAAM;AACT,QAAA,UAAU,EAAEmD,eAA6B,CAGvC;YACE,WAAW,EAAE,MAAM,CAAC,UAAU;AAC9B,YAAA,SAAS,EAAE,MAAM,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KACrBC,eAAuB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC;SACpE,CAAC;AACF,QAAA,WAAW,EAAED,eAA6B,CAGxC;YACE,WAAW,EAAE,MAAM,CAAC,WAAW;AAC/B,YAAA,SAAS,EAAE,KAAK,IACZ,KAAK,CAAC,SAAS;AACf,gBAAA,CAAC,OAAO,CAAC;oBACL,WAAW;AACX,oBAAA,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,QAAQ;iBAC3D,CAAC;AACN,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKE,eAAwB,CAAC,KAAK,CAAC;SAChE,CAAC;AACF,QAAA,WAAW,EAAEF,eAA6B,CAGxC;YACE,WAAW,EAAE,MAAM,CAAC,WAAW;AAC/B,YAAA,SAAS,EAAE,KAAK,IACZ,KAAK,CAAC,SAAS;AACf,gBAAA,CAAC,OAAO,CAAC;oBACL,WAAW;AACX,oBAAA,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,QAAQ;iBAC3D,CAAC;AACN,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKG,eAAwB,CAAC,KAAK,CAAC;SAChE,CAAC;AACF,QAAA,YAAY,EAAEH,eAA6B,CAGzC;YACE,WAAW,EAAE,MAAM,CAAC,YAAY;AAChC,YAAA,SAAS,EAAE,MAAM,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KACrBI,eAAyB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC;SACtE,CAAC;KACL;AACL,CAAC;AAEE,MAAMvG,iBAAe,GACxB,CACI,WAAwB,EACxB,gBAA6C,KAMjD,CAAC,EACG,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;AACD,IAAA,MAAM,mCAAmC,GAGrC;QACA,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,KACvB,CAAC,uBAAuB,CAAC;YACrB,WAAW;AACX,YAAA,WAAW,EAAE,QAAQ,CAAC,gBAAgB,IAAI,IAAI;YAC9C,gBAAgB;SACnB,CAAC;QACN,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,KACpB,CAAC,uBAAuB,CAAC;YACrB,WAAW;AACX,YAAA,WAAW,EAAE,KAAK,CAAC,gBAAgB,IAAI,QAAQ;YAC/C,gBAAgB;SACnB,CAAC;KACT;AACD,IAAA,MAAM,qCAAqC,GAGvC;QACA,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,KACvB,CAAC,OAAO,CAAC;YACL,WAAW;AACX,YAAA,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,IAAI,IAAI;SAC1D,CAAC;QACN,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,KACpB,CAAC,OAAO,CAAC;YACL,WAAW;AACX,YAAA,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,QAAQ;SAC3D,CAAC;KACT;AAED,IAAA,MAAM,UAAU,GAAG+F,iBAA+B,CAMhD;QACE,KAAK,EAAE,eAAe,EAAE,UAAU;QAClC,MAAM,EAAE,eAAe,CAAC,UAAU;AAClC,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,UAAU,IAAI,EAAE;AAC7D,QAAA,eAAe,EAAE,yBAAyB,CAAC,UAAU,IAAI,EAAE;QAC3D,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KACpDS,iBAAyB,CACrB,WAAW,EACX,gBAAgB,CACnB,CAAC;AACE,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE,mCAAmC;AAC1D,KAAA,CAAC;AACF,IAAA,IAAI,UAAU,CAAC,OAAO,EAAE;AACpB,QAAA,OAAO,UAAU;;AAGrB,IAAA,MAAM,WAAW,GAAGT,iBAA+B,CAMjD;QACE,KAAK,EAAE,eAAe,EAAE,WAAW;QACnC,MAAM,EAAE,eAAe,CAAC,WAAW;AACnC,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,WAAW,IAAI,EAAE;AAC9D,QAAA,eAAe,EAAE,yBAAyB,CAAC,WAAW,IAAI,EAAE;QAC5D,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KACpDU,iBAA0B,CAAC,WAAW,CAAC,CAAC;AACpC,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE,qCAAqC;AAC5D,KAAA,CAAC;AACF,IAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,QAAA,OAAO,WAAW;;AAGtB,IAAA,MAAM,WAAW,GAAGV,iBAA+B,CAMjD;QACE,KAAK,EAAE,eAAe,EAAE,WAAW;QACnC,MAAM,EAAE,eAAe,CAAC,WAAW;AACnC,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,WAAW,IAAI,EAAE;AAC9D,QAAA,eAAe,EAAE,yBAAyB,CAAC,WAAW,IAAI,EAAE;QAC5D,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KACpDW,iBAA0B,CAAC,WAAW,CAAC,CAAC;AACpC,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE,qCAAqC;AAC5D,KAAA,CAAC;AACF,IAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,QAAA,OAAO,WAAW;;AAGtB,IAAA,MAAM,YAAY,GAAGX,iBAA+B,CAMlD;QACE,KAAK,EAAE,eAAe,EAAE,YAAY;QACpC,MAAM,EAAE,eAAe,CAAC,YAAY;AACpC,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,YAAY,IAAI,EAAE;AAC/D,QAAA,eAAe,EAAE,yBAAyB,CAAC,YAAY,IAAI,EAAE;QAC7D,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KACpDY,iBAA2B,CACvB,WAAW,EACX,gBAAgB,CACnB,CAAC;AACE,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE,mCAAmC;AAC1D,KAAA,CAAC;AACF,IAAA,IAAI,YAAY,CAAC,OAAO,EAAE;AACtB,QAAA,OAAO,YAAY;;AAGvB,IAAA,MAAM,eAAe,GAAqC;AACtD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;QACL,UAAU,EAAE,UAAU,CAAC,KAAK;QAC5B,WAAW,EAAE,WAAW,CAAC,KAAK;QAC9B,WAAW,EAAE,WAAW,CAAC,KAAK;QAC9B,YAAY,EAAE,YAAY,CAAC,KAAK;KACnC;AAED,IAAA,eAAe,CAAC,eAAe,GAAGrB,iBAAgC,CAAC;QAC/D,KAAK,EAAE,eAAe,EAAE,eAAe;QACvC,MAAM,EAAE,eAAe,CAAC,eAAe;QACvC,SAAS,EAAE,0BAA0B,CAAC,eAAe;AACxD,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,mBAAmB,GAAGA,iBAAgC,CAAC;QACnE,KAAK,EAAE,eAAe,EAAE,mBAAmB;QAC3C,MAAM,EAAE,eAAe,CAAC,mBAAmB;QAC3C,SAAS,EAAE,0BAA0B,CAAC,mBAAmB;AAC5D,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,eAAe,GAAGA,iBAAgC,CAAC;QAC/D,KAAK,EAAE,eAAe,EAAE,eAAe;QACvC,MAAM,EAAE,eAAe,CAAC,eAAe;QACvC,SAAS,EAAE,0BAA0B,CAAC,eAAe;AACxD,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,UAAU,GAAGA,iBAAgC,CAAC;QAC1D,KAAK,EAAE,eAAe,EAAE,UAAU;QAClC,MAAM,EAAE,eAAe,CAAC,UAAU;QAClC,SAAS,EAAE,0BAA0B,CAAC,UAAU;AACnD,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,WAAW,GAAGA,iBAAgC,CAAC;QAC3D,KAAK,EAAE,eAAe,EAAE,WAAW;QACnC,MAAM,EAAE,eAAe,CAAC,WAAW;QACnC,SAAS,EAAE,0BAA0B,CAAC,WAAW;AACpD,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,WAAW,GAAGA,iBAAgC,CAAC;QAC3D,KAAK,EAAE,eAAe,EAAE,WAAW;QACnC,MAAM,EAAE,eAAe,CAAC,WAAW;QACnC,SAAS,EAAE,0BAA0B,CAAC,WAAW;AACpD,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,YAAY,GAAGA,iBAAgC,CAAC;QAC5D,KAAK,EAAE,eAAe,EAAE,YAAY;QACpC,MAAM,EAAE,eAAe,CAAC,YAAY;QACpC,SAAS,EAAE,0BAA0B,CAAC,YAAY;AACrD,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,SAAS,GAAGA,iBAAgC,CAAC;QACzD,KAAK,EAAE,eAAe,EAAE,SAAS;QACjC,MAAM,EAAE,eAAe,CAAC,SAAS;QACjC,SAAS,EAAE,0BAA0B,CAAC,SAAS;AAClD,KAAA,CAAC;AACF,IAAA,MAAM,IAAI,GAAGnE,iBAA6B,CAAC;QACvC,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;QAC5B,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,KAAA,CAAC;AACF,IAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,OAAO,IAAI;;AAEf,IAAA,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK;AAEjC,IAAA,IACI,2BAA2B,CAAC;QACxB,WAAW;AACX,QAAA,uBAAuB,EAAE,yBAAyB;AACrD,KAAA,CAAC,EACJ;AACE,QAAA,eAAe,CAAC,kBAAkB,GAAGmE,iBAAgC,CAAC;YAClE,KAAK,EAAE,eAAe,EAAE,kBAAkB;YAC1C,MAAM,EAAE,eAAe,CAAC,kBAAkB;YAC1C,SAAS,EAAE,0BAA0B,CAAC,kBAAkB;AAC3D,SAAA,CAAC;;AAGN,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;AC7SE,MAAMmF,eAAa,GACtB,CAAC,YAAqB,EAAE,YAAiC,KACzD,CAAC,MAA8B,KAA4B;IACvD,OAAO;AACH,QAAA,GAAG,MAAM;AACT,QAAA,KAAK,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,MAAM,CAAC,KAAK;KAC9E;AACL,CAAC;AAEE,MAAMhD,iBAAe,GACxB,CACI,YAAqB,KAMzB,CAAC,EACG,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;IACD,MAAM,eAAe,GAAqC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;IAE1E,IAAI,YAAY,EAAE;AACd,QAAA,eAAe,CAAC,cAAc,GAAG4G,iBAAqC,CAAC;YACnE,KAAK,EAAE,eAAe,EAAE,cAAc;YACtC,MAAM,EAAE,eAAe,CAAC,cAAc;YACtC,SAAS,EAAE,0BAA0B,CAAC,cAAc;AACvD,SAAA,CAAC;;AAEN,IAAA,IAAI,YAAY,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE;AAC3D,QAAA,eAAe,CAAC,KAAK,GAAGA,iBAAqC,CAAC;YAC1D,KAAK,EAAE,eAAe,EAAE,KAAK;YAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;YAC7B,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,SAAA,CAAC;;IAEN;AACI,QAAA,MAAM,WAAW,GAAGrB,iBAAqC,CAAC;YACtD,KAAK,EAAE,eAAe,EAAE,uBAAuB;YAC/C,MAAM,EAAE,eAAe,CAAC,uBAAuB;YAC/C,SAAS,EAAE,0BAA0B,CAAC,uBAAuB;AAChE,SAAA,CAAC;AACF,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,YAAA,OAAO,WAAW;;AAEtB,QAAA,eAAe,CAAC,uBAAuB,GAAG,WAAW,CAAC,KAAK;;AAG/D,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAO1H,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;IAG/B,OAAOA,aAAM,CAAC,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;AAC5C,CAAC;;ACxDE,MAAMmF,eAAa,GAAG,CAAC,MAA8B,KAA4B;AACpF,IAAA,OAAO,MAAM;AACjB,CAAC;AAEM,MAAMhD,iBAAe,GAIxB,CAAC,EACD,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;AACD,IAAA,MAAM,aAAa,GAAG6G,iBAAyB,CAAC;AAC5C,QAAA,0BAA0B,EAAE,EAAE,GAAG,0BAA0B,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AAC3F,QAAA,yBAAyB,EAAE,EAAE,GAAG,yBAAyB,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACzF,QAAA,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACrE,QAAA,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACxE,KAAA,CAAC;AACF,IAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACvB,QAAA,OAAO,aAAa;;AAGxB,IAAA,MAAM,eAAe,GAAqC;QACtD,GAAG,aAAa,CAAC,KAAK;AACtB,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;KACR;AAED,IAAA,eAAe,CAAC,SAAS,GAAGvB,iBAAgC,CAAC;QACzD,KAAK,EAAE,eAAe,EAAE,SAAS;QACjC,MAAM,EAAE,eAAe,CAAC,SAAS;QACjC,SAAS,EAAE,0BAA0B,CAAC,SAAS;AAClD,KAAA,CAAC;AAEF,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;AC1CM,MAAMmF,eAAa,GAAG,CAAC,MAA8B,KAA4B;AACpF,IAAA,OAAO,MAAM;AACjB,CAAC;AAEM,MAAMhD,iBAAe,GAIxB,CAAC,EAAE,0BAA0B,EAAE,eAAe,EAAE,eAAe,EAAE,KAAI;AACrE,IAAA,MAAM,eAAe,GAAqC;AACtD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;KACR;AAED,IAAA,MAAM,IAAI,GAAGmB,iBAA6B,CAAC;QACvC,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;QAC5B,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,KAAA,CAAC;AACF,IAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,OAAO,IAAI;;AAEf,IAAA,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK;AAEjC,IAAA,MAAM,KAAK,GAAGA,iBAA6B,CAAC;QACxC,KAAK,EAAE,eAAe,EAAE,KAAK;QAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;QAC7B,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,KAAA,CAAC;AACF,IAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACf,QAAA,OAAO,KAAK;;AAEhB,IAAA,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AAEnC,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOtD,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;ACtCM,MAAMmF,eAAa,GACtB,CAAC,YAAqB,EAAE,YAAgC,KACxD,CAAC,MAA8B,KAA4B;IACvD,OAAO;AACH,QAAA,GAAG,MAAM;AACT,QAAA,KAAK,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,MAAM,CAAC,KAAK;KAC9E;AACL,CAAC;AAEE,MAAMhD,iBAAe,GACxB,CACI,YAAqB,KAMzB,CAAC,EACG,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;IACD,MAAM,eAAe,GAAqC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;IAE1E,IAAI,YAAY,EAAE;AACd,QAAA,eAAe,CAAC,cAAc,GAAG4G,iBAAqC,CAAC;YACnE,KAAK,EAAE,eAAe,EAAE,cAAc;YACtC,MAAM,EAAE,eAAe,CAAC,cAAc;YACtC,SAAS,EAAE,0BAA0B,CAAC,cAAc;AACvD,SAAA,CAAC;;AAEN,IAAA,IAAI,YAAY,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE;AAC3D,QAAA,eAAe,CAAC,KAAK,GAAGA,iBAAqC,CAAC;YAC1D,KAAK,EAAE,eAAe,EAAE,KAAK;YAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;YAC7B,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,SAAA,CAAC;;IAEN;AACI,QAAA,MAAM,WAAW,GAAGrB,iBAAqC,CAAC;YACtD,KAAK,EAAE,eAAe,EAAE,uBAAuB;YAC/C,MAAM,EAAE,eAAe,CAAC,uBAAuB;YAC/C,SAAS,EAAE,0BAA0B,CAAC,uBAAuB;AAChE,SAAA,CAAC;AACF,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,YAAA,OAAO,WAAW;;AAEtB,QAAA,eAAe,CAAC,uBAAuB,GAAG,WAAW,CAAC,KAAK;;AAG/D,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAO1H,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;IAG/B,OAAOA,aAAM,CAAC,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;AAC5C,CAAC;;ACxDE,MAAMmF,eAAa,GAAG,CAAC,MAA8B,KAA4B;AACpF,IAAA,OAAO,MAAM;AACjB,CAAC;AAEM,MAAMhD,iBAAe,GAIxB,CAAC,EACD,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;AACD,IAAA,MAAM,aAAa,GAAG8G,iBAAiC,CAAC;AACpD,QAAA,0BAA0B,EAAE,EAAE,GAAG,0BAA0B,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AAC3F,QAAA,yBAAyB,EAAE,EAAE,GAAG,yBAAyB,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACzF,QAAA,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACrE,QAAA,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AACxE,KAAA,CAAC;AACF,IAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACvB,QAAA,OAAO,aAAa;;AAGxB,IAAA,MAAM,eAAe,GAAqC;QACtD,GAAG,aAAa,CAAC,KAAK;AACtB,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;KACR;AAED,IAAA,eAAe,CAAC,SAAS,GAAGxB,iBAAgC,CAAC;QACzD,KAAK,EAAE,eAAe,EAAE,SAAS;QACjC,MAAM,EAAE,eAAe,CAAC,SAAS;QACjC,SAAS,EAAE,0BAA0B,CAAC,SAAS;AAClD,KAAA,CAAC;AAEF,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;ACzCM,MAAMmF,eAAa,GACtB,CAAC,YAAqB,KACtB,CAAC,MAA8B,KAA4B;IACvD,OAAO;AACH,QAAA,GAAG,MAAM;AACT,QAAA,KAAK,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK;KACpE;AACL,CAAC;AAEE,MAAMhD,iBAAe,GACxB,CACI,YAAqB,KAMzB,CAAC,EACG,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;IACD,MAAM,eAAe,GAAqC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;IAE1E,IAAI,YAAY,EAAE;AACd,QAAA,eAAe,CAAC,cAAc,GAAGsF,iBAAgC,CAAC;YAC9D,KAAK,EAAE,eAAe,EAAE,cAAc;YACtC,MAAM,EAAE,eAAe,CAAC,cAAc;YACtC,SAAS,EAAE,0BAA0B,CAAC,cAAc;AACvD,SAAA,CAAC;;AAEN,IAAA,IAAI,YAAY,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE;AAC3D,QAAA,MAAM,WAAW,GAAGC,iBAAqC,CAAC;YACtD,KAAK,EAAE,eAAe,EAAE,KAAK;YAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;YAC7B,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,SAAA,CAAC;AACF,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,YAAA,OAAO,WAAW;;AAEtB,QAAA,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK;;IAE7C;AACI,QAAA,MAAM,WAAW,GAAGA,iBAAqC,CAAC;YACtD,KAAK,EAAE,eAAe,EAAE,uBAAuB;YAC/C,MAAM,EAAE,eAAe,CAAC,uBAAuB;YAC/C,SAAS,EAAE,0BAA0B,CAAC,uBAAuB;AAChE,SAAA,CAAC;AACF,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,YAAA,OAAO,WAAW;;AAEtB,QAAA,eAAe,CAAC,uBAAuB,GAAG,WAAW,CAAC,KAAK;;AAG/D,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAO1H,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;AC7DE,MAAM6H,UAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,cAAc,EAAE,0BAA0B,CAAC/H,KAAC,CAAC,OAAO,EAAE,CAAC;IACvD,KAAK,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;AACzD,IAAA,uBAAuB,EAAE,uBAAuB,CAAC,IAAI,CAAC;AACzD,CAAA,EACD,CAAC,EACD,CAAC;;ACVE,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;IACI,GAAGE,aAAmB;AACtB,IAAA,OAAO,EAAE,0BAA0B,CAACjI,KAAC,CAAC,MAAM,EAAE,CAAC;AAC/C,IAAA,SAAS,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AACrD,CAAA,EACD,CAAC,EACD,CAAC;;ACTE,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC;AACpC,IAAA,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC;AACxC,CAAA,EACD,CAAC,EACD,CAAC;;ACDE,MAAMA,UAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,cAAc,EAAE,0BAA0B,CAAC/H,KAAC,CAAC,OAAO,EAAE,CAAC;IACvD,KAAK,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAExD;;AAEG;AACH,IAAA,uBAAuB,EAAE,uBAAuB,CAAC,IAAI,CAAC;AACzD,CAAA,EACD,CAAC,EACD,CAAC;;ACdE,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;IACI,GAAGqB,eAA+B;AAClC,IAAA,OAAO,EAAE,0BAA0B,CAACpJ,KAAC,CAAC,MAAM,EAAE,CAAC;AAC/C,IAAA,SAAS,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AACrD,CAAA,EACD,CAAC,EACD,CAAC;;ACJE,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,cAAc,EAAE,0BAA0B,CAAC/H,KAAC,CAAC,OAAO,EAAE,CAAC;AACvD,IAAA,KAAK,EAAE,uBAAuB,CAAC,IAAI,CAAC;AACpC,IAAA,uBAAuB,EAAE,uBAAuB,CAAC,IAAI,CAAC;AACzD,CAAA,EACD,CAAC,EACD,CAAC;;ACGL;AACA;AAEA;AAEO,MAAM,qBAAqB,GAAqC;AACnE,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,uBAAuB,EAAE,SAAS;CACrC;AAEM,MAAM,oBAAoB,GAAoC;AACjE,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,uBAAuB,EAAE,SAAS;CACrC;AAEM,MAAM,oBAAoB,GAAoC;AACjE,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,uBAAuB,EAAE,SAAS;CACrC;AAEM,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;IACI,kBAAkB,EAAE,0BAA0B,CAAC/H,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAErE,IAAA,KAAK,EAAE,0BAA0B,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAC3D,IAAA,SAAS,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AAClD,IAAA,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC;AACpC,IAAA,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC;AACpC,IAAA,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAC3C,IAAA,cAAc,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAC9C,IAAA,aAAa,EAAE,0BAA0B,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAEnE,IAAA,OAAO,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AAChD,IAAA,OAAO,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AAChD,IAAA,OAAO,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AAChD,IAAA,OAAO,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AAChD,IAAA,OAAO,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AAChD,IAAA,OAAO,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AAChD,IAAA,OAAO,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AAChD,IAAA,OAAO,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AAChD,IAAA,OAAO,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AAChD,IAAA,QAAQ,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;IAEjD,UAAU,EAAE,8BAA8B,CAACqJ,UAAkB,EAAE,qBAAqB,CAAC;IACrF,SAAS,EAAE,8BAA8B,CAACC,UAAiB,EAAE,oBAAoB,CAAC;IAClF,YAAY,EAAE,8BAA8B,CAACA,UAAiB,EAAE,oBAAoB,CAAC;IACrF,SAAS,EAAE,8BAA8B,CAACC,UAAiB,EAAE,oBAAoB,CAAC;AAClF,IAAA,MAAM,EAAE,yBAAyB,CAACC,UAAuB,CAAC;AAC1D,IAAA,eAAe,EAAE,yBAAyB,CAACC,UAAgB,CAAC;AAC5D,IAAA,cAAc,EAAE,yBAAyB,CAACC,UAAsB,CAAC;AACpE,CAAA,EACD,CAAC,EACD,CAAC;;AC9CL,MAAMC,eAAa,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAU;AAEvD,MAAMtE,eAAa,GACtB,CACI,YAAqB,EACrB,WAAwB,EACxB,gBAA6C,KAEjD,CAAC,MAA8B,KAA4B;IACvD,OAAO;AACH,QAAA,GAAG,MAAM;QACT,WAAW,EAAE,YAAY,GAAG,MAAM,CAAC,WAAW,GAAG,EAAE;QACnD,cAAc,EAAE,YAAY,GAAG,MAAM,CAAC,cAAc,GAAG,EAAE;AACzD,QAAA,UAAU,EAAEmD,eAA6B,CAAC;YACtC,WAAW,EAAE,MAAM,CAAC,UAAU;AAC9B,YAAA,SAAS,EAAE,MAAM,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KACrBoB,eAAuB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC;SAC9D,CAAC;AACF,QAAA,SAAS,EAAEpB,eAA6B,CAAC;YACrC,WAAW,EAAE,MAAM,CAAC,SAAS;AAC7B,YAAA,SAAS,EAAE,MAAM,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KACrBqB,eAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC;SAC7D,CAAC;AACF,QAAA,YAAY,EAAErB,eAA6B,CAAC;YACxC,WAAW,EAAE,MAAM,CAAC,YAAY;AAChC,YAAA,SAAS,EAAE,MAAM,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KACrBqB,eAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC;SAC7D,CAAC;AACF,QAAA,SAAS,EAAErB,eAA6B,CAAC;YACrC,WAAW,EAAE,MAAM,CAAC,SAAS;AAC7B,YAAA,SAAS,EAAE,MAAM,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKsB,eAAsB,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;SAC5E,CAAC;AACF,QAAA,MAAM,EAAEtB,eAA6B,CAGnC;YACE,WAAW,EAAE,MAAM,CAAC,MAAM;AAC1B,YAAA,SAAS,EAAE,KAAK,IACZ,CAAC,cAAc,CAAC;gBACZ,WAAW;gBACX,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,gBAAgB;aACnB,CAAC;AACN,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKuB,eAA4B,CAAC,KAAK,CAAC;SACpE,CAAC;AACF,QAAA,eAAe,EAAEvB,eAA6B,CAG5C;YACE,WAAW,EAAE,MAAM,CAAC,eAAe;AACnC,YAAA,SAAS,EAAE,MAAM,CAAC,YAAY;AAC9B,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKwB,eAAqB,CAAC,KAAK,CAAC;SAC7D,CAAC;AACF,QAAA,cAAc,EAAExB,eAA6B,CAG3C;YACE,WAAW,EAAE,MAAM,CAAC,cAAc;AAClC,YAAA,SAAS,EAAE,KAAK,IACZ,CAAC,cAAc,CAAC;gBACZ,WAAW;gBACX,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,gBAAgB;aACnB,CAAC;AACN,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKyB,eAA2B,CAAC,KAAK,CAAC;SACnE,CAAC;KACL;AACL,CAAC;AAEE,MAAM5H,iBAAe,GACxB,CACI,YAAqB,EACrB,WAAwB,EACxB,gBAA6C,KAMjD,CAAC,EACG,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;AACD,IAAA,IAAI,CAAC,YAAY,IAAI,yBAAyB,CAAC,SAAS,EAAE;AACtD,QAAA,OAAOnC,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,MAAM,UAAU,GAAGgK,iBAAoC,CAAC;AACpD,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,UAAU,IAAI,EAAE;AAC7D,QAAA,eAAe,EAAE,yBAAyB,CAAC,UAAU,IAAI,EAAE;QAC3D,KAAK,EAAE,eAAe,EAAE,UAAU;QAClC,MAAM,EAAE,eAAe,CAAC,UAAU;QAClC,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpDC,iBAAyB,CAAC,YAAY,CAAC,CAAC;AACpC,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AAC3C,YAAA,eAAe,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;SAC/C,CAAC;AACN,QAAA,YAAY,EAAE,qBAAqB;AACtC,KAAA,CAAC;AACF,IAAA,IAAI,UAAU,CAAC,OAAO,EAAE;AACpB,QAAA,OAAO,UAAU;;AAGrB,IAAA,MAAM,SAAS,GAAGD,iBAAoC,CAAC;AACnD,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,SAAS,IAAI,EAAE;AAC5D,QAAA,eAAe,EAAE,yBAAyB,CAAC,SAAS,IAAI,EAAE;QAC1D,KAAK,EAAE,eAAe,EAAE,SAAS;QACjC,MAAM,EAAE,eAAe,CAAC,SAAS;QACjC,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpDE,iBAAwB,CAAC,YAAY,CAAC,CAAC;AACnC,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,YAAY,EAAE,oBAAoB;AACrC,KAAA,CAAC;AACF,IAAA,IAAI,SAAS,CAAC,OAAO,EAAE;AACnB,QAAA,OAAO,SAAS;;AAGpB,IAAA,MAAM,YAAY,GAAGF,iBAAoC,CAAC;AACtD,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,YAAY,IAAI,EAAE;AAC/D,QAAA,eAAe,EAAE,yBAAyB,CAAC,YAAY,IAAI,EAAE;QAC7D,KAAK,EAAE,eAAe,EAAE,YAAY;QACpC,MAAM,EAAE,eAAe,CAAC,YAAY;QACpC,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpDE,iBAAwB,CAAC,YAAY,CAAC,CAAC;AACnC,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,YAAY,EAAE,oBAAoB;AACrC,KAAA,CAAC;AACF,IAAA,IAAI,YAAY,CAAC,OAAO,EAAE;AACtB,QAAA,OAAO,YAAY;;AAGvB,IAAA,MAAM,SAAS,GAAGF,iBAAoC,CAAC;AACnD,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,SAAS,IAAI,EAAE;AAC5D,QAAA,eAAe,EAAE,yBAAyB,CAAC,SAAS,IAAI,EAAE;QAC1D,KAAK,EAAE,eAAe,EAAE,SAAS;QACjC,MAAM,EAAE,eAAe,CAAC,SAAS;QACjC,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpDG,iBAAwB,CAAC,YAAY,CAAC,CAAC;AACnC,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,YAAY,EAAE,oBAAoB;AACrC,KAAA,CAAC;AACF,IAAA,IAAI,SAAS,CAAC,OAAO,EAAE;AACnB,QAAA,OAAO,SAAS;;AAGpB,IAAA,MAAM,MAAM,GAAGjC,iBAA+B,CAM5C;AACE,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,MAAM,IAAI,EAAE;AACzD,QAAA,eAAe,EAAE,yBAAyB,CAAC,MAAM,IAAI,EAAE;QACvD,KAAK,EAAE,eAAe,EAAE,MAAM;QAC9B,MAAM,EAAE,eAAe,CAAC,MAAM;AAC9B,QAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpDkC,iBAA8B,CAAC;AAC3B,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;YAChB,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,KACvB,CAAC,cAAc,CAAC;gBACZ,WAAW;gBACX,gBAAgB;gBAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC5B,CAAC;AACF,gBAAA,CAAC,OAAO,CAAC;oBACL,WAAW;AACX,oBAAA,kBAAkB,EAAE,yBAAyB,CAAC,kBAAkB,IAAI,IAAI;iBAC3E,CAAC;YACN,YAAY,EAAE,MAAM,IAAG;gBACnB,IACI,CAAC,cAAc,CAAC;oBACZ,WAAW;oBACX,gBAAgB;AAChB,oBAAA,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;AAChC,iBAAA,CAAC,EACJ;AACE,oBAAA,OAAO,IAAI;;gBAEf,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS;aACjD;YACD,YAAY,EAAE,MAAM,IAAG;gBACnB,IACI,CAAC,cAAc,CAAC;oBACZ,WAAW;oBACX,gBAAgB;AAChB,oBAAA,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO;AACpC,iBAAA,CAAC,EACJ;AACE,oBAAA,OAAO,IAAI;;gBAEf,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS;aACrD;AACJ,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAChB,QAAA,OAAO,MAAM;;AAGjB,IAAA,MAAM,eAAe,GAAGlC,iBAA+B,CAMrD;AACE,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,eAAe,IAAI,EAAE;AAClE,QAAA,eAAe,EAAE,yBAAyB,CAAC,eAAe,IAAI,EAAE;QAChE,KAAK,EAAE,eAAe,EAAE,eAAe;QACvC,MAAM,EAAE,eAAe,CAAC,eAAe;AACvC,QAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpDmC,iBAAuB,CAAC;AACpB,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;AAChB,YAAA,YAAY,EAAE,MAAM,CAAC,YAAY;AACjC,YAAA,YAAY,EAAE,MAAM,CAAC,YAAY;AACjC,YAAA,YAAY,EAAE,MAAM,CAAC,YAAY;AACpC,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AACzB,QAAA,OAAO,eAAe;;AAG1B,IAAA,MAAM,iBAAiB,GAAGnC,iBAA+B,CAMvD;AACE,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,cAAc,IAAI,EAAE;AACjE,QAAA,eAAe,EAAE,yBAAyB,CAAC,cAAc,IAAI,EAAE;QAC/D,KAAK,EAAE,eAAe,EAAE,cAAc;QACtC,MAAM,EAAE,eAAe,CAAC,cAAc;AACtC,QAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpDoC,iBAA6B,CAAC;AAC1B,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;YAChB,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,KACvB,CAAC,cAAc,CAAC;gBACZ,WAAW;gBACX,gBAAgB;gBAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC5B,CAAC;AACF,gBAAA,CAAC,OAAO,CAAC;oBACL,WAAW;AACX,oBAAA,kBAAkB,EAAE,yBAAyB,CAAC,kBAAkB,IAAI,IAAI;iBAC3E,CAAC;YACN,YAAY,EAAE,MAAM,IAAG;gBACnB,IACI,CAAC,cAAc,CAAC;oBACZ,WAAW;oBACX,gBAAgB;AAChB,oBAAA,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;AAChC,iBAAA,CAAC,EACJ;AACE,oBAAA,OAAO,IAAI;;gBAEf,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS;aACjD;YACD,YAAY,EAAE,MAAM,IAAG;gBACnB,IACI,CAAC,cAAc,CAAC;oBACZ,WAAW;oBACX,gBAAgB;AAChB,oBAAA,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO;AACpC,iBAAA,CAAC,EACJ;AACE,oBAAA,OAAO,IAAI;;gBAEf,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS;aACrD;AACJ,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,iBAAiB,CAAC,OAAO,EAAE;AAC3B,QAAA,OAAO,iBAAiB;;AAG5B,IAAA,MAAM,eAAe,GAAqC;AACtD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;QACL,UAAU,EAAE,UAAU,CAAC,KAAK;QAC5B,SAAS,EAAE,SAAS,CAAC,KAAK;QAC1B,YAAY,EAAE,YAAY,CAAC,KAAK;QAChC,SAAS,EAAE,SAAS,CAAC,KAAK;QAC1B,MAAM,EAAE,MAAM,CAAC,KAAK;QACpB,eAAe,EAAE,eAAe,CAAC,KAAK;QACtC,cAAc,EAAE,iBAAiB,CAAC,KAAK;KAC1C;AAED,IAAA,IACI,2BAA2B,CAAC;QACxB,WAAW;AACX,QAAA,uBAAuB,EAAE,yBAAyB;AACrD,KAAA,CAAC,EACJ;AACE,QAAA,eAAe,CAAC,kBAAkB,GAAG7C,iBAAgC,CAAC;YAClE,KAAK,EAAE,eAAe,EAAE,kBAAkB;YAC1C,MAAM,EAAE,eAAe,CAAC,kBAAkB;YAC1C,SAAS,EAAE,0BAA0B,CAAC,kBAAkB;AAC3D,SAAA,CAAC;;AAEN,IAAA,eAAe,CAAC,KAAK,GAAGA,iBAAgC,CAAC;QACrD,KAAK,EAAE,eAAe,EAAE,KAAK;QAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;QAC7B,SAAS,EAAE,0BAA0B,CAAC,KAAK;AAC9C,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,aAAa,GAAGA,iBAAgC,CAAC;QAC7D,KAAK,EAAE,eAAe,EAAE,aAAa;QACrC,MAAM,EAAE,eAAe,CAAC,aAAa;QACrC,SAAS,EAAE,0BAA0B,CAAC,aAAa;AACtD,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,SAAS,GAAGA,iBAAgC,CAAC;QACzD,KAAK,EAAE,eAAe,EAAE,SAAS;QACjC,MAAM,EAAE,eAAe,CAAC,SAAS;QACjC,SAAS,EAAE,0BAA0B,CAAC,SAAS;AAClD,KAAA,CAAC;AACF,IAAA,KAAK,MAAM,KAAK,IAAIgC,eAAa,EAAE;AAC/B,QAAA,MAAM,GAAG,GAAG,CAAS,MAAA,EAAA,KAAK,EAAW;AACrC,QAAA,eAAe,CAAC,GAAG,CAAC,GAAGhC,iBAAgC,CAAC;AACpD,YAAA,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC;AAC7B,YAAA,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC;AAC5B,YAAA,SAAS,EAAE,0BAA0B,CAAC,GAAG,CAAC;AAC7C,SAAA,CAAC;;AAEN,IAAA,MAAM,eAAe,GAAGnE,iBAA6B,CAAC;QAClD,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;QAC5B,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,KAAA,CAAC;AACF,IAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AACzB,QAAA,OAAO,eAAe;;AAE1B,IAAA,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK;AAC5C,IAAA,MAAM,eAAe,GAAGA,iBAA6B,CAAC;QAClD,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;QAC5B,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,KAAA,CAAC;AACF,IAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AACzB,QAAA,OAAO,eAAe;;AAE1B,IAAA,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK;IAC5C,IAAI,YAAY,EAAE;AACd,QAAA,MAAM,sBAAsB,GAAGA,iBAA6B,CAAC;YACzD,KAAK,EAAE,eAAe,EAAE,WAAW;YACnC,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,SAAS,EAAE,0BAA0B,CAAC,WAAW;AACpD,SAAA,CAAC;AACF,QAAA,IAAI,sBAAsB,CAAC,OAAO,EAAE;AAChC,YAAA,OAAO,sBAAsB;;AAEjC,QAAA,eAAe,CAAC,WAAW,GAAG,sBAAsB,CAAC,KAAK;;IAE9D,IAAI,YAAY,EAAE;AACd,QAAA,MAAM,WAAW,GAAGA,iBAA6B,CAAC;YAC9C,KAAK,EAAE,eAAe,EAAE,cAAc;YACtC,MAAM,EAAE,eAAe,CAAC,cAAc;YACtC,SAAS,EAAE,0BAA0B,CAAC,cAAc;AACvD,SAAA,CAAC;AACF,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,YAAA,OAAO,WAAW;;AAEtB,QAAA,eAAe,CAAC,cAAc,GAAG,WAAW,CAAC,KAAK;;AAGtD,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOtD,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;AC/aE,MAAMmF,eAAa,GAAG,CAAC,MAA8B,KAA6B,MAAM;AAExF,MAAMhD,iBAAe,GAIxB,CAAC,EAAE,0BAA0B,EAAE,eAAe,EAAE,eAAe,EAAE,KAAI;IACrE,MAAM,eAAe,GAAqC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;;AAG1E,IAAA,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;AAClD,QAAA,eAAe,CAAC,GAAG,GAAGsF,iBAAgC,CAAC;YACnD,KAAK,EAAE,eAAe,EAAE,GAAG;YAC3B,MAAM,EAAE,eAAe,CAAC,GAAG;YAC3B,SAAS,EAAE,0BAA0B,CAAC,GAAG;AAC5C,SAAA,CAAC;;AAGN,IAAA,MAAM,IAAI,GAAGnE,iBAA6B,CAAC;QACvC,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;QAC5B,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,KAAA,CAAC;AACF,IAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,OAAO,IAAI;;AAEf,IAAA,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK;AAEjC,IAAA,MAAM,IAAI,GAAGA,iBAA6B,CAAC;QACvC,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;QAC5B,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,KAAA,CAAC;AACF,IAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,OAAO,IAAI;;AAEf,IAAA,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK;AAEjC,IAAA,eAAe,CAAC,QAAQ,GAAGmE,iBAAgC,CAAC;QACxD,KAAK,EAAE,eAAe,EAAE,QAAQ;QAChC,MAAM,EAAE,eAAe,CAAC,QAAQ;QAChC,SAAS,EAAE,0BAA0B,CAAC,QAAQ;AACjD,KAAA,CAAC;AAEF,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;IAG/B,OAAOA,aAAM,CAAC,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;AAC5C,CAAC;;AClDM,MAAMmF,eAAa,GAAG,CAAC,MAA8B,KAA6B,MAAM;AAExF,MAAMhD,iBAAe,GAIxB,CAAC,EAAE,0BAA0B,EAAE,eAAe,EAAE,eAAe,EAAE,KAAI;IACrE,MAAM,eAAe,GAAqC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AAE1E,IAAA,MAAM,IAAI,GAAGmB,iBAA6B,CAAC;QACvC,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;QAC5B,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,KAAA,CAAC;AACF,IAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,OAAO,IAAI;;AAEf,IAAA,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK;AAEjC,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOtD,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;IAG/B,OAAOA,aAAM,CAAC,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;AAC5C,CAAC;;ACvBM,MAAMmF,eAAa,GAAG,CAAC,MAA8B,KAA4B;AACpF,IAAA,OAAO,MAAM;AACjB,CAAC;AAEM,MAAMhD,iBAAe,GACxB,CAAC,EACG,WAAW,EACX,cAAc,GAIjB,KAKD,CAAC,EAAE,0BAA0B,EAAE,eAAe,EAAE,eAAe,EAAE,KAAI;IACjE,MAAM,YAAY,GAAG,OAAO,CAAC;QACzB,WAAW;AACX,QAAA,kBAAkB,EAAE,cAAc;AACrC,KAAA,CAAC;AAEF,IAAA,MAAM,eAAe,GAAqC;AACtD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;KACR;IAED,IAAI,YAAY,EAAE;;AAEd,QAAA,eAAe,CAAC,IAAI,GAAGsF,iBAAgC,CAAC;AACpD,YAAA,KAAK,EAAE,eAAe,EAAE,IAAI,IAAI,SAAS;AACzC,YAAA,MAAM,EAAE,eAAe,CAAC,IAAI,IAAI,SAAS;YACzC,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,SAAA,CAAC;;AAGN,IAAA,IAAI,WAAW,CAAC,IAAI,KAAK,KAAK,EAAE;AAC5B,QAAA,eAAe,CAAC,IAAI,GAAGA,iBAAgC,CAAC;AACpD,YAAA,KAAK,EAAE,eAAe,EAAE,IAAI,IAAI,SAAS;AACzC,YAAA,MAAM,EAAE,eAAe,CAAC,IAAI,IAAI,SAAS;YACzC,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,SAAA,CAAC;;AAGN,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;ACzDL;AAEA;AAOO,MAAM,MAAM,GAAG;AACf,MAAM,SAAS,GAAG;AAClB,MAAM,MAAM,GAAG;AAEtB,MAAM,eAAe,GAAGF,KAAC,CAAC,KAAK,CAAC,CAACA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAGtF,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,IAAI,EAAE,0BAA0B,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAC3D,IAAA,IAAI,EAAE,0BAA0B,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC3D,CAAA,EACD,CAAC,EACD,CAAC;;AChBL,MAAM,gBAAgB,GAAG,CAAC,MAA+C,KAAI;AACzE,IAAA,OAAO/G,mBAAa,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;AAC9C,QAAA,OAAO,KAAK,CAAC,WAAW,IAAI,IAAI;AACpC,KAAC,CAAC;AACN,CAAC;AAED;;;;AAIG;AACU,MAAA,eAAe,GAAG,CAAC,MAA+C,KAAI;AAC/E,IAAA,MAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAChD,IAAA,OAAOyJ,eAAK,CAAC,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC;AACjE;;AChBa,MAAA,cAAc,GAAG,CAAC,MAA8B,KAAa;;IAEtE,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAC1C,OAAO,CAAC,IAAI,IAAI;AACpB;;ACEO,MAAMpI,iBAAe,GACxB,CAAC,EACG,WAAW,GAGd,KAKD,CAAC,EAAE,0BAA0B,EAAE,eAAe,EAAE,eAAe,EAAE,KAAI;AACjE,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,KAAK,KAAK;IAC1C,IAAI,CAAC,OAAO,EAAE;AACV,QAAA,OAAOnC,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;IAG/B,MAAM,eAAe,GAAqC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AAE1E,IAAA,eAAe,CAAC,UAAU,GAAGyH,iBAAgC,CAAC;QAC1D,KAAK,EAAE,eAAe,EAAE,UAAU;QAClC,MAAM,EAAE,eAAe,CAAC,UAAU;QAClC,SAAS,EAAE,0BAA0B,CAAC,UAAU;AACnD,KAAA,CAAC;AAEF,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;ACjBE,MAAMmC,iBAAe,GACxB,CAAC,EACG,WAAW,GAGd,KAKD,CAAC,EACG,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;AACD,IAAA,MAAM,mBAAmB,GAAG,cAAc,CAAC,yBAAyB,CAAC;AACrE,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,KAAK,KAAK;AAE1C,IAAA,MAAM,YAAY,GAAG+F,iBAA+B,CAAC;AACjD,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,YAAY,IAAI,EAAE;AAC/D,QAAA,eAAe,EAAE,yBAAyB,CAAC,YAAY,IAAI,EAAE;QAC7D,KAAK,EAAE,eAAe,EAAE,YAAY;QACpC,MAAM,EAAE,eAAe,CAAC,YAAY;AACpC,QAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpDsC,iBAA2B,CAAC;YACxB,WAAW;AACd,SAAA,CAAC,CAAC;AACC,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;;;YAGhB,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,KAClB,EAAE,mBAAmB,IAAI,YAAY,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/E,YAAA,YAAY,EAAE,MAAM,CAAC,OAAO;AAC/B,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,YAAY,CAAC,OAAO,EAAE;AACtB,QAAA,OAAO,YAAY;;AAGvB,IAAA,MAAM,eAAe,GAAqC;AACtD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;QACL,YAAY,EAAE,YAAY,CAAC,KAAK;KACnC;IAED,IAAI,OAAO,EAAE;AACT,QAAA,eAAe,CAAC,WAAW,GAAG/C,iBAAgC,CAAC;YAC3D,KAAK,EAAE,eAAe,EAAE,WAAW;YACnC,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,SAAS,EAAE,0BAA0B,CAAC,WAAW;AACpD,SAAA,CAAC;AAEF,QAAA,eAAe,CAAC,SAAS,GAAGA,iBAAgC,CAAC;YACzD,KAAK,EAAE,eAAe,EAAE,SAAS;YACjC,MAAM,EAAE,eAAe,CAAC,SAAS;YACjC,SAAS,EAAE,0BAA0B,CAAC,SAAS;AAClD,SAAA,CAAC;AAEF,QAAA,eAAe,CAAC,SAAS,GAAGA,iBAAgC,CAAC;YACzD,KAAK,EAAE,eAAe,EAAE,SAAS;YACjC,MAAM,EAAE,eAAe,CAAC,SAAS;YACjC,SAAS,EAAE,0BAA0B,CAAC,SAAS;AAClD,SAAA,CAAC;;AAGN,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOzH,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC,CAAC;;AC/DL,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAU;AAE9D;;;AAGG;AACI,MAAM,aAAa,GACtB,CAAC,WAAwB,KACzB,CAAC,MAA8B,KAA4B;IACvD,OAAO;AACH,QAAA,GAAG,MAAM;AACT,QAAA,IAAI,EAAEsI,eAA6B,CAAC;YAChC,WAAW,EAAE,MAAM,CAAC,IAAI;AACxB,YAAA,SAAS,EAAE,MAAM,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKmC,eAAiB,CAAC,KAAK,CAAC;SACzD,CAAC;AACF,QAAA,cAAc,EAAEnC,eAA6B,CAAC;YAC1C,WAAW,EAAE,MAAM,CAAC,cAAc;AAClC,YAAA,SAAS,EAAE,MAAM,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKoC,eAAwB,CAAC,KAAK,CAAC;SAChE,CAAC;AACF,QAAA,MAAM,EAAEpC,eAA6B,CAAC;YAClC,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAClB,CAAC,cAAc,CAAC;gBACZ,OAAO;gBACP,WAAW;AACX,gBAAA,gBAAgB,EAAE,MAAM;aAC3B,CAAC;AACN,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKqC,eAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC;SAChF,CAAC;AACF,QAAA,UAAU,EAAErC,eAA6B,CAGvC;YACE,WAAW,EAAE,MAAM,CAAC,UAAU;AAC9B,YAAA,SAAS,EAAE,KAAK,IACZ,CAAC,OAAO,CAAC;gBACL,WAAW;AACX,gBAAA,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,QAAQ;aAC3D,CAAC,IAAI,KAAK,CAAC,SAAS;AACzB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KACrBsC,eAAuB,CACnB,OAAO,CAAC;gBACJ,WAAW;AACX,gBAAA,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,QAAQ;AAC3D,aAAA,CAAC,EACF,WAAW,EACX,MAAM,CACT,CAAC,KAAK,CAAC;SACf,CAAC;AACF,QAAA,KAAK,EAAEtC,eAA6B,CAAC;YACjC,WAAW,EAAE,MAAM,CAAC,KAAK;AACzB,YAAA,SAAS,EAAE,MAAM,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKuC,eAAkB,CAAC,KAAK,CAAC;SAC1D,CAAC;AACF,QAAA,aAAa,EAAEvC,eAA6B,CAAC;YACzC,WAAW,EAAE,MAAM,CAAC,aAAa;AACjC,YAAA,SAAS,EAAE,MAAM,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKoC,eAAwB,CAAC,KAAK,CAAC;SAChE,CAAC;AACF,QAAA,YAAY,EAAEpC,eAA6B,CAAC;YACxC,WAAW,EAAE,MAAM,CAAC,YAAY;AAChC,YAAA,SAAS,EAAE,MAAM,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKwC,eAAyB,CAAC,KAAK,CAAC;SACjE,CAAC;AACF,QAAA,aAAa,EAAExC,eAA6B,CAAC;YACzC,WAAW,EAAE,MAAM,CAAC,aAAa;AACjC,YAAA,SAAS,EAAE,MAAM,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAKoC,eAAwB,CAAC,KAAK,CAAC;SAChE,CAAC;KACL;AACL;AAEJ;;;;;;;;;;;AAWG;MACU,eAAe,GACxB,CACI,WAAwB,KAM5B,CAAC,EACG,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,KAAI;AACD,IAAA,QAAQ,WAAW,CAAC,IAAI;AACpB,QAAA,KAAK,QAAQ;;AAET,YAAA,OAAO1K,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;QAC/B,KAAK,MAAM,EAAE;AACT,YAAA,MAAM,EAAE,GAAG,CAAC,yBAAyB,CAAC,YAAY,IAAI,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC;AAC9E,YAAA,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK+K,SAA0B,EAAE;;AAEzE,gBAAA,OAAO/K,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;YAE/B;;;AAKR,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,KAAK,KAAK;AAE1C,IAAA,MAAM,IAAI,GAAGkI,iBAA+B,CAM1C;AACE,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,IAAI,IAAI,EAAE;AACvD,QAAA,eAAe,EAAE,yBAAyB,CAAC,IAAI,IAAI,EAAE;QACrD,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;AAC5B,QAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpD8C,iBAAmB,CAAC;AAChB,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;AAChB,YAAA,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;AAC/C,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,OAAO,IAAI;;AAGf,IAAA,MAAM,cAAc,GAAG9C,iBAA+B,CAMpD;AACE,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,cAAc,IAAI,EAAE;AACjE,QAAA,eAAe,EAAE,yBAAyB,CAAC,cAAc,IAAI,EAAE;QAC/D,KAAK,EAAE,eAAe,EAAE,cAAc;QACtC,MAAM,EAAE,eAAe,CAAC,cAAc;AACtC,QAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpD+C,iBAA0B,CAAC;AACvB,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;AAChB,YAAA,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;AAChD,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,cAAc,CAAC,OAAO,EAAE;AACxB,QAAA,OAAO,cAAc;;AAGzB,IAAA,MAAM,MAAM,GAAG/C,iBAA+B,CAM5C;QACE,KAAK,EAAE,eAAe,EAAE,MAAM;QAC9B,MAAM,EAAE,eAAe,CAAC,MAAM;AAC9B,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,MAAM,IAAI,EAAE;AACzD,QAAA,eAAe,EAAE,yBAAyB,CAAC,MAAM,IAAI,EAAE;QACvD,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KACpDgD,iBAAqB,CACjB,WAAW,EACX,yBAAyB,CAC5B,CAAC;AACE,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;YAChB,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,KACvB,CAAC,OAAO,CAAC;gBACL,WAAW;AACX,gBAAA,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,IAAI,IAAI;aAC1D,CAAC;AACN,YAAA,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,KAAI;gBACtB,OAAO,CAAC,cAAc,CAAC;AACnB,oBAAA,OAAO,EAAE,GAAG;AACZ,oBAAA,gBAAgB,EAAE,yBAAyB;oBAC3C,WAAW;AACd,iBAAA,CAAC;aACL;YACD,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,KACpB,CAAC,OAAO,CAAC;gBACL,WAAW;AACX,gBAAA,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,QAAQ;aAC3D,CAAC;AACT,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAChB,QAAA,OAAO,MAAM;;AAGjB,IAAA,MAAM,UAAU,GAAGhD,iBAA+B,CAMhD;QACE,KAAK,EAAE,eAAe,EAAE,UAAU;QAClC,MAAM,EAAE,eAAe,CAAC,UAAU;AAClC,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,UAAU,IAAI,EAAE;AAC7D,QAAA,eAAe,EAAE,yBAAyB,CAAC,UAAU,IAAI,EAAE;AAC3D,QAAA,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KACpDiD,iBAAyB,CACrB,OAAO,CAAC;YACJ,WAAW;AACX,YAAA,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,IAAI,QAAQ;AAC/D,SAAA,CAAC,EACF,WAAW,EACX,yBAAyB,CAC5B,CAAC;AACE,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;YAChB,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,KACvB,CAAC,OAAO,CAAC;gBACL,WAAW;AACX,gBAAA,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,IAAI,IAAI;aAC1D,CAAC;YACN,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,KACxB,CAAC,OAAO,CAAC;gBACL,WAAW;AACX,gBAAA,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,IAAI,QAAQ;aAC/D,CAAC,IAAI,SAAS,CAAC,SAAS;YAC7B,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,KACpB,CAAC,OAAO,CAAC;gBACL,WAAW;AACX,gBAAA,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,QAAQ;aAC3D,CAAC,IAAI,KAAK,CAAC,SAAS;AAC5B,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,UAAU,CAAC,OAAO,EAAE;AACpB,QAAA,OAAO,UAAU;;;AAIrB,IAAA,MAAM,KAAK,GAAGjD,iBAA+B,CAM3C;AACE,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,KAAK,IAAI,EAAE;AACxD,QAAA,eAAe,EAAE,yBAAyB,CAAC,KAAK,IAAI,EAAE;QACtD,KAAK,EAAE,eAAe,EAAE,KAAK;QAC7B,MAAM,EAAE,eAAe,CAAC,KAAK;AAC7B,QAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpDkD,iBAAoB,CAAC;AACjB,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE,EAAE;AACzB,KAAA,CAAC;AACF,IAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACf,QAAA,OAAO,KAAK;;AAGhB,IAAA,MAAM,aAAa,GAAGlD,iBAA+B,CAMnD;AACE,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,aAAa,IAAI,EAAE;AAChE,QAAA,eAAe,EAAE,yBAAyB,CAAC,aAAa,IAAI,EAAE;QAC9D,KAAK,EAAE,eAAe,EAAE,aAAa;QACrC,MAAM,EAAE,eAAe,CAAC,aAAa;AACrC,QAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpD+C,iBAA0B,CAAC;AACvB,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;AAChB,YAAA,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;AAChD,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACvB,QAAA,OAAO,aAAa;;AAGxB,IAAA,MAAM,aAAa,GAAG/C,iBAA+B,CAMnD;AACE,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,aAAa,IAAI,EAAE;AAChE,QAAA,eAAe,EAAE,yBAAyB,CAAC,aAAa,IAAI,EAAE;QAC9D,KAAK,EAAE,eAAe,EAAE,aAAa;QACrC,MAAM,EAAE,eAAe,CAAC,aAAa;AACrC,QAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpD+C,iBAA0B,CAAC;AACvB,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;AAChB,YAAA,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;AAChD,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACvB,QAAA,OAAO,aAAa;;AAGxB,IAAA,MAAM,YAAY,GAAG/C,iBAA+B,CAMlD;AACE,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,YAAY,IAAI,EAAE;AAC/D,QAAA,eAAe,EAAE,yBAAyB,CAAC,YAAY,IAAI,EAAE;QAC7D,KAAK,EAAE,eAAe,EAAE,YAAY;QACpC,MAAM,EAAE,eAAe,CAAC,YAAY;AACpC,QAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KACzDsC,iBAA2B,CAAC;YACxB,WAAW;AACX,YAAA,cAAc,EAAE,GAAG;AACtB,SAAA,CAAC,CAAC;AACC,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE,EAAE;AACzB,KAAA,CAAC;AACF,IAAA,IAAI,YAAY,CAAC,OAAO,EAAE;AACtB,QAAA,OAAO,YAAY;;AAGvB,IAAA,MAAM,iBAAiB,GACnB,eAAe,CAAC,yBAAyB,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,IAAI;AACtE,IAAA,MAAM,SAAS,GAAGtC,iBAA+B,CAAC;AAC9C,QAAA,gBAAgB,EAAE,0BAA0B,CAAC,SAAS,IAAI,EAAE;AAC5D,QAAA,eAAe,EAAE,yBAAyB,CAAC,SAAS,IAAI,EAAE;QAC1D,KAAK,EAAE,eAAe,EAAE,SAAS;QACjC,MAAM,EAAE,eAAe,CAAC,SAAS;AACjC,QAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KACpDmD,iBAAyB,CAAC;YACtB,WAAW;AACd,SAAA,CAAC,CAAC;AACC,YAAA,0BAA0B,EAAE,SAAS;AACrC,YAAA,yBAAyB,EAAE,SAAS;AACpC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,MAAM;SAC1B,CAAC;AACN,QAAA,aAAa,EAAE,KAAK,IAAI,KAAK;AAC7B,QAAA,kBAAkB,EAAE;YAChB,YAAY,EAAE,MAAM,EAAE,OAAO,IAAI,iBAAiB,CAAC;YACnD,YAAY,EAAE,MAAM,EAAE,OAAO,IAAI,iBAAiB,CAAC;AACtD,SAAA;AACJ,KAAA,CAAC;AACF,IAAA,IAAI,SAAS,CAAC,OAAO,EAAE;AACnB,QAAA,OAAO,SAAS;;AAGpB,IAAA,MAAM,eAAe,GAAqC;AACtD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,IAAI,CAAC,KAAK;QAChB,MAAM,EAAE,MAAM,CAAC,KAAK;QACpB,UAAU,EAAE,UAAU,CAAC,KAAK;QAC5B,cAAc,EAAE,cAAc,CAAC,KAAK;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,aAAa,EAAE,aAAa,CAAC,KAAK;QAClC,aAAa,EAAE,aAAa,CAAC,KAAK;QAClC,YAAY,EAAE,YAAY,CAAC,KAAK;QAChC,SAAS,EAAE,SAAS,CAAC,KAAK;KAC7B;;AAGD,IAAA,IAAI,eAAe,CAAC,aAAa,IAAI,IAAI,EAAE;AACvC,QAAA,IACI,eAAe,CAAC,aAAa,CAAC,QAAQ,IAAI,IAAI;AAC9C,YAAA,YAAY,CAAC;gBACT,WAAW;AACX,gBAAA,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,QAAQ;AAC/C,gBAAA,gBAAgB,EAAE,yBAAyB;aAC9C,CAAC,KAAK,IAAI,EACb;AACE,YAAA,eAAe,CAAC,aAAa,GAAG5D,iBAAgC,CAAC;gBAC7D,KAAK,EAAE,eAAe,EAAE,aAAa;gBACrC,MAAM,EAAE,eAAe,CAAC,aAAa;gBACrC,SAAS,EAAE,0BAA0B,CAAC,aAAa;AACtD,aAAA,CAAC;;;AAIV,IAAA,MAAM,IAAI,GAAGnE,iBAA6B,CAAC;QACvC,KAAK,EAAE,eAAe,EAAE,IAAI;QAC5B,MAAM,EAAE,eAAe,CAAC,IAAI;QAC5B,SAAS,EAAE,0BAA0B,CAAC,IAAI;AAC7C,KAAA,CAAC;AACF,IAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,OAAO,IAAI;;AAEf,IAAA,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK;AAEjC,IAAA,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE;AAC3B,QAAA,MAAM,GAAG,GAAG,CAAe,YAAA,EAAA,CAAC,MAAe;AAC3C,QAAA,MAAM,WAAW,GAAGoE,iBAAqC,CAAC;AACtD,YAAA,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC;AAC7B,YAAA,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC;AAC5B,YAAA,SAAS,EAAE,0BAA0B,CAAC,GAAG,CAAC;AAC7C,SAAA,CAAC;AACF,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,YAAA,OAAO,WAAW;;AAEtB,QAAA,eAAe,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK;;AAG5C,IAAA,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE;AAC3B,QAAA,MAAM,GAAG,GAAG,CAAgB,aAAA,EAAA,CAAC,MAAe;AAC5C,QAAA,MAAM,WAAW,GAAGpE,iBAA6B,CAAC;AAC9C,YAAA,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC;AAC7B,YAAA,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC;AAC5B,YAAA,SAAS,EAAE,0BAA0B,CAAC,GAAG,CAAC;AAC7C,SAAA,CAAC;AACF,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACrB,YAAA,OAAO,WAAW;;AAEtB,QAAA,eAAe,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK;;AAG5C,IAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;AAC7B,QAAA,OAAOtD,aAAM,CAAC,EAAE,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAOA,aAAM,CAAC,EAAE,CAAC,eAAe,CAAC;AACrC;;ACxfG,MAAM6H,UAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,QAAQ,EAAE,0BAA0B,CAAC/H,KAAC,CAAC,OAAO,EAAE,CAAC;IACjD,KAAK,EAAE,0BAA0B,CAACA,KAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACzD,IAAA,MAAM,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AACjD,CAAA,EACD,CAAC,EACD,CAAC;;ACLE,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;IACI,GAAGE,aAAmB;IACtB,kBAAkB,EAAE,0BAA0B,CAAC,KAAK,CAACjI,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACjE,IAAA,KAAK,EAAE,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACvD,IAAA,SAAS,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AACrD,CAAA,EACD,CAAC,EACD,CAAC;;ACZE,MAAM,IAAI,GAAG;AAEpB,MAAM,KAAK,GAAGA,KAAC,CAAC,MAAM,CAAC;AACnB,IAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,IAAI,CAAC;;AAGrB,IAAA,IAAI,EAAEA,KAAC,CAAC,MAAM,EAAE;AACnB,CAAA,CAAC;AAEK,MAAM,KAAK,GAAG;;ACNd,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,KAAK,EAAE,0BAA0B,CAAC,KAAK,CAAC;IACxC,IAAI,EAAE,0BAA0B,CAAC,KAAK,CAAC/H,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,MAAM,EAAE,0BAA0B,CAAC,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,WAAW,EAAE,0BAA0B,CAAC,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7D,CAAA,EACD,CAAC,EACD,CAAC;;ACJE,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;IACI,GAAGE,aAAmB;IACtB,kBAAkB,EAAE,0BAA0B,CAACjI,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AACrE,IAAA,SAAS,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AAElD;;;;AAIK;AACL,IAAA,MAAM,EAAE,yBAAyB,CAACwL,UAAc,CAAC;AACpD,CAAA,EACD,CAAC,EACD,CAAC;;ACdE,MAAM,MAAM,GAAG;AACf,MAAM,MAAM,GAAG;AAEtB,MAAM,cAAc,GAAGxL,KAAC,CAAC,KAAK,CAAC,CAACA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAE/D,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;IACI,GAAGE,aAAmB;IACtB,gBAAgB,EAAE,0BAA0B,CAAC,KAAK,CAACjI,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/D,IAAA,cAAc,EAAE,0BAA0B,CAACA,KAAC,CAAC,OAAO,EAAE,CAAC;AACvD,IAAA,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC;AACrC,IAAA,cAAc,EAAE,0BAA0B,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACpE,CAAA,EACD,CAAC,EACD,CAAC;;ACTE,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,eAAe,EAAE,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACjE,IAAA,mBAAmB,EAAE,0BAA0B,CAAC/H,KAAC,CAAC,MAAM,EAAE,CAAC;AAC3D,IAAA,eAAe,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AACvD,IAAA,UAAU,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AAClD,IAAA,WAAW,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AACnD,IAAA,WAAW,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AACnD,IAAA,YAAY,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AACpD,IAAA,SAAS,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AACjD,IAAA,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC;IACpC,kBAAkB,EAAE,0BAA0B,CAAC,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEjE,IAAA,UAAU,EAAE,yBAAyB,CAACyL,UAAkB,CAAC;AACzD,IAAA,WAAW,EAAE,yBAAyB,CAACC,UAAmB,CAAC;AAC3D,IAAA,WAAW,EAAE,yBAAyB,CAACC,UAAmB,CAAC;AAC3D,IAAA,YAAY,EAAE,yBAAyB,CAACC,UAAoB,CAAC;AAChE,CAAA,EACD,CAAC,EACD,CAAC;;AC1BE,MAAM,KAAK,GAAG;AACd,MAAM,QAAQ,GAAG;AAExB;;AAEG;AACH,MAAM,QAAQ,GAAG5L,KAAC,CAAC,KAAK,CAAC,CAACA,KAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAEA,KAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEjE;AACO,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC;AACpC,IAAA,GAAG,EAAE,0BAA0B,CAAC/H,KAAC,CAAC,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACpD,IAAA,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAEpC;;AAEG;AACH,IAAA,QAAQ,EAAE,0BAA0B,CAAC,QAAQ,CAAC;AACjD,CAAA,EACD,CAAC,EACD,CAAC;;AC1BE,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC;AACvC,CAAA,EACD,CAAC,EACD,CAAC;;ACJE,MAAMA,UAAQ,GAAG,yBAAyB,CAC7C;;IAEI,UAAU,EAAE,0BAA0B,CAAC/H,KAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAChE,CAAA,EACD,CAAC,EACD,CAAC,CACJ;;ACDD;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,WAAW,GAAGA,KAAC,CAAC,MAAM,CAAC;AACzB,IAAA,QAAQ,EAAEA,KAAC,CAAC,MAAM,EAAE;AAEpB;;;;AAIG;AACH,IAAA,MAAM,EAAEA,KAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC9B,CAAA,CAAC;AAEF,MAAM,WAAW,GAAGA,KAAC,CAAC,MAAM,CAAC;AACzB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAEA,KAAC,CAAC,MAAM,EAAE;AACrB,CAAA,CAAC;AAEF;AACO,MAAM+H,UAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,SAAS,EAAE,0BAA0B,CAAC/H,KAAC,CAAC,MAAM,EAAE,CAAC;;AAGjD,IAAA,SAAS,EAAE,0BAA0B,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC;AAEjD;;;;AAIG;AACH,IAAA,WAAW,EAAE,0BAA0B,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AAE/D;;;;;;AAMG;AACH,IAAA,YAAY,EAAE,yBAAyB,CAAC6L,UAA4B,CAAC;;;AAIrE,IAAA,WAAW,EAAE,0BAA0B,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AAClE,CAAA,EACD,CAAC,EACD,CAAC,CACJ;;AC/CD,MAAM,YAAY,GAAG;IACjB,aAAa,EAAE,0BAA0B,CAAC,KAAK,CAAC7L,KAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,IAAI,EAAE,yBAAyB,CAAC8L,UAAY,CAAC;IAC7C,cAAc,EAAE,yBAAyB,CAACC,UAAmB,CAAC;IAC9D,MAAM,EAAE,yBAAyB,CAACC,UAAc,CAAC;IACjD,UAAU,EAAE,yBAAyB,CAACC,UAAkB,CAAC;AACzD,IAAA,iBAAiB,EAAE,uBAAuB,CAAC,IAAI,CAAC;AAChD,IAAA,iBAAiB,EAAE,uBAAuB,CAAC,IAAI,CAAC;AAChD,IAAA,iBAAiB,EAAE,uBAAuB,CAAC,IAAI,CAAC;AAChD,IAAA,iBAAiB,EAAE,uBAAuB,CAAC,IAAI,CAAC;AAChD,IAAA,iBAAiB,EAAE,uBAAuB,CAAC,IAAI,CAAC;AAChD,IAAA,iBAAiB,EAAE,uBAAuB,CAAC,IAAI,CAAC;AAChD,IAAA,iBAAiB,EAAE,uBAAuB,CAAC,IAAI,CAAC;AAChD,IAAA,iBAAiB,EAAE,uBAAuB,CAAC,IAAI,CAAC;AAChD,IAAA,iBAAiB,EAAE,uBAAuB,CAAC,IAAI,CAAC;AAChD,IAAA,kBAAkB,EAAE,uBAAuB,CAAC,IAAI,CAAC;IACjD,KAAK,EAAE,yBAAyB,CAACC,UAAa,CAAC;IAC/C,aAAa,EAAE,yBAAyB,CAACH,UAAmB,CAAC;IAC7D,SAAS,EAAE,yBAAyB,CAACI,UAAiB,CAAC;AACvD,IAAA,kBAAkB,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAClD,IAAA,kBAAkB,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAClD,IAAA,kBAAkB,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAClD,IAAA,kBAAkB,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAClD,IAAA,kBAAkB,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAClD,IAAA,kBAAkB,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAClD,IAAA,kBAAkB,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAClD,IAAA,kBAAkB,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAClD,IAAA,kBAAkB,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAClD,IAAA,mBAAmB,EAAE,uBAAuB,CAAC,KAAK,CAAC;IACnD,aAAa,EAAE,yBAAyB,CAACJ,UAAmB,CAAC;CAChE;AAEM,MAAM,UAAU,GAAG,yBAAyB,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;AAEtE;AACO,MAAM,QAAQ,GAAG,yBAAyB,CAC7C;AACI,IAAA,GAAG,YAAY;AACf,IAAA,SAAS,EAAE,0BAA0B,CAAC/L,KAAC,CAAC,MAAM,EAAE,CAAC;AACjD,IAAA,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC;AACpC,IAAA,YAAY,EAAE,yBAAyB,CAACoM,UAAoB,CAAC;AAChE,CAAA,EACD,CAAC,EACD,CAAC;;AC5CE,MAAM,WAAW,GAAG,CAAC,MAAe,KAAe;IACtD,OAAO,KAAK,CAACC,QAAa,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AAC7C,CAAC;AAEY,MAAA,UAAU,GAAG,CAAC,MAAc,KAAe;IACpD,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC1C;AAEa,MAAA,cAAc,GAAG,CAAC,MAAiB,KAAY;AACxD,IAAA,MAAM,MAAM,GAAG,KAAK,CAACA,QAAa,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACjD,IAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AACjC;AAEa,MAAA,aAAa,GAAG,CAAC,MAAe,KAAiB;IAC1D,OAAO,KAAK,CAACC,UAAe,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AAC/C;AAEa,MAAA,YAAY,GAAG,CAAC,MAAmB,KAAiB;IAC7D,OAAO,KAAK,CAACA,UAAe,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AAC/C;AAEA,MAAM,iBAAiB,GAAG,CAAC,MAAe,KAAqB;IAC3D,OAAO,WAAW,CAACD,QAAa,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACnD,CAAC;AAEY,MAAA,gBAAgB,GAAG,CAAC,MAAc,KAAqB;IAChE,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAChD;AAEa,MAAA,oBAAoB,GAAG,CAAC,MAAuB,KAAY;AACpE,IAAA,MAAM,MAAM,GAAG,WAAW,CAACA,QAAa,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACvD,IAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AACjC;AAEa,MAAA,mBAAmB,GAAG,CAAC,MAAe,KAAuB;IACtE,OAAO,aAAa,CAACA,QAAa,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACrD;AAEa,MAAA,kBAAkB,GAAG,CAAC,MAAyB,KAAuB;IAC/E,OAAO,aAAa,CAACA,QAAa,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACrD;;ACrDO,MAAM,eAAe,GAAG,CAK3B,OAAiB,EACjB,QAAmB,EACnB,KAAa,KAEbrM;KACK,MAAM,CAAC,KAAK;AACZ,KAAA,OAAO;AACP,KAAA,KAAK,CACFA,KAAC,CAAC,MAAM,CAAC;AACL,IAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AACtB,IAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC1B,CAAA,CAAC,CACL;;ACnBF,MAAM,UAAU,GAAG;AACnB,MAAM,UAAU,GAAG;AACnB,MAAM,UAAU,GAAG;;ACsB1B,MAAM,mBAAmB,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;AAC9C,IAAA,OAAO,EAAEA,KAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAEuM,OAAqB,EAAE,CAAC;AACtD,IAAA,qBAAqB,EAAEvM,KAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AAChE,IAAA,cAAc,EAAEA,KAAC,CAAC,OAAO,EAAE;AAC9B,CAAA,CAAC;AAIF,MAAMkB,QAAM,GAAGlB;AACV,KAAA,MAAM,CAAC;AACJ,IAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,IAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAEhB,IAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,UAAU,CAAC;CAC9B;AACA,KAAA,GAAG,CAAC,WAAW,CAAC,yBAAyB,CAACwM,aAA4B,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9E,KAAA,GAAG,CACAxM;AACK,KAAA,MAAM,CAAC;AACJ,IAAA,gBAAgB,EAAEA,KAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AAC3D,IAAA,IAAI,EAAE0D,QAAM,CACR,+BAA+B,CAC3B,KAAK,CAACwE,UAAsB,CAAC,EAC7B,mBAAmB,CACtB,CACJ;CACJ;KACA,OAAO,EAAE,CACjB;AAEQ,MAAAuE,MAAI,GAAGzM,KAAC,CAAC,KAAK,CAAC;IACxBA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,QAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,UAAU,CAAC;AAC3B,QAAA,KAAK,EAAE,KAAK,CAAC0M,UAA4B,CAAC;KAC7C,CAAC;IACF1M,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,QAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,UAAU,CAAC;AAC3B,QAAA,KAAK,EAAE,KAAK,CAAC0M,UAA4B,CAAC;KAC7C,CAAC;IACFxL,QAAM;AACT,CAAA;AAIM,MAAMyL,aAAW,GAAG,CACvB,SAA+D,EAC/D,YAAwD,KAClD;AACN,IAAA,MAAM,MAAM,GAAG;QACX,GAAG,aAAa,CAACD,UAA4B,CAAC,CAAC,SAAS,CAAC;AACzD,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,IAAI,EAAE,UAAU;QAChB,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;AAC5C,QAAA,IAAI,EACA,SAAS,CAAC,IAAI,IAAI;AACd,cAAE;AACF,cAAEnH,kBAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,KAAI;AAC1C,gBAAA,QAAQ,OAAO,CAAC,IAAI;oBAChB,KAAKqH,QAAS,EAAE;AACZ,wBAAA,MAAM,gBAAgB,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC;AACvD,wBAAA,IAAI,gBAAgB,IAAI,IAAI,EAAE;AAC1B,4BAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;AAE7C,wBAAA,MAAM,MAAM,GAAwB;AAChC,4BAAA,EAAE,EAAE,CAAC;AACL,4BAAA,EAAE,EAAE,CAAC;AACL,4BAAA,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;AAC/B,4BAAA,qBAAqB,EACjB,OAAO,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI;AACrC,gCAAA,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ;AAClC,oCAAA,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;AAC9B,kCAAE;AACF,kCAAE;AACI,oCAAA,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;AACpC,0CAAE;0CACA,gBAAgB,CAAC,KAAK;AAC/B,iCAAA;AACX,4BAAA,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI;yBAC/C;wBACD,OAAO;AACH,4BAAA,IAAI,EAAEA,QAAS;4BACf,MAAM;yBACA;;oBAEd,KAAKC,SAAU,EAAE;wBACb,MAAM,QAAQ,GACV,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI;AACxB,8BAAE;AACF,8BAAE1E,eAAsB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;wBACjE,OAAO;AACH,4BAAA,IAAI,EAAE0E,SAAU;AAChB,4BAAA,OAAO,EAAE;gCACL,QAAQ;AACX,6BAAA;yBACK;;;AAGtB,aAAC,CAAC;KACN;AACV,IAAA,OAAOJ,MAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC7B,CAAC;;AC/HY,MAAAK,QAAM,GAAG,CAAC,MAAe,KAA2B;IAC7D,OAAOC,MAAqB,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9C;AAEa,MAAAC,OAAK,GAAG,CAAC,MAAc,KAA2B;IAC3D,OAAOF,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACrC;;ACMA,MAAM,MAAM,GAAG9M;AACV,KAAA,MAAM,CAAC;AACJ,IAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,IAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAEhB,IAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,UAAU,CAAC;CAC9B;AACA,KAAA,GAAG,CAAC,WAAW,CAAC,yBAAyB,CAACwM,aAA4B,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9E,KAAA,GAAG,CACAxM;AACK,KAAA,MAAM,CAAC;AACJ,IAAA,gBAAgB,EAAEA,KAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AAC3D,IAAA,qBAAqB,EAAEA,KAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAACA,KAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AAChE,IAAA,cAAc,EAAEA,KAAC,CAAC,OAAO,EAAE;CAC9B;KACA,OAAO,EAAE,CACjB;AAEQ,MAAA,IAAI,GAAGA,KAAC,CAAC,KAAK,CAAC;IACxBA,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,QAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,UAAU,CAAC;AAC3B,QAAA,KAAK,EAAE,KAAK,CAACiN,UAA8B,CAAC;KAC/C,CAAC;IACFjN,KAAC,CAAC,MAAM,CAAC;AACL,QAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,QAAA,EAAE,EAAEA,KAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,QAAA,IAAI,EAAEA,KAAC,CAAC,OAAO,CAAC,UAAU,CAAC;AAC3B,QAAA,KAAK,EAAE,KAAK,CAACiN,UAA8B,CAAC;KAC/C,CAAC;IACF,MAAM;AACT,CAAA;AAIM,MAAM,WAAW,GAAG,CACvB,SAAiE,EACjE,YAA0D,KACpD;AACN,IAAA,MAAM,MAAM,GAAG;QACX,GAAG,aAAa,CAACA,UAA8B,CAAC,CAAC,SAAS,CAAC;AAC3D,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,IAAI,EAAE,UAAU;QAChB,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;AAC5C,QAAA,cAAc,EAAE,SAAS,CAAC,KAAK,IAAI,IAAI;AACvC,QAAA,qBAAqB,EACjB,SAAS,CAAC,cAAc,IAAI,IAAI;YAChC,SAAS,CAAC,cAAc,CAAC,QAAQ,KAAK,SAAS,CAAC,cAAc,CAAC;AAC3D,cAAE;AACF,cAAE;AACI,gBAAA,QAAQ,EAAE,SAAS,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC,KAAK;AAC/E,aAAA;KACL;AACV,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC7B,CAAC;;ACpEY,MAAA,MAAM,GAAG,CAAC,MAAe,KAA8B;IAChE,OAAOC,IAAwB,CAAC,KAAK,CAAC,MAAM,CAAC;AACjD;AAEa,MAAA,KAAK,GAAG,CAAC,MAAc,KAA8B;IAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACrC;;ACkBa,MAAA,UAAU,GAAG,CAAC,EACvB,SAAS,EACT,SAAS,GAIZ,KAAI;AACD,IAAA,MAAM,UAAU,GAAGxG,MAAoB,CAGrC;AACE,QAAA,SAAS,EAAE,SAAS,CAAC,MAAM,IAAI,EAAE;AACjC,QAAA,SAAS,EAAE,SAAS,CAAC,MAAM,IAAI,EAAE;AACjC,QAAA,SAAS,EAAE,MAAM,IAAI,IAAI,CAACyG,UAAmB,CAAC,CAAC,MAAM,CAAC;AACzD,KAAA,CAAC;AACF,IAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AACpB,QAAA,OAAO,SAAS;;IAGpB,MAAM,aAAa,GAAuB,EAAE;IAC5C,MAAM,eAAe,GAAyB,EAAE;IAEhD7H,mBAAa,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,KAAI;AACxC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAKnE,SAAO,EAAE;AACvB,YAAAmE,mBAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAI;gBACtE,aAAa,CAAC,IAAI,CAAC;oBACf,OAAO;oBACP,OAAO;AACP,oBAAA,KAAK,EAAE;AACH,wBAAA,EAAE,EAAE,CAAC;AACL,wBAAA,EAAE,EAAE,CAAC;AACL,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,KAAK,EAAEmD,eAAuB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC;AACvE,qBAAA;AACJ,iBAAA,CAAC;AACN,aAAC,CAAC;AACF,YAAAnD,mBAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAI;gBACtE,aAAa,CAAC,IAAI,CAAC;oBACf,OAAO;oBACP,OAAO;AACP,oBAAA,KAAK,EAAE;AACH,wBAAA,EAAE,EAAE,CAAC;AACL,wBAAA,EAAE,EAAE,CAAC;AACL,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,KAAK,EAAEmD,eAAuB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC;AACvE,qBAAA;AACJ,iBAAA,CAAC;AACN,aAAC,CAAC;AAEF,YAAAnD,mBAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAI;gBACxE,eAAe,CAAC,IAAI,CAAC;oBACjB,OAAO;oBACP,OAAO;AACP,oBAAA,KAAK,EAAE;AACH,wBAAA,EAAE,EAAE,CAAC;AACL,wBAAA,EAAE,EAAE,CAAC;AACL,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,KAAK,EAAEsD,eAAyB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC;AACzE,qBAAA;AACJ,iBAAA,CAAC;AACN,aAAC,CAAC;AACF,YAAAtD,mBAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAI;gBACxE,eAAe,CAAC,IAAI,CAAC;oBACjB,OAAO;oBACP,OAAO;AACP,oBAAA,KAAK,EAAE;AACH,wBAAA,EAAE,EAAE,CAAC;AACL,wBAAA,EAAE,EAAE,CAAC;AACL,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,KAAK,EAAEsD,eAAyB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC;AACzE,qBAAA;AACJ,iBAAA,CAAC;AACN,aAAC,CAAC;YAEF;;AAGJ,QAAA,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC;AACnD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;;AAGxE,QAAAtD,mBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,KAAI;AAC/D,YAAA,IAAI,SAAS,CAAC,IAAI,KAAKnE,SAAO,EAAE;gBAC5B,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;oBACpC,aAAa,CAAC,IAAI,CAAC;wBACf,OAAO;wBACP,OAAO;AACP,wBAAA,KAAK,EAAE;AACH,4BAAA,EAAE,EAAE,CAAC;AACL,4BAAA,EAAE,EAAE,CAAC;AACL,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,KAAK,EAAEsH,eAAuB,CAC1B,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,SAAS,CACZ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;AAChC,yBAAA;AACJ,qBAAA,CAAC;;gBAEN,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;oBACpC,aAAa,CAAC,IAAI,CAAC;wBACf,OAAO;wBACP,OAAO;AACP,wBAAA,KAAK,EAAE;AACH,4BAAA,EAAE,EAAE,CAAC;AACL,4BAAA,EAAE,EAAE,CAAC;AACL,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,KAAK,EAAEA,eAAuB,CAC1B,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,SAAS,CACZ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;AAChC,yBAAA;AACJ,qBAAA,CAAC;;gBAGN;;AAGJ,YAAA,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,CAAC;AAC3D,YAAA,IAAI,aAAa,IAAI,IAAI,EAAE;AACvB,gBAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;YAE7C,aAAa,CAAC,IAAI,CAAC;gBACf,OAAO;gBACP,OAAO;gBACP,KAAK,EAAE2E,aAAwB,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;AACnE,aAAA,CAAC;AACN,SAAC,CAAC;AAEF,QAAA9H,mBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,KAAI;AACjE,YAAA,IAAI,SAAS,CAAC,IAAI,KAAKnE,SAAO,EAAE;gBAC5B,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;oBACpC,eAAe,CAAC,IAAI,CAAC;wBACjB,OAAO;wBACP,OAAO;AACP,wBAAA,KAAK,EAAE;AACH,4BAAA,EAAE,EAAE,CAAC;AACL,4BAAA,EAAE,EAAE,CAAC;AACL,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,KAAK,EAAEyH,eAAyB,CAC5B,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,SAAS,CACZ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;AAChC,yBAAA;AACJ,qBAAA,CAAC;;gBAEN,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;oBACpC,eAAe,CAAC,IAAI,CAAC;wBACjB,OAAO;wBACP,OAAO;AACP,wBAAA,KAAK,EAAE;AACH,4BAAA,EAAE,EAAE,CAAC;AACL,4BAAA,EAAE,EAAE,CAAC;AACL,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,KAAK,EAAEA,eAAyB,CAC5B,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,SAAS,CACZ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;AAChC,yBAAA;AACJ,qBAAA,CAAC;;gBAGN;;AAGJ,YAAA,MAAM,eAAe,GAAG,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,EAAE,OAAO,CAAC;AAC/D,YAAA,IAAI,eAAe,IAAI,IAAI,EAAE;AACzB,gBAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;YAE7C,eAAe,CAAC,IAAI,CAAC;gBACjB,OAAO;gBACP,OAAO;gBACP,KAAK,EAAEyE,WAA0B,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC;AACvE,aAAA,CAAC;AACN,SAAC,CAAC;AACN,KAAC,CAAC;IAEF,OAAO;QACH,aAAa;QACb,eAAe;KAClB;AACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ 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":"AAWA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAiB,MAAM,UAAU,CAAC;AAC1D,OAAO,EACH,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EAExB,OAAO,EACP,MAAM,EACT,MAAM,0BAA0B,CAAC;AAGlC,KAAK,sBAAsB,CAAC,QAAQ,EAAE,OAAO,IACvC;IACI,IAAI,EAAE,OAAO,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACnB,GACD;IACI,IAAI,EAAE,OAAO,OAAO,CAAC;IACrB,OAAO,EAAE,QAAQ,CAAC;CACrB,CAAC;AAER,KAAK,eAAe,CAAC,QAAQ,EAAE,OAAO,IAAI,MAAM,CAC5C,MAAM,EACN,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,SAAS,CACxD,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,MAAM,EAAE,UAAU,IAAI,MAAM,CACxD,MAAM,EACN,0BAA0B,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,SAAS,CAC7D,CAAC;AACF,MAAM,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,IAAI,MAAM,CACtD,MAAM,EACN,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,SAAS,CAC3D,CAAC;AACF,MAAM,MAAM,qBAAqB,CAAC,MAAM,EAAE,UAAU,IAAI,MAAM,CAC1D,MAAM,EACN,4BAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,SAAS,CAC/D,CAAC;AAEF,KAAK,aAAa,CAAC,MAAM,EAAE,gBAAgB,IAAI;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,4BAA4B,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,IAAI;IACxF,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,YAAY,CAAC;IACxB,SAAS,EAAE,YAAY,CAAC;CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,CAAC,IAAI,EAAE,YAAY,IAAI;IACjD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,KAAK,OAAO,CAAC;IAGvE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE;QACpB,GAAG,EAAE,IAAI,CAAC;QACV,SAAS,EAAE,YAAY,CAAC;QACxB,SAAS,EAAE,YAAY,CAAC;KAC3B,KAAK,OAAO,CAAC;IAEd,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,KAAK,OAAO,CAAC;CAC7E,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,aAAa,GAAI,YAAY,EAAE,YAAY,8CAIrD;IACC,WAAW,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IAGvD,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAGzD,aAAa,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,YAAY,CAAC;CACjF,6CAeA,CAAC;AAGF,eAAO,MAAM,OAAO,GAAI,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,mEAK3E;IACC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,eAAe,CAAC,0BAA0B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IACpF,YAAY,EAAE,CAAC,MAAM,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,EAAE,cAAc,CAAC;QAC9B,SAAS,EAAE,MAAM,CAAC;KACrB,KAAK,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;IACzF,SAAS,EAAE,CAAC,MAAM,EAAE;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACrB,KAAK,gBAAgB,GAAG,SAAS,CAAC;CACtC,KAAG,MAAM,CACN,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,EACvF,MAAM,GAAG,YAAY,CAmFxB,CAAC;AAGF,eAAO,MAAM,KAAK,GAAI,MAAM,EAAE,UAAU,EAAE,YAAY,kDAInD;IACC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,eAAe,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1E,UAAU,EAAE,CAAC,MAAM,EAAE;QACjB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,UAAU,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACrB,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;CAC/C,KAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAuCxD,CAAC;AAGF,eAAO,MAAM,SAAS,GAAI,MAAM,EAAE,cAAc,EAAE,YAAY,sDAI3D;IACC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,eAAe,CAAC,0BAA0B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAChF,cAAc,EAAE,CAAC,MAAM,EAAE;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,cAAc,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;KACjB,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;CAC/C,KAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAuCxD,CAAC;AAGF,eAAO,MAAM,OAAO,GAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,8GAO9C;IACC,KAAK,CAAC,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,qBAAqB,EAAE,CAAC,MAAM,EAAE;QAC5B,KAAK,EAAE,QAAQ,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACf,KAAK,MAAM,CAAC,QAAQ,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3C,oBAAoB,EAAE,CAAC,MAAM,EAAE;QAC3B,KAAK,EAAE,QAAQ,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACf,KAAK,MAAM,CAAC,QAAQ,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3C,oBAAoB,EAAE,CAAC,MAAM,EAAE;QAC3B,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,QAAQ,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACf,KAAK,MAAM,CAAC,QAAQ,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3C,mBAAmB,EAAE,CAAC,MAAM,EAAE;QAC1B,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACf,KAAK,MAAM,CAAC,OAAO,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;CAC7C,KAAG,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,CAkIhE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,EAAE,cAAc,EAAE,YAAY,6DAKtE;IACC,KAAK,CAAC,EAAE,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,CAAC,EAAE,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrD,cAAc,EAAE,CAAC,MAAM,EAAE;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,cAAc,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;KACjB,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;IAC5C,YAAY,EAAE,CAAC,MAAM,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,cAAc,CAAC;QACtB,MAAM,EAAE,cAAc,CAAC;KAC1B,KAAK,MAAM,CAAC,cAAc,GAAG,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;CACnE,KAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,SAAS,EAAE,MAAM,GAAG,YAAY,CAkCxF,CAAC;AAEF,KAAK,yBAAyB,CAC1B,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,IACZ;IACA,gBAAgB,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAChD,eAAe,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,iBAAiB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACzD,MAAM,CAAC,EAAE,iBAAiB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAC3D,yEAAyE;IACzE,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,YAAY,CAAC;IAClE,cAAc,EAAE,CACZ,MAAM,EAAE,4BAA4B,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,CAAC,GAAG;QACpF,GAAG,EAAE,MAAM,CAAC;KACf,KACA,MAAM,CAAC,eAAe,GAAG,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;IAChE,kBAAkB,EAAE,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAChE,CAAC;AA6JF,MAAM,MAAM,qBAAqB,CAC7B,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,IACZ,yBAAyB,CACzB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,CACf,GAAG;IACA,yDAAyD;IACzD,UAAU,CAAC,EAAE;QACT,2CAA2C;QAC3C,UAAU,EAAE,MAAM,CAAC;QAEnB,uEAAuE;QACvE,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACL,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,eAAe,GACxB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,mBAEJ,qBAAqB,CACzB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,CACf,KACF,MAAM,CACL,qBAAqB,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,SAAS,EAChE,MAAM,GAAG,YAAY,CAiCxB,CAAC;AAEF,KAAK,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE;IAC7F,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;CAC5B,KAAK,MAAM,CACR;IACI,UAAU,EAAE,eAAe,GAAG,SAAS,CAAC;IACxC,WAAW,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC7C,EACD,MAAM,CACT,CAAC;AAEF,KAAK,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB,KAAK,UAAU,GAAG,SAAS,CAAC;AAgH7B,eAAO,MAAM,eAAe,GAAI,MAAM,EAAE,UAAU,EAAE,YAAY,iEAM7D;IACC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,cAAc,EAAE,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACnF,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACvC,KAAG,MAAM,CACN;IACI,UAAU,EAAE,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC;IAC9D,WAAW,EAAE,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC;CAClE,EACD,MAAM,GAAG,YAAY,CAwDxB,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,MAAM,EAAE,UAAU,wCAIpC;IACC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,CAAC,MAAM,EAAE;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACrB,KAAK,UAAU,GAAG,SAAS,CAAC;CAChC,iFAmCA,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,uCAI5E;IACC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC,CAAC;IACnF,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACtC,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,WAAW,CAAC;CACzD,KAAG,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAkBhE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,uCAI9E;IACC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC,CAAC;IACrF,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACtC,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,WAAW,CAAC;CACzD,KAAG,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,OAAO,EAAE,WAAW,CAAC,CAkBlE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,sCAIxE;IACC,MAAM,EAAE,MAAM,CACV,MAAM,EACJ;QAAE,IAAI,EAAE,OAAO,OAAO,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,GAC5C;QAAE,IAAI,EAAE,OAAO,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAE,GACzC,SAAS,CACd,CAAC;IACF,UAAU,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC;IAC5C,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,QAAQ,CAAC;CAC5C,KAAG,MAAM,CACN,MAAM,EACN;IAAE,IAAI,EAAE,OAAO,OAAO,CAAC;IAAC,OAAO,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,CAK3F,CAAC"} \ 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":"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"} \ 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":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAiB,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AAGrD,KAAK,aAAa,CAAC,MAAM,EAAE,gBAAgB,IAAI;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACjD,CAAC;AACF,MAAM,MAAM,4BAA4B,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,IACpF,eAAe,CAAC,4BAA4B,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;AAElG,eAAO,MAAM,OAAO,GAAI,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,8FAI3E;IACC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;IAChD,YAAY,EAAE,CAAC,MAAM,EAAE;QACnB,aAAa,EAAE,cAAc,CAAC;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;KACf,KAAK,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;CAC5F,KAAG,MAAM,CACN,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,EACzE,MAAM,GAAG,YAAY,CAwCxB,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,MAAM,EAAE,YAAY,EAAE,YAAY,iFAKrD;IACC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC1C,UAAU,EAAE,CAAC,MAAM,EAAE;QACjB,SAAS,EAAE,YAAY,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;KACf,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC;CACxB,KAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAsBxD,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,MAAM,EAAE,cAAc,EAAE,YAAY,qFAK3D;IACC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;IAC5C,cAAc,EAAE,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,cAAc,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;KACf,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC;CACxB,KAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAsBxD,CAAC;AAGF,eAAO,MAAM,OAAO,GAAI,UAAU,EAAE,YAAY,6CAI7C;IACC,KAAK,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IACrC,YAAY,EAAE,CAAC,MAAM,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,UAAU,CAAC;QAClB,MAAM,EAAE,UAAU,CAAC;KACtB,KAAK,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;CAC/D,KAAG,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,SAAS,EAAE,MAAM,GAAG,YAAY,CAmCxE,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,eAAe,GACxB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,0KAQb;IACC,gBAAgB,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAChD,eAAe,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAC3C,cAAc,EAAE,CACZ,MAAM,EAAE,4BAA4B,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,CAAC,GAAG;QACpF,GAAG,EAAE,MAAM,CAAC;KACf,KACA,MAAM,CAAC,eAAe,GAAG,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;IAChE,YAAY,EAAE,YAAY,CAAC;CAC9B,KAAG,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,GAAG,SAAS,EAAE,MAAM,GAAG,YAAY,CAmC7E,CAAC;AAEF,KAAK,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE;IACtE,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,MAAM,CAAC,CAAC;AAElG,eAAO,MAAM,eAAe,GAAI,MAAM,EAAE,UAAU,EAAE,MAAM,oEAMvD;IACC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IACrC,cAAc,EAAE,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACjE,YAAY,EAAE,MAAM,CAAC;CACxB,KAAG,MAAM,CACN;IACI,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IACpD,WAAW,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;CACxD,EACD,MAAM,CAsDT,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,MAAM,EAAE,UAAU,wCAIpC;IACC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,CAAC,MAAM,EAAE;QAChB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,GAAG,EAAE,MAAM,CAAC;KACf,KAAK,UAAU,GAAG,SAAS,CAAC;CAChC,KAAG,eAAe,CAAC,UAAU,CAAC,GAAG,SA+BjC,CAAC"} \ 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":"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"} \ 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":"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"} \ 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":"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"} \ 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":"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"} \ 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":"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"} \ 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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAqB,MAAM,SAAS,CAAC;AAE7D,MAAM,MAAM,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI;IAC1B,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,IAC3C,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAC9B,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACtC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACtC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAErD,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,qBAAa,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM;IAExC,OAAO,CAAC,KAAK,CAAiC;gBAE3B,SAAS,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;IAQrE,OAAO,CAAC,MAAM,CAAC,SAAS;IAsBxB,OAAO,CAAC,MAAM,CAAC,MAAM;WAYP,QAAQ,CAAC,KAAK,SAAS,SAAS,EAAE,KAAK,SAAS,SAAS,EAAE,MAAM,EAC3E,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,GACrE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;IAiB5B,GAAG,CAAC,OAAO,EACd,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,OAAO,GACjE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;IAI7B,MAAM,CAAC,OAAO,EACjB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,GACzE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;IAI7B,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;IAIzC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,SAAS;IASjE,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;IAIpD,GAAG,CACN,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EACxC,KAAK,EAAE,MAAM,GACd,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;IAU5B,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO;IAYzD,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO;IAI9C,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAQzE,OAAO;IAIP,KAAK;IAIL,cAAc,CACjB,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,EAC1C,gBAAgB,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,MAAM,GAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAYzC,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEM,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,IAAI;IAM1E,MAAM,CAAC,OAAO,EACjB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,OAAO,EAChF,IAAI,EAAE,OAAO,GACd,OAAO;IAOH,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM;CAWnE;AAED,MAAM,MAAM,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,IAAI,CACvD,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAC1C,KAAK,GAAG,QAAQ,GAAG,YAAY,CAClC,GAAG;IACA,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAChF,UAAU,CAAC,GAAG,EAAE,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CAClE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QACrD,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,SACtC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAChD,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAoBzD,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAAI,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,WAChD,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WACpC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WACpC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAC9C,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,SAAS,CAAC,CAyBpF,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAAI,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,WACpD,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WACpC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WACpC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WACpC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAC9C,UAAU,CACT,KAAK,EACL,KAAK,EACL,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,SAAS,CAAC,CAc5E,CAAC"} \ 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