From 5f21a2eb08eded9c8c44118ad6cbfa620dbe8079 Mon Sep 17 00:00:00 2001 From: Eli Mallon Date: Thu, 16 Jan 2025 23:13:24 +0000 Subject: [PATCH] rename: streamplace See merge request streamplace/streamplace!84 Changelog: feature --- .ci/dockerfile-hash.yaml | 2 +- .gitlab-ci.yml | 24 +- .vscode/settings.json | 2 +- LICENSE | 2 +- Makefile | 110 +++---- README.md | 12 +- .../build-flags.go | 0 .../streamplace.go} | 12 +- .../aquareum.c => streamplace/streamplace.c} | 4 +- docker/build.Dockerfile | 8 +- docker/release.Dockerfile | 10 +- go.mod | 8 +- go.sum | 4 +- hack/push.mjs | 4 +- js/app/.env.development | 2 +- js/app/.env.production | 2 +- js/app/.gitignore | 2 +- js/app/app.config.ts | 4 +- js/app/app.go | 2 +- js/app/components/get-apps.tsx | 4 +- js/app/components/player/player.tsx | 4 +- js/app/components/player/shared.tsx | 4 +- js/app/components/player/video.tsx | 4 +- .../components/provider/provider.shared.tsx | 6 +- js/app/components/settings/settings.tsx | 8 +- js/app/components/settings/updates.native.tsx | 5 +- js/app/components/settings/updates.tsx | 2 +- js/app/components/stream-list/stream-list.tsx | 6 +- js/app/constants/env.ts | 3 +- js/app/features/bluesky/blueskyProvider.tsx | 2 +- js/app/features/bluesky/blueskySlice.tsx | 12 +- js/app/features/bluesky/oauthClient.tsx | 20 +- .../streamplaceProvider.tsx} | 20 +- .../streamplaceSlice.tsx} | 40 +-- js/app/hooks/platform/platform.mobile.tsx | 6 +- js/app/hooks/useAquareumNode.tsx | 6 - js/app/hooks/useStreamplaceNode.tsx | 6 + js/app/hooks/useWallet.tsx | 4 +- js/app/package.json | 4 +- js/app/public/index.html | 2 +- js/app/src/router.tsx | 14 +- js/app/src/screens/stream-key.tsx | 2 +- js/app/store/store.tsx | 4 +- js/app/tamagui.config.ts | 4 +- js/desktop/README.md | 10 +- ...uareum-logo.icns => streamplace-logo.icns} | Bin ...aquareum-logo.ico => streamplace-logo.ico} | Bin ...aquareum-logo.png => streamplace-logo.png} | Bin js/desktop/forge.config.ts | 22 +- js/desktop/package.json | 10 +- js/desktop/src/env.ts | 2 +- js/desktop/src/index.ts | 5 +- js/desktop/src/node.ts | 8 +- js/desktop/src/tests/sync-test.ts | 6 +- js/desktop/src/tests/test-runner.ts | 2 +- js/desktop/src/updater.ts | 4 +- js/desktop/src/window.ts | 6 +- meson.build | 58 ++-- package.json | 4 +- pkg/api/api.go | 68 ++--- pkg/api/api_internal.go | 18 +- pkg/api/api_test.go | 22 +- pkg/api/app-downloads.go | 16 +- pkg/api/app-downloads_test.go | 206 ++++++------- pkg/api/app-updates.go | 8 +- pkg/api/desktop-updates.go | 22 +- pkg/api/playback.go | 30 +- pkg/aqhttp/aqhttp.go | 2 +- pkg/atproto/atproto.go | 14 +- pkg/atproto/atproto_test.go | 24 +- pkg/atproto/client_metadata.go | 2 +- pkg/cmd/{aquareum.go => streamplace.go} | 54 ++-- ...aquareum_linux.go => streamplace_linux.go} | 4 +- ...um_notlinux.go => streamplace_notlinux.go} | 2 +- pkg/cmd/timeoutgroup.go | 2 +- pkg/config/config.go | 8 +- pkg/config/configtesting/configtesting.go | 2 +- pkg/config/git/git.go | 18 +- pkg/crypto/signers/eip712/eip712.go | 28 +- pkg/crypto/signers/eip712/eip712_test.go | 85 +++--- .../signers/eip712/eip712test/eip712test.go | 4 +- .../eip712/export-schema/export-schema.go | 2 +- pkg/crypto/signers/signers.go | 4 +- pkg/errors/errors.go | 2 +- pkg/log/log.go | 4 +- pkg/media/concat.go | 2 +- pkg/media/gstreamer.go | 6 +- pkg/media/gstreamer_test.go | 2 +- pkg/media/m3u8.go | 2 +- pkg/media/media.go | 23 +- pkg/media/media_signer.go | 18 +- pkg/media/media_test.go | 17 +- pkg/media/media_validator.go | 102 +++---- pkg/media/mediatesting/mediatesting.go | 2 +- pkg/media/text.go | 2 +- pkg/media/webrtc.go | 2 +- pkg/mist/mistconfig/mistconfig.go | 10 +- pkg/mist/misttriggers/live_track_list.go | 6 +- pkg/mist/misttriggers/live_track_list_test.go | 2 +- pkg/mist/misttriggers/push_end.go | 4 +- pkg/mist/misttriggers/push_end_test.go | 2 +- pkg/mist/misttriggers/push_out_start.go | 2 +- pkg/mist/misttriggers/push_out_start_test.go | 2 +- pkg/mist/misttriggers/push_rewrite.go | 2 +- pkg/mist/misttriggers/push_rewrite_test.go | 2 +- pkg/mist/misttriggers/stream_buffer.go | 2 +- pkg/mist/misttriggers/stream_source.go | 2 +- pkg/mist/misttriggers/stream_source_test.go | 2 +- pkg/mist/misttriggers/triggers.go | 6 +- pkg/mist/misttriggers/user_end_test.go | 2 +- pkg/mist/misttriggers/user_new.go | 2 +- pkg/mist/misttriggers/user_new_test.go | 2 +- pkg/model/model.go | 2 +- pkg/model/segment.go | 2 +- pkg/notifications/firebase.go | 4 +- pkg/proc/proc.go | 6 +- pkg/replication/boring/boring.go | 4 +- pkg/schema/v0/golive.go | 4 +- aquareum-logo.svg => streamplace-logo.svg | 0 subprojects/FFmpeg.wrap | 2 +- subprojects/c2pa_go.wrap | 2 +- subprojects/mistserver.wrap | 4 +- util/mac-build.sh | 4 +- util/mac-codesign.sh | 2 +- util/mac-tart-build.sh | 2 +- util/windows-selftest.sh | 10 +- yarn.lock | 280 +++++++++--------- 127 files changed, 880 insertions(+), 870 deletions(-) rename cmd/{libaquareum => libstreamplace}/build-flags.go (100%) rename cmd/{libaquareum/aquareum.go => libstreamplace/streamplace.go} (71%) rename cmd/{aquareum/aquareum.c => streamplace/streamplace.c} (55%) rename js/app/features/{aquareum/aquareumProvider.tsx => streamplace/streamplaceProvider.tsx} (50%) rename js/app/features/{aquareum/aquareumSlice.tsx => streamplace/streamplaceSlice.tsx} (79%) delete mode 100644 js/app/hooks/useAquareumNode.tsx create mode 100644 js/app/hooks/useStreamplaceNode.tsx rename js/desktop/assets/images/{aquareum-logo.icns => streamplace-logo.icns} (100%) rename js/desktop/assets/images/{aquareum-logo.ico => streamplace-logo.ico} (100%) rename js/desktop/assets/images/{aquareum-logo.png => streamplace-logo.png} (100%) rename pkg/cmd/{aquareum.go => streamplace.go} (90%) rename pkg/cmd/{aquareum_linux.go => streamplace_linux.go} (79%) rename pkg/cmd/{aquareum_notlinux.go => streamplace_notlinux.go} (71%) rename aquareum-logo.svg => streamplace-logo.svg (100%) diff --git a/.ci/dockerfile-hash.yaml b/.ci/dockerfile-hash.yaml index 77a1e928..d21446ea 100644 --- a/.ci/dockerfile-hash.yaml +++ b/.ci/dockerfile-hash.yaml @@ -1,2 +1,2 @@ variables: - DOCKERFILE_HASH: 74790c961b23c84e4ca326bbfb17e497e4c64eb9 \ No newline at end of file + DOCKERFILE_HASH: 2d103fb949f4d90fdbcdf98da8994daaa7fe0e6a \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 68f11749..bb79915e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -73,11 +73,11 @@ build-docker-amd64: script: - /kaniko/executor --build-arg TARGETARCH=amd64 - --build-arg AQUAREUM_URL=$AQUAREUM_URL_LINUX_AMD64 + --build-arg STREAMPLACE_URL=$STREAMPLACE_URL_LINUX_AMD64 --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/docker/release.Dockerfile" - --destination "$CI_REGISTRY_IMAGE:$AQUAREUM_BRANCH-amd64" - --destination "$CI_REGISTRY_IMAGE:$AQUAREUM_VERSION-amd64" + --destination "$CI_REGISTRY_IMAGE:$STREAMPLACE_BRANCH-amd64" + --destination "$CI_REGISTRY_IMAGE:$STREAMPLACE_VERSION-amd64" build-docker-arm64: stage: build @@ -92,11 +92,11 @@ build-docker-arm64: script: - /kaniko/executor --build-arg TARGETARCH=arm64 - --build-arg AQUAREUM_URL=$AQUAREUM_URL_LINUX_ARM64 + --build-arg STREAMPLACE_URL=$STREAMPLACE_URL_LINUX_ARM64 --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/docker/release.Dockerfile" - --destination "$CI_REGISTRY_IMAGE:$AQUAREUM_BRANCH-arm64" - --destination "$CI_REGISTRY_IMAGE:$AQUAREUM_VERSION-arm64" + --destination "$CI_REGISTRY_IMAGE:$STREAMPLACE_BRANCH-arm64" + --destination "$CI_REGISTRY_IMAGE:$STREAMPLACE_VERSION-arm64" --customPlatform=linux/arm64 build-docker-manifest: @@ -118,9 +118,9 @@ build-docker-manifest: script: - ./manifest-tool --username "${CI_REGISTRY_USER}" --password "${CI_REGISTRY_PASSWORD}" push from-args --platforms linux/amd64,linux/arm64 - --template $CI_REGISTRY_IMAGE:$AQUAREUM_VERSION-ARCH - --tags $AQUAREUM_BRANCH - --target $CI_REGISTRY_IMAGE:$AQUAREUM_VERSION + --template $CI_REGISTRY_IMAGE:$STREAMPLACE_VERSION-ARCH + --tags $STREAMPLACE_BRANCH + --target $CI_REGISTRY_IMAGE:$STREAMPLACE_VERSION build-android: stage: build @@ -142,8 +142,8 @@ build-mac: # workaround for https://gitlab.com/gitlab-org/gitlab/-/issues/501457 # which is a workaround for ios builds failing due to /tmp vs /private/tmp weirdness - cd .. - - mv aquareum /Users/admin/aquareum - - cd /Users/admin/aquareum + - mv streamplace /Users/admin/streamplace + - cd /Users/admin/streamplace - git fetch --unshallow || echo 'already unshallow' - brew install ninja go openssl@3 && go version - sudo gem uninstall xcodeproj -x --ignore-dependencies @@ -175,7 +175,7 @@ windows-selftest: MSYSTEM: "MINGW32" CHERE_INVOKING: "yes" script: - - C:\msys64\usr\bin\bash -lc "bash -x ./util/windows-selftest.sh $AQUAREUM_DESKTOP_URL_WINDOWS_AMD64" + - C:\msys64\usr\bin\bash -lc "bash -x ./util/windows-selftest.sh $STREAMPLACE_DESKTOP_URL_WINDOWS_AMD64" release: stage: build diff --git a/.vscode/settings.json b/.vscode/settings.json index b7b83b88..6a152f81 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,7 +5,7 @@ }, "files.associations": { "mistserver.h": "c", - "aquareum.h": "c", + "streamplace.h": "c", "avfilter.h": "c" }, "mesonbuild.configureOnOpen": false diff --git a/LICENSE b/LICENSE index bc64fe67..db626454 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2024 Aquareum. +Copyright (c) 2024 Streamplace. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Makefile b/Makefile index 70353707..f0fe72bc 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,7 @@ app: schema install .PHONY: node node: schema $(MAKE) meson-setup - meson compile -C $(BUILDDIR) aquareum + meson compile -C $(BUILDDIR) streamplace .PHONY: schema schema: @@ -55,30 +55,30 @@ test: LINUX_LINK_COUNT=5 .PHONY: link-test-linux link-test-linux: - count=$(shell ldd ./build-linux-amd64/aquareum | wc -l) \ + count=$(shell ldd ./build-linux-amd64/streamplace | wc -l) \ && echo $$count \ && if [ "$$count" != "$(LINUX_LINK_COUNT)" ]; then echo "ldd reports new libaries linked! want $(LINUX_LINK_COUNT) got $$count" \ - && ldd ./build-linux-amd64/aquareum \ + && ldd ./build-linux-amd64/streamplace \ && exit 1; \ fi MACOS_LINK_COUNT=10 .PHONY: link-test-macos link-test-macos: - count=$(shell otool -L ./build-darwin-arm64/aquareum | wc -l | xargs) \ + count=$(shell otool -L ./build-darwin-arm64/streamplace | wc -l | xargs) \ && echo $$count \ && if [ "$$count" != "$(MACOS_LINK_COUNT)" ]; then echo "otool -L reports new libaries linked! want $(MACOS_LINK_COUNT) got $$count" \ - && otool -L ./build-darwin-arm64/aquareum \ + && otool -L ./build-darwin-arm64/streamplace \ && exit 1; \ fi WINDOWS_LINK_COUNT=16 .PHONY: link-test-windows link-test-windows: - count=$(shell x86_64-w64-mingw32-objdump -p ./build-windows-amd64/aquareum.exe | grep "DLL Name" | wc -l | xargs) \ + count=$(shell x86_64-w64-mingw32-objdump -p ./build-windows-amd64/streamplace.exe | grep "DLL Name" | wc -l | xargs) \ && echo $$count \ && if [ "$$count" != "$(WINDOWS_LINK_COUNT)" ]; then echo "x86_64-w64-mingw32-objdump -p reports new libaries linked! want $(WINDOWS_LINK_COUNT) got $$count" \ - && x86_64-w64-mingw32-objdump -p ./build-windows-amd64/aquareum.exe | grep "DLL Name" \ + && x86_64-w64-mingw32-objdump -p ./build-windows-amd64/streamplace.exe | grep "DLL Name" \ && exit 1; \ fi @@ -106,31 +106,31 @@ android: app .build/bundletool.jar && ./gradlew :app:bundleRelease \ && ./gradlew :app:bundleDebug \ && cd - \ - && mv ./js/app/android/app/build/outputs/bundle/release/app-release.aab ./bin/aquareum-$(VERSION)-android-release.aab \ - && mv ./js/app/android/app/build/outputs/bundle/debug/app-debug.aab ./bin/aquareum-$(VERSION)-android-debug.aab \ + && mv ./js/app/android/app/build/outputs/bundle/release/app-release.aab ./bin/streamplace-$(VERSION)-android-release.aab \ + && mv ./js/app/android/app/build/outputs/bundle/debug/app-debug.aab ./bin/streamplace-$(VERSION)-android-debug.aab \ && cd bin \ - && java -jar ../.build/bundletool.jar build-apks --ks ../my-release-key.keystore --ks-key-alias alias_name --ks-pass pass:aquareum --bundle=aquareum-$(VERSION)-android-release.aab --output=aquareum-$(VERSION)-android-release.apks --mode=universal \ - && java -jar ../.build/bundletool.jar build-apks --ks ../my-release-key.keystore --ks-key-alias alias_name --ks-pass pass:aquareum --bundle=aquareum-$(VERSION)-android-debug.aab --output=aquareum-$(VERSION)-android-debug.apks --mode=universal \ - && unzip aquareum-$(VERSION)-android-release.apks && mv universal.apk aquareum-$(VERSION)-android-release.apk && rm toc.pb \ - && unzip aquareum-$(VERSION)-android-debug.apks && mv universal.apk aquareum-$(VERSION)-android-debug.apk && rm toc.pb + && java -jar ../.build/bundletool.jar build-apks --ks ../my-release-key.keystore --ks-key-alias alias_name --ks-pass pass:aquareum --bundle=streamplace-$(VERSION)-android-release.aab --output=streamplace-$(VERSION)-android-release.apks --mode=universal \ + && java -jar ../.build/bundletool.jar build-apks --ks ../my-release-key.keystore --ks-key-alias alias_name --ks-pass pass:aquareum --bundle=streamplace-$(VERSION)-android-debug.aab --output=streamplace-$(VERSION)-android-debug.apks --mode=universal \ + && unzip streamplace-$(VERSION)-android-release.apks && mv universal.apk streamplace-$(VERSION)-android-release.apk && rm toc.pb \ + && unzip streamplace-$(VERSION)-android-debug.apks && mv universal.apk streamplace-$(VERSION)-android-debug.apk && rm toc.pb .PHONY: ios ios: app xcodebuild \ - -workspace ./js/app/ios/Aquareum.xcworkspace \ + -workspace ./js/app/ios/Streamplace.xcworkspace \ -sdk iphoneos \ -configuration Release \ - -scheme Aquareum \ - -archivePath ./bin/aquareum-$(VERSION)-ios-release.xcarchive \ + -scheme Streamplace \ + -archivePath ./bin/streamplace-$(VERSION)-ios-release.xcarchive \ CODE_SIGN_IDENTITY=- \ AD_HOC_CODE_SIGNING_ALLOWED=YES \ CODE_SIGN_STYLE=Automatic \ DEVELOPMENT_TEAM=ZZZZZZZZZZ \ clean archive | xcpretty \ && cd bin \ - && tar -czvf aquareum-$(VERSION)-ios-release.xcarchive.tar.gz aquareum-$(VERSION)-ios-release.xcarchive + && tar -czvf streamplace-$(VERSION)-ios-release.xcarchive.tar.gz streamplace-$(VERSION)-ios-release.xcarchive -# xcodebuild -exportArchive -archivePath ./bin/aquareum-$(VERSION)-ios-release.xcarchive -exportOptionsPlist ./js/app/exportOptions.plist -exportPath ./bin/aquareum-$(VERSION)-ios-release.ipa +# xcodebuild -exportArchive -archivePath ./bin/streamplace-$(VERSION)-ios-release.xcarchive -exportOptionsPlist ./js/app/exportOptions.plist -exportPath ./bin/streamplace-$(VERSION)-ios-release.ipa .build/bundletool.jar: mkdir -p .build \ @@ -199,18 +199,18 @@ desktop-linux: && yarn run make --platform linux --arch x64 \ && yarn run make --platform linux --arch arm64 \ && cd - \ - && mv "js/desktop/out/make/AppImage/x64/Aquareum-$(VERSION_ELECTRON)-x64.AppImage" ./bin/aquareum-desktop-$(VERSION)-linux-amd64.AppImage \ - && mv "js/desktop/out/make/AppImage/arm64/Aquareum-$(VERSION_ELECTRON)-arm64.AppImage" ./bin/aquareum-desktop-$(VERSION)-linux-arm64.AppImage + && mv "js/desktop/out/make/AppImage/x64/Streamplace-$(VERSION_ELECTRON)-x64.AppImage" ./bin/streamplace-desktop-$(VERSION)-linux-amd64.AppImage \ + && mv "js/desktop/out/make/AppImage/arm64/Streamplace-$(VERSION_ELECTRON)-arm64.AppImage" ./bin/streamplace-desktop-$(VERSION)-linux-arm64.AppImage .PHONY: desktop-windows desktop-windows: cd js/desktop \ && yarn run make --platform win32 --arch x64 \ && cd - \ - && export SUM=$$(cat ./js/desktop/out/make/squirrel.windows/x64/aquareum_desktop-$(VERSION_ELECTRON)-full.nupkg | openssl sha1 | awk '{ print $$2 }') \ - && echo $$SUM > ./bin/aquareum-desktop-$(VERSION)-windows-amd64.nupkg.sha1 \ - && mv "js/desktop/out/make/squirrel.windows/x64/aquareum_desktop-$(VERSION_ELECTRON)-full.nupkg" ./bin/aquareum-desktop-$(VERSION)-windows-amd64.$$SUM.nupkg \ - && mv "js/desktop/out/make/squirrel.windows/x64/Aquareum-$(VERSION_ELECTRON) Setup.exe" ./bin/aquareum-desktop-$(VERSION)-windows-amd64.exe + && export SUM=$$(cat ./js/desktop/out/make/squirrel.windows/x64/streamplace_desktop-$(VERSION_ELECTRON)-full.nupkg | openssl sha1 | awk '{ print $$2 }') \ + && echo $$SUM > ./bin/streamplace-desktop-$(VERSION)-windows-amd64.nupkg.sha1 \ + && mv "js/desktop/out/make/squirrel.windows/x64/streamplace_desktop-$(VERSION_ELECTRON)-full.nupkg" ./bin/streamplace-desktop-$(VERSION)-windows-amd64.$$SUM.nupkg \ + && mv "js/desktop/out/make/squirrel.windows/x64/Streamplace-$(VERSION_ELECTRON) Setup.exe" ./bin/streamplace-desktop-$(VERSION)-windows-amd64.exe .PHONY: linux-arm64 linux-arm64: @@ -232,28 +232,28 @@ windows-amd64-meson-setup: # unbuffer here is a workaround for wine trying to pop up a terminal window and failing .PHONY: windows-amd64-startup-test windows-amd64-startup-test: - bash -c 'set -euo pipefail && unbuffer wine64 ./build-windows-amd64/aquareum.exe self-test | cat' + bash -c 'set -euo pipefail && unbuffer wine64 ./build-windows-amd64/streamplace.exe self-test | cat' .PHONY: node-all-platforms-macos node-all-platforms-macos: app meson setup --buildtype debugoptimized build-darwin-arm64 $(OPTS) meson compile -C build-darwin-arm64 - ./util/mac-codesign.sh ./build-darwin-arm64/aquareum + ./util/mac-codesign.sh ./build-darwin-arm64/streamplace cd build-darwin-arm64 \ - && tar -czvf ../bin/aquareum-$(VERSION)-darwin-arm64.tar.gz ./aquareum \ + && tar -czvf ../bin/streamplace-$(VERSION)-darwin-arm64.tar.gz ./streamplace \ && cd - - ./build-darwin-arm64/aquareum --version - ./build-darwin-arm64/aquareum self-test + ./build-darwin-arm64/streamplace --version + ./build-darwin-arm64/streamplace self-test $(MAKE) link-test-macos rustup target add x86_64-apple-darwin meson setup --buildtype debugoptimized --cross-file util/darwin-amd64-apple.ini build-darwin-amd64 $(OPTS) meson compile -C build-darwin-amd64 - ./util/mac-codesign.sh ./build-darwin-amd64/aquareum + ./util/mac-codesign.sh ./build-darwin-amd64/streamplace cd build-darwin-amd64 \ - && tar -czvf ../bin/aquareum-$(VERSION)-darwin-amd64.tar.gz ./aquareum \ + && tar -czvf ../bin/streamplace-$(VERSION)-darwin-amd64.tar.gz ./streamplace \ && cd - - ./build-darwin-amd64/aquareum --version - ./build-darwin-arm64/aquareum self-test + ./build-darwin-amd64/streamplace --version + ./build-darwin-arm64/streamplace self-test $(MAKE) desktop-macos meson test -C build-darwin-arm64 go-tests @@ -264,14 +264,14 @@ desktop-macos: && yarn run make --platform darwin --arch arm64 \ && yarn run make --platform darwin --arch x64 \ && cd - \ - && mv js/desktop/out/make/Aquareum-$(VERSION_ELECTRON)-x64.dmg ./bin/aquareum-desktop-$(VERSION)-darwin-amd64.dmg \ - && mv js/desktop/out/make/Aquareum-$(VERSION_ELECTRON)-arm64.dmg ./bin/aquareum-desktop-$(VERSION)-darwin-arm64.dmg \ - && mv js/desktop/out/make/zip/darwin/x64/Aquareum-darwin-x64-$(VERSION_ELECTRON).zip ./bin/aquareum-desktop-$(VERSION)-darwin-amd64.zip \ - && mv js/desktop/out/make/zip/darwin/arm64/Aquareum-darwin-arm64-$(VERSION_ELECTRON).zip ./bin/aquareum-desktop-$(VERSION)-darwin-arm64.zip + && mv js/desktop/out/make/Streamplace-$(VERSION_ELECTRON)-x64.dmg ./bin/streamplace-desktop-$(VERSION)-darwin-amd64.dmg \ + && mv js/desktop/out/make/Streamplace-$(VERSION_ELECTRON)-arm64.dmg ./bin/streamplace-desktop-$(VERSION)-darwin-arm64.dmg \ + && mv js/desktop/out/make/zip/darwin/x64/Streamplace-darwin-x64-$(VERSION_ELECTRON).zip ./bin/streamplace-desktop-$(VERSION)-darwin-amd64.zip \ + && mv js/desktop/out/make/zip/darwin/arm64/Streamplace-darwin-arm64-$(VERSION_ELECTRON).zip ./bin/streamplace-desktop-$(VERSION)-darwin-arm64.zip .PHONY: selftest-macos selftest-macos: - js/desktop/out/Aquareum-darwin-arm64/Aquareum.app/Contents/MacOS/Aquareum -- --self-test + js/desktop/out/Streamplace-darwin-arm64/Streamplace.app/Contents/MacOS/Streamplace -- --self-test # link your local version of mist for dev .PHONY: link-mist @@ -303,18 +303,18 @@ docker-build: docker-build-builder docker-build-in-container .PHONY: docker-build-builder docker-build-builder: cd docker \ - && docker build --target=builder --os=linux --arch=amd64 -f build.Dockerfile -t aqrm.io/aquareum-tv/aquareum:builder . + && docker build --target=builder --os=linux --arch=amd64 -f build.Dockerfile -t aqrm.io/streamplace/streamplace:builder . .PHONY: docker-build-builder docker-build-in-container: - docker run -v $$(pwd):$$(pwd) -w $$(pwd) --rm -it aqrm.io/aquareum-tv/aquareum:builder make app-and-node + docker run -v $$(pwd):$$(pwd) -w $$(pwd) --rm -it aqrm.io/streamplace/streamplace:builder make app-and-node .PHONY: docker-release docker-release: cd docker \ && docker build -f release.Dockerfile \ --build-arg TARGETARCH=$(BUILDARCH) \ - -t aqrm.io/aquareum-tv/aquareum \ + -t aqrm.io/streamplace/streamplace \ . .PHONY: ci-upload @@ -324,20 +324,20 @@ ci-upload: ci-upload-node ci-upload-android ci-upload-node: node-all-platforms for GOOS in linux; do \ for GOARCH in amd64 arm64; do \ - export file=aquareum-$(VERSION)-$$GOOS-$$GOARCH.tar.gz \ + export file=streamplace-$(VERSION)-$$GOOS-$$GOARCH.tar.gz \ && $(MAKE) ci-upload-file upload_file=$$file; \ - export file=aquareum-desktop-$(VERSION)-$$GOOS-$$GOARCH.AppImage \ + export file=streamplace-desktop-$(VERSION)-$$GOOS-$$GOARCH.AppImage \ && $(MAKE) ci-upload-file upload_file=$$file; \ done \ done; for GOOS in windows; do \ for GOARCH in amd64; do \ - export file=aquareum-$(VERSION)-$$GOOS-$$GOARCH.zip \ + export file=streamplace-$(VERSION)-$$GOOS-$$GOARCH.zip \ && $(MAKE) ci-upload-file upload_file=$$file; \ - export file=aquareum-desktop-$(VERSION)-$$GOOS-$$GOARCH.exe \ + export file=streamplace-desktop-$(VERSION)-$$GOOS-$$GOARCH.exe \ && $(MAKE) ci-upload-file upload_file=$$file; \ - export SUM=$$(cat bin/aquareum-desktop-$(VERSION)-$$GOOS-$$GOARCH.nupkg.sha1) \ - && export file=aquareum-desktop-$(VERSION)-$$GOOS-$$GOARCH.$$SUM.nupkg \ + export SUM=$$(cat bin/streamplace-desktop-$(VERSION)-$$GOOS-$$GOARCH.nupkg.sha1) \ + && export file=streamplace-desktop-$(VERSION)-$$GOOS-$$GOARCH.$$SUM.nupkg \ && $(MAKE) ci-upload-file upload_file=$$file; \ done \ done; @@ -346,25 +346,25 @@ ci-upload-node: node-all-platforms ci-upload-node-macos: node-all-platforms-macos for GOOS in darwin; do \ for GOARCH in amd64 arm64; do \ - export file=aquareum-$(VERSION)-$$GOOS-$$GOARCH.tar.gz \ + export file=streamplace-$(VERSION)-$$GOOS-$$GOARCH.tar.gz \ && $(MAKE) ci-upload-file upload_file=$$file; \ - export file=aquareum-desktop-$(VERSION)-$$GOOS-$$GOARCH.dmg \ + export file=streamplace-desktop-$(VERSION)-$$GOOS-$$GOARCH.dmg \ && $(MAKE) ci-upload-file upload_file=$$file; \ - export file=aquareum-desktop-$(VERSION)-$$GOOS-$$GOARCH.zip \ + export file=streamplace-desktop-$(VERSION)-$$GOOS-$$GOARCH.zip \ && $(MAKE) ci-upload-file upload_file=$$file; \ done \ done; .PHONY: ci-upload-android ci-upload-android: android - $(MAKE) ci-upload-file upload_file=aquareum-$(VERSION)-android-release.apk \ - && $(MAKE) ci-upload-file upload_file=aquareum-$(VERSION)-android-debug.apk \ - && $(MAKE) ci-upload-file upload_file=aquareum-$(VERSION)-android-release.aab \ - && $(MAKE) ci-upload-file upload_file=aquareum-$(VERSION)-android-debug.aab + $(MAKE) ci-upload-file upload_file=streamplace-$(VERSION)-android-release.apk \ + && $(MAKE) ci-upload-file upload_file=streamplace-$(VERSION)-android-debug.apk \ + && $(MAKE) ci-upload-file upload_file=streamplace-$(VERSION)-android-release.aab \ + && $(MAKE) ci-upload-file upload_file=streamplace-$(VERSION)-android-debug.aab .PHONY: ci-upload-ios ci-upload-ios: ios - $(MAKE) ci-upload-file upload_file=aquareum-$(VERSION)-ios-release.xcarchive.tar.gz + $(MAKE) ci-upload-file upload_file=streamplace-$(VERSION)-ios-release.xcarchive.tar.gz upload_file?="" .PHONY: ci-upload-file diff --git a/README.md b/README.md index d856a63c..699613a4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Aquareum +# Streamplace ## The Video Layer for Everything @@ -21,11 +21,11 @@ yarn run build ``` make node -./build-darwin-arm64/aquareum +./build-darwin-arm64/streamplace // or -./build-linux-amd64/aquareum +./build-linux-amd64/streamplace ``` **Web Development** @@ -56,10 +56,10 @@ Some app development may require actual HTTPS to test the OAuth flow. To make that happen, you can set the `AQ_APP_SCHEME` environment variable to the scheme you want to use; it must match reverse of the URL of a publicly accessible server with an HTTPS cert. So, if you're exposing your app on -aquareum.example.com, you could run the app with +streamplace.example.com, you could run the app with ``` -export AQ_APP_SCHEME=com.example.aquareum +export AQ_APP_SCHEME=com.example.streamplace yarn run app ios ``` @@ -77,4 +77,4 @@ node util/generate-dev-admin-key.mjs ``` Adding those two environment variables to your shell will give your desktop app -administrative access over your local Aquareum node. +administrative access over your local Streamplace node. diff --git a/cmd/libaquareum/build-flags.go b/cmd/libstreamplace/build-flags.go similarity index 100% rename from cmd/libaquareum/build-flags.go rename to cmd/libstreamplace/build-flags.go diff --git a/cmd/libaquareum/aquareum.go b/cmd/libstreamplace/streamplace.go similarity index 71% rename from cmd/libaquareum/aquareum.go rename to cmd/libstreamplace/streamplace.go index e3700400..ca8dc62c 100644 --- a/cmd/libaquareum/aquareum.go +++ b/cmd/libstreamplace/streamplace.go @@ -4,10 +4,10 @@ import ( "context" "strconv" - "aquareum.tv/aquareum/pkg/config" - "aquareum.tv/aquareum/pkg/log" + "stream.place/streamplace/pkg/config" + "stream.place/streamplace/pkg/log" - "aquareum.tv/aquareum/pkg/cmd" + "stream.place/streamplace/pkg/cmd" // _ "github.com/go-gst/go-glib/glib" // _ "github.com/go-gst/go-gst/gst" ) @@ -15,8 +15,8 @@ import ( //#cgo LDFLAGS: -lz import "C" -//export AquareumMain -func AquareumMain() { +//export StreamplaceMain +func StreamplaceMain() { i, err := strconv.ParseInt(BuildTime, 10, 64) if err != nil { panic(err) @@ -32,5 +32,5 @@ func AquareumMain() { } func main() { - AquareumMain() + StreamplaceMain() } diff --git a/cmd/aquareum/aquareum.c b/cmd/streamplace/streamplace.c similarity index 55% rename from cmd/aquareum/aquareum.c rename to cmd/streamplace/streamplace.c index 8e0f5973..4900a16d 100644 --- a/cmd/aquareum/aquareum.c +++ b/cmd/streamplace/streamplace.c @@ -1,7 +1,7 @@ #include -#include "aquareum.h" +#include "streamplace.h" int main(int argc, char *argv[]) { - AquareumMain(); + StreamplaceMain(); } diff --git a/docker/build.Dockerfile b/docker/build.Dockerfile index 74790c96..2d103fb9 100644 --- a/docker/build.Dockerfile +++ b/docker/build.Dockerfile @@ -67,12 +67,12 @@ FROM builder AS cached-builder ARG CI_COMMIT_BRANCH=next ENV CI_COMMIT_BRANCH $CI_COMMIT_BRANCH WORKDIR /cached-build -RUN git clone https://git.aquareum.tv/aquareum-tv/aquareum \ - && cd aquareum \ +RUN git clone https://git.aquareum.tv/streamplace/streamplace \ + && cd streamplace \ && make version install check app android -j$(nproc) \ && make node \ && make test \ && cd .. \ - && rm -rf aquareum + && rm -rf streamplace -LABEL org.opencontainers.image.authors="support@aquareum.tv" +LABEL org.opencontainers.image.authors="support@stream.place" diff --git a/docker/release.Dockerfile b/docker/release.Dockerfile index 5ce017da..91da78fe 100644 --- a/docker/release.Dockerfile +++ b/docker/release.Dockerfile @@ -2,8 +2,8 @@ ARG TARGETARCH FROM --platform=linux/$TARGETARCH ubuntu:24.04 RUN apt update && apt install -y curl -ARG AQUAREUM_URL -ENV AQUAREUM_URL $AQUAREUM_URL -RUN echo "downloading $AQUAREUM_URL" && cd /usr/local/bin && curl -L "$AQUAREUM_URL" | tar xzv -RUN aquareum self-test -CMD aquareum +ARG STREAMPLACE_URL +ENV STREAMPLACE_URL $STREAMPLACE_URL +RUN echo "downloading $STREAMPLACE_URL" && cd /usr/local/bin && curl -L "$STREAMPLACE_URL" | tar xzv +RUN streamplace self-test +CMD streamplace diff --git a/go.mod b/go.mod index 93224f82..ee1a7c74 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module aquareum.tv/aquareum +module stream.place/streamplace go 1.22.4 @@ -8,7 +8,6 @@ replace github.com/ThalesGroup/crypto11 => github.com/aquareum-tv/crypto11 v0.0. require ( firebase.google.com/go/v4 v4.14.1 - git.aquareum.tv/aquareum-tv/c2pa-go v0.0.0-20240913223408-68f9878542d4 github.com/NYTimes/gziphandler v1.1.1 github.com/ThalesGroup/crypto11 v0.0.0-00010101000000-000000000000 github.com/bluesky-social/indigo v0.0.0-20241119234843-9198b7903723 @@ -28,9 +27,11 @@ require ( github.com/julienschmidt/httprouter v1.3.0 github.com/livepeer/lpms v0.0.0-20240812093642-b5181eb92cb2 github.com/lmittmann/tint v1.0.4 + github.com/mr-tron/base58 v1.2.0 github.com/orandin/slog-gorm v1.3.2 github.com/peterbourgon/ff/v3 v3.3.1 github.com/pion/interceptor v0.1.37 + github.com/pion/rtcp v1.2.14 github.com/pion/webrtc/v4 v4.0.5 github.com/piprate/json-gold v0.5.0 github.com/rs/cors v1.7.0 @@ -74,6 +75,7 @@ require ( cloud.google.com/go/storage v1.41.0 // indirect dario.cat/mergo v1.0.0 // indirect filippo.io/edwards25519 v1.1.0 // indirect + git.aquareum.tv/streamplace/c2pa-go v0.0.0-20250116060241-2931a03e9814 github.com/BurntSushi/toml v1.4.0 // indirect github.com/MicahParks/keyfunc v1.9.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect @@ -140,7 +142,6 @@ require ( github.com/mitchellh/gox v1.0.1 // indirect github.com/mitchellh/iochan v1.0.0 // indirect github.com/mmcloughlin/addchain v0.4.0 // indirect - github.com/mr-tron/base58 v1.2.0 // indirect github.com/multiformats/go-base32 v0.1.0 // indirect github.com/multiformats/go-base36 v0.2.0 // indirect github.com/multiformats/go-multibase v0.2.0 // indirect @@ -155,7 +156,6 @@ require ( github.com/pion/logging v0.2.2 // indirect github.com/pion/mdns/v2 v2.0.7 // indirect github.com/pion/randutil v0.1.0 // indirect - github.com/pion/rtcp v1.2.14 // indirect github.com/pion/rtp v1.8.9 // indirect github.com/pion/sctp v1.8.34 // indirect github.com/pion/sdp/v3 v3.0.9 // indirect diff --git a/go.sum b/go.sum index 0570d550..b396e0ab 100644 --- a/go.sum +++ b/go.sum @@ -21,8 +21,8 @@ filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= firebase.google.com/go/v4 v4.14.1 h1:4qiUETaFRWoFGE1XP5VbcEdtPX93Qs+8B/7KvP2825g= firebase.google.com/go/v4 v4.14.1/go.mod h1:fgk2XshgNDEKaioKco+AouiegSI9oTWVqRaBdTTGBoM= -git.aquareum.tv/aquareum-tv/c2pa-go v0.0.0-20240913223408-68f9878542d4 h1:bZfabLYa/62SPeHd+mUiA21BM5K930LWOSkBDjUTxnI= -git.aquareum.tv/aquareum-tv/c2pa-go v0.0.0-20240913223408-68f9878542d4/go.mod h1:lp4UzqUyNZ4gieOSCdjsGoSUudZsDrBpsBgnRoNLlSw= +git.aquareum.tv/streamplace/c2pa-go v0.0.0-20250116060241-2931a03e9814 h1:FratCcTCyDzi+9eXybSLk4Fc92IDpmQdxiYj7tBWNLI= +git.aquareum.tv/streamplace/c2pa-go v0.0.0-20250116060241-2931a03e9814/go.mod h1:6Oc4eGu9YOCOa2Z00Vso6UrmIoNnnYqL/1FrAlJi+EA= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= diff --git a/hack/push.mjs b/hack/push.mjs index 9e91d77e..86df4bc0 100644 --- a/hack/push.mjs +++ b/hack/push.mjs @@ -13,11 +13,11 @@ admin.initializeApp({ // console.log(tokens) // process.exit(0) -// curl -H "Authorization: Bearer $AQ_ADMIN" https://aquareum.tv/api/notification +// curl -H "Authorization: Bearer $AQ_ADMIN" https://stream.place/api/notification const delay = (ms) => new Promise((r) => setTimeout(r, ms)); const blast = async (body) => { - const tokensRes = await fetch("https://aquareum.tv/api/notification", { + const tokensRes = await fetch("https://stream.place/api/notification", { headers: { Authorization: `Bearer ${process.env.AQ_ADMIN}`, }, diff --git a/js/app/.env.development b/js/app/.env.development index 765ebb59..22c88260 100644 --- a/js/app/.env.development +++ b/js/app/.env.development @@ -1,3 +1,3 @@ -EXPO_PUBLIC_AQUAREUM_URL=http://localhost:38080 +EXPO_PUBLIC_STREAMPLACE_URL=http://localhost:38080 EXPO_PUBLIC_WEB_TRY_LOCAL=false EXPO_USE_METRO_WORKSPACE_ROOT=1 \ No newline at end of file diff --git a/js/app/.env.production b/js/app/.env.production index bc7fb1de..10b6b71c 100644 --- a/js/app/.env.production +++ b/js/app/.env.production @@ -1,3 +1,3 @@ -EXPO_PUBLIC_AQUAREUM_URL=https://aquareum.tv +EXPO_PUBLIC_STREAMPLACE_URL=https://stream.place EXPO_PUBLIC_WEB_TRY_LOCAL=true EXPO_USE_METRO_WORKSPACE_ROOT=0 \ No newline at end of file diff --git a/js/app/.gitignore b/js/app/.gitignore index bceeb6dd..dfdf4289 100644 --- a/js/app/.gitignore +++ b/js/app/.gitignore @@ -53,7 +53,7 @@ apps/studio/types/** tamagui-web.css android/app/src/main/assets -ios/Aquareum.xcworkspace/xcshareddata +ios/Streamplace.xcworkspace/xcshareddata ios android code-signing-dev diff --git a/js/app/app.config.ts b/js/app/app.config.ts index 1211b4ea..0f0cea6f 100644 --- a/js/app/app.config.ts +++ b/js/app/app.config.ts @@ -52,7 +52,7 @@ export default function () { const isProd = process.env["AQ_PRODUCTION_RELEASE"] === "true" || !!process.env.CI; const pkg = require("./package.json"); - const name = isProd ? "Aquareum" : "Devquarium"; + const name = isProd ? "Streamplace" : "Devplace"; const bundle = isProd ? "tv.aquareum" : "tv.aquareum.dev"; const scheme = process.env["AQ_APP_SCHEME"] ?? bundle; return { @@ -177,7 +177,7 @@ export default function () { }, updates: isProd ? { - url: `https://aquareum.tv/api/manifest`, + url: `https://stream.place/api/manifest`, enabled: true, checkAutomatically: "ON_LOAD", fallbackToCacheTimeout: 30000, diff --git a/js/app/app.go b/js/app/app.go index 5986abcf..887f3739 100644 --- a/js/app/app.go +++ b/js/app/app.go @@ -12,7 +12,7 @@ var AllFiles embed.FS //go:embed package.json var pkg []byte -// fetch a static snapshot of the current Aquareum web app +// fetch a static snapshot of the current Streamplace web app func Files() (fs.FS, error) { rootFiles, err := fs.Sub(AllFiles, "dist") if err != nil { diff --git a/js/app/components/get-apps.tsx b/js/app/components/get-apps.tsx index 6e672549..427f42b2 100644 --- a/js/app/components/get-apps.tsx +++ b/js/app/components/get-apps.tsx @@ -9,7 +9,7 @@ export default function GetApps() { ) { if (props.forceProtocol) { defProto = props.forceProtocol; } - const { url } = useAquareumNode(); + const { url } = useStreamplaceNode(); const info = usePlatform(); const playerEvent = async ( time: string, diff --git a/js/app/components/player/shared.tsx b/js/app/components/player/shared.tsx index 47343d97..e66c31a3 100644 --- a/js/app/components/player/shared.tsx +++ b/js/app/components/player/shared.tsx @@ -1,4 +1,4 @@ -import useAquareumNode from "hooks/useAquareumNode"; +import useStreamplaceNode from "hooks/useStreamplaceNode"; import { PlayerProps, PROTOCOL_HLS, @@ -19,7 +19,7 @@ export function srcToUrl(props: PlayerProps): { url: string; protocol: string; } { - const { url } = useAquareumNode(); + const { url } = useStreamplaceNode(); return useMemo(() => { if (props.src.startsWith("http://") || props.src.startsWith("https://")) { const segments = props.src.split(/[./]/); diff --git a/js/app/components/player/video.tsx b/js/app/components/player/video.tsx index db6d6ff6..491ec85a 100644 --- a/js/app/components/player/video.tsx +++ b/js/app/components/player/video.tsx @@ -19,7 +19,7 @@ import { } from "./props"; import { srcToUrl } from "./shared"; import useWebRTC, { useWebRTCIngest } from "./use-webrtc"; -import useAquareumNode from "hooks/useAquareumNode"; +import useStreamplaceNode from "hooks/useStreamplaceNode"; import { useAppDispatch, useAppSelector } from "store/hooks"; import { selectStoredKey } from "features/bluesky/blueskySlice"; import { usePlayer } from "features/player/playerSlice"; @@ -238,7 +238,7 @@ export function WebcamIngestPlayer( } }, []); - const { url } = useAquareumNode(); + const { url } = useStreamplaceNode(); const [localMediaStream, setLocalMediaStream] = useState( null, ); diff --git a/js/app/components/provider/provider.shared.tsx b/js/app/components/provider/provider.shared.tsx index 356c2c90..90e63d92 100644 --- a/js/app/components/provider/provider.shared.tsx +++ b/js/app/components/provider/provider.shared.tsx @@ -5,7 +5,7 @@ import { } from "@react-navigation/native"; import { ToastProvider, ToastViewport } from "@tamagui/toast"; import { useFonts } from "expo-font"; -import AquareumProvider from "features/aquareum/aquareumProvider"; +import StreamplaceProvider from "features/streamplace/streamplaceProvider"; import React from "react"; import { PortalProvider, TamaguiProvider } from "tamagui"; import config from "tamagui.config"; @@ -24,7 +24,7 @@ export default function Provider({ - + - + diff --git a/js/app/components/settings/settings.tsx b/js/app/components/settings/settings.tsx index 8719be31..9a4f64da 100644 --- a/js/app/components/settings/settings.tsx +++ b/js/app/components/settings/settings.tsx @@ -1,5 +1,5 @@ -import { setURL } from "features/aquareum/aquareumSlice"; -import useAquareumNode from "hooks/useAquareumNode"; +import { setURL } from "features/streamplace/streamplaceSlice"; +import useStreamplaceNode from "hooks/useStreamplaceNode"; import { useState } from "react"; import { useAppDispatch } from "store/hooks"; import { Button, Form, H3, Input, View, XStack } from "tamagui"; @@ -7,7 +7,7 @@ import { Updates } from "./updates"; export function Settings() { const dispatch = useAppDispatch(); - const { url } = useAquareumNode(); + const { url } = useStreamplaceNode(); const [newUrl, setNewUrl] = useState(""); const onSubmit = () => { dispatch(setURL(newUrl)); @@ -24,7 +24,7 @@ export function Settings() { padding="$4" onSubmit={onSubmit} > -

