From baf9b2f18c930778dc6426624580498498498d29 Mon Sep 17 00:00:00 2001 From: Marcus Pasell <3690498+rickyrombo@users.noreply.github.com> Date: Mon, 12 Jan 2026 19:07:34 -0800 Subject: [PATCH 1/5] More tslib fixes? --- package-lock.json | 833 ++++++++++++++-------------------------------- package.json | 1 + 2 files changed, 258 insertions(+), 576 deletions(-) diff --git a/package-lock.json b/package-lock.json index 89006cfa31c..2aadb9eaf0e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,7 @@ "react-native-safe-area-context": "^5.6.2", "react-native-webview": "^13.16.0", "react-select": "5.10.1", + "tslib": "^2.8.1", "valtio": "1.13.2" }, "devDependencies": { @@ -127,10 +128,6 @@ "tslib": "^2.4.1" } }, - "node_modules/@amplitude/analytics-browser/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@amplitude/analytics-client-common": { "version": "2.3.5", "license": "MIT", @@ -141,10 +138,6 @@ "tslib": "^2.4.1" } }, - "node_modules/@amplitude/analytics-client-common/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@amplitude/analytics-connector": { "version": "1.6.1", "license": "MIT", @@ -160,10 +153,6 @@ "tslib": "^2.4.1" } }, - "node_modules/@amplitude/analytics-core/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@amplitude/analytics-react-native": { "version": "1.4.11", "license": "MIT", @@ -219,10 +208,6 @@ "node": "*" } }, - "node_modules/@amplitude/analytics-react-native/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@amplitude/analytics-remote-config": { "version": "0.4.1", "license": "MIT", @@ -233,10 +218,6 @@ "tslib": "^2.4.1" } }, - "node_modules/@amplitude/analytics-remote-config/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@amplitude/analytics-types": { "version": "2.8.4", "license": "MIT" @@ -260,10 +241,6 @@ "node": ">=10" } }, - "node_modules/@amplitude/identify/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@amplitude/node": { "version": "1.9.2", "license": "MIT", @@ -277,6 +254,12 @@ "node": ">=10" } }, + "node_modules/@amplitude/node/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@amplitude/plugin-autocapture-browser": { "version": "1.0.3", "license": "MIT", @@ -287,10 +270,6 @@ "tslib": "^2.4.1" } }, - "node_modules/@amplitude/plugin-autocapture-browser/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@amplitude/plugin-page-view-tracking-browser": { "version": "2.3.5", "license": "MIT", @@ -300,10 +279,6 @@ "tslib": "^2.4.1" } }, - "node_modules/@amplitude/plugin-page-view-tracking-browser/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@amplitude/plugin-session-replay-browser": { "version": "1.8.2", "license": "MIT", @@ -320,10 +295,6 @@ "version": "6.2.1", "license": "Apache-2.0" }, - "node_modules/@amplitude/plugin-session-replay-browser/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@amplitude/rrdom": { "version": "2.0.0-alpha.26", "license": "MIT", @@ -386,10 +357,6 @@ "tslib": "^2.4.1" } }, - "node_modules/@amplitude/session-replay-browser/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@amplitude/types": { "version": "1.10.2", "license": "MIT", @@ -425,10 +392,6 @@ "node": ">=10" } }, - "node_modules/@amplitude/utils/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "license": "Apache-2.0", @@ -480,6 +443,12 @@ } } }, + "node_modules/@apollo/client/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@apollo/protobufjs": { "version": "1.2.7", "dev": true, @@ -1397,6 +1366,12 @@ "tslib": "^1.11.1" } }, + "node_modules/@aws-crypto/crc32/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@aws-crypto/crc32c": { "version": "3.0.0", "license": "Apache-2.0", @@ -1406,6 +1381,12 @@ "tslib": "^1.11.1" } }, + "node_modules/@aws-crypto/crc32c/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@aws-crypto/ie11-detection": { "version": "3.0.0", "license": "Apache-2.0", @@ -1413,6 +1394,12 @@ "tslib": "^1.11.1" } }, + "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@aws-crypto/sha1-browser": { "version": "3.0.0", "license": "Apache-2.0", @@ -1426,6 +1413,12 @@ "tslib": "^1.11.1" } }, + "node_modules/@aws-crypto/sha1-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@aws-crypto/sha256-browser": { "version": "3.0.0", "license": "Apache-2.0", @@ -1440,6 +1433,12 @@ "tslib": "^1.11.1" } }, + "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@aws-crypto/sha256-js": { "version": "3.0.0", "license": "Apache-2.0", @@ -1449,6 +1448,12 @@ "tslib": "^1.11.1" } }, + "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@aws-crypto/supports-web-crypto": { "version": "3.0.0", "license": "Apache-2.0", @@ -1456,6 +1461,12 @@ "tslib": "^1.11.1" } }, + "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@aws-crypto/util": { "version": "3.0.0", "license": "Apache-2.0", @@ -1465,6 +1476,12 @@ "tslib": "^1.11.1" } }, + "node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@aws-sdk/types": { "version": "3.502.0", "license": "Apache-2.0", @@ -1476,10 +1493,6 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/types/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@aws-sdk/util-locate-window": { "version": "3.495.0", "license": "Apache-2.0", @@ -1490,10 +1503,6 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/util-locate-window/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@aws-sdk/util-utf8-browser": { "version": "3.259.0", "license": "Apache-2.0", @@ -1501,10 +1510,6 @@ "tslib": "^2.3.1" } }, - "node_modules/@aws-sdk/util-utf8-browser/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@babel/cli": { "version": "7.7.0", "dev": true, @@ -6641,11 +6646,6 @@ "react": ">=16.8.0" } }, - "node_modules/@dnd-kit/accessibility/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/@dnd-kit/core": { "version": "6.1.0", "dev": true, @@ -6660,11 +6660,6 @@ "react-dom": ">=16.8.0" } }, - "node_modules/@dnd-kit/core/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/@dnd-kit/modifiers": { "version": "7.0.0", "dev": true, @@ -6678,11 +6673,6 @@ "react": ">=16.8.0" } }, - "node_modules/@dnd-kit/modifiers/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/@dnd-kit/sortable": { "version": "8.0.0", "dev": true, @@ -6696,11 +6686,6 @@ "react": ">=16.8.0" } }, - "node_modules/@dnd-kit/sortable/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/@dnd-kit/utilities": { "version": "3.2.2", "dev": true, @@ -6712,11 +6697,6 @@ "react": ">=16.8.0" } }, - "node_modules/@dnd-kit/utilities/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/@dual-bundle/import-meta-resolve": { "version": "4.1.0", "dev": true, @@ -6761,10 +6741,6 @@ "node": ">=12" } }, - "node_modules/@elastic/elasticsearch/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@elastic/transport": { "version": "8.3.4", "license": "Apache-2.0", @@ -6784,10 +6760,6 @@ "version": "2.1.3", "license": "MIT" }, - "node_modules/@elastic/transport/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@electron/asar": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.4.1.tgz", @@ -7540,13 +7512,6 @@ "tslib": "^2.4.0" } }, - "node_modules/@emnapi/runtime/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "optional": true - }, "node_modules/@emotion/babel-plugin": { "version": "11.13.5", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", @@ -9393,14 +9358,6 @@ "node": ">=18.17.0" } }, - "node_modules/@fingerprintjs/fingerprintjs-pro/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, - "node_modules/@fingerprintjs/fingerprintjs/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@floating-ui/core": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", @@ -9560,11 +9517,6 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/merge/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/@graphql-tools/schema": { "version": "9.0.19", "dev": true, @@ -9579,11 +9531,6 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/schema/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/@graphql-tools/utils": { "version": "9.2.1", "dev": true, @@ -9596,11 +9543,6 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/utils/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/@graphql-typed-document-node/core": { "version": "3.2.0", "license": "MIT", @@ -10752,10 +10694,6 @@ "node": ">=8" } }, - "node_modules/@injectivelabs/sdk-ts/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@injectivelabs/sdk-ts/node_modules/undici-types": { "version": "6.19.8", "license": "MIT" @@ -16383,12 +16321,6 @@ "tslib": "^2.3.1" } }, - "node_modules/@motionone/animation/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, "node_modules/@motionone/dom": { "version": "10.18.0", "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.18.0.tgz", @@ -16403,12 +16335,6 @@ "tslib": "^2.3.1" } }, - "node_modules/@motionone/dom/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, "node_modules/@motionone/easing": { "version": "10.18.0", "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.18.0.tgz", @@ -16419,12 +16345,6 @@ "tslib": "^2.3.1" } }, - "node_modules/@motionone/easing/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, "node_modules/@motionone/generators": { "version": "10.18.0", "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.18.0.tgz", @@ -16436,12 +16356,6 @@ "tslib": "^2.3.1" } }, - "node_modules/@motionone/generators/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, "node_modules/@motionone/svelte": { "version": "10.16.4", "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.4.tgz", @@ -16452,12 +16366,6 @@ "tslib": "^2.3.1" } }, - "node_modules/@motionone/svelte/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, "node_modules/@motionone/types": { "version": "10.17.1", "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.1.tgz", @@ -16475,12 +16383,6 @@ "tslib": "^2.3.1" } }, - "node_modules/@motionone/utils/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, "node_modules/@motionone/vue": { "version": "10.16.4", "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.4.tgz", @@ -16492,12 +16394,6 @@ "tslib": "^2.3.1" } }, - "node_modules/@motionone/vue/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", @@ -18485,10 +18381,6 @@ "tslib": "^2.6.2" } }, - "node_modules/@peculiar/asn1-schema/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@peculiar/json-schema": { "version": "1.1.12", "license": "MIT", @@ -18499,10 +18391,6 @@ "node": ">=8.0.0" } }, - "node_modules/@peculiar/json-schema/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@peculiar/webcrypto": { "version": "1.4.3", "license": "MIT", @@ -18517,10 +18405,6 @@ "node": ">=10.12.0" } }, - "node_modules/@peculiar/webcrypto/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@pedalboard/anti-abuse-oracle": { "resolved": "packages/discovery-provider/plugins/pedalboard/apps/anti-abuse-oracle", "link": true @@ -18714,10 +18598,6 @@ "node": ">=8" } }, - "node_modules/@pkgr/utils/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@playwright/test": { "version": "1.42.1", "dev": true, @@ -23580,6 +23460,12 @@ "node": ">=6" } }, + "node_modules/@reown/appkit-adapter-solana/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@reown/appkit-adapter-solana/node_modules/uint8arrays": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", @@ -24351,13 +24237,6 @@ "license": "MIT", "optional": true }, - "node_modules/@reown/appkit-adapter-wagmi/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "optional": true - }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/uint8arrays": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", @@ -25228,6 +25107,12 @@ "node": ">=6" } }, + "node_modules/@reown/appkit-controllers/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@reown/appkit-controllers/node_modules/uint8arrays": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", @@ -25998,6 +25883,12 @@ "node": ">=6" } }, + "node_modules/@reown/appkit-utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@reown/appkit-utils/node_modules/uint8arrays": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", @@ -26708,6 +26599,12 @@ "node": ">=6" } }, + "node_modules/@reown/appkit/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@reown/appkit/node_modules/uint8arrays": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", @@ -29280,6 +29177,12 @@ "node": ">=6" } }, + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@sentry/integrations": { "version": "7.117.0", "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.117.0.tgz", @@ -29314,6 +29217,12 @@ "node": ">=6" } }, + "node_modules/@sentry/minimal/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@sentry/node": { "version": "6.2.5", "license": "BSD-3-Clause", @@ -29364,6 +29273,12 @@ "node": ">=6" } }, + "node_modules/@sentry/node/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@sentry/replay": { "version": "7.117.0", "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.117.0.tgz", @@ -29411,6 +29326,12 @@ "node": ">=6" } }, + "node_modules/@sentry/tracing/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@sentry/types": { "version": "7.117.0", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.117.0.tgz", @@ -29446,11 +29367,6 @@ "react-native": "*" } }, - "node_modules/@shopify/flash-list/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" - }, "node_modules/@sideway/address": { "version": "4.1.4", "dev": true, @@ -29892,10 +29808,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/abort-controller/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/chunked-blob-reader": { "version": "2.2.0", "license": "Apache-2.0", @@ -29911,14 +29823,6 @@ "tslib": "^2.6.2" } }, - "node_modules/@smithy/chunked-blob-reader-native/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, - "node_modules/@smithy/chunked-blob-reader/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/config-resolver": { "version": "2.2.0", "license": "Apache-2.0", @@ -29933,10 +29837,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/config-resolver/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/core": { "version": "1.4.2", "license": "Apache-2.0", @@ -29954,10 +29854,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/core/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/credential-provider-imds": { "version": "2.3.0", "license": "Apache-2.0", @@ -29972,10 +29868,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/credential-provider-imds/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/eventstream-codec": { "version": "2.2.0", "license": "Apache-2.0", @@ -29986,10 +29878,6 @@ "tslib": "^2.6.2" } }, - "node_modules/@smithy/eventstream-codec/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/eventstream-serde-browser": { "version": "2.2.0", "license": "Apache-2.0", @@ -30002,10 +29890,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/eventstream-serde-browser/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/eventstream-serde-config-resolver": { "version": "2.2.0", "license": "Apache-2.0", @@ -30017,10 +29901,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/eventstream-serde-config-resolver/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/eventstream-serde-node": { "version": "2.2.0", "license": "Apache-2.0", @@ -30033,10 +29913,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/eventstream-serde-node/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/eventstream-serde-universal": { "version": "2.2.0", "license": "Apache-2.0", @@ -30049,10 +29925,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/eventstream-serde-universal/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/fetch-http-handler": { "version": "2.5.0", "license": "Apache-2.0", @@ -30064,10 +29936,6 @@ "tslib": "^2.6.2" } }, - "node_modules/@smithy/fetch-http-handler/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/hash-blob-browser": { "version": "2.2.0", "license": "Apache-2.0", @@ -30078,10 +29946,6 @@ "tslib": "^2.6.2" } }, - "node_modules/@smithy/hash-blob-browser/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/hash-node": { "version": "2.2.0", "license": "Apache-2.0", @@ -30095,10 +29959,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/hash-node/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/hash-stream-node": { "version": "2.2.0", "license": "Apache-2.0", @@ -30111,10 +29971,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/hash-stream-node/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/invalid-dependency": { "version": "2.2.0", "license": "Apache-2.0", @@ -30123,10 +29979,6 @@ "tslib": "^2.6.2" } }, - "node_modules/@smithy/invalid-dependency/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/is-array-buffer": { "version": "2.2.0", "license": "Apache-2.0", @@ -30137,10 +29989,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/is-array-buffer/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/md5-js": { "version": "2.2.0", "license": "Apache-2.0", @@ -30150,10 +29998,6 @@ "tslib": "^2.6.2" } }, - "node_modules/@smithy/md5-js/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/middleware-content-length": { "version": "2.2.0", "license": "Apache-2.0", @@ -30166,10 +30010,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/middleware-content-length/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/middleware-endpoint": { "version": "2.5.1", "license": "Apache-2.0", @@ -30186,10 +30026,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/middleware-endpoint/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/middleware-retry": { "version": "2.3.1", "license": "Apache-2.0", @@ -30208,10 +30044,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/middleware-retry/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/middleware-retry/node_modules/uuid": { "version": "9.0.1", "funding": [ @@ -30234,10 +30066,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/middleware-serde/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/middleware-stack": { "version": "2.2.0", "license": "Apache-2.0", @@ -30249,10 +30077,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/middleware-stack/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/node-config-provider": { "version": "2.3.0", "license": "Apache-2.0", @@ -30266,10 +30090,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/node-config-provider/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/node-http-handler": { "version": "2.5.0", "license": "Apache-2.0", @@ -30284,10 +30104,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/node-http-handler/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/property-provider": { "version": "2.2.0", "license": "Apache-2.0", @@ -30299,10 +30115,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/property-provider/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/protocol-http": { "version": "3.3.0", "license": "Apache-2.0", @@ -30314,10 +30126,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/protocol-http/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/querystring-builder": { "version": "2.2.0", "license": "Apache-2.0", @@ -30330,10 +30138,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/querystring-builder/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/querystring-parser": { "version": "2.2.0", "license": "Apache-2.0", @@ -30345,10 +30149,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/querystring-parser/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/service-error-classification": { "version": "2.1.5", "license": "Apache-2.0", @@ -30370,10 +30170,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/shared-ini-file-loader/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/signature-v4": { "version": "2.3.0", "license": "Apache-2.0", @@ -30390,10 +30186,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/signature-v4/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/smithy-client": { "version": "2.5.1", "license": "Apache-2.0", @@ -30409,10 +30201,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/smithy-client/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/types": { "version": "2.12.0", "license": "Apache-2.0", @@ -30423,10 +30211,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/types/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/@smithy/url-parser": { "version": "2.2.0", "license": "Apache-2.0", @@ -30436,10 +30220,6 @@ "tslib": "^2.6.2" } }, - "node_modules/@smithy/url-parser/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-base64": { "version": "2.3.0", "license": "Apache-2.0", @@ -30452,10 +30232,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/util-base64/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-body-length-browser": { "version": "2.2.0", "license": "Apache-2.0", @@ -30463,10 +30239,6 @@ "tslib": "^2.6.2" } }, - "node_modules/@smithy/util-body-length-browser/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-body-length-node": { "version": "2.3.0", "license": "Apache-2.0", @@ -30477,10 +30249,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/util-body-length-node/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-buffer-from": { "version": "2.2.0", "license": "Apache-2.0", @@ -30492,10 +30260,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/util-buffer-from/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-config-provider": { "version": "2.3.0", "license": "Apache-2.0", @@ -30506,10 +30270,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/util-config-provider/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-defaults-mode-browser": { "version": "2.2.1", "license": "Apache-2.0", @@ -30524,10 +30284,6 @@ "node": ">= 10.0.0" } }, - "node_modules/@smithy/util-defaults-mode-browser/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-defaults-mode-node": { "version": "2.3.1", "license": "Apache-2.0", @@ -30544,10 +30300,6 @@ "node": ">= 10.0.0" } }, - "node_modules/@smithy/util-defaults-mode-node/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-endpoints": { "version": "1.2.0", "license": "Apache-2.0", @@ -30560,10 +30312,6 @@ "node": ">= 14.0.0" } }, - "node_modules/@smithy/util-endpoints/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-hex-encoding": { "version": "2.2.0", "license": "Apache-2.0", @@ -30574,10 +30322,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/util-hex-encoding/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-middleware": { "version": "2.2.0", "license": "Apache-2.0", @@ -30589,10 +30333,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/util-middleware/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-retry": { "version": "2.2.0", "license": "Apache-2.0", @@ -30605,10 +30345,6 @@ "node": ">= 14.0.0" } }, - "node_modules/@smithy/util-retry/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-stream": { "version": "2.2.0", "license": "Apache-2.0", @@ -30626,10 +30362,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/util-stream/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-uri-escape": { "version": "2.2.0", "license": "Apache-2.0", @@ -30640,10 +30372,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/util-uri-escape/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-utf8": { "version": "2.3.0", "license": "Apache-2.0", @@ -30655,10 +30383,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/util-utf8/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@smithy/util-waiter": { "version": "2.2.0", "license": "Apache-2.0", @@ -30671,10 +30395,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/util-waiter/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@snapchat/snap-kit-react-native": { "version": "0.4.0", "license": "SEE LICENSE IN 'LICENSE' FILE", @@ -32133,10 +31853,6 @@ "tslib": "^2.4.0" } }, - "node_modules/@swc/helpers/node_modules/tslib": { - "version": "2.6.3", - "license": "0BSD" - }, "node_modules/@swc/types": { "version": "0.1.5", "dev": true, @@ -35526,6 +35242,13 @@ "node": ">=6" } }, + "node_modules/@types/redux-sentry-middleware/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, "node_modules/@types/request-ip": { "version": "0.0.41", "dev": true, @@ -36855,6 +36578,12 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/crypto/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/encoding": { "version": "1.0.2", "license": "MIT", @@ -36864,6 +36593,12 @@ "typedarray-to-buffer": "3.1.5" } }, + "node_modules/@walletconnect/encoding/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/environment": { "version": "1.0.1", "license": "MIT", @@ -36871,6 +36606,12 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/environment/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/ethereum-provider": { "version": "2.11.1", "license": "Apache-2.0", @@ -36989,6 +36730,12 @@ "node": ">=6" } }, + "node_modules/@walletconnect/ethereum-provider/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/events": { "version": "1.0.1", "license": "MIT", @@ -36997,6 +36744,12 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/events/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/heartbeat": { "version": "1.2.1", "license": "MIT", @@ -37006,6 +36759,12 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/heartbeat/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/iso-crypto": { "version": "1.8.0", "license": "Apache-2.0", @@ -37043,6 +36802,12 @@ "node": ">=0.8.x" } }, + "node_modules/@walletconnect/jsonrpc-http-connection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/jsonrpc-provider": { "version": "1.0.13", "license": "MIT", @@ -37059,6 +36824,12 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/jsonrpc-provider/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/jsonrpc-types": { "version": "1.0.3", "license": "MIT", @@ -37067,6 +36838,12 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/jsonrpc-types/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/jsonrpc-utils": { "version": "1.0.8", "license": "MIT", @@ -37076,6 +36853,12 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/jsonrpc-utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/jsonrpc-ws-connection": { "version": "1.0.14", "license": "MIT", @@ -37100,6 +36883,12 @@ "node": ">=0.8.x" } }, + "node_modules/@walletconnect/jsonrpc-ws-connection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/keyvaluestorage": { "version": "1.1.1", "license": "MIT", @@ -37128,6 +36917,12 @@ "version": "6.2.1", "license": "Apache-2.0" }, + "node_modules/@walletconnect/keyvaluestorage/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/logger": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.1.2.tgz", @@ -37218,6 +37013,12 @@ "real-require": "^0.1.0" } }, + "node_modules/@walletconnect/logger/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/modal": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/@walletconnect/modal/-/modal-2.7.0.tgz", @@ -37290,6 +37091,12 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/randombytes/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/relay-api": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.11.tgz", @@ -37318,6 +37125,12 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/relay-auth/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/safe-json": { "version": "1.0.0", "license": "MIT" @@ -37462,6 +37275,12 @@ "node": ">=6" } }, + "node_modules/@walletconnect/sign-client/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/socket-transport": { "version": "1.8.0", "license": "Apache-2.0", @@ -37497,6 +37316,12 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/time/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/types": { "version": "1.8.0", "license": "Apache-2.0" @@ -37618,6 +37443,12 @@ "node": ">=6" } }, + "node_modules/@walletconnect/universal-provider/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@walletconnect/utils": { "version": "1.8.0", "license": "Apache-2.0", @@ -38355,6 +38186,12 @@ "node": ">=6" } }, + "node_modules/@web3modal/siwe/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@web3modal/siwe/node_modules/uint8arrays": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", @@ -39544,10 +39381,6 @@ "node": ">=8" } }, - "node_modules/@wry/caches/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/@wry/context": { "version": "0.5.4", "license": "MIT", @@ -39558,6 +39391,12 @@ "node": ">=8" } }, + "node_modules/@wry/context/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@wry/equality": { "version": "0.3.4", "license": "MIT", @@ -39568,6 +39407,12 @@ "node": ">=8" } }, + "node_modules/@wry/equality/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@wry/trie": { "version": "0.2.2", "license": "MIT", @@ -39578,6 +39423,12 @@ "node": ">=8" } }, + "node_modules/@wry/trie/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", @@ -41295,10 +41146,6 @@ "node": ">=12.0.0" } }, - "node_modules/asn1js/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/assert": { "version": "2.0.0", "license": "MIT", @@ -41412,10 +41259,6 @@ "tslib": "^2.0.0" } }, - "node_modules/async-mutex/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/async-retry": { "version": "1.3.3", "license": "MIT", @@ -41492,10 +41335,6 @@ "tslib": "^2.3.0" } }, - "node_modules/autolinker/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/available-typed-arrays": { "version": "1.0.5", "license": "MIT", @@ -44302,11 +44141,6 @@ "node": ">=10" } }, - "node_modules/bullmq/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" - }, "node_modules/bullmq/node_modules/uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", @@ -44763,11 +44597,6 @@ "tslib": "^2.0.3" } }, - "node_modules/camel-case/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/camelcase": { "version": "5.3.1", "license": "MIT", @@ -44880,11 +44709,6 @@ "upper-case-first": "^2.0.2" } }, - "node_modules/capital-case/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/capnp-ts": { "version": "0.7.0", "dev": true, @@ -44894,11 +44718,6 @@ "tslib": "^2.2.0" } }, - "node_modules/capnp-ts/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/capture-exit": { "version": "2.0.0", "dev": true, @@ -45163,11 +44982,6 @@ "tslib": "^2.0.3" } }, - "node_modules/change-case/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/char-regex": { "version": "1.0.2", "dev": true, @@ -46497,11 +46311,6 @@ "upper-case": "^2.0.2" } }, - "node_modules/constant-case/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/constants-browserify": { "version": "1.0.0", "license": "MIT" @@ -48822,10 +48631,6 @@ "node": ">=4" } }, - "node_modules/degenerator/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/delaunator": { "version": "5.0.1", "dev": true, @@ -49327,10 +49132,6 @@ "tslib": "^2.0.3" } }, - "node_modules/dot-case/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/dotenv": { "version": "16.4.5", "license": "BSD-2-Clause", @@ -51465,11 +51266,6 @@ "node": ">=0.4.0" } }, - "node_modules/eslint-mdx/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/eslint-module-utils": { "version": "2.8.0", "license": "MIT", @@ -51732,11 +51528,6 @@ "eslint": ">=8.0.0" } }, - "node_modules/eslint-plugin-mdx/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/eslint-plugin-mocha": { "version": "10.0.3", "dev": true, @@ -51909,11 +51700,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/eslint-plugin-prettier/node_modules/tslib": { - "version": "2.8.1", - "dev": true, - "license": "0BSD" - }, "node_modules/eslint-plugin-promise": { "version": "6.1.0", "dev": true, @@ -54749,10 +54535,6 @@ "node": ">=0.10.0" } }, - "node_modules/formik/node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, "node_modules/forwarded": { "version": "0.2.0", "license": "MIT", @@ -55884,10 +55666,6 @@ "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/graphql-tag/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/growl": { "version": "1.10.5", "dev": true, @@ -57118,11 +56896,6 @@ "tslib": "^2.0.3" } }, - "node_modules/header-case/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/headers-polyfill": { "version": "3.2.5", "dev": true, @@ -63069,11 +62842,6 @@ "node": ">=0.10.0" } }, - "node_modules/less/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/level-codec": { "version": "7.0.1", "license": "MIT" @@ -64085,10 +63853,6 @@ "tslib": "^2.0.3" } }, - "node_modules/lower-case/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/lowercase-keys": { "version": "1.0.1", "license": "MIT", @@ -69867,10 +69631,6 @@ "tslib": "^2.0.3" } }, - "node_modules/no-case/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/nocache": { "version": "3.0.4", "dev": true, @@ -73512,11 +73272,6 @@ "tslib": "^2.0.3" } }, - "node_modules/param-case/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/parent-module": { "version": "1.0.1", "license": "MIT", @@ -73652,11 +73407,6 @@ "tslib": "^2.0.3" } }, - "node_modules/pascal-case/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/pascalcase": { "version": "0.1.1", "dev": true, @@ -73813,11 +73563,6 @@ "tslib": "^2.0.3" } }, - "node_modules/path-case/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/path-dirname": { "version": "1.0.2", "license": "MIT" @@ -76160,10 +75905,6 @@ "tslib": "^2.6.1" } }, - "node_modules/pvtsutils/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/pvutils": { "version": "1.1.3", "license": "MIT", @@ -78272,12 +78013,6 @@ } } }, - "node_modules/react-uid/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, "node_modules/react-universal-interface": { "version": "0.6.2", "peerDependencies": { @@ -78334,10 +78069,6 @@ "toggle-selection": "^1.0.6" } }, - "node_modules/react-use/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/reactotron-core-client": { "version": "2.9.7", "resolved": "https://registry.npmjs.org/reactotron-core-client/-/reactotron-core-client-2.9.7.tgz", @@ -78875,10 +78606,6 @@ "node": ">=0.10.0" } }, - "node_modules/recast/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/rechoir": { "version": "0.8.0", "license": "MIT", @@ -81347,10 +81074,6 @@ "tslib": "^2.1.0" } }, - "node_modules/rxjs/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/sade": { "version": "1.8.1", "dev": true, @@ -81991,11 +81714,6 @@ "upper-case-first": "^2.0.2" } }, - "node_modules/sentence-case/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/sequelize": { "version": "4.41.2", "license": "MIT", @@ -83291,10 +83009,6 @@ "tslib": "^2.0.3" } }, - "node_modules/snake-case/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/snakecase-keys": { "version": "5.4.5", "license": "MIT", @@ -86266,10 +85980,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/synckit/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/system-architecture": { "version": "0.1.0", "license": "MIT", @@ -87454,6 +87164,12 @@ "node": ">=8" } }, + "node_modules/ts-invariant/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/ts-jest": { "version": "29.0.5", "dev": true, @@ -88174,7 +87890,9 @@ } }, "node_modules/tslib": { - "version": "1.14.1", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/tsscmp": { @@ -88942,13 +88660,6 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/tsx": { "version": "4.19.2", "dev": true, @@ -90791,16 +90502,6 @@ "tslib": "^2.0.3" } }, - "node_modules/upper-case-first/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, - "node_modules/upper-case/node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, "node_modules/uqr": { "version": "0.1.2", "license": "MIT" @@ -95794,10 +95495,6 @@ "tslib": "^2.4.0" } }, - "node_modules/webcrypto-core/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "node_modules/webextension-polyfill": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", @@ -121078,10 +120775,6 @@ "node": ">=8.0" } }, - "packages/harmony/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "packages/harmony/node_modules/unique-filename": { "version": "1.1.1", "dev": true, @@ -126953,10 +126646,6 @@ "node": ">=8" } }, - "packages/mobile/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "packages/mobile/node_modules/type-fest": { "version": "4.26.1", "license": "(MIT OR CC0-1.0)", @@ -130818,10 +130507,6 @@ "node": ">=0.3.1" } }, - "packages/sdk/node_modules/tslib": { - "version": "2.7.0", - "license": "0BSD" - }, "packages/sdk/node_modules/type-fest": { "version": "4.26.1", "license": "(MIT OR CC0-1.0)", @@ -135810,10 +135495,6 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "license": "MIT" }, - "packages/web/node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, "packages/web/node_modules/type-fest": { "version": "4.26.1", "license": "(MIT OR CC0-1.0)", diff --git a/package.json b/package.json index 5683ad89e0c..0aacccab025 100644 --- a/package.json +++ b/package.json @@ -131,6 +131,7 @@ "react-native-safe-area-context": "^5.6.2", "react-native-webview": "^13.16.0", "react-select": "5.10.1", + "tslib": "^2.8.1", "valtio": "1.13.2" }, "resolutions": { From 5afab88686b1489d43483a5641a58ceaf1454f0c Mon Sep 17 00:00:00 2001 From: Marcus Pasell <3690498+rickyrombo@users.noreply.github.com> Date: Tue, 13 Jan 2026 14:22:05 -0800 Subject: [PATCH 2/5] wip for ray --- .../tan-query/upload/usePublishCollection.ts | 6 +- .../api/tan-query/upload/usePublishTracks.ts | 40 ++- packages/common/src/models/Stems.ts | 12 + packages/common/src/store/upload/reducer.ts | 17 + packages/common/src/store/upload/types.ts | 6 +- .../sdk/src/sdk/services/Storage/Storage.ts | 2 + .../web/src/pages/upload-page/UploadPage.tsx | 307 +++++++++++------- 7 files changed, 260 insertions(+), 130 deletions(-) diff --git a/packages/common/src/api/tan-query/upload/usePublishCollection.ts b/packages/common/src/api/tan-query/upload/usePublishCollection.ts index 88c3cfc443a..bd0141f9efb 100644 --- a/packages/common/src/api/tan-query/upload/usePublishCollection.ts +++ b/packages/common/src/api/tan-query/upload/usePublishCollection.ts @@ -45,7 +45,11 @@ type PublishCollectionParams = { tracks: { clientId: string metadata: TrackMetadataForUpload - onProgress: (clientId: string, progress: Progress) => void + onProgress: ( + clientId: string, + stemIndex: number | null, + progress: Progress + ) => void }[] } diff --git a/packages/common/src/api/tan-query/upload/usePublishTracks.ts b/packages/common/src/api/tan-query/upload/usePublishTracks.ts index f933cce8e9f..3d4cb865263 100644 --- a/packages/common/src/api/tan-query/upload/usePublishTracks.ts +++ b/packages/common/src/api/tan-query/upload/usePublishTracks.ts @@ -10,6 +10,7 @@ import { useDispatch } from 'react-redux' import { trackMetadataForUploadToSdk } from '~/adapters' import { isContentUSDCPurchaseGated, + type StemUploadWithCids, type USDCPurchaseConditions } from '~/models' import { ProgressStatus } from '~/store' @@ -30,7 +31,11 @@ type PublishTracksContext = Pick & { type PublishTracksParams = { clientId: string metadata: TrackMetadataForUpload - onProgress: (clientId: string, progress: Progress) => void + onProgress: ( + clientId: string, + stemIndex: number | null, + progress: Progress + ) => void }[] export const publishTracks = async ( @@ -49,19 +54,42 @@ export const publishTracks = async ( return await Promise.all( params.map(async (param) => { try { - const metadata = trackMetadataForUploadToSdk( - addPremiumMetadata(userBank.toString(), param.metadata) + const snakeMetadata = addPremiumMetadata( + userBank.toString(), + param.metadata ) + const camelMetadata = trackMetadataForUploadToSdk(snakeMetadata) const res = await sdk.tracks.writeTrackToChain( Id.parse(userId), - metadata + camelMetadata ) - param.onProgress(param.clientId, { + param.onProgress(param.clientId, null, { status: ProgressStatus.COMPLETE }) + + await Promise.all( + (param.metadata.stems ?? []).map(async (s, index) => { + const stem = s as StemUploadWithCids + stem.stem_of.parent_track_id = HashId.parse(res.trackId) + const metadata = { + ...snakeMetadata, + ...stem + } + console.log({ trackId: res.trackId, snakeMetadata, stem, metadata }) + const stemRes = await sdk.tracks.writeTrackToChain( + Id.parse(userId), + trackMetadataForUploadToSdk(metadata) + ) + param.onProgress(param.clientId, index, { + status: ProgressStatus.COMPLETE + }) + return stemRes + }) + ) + return { clientId: param.clientId, trackId: res.trackId } } catch (e) { - param.onProgress(param.clientId, { + param.onProgress(param.clientId, null, { status: ProgressStatus.ERROR }) console.error('Error publishing track:', e) diff --git a/packages/common/src/models/Stems.ts b/packages/common/src/models/Stems.ts index d0aaa23e923..1c8f6a903d1 100644 --- a/packages/common/src/models/Stems.ts +++ b/packages/common/src/models/Stems.ts @@ -41,3 +41,15 @@ export type StemUpload = { export type StemUploadWithFile = StemUpload & { file: File } + +export type StemUploadWithCids = { + orig_file_cid: string + track_cid: string + orig_filename: string + audio_upload_id: string + is_downloadable: true + stem_of: { + parent_track_id: number + category: StemCategory + } +} diff --git a/packages/common/src/store/upload/reducer.ts b/packages/common/src/store/upload/reducer.ts index ea3fcf81747..ed9f5e40575 100644 --- a/packages/common/src/store/upload/reducer.ts +++ b/packages/common/src/store/upload/reducer.ts @@ -144,6 +144,23 @@ const actionsMap = { const trackIndex = newState.uploadProgress.findIndex( (p) => p && p.clientId === clientId ) + + if ( + stemIndex !== null && + newState.uploadProgress[trackIndex] && + !newState.uploadProgress[trackIndex]?.stems[stemIndex] + ) { + newState.uploadProgress[trackIndex].stems[stemIndex] = { + ...cloneDeep(initialUploadState), + art: { + status: ProgressStatus.COMPLETE, + loaded: 0, + total: 0, + transcode: 0 + } + } + } + const prevProgress = stemIndex === null ? newState.uploadProgress[trackIndex]?.[key] diff --git a/packages/common/src/store/upload/types.ts b/packages/common/src/store/upload/types.ts index 21537b6a010..516639442cd 100644 --- a/packages/common/src/store/upload/types.ts +++ b/packages/common/src/store/upload/types.ts @@ -3,10 +3,10 @@ import { NativeFile } from '@audius/sdk' import { CollectionValues } from '~/schemas' import { - CollectionMetadata, StemUpload, StemUploadWithFile, - TrackMetadata + TrackMetadata, + type StemUploadWithCids } from '../../models' import { Nullable } from '../../utils/typeUtils' @@ -54,7 +54,7 @@ export interface TrackMetadataForUpload source?: string }> | TrackMetadata['artwork'] - stems?: (StemUploadWithFile | StemUpload)[] + stems?: (StemUploadWithFile | StemUpload | StemUploadWithCids)[] /** During Upload, tracks will typically not have a track_id, but it might * be assigned ahead of time for tracks with stems. */ diff --git a/packages/sdk/src/sdk/services/Storage/Storage.ts b/packages/sdk/src/sdk/services/Storage/Storage.ts index 39b1104fcf9..a5208c1f606 100644 --- a/packages/sdk/src/sdk/services/Storage/Storage.ts +++ b/packages/sdk/src/sdk/services/Storage/Storage.ts @@ -160,6 +160,8 @@ export class Storage implements StorageService { const upload = new tus.Upload(file, { endpoint: `${selectedNode}/files/`, retryDelays: [0, 3000, 5000, 10000, 20000], + chunkSize: 100_000_000, // 100MB + removeFingerprintOnSuccess: true, metadata: { filename: file.name, filetype: file.type, diff --git a/packages/web/src/pages/upload-page/UploadPage.tsx b/packages/web/src/pages/upload-page/UploadPage.tsx index 3b0c95fc76b..02ec113e5a2 100644 --- a/packages/web/src/pages/upload-page/UploadPage.tsx +++ b/packages/web/src/pages/upload-page/UploadPage.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useState } from 'react' +import { useCallback, useEffect, useRef, useState } from 'react' import { useCurrentAccountUser, @@ -7,6 +7,10 @@ import { useTrack, useUploadFiles } from '@audius/common/api' +import type { + StemUploadWithCids, + StemUploadWithFile +} from '@audius/common/models' import { updateProgress } from '@audius/common/src/store/upload/actions' import { uploadActions, @@ -16,10 +20,11 @@ import { useUploadConfirmationModal, TrackMetadataForUpload, type TrackForUpload, - type CollectionFormState + type CollectionFormState, + type TrackFormState } from '@audius/common/store' import { IconCloudUpload } from '@audius/harmony' -import { HashId } from '@audius/sdk' +import { HashId, StemCategory } from '@audius/sdk' import type { UploadResponse } from '@audius/sdk/src/sdk/services/Storage/types' import { useDispatch, useSelector } from 'react-redux' import { useLocation } from 'react-router' @@ -74,6 +79,34 @@ const updateTrackArtworkWithUploadResponse = ( } } +const updateTrackStemsWithUploadResponse = ( + trackMetadata: TrackMetadataForUpload, + stemsUploadData: UploadResponse[] +): TrackMetadataForUpload => { + if (!stemsUploadData || stemsUploadData.length === 0) return trackMetadata + + return { + ...trackMetadata, + stems: stemsUploadData?.map( + (res, index) => + ({ + ...trackMetadata.stems?.[index], + track_cid: res?.results['320'], + orig_file_cid: res?.orig_file_cid, + orig_filename: res?.orig_filename, + audio_upload_id: res?.id, + is_downloadable: true, + stem_of: { + parent_track_id: trackMetadata.track_id!, + category: + (trackMetadata.stems?.[index] as StemUploadWithFile)?.category ?? + StemCategory.OTHER + } + }) satisfies StemUploadWithCids + ) + } +} + const { updateFormState, reset, uploadTracksSucceeded, uploadTracksRequested } = uploadActions const { getFormState, getUploadSuccess, getUploadError } = uploadSelectors @@ -123,26 +156,17 @@ export const UploadPage = (props: UploadPageProps) => { formStateFromStore ?? initialFormState ) const { data: user } = useCurrentAccountUser() - const { - data: trackUploadData, - mutateAsync: uploadTrackFilesAsync, - isSuccess: isTrackUploadSuccess - } = useUploadFiles() - const { - data: artworkData, - mutateAsync: uploadArtworkFilesAsync, - isSuccess: isArtworkUploadSuccess - } = useUploadFiles() - const { mutateAsync: publishTracksAsync, isIdle: isPublishTracksIdle } = - usePublishTracks() - const { - mutateAsync: publishCollectionAsync, - isIdle: isPublishCollectionIdle - } = usePublishCollection() + const { mutateAsync: uploadFiles } = useUploadFiles() + const { mutateAsync: publishTracksAsync } = usePublishTracks() + const { mutateAsync: publishCollectionAsync } = usePublishCollection() + + const trackUploadPromise = useRef>( + Promise.resolve([]) + ) const uploadTracks = useCallback( async (tracks: TrackForUpload[]) => { - await uploadTrackFilesAsync({ + return await uploadFiles({ files: tracks.map((t) => { return { clientId: t.clientId, @@ -167,7 +191,7 @@ export const UploadPage = (props: UploadPageProps) => { }) }) }, - [dispatch, uploadTrackFilesAsync, user?.wallet] + [dispatch, uploadFiles, user?.wallet] ) const uploadTrackArtworks = useCallback( @@ -203,7 +227,7 @@ export const UploadPage = (props: UploadPageProps) => { return { clientId: t.clientId, file } }) ) - await uploadArtworkFilesAsync({ + return await uploadFiles({ files: files .filter(({ file }) => file !== null) .map(({ clientId, file }) => ({ @@ -228,7 +252,7 @@ export const UploadPage = (props: UploadPageProps) => { })) }) }, - [uploadArtworkFilesAsync, dispatch, user?.wallet] + [uploadFiles, dispatch, user?.wallet] ) const uploadCollectionArtwork = useCallback( @@ -257,7 +281,7 @@ export const UploadPage = (props: UploadPageProps) => { 'artwork', { type: 'image/jpeg' } ) - await uploadArtworkFilesAsync({ + return await uploadFiles({ files: [ { clientId: 'collection-artwork', @@ -282,7 +306,143 @@ export const UploadPage = (props: UploadPageProps) => { ] }) }, - [uploadArtworkFilesAsync, dispatch, user?.wallet] + [uploadFiles, dispatch, user?.wallet] + ) + + const uploadStemFiles = useCallback( + (tracks: TrackForUpload[]) => { + return uploadFiles({ + files: tracks.flatMap( + (t) => + t.metadata.stems?.map((stemFile, index) => ({ + clientId: t.clientId, + stemIndex: index, + file: (stemFile as StemUploadWithFile).file, + metadata: { + filename: + (stemFile as StemUploadWithFile).file.name ?? undefined, + filetype: + (stemFile as StemUploadWithFile).file.type ?? undefined, + userWallet: user?.wallet, + template: 'audio' + }, + onProgress: (clientId, progress) => { + dispatch( + updateProgress({ + clientId, + stemIndex: index, + key: 'audio', + progress + }) + ) + } + })) ?? [] + ) + }) + }, + [uploadFiles, user?.wallet, dispatch] + ) + + const finishUpload = useCallback( + async (formState: CollectionFormState | TrackFormState) => { + dispatch(uploadTracksRequested(formState)) + + // Upload stem files + const stems = await uploadStemFiles(formState.tracks ?? []) + + // Wait for track files to finish uploading before publishing + const tracks = await trackUploadPromise.current + + if ( + formState.uploadType === UploadType.INDIVIDUAL_TRACKS || + formState.uploadType === UploadType.INDIVIDUAL_TRACK + ) { + const artworks = await uploadTrackArtworks(formState.tracks ?? []) + const publishRes = await publishTracksAsync( + formState.tracks!.map((t) => ({ + clientId: t.clientId, + metadata: updateTrackMetadataWithUploadResponse( + updateTrackStemsWithUploadResponse( + updateTrackArtworkWithUploadResponse( + t.metadata, + artworks?.find((at) => at.clientId === t.clientId)?.response + ), + stems + .filter((ut) => ut.clientId === t.clientId) + .map((ut) => ut.response) + ), + tracks.find((ut) => ut.clientId === t.clientId)?.response + ), + onProgress: (clientId, stemIndex, progress) => { + dispatch( + updateProgress({ + clientId, + stemIndex, + key: 'audio', + progress + }) + ) + } + })) + ) + if (formState.uploadType === UploadType.INDIVIDUAL_TRACK) { + dispatch( + uploadTracksSucceeded({ id: HashId.parse(publishRes[0]!.trackId) }) + ) + } else if (formState.uploadType === UploadType.INDIVIDUAL_TRACKS) { + dispatch(uploadTracksSucceeded({ id: null })) + } + } else if ( + formState.uploadType === UploadType.ALBUM || + formState.uploadType === UploadType.PLAYLIST + ) { + const artwork = await uploadCollectionArtwork( + formState as CollectionFormState + ) + const publishRes = await publishCollectionAsync({ + collectionMetadata: formState.metadata, + tracks: formState.tracks!.map((t) => ({ + clientId: t.clientId, + metadata: updateTrackMetadataWithUploadResponse( + updateTrackArtworkWithUploadResponse( + t.metadata, + artwork?.[0]?.response // Collection artwork is first in the array + ), + tracks.find((ut) => ut.clientId === t.clientId)?.response + ), + onProgress: (clientId, stemIndex, progress) => { + dispatch( + updateProgress({ + clientId, + stemIndex, + key: 'audio', + progress + }) + ) + dispatch( + updateProgress({ + clientId, + stemIndex, + key: 'art', + progress + }) + ) + } + })) + }) + dispatch( + uploadTracksSucceeded({ id: HashId.parse(publishRes.playlistId) }) + ) + } + }, + [ + dispatch, + uploadStemFiles, + uploadCollectionArtwork, + uploadTrackArtworks, + publishTracksAsync, + publishCollectionAsync + ] ) // For navigating back to a remix contest page @@ -351,7 +511,7 @@ export const UploadPage = (props: UploadPageProps) => { onContinue={(formState: UploadFormState) => { setFormState(formState) setPhase(Phase.EDIT) - uploadTracks(formState.tracks ?? []) + trackUploadPromise.current = uploadTracks(formState.tracks ?? []) }} /> ) @@ -371,14 +531,7 @@ export const UploadPage = (props: UploadPageProps) => { formState.tracks?.some( (track) => !track.metadata.is_unlisted ) ?? true - if ( - formState.uploadType === UploadType.INDIVIDUAL_TRACK || - formState.uploadType === UploadType.INDIVIDUAL_TRACKS - ) { - uploadTrackArtworks(formState.tracks ?? []) - } else { - uploadCollectionArtwork(formState as CollectionFormState) - } + finishUpload(formState as CollectionFormState | TrackFormState) openUploadConfirmation(hasPublicTracks && !isPrivateCollection) }} /> @@ -412,92 +565,6 @@ export const UploadPage = (props: UploadPageProps) => { } }, [phase, originalTrack, navigate]) - // When done uploading files and after confirming upload, publish the tracks or collection - if ( - isTrackUploadSuccess && - isArtworkUploadSuccess && - isPublishTracksIdle && - isPublishCollectionIdle && - phase === Phase.FINISH && - formState.tracks && - trackUploadData && - artworkData - ) { - dispatch(uploadTracksRequested(formState)) - if ( - formState.uploadType === UploadType.INDIVIDUAL_TRACKS || - formState.uploadType === UploadType.INDIVIDUAL_TRACK - ) { - publishTracksAsync( - formState.tracks!.map((t) => ({ - clientId: t.clientId, - metadata: updateTrackMetadataWithUploadResponse( - updateTrackArtworkWithUploadResponse( - t.metadata, - artworkData?.find((at) => at.clientId === t.clientId)?.response - ), - trackUploadData.find((ut) => ut.clientId === t.clientId)?.response - ), - onProgress: (clientId, progress) => { - dispatch( - updateProgress({ - clientId, - stemIndex: null, - key: 'audio', - progress - }) - ) - } - })) - ).then((res) => { - if (formState.uploadType === UploadType.INDIVIDUAL_TRACK) { - dispatch(uploadTracksSucceeded({ id: HashId.parse(res[0]!.trackId) })) - } else if (formState.uploadType === UploadType.INDIVIDUAL_TRACKS) { - dispatch(uploadTracksSucceeded({ id: null })) - } - }) - } else if ( - formState.uploadType === UploadType.ALBUM || - formState.uploadType === UploadType.PLAYLIST - ) { - publishCollectionAsync({ - collectionMetadata: formState.metadata, - tracks: formState.tracks!.map((t) => ({ - clientId: t.clientId, - metadata: updateTrackMetadataWithUploadResponse( - updateTrackArtworkWithUploadResponse( - t.metadata, - artworkData?.[0]?.response // Collection artwork is first in the array - ), - trackUploadData.find((ut) => ut.clientId === t.clientId)?.response - ), - onProgress: (clientId, progress) => { - dispatch( - updateProgress({ - clientId, - stemIndex: null, - key: 'audio', - progress - }) - ) - dispatch( - updateProgress({ - clientId, - stemIndex: null, - key: 'art', - progress - }) - ) - } - })) - }).then((collection) => { - dispatch( - uploadTracksSucceeded({ id: HashId.parse(collection.playlistId) }) - ) - }) - } - } - return ( Date: Tue, 13 Jan 2026 17:11:13 -0800 Subject: [PATCH 3/5] add support for stems --- packages/common/src/adapters/track.ts | 3 +- .../api/tan-query/upload/usePublishTracks.ts | 38 ++-- packages/common/src/models/Stems.ts | 14 +- packages/common/src/store/upload/types.ts | 4 +- .../src/sdk/api/tracks/TrackUploadHelper.ts | 2 +- packages/sdk/src/sdk/api/tracks/TracksApi.ts | 36 +++- packages/sdk/src/sdk/api/tracks/types.ts | 49 +++++ .../sdk/src/sdk/services/Storage/Storage.ts | 5 +- .../sdk/src/sdk/services/Storage/types.ts | 20 +- .../web/src/pages/upload-page/UploadPage.tsx | 174 ++++++------------ 10 files changed, 188 insertions(+), 157 deletions(-) diff --git a/packages/common/src/adapters/track.ts b/packages/common/src/adapters/track.ts index e4e2e02728e..af7ce63d24a 100644 --- a/packages/common/src/adapters/track.ts +++ b/packages/common/src/adapters/track.ts @@ -257,8 +257,7 @@ export const trackMetadataForUploadToSdk = ( 'is_custom_musical_key', 'comments_disabled', 'ddex_release_ids', - 'parental_warning_type', - 'cover_art_sizes' + 'parental_warning_type' ]) ), trackId: OptionalId.parse(input.track_id), diff --git a/packages/common/src/api/tan-query/upload/usePublishTracks.ts b/packages/common/src/api/tan-query/upload/usePublishTracks.ts index 3d4cb865263..75df84c3a9d 100644 --- a/packages/common/src/api/tan-query/upload/usePublishTracks.ts +++ b/packages/common/src/api/tan-query/upload/usePublishTracks.ts @@ -1,5 +1,5 @@ import { USDC } from '@audius/fixed-decimal' -import { HashId, Id } from '@audius/sdk' +import { HashId, Id, type UploadResponse } from '@audius/sdk' import { mutationOptions, useMutation, @@ -10,7 +10,8 @@ import { useDispatch } from 'react-redux' import { trackMetadataForUploadToSdk } from '~/adapters' import { isContentUSDCPurchaseGated, - type StemUploadWithCids, + StemCategory, + type StemUploadPending, type USDCPurchaseConditions } from '~/models' import { ProgressStatus } from '~/store' @@ -31,6 +32,8 @@ type PublishTracksContext = Pick & { type PublishTracksParams = { clientId: string metadata: TrackMetadataForUpload + audioUploadResponse: UploadResponse + artUploadResponse: UploadResponse onProgress: ( clientId: string, stemIndex: number | null, @@ -59,27 +62,34 @@ export const publishTracks = async ( param.metadata ) const camelMetadata = trackMetadataForUploadToSdk(snakeMetadata) - const res = await sdk.tracks.writeTrackToChain( - Id.parse(userId), - camelMetadata - ) + const res = await sdk.tracks.publishTrack({ + userId: Id.parse(userId), + metadata: camelMetadata, + audioUploadResponse: param.audioUploadResponse, + artUploadResponse: param.artUploadResponse + }) param.onProgress(param.clientId, null, { status: ProgressStatus.COMPLETE }) await Promise.all( (param.metadata.stems ?? []).map(async (s, index) => { - const stem = s as StemUploadWithCids - stem.stem_of.parent_track_id = HashId.parse(res.trackId) + const stem = s as StemUploadPending const metadata = { ...snakeMetadata, - ...stem + ...stem.metadata, + is_downloadable: true, + stem_of: { + category: stem.category ?? StemCategory.OTHER, + parent_track_id: HashId.parse(res.trackId) + } } - console.log({ trackId: res.trackId, snakeMetadata, stem, metadata }) - const stemRes = await sdk.tracks.writeTrackToChain( - Id.parse(userId), - trackMetadataForUploadToSdk(metadata) - ) + const stemRes = await sdk.tracks.publishTrack({ + userId: Id.parse(userId), + metadata: trackMetadataForUploadToSdk(metadata), + audioUploadResponse: stem.audioUploadResponse, + artUploadResponse: param.artUploadResponse + }) param.onProgress(param.clientId, index, { status: ProgressStatus.COMPLETE }) diff --git a/packages/common/src/models/Stems.ts b/packages/common/src/models/Stems.ts index 1c8f6a903d1..fb25a515bb5 100644 --- a/packages/common/src/models/Stems.ts +++ b/packages/common/src/models/Stems.ts @@ -1,3 +1,5 @@ +import type { UploadResponse } from '@audius/sdk' + import { TrackMetadataForUpload } from '~/store' import { Nullable } from '~/utils' @@ -42,14 +44,6 @@ export type StemUploadWithFile = StemUpload & { file: File } -export type StemUploadWithCids = { - orig_file_cid: string - track_cid: string - orig_filename: string - audio_upload_id: string - is_downloadable: true - stem_of: { - parent_track_id: number - category: StemCategory - } +export type StemUploadPending = StemUpload & { + audioUploadResponse: UploadResponse } diff --git a/packages/common/src/store/upload/types.ts b/packages/common/src/store/upload/types.ts index 516639442cd..760f787972b 100644 --- a/packages/common/src/store/upload/types.ts +++ b/packages/common/src/store/upload/types.ts @@ -6,7 +6,7 @@ import { StemUpload, StemUploadWithFile, TrackMetadata, - type StemUploadWithCids + type StemUploadPending } from '../../models' import { Nullable } from '../../utils/typeUtils' @@ -54,7 +54,7 @@ export interface TrackMetadataForUpload source?: string }> | TrackMetadata['artwork'] - stems?: (StemUploadWithFile | StemUpload | StemUploadWithCids)[] + stems?: (StemUploadWithFile | StemUpload | StemUploadPending)[] /** During Upload, tracks will typically not have a track_id, but it might * be assigned ahead of time for tracks with stems. */ diff --git a/packages/sdk/src/sdk/api/tracks/TrackUploadHelper.ts b/packages/sdk/src/sdk/api/tracks/TrackUploadHelper.ts index e0a8ba44808..300bab22e7d 100644 --- a/packages/sdk/src/sdk/api/tracks/TrackUploadHelper.ts +++ b/packages/sdk/src/sdk/api/tracks/TrackUploadHelper.ts @@ -77,7 +77,7 @@ export class TrackUploadHelper extends BaseAPI { origFilename: audioResponse.orig_filename || trackMetadata.origFilename, audioUploadId: audioResponse.id, coverArtSizes: coverArtResponse?.id, - duration: parseInt(audioResponse.probe.format.duration, 10), + duration: parseInt(audioResponse?.probe?.format?.duration ?? '0', 10), bpm: audioResponse.audio_analysis_results?.bpm ? audioResponse.audio_analysis_results.bpm : trackMetadata.bpm, diff --git a/packages/sdk/src/sdk/api/tracks/TracksApi.ts b/packages/sdk/src/sdk/api/tracks/TracksApi.ts index 607d6630a02..98600a9a6d2 100644 --- a/packages/sdk/src/sdk/api/tracks/TracksApi.ts +++ b/packages/sdk/src/sdk/api/tracks/TracksApi.ts @@ -56,7 +56,9 @@ import { UpdateTrackSchema, UploadTrackFilesSchema, ShareTrackSchema, - ShareTrackRequest + ShareTrackRequest, + type PublishTrackRequest, + PublishTrackSchema } from './types' // Extend that new class @@ -206,6 +208,38 @@ export class TracksApi extends GeneratedTracksApi { ) } + /** @hidden + * Publishes a track that was uploaded using storage node uploadFileV2 uploads. + */ + async publishTrack(params: PublishTrackRequest) { + // Parse inputs + this.logger.info('Parsing inputs for publishTrack') + const { + userId, + metadata: parsedMetadata, + audioUploadResponse, + artUploadResponse + } = await parseParams('publishTrack', PublishTrackSchema)(params) + + // Transform metadata + this.logger.info('Transforming metadata for publishTrack') + const metadata = this.trackUploadHelper.transformTrackUploadMetadata( + parsedMetadata, + userId + ) + + // Update metadata to include uploaded CIDs + const populatedMetadata = + this.trackUploadHelper.populateTrackMetadataWithUploadResponse( + metadata, + audioUploadResponse, + artUploadResponse + ) + + // Write track metadata to chain + return this.writeTrackToChain(params.userId, populatedMetadata) + } + /** @hidden * Write track upload to chain */ diff --git a/packages/sdk/src/sdk/api/tracks/types.ts b/packages/sdk/src/sdk/api/tracks/types.ts index 66b13d25aa7..3570cba486f 100644 --- a/packages/sdk/src/sdk/api/tracks/types.ts +++ b/packages/sdk/src/sdk/api/tracks/types.ts @@ -382,3 +382,52 @@ export const PurchaseTrackSchema = z .strict() export type PurchaseTrackRequest = z.input + +const UploadResponseSchema = z.object({ + id: z.string(), + status: z.enum([ + 'new', + 'error', + 'busy', + 'timeout', + 'audio_analysis', + 'busy_audio_analysis', + 'done' + ]), + orig_file_cid: z.string(), + orig_filename: z.string(), + results: z.record(z.string(), z.string()), + probe: z + .object({ + format: z + .object({ + duration: z.string().optional() + }) + .optional() + }) + .optional(), + audio_analysis_results: z + .object({ + bpm: z.number().optional(), + key: z.string().optional() + }) + .optional() + .nullable(), + audio_analysis_error_count: z.number() +}) + +export type UploadResponse = z.input + +export const PublishTrackSchema = z + .object({ + userId: HashId, + metadata: UploadTrackMetadataSchema.extend({ + genre: z.optional(z.enum(Object.values(Genre) as [Genre, ...Genre[]])) + }).strict(), + audioUploadResponse: UploadResponseSchema, + artUploadResponse: UploadResponseSchema, + stemsUploadResponses: z.array(UploadResponseSchema).optional() + }) + .strict() + +export type PublishTrackRequest = z.input diff --git a/packages/sdk/src/sdk/services/Storage/Storage.ts b/packages/sdk/src/sdk/services/Storage/Storage.ts index a5208c1f606..f2f48aa6884 100644 --- a/packages/sdk/src/sdk/services/Storage/Storage.ts +++ b/packages/sdk/src/sdk/services/Storage/Storage.ts @@ -279,10 +279,7 @@ export class Storage implements StorageService { if (resp?.status === 'done') { return resp } - if ( - resp?.status === 'error' || - resp?.status === 'error_retranscode_preview' - ) { + if (resp?.status === 'error') { throw new Error( `Upload failed: id=${id}, resp=${JSON.stringify(resp)}` ) diff --git a/packages/sdk/src/sdk/services/Storage/types.ts b/packages/sdk/src/sdk/services/Storage/types.ts index 16f6bc6c2a9..0e87b35e093 100644 --- a/packages/sdk/src/sdk/services/Storage/types.ts +++ b/packages/sdk/src/sdk/services/Storage/types.ts @@ -69,13 +69,12 @@ export type StorageService = { export type ProcessingStatus = | 'new' - | 'busy' - | 'done' | 'error' - | 'retranscode_preview' - | 'busy_retranscode_preview' - | 'error_retranscode_preview' + | 'busy' | 'timeout' + | 'audio_analysis' + | 'busy_audio_analysis' + | 'done' export type UploadResponse = { id: string @@ -87,11 +86,12 @@ export type UploadResponse = { orig_filename: string audio_analysis_error_count: number audio_analysis_results?: { - [key: string]: string - } - probe: { - format: { - duration: string + bpm?: number + key?: string + } | null + probe?: { + format?: { + duration?: string } } transcode_progress?: number diff --git a/packages/web/src/pages/upload-page/UploadPage.tsx b/packages/web/src/pages/upload-page/UploadPage.tsx index 02ec113e5a2..d9c1bc8a3fc 100644 --- a/packages/web/src/pages/upload-page/UploadPage.tsx +++ b/packages/web/src/pages/upload-page/UploadPage.tsx @@ -8,7 +8,7 @@ import { useUploadFiles } from '@audius/common/api' import type { - StemUploadWithCids, + StemUploadPending, StemUploadWithFile } from '@audius/common/models' import { updateProgress } from '@audius/common/src/store/upload/actions' @@ -24,8 +24,7 @@ import { type TrackFormState } from '@audius/common/store' import { IconCloudUpload } from '@audius/harmony' -import { HashId, StemCategory } from '@audius/sdk' -import type { UploadResponse } from '@audius/sdk/src/sdk/services/Storage/types' +import { HashId } from '@audius/sdk' import { useDispatch, useSelector } from 'react-redux' import { useLocation } from 'react-router' @@ -39,76 +38,13 @@ import { EditPage } from './pages/EditPage' import { FinishPage } from './pages/FinishPage' import SelectPage from './pages/SelectPage' -const updateTrackMetadataWithUploadResponse = ( - trackMetadata: TrackMetadataForUpload, - uploadResponse?: UploadResponse -): TrackMetadataForUpload => { - if (!uploadResponse) return trackMetadata - return { - ...trackMetadata, - track_cid: uploadResponse.results['320'], - preview_cid: - trackMetadata.preview_start_seconds !== undefined && - trackMetadata.preview_start_seconds !== null - ? uploadResponse.results[ - `320_preview|${trackMetadata.preview_start_seconds}` - ] - : trackMetadata.preview_cid, - orig_file_cid: uploadResponse.orig_file_cid, - orig_filename: uploadResponse.orig_filename || trackMetadata.orig_filename, - audio_upload_id: uploadResponse.id, - duration: parseInt(uploadResponse.probe.format.duration, 10), - bpm: uploadResponse.audio_analysis_results?.bpm - ? parseFloat(uploadResponse.audio_analysis_results.bpm) - : trackMetadata.bpm, - musical_key: uploadResponse.audio_analysis_results?.key - ? uploadResponse.audio_analysis_results.key - : trackMetadata.musical_key, - audio_analysis_error_count: uploadResponse.audio_analysis_error_count || 0 - } -} - -const updateTrackArtworkWithUploadResponse = ( - trackMetadata: TrackMetadataForUpload, - uploadResponse?: UploadResponse -): TrackMetadataForUpload => { - if (!uploadResponse) return trackMetadata - return { - ...trackMetadata, - cover_art_sizes: uploadResponse?.orig_file_cid - } -} - -const updateTrackStemsWithUploadResponse = ( - trackMetadata: TrackMetadataForUpload, - stemsUploadData: UploadResponse[] -): TrackMetadataForUpload => { - if (!stemsUploadData || stemsUploadData.length === 0) return trackMetadata - - return { - ...trackMetadata, - stems: stemsUploadData?.map( - (res, index) => - ({ - ...trackMetadata.stems?.[index], - track_cid: res?.results['320'], - orig_file_cid: res?.orig_file_cid, - orig_filename: res?.orig_filename, - audio_upload_id: res?.id, - is_downloadable: true, - stem_of: { - parent_track_id: trackMetadata.track_id!, - category: - (trackMetadata.stems?.[index] as StemUploadWithFile)?.category ?? - StemCategory.OTHER - } - }) satisfies StemUploadWithCids - ) - } -} - -const { updateFormState, reset, uploadTracksSucceeded, uploadTracksRequested } = - uploadActions +const { + updateFormState, + reset, + uploadTracksSucceeded, + uploadTracksRequested, + uploadTracksFailed +} = uploadActions const { getFormState, getUploadSuccess, getUploadError } = uploadSelectors const messages = { @@ -357,40 +293,53 @@ export const UploadPage = (props: UploadPageProps) => { formState.uploadType === UploadType.INDIVIDUAL_TRACKS || formState.uploadType === UploadType.INDIVIDUAL_TRACK ) { - const artworks = await uploadTrackArtworks(formState.tracks ?? []) - const publishRes = await publishTracksAsync( - formState.tracks!.map((t) => ({ - clientId: t.clientId, - metadata: updateTrackMetadataWithUploadResponse( - updateTrackStemsWithUploadResponse( - updateTrackArtworkWithUploadResponse( - t.metadata, - artworks?.find((at) => at.clientId === t.clientId)?.response - ), - stems - .filter((ut) => ut.clientId === t.clientId) - .map((ut) => ut.response) - ), - tracks.find((ut) => ut.clientId === t.clientId)?.response - ), - onProgress: (clientId, stemIndex, progress) => { - dispatch( - updateProgress({ - clientId, - stemIndex, - key: 'audio', - progress - }) - ) - } - })) - ) - if (formState.uploadType === UploadType.INDIVIDUAL_TRACK) { - dispatch( - uploadTracksSucceeded({ id: HashId.parse(publishRes[0]!.trackId) }) + try { + const artworks = await uploadTrackArtworks(formState.tracks ?? []) + const publishRes = await publishTracksAsync( + formState.tracks!.map((t) => ({ + clientId: t.clientId, + metadata: { + ...t.metadata, + stems: t.metadata.stems?.map( + (s, index) => + ({ + ...s, + audioUploadResponse: stems.filter( + (su) => su.clientId === t.clientId + )[index].response + }) satisfies StemUploadPending + ) + }, + audioUploadResponse: tracks.find( + (ut) => ut.clientId === t.clientId + )!.response, + artUploadResponse: artworks.find( + (a) => a.clientId === t.clientId + )!.response, + onProgress: (clientId, stemIndex, progress) => { + dispatch( + updateProgress({ + clientId, + stemIndex, + key: 'audio', + progress + }) + ) + } + })) ) - } else if (formState.uploadType === UploadType.INDIVIDUAL_TRACKS) { - dispatch(uploadTracksSucceeded({ id: null })) + if (formState.uploadType === UploadType.INDIVIDUAL_TRACK) { + dispatch( + uploadTracksSucceeded({ + id: HashId.parse(publishRes[0]!.trackId) + }) + ) + } else if (formState.uploadType === UploadType.INDIVIDUAL_TRACKS) { + dispatch(uploadTracksSucceeded({ id: null })) + } + } catch (err) { + console.error('Error publishing tracks:', err) + dispatch(uploadTracksFailed()) } } else if ( formState.uploadType === UploadType.ALBUM || @@ -403,13 +352,12 @@ export const UploadPage = (props: UploadPageProps) => { collectionMetadata: formState.metadata, tracks: formState.tracks!.map((t) => ({ clientId: t.clientId, - metadata: updateTrackMetadataWithUploadResponse( - updateTrackArtworkWithUploadResponse( - t.metadata, - artwork?.[0]?.response // Collection artwork is first in the array - ), - tracks.find((ut) => ut.clientId === t.clientId)?.response - ), + metadata: t.metadata, + audioUploadResponse: tracks.find( + (ut) => ut.clientId === t.clientId + )!.response, + artUploadResponse: artwork?.find((a) => a.clientId === t.clientId) + ?.response, onProgress: (clientId, stemIndex, progress) => { dispatch( updateProgress({ From d49da9305adfe8d7835e031bc3cf86cb7f31231b Mon Sep 17 00:00:00 2001 From: Marcus Pasell <3690498+rickyrombo@users.noreply.github.com> Date: Tue, 13 Jan 2026 17:12:35 -0800 Subject: [PATCH 4/5] remove annoying comments/logs --- packages/sdk/src/sdk/api/tracks/TracksApi.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/sdk/src/sdk/api/tracks/TracksApi.ts b/packages/sdk/src/sdk/api/tracks/TracksApi.ts index 98600a9a6d2..382e4779a96 100644 --- a/packages/sdk/src/sdk/api/tracks/TracksApi.ts +++ b/packages/sdk/src/sdk/api/tracks/TracksApi.ts @@ -212,8 +212,6 @@ export class TracksApi extends GeneratedTracksApi { * Publishes a track that was uploaded using storage node uploadFileV2 uploads. */ async publishTrack(params: PublishTrackRequest) { - // Parse inputs - this.logger.info('Parsing inputs for publishTrack') const { userId, metadata: parsedMetadata, @@ -221,14 +219,11 @@ export class TracksApi extends GeneratedTracksApi { artUploadResponse } = await parseParams('publishTrack', PublishTrackSchema)(params) - // Transform metadata - this.logger.info('Transforming metadata for publishTrack') const metadata = this.trackUploadHelper.transformTrackUploadMetadata( parsedMetadata, userId ) - // Update metadata to include uploaded CIDs const populatedMetadata = this.trackUploadHelper.populateTrackMetadataWithUploadResponse( metadata, @@ -236,7 +231,6 @@ export class TracksApi extends GeneratedTracksApi { artUploadResponse ) - // Write track metadata to chain return this.writeTrackToChain(params.userId, populatedMetadata) } From 99298a045d418b4b222bbb7fa5020e424ad7bee1 Mon Sep 17 00:00:00 2001 From: Marcus Pasell <3690498+rickyrombo@users.noreply.github.com> Date: Wed, 14 Jan 2026 00:25:52 -0800 Subject: [PATCH 5/5] remove tslib changes --- package-lock.json | 8 +++++++- package.json | 7 ++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2aadb9eaf0e..a20880b62dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,7 +41,6 @@ "react-native-safe-area-context": "^5.6.2", "react-native-webview": "^13.16.0", "react-select": "5.10.1", - "tslib": "^2.8.1", "valtio": "1.13.2" }, "devDependencies": { @@ -88660,6 +88659,13 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, "node_modules/tsx": { "version": "4.19.2", "dev": true, diff --git a/package.json b/package.json index 0aacccab025..2cb866a5347 100644 --- a/package.json +++ b/package.json @@ -131,13 +131,11 @@ "react-native-safe-area-context": "^5.6.2", "react-native-webview": "^13.16.0", "react-select": "5.10.1", - "tslib": "^2.8.1", "valtio": "1.13.2" }, "resolutions": { "@babel/core": "7.25.2", - "cipher-base": "1.0.7", - "tslib": "^2.6.0" + "cipher-base": "1.0.7" }, "overrides": { "@types/prop-types": "15.7.5", @@ -149,8 +147,7 @@ "react-native-svg": "15.11.1", "redux": "4.1.1", "webpack": "5.88.2", - "elliptic": "6.6.1", - "tslib": "^2.6.0" + "elliptic": "6.6.1" }, "packageManager": "npm@9.6.7" }