mirror of
https://github.com/standardnotes/server
synced 2026-02-25 14:01:46 -05:00
Compare commits
38 Commits
@standardn
...
@standardn
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
69a9c5555b | ||
|
|
cca6c7f65e | ||
|
|
7a8a5fcfdf | ||
|
|
845d310af9 | ||
|
|
d61e6f338e | ||
|
|
f2ddbc82d0 | ||
|
|
8708b10dfc | ||
|
|
165ee50dc8 | ||
|
|
6cc4ef90db | ||
|
|
ad8a07b003 | ||
|
|
923fe2a19b | ||
|
|
f3c6fff20f | ||
|
|
3b0e51b4cd | ||
|
|
bff7852e53 | ||
|
|
8e5012009b | ||
|
|
eb30692f6a | ||
|
|
143b215ddc | ||
|
|
2a1b9a6679 | ||
|
|
3ca49fee1a | ||
|
|
8c5c52770b | ||
|
|
48f6753090 | ||
|
|
e8d13627f8 | ||
|
|
e90caeac32 | ||
|
|
94e84a2539 | ||
|
|
263dc8a98d | ||
|
|
2106375695 | ||
|
|
5d41ac769b | ||
|
|
023f90456b | ||
|
|
16f6b902d9 | ||
|
|
c62ff8f5c9 | ||
|
|
1a8670cdaa | ||
|
|
c205ebb710 | ||
|
|
5e54617325 | ||
|
|
6e1e6fa291 | ||
|
|
79926bb77d | ||
|
|
a40bbf4872 | ||
|
|
8647a484f4 | ||
|
|
dcd32e7601 |
56
.eslintrc
Normal file
56
.eslintrc
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"root": true,
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"project": "./tsconfig.json"
|
||||
},
|
||||
"plugins": ["@typescript-eslint", "prettier"],
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/eslint-recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"prettier"
|
||||
],
|
||||
"rules": {
|
||||
"@typescript-eslint/no-unused-vars": [
|
||||
"error",
|
||||
{
|
||||
"vars": "all",
|
||||
"args": "after-used",
|
||||
"ignoreRestSiblings": false,
|
||||
"argsIgnorePattern": "^_",
|
||||
"varsIgnorePattern": "^_"
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/no-explicit-any": ["error", { "ignoreRestArgs": true }],
|
||||
"@typescript-eslint/no-floating-promises": ["error"],
|
||||
"block-scoped-var": "error",
|
||||
"comma-dangle": ["error", "always-multiline"],
|
||||
"curly": ["error", "all"],
|
||||
"no-confusing-arrow": "error",
|
||||
"no-inline-comments": "warn",
|
||||
"no-invalid-this": "error",
|
||||
"no-return-assign": "warn",
|
||||
"no-constructor-return": "error",
|
||||
"no-duplicate-imports": "error",
|
||||
"no-self-compare": "error",
|
||||
"no-console": ["error", { "allow": ["warn", "error"] }],
|
||||
"no-unmodified-loop-condition": "error",
|
||||
"no-unused-private-class-members": "error",
|
||||
"object-curly-spacing": ["error", "always"],
|
||||
"quotes": ["error", "single", { "avoidEscape": true }],
|
||||
"semi": ["error", "never"],
|
||||
"prettier/prettier": [
|
||||
"error",
|
||||
{
|
||||
"singleQuote": true,
|
||||
"trailingComma": "all",
|
||||
"printWidth": 120,
|
||||
"semi": false
|
||||
},
|
||||
{
|
||||
"usePrettierrc": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
177
.github/workflows/auth.release.dev.yml
vendored
Normal file
177
.github/workflows/auth.release.dev.yml
vendored
Normal file
@@ -0,0 +1,177 @@
|
||||
name: Auth Server Dev
|
||||
|
||||
concurrency:
|
||||
group: auth_dev_environment
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '@standardnotes/auth-server@[0-9]*.[0-9]*.[0-9]*-alpha.[0-9]*'
|
||||
- '@standardnotes/auth-server@[0-9]*.[0-9]*.[0-9]*-beta.[0-9]*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.x'
|
||||
- run: yarn lint:auth
|
||||
- run: yarn test:auth
|
||||
|
||||
publish-aws-ecr:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:auth
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@v1
|
||||
- name: Build, tag, and push image to Amazon ECR
|
||||
id: build-image
|
||||
env:
|
||||
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
|
||||
ECR_REPOSITORY: auth
|
||||
IMAGE_TAG: ${{ github.sha }}
|
||||
run: |
|
||||
yarn docker build @standardnotes/auth-server -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:dev
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:dev
|
||||
|
||||
publish-docker-hub:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:auth
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build, tag, and push image to Docker Hub
|
||||
run: |
|
||||
yarn docker build @standardnotes/auth-server -t standardnotes/auth:${{ github.sha }}
|
||||
docker push standardnotes/auth:${{ github.sha }}
|
||||
docker tag standardnotes/auth:${{ github.sha }} standardnotes/auth:dev
|
||||
docker push standardnotes/auth:dev
|
||||
|
||||
deploy-web:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition auth-dev --query taskDefinition > task-definition.json
|
||||
- name: Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="auth-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: auth-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/auth:${{ github.sha }}
|
||||
- name: Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def.outputs.task-definition }}
|
||||
service: auth-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
|
||||
deploy-worker:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition auth-worker-dev --query taskDefinition > task-definition.json
|
||||
- name: Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="auth-worker-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: auth-worker-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/auth:${{ github.sha }}
|
||||
- name: Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def.outputs.task-definition }}
|
||||
service: auth-worker-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
|
||||
newrelic:
|
||||
needs: [ deploy-web, deploy-worker ]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Create New Relic deployment marker for Web
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_AUTH_WEB_DEV }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
||||
- name: Create New Relic deployment marker for Worker
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_AUTH_WORKER_DEV }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
||||
|
||||
notify_discord:
|
||||
needs: [ deploy-web, deploy-worker ]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Run Discord Webhook
|
||||
uses: johnnyhuy/actions-discord-git-webhook@main
|
||||
with:
|
||||
webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
||||
|
||||
170
.github/workflows/files.release.dev.yml
vendored
Normal file
170
.github/workflows/files.release.dev.yml
vendored
Normal file
@@ -0,0 +1,170 @@
|
||||
name: Files Server Dev
|
||||
|
||||
concurrency:
|
||||
group: files_dev_environment
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '@standardnotes/files-server@[0-9]*.[0-9]*.[0-9]*-alpha.[0-9]*'
|
||||
- '@standardnotes/files-server@[0-9]*.[0-9]*.[0-9]*-beta.[0-9]*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.x'
|
||||
- run: yarn lint:files
|
||||
- run: yarn test:files
|
||||
|
||||
publish-aws-ecr:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: cp .env.sample .env
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@v1
|
||||
- name: Build, tag, and push image to Amazon ECR
|
||||
id: build-image
|
||||
env:
|
||||
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
|
||||
ECR_REPOSITORY: files
|
||||
IMAGE_TAG: ${{ github.sha }}
|
||||
run: |
|
||||
yarn docker build @standardnotes/files -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:dev
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:dev
|
||||
|
||||
publish-docker-hub:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: cp .env.sample .env
|
||||
- name: Publish to Registry
|
||||
uses: elgohr/Publish-Docker-Github-Action@master
|
||||
with:
|
||||
name: standardnotes/files
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
tags: "dev,${{ github.sha }}"
|
||||
|
||||
deploy-web:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition files-dev --query taskDefinition > task-definition.json
|
||||
- name: Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="files-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: files-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/files:${{ github.sha }}
|
||||
- name: Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def.outputs.task-definition }}
|
||||
service: files-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
|
||||
deploy-worker:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition files-worker-dev --query taskDefinition > task-definition.json
|
||||
- name: Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="files-worker-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: files-worker-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/files:${{ github.sha }}
|
||||
- name: Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def.outputs.task-definition }}
|
||||
service: files-worker-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
|
||||
newrelic:
|
||||
needs: [ deploy-web, deploy-worker ]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Create New Relic deployment marker for Web
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_FILES_WEB_DEV }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
||||
- name: Create New Relic deployment marker for Worker
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_FILES_WORKER_DEV }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
||||
|
||||
notify_discord:
|
||||
needs: [ deploy-web, deploy-worker ]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Run Discord Webhook
|
||||
uses: johnnyhuy/actions-discord-git-webhook@main
|
||||
with:
|
||||
webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
||||
34
.github/workflows/scheduler.release.dev.yml
vendored
34
.github/workflows/scheduler.release.dev.yml
vendored
@@ -1,7 +1,7 @@
|
||||
name: Scheduler Server Dev
|
||||
|
||||
concurrency:
|
||||
group: dev_environment
|
||||
group: scheduler_dev_environment
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.x'
|
||||
- run: yarn install
|
||||
- run: yarn lint:scheduler
|
||||
- run: yarn test:scheduler
|
||||
|
||||
publish-aws-ecr:
|
||||
@@ -30,6 +30,8 @@ jobs:
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:scheduler
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
@@ -39,10 +41,6 @@ jobs:
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@v1
|
||||
- name: Install dependencies locally
|
||||
run: yarn install
|
||||
- name: Build application locally
|
||||
run: yarn build:scheduler
|
||||
- name: Build, tag, and push image to Amazon ECR
|
||||
id: build-image
|
||||
env:
|
||||
@@ -50,7 +48,7 @@ jobs:
|
||||
ECR_REPOSITORY: scheduler-worker
|
||||
IMAGE_TAG: ${{ github.sha }}
|
||||
run: |
|
||||
docker build -f Dockerfile.scheduler -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
|
||||
yarn docker build @standardnotes/scheduler-server -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:dev
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:dev
|
||||
@@ -62,21 +60,19 @@ jobs:
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install dependencies locally
|
||||
run: yarn install
|
||||
- name: Build application locally
|
||||
- name: Build locally
|
||||
run: yarn build:scheduler
|
||||
- name: Publish to Registry
|
||||
env:
|
||||
DOCKER_BUILDKIT: 1
|
||||
COMPOSE_DOCKER_CLI_BUILD: 1
|
||||
uses: elgohr/Publish-Docker-Github-Action@master
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
name: standardnotes/scheduler
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
dockerfile: Dockerfile.scheduler
|
||||
tags: "dev,${{ github.sha }}"
|
||||
- name: Build, tag, and push image to Docker Hub
|
||||
run: |
|
||||
yarn docker build @standardnotes/scheduler-server -t standardnotes/scheduler:${{ github.sha }}
|
||||
docker push standardnotes/scheduler:${{ github.sha }}
|
||||
docker tag standardnotes/scheduler:${{ github.sha }} standardnotes/scheduler:dev
|
||||
docker push standardnotes/scheduler:dev
|
||||
|
||||
deploy-worker:
|
||||
needs: publish-aws-ecr
|
||||
@@ -122,7 +118,7 @@ jobs:
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_WORKER_DEV }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_SCHEDULER_WORKER_DEV }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
||||
|
||||
170
.github/workflows/syncing-server.release.dev.yml
vendored
Normal file
170
.github/workflows/syncing-server.release.dev.yml
vendored
Normal file
@@ -0,0 +1,170 @@
|
||||
name: Syncing Server Dev
|
||||
|
||||
concurrency:
|
||||
group: syncing_server_dev_environment
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '@standardnotes/syncing-server@[0-9]*.[0-9]*.[0-9]*-alpha.[0-9]*'
|
||||
- '@standardnotes/syncing-server@[0-9]*.[0-9]*.[0-9]*-beta.[0-9]*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.x'
|
||||
- run: yarn lint:syncing-server
|
||||
- run: yarn test:syncing-server
|
||||
|
||||
publish-aws-ecr:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: cp .env.sample .env
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@v1
|
||||
- name: Build, tag, and push image to Amazon ECR
|
||||
id: build-image
|
||||
env:
|
||||
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
|
||||
ECR_REPOSITORY: syncing-server-js
|
||||
IMAGE_TAG: ${{ github.sha }}
|
||||
run: |
|
||||
yarn docker build @standardnotes/syncing-server -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:dev
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:dev
|
||||
|
||||
publish-docker-hub:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: cp .env.sample .env
|
||||
- name: Publish to Registry
|
||||
uses: elgohr/Publish-Docker-Github-Action@master
|
||||
with:
|
||||
name: standardnotes/syncing-server-js
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
tags: "dev,${{ github.sha }}"
|
||||
|
||||
deploy-web:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition syncing-server-js-dev --query taskDefinition > task-definition.json
|
||||
- name: Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="syncing-server-js-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: syncing-server-js-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/syncing-server-js:${{ github.sha }}
|
||||
- name: Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def.outputs.task-definition }}
|
||||
service: syncing-server-js-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
|
||||
deploy-worker:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition syncing-server-js-worker-dev --query taskDefinition > task-definition.json
|
||||
- name: Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="syncing-server-js-worker-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: syncing-server-js-worker-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/syncing-server-js:${{ github.sha }}
|
||||
- name: Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def.outputs.task-definition }}
|
||||
service: syncing-server-js-worker-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
|
||||
newrelic:
|
||||
needs: [ deploy-web, deploy-worker ]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Create New Relic deployment marker for Web
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_SYNCING_SERVER_WEB_DEV }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
||||
- name: Create New Relic deployment marker for Worker
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_SYNCING_SERVER_WORKER_DEV }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
||||
|
||||
notify_discord:
|
||||
needs: [ deploy-web, deploy-worker ]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Run Discord Webhook
|
||||
uses: johnnyhuy/actions-discord-git-webhook@main
|
||||
with:
|
||||
webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
||||
3
.github/workflows/version-bump.yml
vendored
3
.github/workflows/version-bump.yml
vendored
@@ -32,7 +32,8 @@ jobs:
|
||||
with:
|
||||
node-version: '16.x'
|
||||
|
||||
- run: yarn install
|
||||
- name: Install locally
|
||||
run: yarn install --immutable
|
||||
|
||||
- name: Bump Prod Version
|
||||
if: ${{ github.ref == 'refs/heads/main' }}
|
||||
|
||||
10
.gitignore
vendored
10
.gitignore
vendored
@@ -1,6 +1,5 @@
|
||||
.eslintcache
|
||||
.DS_Store
|
||||
.vscode
|
||||
.idea
|
||||
node_modules
|
||||
dist
|
||||
@@ -8,11 +7,14 @@ coverage
|
||||
.env
|
||||
newrelic_agent.log
|
||||
|
||||
**/.pnp.*
|
||||
**/.yarn/*
|
||||
.yarn/*
|
||||
!.yarn/cache
|
||||
!.yarn/patches
|
||||
!.yarn/plugins
|
||||
!.yarn/releases
|
||||
!.yarn/unplugged
|
||||
!.yarn/sdks
|
||||
!.yarn/versions
|
||||
!.yarn/cache
|
||||
|
||||
packages/files/uploads/*
|
||||
!packages/files/uploads/.gitkeep
|
||||
|
||||
22797
.pnp.cjs
generated
Executable file
22797
.pnp.cjs
generated
Executable file
File diff suppressed because one or more lines are too long
271
.pnp.loader.mjs
generated
Normal file
271
.pnp.loader.mjs
generated
Normal file
@@ -0,0 +1,271 @@
|
||||
import { URL, fileURLToPath, pathToFileURL } from 'url';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import moduleExports, { Module } from 'module';
|
||||
|
||||
var PathType;
|
||||
(function(PathType2) {
|
||||
PathType2[PathType2["File"] = 0] = "File";
|
||||
PathType2[PathType2["Portable"] = 1] = "Portable";
|
||||
PathType2[PathType2["Native"] = 2] = "Native";
|
||||
})(PathType || (PathType = {}));
|
||||
const npath = Object.create(path);
|
||||
const ppath = Object.create(path.posix);
|
||||
npath.cwd = () => process.cwd();
|
||||
ppath.cwd = () => toPortablePath(process.cwd());
|
||||
ppath.resolve = (...segments) => {
|
||||
if (segments.length > 0 && ppath.isAbsolute(segments[0])) {
|
||||
return path.posix.resolve(...segments);
|
||||
} else {
|
||||
return path.posix.resolve(ppath.cwd(), ...segments);
|
||||
}
|
||||
};
|
||||
const contains = function(pathUtils, from, to) {
|
||||
from = pathUtils.normalize(from);
|
||||
to = pathUtils.normalize(to);
|
||||
if (from === to)
|
||||
return `.`;
|
||||
if (!from.endsWith(pathUtils.sep))
|
||||
from = from + pathUtils.sep;
|
||||
if (to.startsWith(from)) {
|
||||
return to.slice(from.length);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
npath.fromPortablePath = fromPortablePath;
|
||||
npath.toPortablePath = toPortablePath;
|
||||
npath.contains = (from, to) => contains(npath, from, to);
|
||||
ppath.contains = (from, to) => contains(ppath, from, to);
|
||||
const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/;
|
||||
const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/;
|
||||
const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/;
|
||||
const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/;
|
||||
function fromPortablePath(p) {
|
||||
if (process.platform !== `win32`)
|
||||
return p;
|
||||
let portablePathMatch, uncPortablePathMatch;
|
||||
if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP))
|
||||
p = portablePathMatch[1];
|
||||
else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP))
|
||||
p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`;
|
||||
else
|
||||
return p;
|
||||
return p.replace(/\//g, `\\`);
|
||||
}
|
||||
function toPortablePath(p) {
|
||||
if (process.platform !== `win32`)
|
||||
return p;
|
||||
p = p.replace(/\\/g, `/`);
|
||||
let windowsPathMatch, uncWindowsPathMatch;
|
||||
if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP))
|
||||
p = `/${windowsPathMatch[1]}`;
|
||||
else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP))
|
||||
p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`;
|
||||
return p;
|
||||
}
|
||||
|
||||
const builtinModules = new Set(Module.builtinModules || Object.keys(process.binding(`natives`)));
|
||||
const isBuiltinModule = (request) => request.startsWith(`node:`) || builtinModules.has(request);
|
||||
function readPackageScope(checkPath) {
|
||||
const rootSeparatorIndex = checkPath.indexOf(npath.sep);
|
||||
let separatorIndex;
|
||||
do {
|
||||
separatorIndex = checkPath.lastIndexOf(npath.sep);
|
||||
checkPath = checkPath.slice(0, separatorIndex);
|
||||
if (checkPath.endsWith(`${npath.sep}node_modules`))
|
||||
return false;
|
||||
const pjson = readPackage(checkPath + npath.sep);
|
||||
if (pjson) {
|
||||
return {
|
||||
data: pjson,
|
||||
path: checkPath
|
||||
};
|
||||
}
|
||||
} while (separatorIndex > rootSeparatorIndex);
|
||||
return false;
|
||||
}
|
||||
function readPackage(requestPath) {
|
||||
const jsonPath = npath.resolve(requestPath, `package.json`);
|
||||
if (!fs.existsSync(jsonPath))
|
||||
return null;
|
||||
return JSON.parse(fs.readFileSync(jsonPath, `utf8`));
|
||||
}
|
||||
|
||||
async function tryReadFile(path2) {
|
||||
try {
|
||||
return await fs.promises.readFile(path2, `utf8`);
|
||||
} catch (error) {
|
||||
if (error.code === `ENOENT`)
|
||||
return null;
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
function tryParseURL(str, base) {
|
||||
try {
|
||||
return new URL(str, base);
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
let entrypointPath = null;
|
||||
function setEntrypointPath(file) {
|
||||
entrypointPath = file;
|
||||
}
|
||||
function getFileFormat(filepath) {
|
||||
var _a, _b;
|
||||
const ext = path.extname(filepath);
|
||||
switch (ext) {
|
||||
case `.mjs`: {
|
||||
return `module`;
|
||||
}
|
||||
case `.cjs`: {
|
||||
return `commonjs`;
|
||||
}
|
||||
case `.wasm`: {
|
||||
throw new Error(`Unknown file extension ".wasm" for ${filepath}`);
|
||||
}
|
||||
case `.json`: {
|
||||
throw new Error(`Unknown file extension ".json" for ${filepath}`);
|
||||
}
|
||||
case `.js`: {
|
||||
const pkg = readPackageScope(filepath);
|
||||
if (!pkg)
|
||||
return `commonjs`;
|
||||
return (_a = pkg.data.type) != null ? _a : `commonjs`;
|
||||
}
|
||||
default: {
|
||||
if (entrypointPath !== filepath)
|
||||
return null;
|
||||
const pkg = readPackageScope(filepath);
|
||||
if (!pkg)
|
||||
return `commonjs`;
|
||||
if (pkg.data.type === `module`)
|
||||
return null;
|
||||
return (_b = pkg.data.type) != null ? _b : `commonjs`;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function getFormat$1(resolved, context, defaultGetFormat) {
|
||||
const url = tryParseURL(resolved);
|
||||
if ((url == null ? void 0 : url.protocol) !== `file:`)
|
||||
return defaultGetFormat(resolved, context, defaultGetFormat);
|
||||
const format = getFileFormat(fileURLToPath(url));
|
||||
if (format) {
|
||||
return {
|
||||
format
|
||||
};
|
||||
}
|
||||
return defaultGetFormat(resolved, context, defaultGetFormat);
|
||||
}
|
||||
|
||||
async function getSource$1(urlString, context, defaultGetSource) {
|
||||
const url = tryParseURL(urlString);
|
||||
if ((url == null ? void 0 : url.protocol) !== `file:`)
|
||||
return defaultGetSource(urlString, context, defaultGetSource);
|
||||
return {
|
||||
source: await fs.promises.readFile(fileURLToPath(url), `utf8`)
|
||||
};
|
||||
}
|
||||
|
||||
async function load$1(urlString, context, defaultLoad) {
|
||||
const url = tryParseURL(urlString);
|
||||
if ((url == null ? void 0 : url.protocol) !== `file:`)
|
||||
return defaultLoad(urlString, context, defaultLoad);
|
||||
const filePath = fileURLToPath(url);
|
||||
const format = getFileFormat(filePath);
|
||||
if (!format)
|
||||
return defaultLoad(urlString, context, defaultLoad);
|
||||
return {
|
||||
format,
|
||||
source: await fs.promises.readFile(filePath, `utf8`)
|
||||
};
|
||||
}
|
||||
|
||||
const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/;
|
||||
const isRelativeRegexp = /^\.{0,2}\//;
|
||||
async function resolve$1(originalSpecifier, context, defaultResolver) {
|
||||
var _a;
|
||||
const {findPnpApi} = moduleExports;
|
||||
if (!findPnpApi || isBuiltinModule(originalSpecifier))
|
||||
return defaultResolver(originalSpecifier, context, defaultResolver);
|
||||
let specifier = originalSpecifier;
|
||||
const url = tryParseURL(specifier, isRelativeRegexp.test(specifier) ? context.parentURL : void 0);
|
||||
if (url) {
|
||||
if (url.protocol !== `file:`)
|
||||
return defaultResolver(originalSpecifier, context, defaultResolver);
|
||||
specifier = fileURLToPath(url);
|
||||
}
|
||||
const {parentURL, conditions = []} = context;
|
||||
const issuer = parentURL ? fileURLToPath(parentURL) : process.cwd();
|
||||
const pnpapi = (_a = findPnpApi(issuer)) != null ? _a : url ? findPnpApi(specifier) : null;
|
||||
if (!pnpapi)
|
||||
return defaultResolver(originalSpecifier, context, defaultResolver);
|
||||
const dependencyNameMatch = specifier.match(pathRegExp);
|
||||
let allowLegacyResolve = false;
|
||||
if (dependencyNameMatch) {
|
||||
const [, dependencyName, subPath] = dependencyNameMatch;
|
||||
if (subPath === ``) {
|
||||
const resolved = pnpapi.resolveToUnqualified(`${dependencyName}/package.json`, issuer);
|
||||
if (resolved) {
|
||||
const content = await tryReadFile(resolved);
|
||||
if (content) {
|
||||
const pkg = JSON.parse(content);
|
||||
allowLegacyResolve = pkg.exports == null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const result = pnpapi.resolveRequest(specifier, issuer, {
|
||||
conditions: new Set(conditions),
|
||||
extensions: allowLegacyResolve ? void 0 : []
|
||||
});
|
||||
if (!result)
|
||||
throw new Error(`Resolving '${specifier}' from '${issuer}' failed`);
|
||||
const resultURL = pathToFileURL(result);
|
||||
if (url) {
|
||||
resultURL.search = url.search;
|
||||
resultURL.hash = url.hash;
|
||||
}
|
||||
if (!parentURL)
|
||||
setEntrypointPath(fileURLToPath(resultURL));
|
||||
return {
|
||||
url: resultURL.href
|
||||
};
|
||||
}
|
||||
|
||||
const binding = process.binding(`fs`);
|
||||
const originalfstat = binding.fstat;
|
||||
const ZIP_FD = 2147483648;
|
||||
binding.fstat = function(...args) {
|
||||
const [fd, useBigint, req] = args;
|
||||
if ((fd & ZIP_FD) !== 0 && useBigint === false && req === void 0) {
|
||||
try {
|
||||
const stats = fs.fstatSync(fd);
|
||||
return new Float64Array([
|
||||
stats.dev,
|
||||
stats.mode,
|
||||
stats.nlink,
|
||||
stats.uid,
|
||||
stats.gid,
|
||||
stats.rdev,
|
||||
stats.blksize,
|
||||
stats.ino,
|
||||
stats.size,
|
||||
stats.blocks
|
||||
]);
|
||||
} catch {
|
||||
}
|
||||
}
|
||||
return originalfstat.apply(this, args);
|
||||
};
|
||||
|
||||
const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10));
|
||||
const hasConsolidatedHooks = major > 16 || major === 16 && minor >= 12;
|
||||
const resolve = resolve$1;
|
||||
const getFormat = hasConsolidatedHooks ? void 0 : getFormat$1;
|
||||
const getSource = hasConsolidatedHooks ? void 0 : getSource$1;
|
||||
const load = hasConsolidatedHooks ? load$1 : void 0;
|
||||
|
||||
export { getFormat, getSource, load, resolve };
|
||||
7
.vscode/extensions.json
vendored
Normal file
7
.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"arcanis.vscode-zipfs",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"esbenp.prettier-vscode"
|
||||
]
|
||||
}
|
||||
10
.vscode/settings.json
vendored
Normal file
10
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"search.exclude": {
|
||||
"**/.yarn": true,
|
||||
"**/.pnp.*": true
|
||||
},
|
||||
"eslint.nodePath": ".yarn/sdks",
|
||||
"prettier.prettierPath": ".yarn/sdks/prettier/index.js",
|
||||
"typescript.tsdk": ".yarn/sdks/typescript/lib",
|
||||
"typescript.enablePromptUseWorkspaceTsdk": true
|
||||
}
|
||||
BIN
.yarn/cache/@ioredis-commands-npm-1.1.1-8a87e5940e-66a9dc315d.zip
vendored
Normal file
BIN
.yarn/cache/@ioredis-commands-npm-1.1.1-8a87e5940e-66a9dc315d.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@newrelic-aws-sdk-npm-3.1.0-7c3485a153-5601d90c78.zip
vendored
Normal file
BIN
.yarn/cache/@newrelic-aws-sdk-npm-3.1.0-7c3485a153-5601d90c78.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@newrelic-koa-npm-5.0.0-c9c6a0e1dc-e98d921b96.zip
vendored
Normal file
BIN
.yarn/cache/@newrelic-koa-npm-5.0.0-c9c6a0e1dc-e98d921b96.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@newrelic-native-metrics-npm-6.0.2-805c5534f5-78f92bbe7f.zip
vendored
Normal file
BIN
.yarn/cache/@newrelic-native-metrics-npm-6.0.2-805c5534f5-78f92bbe7f.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@newrelic-superagent-npm-4.0.0-6cc7e8ec57-5fb257ac05.zip
vendored
Normal file
BIN
.yarn/cache/@newrelic-superagent-npm-4.0.0-6cc7e8ec57-5fb257ac05.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@octokit-openapi-types-npm-12.3.0-9978c43c2e-2f568d2e1d.zip
vendored
Normal file
BIN
.yarn/cache/@octokit-openapi-types-npm-12.3.0-9978c43c2e-2f568d2e1d.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@otplib-core-npm-12.0.1-4b9787d379-b3c34bc20b.zip
vendored
Normal file
BIN
.yarn/cache/@otplib-core-npm-12.0.1-4b9787d379-b3c34bc20b.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@otplib-plugin-crypto-npm-12.0.1-d0dc5d1d98-6867c74ee8.zip
vendored
Normal file
BIN
.yarn/cache/@otplib-plugin-crypto-npm-12.0.1-d0dc5d1d98-6867c74ee8.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@otplib-plugin-thirty-two-npm-12.0.1-b85109b20e-920099e40d.zip
vendored
Normal file
BIN
.yarn/cache/@otplib-plugin-thirty-two-npm-12.0.1-b85109b20e-920099e40d.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@otplib-preset-default-npm-12.0.1-77f04f54c4-8133231384.zip
vendored
Normal file
BIN
.yarn/cache/@otplib-preset-default-npm-12.0.1-77f04f54c4-8133231384.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@otplib-preset-v11-npm-12.0.1-df44c202c1-367cb09397.zip
vendored
Normal file
BIN
.yarn/cache/@otplib-preset-v11-npm-12.0.1-df44c202c1-367cb09397.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip
vendored
Normal file
BIN
.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@sentry-hub-npm-6.19.7-6469362c23-10bb1c5cba.zip
vendored
Normal file
BIN
.yarn/cache/@sentry-hub-npm-6.19.7-6469362c23-10bb1c5cba.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@sentry-minimal-npm-6.19.7-7527a9814c-9153ac426e.zip
vendored
Normal file
BIN
.yarn/cache/@sentry-minimal-npm-6.19.7-7527a9814c-9153ac426e.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@sentry-node-npm-6.19.7-edcd5da482-2293b0d1d1.zip
vendored
Normal file
BIN
.yarn/cache/@sentry-node-npm-6.19.7-edcd5da482-2293b0d1d1.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@sentry-types-npm-6.19.7-f75535a9f4-f46ef74a33.zip
vendored
Normal file
BIN
.yarn/cache/@sentry-types-npm-6.19.7-f75535a9f4-f46ef74a33.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip
vendored
Normal file
BIN
.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@sindresorhus-is-npm-0.14.0-9f906ea34b-971e0441dd.zip
vendored
Normal file
BIN
.yarn/cache/@sindresorhus-is-npm-0.14.0-9f906ea34b-971e0441dd.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@standardnotes-analytics-npm-1.6.0-39bec110e3-6a5e861526.zip
vendored
Normal file
BIN
.yarn/cache/@standardnotes-analytics-npm-1.6.0-39bec110e3-6a5e861526.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@standardnotes-api-npm-1.1.13-59feca8c9e-2ff21e04bb.zip
vendored
Normal file
BIN
.yarn/cache/@standardnotes-api-npm-1.1.13-59feca8c9e-2ff21e04bb.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@standardnotes-config-npm-2.0.1-5f34962133-5284e034f2.zip
vendored
Normal file
BIN
.yarn/cache/@standardnotes-config-npm-2.0.1-5f34962133-5284e034f2.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@standardnotes-encryption-npm-1.8.19-b0a1c08193-f663a6b9a2.zip
vendored
Normal file
BIN
.yarn/cache/@standardnotes-encryption-npm-1.8.19-b0a1c08193-f663a6b9a2.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@standardnotes-models-npm-1.11.10-e4b5e4717d-d69fd3940e.zip
vendored
Normal file
BIN
.yarn/cache/@standardnotes-models-npm-1.11.10-e4b5e4717d-d69fd3940e.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@standardnotes-payloads-npm-1.5.1-45dffe2f5c-65c28421e7.zip
vendored
Normal file
BIN
.yarn/cache/@standardnotes-payloads-npm-1.5.1-45dffe2f5c-65c28421e7.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@standardnotes-responses-npm-1.6.36-d245f42de1-bb78a2cefa.zip
vendored
Normal file
BIN
.yarn/cache/@standardnotes-responses-npm-1.6.36-d245f42de1-bb78a2cefa.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@standardnotes-services-npm-1.13.19-5574bb675a-c4c239c5e8.zip
vendored
Normal file
BIN
.yarn/cache/@standardnotes-services-npm-1.13.19-5574bb675a-c4c239c5e8.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@standardnotes-settings-npm-1.14.3-6f557bd9ab-60fbb2ca85.zip
vendored
Normal file
BIN
.yarn/cache/@standardnotes-settings-npm-1.14.3-6f557bd9ab-60fbb2ca85.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@standardnotes-sncrypto-common-npm-1.9.0-48773f745a-42252d7198.zip
vendored
Normal file
BIN
.yarn/cache/@standardnotes-sncrypto-common-npm-1.9.0-48773f745a-42252d7198.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@standardnotes-sncrypto-node-npm-1.8.3-5d28cdd37d-b3c866bfba.zip
vendored
Normal file
BIN
.yarn/cache/@standardnotes-sncrypto-node-npm-1.8.3-5d28cdd37d-b3c866bfba.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@standardnotes-utils-npm-1.6.11-54d7210fab-c50999c0b0.zip
vendored
Normal file
BIN
.yarn/cache/@standardnotes-utils-npm-1.6.11-54d7210fab-c50999c0b0.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@szmarczak-http-timer-npm-1.1.2-ea82ca2d55-4d9158061c.zip
vendored
Normal file
BIN
.yarn/cache/@szmarczak-http-timer-npm-1.1.2-ea82ca2d55-4d9158061c.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-bcryptjs-npm-2.4.2-3a0c115732-220dade7b0.zip
vendored
Normal file
BIN
.yarn/cache/@types-bcryptjs-npm-2.4.2-3a0c115732-220dade7b0.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-body-parser-npm-1.19.2-f845b7b538-e17840c7d7.zip
vendored
Normal file
BIN
.yarn/cache/@types-body-parser-npm-1.19.2-f845b7b538-e17840c7d7.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-busboy-npm-1.5.0-0e24e7f08d-ffa7bf25c0.zip
vendored
Normal file
BIN
.yarn/cache/@types-busboy-npm-1.5.0-0e24e7f08d-ffa7bf25c0.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-connect-busboy-npm-1.0.0-fca702448d-ccbf7bc42d.zip
vendored
Normal file
BIN
.yarn/cache/@types-connect-busboy-npm-1.0.0-fca702448d-ccbf7bc42d.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-connect-npm-3.4.35-7337eee0a3-fe81351470.zip
vendored
Normal file
BIN
.yarn/cache/@types-connect-npm-3.4.35-7337eee0a3-fe81351470.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-cors-npm-2.8.12-ff52e8e514-8c45f112c7.zip
vendored
Normal file
BIN
.yarn/cache/@types-cors-npm-2.8.12-ff52e8e514-8c45f112c7.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-dotenv-npm-8.2.0-f4d0e3d65b-a1f524da7d.zip
vendored
Normal file
BIN
.yarn/cache/@types-dotenv-npm-8.2.0-f4d0e3d65b-a1f524da7d.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-express-npm-4.17.13-0e12fe9c24-12a2a0e6c4.zip
vendored
Normal file
BIN
.yarn/cache/@types-express-npm-4.17.13-0e12fe9c24-12a2a0e6c4.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-express-serve-static-core-npm-4.17.29-9b96bc0e26-ec4194dc59.zip
vendored
Normal file
BIN
.yarn/cache/@types-express-serve-static-core-npm-4.17.29-9b96bc0e26-ec4194dc59.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-inversify-express-utils-npm-2.0.0-e78182955d-848aa75f0f.zip
vendored
Normal file
BIN
.yarn/cache/@types-inversify-express-utils-npm-2.0.0-e78182955d-848aa75f0f.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@types-jest-npm-28.1.2-24c07b500e-53ec95b0b2.zip
vendored
Normal file
BIN
.yarn/cache/@types-jest-npm-28.1.2-24c07b500e-53ec95b0b2.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-jest-npm-28.1.3-4e0f1f0cb8-28141f2d5b.zip
vendored
Normal file
BIN
.yarn/cache/@types-jest-npm-28.1.3-4e0f1f0cb8-28141f2d5b.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-jsonwebtoken-npm-8.5.8-798e14708c-56738a918c.zip
vendored
Normal file
BIN
.yarn/cache/@types-jsonwebtoken-npm-8.5.8-798e14708c-56738a918c.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-keyv-npm-3.1.4-a8082ea56b-e009a2bfb5.zip
vendored
Normal file
BIN
.yarn/cache/@types-keyv-npm-3.1.4-a8082ea56b-e009a2bfb5.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-mime-npm-1.3.2-ea71878ab3-0493368244.zip
vendored
Normal file
BIN
.yarn/cache/@types-mime-npm-1.3.2-ea71878ab3-0493368244.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-otplib-npm-10.0.0-6cfcbcf64e-aa081f0a55.zip
vendored
Normal file
BIN
.yarn/cache/@types-otplib-npm-10.0.0-6cfcbcf64e-aa081f0a55.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-prettyjson-npm-0.0.29-26ae573a83-9ff6cb225d.zip
vendored
Normal file
BIN
.yarn/cache/@types-prettyjson-npm-0.0.29-26ae573a83-9ff6cb225d.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-qs-npm-6.9.7-4a3e6ca0d0-7fd6f9c250.zip
vendored
Normal file
BIN
.yarn/cache/@types-qs-npm-6.9.7-4a3e6ca0d0-7fd6f9c250.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-range-parser-npm-1.2.4-23d797fbde-b7c0dfd508.zip
vendored
Normal file
BIN
.yarn/cache/@types-range-parser-npm-1.2.4-23d797fbde-b7c0dfd508.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-responselike-npm-1.0.0-85dd08af42-e99fc7cc62.zip
vendored
Normal file
BIN
.yarn/cache/@types-responselike-npm-1.0.0-85dd08af42-e99fc7cc62.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-serve-static-npm-1.13.10-5434e2c519-eaca858739.zip
vendored
Normal file
BIN
.yarn/cache/@types-serve-static-npm-1.13.10-5434e2c519-eaca858739.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-ua-parser-js-npm-0.7.36-f5ace9ead6-8c24d4dc12.zip
vendored
Normal file
BIN
.yarn/cache/@types-ua-parser-js-npm-0.7.36-f5ace9ead6-8c24d4dc12.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-uuid-npm-8.3.4-7547f4402c-6f11f3ff70.zip
vendored
Normal file
BIN
.yarn/cache/@types-uuid-npm-8.3.4-7547f4402c-6f11f3ff70.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@typescript-eslint-eslint-plugin-npm-4.33.0-b5d1be4879-d74855d0a5.zip
vendored
Normal file
BIN
.yarn/cache/@typescript-eslint-eslint-plugin-npm-4.33.0-b5d1be4879-d74855d0a5.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@typescript-eslint-experimental-utils-npm-4.33.0-f10f287886-f859800ada.zip
vendored
Normal file
BIN
.yarn/cache/@typescript-eslint-experimental-utils-npm-4.33.0-f10f287886-f859800ada.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@typescript-eslint-parser-npm-4.33.0-799c6ce8d5-102457eae1.zip
vendored
Normal file
BIN
.yarn/cache/@typescript-eslint-parser-npm-4.33.0-799c6ce8d5-102457eae1.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@typescript-eslint-scope-manager-npm-4.33.0-28014c179d-9a25fb7ba7.zip
vendored
Normal file
BIN
.yarn/cache/@typescript-eslint-scope-manager-npm-4.33.0-28014c179d-9a25fb7ba7.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@typescript-eslint-types-npm-4.33.0-9e9b956afa-3baae1ca35.zip
vendored
Normal file
BIN
.yarn/cache/@typescript-eslint-types-npm-4.33.0-9e9b956afa-3baae1ca35.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@typescript-eslint-typescript-estree-npm-4.33.0-b6b79c10d0-2566984390.zip
vendored
Normal file
BIN
.yarn/cache/@typescript-eslint-typescript-estree-npm-4.33.0-b6b79c10d0-2566984390.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@typescript-eslint-visitor-keys-npm-4.33.0-8b7e72a3c9-59953e474a.zip
vendored
Normal file
BIN
.yarn/cache/@typescript-eslint-visitor-keys-npm-4.33.0-8b7e72a3c9-59953e474a.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/accepts-npm-1.3.8-9a812371c9-50c43d32e7.zip
vendored
Normal file
BIN
.yarn/cache/accepts-npm-1.3.8-9a812371c9-50c43d32e7.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/agent-base-npm-5.1.1-d451a4ad62-61ae789f30.zip
vendored
Normal file
BIN
.yarn/cache/agent-base-npm-5.1.1-d451a4ad62-61ae789f30.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/ansi-align-npm-3.0.1-8e6288d20a-6abfa08f21.zip
vendored
Normal file
BIN
.yarn/cache/ansi-align-npm-3.0.1-8e6288d20a-6abfa08f21.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/array-flatten-npm-1.1.1-9d94ad5f1d-a9925bf351.zip
vendored
Normal file
BIN
.yarn/cache/array-flatten-npm-1.1.1-9d94ad5f1d-a9925bf351.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/aws-sdk-npm-2.1157.0-a059fa826a-4a49853bbe.zip
vendored
Normal file
BIN
.yarn/cache/aws-sdk-npm-2.1157.0-a059fa826a-4a49853bbe.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/aws-sdk-npm-2.1159.0-c10a984d83-f89d3a3483.zip
vendored
Normal file
BIN
.yarn/cache/aws-sdk-npm-2.1159.0-c10a984d83-f89d3a3483.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/axios-npm-0.24.0-39e5c1e79e-468cf496c0.zip
vendored
Normal file
BIN
.yarn/cache/axios-npm-0.24.0-39e5c1e79e-468cf496c0.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/bcryptjs-npm-2.4.3-32de4957eb-0e80ed852a.zip
vendored
Normal file
BIN
.yarn/cache/bcryptjs-npm-2.4.3-32de4957eb-0e80ed852a.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-ccd267956c.zip
vendored
Normal file
BIN
.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-ccd267956c.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/body-parser-npm-1.19.0-6e177cabfa-490231b4c8.zip
vendored
Normal file
BIN
.yarn/cache/body-parser-npm-1.19.0-6e177cabfa-490231b4c8.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/body-parser-npm-1.20.0-1820eff49a-12fffdeac8.zip
vendored
Normal file
BIN
.yarn/cache/body-parser-npm-1.20.0-1820eff49a-12fffdeac8.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/boxen-npm-4.2.0-471e88ddba-ce2b565a2e.zip
vendored
Normal file
BIN
.yarn/cache/boxen-npm-4.2.0-471e88ddba-ce2b565a2e.zip
vendored
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user