Change Aquareum Node URL

+

Change Streamplace Node URL

-

Aquareum v{version}

+

Streamplace v{version}

{runTypeMessage}
@@ -62,7 +62,8 @@ export function Updates() { if (!res.isAvailable) { toast.show("No update found", { viewportName: "modal", - message: "You are on the latest version of Aquareum, hooray!", + message: + "You are on the latest version of Streamplace, hooray!", }); } } catch (e) { diff --git a/js/app/components/settings/updates.tsx b/js/app/components/settings/updates.tsx index c93c69aa..2655be4f 100644 --- a/js/app/components/settings/updates.tsx +++ b/js/app/components/settings/updates.tsx @@ -12,7 +12,7 @@ export function Updates() { flexBasis={0} > -

Aquareum v{pkg.version}

+

Streamplace v{pkg.version}

); diff --git a/js/app/components/stream-list/stream-list.tsx b/js/app/components/stream-list/stream-list.tsx index 7a76244c..89e6781b 100644 --- a/js/app/components/stream-list/stream-list.tsx +++ b/js/app/components/stream-list/stream-list.tsx @@ -1,7 +1,7 @@ import AQLink from "components/aqlink"; import ErrorBox from "components/error/error"; import Loading from "components/loading/loading"; -import useAquareumNode from "hooks/useAquareumNode"; +import useStreamplaceNode from "hooks/useStreamplaceNode"; import { useEffect, useState } from "react"; import { RefreshControl } from "react-native"; import { H6, Image, ScrollView, ScrollViewProps, Text, View } from "tamagui"; @@ -19,7 +19,7 @@ type Repo = { handle: string; pds: string; version: string; - aquareumKey: string; + streamplaceKey: string; rootCid: string; }; @@ -35,7 +35,7 @@ export default function StreamList({ const [error, setError] = useState(false); const [loading, setLoading] = useState(false); const [retryTime, setRetryTime] = useState(Date.now()); - const { url } = useAquareumNode(); + const { url } = useStreamplaceNode(); useEffect(() => { const interval = setInterval(() => { setRetryTime(Date.now()); diff --git a/js/app/constants/env.ts b/js/app/constants/env.ts index c6dc2458..92c1b7dd 100644 --- a/js/app/constants/env.ts +++ b/js/app/constants/env.ts @@ -1 +1,2 @@ -export const EXPO_PUBLIC_AQUAREUM_URL = process.env.EXPO_PUBLIC_AQUAREUM_URL; +export const EXPO_PUBLIC_STREAMPLACE_URL = + process.env.EXPO_PUBLIC_STREAMPLACE_URL; diff --git a/js/app/features/bluesky/blueskyProvider.tsx b/js/app/features/bluesky/blueskyProvider.tsx index d461b50e..0cf4d291 100644 --- a/js/app/features/bluesky/blueskyProvider.tsx +++ b/js/app/features/bluesky/blueskyProvider.tsx @@ -1,5 +1,5 @@ import { useURL } from "expo-linking"; -import { putIdentity } from "features/aquareum/aquareumSlice"; +import { putIdentity } from "features/streamplace/streamplaceSlice"; import useWallet from "hooks/useWallet"; import { useEffect, useState } from "react"; import { useAppDispatch, useAppSelector } from "store/hooks"; diff --git a/js/app/features/bluesky/blueskySlice.tsx b/js/app/features/bluesky/blueskySlice.tsx index 4a2e9085..043e7afa 100644 --- a/js/app/features/bluesky/blueskySlice.tsx +++ b/js/app/features/bluesky/blueskySlice.tsx @@ -1,11 +1,11 @@ import { Agent } from "@atproto/api"; import { ProfileViewDetailed } from "@atproto/api/dist/client/types/app/bsky/actor/defs"; import { OAuthSession } from "@atproto/oauth-client"; -import { AquareumState } from "features/aquareum/aquareumSlice"; +import { StreamplaceState } from "features/streamplace/streamplaceSlice"; import { openLoginLink } from "features/platform/platformSlice"; import Storage from "storage"; import { createAppSlice } from "../../hooks/createSlice"; -import createOAuthClient, { AquareumOAuthClient } from "./oauthClient"; +import createOAuthClient, { StreamplaceOAuthClient } from "./oauthClient"; import { Secp256k1Keypair, bytesToMultibase } from "@atproto/crypto"; import { privateKeyToAccount } from "viem/accounts"; import { StreamKey } from "features/base/baseSlice"; @@ -17,7 +17,7 @@ export interface BlueskyState { oauthSession: null | OAuthSession; pdsAgent: null | Agent; profiles: { [key: string]: ProfileViewDetailed }; - client: null | AquareumOAuthClient; + client: null | StreamplaceOAuthClient; login: { loading: boolean; error: null | string; @@ -65,8 +65,8 @@ export const blueskySlice = createAppSlice({ reducers: (create) => ({ loadOAuthClient: create.asyncThunk( async (_, { getState }) => { - const { aquareum } = getState() as { aquareum: AquareumState }; - const client = await createOAuthClient(aquareum.url); + const { streamplace } = getState() as { streamplace: StreamplaceState }; + const client = await createOAuthClient(streamplace.url); let initResult = await client.init(); return { client, initResult }; }, @@ -312,7 +312,7 @@ export const blueskySlice = createAppSlice({ ]; const record = { text: content, - "tv.aquareum.key": signingKey, + "place.stream.key": signingKey, facets, }; return await bluesky.pdsAgent.post(record); diff --git a/js/app/features/bluesky/oauthClient.tsx b/js/app/features/bluesky/oauthClient.tsx index b6991469..6638fcaf 100644 --- a/js/app/features/bluesky/oauthClient.tsx +++ b/js/app/features/bluesky/oauthClient.tsx @@ -6,24 +6,24 @@ import { import Constants from "expo-constants"; import { Platform } from "react-native"; -export type AquareumOAuthClient = Omit< +export type StreamplaceOAuthClient = Omit< ReactNativeOAuthClient, "keyset" | "serverFactory" | "jwks" >; export default async function createOAuthClient( - aquareumUrl: string, -): Promise { - if (!aquareumUrl) { - throw new Error("aquareumUrl is required"); + streamplaceUrl: string, +): Promise { + if (!streamplaceUrl) { + throw new Error("streamplaceUrl is required"); } let meta: ClientMetadata; if ( - aquareumUrl.startsWith("http://localhost") || - aquareumUrl.startsWith("http://127.0.0.1") + streamplaceUrl.startsWith("http://localhost") || + streamplaceUrl.startsWith("http://127.0.0.1") ) { const isWeb = Platform.OS === "web"; - const u = new URL(aquareumUrl); + const u = new URL(streamplaceUrl); let hostname = u.hostname; if (hostname == "localhost") { hostname = "127.0.0.1"; @@ -58,7 +58,9 @@ export default async function createOAuthClient( dpop_bound_access_tokens: true, }; } else { - const res = await fetch(`${aquareumUrl}/api/atproto-oauth/${Platform.OS}`); + const res = await fetch( + `${streamplaceUrl}/api/atproto-oauth/${Platform.OS}`, + ); meta = await res.json(); } clientMetadataSchema.parse(meta); diff --git a/js/app/features/aquareum/aquareumProvider.tsx b/js/app/features/streamplace/streamplaceProvider.tsx similarity index 50% rename from js/app/features/aquareum/aquareumProvider.tsx rename to js/app/features/streamplace/streamplaceProvider.tsx index 9d4f74de..75213a0f 100644 --- a/js/app/features/aquareum/aquareumProvider.tsx +++ b/js/app/features/streamplace/streamplaceProvider.tsx @@ -1,36 +1,36 @@ import { createContext, useEffect } from "react"; -import { DEFAULT_URL, initialize, selectAquareum } from "./aquareumSlice"; +import { DEFAULT_URL, initialize, selectStreamplace } from "./streamplaceSlice"; import { useAppDispatch, useAppSelector } from "store/hooks"; import Loading from "components/loading/loading"; import { View, Text } from "tamagui"; -export const AquareumContext = createContext({ +export const StreamplaceContext = createContext({ url: DEFAULT_URL, }); -export default function AquareumProvider({ +export default function StreamplaceProvider({ children, }: { children: React.ReactNode; }): React.ReactElement { - const aquareum = useAppSelector(selectAquareum); + const streamplace = useAppSelector(selectStreamplace); const dispatch = useAppDispatch(); useEffect(() => { - if (!aquareum.initialized) { + if (!streamplace.initialized) { dispatch(initialize()); } - }, [aquareum.initialized]); - if (!aquareum.initialized) { + }, [streamplace.initialized]); + if (!streamplace.initialized) { return ( - AquareumProvider loading... + StreamplaceProvider loading... ); } return ( - + {children} - + ); } diff --git a/js/app/features/aquareum/aquareumSlice.tsx b/js/app/features/streamplace/streamplaceSlice.tsx similarity index 79% rename from js/app/features/aquareum/aquareumSlice.tsx rename to js/app/features/streamplace/streamplaceSlice.tsx index 68dfa689..1f6dfa43 100644 --- a/js/app/features/aquareum/aquareumSlice.tsx +++ b/js/app/features/streamplace/streamplaceSlice.tsx @@ -4,7 +4,7 @@ import { SignTypedDataFn } from "hooks/useWallet.shared"; import schema from "generated/eip712-schema.json"; import Storage from "../../storage"; -let DEFAULT_URL = process.env.EXPO_PUBLIC_AQUAREUM_URL as string; +let DEFAULT_URL = process.env.EXPO_PUBLIC_STREAMPLACE_URL as string; if (isWeb && process.env.EXPO_PUBLIC_WEB_TRY_LOCAL === "true") { try { DEFAULT_URL = `${window.location.protocol}//${window.location.host}`; @@ -20,25 +20,25 @@ export interface Identity { did?: string; } -export interface AquareumState { +export interface StreamplaceState { url: string; identity: Identity | null; initialized: boolean; } -const initialState: AquareumState = { +const initialState: StreamplaceState = { url: DEFAULT_URL, identity: null, initialized: false, }; -export const aquareumSlice = createAppSlice({ - name: "aquareum", +export const streamplaceSlice = createAppSlice({ + name: "streamplace", initialState, reducers: (create) => ({ initialize: create.asyncThunk( async (_, { getState }) => { - let url = await Storage.getItem("aquareumUrl"); + let url = await Storage.getItem("streamplaceUrl"); if (!url) { url = DEFAULT_URL; } @@ -63,7 +63,7 @@ export const aquareumSlice = createAppSlice({ ), setURL: create.reducer((state, action: { payload: string }) => { - Storage.setItem("aquareumUrl", action.payload).catch((err) => { + Storage.setItem("streamplaceUrl", action.payload).catch((err) => { console.error("setURL error", err); }); return { @@ -74,10 +74,10 @@ export const aquareumSlice = createAppSlice({ getIdentity: create.asyncThunk( async (_, { getState }) => { - const { aquareum } = getState() as { - aquareum: AquareumState; + const { streamplace } = getState() as { + streamplace: StreamplaceState; }; - const res = await fetch(`${aquareum.url}/api/identity`); + const res = await fetch(`${streamplace.url}/api/identity`); return await res.json(); }, { @@ -112,16 +112,16 @@ export const aquareumSlice = createAppSlice({ }, { getState, dispatch }, ) => { - let { aquareum } = getState() as { - aquareum: AquareumState; + let { streamplace } = getState() as { + streamplace: StreamplaceState; }; - if (!aquareum.identity) { + if (!streamplace.identity) { await dispatch(getIdentity()); } - ({ aquareum } = getState() as { - aquareum: AquareumState; + ({ streamplace } = getState() as { + streamplace: StreamplaceState; }); - if (!aquareum.identity) { + if (!streamplace.identity) { throw new Error("No identity"); } const message = { @@ -137,7 +137,7 @@ export const aquareumSlice = createAppSlice({ }; const signature = await signTypedData(toSign); const res = await fetch( - `${aquareum.url}/api/identity/${aquareum.identity.id}`, + `${streamplace.url}/api/identity/${streamplace.identity.id}`, { method: "PUT", body: JSON.stringify({ @@ -169,11 +169,11 @@ export const aquareumSlice = createAppSlice({ }), selectors: { - selectAquareum: (aquareum) => aquareum, + selectStreamplace: (streamplace) => streamplace, }, }); // Action creators are generated for each case reducer function. export const { getIdentity, putIdentity, setURL, initialize } = - aquareumSlice.actions; -export const { selectAquareum } = aquareumSlice.selectors; + streamplaceSlice.actions; +export const { selectStreamplace } = streamplaceSlice.selectors; diff --git a/js/app/hooks/platform/platform.mobile.tsx b/js/app/hooks/platform/platform.mobile.tsx index 80fa68b6..1d8d3711 100644 --- a/js/app/hooks/platform/platform.mobile.tsx +++ b/js/app/hooks/platform/platform.mobile.tsx @@ -38,14 +38,14 @@ export async function initPushNotifications() { } (async () => { - if (typeof process.env.EXPO_PUBLIC_AQUAREUM_URL !== "string") { - console.log("process.env.EXPO_PUBLIC_AQUAREUM_URL undefined!"); + if (typeof process.env.EXPO_PUBLIC_STREAMPLACE_URL !== "string") { + console.log("process.env.EXPO_PUBLIC_STREAMPLACE_URL undefined!"); return; } try { const token = await x.getToken(); const res = await fetch( - `${process.env.EXPO_PUBLIC_AQUAREUM_URL}/api/notification`, + `${process.env.EXPO_PUBLIC_STREAMPLACE_URL}/api/notification`, { method: "POST", headers: { diff --git a/js/app/hooks/useAquareumNode.tsx b/js/app/hooks/useAquareumNode.tsx deleted file mode 100644 index ec480bec..00000000 --- a/js/app/hooks/useAquareumNode.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { AquareumContext } from "features/aquareum/aquareumProvider"; -import { useContext } from "react"; - -export default function useAquareumNode() { - return useContext(AquareumContext); -} diff --git a/js/app/hooks/useStreamplaceNode.tsx b/js/app/hooks/useStreamplaceNode.tsx new file mode 100644 index 00000000..b47451ec --- /dev/null +++ b/js/app/hooks/useStreamplaceNode.tsx @@ -0,0 +1,6 @@ +import { StreamplaceContext } from "features/streamplace/streamplaceProvider"; +import { useContext } from "react"; + +export default function useStreamplaceNode() { + return useContext(StreamplaceContext); +} diff --git a/js/app/hooks/useWallet.tsx b/js/app/hooks/useWallet.tsx index dc24658d..8e1474a6 100644 --- a/js/app/hooks/useWallet.tsx +++ b/js/app/hooks/useWallet.tsx @@ -44,8 +44,8 @@ type ElectronWindow = Window & const queryClient = new QueryClient(); const defaultConfig = getDefaultConfig({ - appName: "Aquareum", - appUrl: "https://aquareum.tv", + appName: "Streamplace", + appUrl: "https://stream.place", projectId: "32c8489fbff0b10e2e011b36c36b4466", chains: [mainnet, polygon, optimism, arbitrum, base], ssr: true, // If your dApp uses server side rendering (SSR) diff --git a/js/app/package.json b/js/app/package.json index 06c6387d..fa29f784 100644 --- a/js/app/package.json +++ b/js/app/package.json @@ -1,5 +1,5 @@ { - "name": "aquareum", + "name": "streamplace", "main": "./src/entrypoint.tsx", "version": "0.2.4", "runtimeVersion": "0.2.3", @@ -19,7 +19,7 @@ "postinstall": "which pod && yarn run postinstall-ios || echo 'not a mac, not installing pods'", "postinstall-ios": "cd ios && pod install && yarn run find-node", "find-node": "node -p '`NODE_BINARY=${process.argv[0]}`' > ios/.xcode.env.local", - "code-signing-dev": "mkdir -p code-signing-dev/keys code-signing-dev/certs && expo-updates codesigning:generate --key-output-directory code-signing-dev/keys --certificate-output-directory code-signing-dev/certs --certificate-validity-duration-years 10 --certificate-common-name 'Aquareum'" + "code-signing-dev": "mkdir -p code-signing-dev/keys code-signing-dev/certs && expo-updates codesigning:generate --key-output-directory code-signing-dev/keys --certificate-output-directory code-signing-dev/certs --certificate-validity-duration-years 10 --certificate-common-name 'Streamplace'" }, "jest": { "preset": "jest-expo" diff --git a/js/app/public/index.html b/js/app/public/index.html index 0343cc21..3b57cc1d 100644 --- a/js/app/public/index.html +++ b/js/app/public/index.html @@ -7,7 +7,7 @@ name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> - Aquareum + Streamplace