Skip to content

Commit

Permalink
Release 2.1.0 (#1371)
Browse files Browse the repository at this point in the history
* New git branches setup (#1296)

* add dev branch to auto merge

* make clippy run on new branch setup

* remove version checker workflow

* add dev and release branch triggers to consistent workflow name checker

* Delete create_diagram.yml

* add dev and release branch triggers to lint workflow

* add release and dev branch triggers to provider_image workflow

* remove release drafter

* add dev and release branches to rustfmt workflow

* add dev and release branches to protocol test workflow

* add dev and release branches triggers to tests workflow

* add dev and release branch triggers to webpack bundling workflow

* switch cache creation to be post pr to dev

* rename post_pr workflow to cache

* Update cache.yml

* publish workflow

* Update cache.yml

* fix contract js/rust version check workflow

* install concurrently and cypress as workspace deps

* fix cypress workflow trigger

* fix cypress workflow branch triggers

* fix rust file triggers

* move webpack bundling check to tests workflow

* remove typechain version check

* rename workflows

* make the github actions cache include the branch name

* publish on push to main

* add js bundle test step

* workflow for ensuring all versions move in lockstep

* blurb for each workflow

* dockerhub login check for before a release

* rename publish to release

* remove typedoc step

* standardise step ids in release workflow

* dummy version bump

* Delete dockerhub_login.yml

* release version check

* workflow to check for valid version bumps

* auto merge all prs

* check consistent workflow names on all prs

* branch system docs

* check contract version on prs to main,dev,release/*

* add workflow_dispatch to all relevant workflows

* make auto merge only run on non-draft prs

* check versions on all branches

* make release run on push to main

* tag pushes to main

* rename version check workflow

* remove fetch all history and branches from clone

* fix docker js server version issue

* fix bump workflow to bump all package.json files and Cargo.tomls

* fix package.json version writing in bump workflow

* rename step

* make auto merge cancellable

* make deploy ahve a single notification of pass/fail

* debug info

* fix cache workflow name

* don't use cache in bump version workflow, not needed

* move buildx to top of workflow

* move the cli building to before publishing images in deploy workflow

* tag warning

* remove filters for tests, test more often

* add workflow dispatch to deploy workflow

* add bash error catching

* Create consistent_engine_node.yml

* Create consistent_engine_npm.yml

* Create consistent_nvmrc.yml

* cache docs

* event workflows for main and dev

* change event setup

* don't run unless non-draft pr

* combine protocol clippy and rustfmt into single lint workflow

* missing engine

* missing version

* revert version debug

* fix version

* fix workflow name detection

* add missing engines

* fix nvmrc check

* fix path typo in contract version check

* allow auto merge to run always

* Update package-lock.json

* lint

* lint

* Cache cypress install (#1305)

* remove install cypress step from cache workflow

* add cypress as dev dep

* Add staging branch to workflow (#1311)

* New linting (#1309)

* lint dockerfiles

* lint caddyfiles

* lint github actions workflows

* lint shell scripts

* yaml lint

* lint python

* yamllint config

* lint js

* lint html

* lint markdown

* htmlhint ignore files

* simplify caddy lint

* replace eslint + prettier with biome, add run-s and run-p

* lint rust

* lint toml

* configure biome target files

* lint svg

* jsx and tsx lint

* adjust lint command in npm scripts

* fix license

* change lint changed script name

* adjust lint workflow

* Update package-lock.json

* fix npm script error handling (#1306)

* fix auto merge (#1302)

* fix auto merge

* add repo parameter to auto merge

* add repo parameter to auto merge workflow

* Remove contract calls (#1308)

* remove contract calls from procaptcha

* linted stuff

* Adding empty providers

* Adding hardcoded random providers

* Adding changes to load process

* Debugging

* debug

* nearly working state management

* fast captchas with no contract

* Removing debug

* Timestamp signature validation

* Working no rpc calls full captcha flow

* linting

* Unit tests potentially working

* dropping debug

* All passing cypress demo

* Bundle falling over when hashing

* dropping bundle pure replace

* Remove polkadot manual bundling hacks

* No provider pow

* Working pow without contract calls

* revert sitekey changes

* verified instead of context

* don't log config

* removing cypress capture images

* removing bad deps

* Removing debug

* fixing build

* fixing providers

* Correct docstring

* rebuilt package lock

* Removing stats file

* Skipping lint in protocol

* removing typechain change because protocol bump required

* removing unused deps

* temp bump while firefighting

* Dropping provider gui

* Working build without provider gui

* Removing batch commit tasks

* Dropping protocol

* Working build without protocol dir

* Dropping proxy and package lock pointing to proxy

* Working build with new pkg deps

* Removing common contract

* Dropping tests for rewrite

* Working no captcha product

* Dropping merkle tree

* Refactoring provider and adding temp tests

* Refactored provider into multiple single responsibility classes

* lint fix

* pkg lock bump

* Renaming tests to non test file to pass

* Tests passing

* Debug for datasetId getter

* Working provider set dataset

* Auth Middleware Test

* Captcha scheduler tests

* Error Handler tests

* Provider now boots without connection to rpc node

* Full suite of unit tests for provider

* Tests passing

* Fixed build

* Integration tests. Actions for this to be set up

* Working image captcha integration tests

* Unit tests paths correction

* Fixing version bump yml

* Removing debug

* Adding dummy get random provider script

* Removing dockerfile and vite env config

* Replacing signedTimestamp with timestampSignature

* Deduping config by making it its own package

* Defaulting message to provider online

* Fixing type issues and ws requirement issues

---------

Co-authored-by: Chris Taylor <forgetso86@gmail.com>
Co-authored-by: George Oastler <goastler@users.noreply.github.com>

* Removing unused deps, bumping package lock

* Working pow captcha with timeouts

* Add missing deps and bundling command for staging

* Remove version from docker compose files

* Use NODE_ENV var for pulling in env var file into docker compose file

* Add staging deploy process

* Add staging bundle command

* package lock

* Remove old deps.

* Update package-lock.json

* Update event name

* Add missing dep

* Use latest image to create container from

* Use staging tag for container

* Await crypto WASM blob

* Allow NODE_ENV to be passed into Vite config

* Add load-balancer refs to tsconfigs

* Allow PROSOPO_DEFAULT_ENVIRONMENT to inherit from NODE_ENV

* Add some logging and change some imports

* exporting hardcoded provider from types

* Cleanup linting process (#1312)

* lint dockerfiles

* lint caddyfiles

* lint github actions workflows

* lint shell scripts

* yaml lint

* lint python

* yamllint config

* lint js

* lint html

* lint markdown

* htmlhint ignore files

* simplify caddy lint

* replace eslint + prettier with biome, add run-s and run-p

* lint rust

* lint toml

* configure biome target files

* lint svg

* jsx and tsx lint

* adjust lint command in npm scripts

* fix license

* change lint changed script name

* adjust lint workflow

* Update package-lock.json

* remove old lint scripts

* remove prettier + eslint config

* remove eslint dep

* remove prettier dep

* Update package-lock.json

* Fix provider not erroring on database connection error. Add option to specify the number of proxies between the provider API and the user

* Add staging command back in

* deploy staging workflow to bundle branch

* addit commit details for bumps

* Add watchtower to provider docker compose

* Don't mount missing file

* watch provider container only

* Change container name

* Use createConnection instead of connection

* Fix build

* Staging deploy workflow (#1314)

* rename version step

* detect prod/staging in deploy

* remove contract building in deploy

* build js bundles based on env

* use docker tag based on env

* use prod env

* gh release on prod only

* npm release on prod only

* use docker latest and version specific tags

* use docker tags from env in img tags

* join version and env steps

* prod/dev -> production/development

* NODE_ENV variable setup in npm scripts

* missing NODE_ENV fixes

* fix tsc build / clean cmds

* NODE_ENV semis

* vite use NODE_ENV as --mode

* use NODE_ENV to control bundling of production/development/staging env

* use NODE_ENV to control build scripts

* remove needless NODE_ENV setting

* Delete deploy-staging.yml

* deploy on unsafe branch guard

* upload bundle to staging release as part of deploy workflow

* typo missing vite

* license

* remove contract linting

* remove docker compose linting from dockerfile lint cmd

* fix yamllint

* make caddy fmt output diff

* install htmlhint

* fix rustfmt lint script

* use cargofmt instead of rustfmt

* fix lint rs naming

* fix clippy linting

* fix toml linting

* simplify xargs serial command usage in rust linting

* lint rust check

* webpack bundle dev mode fix

* webpack plugin fix

* webpack fix

* improve npm scripts

* improve node_modules associated with npm scripts

* bundle npm script

* fix release asset target

* remove any current assets before uploading any further staging assets

* Pkg json

* bump version to v2.0.0

* no build specified

* remove deploy_X scripts

* remove deploy_X scripts

* remove deploy_protocol script call

* remove deploy_protocol workflow step

* remove github assets for contract

* remove deploy_protool

* Use 2.0.0 everywhere

* Provider tests passing

* Adding if present to cjs

* Dropping auto merge

* Dropping dapp example demo

* fix check version bump all history available

* Update check_version_bump.yml

* Update check_version_bump.yml

* Remove out of date readme

* Update check_version_bump.yml

* Re-add old babel plugins

* start provider

* Always add the token to the form

* Supply token to onHuman function

* Fix build

* Adding button next for cypress tests

* Fixing hanging test

* Fixing get dataset being broken

* Remove substrate from docker compose

* Cypress tests passing

* stop the provider workflow from falling over if the npm packages are unreleased

* Only load the provider mock container if we built it

* Try to upload screenshots

* Try to store screenshots on failure

* Try using withinSubject:null

* Wait for button to be visible

* Wait for the the API call

* Remove wait for solution request

* try to force the click

* Just force, don't expect the element

* try waiting after clicking

* Store videos of cypress runs

* Remove the then

* Remove duplicate click

* Fix function return type

* try within

* Adding setup step for setup env in test

* Add data-cy attributes if environment is not production

* wait for docker containers to setup env

* Adding setup step for setup env in test

* Start docker first

* Check if there are references

* remove within

* Try to kill processes with concurrently

* Size fixes for widget and logo

* Make signature stuff less confusing

* Fix license header positions

* Fix tests

* Get it all working

* Fix size

* Fix lint issues (#1318)

* rename version step

* detect prod/staging in deploy

* remove contract building in deploy

* build js bundles based on env

* use docker tag based on env

* use prod env

* gh release on prod only

* npm release on prod only

* use docker latest and version specific tags

* use docker tags from env in img tags

* join version and env steps

* prod/dev -> production/development

* NODE_ENV variable setup in npm scripts

* missing NODE_ENV fixes

* fix tsc build / clean cmds

* NODE_ENV semis

* vite use NODE_ENV as --mode

* use NODE_ENV to control bundling of production/development/staging env

* use NODE_ENV to control build scripts

* remove needless NODE_ENV setting

* Delete deploy-staging.yml

* deploy on unsafe branch guard

* upload bundle to staging release as part of deploy workflow

* typo missing vite

* license

* remove contract linting

* remove docker compose linting from dockerfile lint cmd

* fix yamllint

* make caddy fmt output diff

* install htmlhint

* fix rustfmt lint script

* use cargofmt instead of rustfmt

* fix lint rs naming

* fix clippy linting

* fix toml linting

* simplify xargs serial command usage in rust linting

* lint rust check

* webpack bundle dev mode fix

* webpack plugin fix

* webpack fix

* improve npm scripts

* improve node_modules associated with npm scripts

* bundle npm script

* fix release asset target

* remove any current assets before uploading any further staging assets

* add nuke script

* set shell in dockerfile

* use json form of CMD in dockerfile

* fix multiple RUN commands in dockerfile

* remove apt sources after install

* use apt get

* use apt-get in dockerfile instead of apt

* join multiple run commands together in dockerfile

* entrypoint json form

* no install recommends

* ignore install recommends lint

* fix multiple run commands and apt clear

* CMD to json form

* no install recommends

* remove root user, is default

* set nginx version

* multiple RUN commands fix

* set shell to use pipefail

* delete apt lists after install

* fix consecutive RUN commands

* no install recommends

* ignore usage of latest

* dockerfile lint

* Update substrate-contracts-node.build.dockerfile

* json form for CMD

* lint dockerfile

* lint caddyfile

* fix needless cat

* useless echo

* speech marks for safety

* make dockerfile and shell linting command simpler

* fix quotes and variable usage in cache workflow

* fix quotes

* fix quotes

* fix quotes

* fix quotes

* fix NODE_ENV speech marks in workflows

* useless cat

* unused vars

* lint

* missing speech marks

* speech marks

* lint eval and @ usage in shell

* lint shell script

* fix yamllint linting

* fix lint md and js fix cmd

* autofix js

* fix biome cmdline args

* biome lint fixes

* biome lint fix

* make biome use vcs

* no export from tests

* fix key in list

* missing useEffect dep

* explicit any todo

* lint fixes

* warn on parameter assign

* todo for any

* trailing comma

* ignore any type for options

* fix line count parameter reassigned

* fix not null assertion

* ignore any from axios response

* ignore any casts

* ignore any in async ctor

* no reuse of parameter

* ignore i18n translation any

* ignore anys in nodejs polars plugin

* ignore any for response json

* avoid parameter reuse

* fix any usage in vite watch plugin

* fix side effect in vite watch plugin

* fix reused variables in error classes

* disable rule for key event with onClick

* forEach to for of

* missing bracket

* allow any

* forEach to for of

* allow any

* forEach to for of

* allow any

* allow any

* forEach to for of

* use item hash as key

* fix useEffect deps

* todo for async exec

* allow any + async exec

* allow any

* forEach to for of

* ignore spread

* TODOs for sendFunds

* allow any

* ignore async exec

* allow any

* todo for memo deps

* ignore detector code, contains loads of biome errors

* fix anys, foreach and local params

* ignore foreach

* fix any

* allow any

* allow any

* allow any and foreach

* allow any

* allow any

* allow any

* allow enum

* allow any

* allow any

* allow any

* allow any

* allow any

* allow any

* allow any

* allow any

* allow any

* allow any

* allow any

* allow any

* allow any

* foreach to for of

* allow any

* allow any

* allow any and foreach to for of

* img buffer type

* allow any

* allow any

* allow any

* foreach to for of

* allow any

* make biome do formatting too

* biome format

* ignore bundles

* lint

* lint md files

* lint md

* disable some markdown rules

* lint rs

* fix rs

* fix npm scripts

* lint

* ignore ruff.toml when linting tomls

* lint

* lint py npm scripts

* remove eslint directives

* make biome track the main branch and handle css

* fix caddy linting

* lint

* lint

* lint

* configure taplo

* Update ruff.toml

* fix scripts

* lint

* remove eslint

* lint

* fix speech mark issues

* typo

* fix lint fixes types

* more fixes for linting fixes

* fix for potentially undefined root node of merkle tree

* duplicate selector

* lint

* ignore bundle stats html file

* missing provider env for starting provider

* async factory fix

* remove debug

* lint

* revert detector index.js changes

* lint

* polyfill node: imports

* fix for node:url breaking bundle

* use package workspaces rather than cd'ing (#1321)

* Add push to js branch again to get live staging bundle

* Remove any existing procaptcha responses on human

* deploy staging on push to staging

* Use duplicate JS Server for now

* Silence GH warning about NoSQL injection in demo

* Silence GH warning about NoSQL injection in demo

* Set GH_TOKEN env

* Remove production step for JS Server

* Add back command to push to js-bundle branch. Remove quotes in asset deletion script

* Use correct docker tag

* Try moving to its own step

* don't fail if nothing to commit

* Update provider docker run CMD

* Always pull new version of tag for provider image

* Update provider CMD

* Alter the verify endpoint when in non-production environments in client-example demo

* Allow PoW captchas to be stored and counted

* Removing exportData from Manager

* Adding synamic config for load balancer

* Fix build

* fix server build

* fix server again

* fix provider build

* Removing dangerou

* Change scale-ts type to u64 to avoid losing data

* revert change to number for timestamp

* make sure procaptcha-response is deleted

* Fix scheduler database name and add env option for storage schedule

* Make the models available once the connection has been made

* Move headers

* Update js_server release step

* Try using secret directly

* Add some debug

* Modify debug

* Yet more debug

* I give up

* Working captcha results in mongo (#1322)

* Fixing db schema for pow captchas

* dropping new debug

* Use a var for mongo image

* more debug

* Removing lint fix from version bump

* User data mvp (#1327)

* Update captcha records for user portal data requirements

* pow types overhaul

* Harden tests against function parameter changes

* only run prosoponator on non-draft pr's (#1333)

* fix dir capitalisation (#1329)

* fix dir capitalisation

* fix path

* Introduce dotenv package for finding environment files (#1334)

* Introduce dotenv package for finding environment files

* Package-lock.json

* Update references to old loadEnv

* Update package references

* Add the config files

* Update loadEnv ref

* Update loadEnv refs in demos

* trigger tests

* Update dotenv reference

* Specify no tests

* Fix dataset IDs for staging providers

* Allow pow challenges to be submitted more than once for verification

* Fail if the challenge exists in the db

* Revert unlimited challenge checking

* Make demo re-render captcha component when form changes

* Allow navigating between the captcha types

* Fix license location

* remove debug

* Store something on each request. Update PoW types. Additional checks (#1336)

* removed network types

* remove substrate containers / env params

* remove CONTRACT env vars

* fix imports

* remove networks

* remove network from getPairAsync

* remove networks + contract

* remove default network from env

* remove default network

* remove network default + types from types pkg

* remove network types

* remove block number

* Update package-lock.json

* Update package-lock.json

* remove contract dep for demo

* Store something on each request. Update PoW types. Additional checks

* Additional checks

* Restrict captcha solution checking by dapp account

* fix build

* Fix cypress tests

* lots of updates to types

* Fix up tests. Add types for Get Image Captcha URL

* Remove some unuse types. Type an API URL

* Zod type translation keys. Use enum values when updating database. Add enum arrays to mongoose schemas. Use ApiParams everywhere

* Set the correct key and value for storedStatus

* Fix up unit tests

* Make sure we're setting updated timestamps everywhere. Don't send the same data to the captcha storage DB twice. Add details of cron jobs that have run to scheduled tasks collection

* Fix up tests

* remove file that does nothing

---------

Co-authored-by: George Oastler <goastler4@gmail.com>

* Bug fix for missing status in scheduled task record

* Fix captcha storage mechanism. Add tests (#1337)

* Fix captcha storage mechanism. Add tests

* Fix up tests. Move verifyRecency function to util

* Update test env template

* Fix build

* use correct branch name in bump version

* Fix captcha scheduling insert (#1341)

* Stop scheduler from trying to set ID on upsert

* package-lock.json

* change logging

* Add types to tests to filter by test type during testing (#1342)

* vite test type env parameter

* prepend test type to all test files

* always include tests with no type specified

* Fix last scheduled task getter (#1346)

Change the db method and add some unit tests around scheduled tasks

* Lint repo (#1349)

* JS in repo linted

* addince licences

* Removing unused linting

* run lint in ci container

* GHA fix

* js server shell script linting

* yaml lint fix

* pkg lock lint

---------

Co-authored-by: George Oastler <goastler4@gmail.com>

* Docker compose overhaul (#1350)

* fix NODE_ENV var in arm64 version of provider compose

* add restart policy to docker compose

* add watchtower to arm64

* add pull policy to arm64

* make watchtower cleanup old imgs

* watchtower remove anon vols

* watchtower log format

* only restart enabled containers

* ping slack when restarts happen

* only restart enabled containers

* ping slack when updates occur

* docs

* make env based db image

* combine arm64 and x86_64 provider compose files

* mongodb healthcheck

* healthcheck for caddy

* healthcheck for provider

* disable caddy fileserver

* metrics in caddyfile

* add env vars to caddyfile

* basicauth for /metrics

* add env vars for uname + pwd of basicauth

* docker compose profiles

* remove tty

* add env file to caddy

* provider-dev service

* make database-dev use env file

* remove watchtower env params

* add watchtower env file

* watchtower logging

* watchtower restart policy

* watchtower self restart

* add missing env params

* remove dev version of provider compose file

* usage doc for caddy

* move env vars

* sort env lines

* prepend caddy env parameters with CADDY_

* add provider image version env parameter

* add missing env params

* add missing template env vars

* drop rococo env

* move package version env var

* more old space size for testing

* remove name from watchtower

* configure watchtower via env

* remove watchtower healthcheck

* Delete Dockerfile

* Caddyfile defaults (#1352)

* add caddy provider name + port vars

* sane defaults for provider container name + port in caddyfile

* sane default for http port

* remove http port for prod

* sane default for https

* remove https var for prod

* missing https var

* caddy admin endpoint default

* remove admin endpoint var

* disable caddy metrics (not in use atm)

* disable metrics reverse proxy

* log to stdout as well

* fix provider endpoint vars

* fix defaults

* rimraf dep (#1331)

* rimraf dep

* Update package-lock.json

* security policy (#1343)

* Portal settings (#1351)

* wip for client settings retrieval. database overhaul

* types update

* Add basic domain validator

* big domain regex

* lint-fix

* Add test class

* install missing dep

* bump polyfill plugin

* package-lock.json

* limit domain length

* package locl

* lint fix

* drop logs

* Address PR comments

* TLS headers (#1353)

* Create tls.Caddyfile

* add headers to express / types / tests

* pass headers

* add headers to mongo

* lint

* move tls headers from debug caddyfile

* fix missing headers in types

* fix missing headers

* lint

* lint

* fix error of unknown type

* lint

* disable gh actions lint

* lint

* remove old demo/example pkgs (#1345)

* remove old demo/example pkgs

* pow in example

* remove legacy npm scripts

* Provider retry (#1348)

* pkg lock bump and manager logic for retry

* Dev cli with multiple providers and provider faliure fallover

* Biome fixes

* pkg json lint

* Provider retry in pow from common

* Non cached s3 provider getting

* working retryCount

* pgk lock bump

* removing linting junk

* Working build and cleaner dev cli

* Removing unused debug

* pkg lock bump for deps

* adding types glob

* Dropping load balancer hardcoded jsons

* Removing non env based dev provider start

* use node env for dev mode

* Properly logging final retry faliure

* pkg lock bump

* package lock is locked up 😂

* pkg lock lock lock

* Linting

* Lint

* marking lint actions as disabled

* Only 1 provider

* 🔒

* 🔒

* 🔒

* remove glob and lint

* 📦🔒

* pin vite to 5.4.2

* 📦🔒

* Glob stink

* globSync

* lint fix

* bump vitest and vite

* add vite and vitest to root pkg json

* remove vitest cov

* Update package-lock.json

* fix exclude for vite test config

* 📦🔒

* vitest/coverage-v8

* use fast-glob

* lint-fix

* remove lint:yaml command

* Lint-fix:js

---------

Co-authored-by: Chris Taylor <forgetso86@gmail.com>
Co-authored-by: George Oastler <goastler4@gmail.com>

* remove find-up (#1354)

* Stop npm from failing on extraneous packages

* Add package-lock-only flag

* drop depends

* Deps (#1356)

* drop unneeded workspace deps

* fix deps provider-mock

* fix deps cypress-shared

* fix deps client-example

* fix deps client-example-server

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* dep

* deps

* deps

* deps

* deps

* deps

* deps

* fix import

* fix import

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* dep

* npm-check

* pkg lock

* webpack cli

* Update package-lock.json

* lint

* webpack deps

* Update package-lock.json

* lint

* vitest coverage

* Update package-lock.json

* revert procaptcha-bundle + config pkg deps

* order

* Update package-lock.json

* add standard devdeps to all pkgs

* Update package-lock.json

* tsx

* Update package-lock.json

* lint

* Deploy bundle on push (#1362)

Deploying bundle to s3

* No hats (#1357)

* drop unneeded workspace deps

* fix deps provider-mock

* fix deps cypress-shared

* fix deps client-example

* fix deps client-example-server

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* dep

* deps

* deps

* deps

* deps

* deps

* deps

* fix import

* fix import

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* dep

* npm-check

* pkg lock

* remove hats

* purge hats

* Update package-lock.json

* bump pkg vers

* fix array access errors for new ts version

* bump i18n

* bump pkg vers

* fix array access for new ts ver

* fix dep vers

* Update package-lock.json

* lint

* remove hat

* add webpack and rollup plugins back in

* Update package-lock.json

* bump rollup and webpack plugin vers

* missing babel plugins

* bump babel deps

* Update package-lock.json

* move import

* add comments for biome ignores

* npmrc (#1361)

* Adding prosopo  to css selectors (#1363)

Adding prosopo- to all classnames

Co-authored-by: George Oastler <goastler@users.noreply.github.com>

* Deps (#1365)

* drop unneeded workspace deps

* fix deps provider-mock

* fix deps cypress-shared

* fix deps client-example

* fix deps client-example-server

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* dep

* deps

* deps

* deps

* deps

* deps

* deps

* fix import

* fix import

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* deps

* dep

* npm-check

* pkg lock

* remove hats

* purge hats

* Update package-lock.json

* bump pkg vers

* fix array access errors for new ts version

* bump i18n

* bump pkg vers

* fix array access for new ts ver

* fix dep vers

* Update package-lock.json

* lint

* remove hat

* add webpack and rollup plugins back in

* Update package-lock.json

* bump rollup and webpack plugin vers

* missing babel plugins

* bump babel deps

* Update package-lock.json

* move import

* add comments for biome ignores

* add devdeps

* more devdeps

* consolidate pkg vers

* drop hats

* drop hats

* drop npm check

* Update package-lock.json

* bump deps

* scripts

* remove emotion react

* ignore standard pkgs from depcheck

* typo

* Update package-lock.json

* lint

* npmrc fix (#1366)

Co-authored-by: Chris <forgetso86@gmail.com>

* bump vite to 5.4.6

* 📦🔒

* fix bump version workflow (#1368)

* Bump version to 2.1.0

* Bump to 2.0.1

* Lint-fix

* Bump env versions

* saving to js folder (#1373)

saving t o js folder

* Adding spanish and portuguese support (#1364)

* Working build for ES and PT language support

* Auto update lang in all captcha types

* Working i18n

* All translations

* Dropping empty file

* Linting and formatting

* Adding tests and refactoring bundle

* package lock bumps

* proper numbers ❇️

* 🔒

* lint fix

* Linting fixes

* more linting aa

* License formatting

* Add config for resolving .js extensions in ESM context in webpack build

* lint-fix

* Add check for build and build:cjs

* check that number of references in tsconfig.json equals the number in tsconfig.cjs.json

* Stop tsconfigs from having missing references

* Fix script for comparing package.jsons and tsconfig.json

* fix all missing packages

* 📦🔒

* lint-fix

* fix broken package version

* add missing ref

* Make sure file does not exist

* lint-fix

* Script to remove unused JSON keys

* Remove ununsed JSON keys

* lint-fix

* remove PROGUI section

---------

Co-authored-by: Chris Taylor <forgetso86@gmail.com>

* Package bumps

* recursive copy

* caddyfile defaults for variables

* Copy top level files only

* deploy fix (#1374)

* deploy fix

* remove demo changes

* dumbb lint

* english language

* Use inherited vite config from dev/config package (#1376)

* Use inherited vite config from dev/config package

* lint-fix

* Add watch workspace plugin back in

* i18n fixes (#1377)

* i18n fixes

* Removing unused lang, linting, etc

* lint

* Portugese Brazilian (#1379)

* Portugese Brazilian

* Add pt-BR to zod enum

---------

Co-authored-by: Hugh <hughglynparry@gmail.com>

* Commit so that i can pin

---------

Co-authored-by: George Oastler <goastler@users.noreply.github.com>
Co-authored-by: George Oastler <goastler4@gmail.com>
Co-authored-by: Chris <forgetso86@gmail.com>
Co-authored-by: Hugh <90424587+HughParry@users.noreply.github.com>
Co-authored-by: Hugh <hughglynparry@gmail.com>
  • Loading branch information
6 people authored Sep 19, 2024
1 parent 5f3ba17 commit c58e540
Show file tree
Hide file tree
Showing 255 changed files with 37,651 additions and 38,560 deletions.
78 changes: 54 additions & 24 deletions .github/workflows/bump_version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,27 @@ on:
type: string
description: Version number (e.g. 1.2.3)
required: true
src:
type: string
description: Source branch name (e.g. staging)
required: true
default: staging
interim:
type: string
description: Interim branch name (e.g. release/1.2.3). Leave empty to use 'release/<version_number>'.
required: false
dest:
type: string
description: Destination branch name (e.g. main)
required: true
default: main

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
GITHUB_TOKEN: ${{ secrets.PROSOPONATOR_PAT }}

jobs:
bump_version:
Expand Down Expand Up @@ -60,34 +77,47 @@ jobs:
- uses: actions/checkout@v3

- name: Bump version
env:
GITHUB_TOKEN: ${{ secrets.PROSOPONATOR_PAT }}
run: |
set -euxo pipefail # stop on errors, print commands, fail on pipe fails
# set the branch name
BRANCH_NAME="release/${{ github.event.inputs.version }}"
set -euxo pipefail # stop on errors, print commands, fail on pipe fails
# set the author in git
git config user.name "prosoponator[bot]"
git config user.email "dev@prosopo.io"
# checkout the src branch
git checkout ${{ github.event.inputs.src }}
INTERIM="${{ github.event.inputs.interim}}"
# set the interim branch name to release/<version_number> if not provided
INTERIM="${INTERIM:-release/${{ github.event.inputs.version }}}"
# make a new branch for the version changes
git switch -c $BRANCH_NAME
# make a new branch for the version changes
git switch -c $INTERIM
# find all package.json files, recursively
pkgJsons=$(find . -name package.json -prune -not -path '*/node_modules/*' -not -path '*/.next/*')
# replace the version in all package.json files
xargs -I % sh -c "cat % | jq '.version = \"${{ github.event.inputs.version }}\"' > %.new && mv %.new %" <<< "$pkgJsons"
pkgJsons=$(npm run --silent ws:pkg)
pkgNames=$(npm run --silent ws:ls)
for pkgJson in $pkgJsons; do
# for each package in the workspace, set the version number
cat $pkgJson | jq ".version = \"${{ github.event.inputs.version }}\"" > $pkgJson
for pkgName in $pkgNames; do
# for each package in the workspace, check whether it is in the dependencies of the current package
# if so, bump the version number in the dependencies
cat $pkgJson | jq "if .dependencies[\"$pkgName\"] then .dependencies[\"$pkgName\"] = \"^${{ github.event.inputs.version }}\" else . end" > $pkgJson
done
done
# set the author in git
git config user.name "prosoponator[bot]"
git config user.email "dev@prosopo.io"
# update pkg lock
npm i
# commit the version changes
git add .
git commit -m "Bump version to ${{ github.event.inputs.version }}"
# commit the version changes
git add .
git commit -m "Bump version to ${{ github.event.inputs.version }}"
# push version changes
git push --set-upstream origin $BRANCH_NAME
git fetch origin main
# push version changes
git push --set-upstream origin $INTERIM
# fetch the dest branch
git fetch origin ${{ github.event.inputs.dest }}
# create a PR for the release
gh pr create --base main --title "Release ${{ github.event.inputs.version }}" --fill
# create a PR for the release
gh pr create --base ${{ github.event.inputs.dest }} --title "Release ${{ github.event.inputs.version }}" --fill
31 changes: 14 additions & 17 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ jobs:
git checkout js-bundle
# Copy built bundle to js-bundle branch
cp packages/procaptcha-bundle/dist/bundle/* .
cp $(find packages/procaptcha-bundle/dist/bundle/* -maxdepth 0 -not -type d) .
# set the author in git
git config user.name "prosoponator[bot]"
Expand All @@ -164,24 +164,21 @@ jobs:
# Return to the original branch
git checkout ${{ github.ref }}
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-1

- name: Deploy staging js bundle
if: ${{ steps.env.outputs.staging }}
env:
GH_TOKEN: ${{ github.token }}
- name: Deploy bundle to AWS S3
if: ${{ steps.env.outputs.production || steps.env.outputs.staging }}
run: |
# stop on errors, print commands, fail on pipe fails
set -euo pipefail
# the tag for the release
TAG=${{ steps.env.outputs.env }}-release
# find the staging release, list the assets, then delete each asset. This stops any assets being carried over from one staging release to the next
gh release view $TAG --json assets | jq '.assets[].name' | tr -d '"' | xargs -P 1 --verbose -I {} gh release delete-asset $TAG {} -y
# upload the bundle to the staging release
gh release upload $TAG packages/procaptcha-bundle/dist/bundle/*
if [ "${{ steps.env.outputs.production }}" = "true" ]; then
aws s3 cp packages/procaptcha-bundle/dist/bundle/ s3://js.prosopo.io/js/ --recursive
elif [ "${{ steps.env.outputs.staging }}" = "true" ]; then
aws s3 cp packages/procaptcha-bundle/dist/bundle/ s3://staging-js.prosopo.io/js/ --recursive
fi
- name: Build docker js_server
run: |
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ jobs:
check:
name: check
runs-on: ubuntu-latest
container:
image: prosopo/ci:latest
options: >
--volume ${{ github.workspace }}:/repo
if: github.event.pull_request.draft == false
steps:
- name: Print contexts
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prosoponator_bot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on: issue_comment
jobs:
comment:
# This job only runs for pull request comments
if: ${{ github.event.issue.pull_request }} && github.event.pull_request.draft == false
if: ${{ github.event.issue.pull_request && github.event.pull_request.draft == false }}
runs-on: ubuntu-latest
steps:
- name: Print contexts
Expand Down
56 changes: 56 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,62 @@ jobs:
restore-keys: |
project-cache-${{ github.event.pull_request.head.ref || github.ref }}-${{ runner.os }}-${{ runner.arch }}-
# check that each package.json contains a `build` and `build:cjs` script.
- name: Check for build and build:cjs scripts
run: |
for file in $(find ./packages -name package.json -not -path "**/node_modules/*" -not -path "./packages/detector/*"); do
if ! grep -q '"build":' $file; then
echo "Missing 'build' script in $file"
exit 1
fi
if ! grep -q '"build:cjs":' $file; then
echo "Missing 'build:cjs' script in $file"
exit 1
fi
done
# check that the number of references in each tsconfig.json is equal to the number of references in the tsconfig.cjs.json for each package
- name: Check for matching references in tsconfig.json and tsconfig.cjs.json
run: |
rm -f mismatched_references.txt
for file in $(find ./packages -name tsconfig.json -not -path "**/node_modules/*" -not -path "./packages/detector/*"); do
if [ $(jq '.references | length' $file) -ne $(jq '.references | length' $(dirname $file)/tsconfig.cjs.json) ]; then
echo "Mismatched number of references in $file and $(dirname $file)/tsconfig.cjs.json" >> mismatched_references.txt
fi
done
if [ -f mismatched_references.txt ]; then
cat mismatched_references.txt
exit 1
fi
# check that each @prosopo package referenced in package.json is in the tsconfig.json for each package
- name: Check for matching references in package.json and tsconfig.json
run: |
rm -f missing_references.txt
for file in $(find ./packages -name package.json -not -path "**/node_modules/*" -not -path "./packages/detector/*"); do
for package in $(jq -r '.dependencies | keys[]' $file); do
# if the package is not a @prosopo package, skip it
if ! echo $package | grep -q "^@prosopo"; then
continue
fi
# if the package is @prosopo/config, skip it
if [[ "$package" == "@prosopo/config" ]]; then
continue
fi
# split the package by '/' and get the last element
searchterm=$(echo $package | awk -F/ '{print $NF}')
if ! grep -oI "\"..\/$searchterm\"" $(dirname $file)/tsconfig.json; then
# store the results
echo "Missing reference to $searchterm in $(dirname $file)/tsconfig.json" >> missing_references.txt
fi
done
done
if [ -f missing_references.txt ]; then
cat missing_references.txt
fi
- uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
Expand Down
6 changes: 6 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
save-prefix= # don't add ^ to deps by default when adding new deps
maxsockets=10 # 10 concurrent downloads
fetch-retries=100 # try 100 times to download a pkg
fetch-retry-mintimeout=1 # 1ms between retries minimum
fetch-retry-maxtimeout=10000 # 10s between retries maximum
fetch-retry-factor=2 # increase timeout by 2x each retry
46 changes: 25 additions & 21 deletions demos/client-bundle-example/package.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,27 @@
{
"name": "@prosopo/client-bundle-example",
"main": "index.js",
"engines": {
"node": ">=20",
"npm": ">=9"
},
"scripts": {
"test": "echo \"No test specified\"",
"build": "echo \"No build specified\"",
"start": "vite serve ./src --port 9232 --config vite.config.ts",
"clean": "echo 'nothing to clean'"
},
"dependencies": {
"dotenv": "^16.0.1",
"vite": "^5.1.7"
},
"version": "2.0.3",
"devDependencies": {
"tslib": "2.6.2",
"typescript": "5.1.6"
}
"name": "@prosopo/client-bundle-example",
"main": "index.js",
"engines": {
"node": ">=20",
"npm": ">=9"
},
"scripts": {
"test": "echo \"No test specified\"",
"build": "echo \"No build specified\"",
"start": "vite serve ./src --port 9232 --config vite.config.ts",
"clean": "echo 'nothing to clean'"
},
"version": "2.1.0",
"devDependencies": {
"@types/node": "22.5.5",
"@vitest/coverage-v8": "2.1.1",
"concurrently": "9.0.1",
"npm-run-all": "4.1.5",
"rimraf": "6.0.1",
"tslib": "2.7.0",
"tsx": "4.19.1",
"typescript": "5.6.2",
"vite": "5.4.6",
"vitest": "2.1.1"
}
}
109 changes: 59 additions & 50 deletions demos/client-example-server/package.json
Original file line number Diff line number Diff line change
@@ -1,52 +1,61 @@
{
"name": "@prosopo/client-example-server",
"version": "2.0.3",
"description": "Backend for client-example",
"main": "dist/app.js",
"type": "module",
"engines": {
"node": ">=20",
"npm": ">=9"
},
"scripts": {
"test": "echo \"No test specified\"",
"dev": "NODE_ENV=${NODE_ENV:-development}; vite serve --mode=$NODE_ENV --config ./vite.config.ts --host",
"start": "node ./dist/app.js",
"start:bundle": "node ./dist/bundle/prosopo_client_example_server.app.bundle.js",
"build": "tsc --build --verbose",
"bundle": "NODE_ENV=${NODE_ENV:-production}; vite build --mode=$NODE_ENV --config ./vite.config.ts",
"clean": "tsc --build --clean"
},
"repository": {
"type": "git",
"url": "git+https://github.com/prosopo/client-example-server.git"
},
"author": "PROSOPO LIMITED <info@prosopo.io>",
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/prosopo/client-example-server/issues"
},
"homepage": "https://github.com/prosopo/client-example-server#readme",
"dependencies": {
"@noble/hashes": "^1.3.1",
"@polkadot/util": "12.6.2",
"@polkadot/util-crypto": "12.6.2",
"@prosopo/api": "2.0.3",
"@prosopo/dotenv": "2.0.3",
"@prosopo/procaptcha": "2.0.3",
"@prosopo/server": "2.0.3",
"@prosopo/types": "2.0.3",
"@typegoose/auto-increment": "^4.5.0",
"cors": "^2.8.5",
"jsonwebtoken": "^9.0.0",
"mongoose": "^8.5.1",
"zod": "^3.22.3"
},
"devDependencies": {
"@prosopo/config": "2.0.3",
"@types/jsonwebtoken": "^9.0.2",
"tslib": "2.6.2",
"typescript": "5.1.6",
"vite": "^5.1.7"
}
"name": "@prosopo/client-example-server",
"version": "2.1.0",
"description": "Backend for client-example",
"main": "dist/app.js",
"type": "module",
"engines": {
"node": ">=20",
"npm": ">=9"
},
"scripts": {
"test": "echo \"No test specified\"",
"dev": "NODE_ENV=${NODE_ENV:-development}; vite serve --mode=$NODE_ENV --config ./vite.config.ts --host",
"start": "node ./dist/app.js",
"start:bundle": "node ./dist/bundle/prosopo_client_example_server.app.bundle.js",
"build": "tsc --build --verbose",
"bundle": "NODE_ENV=${NODE_ENV:-production}; vite build --mode=$NODE_ENV --config ./vite.config.ts",
"clean": "tsc --build --clean"
},
"repository": {
"type": "git",
"url": "git+https://github.com/prosopo/client-example-server.git"
},
"author": "PROSOPO LIMITED <info@prosopo.io>",
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/prosopo/client-example-server/issues"
},
"homepage": "https://github.com/prosopo/client-example-server#readme",
"dependencies": {
"@noble/hashes": "1.5.0",
"@polkadot/util": "12.6.2",
"@polkadot/util-crypto": "12.6.2",
"@prosopo/common": "2.1.0",
"@prosopo/contract": "2.1.0",
"@prosopo/dotenv": "2.1.0",
"@prosopo/server": "2.1.0",
"@prosopo/types": "2.1.0",
"@prosopo/util": "2.1.0",
"@typegoose/auto-increment": "4.6.0",
"cors": "2.8.5",
"express": "4.21.0",
"jsonwebtoken": "9.0.2",
"mongodb-memory-server": "10.0.0",
"mongoose": "8.6.2",
"zod": "3.23.8"
},
"devDependencies": {
"@prosopo/config": "2.1.0",
"@types/jsonwebtoken": "9.0.6",
"@vitest/coverage-v8": "2.1.1",
"concurrently": "9.0.1",
"npm-run-all": "4.1.5",
"rimraf": "6.0.1",
"tslib": "2.7.0",
"tsx": "4.19.1",
"typescript": "5.6.2",
"vite": "5.4.6",
"vitest": "2.1.1"
}
}
Loading

0 comments on commit c58e540

Please sign in to comment.