manga-renderer 1.0.0

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 (148) hide show
  1. package/LICENSE +17 -0
  2. package/README.md +118 -0
  3. package/dist/index.d.ts +28 -0
  4. package/dist/index.js +184 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/lib/book/book.d.ts +133 -0
  7. package/dist/lib/book/book.js +329 -0
  8. package/dist/lib/book/book.js.map +1 -0
  9. package/dist/lib/book/envelope.d.ts +26 -0
  10. package/dist/lib/book/envelope.js +158 -0
  11. package/dist/lib/book/envelope.js.map +1 -0
  12. package/dist/lib/book/imagePacking.d.ts +10 -0
  13. package/dist/lib/book/imagePacking.js +213 -0
  14. package/dist/lib/book/imagePacking.js.map +1 -0
  15. package/dist/lib/book/layout.d.ts +41 -0
  16. package/dist/lib/book/layout.js +14 -0
  17. package/dist/lib/book/layout.js.map +1 -0
  18. package/dist/lib/book/notebook.d.ts +72 -0
  19. package/dist/lib/book/notebook.js +30 -0
  20. package/dist/lib/book/notebook.js.map +1 -0
  21. package/dist/lib/book/richChat.d.ts +36 -0
  22. package/dist/lib/book/richChat.js +87 -0
  23. package/dist/lib/book/richChat.js.map +1 -0
  24. package/dist/lib/book/storyboard.d.ts +125 -0
  25. package/dist/lib/book/storyboard.js +44 -0
  26. package/dist/lib/book/storyboard.js.map +1 -0
  27. package/dist/lib/layeredCanvas/dataModels/bubble.d.ts +96 -0
  28. package/dist/lib/layeredCanvas/dataModels/bubble.js +630 -0
  29. package/dist/lib/layeredCanvas/dataModels/bubble.js.map +1 -0
  30. package/dist/lib/layeredCanvas/dataModels/effect.d.ts +25 -0
  31. package/dist/lib/layeredCanvas/dataModels/effect.js +104 -0
  32. package/dist/lib/layeredCanvas/dataModels/effect.js.map +1 -0
  33. package/dist/lib/layeredCanvas/dataModels/film.d.ts +44 -0
  34. package/dist/lib/layeredCanvas/dataModels/film.js +172 -0
  35. package/dist/lib/layeredCanvas/dataModels/film.js.map +1 -0
  36. package/dist/lib/layeredCanvas/dataModels/frameTree.d.ts +99 -0
  37. package/dist/lib/layeredCanvas/dataModels/frameTree.js +861 -0
  38. package/dist/lib/layeredCanvas/dataModels/frameTree.js.map +1 -0
  39. package/dist/lib/layeredCanvas/dataModels/media.d.ts +39 -0
  40. package/dist/lib/layeredCanvas/dataModels/media.js +69 -0
  41. package/dist/lib/layeredCanvas/dataModels/media.js.map +1 -0
  42. package/dist/lib/layeredCanvas/layers/SampleLayer.d.ts +6 -0
  43. package/dist/lib/layeredCanvas/layers/SampleLayer.js +22 -0
  44. package/dist/lib/layeredCanvas/layers/SampleLayer.js.map +1 -0
  45. package/dist/lib/layeredCanvas/layers/arrayLayer.d.ts +49 -0
  46. package/dist/lib/layeredCanvas/layers/arrayLayer.js +364 -0
  47. package/dist/lib/layeredCanvas/layers/arrayLayer.js.map +1 -0
  48. package/dist/lib/layeredCanvas/layers/bubbleLayer.d.ts +97 -0
  49. package/dist/lib/layeredCanvas/layers/bubbleLayer.js +1418 -0
  50. package/dist/lib/layeredCanvas/layers/bubbleLayer.js.map +1 -0
  51. package/dist/lib/layeredCanvas/layers/floorLayer.d.ts +13 -0
  52. package/dist/lib/layeredCanvas/layers/floorLayer.js +64 -0
  53. package/dist/lib/layeredCanvas/layers/floorLayer.js.map +1 -0
  54. package/dist/lib/layeredCanvas/layers/frameLayer.d.ts +106 -0
  55. package/dist/lib/layeredCanvas/layers/frameLayer.js +1283 -0
  56. package/dist/lib/layeredCanvas/layers/frameLayer.js.map +1 -0
  57. package/dist/lib/layeredCanvas/layers/inlinePainterLayer.d.ts +33 -0
  58. package/dist/lib/layeredCanvas/layers/inlinePainterLayer.js +222 -0
  59. package/dist/lib/layeredCanvas/layers/inlinePainterLayer.js.map +1 -0
  60. package/dist/lib/layeredCanvas/layers/paperRendererLayer.d.ts +64 -0
  61. package/dist/lib/layeredCanvas/layers/paperRendererLayer.js +443 -0
  62. package/dist/lib/layeredCanvas/layers/paperRendererLayer.js.map +1 -0
  63. package/dist/lib/layeredCanvas/layers/undoLayer.d.ts +8 -0
  64. package/dist/lib/layeredCanvas/layers/undoLayer.js +24 -0
  65. package/dist/lib/layeredCanvas/layers/undoLayer.js.map +1 -0
  66. package/dist/lib/layeredCanvas/system/keyCache.d.ts +4 -0
  67. package/dist/lib/layeredCanvas/system/keyCache.js +61 -0
  68. package/dist/lib/layeredCanvas/system/keyCache.js.map +1 -0
  69. package/dist/lib/layeredCanvas/system/layeredCanvas.d.ts +172 -0
  70. package/dist/lib/layeredCanvas/system/layeredCanvas.js +597 -0
  71. package/dist/lib/layeredCanvas/system/layeredCanvas.js.map +1 -0
  72. package/dist/lib/layeredCanvas/system/paperArray.d.ts +29 -0
  73. package/dist/lib/layeredCanvas/system/paperArray.js +108 -0
  74. package/dist/lib/layeredCanvas/system/paperArray.js.map +1 -0
  75. package/dist/lib/layeredCanvas/tools/draw/bubbleGraphic.d.ts +7 -0
  76. package/dist/lib/layeredCanvas/tools/draw/bubbleGraphic.js +728 -0
  77. package/dist/lib/layeredCanvas/tools/draw/bubbleGraphic.js.map +1 -0
  78. package/dist/lib/layeredCanvas/tools/draw/clickableIcon.d.ts +42 -0
  79. package/dist/lib/layeredCanvas/tools/draw/clickableIcon.js +129 -0
  80. package/dist/lib/layeredCanvas/tools/draw/clickableIcon.js.map +1 -0
  81. package/dist/lib/layeredCanvas/tools/draw/drawFilmStack.d.ts +4 -0
  82. package/dist/lib/layeredCanvas/tools/draw/drawFilmStack.js +53 -0
  83. package/dist/lib/layeredCanvas/tools/draw/drawFilmStack.js.map +1 -0
  84. package/dist/lib/layeredCanvas/tools/draw/drawText.d.ts +8 -0
  85. package/dist/lib/layeredCanvas/tools/draw/drawText.js +45 -0
  86. package/dist/lib/layeredCanvas/tools/draw/drawText.js.map +1 -0
  87. package/dist/lib/layeredCanvas/tools/draw/richText.d.ts +15 -0
  88. package/dist/lib/layeredCanvas/tools/draw/richText.js +172 -0
  89. package/dist/lib/layeredCanvas/tools/draw/richText.js.map +1 -0
  90. package/dist/lib/layeredCanvas/tools/draw/selectionFrame.d.ts +5 -0
  91. package/dist/lib/layeredCanvas/tools/draw/selectionFrame.js +63 -0
  92. package/dist/lib/layeredCanvas/tools/draw/selectionFrame.js.map +1 -0
  93. package/dist/lib/layeredCanvas/tools/draw/typeSetting.d.ts +16 -0
  94. package/dist/lib/layeredCanvas/tools/draw/typeSetting.js +2 -0
  95. package/dist/lib/layeredCanvas/tools/draw/typeSetting.js.map +1 -0
  96. package/dist/lib/layeredCanvas/tools/draw/verticalText.d.ts +3 -0
  97. package/dist/lib/layeredCanvas/tools/draw/verticalText.js +230 -0
  98. package/dist/lib/layeredCanvas/tools/draw/verticalText.js.map +1 -0
  99. package/dist/lib/layeredCanvas/tools/focusKeeper.d.ts +8 -0
  100. package/dist/lib/layeredCanvas/tools/focusKeeper.js +15 -0
  101. package/dist/lib/layeredCanvas/tools/focusKeeper.js.map +1 -0
  102. package/dist/lib/layeredCanvas/tools/frameExamples.d.ts +382 -0
  103. package/dist/lib/layeredCanvas/tools/frameExamples.js +758 -0
  104. package/dist/lib/layeredCanvas/tools/frameExamples.js.map +1 -0
  105. package/dist/lib/layeredCanvas/tools/geometry/bubbleGeometry.d.ts +12 -0
  106. package/dist/lib/layeredCanvas/tools/geometry/bubbleGeometry.js +117 -0
  107. package/dist/lib/layeredCanvas/tools/geometry/bubbleGeometry.js.map +1 -0
  108. package/dist/lib/layeredCanvas/tools/geometry/convertPoint.d.ts +2 -0
  109. package/dist/lib/layeredCanvas/tools/geometry/convertPoint.js +25 -0
  110. package/dist/lib/layeredCanvas/tools/geometry/convertPoint.js.map +1 -0
  111. package/dist/lib/layeredCanvas/tools/geometry/geometry.d.ts +69 -0
  112. package/dist/lib/layeredCanvas/tools/geometry/geometry.js +408 -0
  113. package/dist/lib/layeredCanvas/tools/geometry/geometry.js.map +1 -0
  114. package/dist/lib/layeredCanvas/tools/geometry/geometry.vitest.d.ts +1 -0
  115. package/dist/lib/layeredCanvas/tools/geometry/geometry.vitest.js +58 -0
  116. package/dist/lib/layeredCanvas/tools/geometry/geometry.vitest.js.map +1 -0
  117. package/dist/lib/layeredCanvas/tools/geometry/quickHull.d.ts +10 -0
  118. package/dist/lib/layeredCanvas/tools/geometry/quickHull.js +91 -0
  119. package/dist/lib/layeredCanvas/tools/geometry/quickHull.js.map +1 -0
  120. package/dist/lib/layeredCanvas/tools/geometry/trapezoid.d.ts +18 -0
  121. package/dist/lib/layeredCanvas/tools/geometry/trapezoid.js +105 -0
  122. package/dist/lib/layeredCanvas/tools/geometry/trapezoid.js.map +1 -0
  123. package/dist/lib/layeredCanvas/tools/grid.d.ts +7 -0
  124. package/dist/lib/layeredCanvas/tools/grid.js +16 -0
  125. package/dist/lib/layeredCanvas/tools/grid.js.map +1 -0
  126. package/dist/lib/layeredCanvas/tools/haiku.d.ts +1 -0
  127. package/dist/lib/layeredCanvas/tools/haiku.js +17 -0
  128. package/dist/lib/layeredCanvas/tools/haiku.js.map +1 -0
  129. package/dist/lib/layeredCanvas/tools/imageUtil.d.ts +8 -0
  130. package/dist/lib/layeredCanvas/tools/imageUtil.js +58 -0
  131. package/dist/lib/layeredCanvas/tools/imageUtil.js.map +1 -0
  132. package/dist/lib/layeredCanvas/tools/kinsoku.d.ts +26 -0
  133. package/dist/lib/layeredCanvas/tools/kinsoku.js +124 -0
  134. package/dist/lib/layeredCanvas/tools/kinsoku.js.map +1 -0
  135. package/dist/lib/layeredCanvas/tools/misc.d.ts +25 -0
  136. package/dist/lib/layeredCanvas/tools/misc.js +46 -0
  137. package/dist/lib/layeredCanvas/tools/misc.js.map +1 -0
  138. package/dist/lib/layeredCanvas/tools/perfectFreehandUtil.d.ts +2 -0
  139. package/dist/lib/layeredCanvas/tools/perfectFreehandUtil.js +21 -0
  140. package/dist/lib/layeredCanvas/tools/perfectFreehandUtil.js.map +1 -0
  141. package/dist/lib/layeredCanvas/tools/pictureControl.d.ts +4 -0
  142. package/dist/lib/layeredCanvas/tools/pictureControl.js +24 -0
  143. package/dist/lib/layeredCanvas/tools/pictureControl.js.map +1 -0
  144. package/dist/lib/layeredCanvas/tools/rectHandle.d.ts +6 -0
  145. package/dist/lib/layeredCanvas/tools/rectHandle.js +17 -0
  146. package/dist/lib/layeredCanvas/tools/rectHandle.js.map +1 -0
  147. package/dist/tsconfig.tsbuildinfo +1 -0
  148. package/package.json +64 -0
