@coeiro-operator/audio 1.0.3 → 1.2.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 (62) hide show
  1. package/README.md +48 -0
  2. package/dist/audio-player.d.ts +32 -11
  3. package/dist/audio-player.d.ts.map +1 -1
  4. package/dist/audio-player.js +236 -210
  5. package/dist/audio-player.js.map +1 -1
  6. package/dist/audio-stream-controller.d.ts +27 -7
  7. package/dist/audio-stream-controller.d.ts.map +1 -1
  8. package/dist/audio-stream-controller.js +143 -40
  9. package/dist/audio-stream-controller.js.map +1 -1
  10. package/dist/audio-synthesizer.d.ts +5 -4
  11. package/dist/audio-synthesizer.d.ts.map +1 -1
  12. package/dist/audio-synthesizer.js +36 -23
  13. package/dist/audio-synthesizer.js.map +1 -1
  14. package/dist/chunk-generation-manager.d.ts +34 -2
  15. package/dist/chunk-generation-manager.d.ts.map +1 -1
  16. package/dist/chunk-generation-manager.js +237 -15
  17. package/dist/chunk-generation-manager.js.map +1 -1
  18. package/dist/debug-error-test.d.ts +5 -0
  19. package/dist/debug-error-test.d.ts.map +1 -0
  20. package/dist/debug-error-test.js +91 -0
  21. package/dist/debug-error-test.js.map +1 -0
  22. package/dist/index.d.ts +18 -6
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +30 -4
  25. package/dist/index.js.map +1 -1
  26. package/dist/open-promise.d.ts +18 -0
  27. package/dist/open-promise.d.ts.map +1 -0
  28. package/dist/open-promise.js +42 -0
  29. package/dist/open-promise.js.map +1 -0
  30. package/dist/queue/speech-queue.d.ts +34 -0
  31. package/dist/queue/speech-queue.d.ts.map +1 -0
  32. package/dist/queue/speech-queue.js +36 -0
  33. package/dist/queue/speech-queue.js.map +1 -0
  34. package/dist/queue/task-queue.d.ts +52 -0
  35. package/dist/queue/task-queue.d.ts.map +1 -0
  36. package/dist/queue/task-queue.js +259 -0
  37. package/dist/queue/task-queue.js.map +1 -0
  38. package/dist/queue/types.d.ts +42 -0
  39. package/dist/queue/types.d.ts.map +1 -0
  40. package/dist/queue/types.js +5 -0
  41. package/dist/queue/types.js.map +1 -0
  42. package/dist/speech-queue.d.ts +4 -49
  43. package/dist/speech-queue.d.ts.map +1 -1
  44. package/dist/speech-queue.js +3 -140
  45. package/dist/speech-queue.js.map +1 -1
  46. package/dist/speed-utils.d.ts +25 -0
  47. package/dist/speed-utils.d.ts.map +1 -0
  48. package/dist/speed-utils.js +77 -0
  49. package/dist/speed-utils.js.map +1 -0
  50. package/dist/synthesis-processor.d.ts.map +1 -1
  51. package/dist/synthesis-processor.js +34 -10
  52. package/dist/synthesis-processor.js.map +1 -1
  53. package/dist/test-helpers.d.ts +0 -9
  54. package/dist/test-helpers.d.ts.map +1 -1
  55. package/dist/test-helpers.js +1 -80
  56. package/dist/test-helpers.js.map +1 -1
  57. package/dist/types.d.ts +41 -10
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/voice-resolver.d.ts.map +1 -1
  60. package/dist/voice-resolver.js +33 -3
  61. package/dist/voice-resolver.js.map +1 -1
  62. package/package.json +4 -6
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAmB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAOvE,OAAO,KAAK,EAGV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,kBAAkB,CAAmC;gBAEjD,aAAa,EAAE,aAAa;IAMlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC3B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,gBAAgB;IAO3E;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBrC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACH,oBAAoB;;;;;IAOpB;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAWxB;;OAEG;IACH,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQpD;;OAEG;IACH,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI;IAQ9E;;OAEG;IACH,kBAAkB;;;;;IAOlB;;OAEG;IACH,0BAA0B;IAW1B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB/B;AAGD,eAAe,YAAY,CAAC;AAG5B,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAmB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAOvE,OAAO,KAAK,EAGV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,kBAAkB,CAAmC;gBAEjD,aAAa,EAAE,aAAa;IAMlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC3B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,gBAAgB;IAO3E;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBrC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACH,oBAAoB;IAOpB;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB7E;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAIrD;;;OAGG;IACH,YAAY,IAAI,IAAI;IAWpB;;OAEG;IACH,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQpD;;OAEG;IACH,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI;IAQ9E;;OAEG;IACH,kBAAkB;;;;;IAOlB;;OAEG;IACH,0BAA0B;IAW1B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB/B;AAGD,eAAe,YAAY,CAAC;AAG5B,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -77,7 +77,7 @@ export class SayCoeiroink {
77
77
  if (!this.speechQueue) {
78
78
  throw new Error('SpeechQueue is not initialized. Call initialize() first.');
79
79
  }
80
- return this.speechQueue.enqueue(text, options);
80
+ return this.speechQueue.enqueueSpeech(text, options);
81
81
  }
