@dxos/plugin-chess 0.8.3 → 0.8.4-main.1068cf700f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/dist/lib/browser/ChessboardContainer-GNSIZKY7.mjs +80 -0
  2. package/dist/lib/browser/ChessboardContainer-GNSIZKY7.mjs.map +7 -0
  3. package/dist/lib/browser/blueprint-definition-YUKJZPOL.mjs +19 -0
  4. package/dist/lib/browser/blueprint-definition-YUKJZPOL.mjs.map +7 -0
  5. package/dist/lib/browser/blueprints/index.mjs +11 -0
  6. package/dist/lib/browser/blueprints/index.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-66H3V2YV.mjs +64 -0
  8. package/dist/lib/browser/chunk-66H3V2YV.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-H3NUMCQ6.mjs +21 -0
  10. package/dist/lib/browser/chunk-H3NUMCQ6.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  12. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-MABHE5SS.mjs +277 -0
  14. package/dist/lib/browser/chunk-MABHE5SS.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-PBRN5Q4R.mjs +227 -0
  16. package/dist/lib/browser/chunk-PBRN5Q4R.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-QGVMZ4PK.mjs +8 -0
  18. package/dist/lib/browser/chunk-QGVMZ4PK.mjs.map +7 -0
  19. package/dist/lib/browser/cli/index.mjs +29 -0
  20. package/dist/lib/browser/cli/index.mjs.map +7 -0
  21. package/dist/lib/browser/index.mjs +75 -72
  22. package/dist/lib/browser/index.mjs.map +4 -4
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/react-surface-C52R6BRL.mjs +38 -0
  25. package/dist/lib/browser/react-surface-C52R6BRL.mjs.map +7 -0
  26. package/dist/lib/browser/types/index.mjs +4 -9
  27. package/dist/lib/node-esm/ChessboardContainer-5OVYZMIW.mjs +81 -0
  28. package/dist/lib/node-esm/ChessboardContainer-5OVYZMIW.mjs.map +7 -0
  29. package/dist/lib/node-esm/blueprint-definition-4HZ2HWWC.mjs +20 -0
  30. package/dist/lib/node-esm/blueprint-definition-4HZ2HWWC.mjs.map +7 -0
  31. package/dist/lib/node-esm/blueprints/index.mjs +12 -0
  32. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  33. package/dist/lib/node-esm/chunk-3MAU6WHB.mjs +228 -0
  34. package/dist/lib/node-esm/chunk-3MAU6WHB.mjs.map +7 -0
  35. package/dist/lib/node-esm/chunk-F5OMIM4F.mjs +23 -0
  36. package/dist/lib/node-esm/chunk-F5OMIM4F.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  38. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  39. package/dist/lib/node-esm/chunk-IFK6UAKF.mjs +10 -0
  40. package/dist/lib/node-esm/chunk-IFK6UAKF.mjs.map +7 -0
  41. package/dist/lib/node-esm/chunk-OUNGNJFP.mjs +65 -0
  42. package/dist/lib/node-esm/chunk-OUNGNJFP.mjs.map +7 -0
  43. package/dist/lib/node-esm/chunk-V6MKXXPO.mjs +278 -0
  44. package/dist/lib/node-esm/chunk-V6MKXXPO.mjs.map +7 -0
  45. package/dist/lib/node-esm/cli/index.mjs +30 -0
  46. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  47. package/dist/lib/node-esm/index.mjs +75 -72
  48. package/dist/lib/node-esm/index.mjs.map +4 -4
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/react-surface-NW33JZ6J.mjs +39 -0
  51. package/dist/lib/node-esm/react-surface-NW33JZ6J.mjs.map +7 -0
  52. package/dist/lib/node-esm/types/index.mjs +4 -9
  53. package/dist/types/src/ChessPlugin.d.ts +2 -1
  54. package/dist/types/src/ChessPlugin.d.ts.map +1 -1
  55. package/dist/types/src/blueprints/chess-blueprint.d.ts +21 -0
  56. package/dist/types/src/blueprints/chess-blueprint.d.ts.map +1 -0
  57. package/dist/types/src/blueprints/functions/create.d.ts +15 -0
  58. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
  59. package/dist/types/src/blueprints/functions/index.d.ts +5 -0
  60. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
  61. package/dist/types/src/blueprints/functions/move.d.ts +16 -0
  62. package/dist/types/src/blueprints/functions/move.d.ts.map +1 -0
  63. package/dist/types/src/blueprints/functions/play.d.ts +17 -0
  64. package/dist/types/src/blueprints/functions/play.d.ts.map +1 -0
  65. package/dist/types/src/blueprints/functions/print.d.ts +8 -0
  66. package/dist/types/src/blueprints/functions/print.d.ts.map +1 -0
  67. package/dist/types/src/blueprints/index.d.ts +3 -0
  68. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +12 -0
  70. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  72. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +10 -0
  74. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  76. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/index.d.ts +2 -3
  78. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  80. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  82. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  83. package/dist/types/src/cli/index.d.ts +2 -0
  84. package/dist/types/src/cli/index.d.ts.map +1 -0
  85. package/dist/types/src/cli/plugin.d.ts +3 -0
  86. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  87. package/dist/types/src/components/Card.stories.d.ts +15 -0
  88. package/dist/types/src/components/Card.stories.d.ts.map +1 -0
  89. package/dist/types/src/components/Chessboard.d.ts +39 -0
  90. package/dist/types/src/components/Chessboard.d.ts.map +1 -0
  91. package/dist/types/src/components/Chessboard.stories.d.ts +43 -5
  92. package/dist/types/src/components/Chessboard.stories.d.ts.map +1 -1
  93. package/dist/types/src/components/ChessboardArticle.d.ts +6 -0
  94. package/dist/types/src/components/ChessboardArticle.d.ts.map +1 -0
  95. package/dist/types/src/components/ChessboardContainer.d.ts +7 -0
  96. package/dist/types/src/components/ChessboardContainer.d.ts.map +1 -0
  97. package/dist/types/src/components/Info.d.ts +21 -0
  98. package/dist/types/src/components/Info.d.ts.map +1 -0
  99. package/dist/types/src/components/index.d.ts +2 -5
  100. package/dist/types/src/components/index.d.ts.map +1 -1
  101. package/dist/types/src/index.d.ts +2 -0
  102. package/dist/types/src/index.d.ts.map +1 -1
  103. package/dist/types/src/meta.d.ts +2 -3
  104. package/dist/types/src/meta.d.ts.map +1 -1
  105. package/dist/types/src/translations.d.ts +25 -23
  106. package/dist/types/src/translations.d.ts.map +1 -1
  107. package/dist/types/src/types/Chess.d.ts +27 -0
  108. package/dist/types/src/types/Chess.d.ts.map +1 -0
  109. package/dist/types/src/types/index.d.ts +1 -2
  110. package/dist/types/src/types/index.d.ts.map +1 -1
  111. package/dist/types/tsconfig.tsbuildinfo +1 -1
  112. package/package.json +61 -35
  113. package/src/ChessPlugin.tsx +28 -53
  114. package/src/blueprints/chess-blueprint.ts +28 -0
  115. package/src/blueprints/functions/create.ts +38 -0
  116. package/src/blueprints/functions/index.ts +8 -0
  117. package/src/blueprints/functions/move.ts +48 -0
  118. package/src/blueprints/functions/play.ts +58 -0
  119. package/src/blueprints/functions/print.ts +42 -0
  120. package/src/blueprints/index.ts +6 -0
  121. package/src/capabilities/artifact-definition/artifact-definition.ts +135 -0
  122. package/src/capabilities/artifact-definition/index.ts +7 -0
  123. package/src/capabilities/blueprint-definition/blueprint-definition.ts +24 -0
  124. package/src/capabilities/blueprint-definition/index.ts +7 -0
  125. package/src/capabilities/index.ts +2 -5
  126. package/src/capabilities/react-surface/index.ts +7 -0
  127. package/src/capabilities/react-surface/react-surface.tsx +28 -0
  128. package/src/cli/index.ts +5 -0
  129. package/src/cli/plugin.ts +27 -0
  130. package/src/components/Card.stories.tsx +47 -0
  131. package/src/components/Chessboard.stories.tsx +37 -23
  132. package/src/components/Chessboard.tsx +190 -0
  133. package/src/components/ChessboardArticle.tsx +70 -0
  134. package/src/components/ChessboardContainer.tsx +40 -0
  135. package/src/components/Info.tsx +246 -0
  136. package/src/components/index.ts +2 -2
  137. package/src/index.ts +2 -0
  138. package/src/meta.ts +9 -7
  139. package/src/translations.ts +18 -7
  140. package/src/types/Chess.ts +58 -0
  141. package/src/types/index.ts +1 -2
  142. package/dist/lib/browser/ChessContainer-S72CLKGK.mjs +0 -101
  143. package/dist/lib/browser/ChessContainer-S72CLKGK.mjs.map +0 -7
  144. package/dist/lib/browser/artifact-definition-NLIDMZ42.mjs +0 -182
  145. package/dist/lib/browser/artifact-definition-NLIDMZ42.mjs.map +0 -7
  146. package/dist/lib/browser/chunk-5QBQW62M.mjs +0 -8
  147. package/dist/lib/browser/chunk-5QBQW62M.mjs.map +0 -7
  148. package/dist/lib/browser/chunk-6XPI4FTK.mjs +0 -61
  149. package/dist/lib/browser/chunk-6XPI4FTK.mjs.map +0 -7
  150. package/dist/lib/browser/chunk-KA3H3Z76.mjs +0 -65
  151. package/dist/lib/browser/chunk-KA3H3Z76.mjs.map +0 -7
  152. package/dist/lib/browser/intent-resolver-65W3KVTW.mjs +0 -28
  153. package/dist/lib/browser/intent-resolver-65W3KVTW.mjs.map +0 -7
  154. package/dist/lib/browser/react-surface-GYE5E74A.mjs +0 -42
  155. package/dist/lib/browser/react-surface-GYE5E74A.mjs.map +0 -7
  156. package/dist/lib/node/ChessContainer-EQUVXDJC.cjs +0 -123
  157. package/dist/lib/node/ChessContainer-EQUVXDJC.cjs.map +0 -7
  158. package/dist/lib/node/artifact-definition-VHJ54X2P.cjs +0 -196
  159. package/dist/lib/node/artifact-definition-VHJ54X2P.cjs.map +0 -7
  160. package/dist/lib/node/chunk-OTMP6HPY.cjs +0 -93
  161. package/dist/lib/node/chunk-OTMP6HPY.cjs.map +0 -7
  162. package/dist/lib/node/chunk-R6JAL3RE.cjs +0 -40
  163. package/dist/lib/node/chunk-R6JAL3RE.cjs.map +0 -7
  164. package/dist/lib/node/chunk-THN2FKB3.cjs +0 -86
  165. package/dist/lib/node/chunk-THN2FKB3.cjs.map +0 -7
  166. package/dist/lib/node/index.cjs +0 -121
  167. package/dist/lib/node/index.cjs.map +0 -7
  168. package/dist/lib/node/intent-resolver-BQGAQM27.cjs +0 -43
  169. package/dist/lib/node/intent-resolver-BQGAQM27.cjs.map +0 -7
  170. package/dist/lib/node/meta.json +0 -1
  171. package/dist/lib/node/react-surface-TZDWBTEY.cjs +0 -62
  172. package/dist/lib/node/react-surface-TZDWBTEY.cjs.map +0 -7
  173. package/dist/lib/node/types/index.cjs +0 -35
  174. package/dist/lib/node/types/index.cjs.map +0 -7
  175. package/dist/lib/node-esm/ChessContainer-KSLGJHPW.mjs +0 -102
  176. package/dist/lib/node-esm/ChessContainer-KSLGJHPW.mjs.map +0 -7
  177. package/dist/lib/node-esm/artifact-definition-CZGGG56Q.mjs +0 -183
  178. package/dist/lib/node-esm/artifact-definition-CZGGG56Q.mjs.map +0 -7
  179. package/dist/lib/node-esm/chunk-4V3WNUDH.mjs +0 -67
  180. package/dist/lib/node-esm/chunk-4V3WNUDH.mjs.map +0 -7
  181. package/dist/lib/node-esm/chunk-KHMDMPR2.mjs +0 -10
  182. package/dist/lib/node-esm/chunk-KHMDMPR2.mjs.map +0 -7
  183. package/dist/lib/node-esm/chunk-MVMMCPHE.mjs +0 -63
  184. package/dist/lib/node-esm/chunk-MVMMCPHE.mjs.map +0 -7
  185. package/dist/lib/node-esm/intent-resolver-6TYVNVEU.mjs +0 -29
  186. package/dist/lib/node-esm/intent-resolver-6TYVNVEU.mjs.map +0 -7
  187. package/dist/lib/node-esm/react-surface-LRFYFOFF.mjs +0 -43
  188. package/dist/lib/node-esm/react-surface-LRFYFOFF.mjs.map +0 -7
  189. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  190. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  191. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  192. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  193. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  194. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  195. package/dist/types/src/components/ChessComponent.d.ts +0 -6
  196. package/dist/types/src/components/ChessComponent.d.ts.map +0 -1
  197. package/dist/types/src/components/ChessContainer.d.ts +0 -8
  198. package/dist/types/src/components/ChessContainer.d.ts.map +0 -1
  199. package/dist/types/src/components/ChessPanel.d.ts +0 -11
  200. package/dist/types/src/components/ChessPanel.d.ts.map +0 -1
  201. package/dist/types/src/components/PlayerSelector.d.ts +0 -8
  202. package/dist/types/src/components/PlayerSelector.d.ts.map +0 -1
  203. package/dist/types/src/types/schema.d.ts +0 -29
  204. package/dist/types/src/types/schema.d.ts.map +0 -1
  205. package/dist/types/src/types/types.d.ts +0 -40
  206. package/dist/types/src/types/types.d.ts.map +0 -1
  207. package/src/capabilities/artifact-definition.ts +0 -124
  208. package/src/capabilities/intent-resolver.ts +0 -26
  209. package/src/capabilities/react-surface.tsx +0 -29
  210. package/src/components/ChessComponent.tsx +0 -54
  211. package/src/components/ChessContainer.tsx +0 -35
  212. package/src/components/ChessPanel.tsx +0 -67
  213. package/src/components/PlayerSelector.tsx +0 -80
  214. package/src/types/schema.ts +0 -34
  215. package/src/types/types.ts +0 -26