@@ -0,0 +1,213 @@
1
+ import { FrameElement } from "../layeredCanvas/dataModels/frameTree";
2
+ import { Bubble } from "../layeredCanvas/dataModels/bubble";
3
+ import { Film } from "../layeredCanvas/dataModels/film";
4
+ import { ImageMedia } from "../layeredCanvas/dataModels/media";
5
+ import { Effect } from "../layeredCanvas/dataModels/effect";
6
+ export async function dryUnpackFrameImages(paperSize, markUp, images) {
7
+ const dryLoadImage = async (imageId) => {
8
+ images.push(imageId);
9
+ return null;
10
+ };
11
+ await unpackFrameImages(paperSize, markUp, dryLoadImage);
12
+ }
13
+ export async function dryUnpackBubbleImages(paperSize, markUps, images) {
14
+ const dryLoadImage = async (imageId) => {
15
+ images.push(imageId);
16
+ return null;
17
+ };
18
+ await unpackBubbleImages(paperSize, markUps, dryLoadImage);
19
+ }
20
+ export async function unpackFrameImages(paperSize, markUp, loadCanvasFunc) {
21
+ const frameTree = FrameElement.compileNode(markUp);
22
+ frameTree.gallery = [];
23
+ if (markUp.image || markUp.scribble) {
24
+ if (typeof markUp.image === 'string' || typeof markUp.scribble === 'string') {
25
+ function newFilm(anyCanvas) {
26
+ const s_imageSize = Math.min(anyCanvas.width, anyCanvas.height);
27
+ const s_pageSize = Math.min(paperSize[0], paperSize[1]);
28
+ const scale = s_imageSize / s_pageSize;
29
+ const markUpScale = (markUp.scale ?? [1, 1])[0];
30
+ const n_scale = scale * markUpScale;
31
+ const markUpTranlation = markUp.translation ?? [0, 0];
32
+ const n_translation = [markUpTranlation[0] * scale, markUpTranlation[1] * scale];
33
+ const film = new Film(new ImageMedia(anyCanvas));
34
+ film.n_scale = n_scale;
35
+ film.n_translation = n_translation;
36
+ film.rotation = markUp.rotation;
37
+ film.reverse = [...(markUp.reverse ?? [1, 1])];
38
+ film.prompt = markUp.prompt;
39
+ return film;
40
+ }
41
+ // 初期バージョン処理
42
+ if (markUp.image) {
43
+ const canvas = await loadCanvasFunc(markUp.image);
44
+ if (canvas) {
45
+ const film = newFilm(canvas);
46
+ frameTree.gallery.push(canvas);
47
+ frameTree.filmStack.films.push(film);
48
+ }
49
+ }
50
+ if (markUp.scribble) {
51
+ const scribble = await loadCanvasFunc(markUp.scribble);
52
+ if (scribble) {
53
+ const film = newFilm(scribble);
54
+ frameTree.gallery.push(scribble);
55
+ frameTree.filmStack.films.push(film);
56
+ }
57
+ }
58
+ }
59
+ else {
60
+ // 前期バージョン処理
61
+ function newFilm(anyCanvas) {
62
+ const film = new Film(new ImageMedia(anyCanvas));
63
+ film.n_scale = markUp.image.n_scale;
64
+ film.n_translation = markUp.image.n_translation;
65
+ film.rotation = markUp.image.rotation;
66
+ film.reverse = [...markUp.image.reverse];
67
+ film.prompt = markUp.prompt;
68
+ return film;
69
+ }
70
+ if (markUp.image.image) {
71
+ const image = await loadCanvasFunc(markUp.image.image);
72
+ if (image) {
73
+ const film = newFilm(image);
74
+ frameTree.gallery.push(image);
75
+ frameTree.filmStack.films.push(film);
76
+ }
77
+ }
78
+ if (markUp.image.scribble) {
79
+ const scribble = await loadCanvasFunc(markUp.image.scribble);
80
+ if (scribble) {
81
+ const film = newFilm(scribble);
82
+ frameTree.gallery.push(scribble);
83
+ frameTree.filmStack.films.push(film);
84
+ }
85
+ }
86
+ }
87
+ }
88
+ else {
89
+ // Film版処理
90
+ if (markUp.films) {
91
+ const films = await unpackFilms(markUp.films, loadCanvasFunc);
92
+ frameTree.filmStack.films.push(...films);
93
+ }
94
+ }
95
+ const children = markUp.column ?? markUp.row;
96
+ if (children) {
97
+ frameTree.direction = markUp.column ? 'v' : 'h';
98
+ frameTree.children = [];
99
+ for (let child of children) {
100
+ frameTree.children.push(await unpackFrameImages(paperSize, child, loadCanvasFunc));
101
+ }
102
+ frameTree.calculateLengthAndBreadth();
103
+ }
104
+ // films内のimageをgalleryに格納
105
+ for (const film of frameTree.filmStack.films) {
106
+ if (film.media instanceof ImageMedia) {
107
+ frameTree.gallery.push(film.media.canvas);
108
+ }
109
+ }
110
+ return frameTree;
111
+ }
112
+ export async function unpackBubbleImages(paperSize, markUps, loadImageFunc) {
113
+ const unpackedBubbles = [];
114
+ for (const markUp of markUps) {
115
+ const bubble = Bubble.compile(paperSize, markUp);
116
+ const imageMarkUp = markUp.image;
117
+ if (imageMarkUp) {
118
+ const image = await loadImageFunc(imageMarkUp.image);
119
+ if (image) {
120
+ const s_imageSize = Math.min(image.width, image.height);
121
+ const s_pageSize = Math.min(paperSize[0], paperSize[1]);
122
+ let n_scale = imageMarkUp.n_scale;
123
+ if (!n_scale) {
124
+ const markUpScaleVector = imageMarkUp.scale ?? [1, 1];
125
+ const markUpScale = markUpScaleVector[0];
126
+ n_scale = s_imageSize / s_pageSize * markUpScale;
127
+ }
128
+ let n_translation = imageMarkUp.n_translation;
129
+ if (!n_translation) {
130
+ const markUpTranslationVector = imageMarkUp.translation ?? [0, 0];
131
+ const scale = s_imageSize / s_pageSize;
132
+ n_translation = [markUpTranslationVector[0] * scale, markUpTranslationVector[1] * scale];
133
+ }
134
+ const film = new Film(new ImageMedia(image));
135
+ film.n_scale = n_scale;
136
+ film.n_translation = n_translation;
137
+ bubble.filmStack.films.push(film);
138
+ bubble.scaleLock = imageMarkUp.scaleLock;
139
+ }
140
+ }
141
+ else if (markUp.films) {
142
+ const films = await unpackFilms(markUp.films, loadImageFunc);
143
+ bubble.filmStack.films = films;
144
+ }
145
+ unpackedBubbles.push(bubble);
146
+ }
147
+ // films内のimageをgalleryに格納
148
+ for (const bubble of unpackedBubbles) {
149
+ for (const film of bubble.filmStack.films) {
150
+ if (film.media instanceof ImageMedia) {
151
+ bubble.gallery.push(film.media.canvas);
152
+ }
153
+ }
154
+ }
155
+ return unpackedBubbles;
156
+ }
157
+ export async function packFilms(films, saveCanvasFunc) {
158
+ const packedFilms = [];
159
+ for (const film of films) {
160
+ if (!(film.media instanceof ImageMedia)) {
161
+ continue;
162
+ }
163
+ const effects = [];
164
+ for (const effect of film.effects) {
165
+ const markUp = effect.decompile();
166
+ effects.push({ tag: effect.tag, properties: markUp });
167
+ }
168
+ const canvas = film.media.canvas;
169
+ const fileId = await saveCanvasFunc(canvas);
170
+ const filmMarkUp = {
171
+ ulid: film.ulid,
172
+ image: fileId,
173
+ n_scale: film.n_scale,
174
+ n_translation: [...film.n_translation],
175
+ rotation: film.rotation,
176
+ reverse: [...film.reverse],
177
+ visible: film.visible,
178
+ prompt: film.prompt,
179
+ effects
180
+ };
181
+ packedFilms.push(filmMarkUp);
182
+ }
183
+ return packedFilms;
184
+ }
185
+ export async function unpackFilms(markUp, loadImageFunc) {
186
+ const films = [];
187
+ for (const filmMarkUp of markUp) {
188
+ const image = await loadImageFunc(filmMarkUp.image);
189
+ if (image) {
190
+ const effects = [];
191
+ if (filmMarkUp.effects) {
192
+ for (const effectMarkUp of filmMarkUp.effects) {
193
+ console.log("===============", effectMarkUp);
194
+ const effect = Effect.compile(effectMarkUp);
195
+ effects.push(effect);
196
+ }
197
+ }
198
+ const film = new Film(new ImageMedia(image));
199
+ if (filmMarkUp.ulid)
200
+ film.ulid = filmMarkUp.ulid;
201
+ film.n_scale = filmMarkUp.n_scale;
202
+ film.n_translation = filmMarkUp.n_translation;
203
+ film.rotation = filmMarkUp.rotation;
204
+ film.reverse = filmMarkUp.reverse;
205
+ film.visible = filmMarkUp.visible;
206
+ film.prompt = filmMarkUp.prompt;
207
+ film.effects = effects;
208
+ films.push(film);
209
+ }
210
+ }
211
+ return films;
212
+ }
213
+ //# sourceMappingURL=imagePacking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imagePacking.js","sourceRoot":"","sources":["../../../src/lib/book/imagePacking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import * as t from "io-ts";
2
+ export declare const LayoutColumn: import("typai").AnnotatedType<{
3
+ id: string;
4
+ ratio: number;
5
+ }, {
6
+ id: string;
7
+ ratio: number;
8
+ }, unknown>;
9
+ export type LayoutColumn = t.TypeOf<typeof LayoutColumn>;
10
+ export declare const LayoutRow: import("typai").AnnotatedType<{
11
+ columns: {
12
+ id: string;
13
+ ratio: number;
14
+ }[];
15
+ ratio: number;
16
+ }, {
17
+ columns: {
18
+ id: string;
19
+ ratio: number;
20
+ }[];
21
+ ratio: number;
22
+ }, unknown>;
23
+ export type LayoutRow = t.TypeOf<typeof LayoutRow>;
24
+ export declare const LayoutPage: import("typai").AnnotatedType<{
25
+ rows: {
26
+ columns: {
27
+ id: string;
28
+ ratio: number;
29
+ }[];
30
+ ratio: number;
31
+ }[];
32
+ }, {
33
+ rows: {
34
+ columns: {
35
+ id: string;
36
+ ratio: number;
37
+ }[];
38
+ ratio: number;
39
+ }[];
40
+ }, unknown>;
41
+ export type LayoutPage = t.TypeOf<typeof LayoutPage>;
@@ -0,0 +1,14 @@
1
+ import * as t from "io-ts";
2
+ import { annotate } from "typai";
3
+ export const LayoutColumn = annotate(t.type({
4
+ id: annotate(t.string, { description: "対応する入力要素のid" }),
5
+ ratio: annotate(t.number, { description: "兄弟間でのratio(weightに比例する)" }),
6
+ }), { description: "横方向要素、1~2要素 すべてのコマの重要度が低い場合は3要素も許される" });
7
+ export const LayoutRow = annotate(t.type({
8
+ columns: t.array(LayoutColumn),
9
+ ratio: annotate(t.number, { description: "兄弟間でのratio(weightに比例する)" }),
10
+ }), { description: "縦方向要素(段)、1~3要素" });
11
+ export const LayoutPage = annotate(t.type({
12
+ rows: t.array(LayoutRow),
13
+ }), { description: "ページ" });
14
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/lib/book/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAClC,CAAC,CAAC,IAAI,CAAC;IACL,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAC,WAAW,EAAE,aAAa,EAAC,CAAC;IACpD,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAC,WAAW,EAAE,yBAAyB,EAAC,CAAC;CACpE,CAAC,EACF,EAAC,WAAW,EAAE,sCAAsC,EAAC,CACtD,CAAC;AAGF,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAC/B,CAAC,CAAC,IAAI,CAAC;IACL,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAC,WAAW,EAAE,yBAAyB,EAAC,CAAC;CACpE,CAAC,EACF,EAAC,WAAW,EAAE,gBAAgB,EAAC,CAChC,CAAC;AAGF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAChC,CAAC,CAAC,IAAI,CAAC;IACL,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC,EACF,EAAC,WAAW,EAAE,KAAK,EAAC,CACrB,CAAC"}
@@ -0,0 +1,72 @@
1
+ import * as t from "io-ts";
2
+ export declare const Character: t.TypeC<{
3
+ ulid: import("typai").IgnoreType<string, string>;
4
+ name: t.StringC;
5
+ personality: t.StringC;
6
+ appearance: t.StringC;
7
+ themeColor: t.StringC;
8
+ portrait: import("typai").IgnoreType<any, any>;
9
+ }>;
10
+ export declare const Notebook: t.TypeC<{
11
+ theme: t.StringC;
12
+ characters: t.ArrayC<t.TypeC<{
13
+ ulid: import("typai").IgnoreType<string, string>;
14
+ name: t.StringC;
15
+ personality: t.StringC;
16
+ appearance: t.StringC;
17
+ themeColor: t.StringC;
18
+ portrait: import("typai").IgnoreType<any, any>;
19
+ }>>;
20
+ plot: t.StringC;
21
+ scenario: t.StringC;
22
+ storyboard: t.UnionC<[t.TypeC<{
23
+ format: import("typai").AnnotatedType<string, string, unknown>;
24
+ characters: t.ArrayC<import("typai").AnnotatedType<{
25
+ name: string;
26
+ appearance: string;
27
+ themeColor: string;
28
+ }, {
29
+ name: string;
30
+ appearance: string;
31
+ themeColor: string;
32
+ }, unknown>>;
33
+ pages: t.ArrayC<t.TypeC<{
34
+ panels: t.ArrayC<t.TypeC<{
35
+ composition: import("typai").AnnotatedType<string, string, unknown>;
36
+ camera: import("typai").AnnotatedType<string, string, unknown>;
37
+ bubbles: import("typai").AnnotatedType<{
38
+ owner: string;
39
+ speech: string;
40
+ color: string;
41
+ shape: string;
42
+ }[], {
43
+ owner: string;
44
+ speech: string;
45
+ color: string;
46
+ shape: string;
47
+ }[], unknown>;
48
+ }>>;
49
+ layout: import("typai").AnnotatedType<{
50
+ rows: {
51
+ columns: {
52
+ id: string;
53
+ ratio: number;
54
+ }[];
55
+ ratio: number;
56
+ }[];
57
+ }, {
58
+ rows: {
59
+ columns: {
60
+ id: string;
61
+ ratio: number;
62
+ }[];
63
+ ratio: number;
64
+ }[];
65
+ }, unknown>;
66
+ }>>;
67
+ }>, t.NullC]>;
68
+ critique: t.StringC;
69
+ }>;
70
+ export type Character = t.TypeOf<typeof Character>;
71
+ export type Notebook = t.TypeOf<typeof Notebook>;
72
+ export declare function emptyNotebook(): Notebook;
@@ -0,0 +1,30 @@
1
+ import * as t from "io-ts";
2
+ import { ignore } from "typai";
3
+ import { Storyboard } from "./storyboard";
4
+ export const Character = t.type({
5
+ ulid: ignore(t.string),
6
+ name: t.string,
7
+ personality: t.string,
8
+ appearance: t.string,
9
+ themeColor: t.string,
10
+ portrait: ignore(t.any), // 'loading' | HTMLImageElement
11
+ });
12
+ export const Notebook = t.type({
13
+ theme: t.string,
14
+ characters: t.array(Character),
15
+ plot: t.string,
16
+ scenario: t.string,
17
+ storyboard: t.union([Storyboard, t.null]),
18
+ critique: t.string,
19
+ });
20
+ export function emptyNotebook() {
21
+ return {
22
+ theme: "",
23
+ characters: [],
24
+ plot: "",
25
+ scenario: "",
26
+ storyboard: null,
27
+ critique: "",
28
+ };
29
+ }
30
+ //# sourceMappingURL=notebook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook.js","sourceRoot":"","sources":["../../../src/lib/book/notebook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM;IACd,WAAW,EAAE,CAAC,CAAC,MAAM;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM;IACpB,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,+BAA+B;CACzD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM;IACf,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM;IAClB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM;CACnB,CAAC,CAAC;AAKH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ export type ProtocolChatLog = {
2
+ role: string;
3
+ content: string;
4
+ };
5
+ export type Role = 'system' | 'assistant' | 'user' | 'error';
6
+ export type RichChatLog = {
7
+ role: Role;
8
+ content: RichChatContent;
9
+ hidden?: boolean;
10
+ };
11
+ export type RichChatContent = {
12
+ type: 'speech';
13
+ body: string;
14
+ } | {
15
+ type: 'image';
16
+ body: RichChatImage;
17
+ } | {
18
+ type: 'document';
19
+ body: RichChatDocument;
20
+ } | {
21
+ type: 'error';
22
+ body: string;
23
+ } | {
24
+ type: 'waiting';
25
+ };
26
+ export type RichChatImage = {
27
+ id: string;
28
+ image: HTMLImageElement;
29
+ };
30
+ export type RichChatDocument = {
31
+ id: string;
32
+ text: string;
33
+ };
34
+ export declare function richChatLogToProtocolChatLog(log: RichChatLog[]): ProtocolChatLog[];
35
+ export declare function protocolChatLogToRichChatLog(log: ProtocolChatLog[]): RichChatLog[];
36
+ export declare function rollback(log: RichChatLog[], role: 'user' | 'assistant'): RichChatLog[];
@@ -0,0 +1,87 @@
1
+ export function richChatLogToProtocolChatLog(log) {
2
+ const converted = [];
3
+ for (const l of log) {
4
+ switch (l.content.type) {
5
+ case 'speech':
6
+ converted.push({ role: l.role, content: l.content.body });
7
+ break;
8
+ case 'image':
9
+ break;
10
+ case 'document':
11
+ const doc = l.content.body;
12
+ converted.push({ role: l.role, content: `\`\`\`${doc.id}\n${doc.text}\n\`\`\`` });
13
+ break;
14
+ }
15
+ }
16
+ // 連続するroleが同じものは結合する
17
+ const merged = [];
18
+ let prevRole = '';
19
+ let prevContent = '';
20
+ for (const c of converted) {
21
+ if (prevRole === c.role) {
22
+ prevContent += '\n' + c.content;
23
+ }
24
+ else {
25
+ if (prevContent) {
26
+ merged.push({ role: prevRole, content: prevContent });
27
+ }
28
+ prevRole = c.role;
29
+ prevContent = c.content;
30
+ }
31
+ }
32
+ if (prevContent) {
33
+ merged.push({ role: prevRole, content: prevContent });
34
+ }
35
+ return merged;
36
+ }
37
+ export function protocolChatLogToRichChatLog(log) {
38
+ const converted = [];
39
+ function flush(role, content, documentTag) {
40
+ content = content.trim();
41
+ console.log(content.length, content);
42
+ if (content.length === 0)
43
+ return;
44
+ if (documentTag != null) {
45
+ converted.push({ role, content: { type: 'document', body: { id: documentTag, text: content } } });
46
+ }
47
+ else {
48
+ converted.push({ role, content: { type: 'speech', body: content } });
49
+ }
50
+ }
51
+ for (const l of log) {
52
+ // contentの中に```で始まる行があれば、そこから次の```までをdocumentとして扱う
53
+ let s = '';
54
+ let documentTag = null;
55
+ for (const line of l.content.split('\n')) {
56
+ if (!line.startsWith('```')) {
57
+ s += line + '\n';
58
+ continue;
59
+ }
60
+ flush(l.role, s, documentTag);
61
+ s = '';
62
+ if (documentTag == null) {
63
+ documentTag = line.slice(3);
64
+ }
65
+ else {
66
+ documentTag = null;
67
+ }
68
+ }
69
+ flush(l.role, s, documentTag);
70
+ }
71
+ return converted;
72
+ }
73
+ export function rollback(log, role) {
74
+ const spliced = [];
75
+ for (let i = log.length - 1; i >= 0; i--) {
76
+ const role2 = log[i].role;
77
+ if (role == role2 || role2 === 'system' || role2 === 'error') {
78
+ spliced.splice(0, 0, log[i]);
79
+ log.splice(i, 1);
80
+ }
81
+ else {
82
+ break;
83
+ }
84
+ }
85
+ return spliced;
86
+ }
87
+ //# sourceMappingURL=richChat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"richChat.js","sourceRoot":"","sources":["../../../src/lib/book/richChat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import * as t from "io-ts";
2
+ import { LayoutPage, LayoutColumn, LayoutRow } from "./layout";
3
+ declare const Format: import("typai").AnnotatedType<string, string, unknown>;
4
+ declare const Character: import("typai").AnnotatedType<{
5
+ name: string;
6
+ appearance: string;
7
+ themeColor: string;
8
+ }, {
9
+ name: string;
10
+ appearance: string;
11
+ themeColor: string;
12
+ }, unknown>;
13
+ declare const Bubble: import("typai").AnnotatedType<{
14
+ owner: string;
15
+ speech: string;
16
+ color: string;
17
+ shape: string;
18
+ }, {
19
+ owner: string;
20
+ speech: string;
21
+ color: string;
22
+ shape: string;
23
+ }, unknown>;
24
+ declare const Panel: t.TypeC<{
25
+ composition: import("typai").AnnotatedType<string, string, unknown>;
26
+ camera: import("typai").AnnotatedType<string, string, unknown>;
27
+ bubbles: import("typai").AnnotatedType<{
28
+ owner: string;
29
+ speech: string;
30
+ color: string;
31
+ shape: string;
32
+ }[], {
33
+ owner: string;
34
+ speech: string;
35
+ color: string;
36
+ shape: string;
37
+ }[], unknown>;
38
+ }>;
39
+ declare const Page: t.TypeC<{
40
+ panels: t.ArrayC<t.TypeC<{
41
+ composition: import("typai").AnnotatedType<string, string, unknown>;
42
+ camera: import("typai").AnnotatedType<string, string, unknown>;
43
+ bubbles: import("typai").AnnotatedType<{
44
+ owner: string;
45
+ speech: string;
46
+ color: string;
47
+ shape: string;
48
+ }[], {
49
+ owner: string;
50
+ speech: string;
51
+ color: string;
52
+ shape: string;
53
+ }[], unknown>;
54
+ }>>;
55
+ layout: import("typai").AnnotatedType<{
56
+ rows: {
57
+ columns: {
58
+ id: string;
59
+ ratio: number;
60
+ }[];
61
+ ratio: number;
62
+ }[];
63
+ }, {
64
+ rows: {
65
+ columns: {
66
+ id: string;
67
+ ratio: number;
68
+ }[];
69
+ ratio: number;
70
+ }[];
71
+ }, unknown>;
72
+ }>;
73
+ declare const Storyboard: t.TypeC<{
74
+ format: import("typai").AnnotatedType<string, string, unknown>;
75
+ characters: t.ArrayC<import("typai").AnnotatedType<{
76
+ name: string;
77
+ appearance: string;
78
+ themeColor: string;
79
+ }, {
80
+ name: string;
81
+ appearance: string;
82
+ themeColor: string;
83
+ }, unknown>>;
84
+ pages: t.ArrayC<t.TypeC<{
85
+ panels: t.ArrayC<t.TypeC<{
86
+ composition: import("typai").AnnotatedType<string, string, unknown>;
87
+ camera: import("typai").AnnotatedType<string, string, unknown>;
88
+ bubbles: import("typai").AnnotatedType<{
89
+ owner: string;
90
+ speech: string;
91
+ color: string;
92
+ shape: string;
93
+ }[], {
94
+ owner: string;
95
+ speech: string;
96
+ color: string;
97
+ shape: string;
98
+ }[], unknown>;
99
+ }>>;
100
+ layout: import("typai").AnnotatedType<{
101
+ rows: {
102
+ columns: {
103
+ id: string;
104
+ ratio: number;
105
+ }[];
106
+ ratio: number;
107
+ }[];
108
+ }, {
109
+ rows: {
110
+ columns: {
111
+ id: string;
112
+ ratio: number;
113
+ }[];
114
+ ratio: number;
115
+ }[];
116
+ }, unknown>;
117
+ }>>;
118
+ }>;
119
+ type Format = t.TypeOf<typeof Format>;
120
+ type Character = t.TypeOf<typeof Character>;
121
+ type Bubble = t.TypeOf<typeof Bubble>;
122
+ type Panel = t.TypeOf<typeof Panel>;
123
+ type Page = t.TypeOf<typeof Page>;
124
+ type Storyboard = t.TypeOf<typeof Storyboard>;
125
+ export { Format, Character, Bubble, Panel, Page, Storyboard, LayoutPage, LayoutRow, LayoutColumn, };