82
82
  /**
83
83
  * キューに入っているすべてのタスクの完了を待つ
@@ -118,12 +118,38 @@ export class SayCoeiroink {
118
118
  }
119
119
  /**
120
120
  * キューをクリア
121
+ * @param taskIds 削除するタスクIDの配列(省略時は全タスク削除)
122
+ * @returns 削除されたタスク数
121
123
  */
122
- clearSpeechQueue() {
124
+ async clearSpeechQueue(taskIds) {
123
125
  if (!this.speechQueue) {
124
126
  throw new Error('SpeechQueue is not initialized. Call initialize() first.');
125
127
  }
126
- this.speechQueue.clear();
128
+ // 全タスククリアまたはタスクが残らない場合は再生も停止
129
+ if (!taskIds || taskIds.length === 0) {
130
+ // 全タスククリアの場合は再生も停止
131
+ if (this.audioPlayer) {
132
+ this.audioPlayer.stopPlayback();
133
+ }
134
+ }
135
+ return await this.speechQueue.clear(taskIds);
136
+ }
137
+ /**
138
+ * clearQueue エイリアス(テスト用)
139
+ * clearSpeechQueue と同じ動作
140
+ */
141
+ async clearQueue() {
142
+ return await this.clearSpeechQueue();
143
+ }
144
+ /**
145
+ * 音声再生を停止(チャンク境界で停止)
146
+ * 現在再生中のチャンクは最後まで再生され、次のチャンクから停止します
147
+ */
148
+ stopPlayback() {
149
+ if (!this.audioPlayer) {
150
+ throw new Error('AudioPlayer is not initialized. Call initialize() first.');
151
+ }
152
+ this.audioPlayer.stopPlayback();
127
153
  }
128
154
  // ========================================================================
129
155
  // 並行生成制御
@@ -176,7 +202,7 @@ export class SayCoeiroink {
176
202
  logger.debug('SayCoeiroink cleanup開始');
177
203
  try {
178
204
  if (this.speechQueue) {
179
- this.speechQueue.clear();
205
+ await this.speechQueue.clear(); // 全タスククリア
180
206
  }
181
207
  if (this.audioPlayer) {
182
208
  await this.audioPlayer.cleanup();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * OpenPromise: 外部から解決・拒否できるPromise
3
+ * @echogarden/audio-ioの内部実装パターンを参考
4
+ */
5
+ export declare class OpenPromise<T = void> {
6
+ readonly promise: Promise<T>;
7
+ private _resolve;
8
+ private _reject;
9
+ private _resolved;
10
+ private _rejected;
11
+ constructor();
12
+ resolve(value?: T | PromiseLike<T>): void;
13
+ reject(reason?: any): void;
14
+ get isResolved(): boolean;
15
+ get isRejected(): boolean;
16
+ get isPending(): boolean;
17
+ }
18
+ //# sourceMappingURL=open-promise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-promise.d.ts","sourceRoot":"","sources":["../src/open-promise.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,WAAW,CAAC,CAAC,GAAG,IAAI;IAC/B,SAAgB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;;IAS1B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IASzC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI;IAQ1B,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * OpenPromise: 外部から解決・拒否できるPromise
3
+ * @echogarden/audio-ioの内部実装パターンを参考
4
+ */
5
+ export class OpenPromise {
6
+ promise;
7
+ _resolve;
8
+ _reject;
9
+ _resolved = false;
10
+ _rejected = false;
11
+ constructor() {
12
+ this.promise = new Promise((resolve, reject) => {
13
+ this._resolve = resolve;
14
+ this._reject = reject;
15
+ });
16
+ }
17
+ resolve(value) {
18
+ if (this._resolved || this._rejected) {
19
+ return;
20
+ }
21
+ this._resolved = true;
22
+ // void型の場合はundefinedを渡す
23
+ this._resolve(value);
24
+ }
25
+ reject(reason) {
26
+ if (this._resolved || this._rejected) {
27
+ return;
28
+ }
29
+ this._rejected = true;
30
+ this._reject(reason);
31
+ }
32
+ get isResolved() {
33
+ return this._resolved;
34
+ }
35
+ get isRejected() {
36
+ return this._rejected;
37
+ }
38
+ get isPending() {
39
+ return !this._resolved && !this._rejected;
40
+ }
41
+ }
42
+ //# sourceMappingURL=open-promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-promise.js","sourceRoot":"","sources":["../src/open-promise.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,WAAW;IACN,OAAO,CAAa;IAC5B,QAAQ,CAAuC;IAC/C,OAAO,CAA0B;IACjC,SAAS,GAAG,KAAK,CAAC;IAClB,SAAS,GAAG,KAAK,CAAC;IAE1B;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,KAA0B;QAChC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,wBAAwB;QACxB,IAAI,CAAC,QAAQ,CAAC,KAA2B,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,MAAY;QACjB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC5C,CAAC;CACF"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * src/queue/speech-queue.ts: 音声合成タスクキュー
3
+ * TaskQueueのSpeechTask特化版
4
+ */
5
+ import { TaskQueue } from './task-queue.js';
6
+ import type { BaseTask } from './types.js';
7
+ import type { SynthesizeOptions, SynthesizeResult } from '../types.js';
8
+ /**
9
+ * 音声合成タスク
10
+ */
11
+ export interface SpeechTask extends BaseTask {
12
+ type: 'speech';
13
+ text: string;
14
+ options: SynthesizeOptions;
15
+ }
16
+ /**
17
+ * 音声合成タスクキュー
18
+ * TaskQueueをSpeechTaskに特化
19
+ */
20
+ export declare class SpeechQueue extends TaskQueue<SpeechTask> {
21
+ /**
22
+ * 音声タスクをキューに追加(音声合成用のラッパー)
23
+ * @param text 音声合成するテキスト
24
+ * @param options 音声合成オプション
25
+ * @returns 音声合成結果
26
+ */
27
+ enqueueSpeech(text: string, options?: SynthesizeOptions): SynthesizeResult;
28
+ /**
29
+ * 基底クラスのenqueueメソッドを隠蔽し、enqueueSpeechを使用するよう促す
30
+ * @deprecated Use enqueueSpeech instead
31
+ */
32
+ enqueue(taskData: Omit<SpeechTask, 'id' | 'promise' | 'resolve' | 'reject' | 'timestamp'>): import("./types.js").EnqueueResult;
33
+ }
34
+ //# sourceMappingURL=speech-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speech-queue.d.ts","sourceRoot":"","sources":["../../src/queue/speech-queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,SAAS,CAAC,UAAU,CAAC;IACpD;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,gBAAgB;IAa9E;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;CAG1F"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * src/queue/speech-queue.ts: 音声合成タスクキュー
3
+ * TaskQueueのSpeechTask特化版
4
+ */
5
+ import { TaskQueue } from './task-queue.js';
6
+ /**
7
+ * 音声合成タスクキュー
8
+ * TaskQueueをSpeechTaskに特化
9
+ */
10
+ export class SpeechQueue extends TaskQueue {
11
+ /**
12
+ * 音声タスクをキューに追加(音声合成用のラッパー)
13
+ * @param text 音声合成するテキスト
14
+ * @param options 音声合成オプション
15
+ * @returns 音声合成結果
16
+ */
17
+ enqueueSpeech(text, options = {}) {
18
+ const result = super.enqueue({
19
+ type: 'speech',
20
+ text,
21
+ options,
22
+ });
23
+ return {
24
+ ...result,
25
+ outputFile: options.outputFile || undefined,
26
+ };
27
+ }
28
+ /**
29
+ * 基底クラスのenqueueメソッドを隠蔽し、enqueueSpeechを使用するよう促す
30
+ * @deprecated Use enqueueSpeech instead
31
+ */
32
+ enqueue(taskData) {
33
+ return super.enqueue(taskData);
34
+ }
35
+ }
36
+ //# sourceMappingURL=speech-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speech-queue.js","sourceRoot":"","sources":["../../src/queue/speech-queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAa5C;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAqB;IACpD;;;;;OAKG;IACH,aAAa,CAAC,IAAY,EAAE,UAA6B,EAAE;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;YAC3B,IAAI,EAAE,QAAQ;YACd,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,MAAM;YACT,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;SAC5C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,QAAiF;QACvF,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * src/queue/task-queue.ts: ジェネリックタスクキュー管理
3
+ * 非同期タスクのキューイングと順次処理を担当
4
+ */
5
+ import type { BaseTask, EnqueueResult, QueueStatus, ClearResult } from './types.js';
6
+ /**
7
+ * ジェネリックタスクキュー
8
+ * @template T タスクの型(BaseTaskを拡張)
9
+ */
10
+ export declare class TaskQueue<T extends BaseTask> {
11
+ private processCallback;
12
+ private taskQueue;
13
+ private currentProcessPromise;
14
+ private currentTask;
15
+ private taskIdCounter;
16
+ private errors;
17
+ constructor(processCallback: (task: T) => Promise<void>);
18
+ /**
19
+ * タスクを作成してキューに追加
20
+ * @param taskData タスクデータ(id, promise, resolve, reject以外のフィールド)
21
+ */
22
+ enqueue(taskData: Omit<T, 'id' | 'promise' | 'resolve' | 'reject' | 'timestamp'>): EnqueueResult;
23
+ /**
24
+ * キューに入っているすべてのタスクの完了を待つ
25
+ * @returns エラーが発生した場合はエラーリストを含む結果を返す
26
+ */
27
+ waitForAllTasks(): Promise<{
28
+ errors: Array<{
29
+ taskId: number;
30
+ error: Error;
31
+ }>;
32
+ }>;
33
+ /**
34
+ * キューの処理を開始
35
+ */
36
+ private processQueue;
37
+ /**
38
+ * タスクの処理を実行
39
+ */
40
+ private processTask;
41
+ /**
42
+ * キューの状態を取得
43
+ */
44
+ getStatus(): QueueStatus;
45
+ /**
46
+ * キューをクリア
47
+ * @param taskIds 削除するタスクIDの配列(省略時は全タスク削除)
48
+ * @returns 削除されたタスク数と、実行中タスクの中断状態
49
+ */
50
+ clear(taskIds?: number[]): Promise<ClearResult>;
51
+ }
52
+ //# sourceMappingURL=task-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-queue.d.ts","sourceRoot":"","sources":["../../src/queue/task-queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGpF;;;GAGG;AACH,qBAAa,SAAS,CAAC,CAAC,SAAS,QAAQ;IAQrC,OAAO,CAAC,eAAe;IAPzB,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,MAAM,CAA6C;gBAGjD,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAGrD;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC,GAAG,aAAa;IAuChG;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,KAAK,CAAA;SAAC,CAAC,CAAA;KAAE,CAAC;IA0BnF;;OAEG;YACW,YAAY;IA2F1B;;OAEG;YACW,WAAW;IAIzB;;OAEG;IACH,SAAS,IAAI,WAAW;IASxB;;;;OAIG;IACG,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;CAkFtD"}
@@ -0,0 +1,259 @@
1
+ /**
2
+ * src/queue/task-queue.ts: ジェネリックタスクキュー管理
3
+ * 非同期タスクのキューイングと順次処理を担当
4
+ */
5
+ import { logger } from '@coeiro-operator/common';
6
+ /**
7
+ * ジェネリックタスクキュー
8
+ * @template T タスクの型(BaseTaskを拡張)
9
+ */
10
+ export class TaskQueue {
11
+ processCallback;
12
+ taskQueue = [];
13
+ currentProcessPromise = null;
14
+ currentTask = null;
15
+ taskIdCounter = Date.now();
16
+ errors = [];
17
+ constructor(processCallback) {
18
+ this.processCallback = processCallback;
19
+ }
20
+ /**
21
+ * タスクを作成してキューに追加
22
+ * @param taskData タスクデータ(id, promise, resolve, reject以外のフィールド)
23
+ */
24
+ enqueue(taskData) {
25
+ const taskId = this.taskIdCounter++;
26
+ // OpenPromiseパターンでPromiseを作成
27
+ let resolveTask;
28
+ let rejectTask;
29
+ const taskPromise = new Promise((resolve, reject) => {
30
+ resolveTask = resolve;
31
+ rejectTask = reject;
32
+ });
33
+ const task = {
34
+ ...taskData,
35
+ id: taskId,
36
+ timestamp: Date.now(),
37
+ promise: taskPromise,
38
+ resolve: resolveTask,
39
+ reject: rejectTask,
40
+ };
41
+ this.taskQueue.push(task);
42
+ // 処理を別のタイミングで開始
43
+ setTimeout(() => {
44
+ // processQueueのエラーをキャッチして、unhandled rejectionを防ぐ
45
+ this.processQueue().catch(error => {
46
+ logger.error('[TaskQueue] processQueueエラー:', error);
47
+ // エラーは既にprocessQueue内で処理されているので、ここでは記録のみ
48
+ });
49
+ }, 0);
50
+ return {
51
+ success: true,
52
+ taskId,
53
+ promise: task.promise,
54
+ queueLength: this.taskQueue.length,
55
+ };
56
+ }
57
+ /**
58
+ * キューに入っているすべてのタスクの完了を待つ
59
+ * @returns エラーが発生した場合はエラーリストを含む結果を返す
60
+ */
61
+ async waitForAllTasks() {
62
+ logger.debug(`[TaskQueue] waitForAllTasks開始, currentProcessPromise: ${this.currentProcessPromise !== null}, queue長: ${this.taskQueue.length}`);
63
+ // 処理中のprocessQueueがあれば待つ
64
+ if (this.currentProcessPromise) {
65
+ logger.debug(`[TaskQueue] processQueueの完了を待機中...`);
66
+ await this.currentProcessPromise;
67
+ logger.debug(`[TaskQueue] processQueue完了`);
68
+ }
69
+ // キューに残っているタスクのPromiseも念のため待つ
70
+ const promises = this.taskQueue
71
+ .filter(task => task.promise)
72
+ .map(task => task.promise);
73
+ if (promises.length > 0) {
74
+ logger.debug(`[TaskQueue] 残りのタスクPromise待機中: ${promises.length}件`);
75
+ await Promise.allSettled(promises);
76
+ }
77
+ // エラーリストを返してクリア
78
+ const errors = [...this.errors];
79
+ logger.debug(`[TaskQueue] waitForAllTasks完了, エラー数: ${errors.length}`);
80
+ this.errors = [];
81
+ return { errors };
82
+ }
83
+ /**
84
+ * キューの処理を開始
85
+ */
86
+ async processQueue() {
87
+ logger.debug(`[TaskQueue] processQueue開始, queue長: ${this.taskQueue.length}`);
88
+ // 既に処理中なら、その完了を待つだけ
89
+ if (this.currentProcessPromise) {
90
+ logger.debug(`[TaskQueue] 既に処理中のためスキップ`);
91
+ return this.currentProcessPromise;
92
+ }
93
+ if (this.taskQueue.length === 0) {
94
+ logger.debug(`[TaskQueue] キューが空のため終了`);
95
+ this.currentProcessPromise = null;
96
+ return;
97
+ }
98
+ // 新しい処理を開始
99
+ this.currentProcessPromise = (async () => {
100
+ // キューが空になるまで処理を続ける
101
+ while (this.taskQueue.length > 0) {
102
+ // 1つのタスクを処理
103
+ const task = this.taskQueue.shift();
104
+ if (!task)
105
+ break;
106
+ this.currentTask = task;
107
+ try {
108
+ // 中断されたタスクはスキップ
109
+ if (task.aborted) {
110
+ if (task.reject) {
111
+ task.reject(new Error('Task aborted'));
112
+ // Unhandled rejectionを防ぐためにPromiseをcatch
113
+ if (task.promise) {
114
+ task.promise.catch(() => {
115
+ // エラーは既にrejectで通知済みなので、ここでは何もしない
116
+ });
117
+ }
118
+ }
119
+ continue;
120
+ }
121
+ logger.debug(`[TaskQueue] タスク処理開始: ${task.id}`);
122
+ await this.processTask(task);
123
+ logger.debug(`[TaskQueue] タスク処理成功: ${task.id}`);
124
+ // 処理後に再度中断チェック
125
+ if (task.aborted) {
126
+ if (task.reject) {
127
+ task.reject(new Error('Task aborted'));
128
+ // Unhandled rejectionを防ぐためにPromiseをcatch
129
+ if (task.promise) {
130
+ task.promise.catch(() => {
131
+ // エラーは既にrejectで通知済みなので、ここでは何もしない
132
+ });
133
+ }
134
+ }
135
+ continue;
136
+ }
137
+ logger.verbose(`タスク完了: ${task.id} (${task.type})`);
138
+ // OpenPromiseを解決
139
+ if (task.resolve) {
140
+ task.resolve();
141
+ }
142
+ }
143
+ catch (error) {
144
+ logger.error(`[TaskQueue] タスクエラー: ${task.id} (${task.type}), ${error.message}`);
145
+ logger.error(`[TaskQueue] エラースタック:`, error.stack);
146
+ // エラーを保存
147
+ this.errors.push({
148
+ taskId: task.id,
149
+ error: error
150
+ });
151
+ logger.debug(`[TaskQueue] エラーをリストに保存: 現在のエラー数=${this.errors.length}`);
152
+ // OpenPromiseをreject
153
+ if (task.reject) {
154
+ logger.debug(`[TaskQueue] タスクのPromiseをreject`);
155
+ task.reject(error);
156
+ }
157
+ }
158
+ finally {
159
+ this.currentTask = null;
160
+ }
161
+ }
162
+ })();
163
+ // 処理を待つ
164
+ await this.currentProcessPromise;
165
+ this.currentProcessPromise = null;
166
+ }
167
+ /**
168
+ * タスクの処理を実行
169
+ */
170
+ async processTask(task) {
171
+ await this.processCallback(task);
172
+ }
173
+ /**
174
+ * キューの状態を取得
175
+ */
176
+ getStatus() {
177
+ return {
178
+ queueLength: this.taskQueue.length,
179
+ isProcessing: this.currentProcessPromise !== null,
180
+ nextTaskId: this.taskQueue[0]?.id || null,
181
+ currentTaskId: this.currentTask?.id || null,
182
+ };
183
+ }
184
+ /**
185
+ * キューをクリア
186
+ * @param taskIds 削除するタスクIDの配列(省略時は全タスク削除)
187
+ * @returns 削除されたタスク数と、実行中タスクの中断状態
188
+ */
189
+ async clear(taskIds) {
190
+ let aborted = false;
191
+ if (!taskIds || taskIds.length === 0) {
192
+ // 全タスククリア
193
+ const count = this.taskQueue.length;
194
+ // クリア前にタスクをreject
195
+ for (const task of this.taskQueue) {
196
+ task.aborted = true;
197
+ if (task.reject) {
198
+ task.reject(new Error('Queue cleared'));
199
+ // Unhandled rejectionを防ぐためにPromiseをcatch
200
+ if (task.promise) {
201
+ task.promise.catch(() => {
202
+ // エラーは既にrejectで通知済みなので、ここでは何もしない
203
+ });
204
+ }
205
+ }
206
+ }
207
+ this.taskQueue = [];
208
+ // 実行中のタスクがあれば中断を試みる
209
+ if (this.currentTask) {
210
+ this.currentTask.aborted = true;
211
+ if (this.currentTask.abort) {
212
+ await this.currentTask.abort();
213
+ aborted = true;
214
+ }
215
+ // 実行中タスクのrejectは呼ばない(processQueue内で処理される)
216
+ }
217
+ // 処理の完了を待つ
218
+ if (this.currentProcessPromise) {
219
+ await this.currentProcessPromise;
220
+ }
221
+ this.currentProcessPromise = null;
222
+ return { removedCount: count, aborted };
223
+ }
224
+ // 指定タスクのみ削除
225
+ const before = this.taskQueue.length;
226
+ // 実行中のタスクが削除対象かチェック
227
+ if (this.currentTask && taskIds.includes(this.currentTask.id)) {
228
+ this.currentTask.aborted = true;
229
+ if (this.currentTask.abort) {
230
+ await this.currentTask.abort();
231
+ aborted = true;
232
+ }
233
+ // 実行中タスクのrejectは呼ばない(processQueue内で処理される)
234
+ }
235
+ this.taskQueue = this.taskQueue.filter(task => {
236
+ const shouldRemove = taskIds.includes(task.id);
237
+ if (shouldRemove) {
238
+ task.aborted = true;
239
+ if (task.reject) {
240
+ task.reject(new Error('Task removed from queue'));
241
+ // Unhandled rejectionを防ぐためにPromiseをcatch
242
+ if (task.promise) {
243
+ task.promise.catch(() => {
244
+ // エラーは既にrejectで通知済みなので、ここでは何もしない
245
+ });
246
+ }
247
+ }
248
+ }
249
+ return !shouldRemove;
250
+ });
251
+ const removedCount = before - this.taskQueue.length;
252
+ // キューが空になった場合は処理中フラグもリセット
253
+ if (this.taskQueue.length === 0 && !this.currentTask) {
254
+ this.currentProcessPromise = null;
255
+ }
256
+ return { removedCount, aborted };
257
+ }
258
+ }
259
+ //# sourceMappingURL=task-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-queue.js","sourceRoot":"","sources":["../../src/queue/task-queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * src/queue/types.ts: タスクキューの型定義
3
+ */
4
+ /**
5
+ * タスクの基本インターフェース
6
+ */
7
+ export interface BaseTask {
8
+ id: number;
9
+ type: string;
10
+ timestamp: number;
11
+ promise?: Promise<void>;
12
+ resolve?: () => void;
13
+ reject?: (error: Error) => void;
14
+ abort?: () => void | Promise<void>;
15
+ aborted?: boolean;
16
+ }
17
+ /**
18
+ * エンキュー結果の基本インターフェース
19
+ */
20
+ export interface EnqueueResult {
21
+ success: boolean;
22
+ taskId: number;
23
+ promise?: Promise<void>;
24
+ queueLength: number;
25
+ }
26
+ /**
27
+ * キューステータス
28
+ */
29
+ export interface QueueStatus {
30
+ queueLength: number;
31
+ isProcessing: boolean;
32
+ nextTaskId: number | null;
33
+ currentTaskId: number | null;
34
+ }
35
+ /**
36
+ * クリア結果
37
+ */
38
+ export interface ClearResult {
39
+ removedCount: number;
40
+ aborted: boolean;
41
+ }
42
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/queue/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEhC,KAAK,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * src/queue/types.ts: タスクキューの型定義
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/queue/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}