@spatialwalk/avatarkit 1.0.0-beta.35 → 1.0.0-beta.37
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.
- package/CHANGELOG.md +13 -0
- package/README.md +39 -8
- package/dist/{StreamingAudioPlayer-eWy8xl8G.js → StreamingAudioPlayer-gV0axCZe.js} +54 -7
- package/dist/admin/eslint.config.d.ts +2 -0
- package/dist/admin/generated/buf/validate/validate.d.ts +397 -0
- package/dist/admin/generated/common/v1/models.d.ts +29 -0
- package/dist/admin/generated/console/v1/admin_app.d.ts +77 -0
- package/dist/admin/generated/console/v1/admin_auth.d.ts +69 -0
- package/dist/admin/generated/console/v1/admin_config.d.ts +157 -0
- package/dist/admin/generated/console/v1/admin_user.d.ts +84 -0
- package/dist/admin/generated/console/v1/admin_user_character.d.ts +107 -0
- package/dist/admin/generated/console/v1/app.d.ts +116 -0
- package/dist/admin/generated/console/v1/auth.d.ts +199 -0
- package/dist/admin/generated/console/v1/character.d.ts +74 -0
- package/dist/admin/generated/console/v1/collection_task.d.ts +183 -0
- package/dist/admin/generated/console/v1/console.d.ts +163 -0
- package/dist/admin/generated/console/v1/instance_management.d.ts +156 -0
- package/dist/admin/generated/console/v1/material.d.ts +180 -0
- package/dist/admin/generated/console/v1/pipetemplate.d.ts +106 -0
- package/dist/admin/generated/console/v1/task.d.ts +292 -0
- package/dist/admin/generated/console/v2/async_processing.d.ts +85 -0
- package/dist/admin/generated/google/api/annotations.d.ts +1 -0
- package/dist/admin/generated/google/api/http.d.ts +47 -0
- package/dist/admin/generated/google/protobuf/any.d.ts +27 -0
- package/dist/admin/generated/google/protobuf/descriptor.d.ts +552 -0
- package/dist/admin/generated/google/protobuf/duration.d.ts +27 -0
- package/dist/admin/generated/google/protobuf/empty.d.ts +25 -0
- package/dist/admin/generated/google/protobuf/struct.d.ts +74 -0
- package/dist/admin/generated/google/protobuf/timestamp.d.ts +27 -0
- package/dist/admin/generated/jsonapi/v1/base.d.ts +108 -0
- package/dist/admin/generated/platform/v1/asset_groups.d.ts +204 -0
- package/dist/admin/generated/platform/v1/assets.d.ts +141 -0
- package/dist/admin/generated/platform/v1/auth.d.ts +79 -0
- package/dist/admin/generated/platform/v1/character.d.ts +382 -0
- package/dist/admin/generated/platform/v1/character_template.d.ts +124 -0
- package/dist/admin/generated/platform/v1/christmas_characters.d.ts +118 -0
- package/dist/admin/generated/platform/v1/collection_task.d.ts +60 -0
- package/dist/admin/generated/platform/v1/config.d.ts +130 -0
- package/dist/admin/generated/platform/v1/configkv.d.ts +105 -0
- package/dist/admin/generated/platform/v1/console.d.ts +29 -0
- package/dist/admin/generated/platform/v1/instance_management.d.ts +156 -0
- package/dist/admin/generated/platform/v1/joi_model_apply.d.ts +100 -0
- package/dist/admin/generated/platform/v1/material.d.ts +29 -0
- package/dist/admin/generated/platform/v1/model_evaluation.d.ts +100 -0
- package/dist/admin/generated/platform/v1/oss.d.ts +53 -0
- package/dist/admin/generated/platform/v1/pipetemplate.d.ts +106 -0
- package/dist/admin/generated/platform/v1/provider.d.ts +141 -0
- package/dist/admin/generated/platform/v1/redeem.d.ts +83 -0
- package/dist/admin/generated/platform/v1/sms_send_log.d.ts +95 -0
- package/dist/admin/generated/platform/v1/task.d.ts +39 -0
- package/dist/admin/generated/platform/v1/user.d.ts +142 -0
- package/dist/admin/generated/platform/v1/voice.d.ts +141 -0
- package/dist/admin/generated/realtime/v1/auth.d.ts +77 -0
- package/dist/admin/generated/realtime/v1/customized.d.ts +60 -0
- package/dist/admin/generated/realtime/v1/messages.d.ts +156 -0
- package/dist/admin/generated/realtime/v1/realtime.d.ts +67 -0
- package/dist/admin/generated/realtime/v1/redeem.d.ts +44 -0
- package/dist/admin/generated/realtime/v1/user.d.ts +150 -0
- package/dist/admin/generated/realtime/v2/auth.d.ts +68 -0
- package/dist/admin/generated/realtime/v2/callback.d.ts +56 -0
- package/dist/admin/generated/realtime/v2/joi_avatar.d.ts +204 -0
- package/dist/admin/generated/realtime/v2/model_apply.d.ts +138 -0
- package/dist/admin/generated/realtime/v2/realtime.d.ts +70 -0
- package/dist/admin/generated/realtime/v2/user.d.ts +96 -0
- package/dist/admin/openapi-ts.config.d.ts +8 -0
- package/dist/admin/src/apis/useAssetApi.d.ts +17 -0
- package/dist/admin/src/apis/useAssetGroupApi.d.ts +26 -0
- package/dist/admin/src/apis/useCharacterApi.d.ts +21 -0
- package/dist/admin/src/apis/useCharacterTemplateApi.d.ts +20 -0
- package/dist/admin/src/apis/useChristmasCharactersApi.d.ts +40 -0
- package/dist/admin/src/apis/useCollectionTaskApi.d.ts +64 -0
- package/dist/admin/src/apis/useConfigApi.d.ts +16 -0
- package/dist/admin/src/apis/useConsoleApi.d.ts +24 -0
- package/dist/admin/src/apis/useInstanceManagementApi.d.ts +19 -0
- package/dist/admin/src/apis/useJoiModelApplyApi.d.ts +11 -0
- package/dist/admin/src/apis/useMaterialApi.d.ts +1 -0
- package/dist/admin/src/apis/useOssApi.d.ts +15 -0
- package/dist/admin/src/apis/usePipelineTemplateApi.d.ts +8 -0
- package/dist/admin/src/apis/useProviderApi.d.ts +16 -0
- package/dist/admin/src/apis/useRedeemApi.d.ts +5 -0
- package/dist/admin/src/apis/useSmsSendLogApi.d.ts +14 -0
- package/dist/admin/src/apis/useTaskApi.d.ts +66 -0
- package/dist/admin/src/apis/useUserApi.d.ts +17 -0
- package/dist/admin/src/apis/useVoiceApi.d.ts +15 -0
- package/dist/admin/src/client/client/client.gen.d.ts +2 -0
- package/dist/admin/src/client/client/index.d.ts +8 -0
- package/dist/admin/src/client/client/types.gen.d.ts +70 -0
- package/dist/admin/src/client/client/utils.gen.d.ts +31 -0
- package/dist/admin/src/client/client.gen.d.ts +5 -0
- package/dist/admin/src/client/core/auth.gen.d.ts +8 -0
- package/dist/admin/src/client/core/bodySerializer.gen.d.ts +21 -0
- package/dist/admin/src/client/core/params.gen.d.ts +27 -0
- package/dist/admin/src/client/core/pathSerializer.gen.d.ts +30 -0
- package/dist/admin/src/client/core/queryKeySerializer.gen.d.ts +9 -0
- package/dist/admin/src/client/core/serverSentEvents.gen.d.ts +23 -0
- package/dist/admin/src/client/core/types.gen.d.ts +32 -0
- package/dist/admin/src/client/core/utils.gen.d.ts +19 -0
- package/dist/admin/src/client/index.d.ts +2 -0
- package/dist/admin/src/client/sdk.gen.d.ts +245 -0
- package/dist/admin/src/client/types.gen.d.ts +4009 -0
- package/dist/admin/src/client/valibot.gen.d.ts +7814 -0
- package/dist/admin/src/components/ui/alert/index.d.ts +8 -0
- package/dist/admin/src/components/ui/alert-dialog/index.d.ts +9 -0
- package/dist/admin/src/components/ui/avatar/index.d.ts +9 -0
- package/dist/admin/src/components/ui/badge/index.d.ts +6 -0
- package/dist/admin/src/components/ui/breadcrumb/index.d.ts +7 -0
- package/dist/admin/src/components/ui/button/index.d.ts +7 -0
- package/dist/admin/src/components/ui/card/index.d.ts +6 -0
- package/dist/admin/src/components/ui/checkbox/index.d.ts +1 -0
- package/dist/admin/src/components/ui/collapsible/index.d.ts +3 -0
- package/dist/admin/src/components/ui/combobox/index.d.ts +9 -0
- package/dist/admin/src/components/ui/dialog/index.d.ts +9 -0
- package/dist/admin/src/components/ui/dropdown-menu/index.d.ts +15 -0
- package/dist/admin/src/components/ui/filter-popover/index.d.ts +1 -0
- package/dist/admin/src/components/ui/form/index.d.ts +7 -0
- package/dist/admin/src/components/ui/form/injectionKeys.d.ts +2 -0
- package/dist/admin/src/components/ui/form/useFormField.d.ts +11 -0
- package/dist/admin/src/components/ui/input/index.d.ts +1 -0
- package/dist/admin/src/components/ui/label/index.d.ts +1 -0
- package/dist/admin/src/components/ui/popover/index.d.ts +4 -0
- package/dist/admin/src/components/ui/progress/index.d.ts +1 -0
- package/dist/admin/src/components/ui/select/index.d.ts +11 -0
- package/dist/admin/src/components/ui/separator/index.d.ts +1 -0
- package/dist/admin/src/components/ui/sheet/index.d.ts +13 -0
- package/dist/admin/src/components/ui/sidebar/index.d.ts +37 -0
- package/dist/admin/src/components/ui/sidebar/utils.d.ts +54 -0
- package/dist/admin/src/components/ui/skeleton/index.d.ts +1 -0
- package/dist/admin/src/components/ui/slider/index.d.ts +1 -0
- package/dist/admin/src/components/ui/switch/index.d.ts +1 -0
- package/dist/admin/src/components/ui/tabs/index.d.ts +4 -0
- package/dist/admin/src/components/ui/tags-input/index.d.ts +5 -0
- package/dist/admin/src/components/ui/textarea/index.d.ts +1 -0
- package/dist/admin/src/components/ui/tooltip/index.d.ts +4 -0
- package/dist/admin/src/composables/useApi.d.ts +21 -0
- package/dist/admin/src/composables/useAppStorage.d.ts +9 -0
- package/dist/admin/src/composables/useAssetUpload.d.ts +31 -0
- package/dist/admin/src/composables/useCharacterForm.d.ts +139 -0
- package/dist/admin/src/composables/useCharacterSettings.d.ts +27 -0
- package/dist/admin/src/composables/useCharacterTemplateForm.d.ts +47 -0
- package/dist/admin/src/composables/useCollectionTaskFilters.d.ts +12 -0
- package/dist/admin/src/composables/useFileUpload.d.ts +26 -0
- package/dist/admin/src/composables/useMaterialFilters.d.ts +14 -0
- package/dist/admin/src/composables/useModelEvaluation.d.ts +22 -0
- package/dist/admin/src/composables/useModelEvaluationWebSocket.d.ts +111 -0
- package/dist/admin/src/composables/useModelSettings.d.ts +12 -0
- package/dist/admin/src/composables/usePageScrollLock.d.ts +6 -0
- package/dist/admin/src/composables/useTaskFilters.d.ts +11 -0
- package/dist/admin/src/composables/useTestGroundProviders.d.ts +51 -0
- package/dist/admin/src/constants/character.d.ts +4 -0
- package/dist/admin/src/constants/collection-task.d.ts +5 -0
- package/dist/admin/src/constants/config-previews.d.ts +8 -0
- package/dist/admin/src/constants/container.d.ts +1 -0
- package/dist/admin/src/constants/links.d.ts +7 -0
- package/dist/admin/src/constants/nav.d.ts +17 -0
- package/dist/admin/src/constants/providers.d.ts +17 -0
- package/dist/admin/src/constants/regions.d.ts +10 -0
- package/dist/admin/src/constants/test-ground-voices.d.ts +19 -0
- package/dist/admin/src/constants/ui.d.ts +4 -0
- package/dist/admin/src/constants/voice.d.ts +12 -0
- package/dist/admin/src/constants/volc.d.ts +135 -0
- package/dist/admin/src/lib/cos/constants.d.ts +6 -0
- package/dist/admin/src/lib/cos/useCosDownload.d.ts +39 -0
- package/dist/admin/src/lib/cos/useCosUpload.d.ts +47 -0
- package/dist/admin/src/lib/cos/useVideoInfoExtractor.d.ts +12 -0
- package/dist/admin/src/lib/cos/utils.d.ts +4 -0
- package/dist/admin/src/lib/utils.d.ts +49 -0
- package/dist/admin/src/main.d.ts +0 -0
- package/dist/admin/src/renderSystem/animation/utils/eventEmitter.d.ts +9 -0
- package/dist/admin/src/renderSystem/animation/utils/flameConverter.d.ts +18 -0
- package/dist/admin/src/renderSystem/audio/AnimationPlayer.d.ts +31 -0
- package/dist/admin/src/renderSystem/audio/StreamingAudioPlayer.d.ts +66 -0
- package/dist/admin/src/renderSystem/config/app-config.d.ts +39 -0
- package/dist/admin/src/renderSystem/config/constants.d.ts +3 -0
- package/dist/admin/src/renderSystem/config/sdk-config-loader.d.ts +5 -0
- package/dist/admin/src/renderSystem/core/Avatar.d.ts +8 -0
- package/dist/admin/src/renderSystem/core/AvatarController.d.ts +65 -0
- package/dist/admin/src/renderSystem/core/AvatarDownloader.d.ts +38 -0
- package/dist/admin/src/renderSystem/core/AvatarKit.d.ts +10 -0
- package/dist/admin/src/renderSystem/core/AvatarView.d.ts +67 -0
- package/dist/admin/src/renderSystem/generated/driveningress/v1/driveningress.d.ts +68 -0
- package/dist/admin/src/renderSystem/generated/driveningress/v2/driveningress.d.ts +3 -0
- package/dist/admin/src/renderSystem/generated/google/protobuf/struct.d.ts +74 -0
- package/dist/admin/src/renderSystem/generated/google/protobuf/timestamp.d.ts +27 -0
- package/dist/admin/src/renderSystem/renderer/RenderSystem.d.ts +1 -0
- package/dist/admin/src/renderSystem/renderer/covariance.d.ts +1 -0
- package/dist/admin/src/renderSystem/renderer/renderer.d.ts +7 -0
- package/dist/admin/src/renderSystem/renderer/sortSplats.d.ts +1 -0
- package/dist/admin/src/renderSystem/renderer/webgl/reorderData.d.ts +1 -0
- package/dist/admin/src/renderSystem/renderer/webgl/webglRenderer.d.ts +27 -0
- package/dist/admin/src/renderSystem/renderer/webgpu/webgpuRenderer.d.ts +27 -0
- package/dist/admin/src/renderSystem/types/character-settings.d.ts +18 -0
- package/dist/admin/src/renderSystem/types/character.d.ts +22 -0
- package/dist/admin/src/renderSystem/types/index.d.ts +62 -0
- package/dist/admin/src/renderSystem/utils/animation-interpolation.d.ts +7 -0
- package/dist/admin/src/renderSystem/utils/conversationId.d.ts +1 -0
- package/dist/admin/src/renderSystem/utils/error-utils.d.ts +3 -0
- package/dist/admin/src/renderSystem/utils/id-manager.d.ts +12 -0
- package/dist/admin/src/renderSystem/utils/logger.d.ts +14 -0
- package/dist/admin/src/renderSystem/wasm/avatarCoreAdapter.d.ts +101 -0
- package/dist/admin/src/renderSystem/wasm/avatarCoreMemory.d.ts +92 -0
- package/dist/admin/src/stores/providers.d.ts +336 -0
- package/dist/admin/src/stores/region.d.ts +19 -0
- package/dist/admin/src/stores/user.d.ts +112 -0
- package/dist/admin/src/types/character-settings.d.ts +18 -0
- package/dist/admin/src/types/character.d.ts +117 -0
- package/dist/admin/src/types/collection-task.d.ts +11 -0
- package/dist/admin/src/types/config.d.ts +36 -0
- package/dist/admin/src/types/doubao-voice.d.ts +42 -0
- package/dist/admin/src/types/error.d.ts +5 -0
- package/dist/admin/src/types/model-settings.d.ts +41 -0
- package/dist/admin/src/types/task.d.ts +45 -0
- package/dist/admin/src/types/test-ground.d.ts +36 -0
- package/dist/admin/src/types/video-material.d.ts +130 -0
- package/dist/admin/src/types/voice.d.ts +58 -0
- package/dist/admin/src/utils/asset-config-loader.d.ts +10 -0
- package/dist/admin/src/utils/collection-task.d.ts +3 -0
- package/dist/admin/src/utils/error.d.ts +1 -0
- package/dist/admin/src/utils/hash.d.ts +20 -0
- package/dist/admin/src/utils/model-settings.d.ts +9 -0
- package/dist/admin/src/utils/monad.d.ts +13 -0
- package/dist/admin/src/utils/task.d.ts +8 -0
- package/dist/admin/unocss.config.d.ts +2 -0
- package/dist/admin/vite.config.d.ts +2 -0
- package/dist/admin/vue-macros.config.d.ts +2 -0
- package/dist/animation/AnimationWebSocketClient.d.ts +3 -0
- package/dist/audio/StreamingAudioPlayer.d.ts +4 -0
- package/dist/core/AvatarController.d.ts +2 -0
- package/dist/generated/common/v1/models.d.ts +29 -0
- package/dist/generated/driveningress/v2/driveningress.d.ts +81 -0
- package/dist/{index-DgkjYDp2.js → index-DxIr4cus.js} +1355 -215
- package/dist/index.js +1 -1
- package/dist/renderer/webgpu/webgpuRenderer.d.ts +0 -1
- package/dist/types/index.d.ts +10 -1
- package/dist/utils/id-manager.d.ts +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.0-beta.37] - 2025-12-24
|
|
9
|
+
|
|
10
|
+
### 🐛 Bugfix
|
|
11
|
+
- Various bug fixes and improvements
|
|
12
|
+
|
|
13
|
+
## [1.0.0-beta.36] - 2025-12-20
|
|
14
|
+
|
|
15
|
+
### ✨ New Features
|
|
16
|
+
- **Audio Sample Rate Configuration** - Added configurable audio sample rate support in SDK initialization
|
|
17
|
+
- Added `audioFormat` configuration option with `channelCount` (fixed to 1) and `sampleRate` (supports: 8000, 16000, 22050, 24000, 32000, 44100, 48000 Hz, default: 16000)
|
|
18
|
+
- Audio recording and playback now automatically use the configured sample rate
|
|
19
|
+
- Vanilla demo updated with sample rate dropdown selector for easy testing
|
|
20
|
+
|
|
8
21
|
## [1.0.0-beta.35] - 2025-12-16
|
|
9
22
|
|
|
10
23
|
### 🔄 API Changes
|
package/README.md
CHANGED
|
@@ -45,6 +45,10 @@ const configuration: Configuration = {
|
|
|
45
45
|
// - LogLevel.error: Only error logs
|
|
46
46
|
// - LogLevel.warning: Warning and error logs
|
|
47
47
|
// - LogLevel.all: All logs (info, warning, error)
|
|
48
|
+
audioFormat: { // Optional, default is { channelCount: 1, sampleRate: 16000 }
|
|
49
|
+
channelCount: 1, // Fixed to 1 (mono)
|
|
50
|
+
sampleRate: 16000 // Supported: 8000, 16000, 22050, 24000, 32000, 44100, 48000 Hz
|
|
51
|
+
}
|
|
48
52
|
}
|
|
49
53
|
|
|
50
54
|
await AvatarSDK.initialize('your-app-id', configuration)
|
|
@@ -68,8 +72,8 @@ const avatarView = new AvatarView(avatar, container)
|
|
|
68
72
|
// 4. Start real-time communication (SDK mode only)
|
|
69
73
|
await avatarView.avatarController.start()
|
|
70
74
|
|
|
71
|
-
// 5. Send audio data (SDK mode, must be
|
|
72
|
-
const audioData = new ArrayBuffer(1024) // Example:
|
|
75
|
+
// 5. Send audio data (SDK mode, must be mono PCM16 format matching configured sample rate)
|
|
76
|
+
const audioData = new ArrayBuffer(1024) // Example: PCM16 audio data at configured sample rate
|
|
73
77
|
avatarView.avatarController.send(audioData, false) // Send audio data
|
|
74
78
|
avatarView.avatarController.send(audioData, true) // end=true marks the end of current conversation round
|
|
75
79
|
```
|
|
@@ -190,23 +194,37 @@ RenderSystem → WebGPU/WebGL → Canvas rendering
|
|
|
190
194
|
|
|
191
195
|
### Audio Format Requirements
|
|
192
196
|
|
|
193
|
-
**⚠️ Important:** The SDK requires audio data to be in **
|
|
197
|
+
**⚠️ Important:** The SDK requires audio data to be in **mono PCM16** format:
|
|
194
198
|
|
|
195
|
-
- **Sample Rate**:
|
|
196
|
-
-
|
|
199
|
+
- **Sample Rate**: Configurable via `audioFormat.sampleRate` in SDK initialization (default: 16000 Hz)
|
|
200
|
+
- Supported sample rates: 8000, 16000, 22050, 24000, 32000, 44100, 48000 Hz
|
|
201
|
+
- The configured sample rate will be used for both audio recording and playback
|
|
202
|
+
- **Channels**: Mono (single channel) - Fixed to 1 channel
|
|
197
203
|
- **Format**: PCM16 (16-bit signed integer, little-endian)
|
|
198
204
|
- **Byte Order**: Little-endian
|
|
199
205
|
|
|
200
206
|
**Audio Data Format:**
|
|
201
207
|
- Each sample is 2 bytes (16-bit)
|
|
202
208
|
- Audio data should be provided as `ArrayBuffer` or `Uint8Array`
|
|
203
|
-
- For example: 1 second of audio = 16000 samples × 2 bytes = 32000 bytes
|
|
209
|
+
- For example, with 16kHz sample rate: 1 second of audio = 16000 samples × 2 bytes = 32000 bytes
|
|
210
|
+
- For 48kHz sample rate: 1 second of audio = 48000 samples × 2 bytes = 96000 bytes
|
|
204
211
|
|
|
205
212
|
**Resampling:**
|
|
206
|
-
- If your audio source is at a different sample rate
|
|
213
|
+
- If your audio source is at a different sample rate, you must resample it to match the configured sample rate before sending to the SDK
|
|
207
214
|
- For high-quality resampling, we recommend using Web Audio API's `OfflineAudioContext` with anti-aliasing filtering
|
|
208
215
|
- See example projects for resampling implementation
|
|
209
216
|
|
|
217
|
+
**Configuration Example:**
|
|
218
|
+
```typescript
|
|
219
|
+
const configuration: Configuration = {
|
|
220
|
+
environment: Environment.cn,
|
|
221
|
+
audioFormat: {
|
|
222
|
+
channelCount: 1, // Fixed to 1 (mono)
|
|
223
|
+
sampleRate: 48000 // Choose from: 8000, 16000, 22050, 24000, 32000, 44100, 48000
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
210
228
|
## 📚 API Reference
|
|
211
229
|
|
|
212
230
|
### AvatarSDK
|
|
@@ -431,6 +449,12 @@ interface Configuration {
|
|
|
431
449
|
environment: Environment
|
|
432
450
|
drivingServiceMode?: DrivingServiceMode // Optional, default is 'sdk' (SDK mode)
|
|
433
451
|
logLevel?: LogLevel // Optional, default is 'off' (no logs)
|
|
452
|
+
audioFormat?: AudioFormat // Optional, default is { channelCount: 1, sampleRate: 16000 }
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
interface AudioFormat {
|
|
456
|
+
readonly channelCount: 1 // Fixed to 1 (mono)
|
|
457
|
+
readonly sampleRate: number // Supported: 8000, 16000, 22050, 24000, 32000, 44100, 48000 Hz, default: 16000
|
|
434
458
|
}
|
|
435
459
|
```
|
|
436
460
|
|
|
@@ -459,6 +483,11 @@ enum LogLevel {
|
|
|
459
483
|
- `LogLevel.error`: Only error logs
|
|
460
484
|
- `LogLevel.warning`: Warning and error logs
|
|
461
485
|
- `LogLevel.all`: All logs (info, warning, error)
|
|
486
|
+
- `audioFormat`: Configures audio sample rate and channel count
|
|
487
|
+
- `channelCount`: Fixed to 1 (mono channel)
|
|
488
|
+
- `sampleRate`: Audio sample rate in Hz (default: 16000)
|
|
489
|
+
- Supported values: 8000, 16000, 22050, 24000, 32000, 44100, 48000
|
|
490
|
+
- The configured sample rate will be used for both audio recording and playback
|
|
462
491
|
- `sessionToken`: Set separately via `AvatarSDK.setSessionToken()`, not in Configuration
|
|
463
492
|
|
|
464
493
|
```typescript
|
|
@@ -500,13 +529,15 @@ enum ConnectionState {
|
|
|
500
529
|
```typescript
|
|
501
530
|
enum ConversationState {
|
|
502
531
|
idle = 'idle', // Idle state (breathing animation)
|
|
503
|
-
playing = 'playing' // Playing state (active conversation)
|
|
532
|
+
playing = 'playing', // Playing state (active conversation)
|
|
533
|
+
pausing = 'pausing' // Pausing state (paused during playback)
|
|
504
534
|
}
|
|
505
535
|
```
|
|
506
536
|
|
|
507
537
|
**State Description:**
|
|
508
538
|
- `idle`: Avatar is in idle state (breathing animation), waiting for conversation to start
|
|
509
539
|
- `playing`: Avatar is playing conversation content (including during transition animations)
|
|
540
|
+
- `pausing`: Avatar playback is paused (e.g., when `end=false` and waiting for more audio data)
|
|
510
541
|
|
|
511
542
|
**Note:** During transition animations, the target state is notified immediately:
|
|
512
543
|
- When transitioning from `idle` to `playing`, the `playing` state is notified immediately
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import { A as APP_CONFIG, e as errorToMessage, l as logEvent, a as logger } from "./index-
|
|
4
|
+
import { A as APP_CONFIG, e as errorToMessage, l as logEvent, a as logger } from "./index-DxIr4cus.js";
|
|
5
5
|
class StreamingAudioPlayer {
|
|
6
6
|
constructor(options) {
|
|
7
7
|
__publicField(this, "audioContext", null);
|
|
@@ -17,9 +17,13 @@ class StreamingAudioPlayer {
|
|
|
17
17
|
__publicField(this, "isPlaying", false);
|
|
18
18
|
__publicField(this, "isPaused", false);
|
|
19
19
|
__publicField(this, "autoStartEnabled", true);
|
|
20
|
+
__publicField(this, "autoContinue", false);
|
|
20
21
|
__publicField(this, "audioChunks", []);
|
|
21
22
|
__publicField(this, "scheduledChunks", 0);
|
|
22
23
|
__publicField(this, "activeSources", /* @__PURE__ */ new Set());
|
|
24
|
+
__publicField(this, "lastScheduledChunkEndTime", 0);
|
|
25
|
+
__publicField(this, "lastGetCurrentTimeLog", 0);
|
|
26
|
+
__publicField(this, "scheduledChunkInfo", []);
|
|
23
27
|
__publicField(this, "gainNode", null);
|
|
24
28
|
__publicField(this, "volume", 1);
|
|
25
29
|
__publicField(this, "onEndedCallback");
|
|
@@ -70,6 +74,13 @@ class StreamingAudioPlayer {
|
|
|
70
74
|
isPlaying: this.isPlaying,
|
|
71
75
|
scheduledChunks: this.scheduledChunks
|
|
72
76
|
});
|
|
77
|
+
if (this.autoContinue && this.isPaused) {
|
|
78
|
+
this.log("[StreamingAudioPlayer] autoContinue=true, auto-resuming playback");
|
|
79
|
+
this.autoContinue = false;
|
|
80
|
+
this.resume().catch((err) => {
|
|
81
|
+
logger.errorWithError("Failed to auto-resume playback:", err);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
73
84
|
if (!this.isPlaying && this.autoStartEnabled && this.audioChunks.length > 0) {
|
|
74
85
|
this.log("[StreamingAudioPlayer] Auto-starting playback from addChunk");
|
|
75
86
|
this.startPlayback();
|
|
@@ -88,6 +99,7 @@ class StreamingAudioPlayer {
|
|
|
88
99
|
this.pausedTimeOffset = 0;
|
|
89
100
|
this.pausedAt = 0;
|
|
90
101
|
this.pausedAudioContextTime = 0;
|
|
102
|
+
this.autoContinue = false;
|
|
91
103
|
this.log("Starting new session", {
|
|
92
104
|
chunks: audioChunks.length
|
|
93
105
|
});
|
|
@@ -107,6 +119,9 @@ class StreamingAudioPlayer {
|
|
|
107
119
|
this.isPlaying = true;
|
|
108
120
|
this.sessionStartTime = this.audioContext.currentTime;
|
|
109
121
|
this.scheduledTime = this.sessionStartTime;
|
|
122
|
+
this.lastScheduledChunkEndTime = 0;
|
|
123
|
+
this.scheduledChunkInfo = [];
|
|
124
|
+
this.autoContinue = false;
|
|
110
125
|
this.log("[StreamingAudioPlayer] Starting playback", {
|
|
111
126
|
sessionStartTime: this.sessionStartTime,
|
|
112
127
|
bufferedChunks: this.audioChunks.length,
|
|
@@ -155,16 +170,30 @@ class StreamingAudioPlayer {
|
|
|
155
170
|
const source = this.audioContext.createBufferSource();
|
|
156
171
|
source.buffer = audioBuffer;
|
|
157
172
|
source.connect(this.gainNode);
|
|
158
|
-
|
|
173
|
+
const chunkStartTime = this.scheduledTime;
|
|
174
|
+
source.start(chunkStartTime);
|
|
175
|
+
const actualStartTime = Math.max(chunkStartTime, this.audioContext.currentTime);
|
|
176
|
+
this.scheduledChunkInfo.push({
|
|
177
|
+
startTime: actualStartTime,
|
|
178
|
+
duration: audioBuffer.duration
|
|
179
|
+
});
|
|
159
180
|
this.activeSources.add(source);
|
|
160
181
|
source.onended = () => {
|
|
161
182
|
this.activeSources.delete(source);
|
|
162
|
-
if (
|
|
163
|
-
|
|
164
|
-
|
|
183
|
+
if (this.activeSources.size === 0) {
|
|
184
|
+
const lastChunk = this.audioChunks[this.scheduledChunks - 1];
|
|
185
|
+
if (lastChunk && !lastChunk.isLast) {
|
|
186
|
+
this.log("All audio chunks ended but end=false, pausing and setting autoContinue");
|
|
187
|
+
this.autoContinue = true;
|
|
188
|
+
this.pause();
|
|
189
|
+
} else if (isLast) {
|
|
190
|
+
this.log("Last audio chunk ended, marking playback as ended");
|
|
191
|
+
this.markEnded();
|
|
192
|
+
}
|
|
165
193
|
}
|
|
166
194
|
};
|
|
167
195
|
this.scheduledTime += audioBuffer.duration;
|
|
196
|
+
this.lastScheduledChunkEndTime = this.scheduledTime - this.sessionStartTime - this.pausedTimeOffset;
|
|
168
197
|
this.scheduledChunks++;
|
|
169
198
|
this.log(`[StreamingAudioPlayer] Scheduled chunk ${chunkIndex + 1}/${this.audioChunks.length}`, {
|
|
170
199
|
startTime: this.scheduledTime - audioBuffer.duration,
|
|
@@ -225,8 +254,24 @@ class StreamingAudioPlayer {
|
|
|
225
254
|
return this.pausedAt;
|
|
226
255
|
}
|
|
227
256
|
const currentAudioTime = this.audioContext.currentTime;
|
|
228
|
-
|
|
229
|
-
|
|
257
|
+
if (this.activeSources.size === 0 && this.scheduledChunks > 0) {
|
|
258
|
+
return Math.max(0, this.lastScheduledChunkEndTime);
|
|
259
|
+
}
|
|
260
|
+
let totalPlayedDuration = 0;
|
|
261
|
+
for (let i = 0; i < this.scheduledChunkInfo.length; i++) {
|
|
262
|
+
const chunkInfo = this.scheduledChunkInfo[i];
|
|
263
|
+
const chunkEndTime = chunkInfo.startTime + chunkInfo.duration;
|
|
264
|
+
if (currentAudioTime < chunkInfo.startTime) {
|
|
265
|
+
break;
|
|
266
|
+
} else if (chunkEndTime <= currentAudioTime) {
|
|
267
|
+
totalPlayedDuration += chunkInfo.duration;
|
|
268
|
+
} else {
|
|
269
|
+
const playedTime = currentAudioTime - chunkInfo.startTime;
|
|
270
|
+
totalPlayedDuration += playedTime;
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return Math.max(0, totalPlayedDuration);
|
|
230
275
|
}
|
|
231
276
|
pause() {
|
|
232
277
|
if (!this.isPlaying || this.isPaused || !this.audioContext) {
|
|
@@ -251,6 +296,7 @@ class StreamingAudioPlayer {
|
|
|
251
296
|
if (!this.isPaused || !this.audioContext || !this.isPlaying) {
|
|
252
297
|
return;
|
|
253
298
|
}
|
|
299
|
+
this.autoContinue = false;
|
|
254
300
|
if (this.audioContext.state === "suspended") {
|
|
255
301
|
try {
|
|
256
302
|
await this.audioContext.resume();
|
|
@@ -300,6 +346,7 @@ class StreamingAudioPlayer {
|
|
|
300
346
|
this.activeSources.clear();
|
|
301
347
|
this.audioChunks = [];
|
|
302
348
|
this.scheduledChunks = 0;
|
|
349
|
+
this.autoContinue = false;
|
|
303
350
|
this.log("[StreamingAudioPlayer] Playback stopped, state reset");
|
|
304
351
|
}
|
|
305
352
|
setAutoStart(enabled) {
|
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from '@bufbuild/protobuf/wire';
|
|
2
|
+
import { FieldDescriptorProto_Type } from '../../google/protobuf/descriptor';
|
|
3
|
+
import { Duration } from '../../google/protobuf/duration';
|
|
4
|
+
import { Timestamp } from '../../google/protobuf/timestamp';
|
|
5
|
+
export declare const protobufPackage = "buf.validate";
|
|
6
|
+
|
|
7
|
+
export declare enum Ignore {
|
|
8
|
+
|
|
9
|
+
IGNORE_UNSPECIFIED = 0,
|
|
10
|
+
|
|
11
|
+
IGNORE_IF_UNPOPULATED = 1,
|
|
12
|
+
|
|
13
|
+
IGNORE_IF_DEFAULT_VALUE = 2,
|
|
14
|
+
|
|
15
|
+
IGNORE_ALWAYS = 3,
|
|
16
|
+
UNRECOGNIZED = -1
|
|
17
|
+
}
|
|
18
|
+
export declare function ignoreFromJSON(object: any): Ignore;
|
|
19
|
+
export declare function ignoreToJSON(object: Ignore): string;
|
|
20
|
+
|
|
21
|
+
export declare enum KnownRegex {
|
|
22
|
+
KNOWN_REGEX_UNSPECIFIED = 0,
|
|
23
|
+
|
|
24
|
+
KNOWN_REGEX_HTTP_HEADER_NAME = 1,
|
|
25
|
+
|
|
26
|
+
KNOWN_REGEX_HTTP_HEADER_VALUE = 2,
|
|
27
|
+
UNRECOGNIZED = -1
|
|
28
|
+
}
|
|
29
|
+
export declare function knownRegexFromJSON(object: any): KnownRegex;
|
|
30
|
+
export declare function knownRegexToJSON(object: KnownRegex): string;
|
|
31
|
+
|
|
32
|
+
export interface Rule {
|
|
33
|
+
id?: string | undefined;
|
|
34
|
+
message?: string | undefined;
|
|
35
|
+
expression?: string | undefined;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface MessageRules {
|
|
39
|
+
disabled?: boolean | undefined;
|
|
40
|
+
cel: Rule[];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface OneofRules {
|
|
44
|
+
required?: boolean | undefined;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface FieldRules {
|
|
48
|
+
cel: Rule[];
|
|
49
|
+
required?: boolean | undefined;
|
|
50
|
+
ignore?: Ignore | undefined;
|
|
51
|
+
float?: FloatRules | undefined;
|
|
52
|
+
double?: DoubleRules | undefined;
|
|
53
|
+
int32?: Int32Rules | undefined;
|
|
54
|
+
int64?: Int64Rules | undefined;
|
|
55
|
+
uint32?: UInt32Rules | undefined;
|
|
56
|
+
uint64?: UInt64Rules | undefined;
|
|
57
|
+
sint32?: SInt32Rules | undefined;
|
|
58
|
+
sint64?: SInt64Rules | undefined;
|
|
59
|
+
fixed32?: Fixed32Rules | undefined;
|
|
60
|
+
fixed64?: Fixed64Rules | undefined;
|
|
61
|
+
sfixed32?: SFixed32Rules | undefined;
|
|
62
|
+
sfixed64?: SFixed64Rules | undefined;
|
|
63
|
+
bool?: BoolRules | undefined;
|
|
64
|
+
string?: StringRules | undefined;
|
|
65
|
+
bytes?: BytesRules | undefined;
|
|
66
|
+
enum?: EnumRules | undefined;
|
|
67
|
+
repeated?: RepeatedRules | undefined;
|
|
68
|
+
map?: MapRules | undefined;
|
|
69
|
+
any?: AnyRules | undefined;
|
|
70
|
+
duration?: DurationRules | undefined;
|
|
71
|
+
timestamp?: TimestampRules | undefined;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface PredefinedRules {
|
|
75
|
+
cel: Rule[];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export interface FloatRules {
|
|
79
|
+
const?: number | undefined;
|
|
80
|
+
lt?: number | undefined;
|
|
81
|
+
lte?: number | undefined;
|
|
82
|
+
gt?: number | undefined;
|
|
83
|
+
gte?: number | undefined;
|
|
84
|
+
in: number[];
|
|
85
|
+
notIn: number[];
|
|
86
|
+
finite?: boolean | undefined;
|
|
87
|
+
example: number[];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface DoubleRules {
|
|
91
|
+
const?: number | undefined;
|
|
92
|
+
lt?: number | undefined;
|
|
93
|
+
lte?: number | undefined;
|
|
94
|
+
gt?: number | undefined;
|
|
95
|
+
gte?: number | undefined;
|
|
96
|
+
in: number[];
|
|
97
|
+
notIn: number[];
|
|
98
|
+
finite?: boolean | undefined;
|
|
99
|
+
example: number[];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface Int32Rules {
|
|
103
|
+
const?: number | undefined;
|
|
104
|
+
lt?: number | undefined;
|
|
105
|
+
lte?: number | undefined;
|
|
106
|
+
gt?: number | undefined;
|
|
107
|
+
gte?: number | undefined;
|
|
108
|
+
in: number[];
|
|
109
|
+
notIn: number[];
|
|
110
|
+
example: number[];
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export interface Int64Rules {
|
|
114
|
+
const?: string | undefined;
|
|
115
|
+
lt?: string | undefined;
|
|
116
|
+
lte?: string | undefined;
|
|
117
|
+
gt?: string | undefined;
|
|
118
|
+
gte?: string | undefined;
|
|
119
|
+
in: string[];
|
|
120
|
+
notIn: string[];
|
|
121
|
+
example: string[];
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export interface UInt32Rules {
|
|
125
|
+
const?: number | undefined;
|
|
126
|
+
lt?: number | undefined;
|
|
127
|
+
lte?: number | undefined;
|
|
128
|
+
gt?: number | undefined;
|
|
129
|
+
gte?: number | undefined;
|
|
130
|
+
in: number[];
|
|
131
|
+
notIn: number[];
|
|
132
|
+
example: number[];
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export interface UInt64Rules {
|
|
136
|
+
const?: string | undefined;
|
|
137
|
+
lt?: string | undefined;
|
|
138
|
+
lte?: string | undefined;
|
|
139
|
+
gt?: string | undefined;
|
|
140
|
+
gte?: string | undefined;
|
|
141
|
+
in: string[];
|
|
142
|
+
notIn: string[];
|
|
143
|
+
example: string[];
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export interface SInt32Rules {
|
|
147
|
+
const?: number | undefined;
|
|
148
|
+
lt?: number | undefined;
|
|
149
|
+
lte?: number | undefined;
|
|
150
|
+
gt?: number | undefined;
|
|
151
|
+
gte?: number | undefined;
|
|
152
|
+
in: number[];
|
|
153
|
+
notIn: number[];
|
|
154
|
+
example: number[];
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export interface SInt64Rules {
|
|
158
|
+
const?: string | undefined;
|
|
159
|
+
lt?: string | undefined;
|
|
160
|
+
lte?: string | undefined;
|
|
161
|
+
gt?: string | undefined;
|
|
162
|
+
gte?: string | undefined;
|
|
163
|
+
in: string[];
|
|
164
|
+
notIn: string[];
|
|
165
|
+
example: string[];
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export interface Fixed32Rules {
|
|
169
|
+
const?: number | undefined;
|
|
170
|
+
lt?: number | undefined;
|
|
171
|
+
lte?: number | undefined;
|
|
172
|
+
gt?: number | undefined;
|
|
173
|
+
gte?: number | undefined;
|
|
174
|
+
in: number[];
|
|
175
|
+
notIn: number[];
|
|
176
|
+
example: number[];
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export interface Fixed64Rules {
|
|
180
|
+
const?: string | undefined;
|
|
181
|
+
lt?: string | undefined;
|
|
182
|
+
lte?: string | undefined;
|
|
183
|
+
gt?: string | undefined;
|
|
184
|
+
gte?: string | undefined;
|
|
185
|
+
in: string[];
|
|
186
|
+
notIn: string[];
|
|
187
|
+
example: string[];
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export interface SFixed32Rules {
|
|
191
|
+
const?: number | undefined;
|
|
192
|
+
lt?: number | undefined;
|
|
193
|
+
lte?: number | undefined;
|
|
194
|
+
gt?: number | undefined;
|
|
195
|
+
gte?: number | undefined;
|
|
196
|
+
in: number[];
|
|
197
|
+
notIn: number[];
|
|
198
|
+
example: number[];
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export interface SFixed64Rules {
|
|
202
|
+
const?: string | undefined;
|
|
203
|
+
lt?: string | undefined;
|
|
204
|
+
lte?: string | undefined;
|
|
205
|
+
gt?: string | undefined;
|
|
206
|
+
gte?: string | undefined;
|
|
207
|
+
in: string[];
|
|
208
|
+
notIn: string[];
|
|
209
|
+
example: string[];
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export interface BoolRules {
|
|
213
|
+
const?: boolean | undefined;
|
|
214
|
+
example: boolean[];
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export interface StringRules {
|
|
218
|
+
const?: string | undefined;
|
|
219
|
+
len?: string | undefined;
|
|
220
|
+
minLen?: string | undefined;
|
|
221
|
+
maxLen?: string | undefined;
|
|
222
|
+
lenBytes?: string | undefined;
|
|
223
|
+
minBytes?: string | undefined;
|
|
224
|
+
maxBytes?: string | undefined;
|
|
225
|
+
pattern?: string | undefined;
|
|
226
|
+
prefix?: string | undefined;
|
|
227
|
+
suffix?: string | undefined;
|
|
228
|
+
contains?: string | undefined;
|
|
229
|
+
notContains?: string | undefined;
|
|
230
|
+
in: string[];
|
|
231
|
+
notIn: string[];
|
|
232
|
+
email?: boolean | undefined;
|
|
233
|
+
hostname?: boolean | undefined;
|
|
234
|
+
ip?: boolean | undefined;
|
|
235
|
+
ipv4?: boolean | undefined;
|
|
236
|
+
ipv6?: boolean | undefined;
|
|
237
|
+
uri?: boolean | undefined;
|
|
238
|
+
uriRef?: boolean | undefined;
|
|
239
|
+
address?: boolean | undefined;
|
|
240
|
+
uuid?: boolean | undefined;
|
|
241
|
+
tuuid?: boolean | undefined;
|
|
242
|
+
ipWithPrefixlen?: boolean | undefined;
|
|
243
|
+
ipv4WithPrefixlen?: boolean | undefined;
|
|
244
|
+
ipv6WithPrefixlen?: boolean | undefined;
|
|
245
|
+
ipPrefix?: boolean | undefined;
|
|
246
|
+
ipv4Prefix?: boolean | undefined;
|
|
247
|
+
ipv6Prefix?: boolean | undefined;
|
|
248
|
+
hostAndPort?: boolean | undefined;
|
|
249
|
+
wellKnownRegex?: KnownRegex | undefined;
|
|
250
|
+
strict?: boolean | undefined;
|
|
251
|
+
example: string[];
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
export interface BytesRules {
|
|
255
|
+
const?: Uint8Array | undefined;
|
|
256
|
+
len?: string | undefined;
|
|
257
|
+
minLen?: string | undefined;
|
|
258
|
+
maxLen?: string | undefined;
|
|
259
|
+
pattern?: string | undefined;
|
|
260
|
+
prefix?: Uint8Array | undefined;
|
|
261
|
+
suffix?: Uint8Array | undefined;
|
|
262
|
+
contains?: Uint8Array | undefined;
|
|
263
|
+
in: Uint8Array[];
|
|
264
|
+
notIn: Uint8Array[];
|
|
265
|
+
ip?: boolean | undefined;
|
|
266
|
+
ipv4?: boolean | undefined;
|
|
267
|
+
ipv6?: boolean | undefined;
|
|
268
|
+
example: Uint8Array[];
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
export interface EnumRules {
|
|
272
|
+
const?: number | undefined;
|
|
273
|
+
definedOnly?: boolean | undefined;
|
|
274
|
+
in: number[];
|
|
275
|
+
notIn: number[];
|
|
276
|
+
example: number[];
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
export interface RepeatedRules {
|
|
280
|
+
minItems?: string | undefined;
|
|
281
|
+
maxItems?: string | undefined;
|
|
282
|
+
unique?: boolean | undefined;
|
|
283
|
+
items?: FieldRules | undefined;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
export interface MapRules {
|
|
287
|
+
minPairs?: string | undefined;
|
|
288
|
+
maxPairs?: string | undefined;
|
|
289
|
+
keys?: FieldRules | undefined;
|
|
290
|
+
values?: FieldRules | undefined;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
export interface AnyRules {
|
|
294
|
+
in: string[];
|
|
295
|
+
notIn: string[];
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export interface DurationRules {
|
|
299
|
+
const?: Duration | undefined;
|
|
300
|
+
lt?: Duration | undefined;
|
|
301
|
+
lte?: Duration | undefined;
|
|
302
|
+
gt?: Duration | undefined;
|
|
303
|
+
gte?: Duration | undefined;
|
|
304
|
+
in: Duration[];
|
|
305
|
+
notIn: Duration[];
|
|
306
|
+
example: Duration[];
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
export interface TimestampRules {
|
|
310
|
+
const?: Timestamp | undefined;
|
|
311
|
+
lt?: Timestamp | undefined;
|
|
312
|
+
lte?: Timestamp | undefined;
|
|
313
|
+
ltNow?: boolean | undefined;
|
|
314
|
+
gt?: Timestamp | undefined;
|
|
315
|
+
gte?: Timestamp | undefined;
|
|
316
|
+
gtNow?: boolean | undefined;
|
|
317
|
+
within?: Duration | undefined;
|
|
318
|
+
example: Timestamp[];
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
export interface Violations {
|
|
322
|
+
violations: Violation[];
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
export interface Violation {
|
|
326
|
+
field?: FieldPath | undefined;
|
|
327
|
+
rule?: FieldPath | undefined;
|
|
328
|
+
ruleId?: string | undefined;
|
|
329
|
+
message?: string | undefined;
|
|
330
|
+
forKey?: boolean | undefined;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
export interface FieldPath {
|
|
334
|
+
elements: FieldPathElement[];
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
export interface FieldPathElement {
|
|
338
|
+
fieldNumber?: number | undefined;
|
|
339
|
+
fieldName?: string | undefined;
|
|
340
|
+
fieldType?: FieldDescriptorProto_Type | undefined;
|
|
341
|
+
keyType?: FieldDescriptorProto_Type | undefined;
|
|
342
|
+
valueType?: FieldDescriptorProto_Type | undefined;
|
|
343
|
+
index?: string | undefined;
|
|
344
|
+
boolKey?: boolean | undefined;
|
|
345
|
+
intKey?: string | undefined;
|
|
346
|
+
uintKey?: string | undefined;
|
|
347
|
+
stringKey?: string | undefined;
|
|
348
|
+
}
|
|
349
|
+
export declare const Rule: MessageFns<Rule>;
|
|
350
|
+
export declare const MessageRules: MessageFns<MessageRules>;
|
|
351
|
+
export declare const OneofRules: MessageFns<OneofRules>;
|
|
352
|
+
export declare const FieldRules: MessageFns<FieldRules>;
|
|
353
|
+
export declare const PredefinedRules: MessageFns<PredefinedRules>;
|
|
354
|
+
export declare const FloatRules: MessageFns<FloatRules>;
|
|
355
|
+
export declare const DoubleRules: MessageFns<DoubleRules>;
|
|
356
|
+
export declare const Int32Rules: MessageFns<Int32Rules>;
|
|
357
|
+
export declare const Int64Rules: MessageFns<Int64Rules>;
|
|
358
|
+
export declare const UInt32Rules: MessageFns<UInt32Rules>;
|
|
359
|
+
export declare const UInt64Rules: MessageFns<UInt64Rules>;
|
|
360
|
+
export declare const SInt32Rules: MessageFns<SInt32Rules>;
|
|
361
|
+
export declare const SInt64Rules: MessageFns<SInt64Rules>;
|
|
362
|
+
export declare const Fixed32Rules: MessageFns<Fixed32Rules>;
|
|
363
|
+
export declare const Fixed64Rules: MessageFns<Fixed64Rules>;
|
|
364
|
+
export declare const SFixed32Rules: MessageFns<SFixed32Rules>;
|
|
365
|
+
export declare const SFixed64Rules: MessageFns<SFixed64Rules>;
|
|
366
|
+
export declare const BoolRules: MessageFns<BoolRules>;
|
|
367
|
+
export declare const StringRules: MessageFns<StringRules>;
|
|
368
|
+
export declare const BytesRules: MessageFns<BytesRules>;
|
|
369
|
+
export declare const EnumRules: MessageFns<EnumRules>;
|
|
370
|
+
export declare const RepeatedRules: MessageFns<RepeatedRules>;
|
|
371
|
+
export declare const MapRules: MessageFns<MapRules>;
|
|
372
|
+
export declare const AnyRules: MessageFns<AnyRules>;
|
|
373
|
+
export declare const DurationRules: MessageFns<DurationRules>;
|
|
374
|
+
export declare const TimestampRules: MessageFns<TimestampRules>;
|
|
375
|
+
export declare const Violations: MessageFns<Violations>;
|
|
376
|
+
export declare const Violation: MessageFns<Violation>;
|
|
377
|
+
export declare const FieldPath: MessageFns<FieldPath>;
|
|
378
|
+
export declare const FieldPathElement: MessageFns<FieldPathElement>;
|
|
379
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
380
|
+
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
381
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
382
|
+
} : Partial<T>;
|
|
383
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
384
|
+
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
|
|
385
|
+
[K in keyof P]: Exact<P[K], I[K]>;
|
|
386
|
+
} & {
|
|
387
|
+
[K in Exclude<keyof I, KeysOfUnion<P>>]: never;
|
|
388
|
+
};
|
|
389
|
+
export interface MessageFns<T> {
|
|
390
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
391
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
392
|
+
fromJSON(object: any): T;
|
|
393
|
+
toJSON(message: T): unknown;
|
|
394
|
+
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
|
|
395
|
+
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
|
|
396
|
+
}
|
|
397
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from '@bufbuild/protobuf/wire';
|
|
2
|
+
export declare const protobufPackage = "common.v1";
|
|
3
|
+
|
|
4
|
+
export interface CustomAnimation {
|
|
5
|
+
key: string;
|
|
6
|
+
pbUrl: string;
|
|
7
|
+
wavUrl: string;
|
|
8
|
+
remark: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const CustomAnimation: MessageFns<CustomAnimation>;
|
|
11
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
12
|
+
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
13
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
14
|
+
} : Partial<T>;
|
|
15
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
16
|
+
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
|
|
17
|
+
[K in keyof P]: Exact<P[K], I[K]>;
|
|
18
|
+
} & {
|
|
19
|
+
[K in Exclude<keyof I, KeysOfUnion<P>>]: never;
|
|
20
|
+
};
|
|
21
|
+
export interface MessageFns<T> {
|
|
22
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
23
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
24
|
+
fromJSON(object: any): T;
|
|
25
|
+
toJSON(message: T): unknown;
|
|
26
|
+
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
|
|
27
|
+
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
|
|
28
|
+
}
|
|
29
|
+
export {};
|