diff --git a/common/changes/@coze/api/fix-module-error_2025-04-01-05-22.json b/common/changes/@coze/api/fix-module-error_2025-04-01-05-22.json new file mode 100644 index 00000000..c3a48eeb --- /dev/null +++ b/common/changes/@coze/api/fix-module-error_2025-04-01-05-22.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@coze/api", + "comment": "update ESM file extensions from .js to .mjs", + "type": "patch" + } + ], + "packageName": "@coze/api", + "email": "shenxiaojie.316@bytedance.com" +} diff --git a/common/changes/@coze/realtime-api/fix-module-error_2025-04-01-06-28.json b/common/changes/@coze/realtime-api/fix-module-error_2025-04-01-06-28.json new file mode 100644 index 00000000..7faad830 --- /dev/null +++ b/common/changes/@coze/realtime-api/fix-module-error_2025-04-01-06-28.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@coze/realtime-api", + "comment": "move EventNames enum to separate file", + "type": "patch" + } + ], + "packageName": "@coze/realtime-api", + "email": "shenxiaojie.316@bytedance.com" +} diff --git a/common/changes/@coze/realtime-api/fix-module-error_2025-04-02-10-51.json b/common/changes/@coze/realtime-api/fix-module-error_2025-04-02-10-51.json new file mode 100644 index 00000000..a9b78e3b --- /dev/null +++ b/common/changes/@coze/realtime-api/fix-module-error_2025-04-02-10-51.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@coze/realtime-api", + "comment": "add event-names subpath export", + "type": "minor" + } + ], + "packageName": "@coze/realtime-api", + "email": "shenxiaojie.316@bytedance.com" +} diff --git a/common/changes/@coze/realtime-api/fix-module-error_2025-04-02-11-06.json b/common/changes/@coze/realtime-api/fix-module-error_2025-04-02-11-06.json new file mode 100644 index 00000000..80620406 --- /dev/null +++ b/common/changes/@coze/realtime-api/fix-module-error_2025-04-02-11-06.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@coze/realtime-api", + "comment": "Publish fix/module-error", + "type": "patch" + } + ], + "packageName": "@coze/realtime-api", + "email": "shenxiaojie.316@bytedance.com" +} diff --git a/common/changes/@coze/realtime-api/fix-module-error_2025-04-02-11-44.json b/common/changes/@coze/realtime-api/fix-module-error_2025-04-02-11-44.json new file mode 100644 index 00000000..6c5c4ad9 --- /dev/null +++ b/common/changes/@coze/realtime-api/fix-module-error_2025-04-02-11-44.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@coze/realtime-api", + "comment": "normalize file extensions in package config", + "type": "patch" + } + ], + "packageName": "@coze/realtime-api", + "email": "shenxiaojie.316@bytedance.com" +} diff --git a/packages/coze-js/package.json b/packages/coze-js/package.json index 23b4f915..1a5102da 100644 --- a/packages/coze-js/package.json +++ b/packages/coze-js/package.json @@ -1,6 +1,6 @@ { "name": "@coze/api", - "version": "1.1.1", + "version": "1.1.1-beta.1", "description": "Official Coze Node.js SDK for seamless AI integration into your applications | 扣子官方 Node.js SDK,助您轻松集成 AI 能力到应用中", "keywords": [ "coze", @@ -88,17 +88,17 @@ "exports": { ".": { "require": "./dist/cjs/index.js", - "import": "./dist/esm/index.js", + "import": "./dist/esm/index.mjs", "types": "./dist/types/index.d.ts" }, "./ws-tools": { "require": "./dist/cjs/ws-tools/index.js", - "import": "./dist/esm/ws-tools/index.js", + "import": "./dist/esm/ws-tools/index.mjs", "types": "./dist/types/ws-tools/ws-tools/index.d.ts" } }, "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "module": "dist/esm/index.mjs", "types": "dist/types/index.d.ts" } } \ No newline at end of file diff --git a/packages/realtime-api/package.json b/packages/realtime-api/package.json index 3bc83998..ca9b2520 100644 --- a/packages/realtime-api/package.json +++ b/packages/realtime-api/package.json @@ -1,6 +1,6 @@ { "name": "@coze/realtime-api", - "version": "1.1.1-beta.1", + "version": "1.1.1-beta.5", "description": "A powerful real-time communication SDK for voice interactions with Coze AI bots | 扣子官方实时通信 SDK,用于与 Coze AI bots 进行语音交互", "keywords": [ "coze", @@ -21,9 +21,9 @@ }, "license": "MIT", "author": "jackshen ", - "type": "module", "exports": { - ".": "./src/index.ts" + ".": "./src/index.ts", + "./event-names": "./src/event-names.ts" }, "main": "src/index.ts", "module": "src/index.ts", @@ -65,12 +65,17 @@ "cozePublishConfig": { "exports": { ".": { - "require": "./dist/cjs/index.cjs", + "require": "./dist/cjs/index.js", "import": "./dist/esm/index.js", "types": "./dist/types/index.d.ts" + }, + "./event-names": { + "require": "./dist/cjs/event-names/index.js", + "import": "./dist/esm/event-names/index.js", + "types": "./dist/types/event-names/event-names.d.ts" } }, - "main": "dist/cjs/index.cjs", + "main": "dist/cjs/index.js", "module": "dist/esm/index.js", "typings": "dist/types/index.d.ts" } diff --git a/packages/realtime-api/rslib.config.ts b/packages/realtime-api/rslib.config.ts index d290b442..56390262 100644 --- a/packages/realtime-api/rslib.config.ts +++ b/packages/realtime-api/rslib.config.ts @@ -1,15 +1,24 @@ import { defineConfig, type LibConfig } from '@rslib/core'; -function getLibShared(format: LibConfig['format']) { +function getLibShared(format: LibConfig['format'], dts = false, subpath = '') { const shared: LibConfig = { + autoExtension: false, output: { distPath: { root: `./dist/${format}`, + js: `${subpath}`, }, }, format, + dts: dts + ? { + distPath: `./dist/types/${subpath}`, + } + : false, syntax: 'es6', - autoExternal: false, + source: { + entry: { index: subpath ? `./src/${subpath}` : './src' }, + }, }; return shared; } @@ -22,16 +31,13 @@ export default defineConfig({ target: 'web', }, lib: [ - { - ...getLibShared('esm'), - dts: { - distPath: './dist/types', - }, - }, { ...getLibShared('umd'), umdName: 'CozeRealtimeApi', }, - getLibShared('cjs'), + getLibShared('cjs', true), + getLibShared('esm', false), + getLibShared('cjs', true, 'event-names'), + getLibShared('esm', false, 'event-names'), ], }); diff --git a/packages/realtime-api/src/client.ts b/packages/realtime-api/src/client.ts index 9059d6af..5fc19d3f 100644 --- a/packages/realtime-api/src/client.ts +++ b/packages/realtime-api/src/client.ts @@ -12,7 +12,8 @@ import VERTC, { } from '@volcengine/rtc'; import { getAudioDevices, isScreenShareDevice } from './utils'; -import { EventNames, RealtimeEventHandler } from './event-handler'; +import EventNames from './event-names'; +import { RealtimeEventHandler } from './event-handler'; import { RealtimeAPIError, RealtimeError } from './error'; import { type VideoConfig } from '.'; diff --git a/packages/realtime-api/src/event-handler.ts b/packages/realtime-api/src/event-handler.ts index 538e3d59..ad5c0e28 100644 --- a/packages/realtime-api/src/event-handler.ts +++ b/packages/realtime-api/src/event-handler.ts @@ -1,147 +1,5 @@ +import EventNames from './event-names'; import { RealtimeError, RealtimeAPIError } from './error'; - -export enum EventNames { - /** - * en: All events - * zh: 所有事件 - */ - ALL = 'realtime.event', - /** - * en: All client events - * zh: 所有客户端事件 - */ - ALL_CLIENT = 'client.*', - /** - * en: All server events - * zh: 所有服务端事件 - */ - ALL_SERVER = 'server.*', - /** - * en: Client connected - * zh: 客户端连接 - */ - CONNECTED = 'client.connected', - /** - * en: Client connecting - * zh: 客户端连接中 - */ - CONNECTING = 'client.connecting', - /** - * en: Client interrupted - * zh: 客户端中断 - */ - INTERRUPTED = 'client.interrupted', - /** - * en: Client disconnected - * zh: 客户端断开 - */ - DISCONNECTED = 'client.disconnected', - /** - * en: Client audio unmuted - * zh: 客户端音频未静音 - */ - AUDIO_UNMUTED = 'client.audio.unmuted', - /** - * en: Client audio muted - * zh: 客户端音频静音 - */ - AUDIO_MUTED = 'client.audio.muted', - /** - * en: Client video on - * zh: 客户端视频开启 - */ - VIDEO_ON = 'client.video.on', - /** - * en: Client video off - * zh: 客户端视频关闭 - */ - VIDEO_OFF = 'client.video.off', - /** - * en: Client video event - * zh: 客户端视频事件 - */ - PLAYER_EVENT = 'client.video.event', - /** - * en: Client error - * zh: 客户端错误 - */ - ERROR = 'client.error', - /** - * en: Audio noise reduction enabled - * zh: 抑制平稳噪声 - */ - SUPPRESS_STATIONARY_NOISE = 'client.suppress.stationary.noise', - /** - * en: Suppress non-stationary noise - * zh: 抑制非平稳噪声 - */ - SUPPRESS_NON_STATIONARY_NOISE = 'client.suppress.non.stationary.noise', - /** - * en: Audio input device changed - * zh: 音频输入设备改变 - */ - AUDIO_INPUT_DEVICE_CHANGED = 'client.input.device.changed', - /** - * en: Audio output device changed - * zh: 音频输出设备改变 - */ - AUDIO_OUTPUT_DEVICE_CHANGED = 'client.output.device.changed', - /** - * en: Video input device changed - * zh: 视频输入设备改变 - */ - VIDEO_INPUT_DEVICE_CHANGED = 'client.video.input.device.changed', - /** - * en: Network quality changed - * zh: 网络质量改变 - */ - NETWORK_QUALITY = 'client.network.quality', - /** - * en: Bot joined - * zh: Bot 加入 - */ - BOT_JOIN = 'server.bot.join', - /** - * en: Bot left - * zh: Bot 离开 - */ - BOT_LEAVE = 'server.bot.leave', - /** - * en: Audio speech started - * zh: 开始说话 - */ - AUDIO_AGENT_SPEECH_STARTED = 'server.audio.agent.speech_started', - /** - * en: Audio speech stopped - * zh: 停止说话 - */ - AUDIO_AGENT_SPEECH_STOPPED = 'server.audio.agent.speech_stopped', - /** - * en: Server error - * zh: 服务端错误 - */ - SERVER_ERROR = 'server.error', - /** - * en: User speech started - * zh: 用户开始说话 - */ - AUDIO_USER_SPEECH_STARTED = 'server.audio.user.speech_started', - /** - * en: User speech stopped - * zh: 用户停止说话 - */ - AUDIO_USER_SPEECH_STOPPED = 'server.audio.user.speech_stopped', - /** - * en: User successfully enters the room - * zh: 用户成功进入房间后,会收到该事件 - */ - SESSION_CREATED = 'server.session.created', - /** - * en: Session updated - * zh: 会话更新 - */ - SESSION_UPDATE = 'server.session.update', -} export type EventCallback = (eventName: string, event: unknown) => void; export class RealtimeEventHandler { diff --git a/packages/realtime-api/src/event-names.ts b/packages/realtime-api/src/event-names.ts new file mode 100644 index 00000000..61186a51 --- /dev/null +++ b/packages/realtime-api/src/event-names.ts @@ -0,0 +1,144 @@ +enum EventNames { + /** + * en: All events + * zh: 所有事件 + */ + ALL = 'realtime.event', + /** + * en: All client events + * zh: 所有客户端事件 + */ + ALL_CLIENT = 'client.*', + /** + * en: All server events + * zh: 所有服务端事件 + */ + ALL_SERVER = 'server.*', + /** + * en: Client connected + * zh: 客户端连接 + */ + CONNECTED = 'client.connected', + /** + * en: Client connecting + * zh: 客户端连接中 + */ + CONNECTING = 'client.connecting', + /** + * en: Client interrupted + * zh: 客户端中断 + */ + INTERRUPTED = 'client.interrupted', + /** + * en: Client disconnected + * zh: 客户端断开 + */ + DISCONNECTED = 'client.disconnected', + /** + * en: Client audio unmuted + * zh: 客户端音频未静音 + */ + AUDIO_UNMUTED = 'client.audio.unmuted', + /** + * en: Client audio muted + * zh: 客户端音频静音 + */ + AUDIO_MUTED = 'client.audio.muted', + /** + * en: Client video on + * zh: 客户端视频开启 + */ + VIDEO_ON = 'client.video.on', + /** + * en: Client video off + * zh: 客户端视频关闭 + */ + VIDEO_OFF = 'client.video.off', + /** + * en: Client video event + * zh: 客户端视频事件 + */ + PLAYER_EVENT = 'client.video.event', + /** + * en: Client error + * zh: 客户端错误 + */ + ERROR = 'client.error', + /** + * en: Audio noise reduction enabled + * zh: 抑制平稳噪声 + */ + SUPPRESS_STATIONARY_NOISE = 'client.suppress.stationary.noise', + /** + * en: Suppress non-stationary noise + * zh: 抑制非平稳噪声 + */ + SUPPRESS_NON_STATIONARY_NOISE = 'client.suppress.non.stationary.noise', + /** + * en: Audio input device changed + * zh: 音频输入设备改变 + */ + AUDIO_INPUT_DEVICE_CHANGED = 'client.input.device.changed', + /** + * en: Audio output device changed + * zh: 音频输出设备改变 + */ + AUDIO_OUTPUT_DEVICE_CHANGED = 'client.output.device.changed', + /** + * en: Video input device changed + * zh: 视频输入设备改变 + */ + VIDEO_INPUT_DEVICE_CHANGED = 'client.video.input.device.changed', + /** + * en: Network quality changed + * zh: 网络质量改变 + */ + NETWORK_QUALITY = 'client.network.quality', + /** + * en: Bot joined + * zh: Bot 加入 + */ + BOT_JOIN = 'server.bot.join', + /** + * en: Bot left + * zh: Bot 离开 + */ + BOT_LEAVE = 'server.bot.leave', + /** + * en: Audio speech started + * zh: 开始说话 + */ + AUDIO_AGENT_SPEECH_STARTED = 'server.audio.agent.speech_started', + /** + * en: Audio speech stopped + * zh: 停止说话 + */ + AUDIO_AGENT_SPEECH_STOPPED = 'server.audio.agent.speech_stopped', + /** + * en: Server error + * zh: 服务端错误 + */ + SERVER_ERROR = 'server.error', + /** + * en: User speech started + * zh: 用户开始说话 + */ + AUDIO_USER_SPEECH_STARTED = 'server.audio.user.speech_started', + /** + * en: User speech stopped + * zh: 用户停止说话 + */ + AUDIO_USER_SPEECH_STOPPED = 'server.audio.user.speech_stopped', + /** + * en: User successfully enters the room + * zh: 用户成功进入房间后,会收到该事件 + */ + SESSION_CREATED = 'server.session.created', + /** + * en: Session updated + * zh: 会话更新 + */ + SESSION_UPDATE = 'server.session.update', +} + +export default EventNames; diff --git a/packages/realtime-api/src/index.ts b/packages/realtime-api/src/index.ts index 2f2984d8..d2910db5 100644 --- a/packages/realtime-api/src/index.ts +++ b/packages/realtime-api/src/index.ts @@ -7,7 +7,8 @@ import { CozeAPI, type CreateRoomData, type GetToken } from '@coze/api'; import * as RealtimeUtils from './utils'; import { isScreenShareDevice } from './utils'; -import { RealtimeEventHandler, EventNames } from './event-handler'; +import EventNames from './event-names'; +import { RealtimeEventHandler } from './event-handler'; import { RealtimeAPIError, RealtimeError } from './error'; import { EngineClient } from './client'; diff --git a/packages/realtime-api/test/client.spec.ts b/packages/realtime-api/test/client.spec.ts index 601eab5c..bb20740b 100644 --- a/packages/realtime-api/test/client.spec.ts +++ b/packages/realtime-api/test/client.spec.ts @@ -3,7 +3,7 @@ import type { Mock } from 'vitest'; import VERTC, { MediaType, StreamIndex } from '@volcengine/rtc'; import * as utils from '../src/utils'; -import { EventNames } from '../src/event-handler'; +import EventNames from '../src/event-names'; import { RealtimeAPIError } from '../src/error'; import { EngineClient } from '../src/client'; diff --git a/packages/realtime-api/test/event-handler.spec.ts b/packages/realtime-api/test/event-handler.spec.ts index 7b49cb6f..65f10bf6 100644 --- a/packages/realtime-api/test/event-handler.spec.ts +++ b/packages/realtime-api/test/event-handler.spec.ts @@ -1,4 +1,5 @@ -import { RealtimeEventHandler, EventNames } from '../src/event-handler'; +import EventNames from '../src/event-names'; +import { RealtimeEventHandler } from '../src/event-handler'; import { RealtimeAPIError } from '../src/error'; describe('RealtimeEventHandler', () => {