diff --git a/.github/workflows/angular-codestyle.yml b/.github/workflows/angular-codestyle.yml
index 1813fd0ec..1e4b0bd1b 100644
--- a/.github/workflows/angular-codestyle.yml
+++ b/.github/workflows/angular-codestyle.yml
@@ -31,6 +31,22 @@ jobs:
- name: Pre-build dependencies
run: npm install yarn
+
+ - name: Build Local Porcupine Web SDK
+ run: yarn && yarn copywasm && yarn copyppn && yarn build
+ working-directory: resources/porcupine/binding/web
+
+ - name: Build Local Rhino Web SDK
+ run: yarn && yarn copywasm && yarn build
+ working-directory: resources/rhino/binding/web
+
+ - name: Build Local SDK
+ run: yarn && yarn build
+ working-directory: sdk/web
+
+ - name: Build Local Angular SDK
+ run: yarn && yarn build
+ working-directory: sdk/angular
- name: Run SDK Linter
run: yarn && yarn lint
diff --git a/.github/workflows/angular-demos.yml b/.github/workflows/angular-demos.yml
index c23dfe2a8..b7ccf82e7 100644
--- a/.github/workflows/angular-demos.yml
+++ b/.github/workflows/angular-demos.yml
@@ -25,7 +25,7 @@ jobs:
strategy:
matrix:
- node-version: [14.x, 16.x, 18.x, 20.x]
+ node-version: [16.x, 18.x, 20.x]
steps:
- uses: actions/checkout@v3
@@ -39,6 +39,22 @@ jobs:
- name: Pre-build dependencies
run: npm install yarn --force
+
+ - name: Build Local Porcupine Web SDK
+ run: yarn && yarn copywasm && yarn copyppn && yarn build
+ working-directory: resources/porcupine/binding/web
+
+ - name: Build Local Rhino Web SDK
+ run: yarn && yarn copywasm && yarn build
+ working-directory: resources/rhino/binding/web
+
+ - name: Build Local SDK
+ run: yarn && yarn build
+ working-directory: sdk/web
+
+ - name: Build Local Angular SDK
+ run: yarn && yarn build
+ working-directory: sdk/angular
- name: Install dependencies
run: yarn install
diff --git a/.github/workflows/angular.yml b/.github/workflows/angular.yml
index 629df7594..dc5f0e4fc 100644
--- a/.github/workflows/angular.yml
+++ b/.github/workflows/angular.yml
@@ -29,7 +29,7 @@ jobs:
strategy:
matrix:
- node-version: [14.x, 16.x, 18.x, 20.x]
+ node-version: [16.x, 18.x, 20.x]
steps:
- uses: actions/checkout@v3
@@ -43,6 +43,18 @@ jobs:
- name: Pre-build dependencies
run: npm install yarn --force
+
+ - name: Build Local Porcupine Web SDK
+ run: yarn && yarn copywasm && yarn copyppn && yarn build
+ working-directory: resources/porcupine/binding/web
+
+ - name: Build Local Rhino Web SDK
+ run: yarn && yarn copywasm && yarn build
+ working-directory: resources/rhino/binding/web
+
+ - name: Build Local SDK
+ run: yarn && yarn build
+ working-directory: sdk/web
- name: Install dependencies
run: yarn install
diff --git a/.github/workflows/react-codestyle.yml b/.github/workflows/react-codestyle.yml
index 9013264b8..5a0df1d9a 100644
--- a/.github/workflows/react-codestyle.yml
+++ b/.github/workflows/react-codestyle.yml
@@ -35,6 +35,22 @@ jobs:
- name: Pre-build dependencies
run: npm install yarn
+
+ - name: Build Local Porcupine Web SDK
+ run: yarn && yarn copywasm && yarn copyppn && yarn build
+ working-directory: resources/porcupine/binding/web
+
+ - name: Build Local Rhino Web SDK
+ run: yarn && yarn copywasm && yarn build
+ working-directory: resources/rhino/binding/web
+
+ - name: Build Local SDK
+ run: yarn && yarn build
+ working-directory: sdk/web
+
+ - name: Build Local React SDK
+ run: yarn && yarn build
+ working-directory: sdk/react
- name: Run SDK Linter
run: yarn && yarn lint
diff --git a/.github/workflows/react-demos.yml b/.github/workflows/react-demos.yml
index 090949cff..a9532f5d3 100644
--- a/.github/workflows/react-demos.yml
+++ b/.github/workflows/react-demos.yml
@@ -25,7 +25,7 @@ jobs:
strategy:
matrix:
- node-version: [14.x, 16.x, 18.x, 20.x]
+ node-version: [16.x, 18.x, 20.x]
steps:
- uses: actions/checkout@v3
@@ -39,6 +39,22 @@ jobs:
- name: Pre-build dependencies
run: npm install yarn
+
+ - name: Build Local Porcupine Web SDK
+ run: yarn && yarn copywasm && yarn copyppn && yarn build
+ working-directory: resources/porcupine/binding/web
+
+ - name: Build Local Rhino Web SDK
+ run: yarn && yarn copywasm && yarn build
+ working-directory: resources/rhino/binding/web
+
+ - name: Build Local SDK
+ run: yarn && yarn build
+ working-directory: sdk/web
+
+ - name: Build Local React SDK
+ run: yarn && yarn build
+ working-directory: sdk/react
- name: Install dependencies
run: yarn install
diff --git a/.github/workflows/react.yml b/.github/workflows/react.yml
index b8ad46376..9949aa203 100644
--- a/.github/workflows/react.yml
+++ b/.github/workflows/react.yml
@@ -29,7 +29,7 @@ jobs:
strategy:
matrix:
- node-version: [14.x, 16.x, 18.x, 20.x]
+ node-version: [16.x, 18.x, 20.x]
steps:
- uses: actions/checkout@v3
@@ -43,6 +43,18 @@ jobs:
- name: Pre-build dependencies
run: npm install yarn
+
+ - name: Build Local Porcupine Web SDK
+ run: yarn && yarn copywasm && yarn copyppn && yarn build
+ working-directory: resources/porcupine/binding/web
+
+ - name: Build Local Rhino Web SDK
+ run: yarn && yarn copywasm && yarn build
+ working-directory: resources/rhino/binding/web
+
+ - name: Build Local SDK
+ run: yarn && yarn build
+ working-directory: sdk/web
- name: Install dependencies
run: yarn install
diff --git a/.github/workflows/vue-codestyle.yml b/.github/workflows/vue-codestyle.yml
index 1408b7884..00d5bbd25 100644
--- a/.github/workflows/vue-codestyle.yml
+++ b/.github/workflows/vue-codestyle.yml
@@ -35,6 +35,22 @@ jobs:
- name: Pre-build dependencies
run: npm install yarn
+
+ - name: Build Local Porcupine Web SDK
+ run: yarn && yarn copywasm && yarn copyppn && yarn build
+ working-directory: resources/porcupine/binding/web
+
+ - name: Build Local Rhino Web SDK
+ run: yarn && yarn copywasm && yarn build
+ working-directory: resources/rhino/binding/web
+
+ - name: Build Local SDK
+ run: yarn && yarn build
+ working-directory: sdk/web
+
+ - name: Build Local Vue SDK
+ run: yarn && yarn build
+ working-directory: sdk/vue
- name: Run SDK Linter
run: yarn && yarn lint
diff --git a/.github/workflows/vue-demos.yml b/.github/workflows/vue-demos.yml
index 7430ff57e..30a7dcabb 100644
--- a/.github/workflows/vue-demos.yml
+++ b/.github/workflows/vue-demos.yml
@@ -25,7 +25,7 @@ jobs:
strategy:
matrix:
- node-version: [14.x, 16.x, 18.x, 20.x]
+ node-version: [16.x, 18.x, 20.x]
steps:
- uses: actions/checkout@v3
@@ -39,6 +39,22 @@ jobs:
- name: Pre-build dependencies
run: npm install yarn
+
+ - name: Build Local Porcupine Web SDK
+ run: yarn && yarn copywasm && yarn copyppn && yarn build
+ working-directory: resources/porcupine/binding/web
+
+ - name: Build Local Rhino Web SDK
+ run: yarn && yarn copywasm && yarn build
+ working-directory: resources/rhino/binding/web
+
+ - name: Build Local SDK
+ run: yarn && yarn build
+ working-directory: sdk/web
+
+ - name: Build Local Vue SDK
+ run: yarn && yarn build
+ working-directory: sdk/vue
- name: Install dependencies
run: yarn install
diff --git a/.github/workflows/vue.yml b/.github/workflows/vue.yml
index 19c4e3f4f..caaff082f 100644
--- a/.github/workflows/vue.yml
+++ b/.github/workflows/vue.yml
@@ -29,7 +29,7 @@ jobs:
strategy:
matrix:
- node-version: [14.x, 16.x, 18.x, 20.x]
+ node-version: [16.x, 18.x, 20.x]
steps:
- uses: actions/checkout@v3
@@ -43,6 +43,18 @@ jobs:
- name: Pre-build dependencies
run: npm install yarn
+
+ - name: Build Local Porcupine Web SDK
+ run: yarn && yarn copywasm && yarn copyppn && yarn build
+ working-directory: resources/porcupine/binding/web
+
+ - name: Build Local Rhino Web SDK
+ run: yarn && yarn copywasm && yarn build
+ working-directory: resources/rhino/binding/web
+
+ - name: Build Local SDK
+ run: yarn && yarn build
+ working-directory: sdk/web
- name: Install dependencies
run: yarn install
diff --git a/demo/angular/package.json b/demo/angular/package.json
index ebe40369e..f242a1147 100644
--- a/demo/angular/package.json
+++ b/demo/angular/package.json
@@ -1,6 +1,6 @@
{
"name": "picovoice-angular-demo",
- "version": "2.2.0",
+ "version": "3.0.0",
"scripts": {
"ng": "ng",
"start": "node scripts/run_demo.js serve",
@@ -18,7 +18,7 @@
"@angular/platform-browser": "^15.0.3",
"@angular/platform-browser-dynamic": "^15.0.3",
"@angular/router": "^15.0.3",
- "@picovoice/picovoice-angular": "~2.2.1",
+ "@picovoice/picovoice-angular": "../../sdk/angular",
"@picovoice/web-voice-processor": "~4.0.8",
"rxjs": "~7.5.0",
"tslib": "^2.3.0",
diff --git a/demo/angular/src/app/voice_widget.component.html b/demo/angular/src/app/voice_widget.component.html
index 2df6a9491..30196571f 100644
--- a/demo/angular/src/app/voice_widget.component.html
+++ b/demo/angular/src/app/voice_widget.component.html
@@ -18,7 +18,7 @@
Picovoice Loaded: {{ isLoaded }}
Listening: {{ isListening }}
Error: {{ error !== null }}
-
{{ error.toString() }}
+ {{ error.message }}
diff --git a/demo/angular/src/app/voice_widget.component.scss b/demo/angular/src/app/voice_widget.component.scss
index 008c1e904..3c6700da5 100644
--- a/demo/angular/src/app/voice_widget.component.scss
+++ b/demo/angular/src/app/voice_widget.component.scss
@@ -21,7 +21,9 @@
border-left: 5px solid red;
font-family: monospace;
font-weight: bold;
- font-size: 1.5rem;
+ font-size: 1.2rem;
+ white-space: pre;
+ overflow-wrap: break-word;
}
overflow: hidden;
diff --git a/demo/angular/yarn.lock b/demo/angular/yarn.lock
index e10f42dc1..c480a9ce7 100644
--- a/demo/angular/yarn.lock
+++ b/demo/angular/yarn.lock
@@ -179,6 +179,13 @@
dependencies:
tslib "^2.3.0"
+"@angular/animations@~13.3.0":
+ version "13.3.12"
+ resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-13.3.12.tgz#5fbd2f5b796ed2b801df09d1b0925721d8a75ec3"
+ integrity sha512-dc2JDokKJuuNxzzZa9FvuQU71kYC/e0xCLjGxEgX48sGKwajHRGBuzYFb8EmvLeA24SshYGmrxN0vGG9GhLK6g==
+ dependencies:
+ tslib "^2.3.0"
+
"@angular/cli@^15.0.3":
version "15.0.4"
resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-15.0.4.tgz#c0bf88a668bd6550dc85298cf229032a8d72f142"
@@ -210,6 +217,13 @@
dependencies:
tslib "^2.3.0"
+"@angular/common@~13.3.0":
+ version "13.3.12"
+ resolved "https://registry.yarnpkg.com/@angular/common/-/common-13.3.12.tgz#6ef3187232415e69995eb590a12ebcd44e457425"
+ integrity sha512-Nk4zNKfda92aFe+cucHRv2keyryR7C1ZnsurwZW9WZSobpY3z2tTT81F+yy35lGoMt5BDBAIpfh1b4j9Ue/vMg==
+ dependencies:
+ tslib "^2.3.0"
+
"@angular/compiler-cli@^15.0.3":
version "15.0.4"
resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-15.0.4.tgz#dfe699846cd5d69f5e0d33164173eb2ecba20b72"
@@ -233,6 +247,13 @@
dependencies:
tslib "^2.3.0"
+"@angular/compiler@~13.3.0":
+ version "13.3.12"
+ resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.3.12.tgz#9fa94d116310060bcdd429c24d593b70f8a082da"
+ integrity sha512-F5vJYrjbNvEWoVz9J/CqiT3Iod6g9bV0dGI5EeURcW4yHXHZ12ioQpfU3+bE7qXcTlnofbdDhK8cGxGx01SzBA==
+ dependencies:
+ tslib "^2.3.0"
+
"@angular/core@^15.0.3":
version "15.0.4"
resolved "https://registry.yarnpkg.com/@angular/core/-/core-15.0.4.tgz#699105cbd7651dd679b623032100bf55fd616380"
@@ -240,6 +261,13 @@
dependencies:
tslib "^2.3.0"
+"@angular/core@~13.3.0":
+ version "13.3.12"
+ resolved "https://registry.yarnpkg.com/@angular/core/-/core-13.3.12.tgz#6817eec14a86a76dd6200dd6d1a89ca520968b09"
+ integrity sha512-jx0YC+NbPMbxGr5bXECkCEQv2RdVxR8AJNnabkPk8ZjwCpDzROrbELwwS1kunrZUhffcD15IhWGBvf1EGHAYDw==
+ dependencies:
+ tslib "^2.3.0"
+
"@angular/forms@^15.0.3":
version "15.0.4"
resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-15.0.4.tgz#8356ea4b314af06c904bc2fb3afec9e248f79f69"
@@ -247,6 +275,13 @@
dependencies:
tslib "^2.3.0"
+"@angular/forms@~13.3.0":
+ version "13.3.12"
+ resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-13.3.12.tgz#21a4a3f5d7539d42351b9f2a7cac10463b6b7c00"
+ integrity sha512-auow1TKZx44ha1ia8Jwg2xp2Q7BbpShG5Ft8tewL3T44aTmJY7svWOE/m+DkZ/SXHmTFnbZFobGU5aEfe0+pNw==
+ dependencies:
+ tslib "^2.3.0"
+
"@angular/platform-browser-dynamic@^15.0.3":
version "15.0.4"
resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.0.4.tgz#e7fa434df62ea1b64ed98dff79ab6ce3b083f78d"
@@ -254,6 +289,13 @@
dependencies:
tslib "^2.3.0"
+"@angular/platform-browser-dynamic@~13.3.0":
+ version "13.3.12"
+ resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.3.12.tgz#2c27c8eb135f643e31594752b28e134eb06e52ac"
+ integrity sha512-/hBggov0PxK/KNJqIu3MVc5k8f0iDbygDP8Z1k/J0FcllOSRdO4LsQd1fsCfGfwIUf0YWGyD7KraSGpBBiWlFg==
+ dependencies:
+ tslib "^2.3.0"
+
"@angular/platform-browser@^15.0.3":
version "15.0.4"
resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-15.0.4.tgz#d66edd3d8811ea5b2a0b7ce6c42708a85533b5d6"
@@ -261,6 +303,13 @@
dependencies:
tslib "^2.3.0"
+"@angular/platform-browser@~13.3.0":
+ version "13.3.12"
+ resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-13.3.12.tgz#913e42f5a1cc7f691a81554345a87ae4236ee14d"
+ integrity sha512-sfhQqU4xjTJCjkH62TQeH5/gkay/KzvNDF95J6NHi/Q6p2dbtzZdXuLJKR/sHxtF2kc505z5v9RNm6XMSXM1KA==
+ dependencies:
+ tslib "^2.3.0"
+
"@angular/router@^15.0.3":
version "15.0.4"
resolved "https://registry.yarnpkg.com/@angular/router/-/router-15.0.4.tgz#d5159d8b0ac745ad0f0ffe8029d67c7d52681f8c"
@@ -268,6 +317,13 @@
dependencies:
tslib "^2.3.0"
+"@angular/router@~13.3.0":
+ version "13.3.12"
+ resolved "https://registry.yarnpkg.com/@angular/router/-/router-13.3.12.tgz#5238a910a6af7a20efcd8c3235d60eb5feaa0692"
+ integrity sha512-X+TAxTAlqUd2gPm6drFBGVzQsbQWM5wmZ8S5D5i+86x7Ku0v2CUFICT6AUPSl9+FTPiexlL4FdmvQV2CnGTSUw==
+ dependencies:
+ tslib "^2.3.0"
+
"@assemblyscript/loader@^0.10.1":
version "0.10.1"
resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.10.1.tgz#70e45678f06c72fa2e350e8553ec4a4d72b92e06"
@@ -1461,36 +1517,20 @@
read-package-json-fast "^3.0.0"
which "^3.0.0"
-"@picovoice/picovoice-angular@~2.2.1":
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/@picovoice/picovoice-angular/-/picovoice-angular-2.2.1.tgz#021c91d9c5fd263a55b0cd2afc16854c6305be24"
- integrity sha512-mGYJxlF34J1FNKnJra3B7F6sHnd6vcdZuaW9/MhFpdTXv7bwfgXapmR03kg+LUdQyjMrXs6tIKr1ryMGZU6l4g==
- dependencies:
- "@picovoice/picovoice-web" "=2.2.1"
+"@picovoice/picovoice-angular@../../sdk/angular":
+ version "0.0.0"
+ dependencies:
+ "@angular/animations" "~13.3.0"
+ "@angular/common" "~13.3.0"
+ "@angular/compiler" "~13.3.0"
+ "@angular/core" "~13.3.0"
+ "@angular/forms" "~13.3.0"
+ "@angular/platform-browser" "~13.3.0"
+ "@angular/platform-browser-dynamic" "~13.3.0"
+ "@angular/router" "~13.3.0"
+ rxjs "~7.5.0"
tslib "^2.3.0"
-
-"@picovoice/picovoice-web@=2.2.1":
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/@picovoice/picovoice-web/-/picovoice-web-2.2.1.tgz#55f7f43ce7cd524616d3ceb2049576d2bcabd17e"
- integrity sha512-Wl5ikiwzUXAilEbXVKz3Up9xmuEgRplYbIob3NgdzixyJMB/6Vm2CsjC9kh8KqHvrk5HKb/RBRI2x4Hh/PpF9Q==
- dependencies:
- "@picovoice/porcupine-web" "=2.2.1"
- "@picovoice/rhino-web" "=2.2.1"
- "@picovoice/web-utils" "=1.3.1"
-
-"@picovoice/porcupine-web@=2.2.1":
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/@picovoice/porcupine-web/-/porcupine-web-2.2.1.tgz#d1302405309b8222105c216dc3dfc1ef346015f0"
- integrity sha512-EX40nkUwWusQrbUaQjn2ZP4lYBfjztcXrnFmXQPUL7NuknTVbDAG2t5pEzSTjyb6n/91nXcEOC1EGi5u3xRSzA==
- dependencies:
- "@picovoice/web-utils" "=1.3.1"
-
-"@picovoice/rhino-web@=2.2.1":
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/@picovoice/rhino-web/-/rhino-web-2.2.1.tgz#68ece011d99ecd638e8935147c8e443c294becf5"
- integrity sha512-kwNNvuUt+6x/kfLplLeCV1J2RbTZEkKwe5WoyY6yZbtJB1Tb/+HcWlNaeSU1kLTegxZ6UL+ETT/gay4psDKLmQ==
- dependencies:
- "@picovoice/web-utils" "=1.3.1"
+ zone.js "~0.11.4"
"@picovoice/web-utils@=1.3.1":
version "1.3.1"
diff --git a/demo/react/package.json b/demo/react/package.json
index e6aa813de..80a74cb1c 100644
--- a/demo/react/package.json
+++ b/demo/react/package.json
@@ -1,10 +1,10 @@
{
"name": "picovoice-react-demo",
- "version": "2.2.0",
+ "version": "3.0.0",
"private": true,
"description": "Picovoice React SDK demo (made with Create React App)",
"dependencies": {
- "@picovoice/picovoice-react": "~2.2.1",
+ "@picovoice/picovoice-react": "file:../../sdk/react",
"@picovoice/web-voice-processor": "~4.0.8",
"@types/react": "^18.0.17",
"@types/react-dom": "^18.0.6",
diff --git a/demo/react/src/App.css b/demo/react/src/App.css
index f9dc75f6d..5204759e4 100644
--- a/demo/react/src/App.css
+++ b/demo/react/src/App.css
@@ -26,5 +26,7 @@ button {
border-left: 5px solid red;
font-family: monospace;
font-weight: bold;
- font-size: 1.5rem;
+ font-size: 1.2rem;
+ white-space: pre;
+ overflow-wrap: break-word;
}
diff --git a/demo/react/src/VoiceWidget.tsx b/demo/react/src/VoiceWidget.tsx
index 7c24720ac..66092601e 100644
--- a/demo/react/src/VoiceWidget.tsx
+++ b/demo/react/src/VoiceWidget.tsx
@@ -55,7 +55,7 @@ export default function VoiceWidget() {
Listening: {JSON.stringify(isListening)}
Error: {JSON.stringify(error !== null)}
{error !== null && (
- {JSON.stringify(error)}
+ {error.message}
)}