@@ -1,35 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import { getSpace } from '@dxos/react-client/echo';
8
- import { StackItem } from '@dxos/react-ui-stack';
9
-
10
- import { ChessComponent } from './ChessComponent';
11
- import { PlayerSelector } from './PlayerSelector';
12
- import { type ChessType } from '../types';
13
-
14
- const ChessContainer = ({ game }: { game: ChessType; role?: string }) => {
15
- const space = getSpace(game);
16
- if (!space) {
17
- return null;
18
- }
19
-
20
- return (
21
- <StackItem.Content>
22
- <div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>
23
- <div />
24
-
25
- <div className='flex m-4 overflow-hidden'>
26
- <ChessComponent game={game} />
27
- </div>
28
-
29
- <PlayerSelector space={space} game={game} />
30
- </div>
31
- </StackItem.Content>
32
- );
33
- };
34
-
35
- export default ChessContainer;
@@ -1,67 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { ArrowURightDown, Circle } from '@phosphor-icons/react';
6
- import { type Color } from 'chess.js';
7
- import React, { type FC } from 'react';
8
-
9
- import { type ThemedClassName } from '@dxos/react-ui';
10
- import { type ChessModel } from '@dxos/react-ui-gameboard';
11
- import { getSize, mx } from '@dxos/react-ui-theme';
12
-
13
- export type ChessPanelProps = ThemedClassName<{
14
- model: ChessModel;
15
- orientation?: Color;
16
- onFlip?: () => void;
17
- }>;
18
-
19
- export const ChessPanel: FC<ChessPanelProps> = ({ classNames, model, orientation = 'w', onFlip }) => {
20
- const game = model.game;
21
- const history = game.history();
22
- const label = game.isGameOver()
23
- ? game.isCheckmate()
24
- ? 'CHECKMATE'
25
- : game.isStalemate()
26
- ? 'STALEMATE'
27
- : 'DRAW'
28
- : game.isCheck()
29
- ? 'CHECK'
30
- : history.length
31
- ? `Move ${history.length}`
32
- : '';
33
-
34
- const Player = ({ color }: { color: Color }) => {
35
- const turn = color === game.turn();
36
-
37
- return (
38
- <div className='flex items-center'>
39
- <Circle
40
- className={mx(getSize(4), turn && (game.isCheckmate() ? 'text-red-500' : 'text-green-500'))}
41
- weight={turn ? 'fill' : 'thin'}
42
- />
43
- </div>
44
- );
45
- };
46
-
47
- return (
48
- <div className={mx('flex flex-col', classNames)}>
49
- <div className='flex items-center justify-between pl-2 pr-2 border-b' style={{ height: 32 }}>
50
- <Player color={orientation === 'w' ? 'b' : 'w'} />
51
- {onFlip && (
52
- <button onClick={onFlip}>
53
- <ArrowURightDown weight='thin' className={getSize(6)} />
54
- </button>
55
- )}
56
- </div>
57
-
58
- <div className='flex flex-col justify-center pl-2 font-thin' style={{ height: 40 }}>
59
- {label}
60
- </div>
61
-
62
- <div className='flex items-center justify-between pl-2 pr-2 border-t' style={{ height: 32 }}>
63
- <Player color={orientation} />
64
- </div>
65
- </div>
66
- );
67
- };
@@ -1,80 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { CrownCross } from '@phosphor-icons/react';
6
- import React from 'react';
7
-
8
- import { generateName } from '@dxos/display-name';
9
- import { useMembers, type Space, type SpaceMember } from '@dxos/react-client/echo';
10
- import { Input, Select, useThemeContext } from '@dxos/react-ui';
11
- import { getSize, mx } from '@dxos/react-ui-theme';
12
-
13
- import { type ChessType } from '../types';
14
-
15
- export const PlayerSelector = ({ space, game }: { space: Space; game: ChessType }) => {
16
- const members = useMembers(space.key);
17
-
18
- return (
19
- <div role='none' className='grid grid-cols-2 gap-8'>
20
- <div role='none' className='flex flex-row-reverse items-center gap-2'>
21
- <PlayerSelect
22
- side='white'
23
- value={game.playerWhite}
24
- onValueChange={(player) => (game.playerWhite = player)}
25
- members={members}
26
- />
27
- </div>
28
- <div role='none' className='flex flex-row items-center gap-2'>
29
- <PlayerSelect
30
- side='black'
31
- value={game.playerBlack}
32
- onValueChange={(player) => (game.playerBlack = player)}
33
- members={members}
34
- />
35
- </div>
36
- </div>
37
- );
38
- };
39
-
40
- const PlayerSelect = ({
41
- side,
42
- value,
43
- onValueChange,
44
- members,
45
- }: {
46
- side: 'white' | 'black';
47
- value: string | undefined;
48
- onValueChange: (player: string) => void;
49
- members: SpaceMember[];
50
- }) => {
51
- const { themeMode } = useThemeContext();
52
- const iconFillMode =
53
- (side === 'black' && themeMode === 'light') || (side === 'white' && themeMode === 'dark') ? 'fill' : undefined;
54
-
55
- return (
56
- <Input.Root>
57
- <Input.Label>
58
- <CrownCross className={mx(getSize(6))} weight={iconFillMode} aria-label={`Chess icon for side ${side}`} />
59
- </Input.Label>
60
- <Select.Root value={value} onValueChange={onValueChange}>
61
- <Select.TriggerButton placeholder={'Select player'} />
62
- <Select.Portal>
63
- <Select.Content>
64
- <Select.Viewport>
65
- {members.map((member) => {
66
- const memberKey = member.identity.identityKey.toHex();
67
- const displayName = member.identity?.profile?.displayName || generateName(memberKey);
68
- return (
69
- <Select.Option key={memberKey} value={memberKey}>
70
- {displayName}
71
- </Select.Option>
72
- );
73
- })}
74
- </Select.Viewport>
75
- </Select.Content>
76
- </Select.Portal>
77
- </Select.Root>
78
- </Input.Root>
79
- );
80
- };
@@ -1,34 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { Schema } from 'effect';
6
-
7
- import { Type } from '@dxos/echo';
8
-
9
- export const MoveSchema = Schema.mutable(
10
- Schema.partial(
11
- Schema.Struct({
12
- source: Schema.String,
13
- target: Schema.String,
14
- piece: Schema.String,
15
- }),
16
- ),
17
- );
18
-
19
- export const ChessType = Schema.Struct({
20
- name: Schema.optional(Schema.String),
21
- playerWhite: Schema.String,
22
- playerBlack: Schema.String,
23
- moves: Schema.mutable(Schema.Array(Schema.String)),
24
- // TODO(wittjosiah): Remove. Redundant with moves.
25
- pgn: Schema.String,
26
- fen: Schema.String,
27
- }).pipe(
28
- Schema.partial,
29
- Type.Obj({
30
- typename: 'dxos.org/type/Chess',
31
- version: '0.1.0',
32
- }),
33
- );
34
- export interface ChessType extends Schema.Schema.Type<typeof ChessType> {}
@@ -1,26 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { Schema } from 'effect';
6
-
7
- import { Obj } from '@dxos/echo';
8
-
9
- import { ChessType } from './schema';
10
- import { CHESS_PLUGIN } from '../meta';
11
-
12
- export namespace ChessAction {
13
- const CHESS_ACTION = `${CHESS_PLUGIN}/action`;
14
-
15
- export class Create extends Schema.TaggedClass<Create>()(`${CHESS_ACTION}/create`, {
16
- input: Schema.Struct({
17
- name: Schema.optional(Schema.String),
18
- fen: Schema.optional(Schema.String),
19
- }),
20
- output: Schema.Struct({
21
- object: ChessType,
22
- }),
23
- }) {}
24
- }
25
-
26
- export const isObject = Obj.instanceOf(ChessType);