refactor: app deployment

This commit is contained in:
2023-06-05 10:54:18 +02:00
parent b21833de40
commit 3b8a344d73
104 changed files with 583 additions and 13494 deletions

7
.dockerignore Normal file
View File

@@ -0,0 +1,7 @@
**/node_modules
**/docs
**/coverage
**/.turbo
**/.idea
**/.vscode
**/.env*

2
.gitignore vendored
View File

@@ -17,6 +17,7 @@ www/
.docs.json
coverage.xml
.deploy/
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
@@ -41,6 +42,7 @@ build/Release
# Dependency directories
node_modules/
.pnpm-store/
jspm_packages/
# TypeScript v1 declaration files

View File

@@ -1,14 +1,13 @@
image: node:18-buster
before_script:
default:
image: registry.gitlab.com/openstapps/projectmanagement/builder:v18
tags:
- performance
before_script:
- echo TURBO_API=$TURBO_API >> .env.local
- echo TURBO_TOKEN=$TURBO_TOKEN >> .env.local
- echo TURBO_TEAM=$TURBO_TEAM >> .env.local
- corepack enable
- corepack prepare pnpm@latest-8 --activate
- pnpm config set store-dir .pnpm-store
cache:
cache:
key:
files:
- pnpm-lock.yaml
@@ -17,43 +16,86 @@ cache:
stages:
- build
- lint
- test
- docs
- deploy
build:
stage: build
interruptible: true
script:
- pnpm install
- pnpm build
- pnpm build:full
- mv frontend/app/www www
artifacts:
paths:
- www
# rules:
# - if: $CI_COMMIT_BRANCH == "develop"
# when: never
# - if: $CI_COMMIT_BRANCH == "master"
# when: never
# - when: always
lint:
stage: lint
script:
- pnpm install
- pnpm build
- pnpm run syncpack
- pnpm lint
- pnpm format
test:
unit:
stage: test
interruptible: true
script:
- pnpm install
- pnpm build
- pnpm test
coverage: '/Statements[^:]*\:[^:]*\s+([\d\.]+)%/'
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage.xml
pages:
stage: docs
# TODO!!
# integration:
# stage: test
# interruptible: true
# variables:
# DOCKER_DRIVER: overlay2
# services:
# - docker:dind
# script:
# - pnpm install
# - pnpm run test:integration
# tags:
# - gitlab-org-docker
review:
stage: deploy
dependencies:
- build
script:
- pnpm install
- pnpm run docs
- mv docs public
artifacts:
paths:
- public
# TODO: - .gitlab/ci/enableGitlabReviewToolbar.sh www/index.html "$CI_PROJECT_ID" "$CI_OPEN_MERGE_REQUESTS"
- cp www/index.html www/200.html
- pnpm dlx surge -p ./www -d https://$CI_PROJECT_PATH_SLUG-$CI_ENVIRONMENT_SLUG.surge.sh/
environment:
name: review/$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_NAME
url: https://$CI_PROJECT_PATH_SLUG-$CI_ENVIRONMENT_SLUG.surge.sh/
on_stop: stop_review
rules:
- if: ($CI_COMMIT_REF_NAME != "develop" && $CI_COMMIT_REF_NAME != "main" && $CI_MERGE_REQUEST_EVENT_TYPE != "merge_train" && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "web"))
stop_review:
stage: deploy
script:
- pnpm dlx surge teardown $CI_PROJECT_PATH_SLUG-$CI_ENVIRONMENT_SLUG.surge.sh
when: manual
environment:
name: review/$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_NAME
action: stop
rules:
- if: ($CI_COMMIT_REF_NAME != "develop" && $CI_COMMIT_REF_NAME != "main" && $CI_MERGE_REQUEST_EVENT_TYPE != "merge_train" && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "web"))
# TODO!!
# pages:docs:
# stage: deploy
# script:
# - pnpm install
# - pnpm run docs
# - mv docs public
# artifacts:
# paths:
# - public

View File

@@ -18,6 +18,7 @@ const config = {
'main',
'types',
'bin',
'files',
'scripts',
'dependencies',
'devDependencies',
@@ -46,7 +47,7 @@ const config = {
dependencies: ['**'],
dependencyTypes: ['workspace'],
packages: ['**'],
pinVersion: '2.1.0',
pinVersion: '3.0.0',
},
{
label: 'Packages should use workspace version',

18
Dockerfile Normal file
View File

@@ -0,0 +1,18 @@
FROM registry.gitlab.com/openstapps/projectmanagement/node:v18 as workspace
USER root
RUN apk add --update python3 py3-pip make g++ gcompat
WORKDIR app/
COPY pnpm-lock.yaml \
package.json \
pnpm-workspace.yaml ./
RUN pnpm fetch --prod
COPY backend/ backend/
COPY configuration/ configuration/
COPY examples/ examples/
COPY frontend/ frontend/
COPY packages/ packages/
RUN pnpm install -r --offline --prod

View File

@@ -1,5 +1,30 @@
# Open StApps Monorepo
Refer to the [contribution guide](./CONTRIBUTING.md)
## Projects
### Apps
| Name | Version | License | Readme |
| -------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------- |
| Core | [![npm](https://img.shields.io/npm/v/@openstapps/app.svg?style=flat-square)](https://npmjs.com/package/@openstapps/app) | [![license)](https://img.shields.io/npm/l/@openstapps/app.svg?style=flat-square)](https://www.gnu.org/licenses/gpl-3.0.en.html) | [`frontend/app`](./frontend/app/README.md) |
| Backend | [![npm](https://img.shields.io/npm/v/@openstapps/backend.svg?style=flat-square)](https://npmjs.com/package/@openstapps/backend) | [![license)](https://img.shields.io/npm/l/@openstapps/backend.svg?style=flat-square)](https://www.gnu.org/licenses/gpl-3.0.en.html) | [`backend/backend`](./backend/backend/README.md) |
| Proxy | [![npm](https://img.shields.io/npm/v/@openstapps/proxy.svg?style=flat-square)](https://npmjs.com/package/@openstapps/proxy) | [![license)](https://img.shields.io/npm/l/@openstapps/proxy.svg?style=flat-square)](https://www.gnu.org/licenses/gpl-3.0.en.html) | [`backend/proxy`](./backend/proxy/README.md) |
| Database | [![npm](https://img.shields.io/npm/v/@openstapps/database.svg?style=flat-square)](https://npmjs.com/package/@openstapps/database) | [![license)](https://img.shields.io/npm/l/@openstapps/database.svg?style=flat-square)](https://www.gnu.org/licenses/gpl-3.0.en.html) | [`backend/database`](./backend/database/README.md) |
### Libraries
| Name | Version | License | Readme |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| Core | [![npm](https://img.shields.io/npm/v/@openstapps/core.svg?style=flat-square)](https://npmjs.com/package/@openstapps/core) | [![license)](https://img.shields.io/npm/l/@openstapps/core.svg?style=flat-square)](https://www.gnu.org/licenses/gpl-3.0.en.html) | [`packages/core`](./packages/core/README.md) |
| API | [![npm](https://img.shields.io/npm/v/@openstapps/api.svg?style=flat-square)](https://npmjs.com/package/@openstapps/api) | [![license)](https://img.shields.io/npm/l/@openstapps/api.svg?style=flat-square)](https://www.gnu.org/licenses/gpl-3.0.en.html) | [`packages/api`](./packages/api/README.md) |
| API Plugin | [![npm](https://img.shields.io/npm/v/@openstapps/api-plugin.svg?style=flat-square)](https://npmjs.com/package/@openstapps/api-plugin) | [![license)](https://img.shields.io/npm/l/@openstapps/api-plugin.svg?style=flat-square)](https://www.gnu.org/licenses/gpl-3.0.en.html) | [`packages/api-plugin`](./packages/api-plugin/README.md) |
| Logger | [![npm](https://img.shields.io/npm/v/@openstapps/logger.svg?style=flat-square)](https://npmjs.com/package/@openstapps/logger) | [![license)](https://img.shields.io/npm/l/@openstapps/logger.svg?style=flat-square)](https://www.gnu.org/licenses/gpl-3.0.en.html) | [`packages/logger`](./packages/logger/README.md) |
| Core Tools | [![npm](https://img.shields.io/npm/v/@openstapps/core-tools.svg?style=flat-square)](https://npmjs.com/package/@openstapps/core-tools) | [![license)](https://img.shields.io/npm/l/@openstapps/core-tools.svg?style=flat-square)](https://www.gnu.org/licenses/gpl-3.0.en.html) | [`packages/core-tools`](./packages/core-tools/README.md) |
## Publishing
## Remote caching
Turbo supports remote caching, which massively speeds up build processes.
@@ -7,6 +32,7 @@ Turbo supports remote caching, which massively speeds up build processes.
### Connecting to the remote cache locally
`.env.local`
```dotenv
TURBO_API=http://example:3000
TURBO_TEAM=openstapps
@@ -16,11 +42,12 @@ TURBO_TOKEN=abc123
### Connecting to the remote cache in GitLab Pipelines
You will need to define
* `TURBO_API`
* `TURBO_TEAM`
* `TURBO_TOKEN`
Like you did locally as described in [this](https://turbo.build/repo/docs/ci/gitlabci#remote-caching)
guide.
- `TURBO_API`
- `TURBO_TEAM`
- `TURBO_TOKEN`
Like you did locally as described in [this](https://turbo.build/repo/docs/ci/gitlabci#remote-caching)
guide.
### Hosting a cache
@@ -29,10 +56,12 @@ Self-hosting via Docker is extremely simple, just follow
or in short:
`.env`
```dotenv
PORT=...
TURBO_TOKEN=...
```
```shell
docker run --env-file=.env -p 3000:3000 fox1t/turborepo-remote-cache
```
@@ -42,11 +71,11 @@ docker run --env-file=.env -p 3000:3000 fox1t/turborepo-remote-cache
#### Why is this package bloating the app?
```shell
pnpm why -P -r --filter @openstapps/app PACKAGE
pnpm why --prod -r --filter @openstapps/app PACKAGE
```
#### Licenses
```shell
pnpm licenses -P --filter PROJECT
pnpm licenses --prod --filter PROJECT
```

View File

@@ -1,4 +0,0 @@
.idea/
.git/
.vscode/
Dockerfile

View File

@@ -1,91 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
#DynamoDB Local files
.dynamodb/
########## end of https://github.com/github/gitignore/blob/master/Node.gitignore
# ignore ide files
.idea
.vscode
# ignore lib
lib
# ignore docs
docs

View File

@@ -1,168 +0,0 @@
image: registry.gitlab.com/openstapps/projectmanagement/node
default:
tags:
- performance
stages:
- build
- test
- audit
- publish
- deploy
build:
stage: build
script:
- npm ci
- npm run build
artifacts:
expire_in: 1 day
untracked: true
paths:
- node_modules/
unit:
stage: test
dependencies:
- build
script:
- npm run test-unit
coverage: '/Statements[^:]*\:[^:]*\s+([\d\.]+)%/'
artifacts:
expire_in: 6 month
reports:
coverage_report:
coverage_format: cobertura
path: coverage/cobertura-coverage.xml
integration:
image: registry.gitlab.com/openstapps/projectmanagement/builder
stage: test
dependencies:
- build
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker-compose -f integration-test.yml pull && docker-compose -f integration-test.yml up --abort-on-container-exit --exit-code-from apicli
tags:
- gitlab-org-docker
audit:
stage: audit
dependencies:
- build
script:
- npm audit --production
pages:
stage: deploy
script:
- npm run documentation
- mv docs/openapi public
only:
- master
artifacts:
paths:
- public
ci:
stage: test
dependencies:
- build
script:
- .gitlab/ci/testCIScripts.sh
# Anchor templates for publishing the image in the docker registry
# Automatically publishing for versions in tags (eg v1.0.0 as 1.0.0), master and develop
# Manual publishing for all other branches
.publish_template_auto: &publish_template_auto
image: registry.gitlab.com/openstapps/projectmanagement/builder
stage: publish
dependencies:
- build
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
script:
- echo "YOU SHOULD OVERRIDE THIS SECTION"
- exit 1
only:
- master
tags:
- secrecy
.publish_template_manual: &publish_template_manual
image: registry.gitlab.com/openstapps/projectmanagement/builder
stage: publish
dependencies:
- build
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
script:
- export CORE_VERSION=$(openstapps-projectmanagement get-used-version @openstapps/core)
- export IMAGETAG_BASE=$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME
- export IMAGETAG_CORE_VERSION=$IMAGETAG_BASE:core-$CORE_VERSION
- export IMAGETAG_LATEST=$IMAGETAG_BASE:latest
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t $IMAGETAG_LATEST -t $IMAGETAG_CORE_VERSION .
- docker push $IMAGETAG_BASE
except:
- /(^v[0-9]+\.[0-9]+\.[0-9]+$|^master$|^develop$)/
only:
- branches
when: manual
tags:
- secrecy
.publish_version_template: &publish_version_template
script:
- export CORE_VERSION=$(openstapps-projectmanagement get-used-version @openstapps/core)
- export VERSION=$(echo -n "$CI_COMMIT_REF_NAME" | cut -c 2-)
- export IMAGETAG_BASE=$CI_REGISTRY_IMAGE
- export IMAGETAG_CORE_VERSION=$IMAGETAG_BASE:core-$CORE_VERSION
- export IMAGETAG_VERSION=$IMAGETAG_BASE:$VERSION
- export IMAGETAG_LATEST=$IMAGETAG_BASE:latest
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t $IMAGETAG_LATEST -t $IMAGETAG_VERSION -t $IMAGETAG_CORE_VERSION .
- docker push $IMAGETAG_BASE
.publish_branch_template: &publish_branch_template
script:
- export CORE_VERSION=$(openstapps-projectmanagement get-used-version @openstapps/core)
- export IMAGETAG_BASE=$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME
- export IMAGETAG_CORE_VERSION=$IMAGETAG_BASE:core-$CORE_VERSION
- export IMAGETAG_LATEST=$IMAGETAG_BASE:latest
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t $IMAGETAG_LATEST -t $IMAGETAG_CORE_VERSION .
- docker push $IMAGETAG_BASE
# Jobs joining anchor templates with automatic publishing behaviour
# ! The jobname must end with ":" followed by the name for the registry branch
image:version:
<<: *publish_template_auto
<<: *publish_version_template
only:
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
image:master:
<<: *publish_template_auto
<<: *publish_branch_template
only:
- master
image:develop:
<<: *publish_template_auto
<<: *publish_branch_template
only:
- develop
# Jobs joining anchor templates with manual publishing behaviour
image:branch:
<<: *publish_template_manual

View File

@@ -1,8 +0,0 @@
#!/usr/bin/env sh
# script returns semantical versioning string linke 2.0.0 (if $1 is v2.0.0) or $1
if echo -n $1 | grep -Eq 'v[0-9]+\.[0-9]+\.[0-9]+'; then
echo $(echo -n "$1" | cut -c 2-);
else
echo $1;
fi

View File

@@ -1,29 +0,0 @@
#!/usr/bin/env sh
# test all CI scripts
SCRIPT_DIR=$(dirname "$0")
TAG_VERSION=$(sh $SCRIPT_DIR/getRegistryTag.sh "v1.0.0")
TAG_TEST=$(sh $SCRIPT_DIR/getRegistryTag.sh "TEST")
BRANCH_NAME=$(sh $SCRIPT_DIR/getRegistryBranch.sh "very:first:test")
# Leaving out pushAsLatestVersion.sh as its controll flow
# is based on the same condition as getRegistryTag.sh
if [ $TAG_VERSION != "1.0.0" ]; then
echo "ERROR in CI SCRIPT: $SCRIPT_DIR/getRegistryTag.sh"
return 1
fi
if [ $TAG_TEST != "TEST" ]; then
echo "ERROR in CI SCRIPT: $SCRIPT_DIR/getRegistryTag.sh"
return 2
fi
if [ $BRANCH_NAME != "test" ]; then
echo "ERROR in CI SCRIPT: $SCRIPT_DIR/getRegistryBranch.sh"
return 3
fi
return 0

View File

@@ -1,36 +0,0 @@
## Summary
(Summarize the bug encountered concisely)
## Steps to reproduce
(How one can reproduce the issue - this is very important)
## Example Project
(If possible, please create an example project here on GitLab.com that exhibits the problematic behaviour, and link to it here in the bug report)
(If you are using an older version of GitLab, this will also determine whether the bug has been fixed in a more recent version)
## Which version of the software did you use ?
(Version numbers of used software or commit references)
## What is the current bug behavior?
(What actually happens)
## What is the expected correct behavior?
(What you should see instead)
## Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)
## Possible fixes
(If you can, link to the line of code that might be responsible for the problem)
/label ~bug ~meeting

View File

@@ -1,17 +0,0 @@
## Description
(Describe the feature that you're requesting concisely)
## Explanation
(Explain why the feature is necessary)
## Mockups/Data
(If possible, provide mockups or examples of communication, which demonstrate the feature)
## Dependencies, issues to be resolved beforehand
(List issues or dependencies that need to be resolved before this feature can be implemented)
/label ~feature ~meeting

View File

@@ -1,3 +0,0 @@
{
"port": 9200
}

View File

@@ -1,10 +0,0 @@
# Ignore all files/folders by default
# See https://stackoverflow.com/a/29932318
/*
# Except these files/folders
!lib
!LICENSE
!package.json
!package-lock.json
!README.md
!src

View File

@@ -1,13 +1,14 @@
FROM registry.gitlab.com/openstapps/projectmanagement/node
FROM openstapps:workspace as pruned
USER root
RUN apk add --update python3 py3-pip make g++
RUN pnpm --filter @openstapps/backend --prod deploy /pruned
FROM registry.gitlab.com/openstapps/projectmanagement/node:v18
USER node
ADD --chown=node:node . /app
WORKDIR /app
RUN npm ci && npm run build
ENV NODE_ENV=production
COPY --chown=node:node --from=pruned pruned .
EXPOSE 3000
CMD ["node", "app"]
ENTRYPOINT ["node", "app.js"]

View File

@@ -1,9 +1,9 @@
version: '3'
services:
backend:
image: openstapps:backend
ports:
- '3000:3000'
build: .
environment:
STAPPS_LOG_LEVEL: '31'
STAPPS_EXIT_LEVEL: '8'
@@ -13,12 +13,12 @@ services:
ES_ADDR: 'http://elasticsearch:9200'
elasticsearch:
image: openstapps:database
ports:
- '9200:9200'
image: 'registry.gitlab.com/openstapps/database:latest'
apicli:
image: 'registry.gitlab.com/openstapps/api/cli:latest'
api-cli:
image: openstapps:api-cli
environment:
STAPPS_LOG_LEVEL: '31'
STAPPS_EXIT_LEVEL: '8'

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/backend",
"description": "A reference implementation for a StApps backend",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "AGPL-3.0-only",
"author": "André Bierlein <andre.mt.bierlein@gmail.com>",
@@ -17,8 +17,16 @@
],
"main": "lib/app.js",
"bin": "app.js",
"files": [
"app.js",
"lib",
"config",
"README.md",
"ROUTES.md"
],
"scripts": {
"build": "tsup",
"build": "tsup-node",
"build:docker": "docker build -t openstapps:backend .",
"dev": "tsup --watch --onSuccess \"pnpm run start\"",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
@@ -27,14 +35,24 @@
"start": "cross-env NODE_CONFIG_ENV=elasticsearch ALLOW_NO_TRANSPORT=true node app.js",
"start:debug": "cross-env STAPPS_LOG_LEVEL=31 NODE_CONFIG_ENV=elasticsearch ALLOW_NO_TRANSPORT=true node app.js",
"test": "pnpm run test:unit",
"test:integration": "docker-compose -f integration-test.yml pull && docker-compose -f integration-test.yml up --build --abort-on-container-exit --exit-code-from apicli",
"test:integration": "docker-compose -f integration-test.yml up --abort-on-container-exit --exit-code-from api-cli",
"test:unit": "cross-env NODE_CONFIG_ENV=elasticsearch ALLOW_NO_TRANSPORT=true STAPPS_LOG_LEVEL=0 mocha --exit"
},
"dependencies": {
"@elastic/elasticsearch": "8.4.0",
"@openstapps/core": "workspace:*",
"@openstapps/core-tools": "workspace:*",
"@openstapps/es-mapping-generator": "workspace:*",
"@openstapps/logger": "workspace:*",
"@types/body-parser": "1.19.2",
"@types/cors": "2.8.13",
"@types/express": "4.17.17",
"@types/geojson": "1.0.6",
"@types/node": "18.15.3",
"@types/node-cron": "3.0.7",
"@types/nodemailer": "6.4.7",
"@types/promise-queue": "2.2.0",
"@types/uuid": "8.3.4",
"body-parser": "1.20.2",
"cors": "2.8.5",
"cosmiconfig": "8.1.3",
@@ -50,38 +68,25 @@
"nodemailer": "6.9.1",
"prom-client": "14.1.1",
"promise-queue": "2.2.5",
"ts-node": "10.9.1",
"uuid": "8.3.2"
},
"devDependencies": {
"@openstapps/es-mapping-generator": "workspace:*",
"@openstapps/eslint-config": "workspace:*",
"@openstapps/prettier-config": "workspace:*",
"@openstapps/tsconfig": "workspace:*",
"@testdeck/mocha": "0.3.3",
"@types/body-parser": "1.19.2",
"@types/chai": "4.3.5",
"@types/chai-as-promised": "7.1.5",
"@types/config": "3.3.0",
"@types/cors": "2.8.13",
"@types/express": "4.17.17",
"@types/geojson": "1.0.6",
"@types/mocha": "10.0.1",
"@types/morgan": "1.9.4",
"@types/node": "18.15.3",
"@types/node-cron": "3.0.7",
"@types/nodemailer": "6.4.7",
"@types/promise-queue": "2.2.0",
"@types/sinon": "10.0.14",
"@types/sinon-express-mock": "1.3.9",
"@types/supertest": "2.0.12",
"@types/uuid": "8.3.4",
"c8": "7.14.0",
"chai": "4.3.7",
"chai-as-promised": "7.1.1",
"conventional-changelog-cli": "2.2.2",
"cross-env": "7.0.3",
"esmock": "2.2.3",
"get-port": "5.1.1",
"mocha": "10.2.0",
"mocked-env": "1.3.5",
@@ -89,6 +94,7 @@
"sinon": "15.0.4",
"sinon-express-mock": "2.2.1",
"supertest": "6.3.3",
"ts-node": "10.9.1",
"tsup": "6.7.0",
"typescript": "4.9.5"
},

View File

@@ -0,0 +1,12 @@
{
"extends": ["//"],
"pipeline": {
"test:integration": {
"dependsOn": [
"@openstapps/database#build:docker",
"@openstapps/backend#build:docker",
"@openstapps/api-cli#build:docker"
]
}
}
}

View File

@@ -1,55 +0,0 @@
image: registry.gitlab.com/openstapps/projectmanagement/builder
default:
tags:
- docker
stages:
- test
- publish
image build:
stage: test
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
script:
- export CI_ES_VERSION=$(sed -n '/FROM elasticsearch/p' Dockerfile | cut -d ":" -f 2)
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE:$CI_ES_VERSION .
- docker tag $CI_REGISTRY_IMAGE:$CI_ES_VERSION $CI_REGISTRY_IMAGE:latest
only:
- branches
except:
- main
- develop
main:
stage: publish
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
script:
- export CI_ES_VERSION=$(sed -n '/FROM elasticsearch/p' Dockerfile | cut -d ":" -f 2)
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE:$CI_ES_VERSION .
- docker tag $CI_REGISTRY_IMAGE:$CI_ES_VERSION $CI_REGISTRY_IMAGE:latest
- docker push $CI_REGISTRY_IMAGE:latest
- docker push $CI_REGISTRY_IMAGE:$CI_ES_VERSION
only:
- main
develop:
stage: publish
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
only:
- develop

View File

@@ -1,7 +1,3 @@
# Open StApps Monorepo
========
# Database docker image
[![pipeline status](https://img.shields.io/gitlab/pipeline/openstapps/database.svg?style=flat-square)](https://gitlab.com/openstapps/database/commits/main)

View File

@@ -0,0 +1,9 @@
{
"name": "@openstapps/database",
"version": "3.0.0",
"license": "AGPL-3.0-only",
"scripts": {
"build:docker": "docker build -t openstapps:database ."
},
"private": true
}

View File

@@ -1,96 +0,0 @@
# Logs
logs/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov/
# Coverage directory used by tools like istanbul
coverage/
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components/
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm/
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
#DynamoDB Local files
.dynamodb/
########## end of https://github.com/github/gitignore/blob/master/Node.gitignore
# ignore ide files
.idea/
.vscode/
# ignore lib
lib/
# ignore docs
docs/
# Certificates
*.crt
*.key
test/certs

View File

@@ -1,91 +0,0 @@
image: registry.gitlab.com/openstapps/projectmanagement/node
stages:
- build
- test
- audit
- publish
before_script:
- npm ci
build:
stage: build
script:
- npm run build
artifacts:
paths:
- lib
unit:
stage: test
script:
- npm test
coverage: '/Statements[^:]*\:[^:]*\s+([\d\.]+)%/'
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage/cobertura-coverage.xml
audit:
allow_failure: true
except:
- schedules
script:
- npm audit
stage: audit
scheduled-audit:
only:
- schedules
script:
- npm audit --audit-level=high
stage: audit
docker image build:
image: registry.gitlab.com/openstapps/projectmanagement/builder
stage: test
dependencies:
- build
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
script:
- docker build -t $CI_REGISTRY_IMAGE/$REGISTRY_BRANCH$CI_COMMIT_REF_NAME:latest .
tags:
- docker
docker image:
image: registry.gitlab.com/openstapps/projectmanagement/builder
stage: publish
dependencies:
- build
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
script:
- export VERSION=$(echo -n "$CI_COMMIT_REF_NAME" | cut -c 2-)
- export IMAGETAG_BASE=$CI_REGISTRY_IMAGE
- export IMAGETAG_VERSION=$IMAGETAG_BASE:$VERSION
- export IMAGETAG_LATEST=$IMAGETAG_BASE:latest
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t $IMAGETAG_VERSION -t $IMAGETAG_LATEST .
- docker push $IMAGETAG_BASE
only:
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
tags:
- docker
pages:
artifacts:
paths:
- public
only:
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
script:
- npm run documentation
- mv docs public
stage: publish

View File

@@ -1,32 +0,0 @@
## Summary
(Summarize the bug encountered concisely)
## Steps to reproduce
(How one can reproduce the issue - this is very important)
## Example Project
(If possible, please create an example project here on GitLab.com that exhibits the problematic behaviour, and link to it here in the bug report)
(If you are using an older version of GitLab, this will also determine whether the bug has been fixed in a more recent version)
## What is the current bug behavior?
(What actually happens)
## What is the expected correct behavior?
(What you should see instead)
## Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)
## Possible fixes
(If you can, link to the line of code that might be responsible for the problem)
/label ~meeting ~bug

View File

@@ -1,13 +0,0 @@
## Description
(Describe the feature that you're requesting concisely)
## Explanation
(Explain why the feature is necessary)
## Dependencies, issues to be resolved beforehand
(List issues or dependencies that need to be resolved before this feature can be implemented)
/label ~meeting ~feature

View File

@@ -1,10 +0,0 @@
# Ignore all files/folders by default
# See https://stackoverflow.com/a/29932318
/*
# Except these files/folders
!lib
!LICENSE
!package.json
!package-lock.json
!README.md
!src

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/proxy",
"description": "NGINX proxy that is dynamically configured by a Node.js script",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "AGPL-3.0-only",
"repository": "git@gitlab.com:openstapps/proxy.git",
@@ -15,8 +15,21 @@
"Rainer Killinger <mail-openstapps@killinger.co>"
],
"bin": "app.js",
"files": [
"app.js",
"lib",
"bin",
"config",
"fixtures",
"systemd",
"Dockerfile",
".dockerignore",
"nginx.conf",
"nginx.conf.template",
"README.md"
],
"scripts": {
"build": "tsup --dts",
"build": "tsup-node --dts",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
"lint": "eslint --ext .ts src/",
@@ -37,8 +50,8 @@
"typescript": "4.9.5"
},
"devDependencies": {
"@openstapps/api-cli": "workspace:*",
"@openstapps/eslint-config": "workspace:*",
"@openstapps/nyc-config": "workspace:*",
"@openstapps/prettier-config": "workspace:*",
"@openstapps/tsconfig": "workspace:*",
"@types/chai": "4.3.5",

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/backend-config",
"description": "Backend Configuration for OpenStApps",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"author": "Thea Schöbl <dev@theaninova.de>",

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/eslint-config",
"description": "A collection of configuration base files for StApps projects. Just an (unused) experiment for now.",
"version": "2.1.0",
"version": "3.0.0",
"type": "commonjs",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/eslint-config.git",
@@ -10,6 +10,10 @@
"Rainer Killinger <mail-openstapps@killinger.co>"
],
"main": "index.js",
"files": [
"index.js",
"README.md"
],
"devDependencies": {
"@openstapps/tsconfig": "workspace:*",
"@types/node": "18.15.3",

View File

@@ -1,18 +0,0 @@
{
"all": true,
"branches": 90,
"check-coverage": true,
"exclude": [],
"extension": [".ts"],
"functions": 95,
"include": ["src/**/*.ts"],
"lines": 95,
"per-file": true,
"reporter": [
"cobertura",
"html",
"text-summary"
],
"require": ["ts-node/register"],
"statements": 95
}

View File

@@ -1,10 +0,0 @@
{
"name": "@openstapps/nyc-config",
"description": "The nyc coverage reporter config for the openstapps project",
"version": "2.1.0",
"type": "commonjs",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/eslint-config.git",
"author": "Thea Schöbl",
"main": "index.json"
}

View File

@@ -1,91 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
#DynamoDB Local files
.dynamodb/
########## end of https://github.com/github/gitignore/blob/master/Node.gitignore
# ignore ide files
.idea
.vscode
# ignore lib
lib
# ignore docs
docs

View File

@@ -1,9 +0,0 @@
# Ignore all files/folders by default
# See https://stackoverflow.com/a/29932318
/*
# Except these files/folders
!index.json
!LICENSE
!package.json
!package-lock.json
!README.md

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/prettier-config",
"description": "StApps Prettier Config",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/prettier-config.git",
@@ -10,6 +10,10 @@
"Rainer Killinger <mail-openstapps@killinger.co>"
],
"main": "index.json",
"files": [
"index.json",
"README.md"
],
"scripts": {
"changelog": "npx conventional-changelog-cli -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md && git commit -m 'docs: update changelog'",
"postversion": "npm run changelog",

View File

@@ -1,91 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
#DynamoDB Local files
.dynamodb/
########## end of https://github.com/github/gitignore/blob/master/Node.gitignore
# ignore ide files
.idea
.vscode
# ignore lib
lib
# ignore docs
docs

View File

@@ -1,32 +0,0 @@
## Summary
(Summarize the bug encountered concisely)
## Steps to reproduce
(How one can reproduce the issue - this is very important)
## Example Project
(If possible, please create an example project here on GitLab.com that exhibits the problematic behaviour, and link to it here in the bug report)
(If you are using an older version of GitLab, this will also determine whether the bug has been fixed in a more recent version)
## What is the current bug behavior?
(What actually happens)
## What is the expected correct behavior?
(What you should see instead)
## Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)
## Possible fixes
(If you can, link to the line of code that might be responsible for the problem)
/label ~meeting

View File

@@ -1,13 +0,0 @@
## Description
(Describe the feature that you're requesting concisely)
## Explanation
(Explain why the feature is necessary)
## Dependencies, issues to be resolved beforehand
(List issues or dependencies that need to be resolved before this feature can be implemented)
/label ~meeting

View File

@@ -1,12 +0,0 @@
# Ignore all files/folders by default
# See https://stackoverflow.com/a/29932318
/*
# Except these files/folders
!lib
lib/tsconfig.tsbuildinfo
!LICENSE
!package.json
!package-lock.json
!README.md
!src
!templates

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/projectmanagement",
"description": "Main documentation and scripts for maintenance.",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/projectmanagement.git",
@@ -18,8 +18,16 @@
"bin": {
"openstapps-projectmanagement": "app.js"
},
"files": [
"app.js",
"lib",
"images",
"project-docs",
"templates",
"renovate.json"
],
"scripts": {
"build": "tsup --dts",
"build": "tsup-node --dts",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
"lint": "eslint --ext .ts src/",
@@ -32,7 +40,7 @@
"@slack/web-api": "6.8.1",
"commander": "10.0.0",
"date-fns": "2.30.0",
"glob": "10.2.6",
"glob": "10.2.7",
"mustache": "4.2.0"
},
"devDependencies": {

View File

@@ -1,10 +1,13 @@
{
"name": "@openstapps/tsconfig",
"description": "The tsconfig for the openstapps project",
"version": "2.1.0",
"version": "3.0.0",
"type": "commonjs",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/eslint-config.git",
"author": "Thea Schöbl",
"main": "tsconfig.json"
"main": "tsconfig.json",
"files": [
"tsconfig.json"
]
}

View File

@@ -1,8 +0,0 @@
# Ignore everything
**
# Allow files and directories
!/lib/**
!/node_modules/**
!/LICENSE
!package.json

View File

@@ -1,91 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
#DynamoDB Local files
.dynamodb/
########## end of https://github.com/github/gitignore/blob/master/Node.gitignore
# ignore ide files
.idea
.vscode
# ignore lib
lib
# ignore docs
docs

View File

@@ -1,32 +0,0 @@
## Summary
(Summarize the bug encountered concisely)
## Steps to reproduce
(How one can reproduce the issue - this is very important)
## Example Project
(If possible, please create an example project here on GitLab.com that exhibits the problematic behaviour, and link to it here in the bug report)
(If you are using an older version of GitLab, this will also determine whether the bug has been fixed in a more recent version)
## What is the current bug behavior?
(What actually happens)
## What is the expected correct behavior?
(What you should see instead)
## Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)
## Possible fixes
(If you can, link to the line of code that might be responsible for the problem)
/label ~meeting

View File

@@ -1,13 +0,0 @@
## Description
(Describe the feature that you're requesting concisely)
## Explanation
(Explain why the feature is necessary)
## Dependencies, issues to be resolved beforehand
(List issues or dependencies that need to be resolved before this feature can be implemented)
/label ~meeting

View File

@@ -1,12 +0,0 @@
# Ignore all files/folders by default
# See https://stackoverflow.com/a/29932318
/*
# Except these files/folders
!docs
!lib
lib/tsconfig.tsbuildinfo
!LICENSE
!package.json
!package-lock.json
!README.md
!src

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/minimal-connector",
"description": "This is a minimal connector which serves as an example",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/minimal-connector.git",
@@ -14,8 +14,14 @@
],
"main": "lib/cli.js",
"types": "lib/index.d.ts",
"files": [
"app.js",
"lib",
"README.md",
"Dockerfile"
],
"scripts": {
"build": "tsup --dts",
"build": "tsup-node --dts",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
"lint": "eslint --ext .ts src/",

View File

@@ -1 +0,0 @@
.idea

View File

@@ -1,91 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
#DynamoDB Local files
.dynamodb/
########## end of https://github.com/github/gitignore/blob/master/Node.gitignore
# ignore ide files
.idea
.vscode
# ignore lib
lib
# ignore docs
docs

View File

@@ -1,10 +0,0 @@
# Ignore all files/folders by default
# See https://stackoverflow.com/a/29932318
/*
# Except these files/folders
!lib
!LICENSE
!package.json
!package-lock.json
!README.md
!src

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/minimal-plugin",
"description": "Minimal Plugin",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"author": "Thea Schöbl",
@@ -10,8 +10,14 @@
"Rainer Killinger <mail-openstapps@killinger.co>"
],
"bin": "app.js",
"files": [
"app.js",
"lib",
"README.md",
"Dockerfile"
],
"scripts": {
"build": "tsup --dts",
"build": "tsup-node --dts",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
"lint": "eslint --ext .ts src/",

View File

@@ -1,4 +0,0 @@
#!/usr/bin/env sh
# script returns string with everything after the last colon of $1 input
echo -n $1 | grep -oE '[^:]+$'

View File

@@ -1,7 +0,0 @@
#!/usr/bin/env sh
# If this is a pipeline of a version tag, also push this version
# as latest to the registry alias $2:latest
if echo -n $1 | grep -Eq 'v[0-9]+\.[0-9]+\.[0-9]+'; then
docker push $2:latest;
fi

View File

@@ -1,32 +0,0 @@
## Summary
(Summarize the bug encountered concisely)
## Steps to reproduce
(How one can reproduce the issue - this is very important)
## Example Project
(If possible, please create an example project here on GitLab.com that exhibits the problematic behaviour, and link to it here in the bug report)
(If you are using an older version of GitLab, this will also determine whether the bug has been fixed in a more recent version)
## What is the current bug behavior?
(What actually happens)
## What is the expected correct behavior?
(What you should see instead)
## Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)
## Possible fixes
(If you can, link to the line of code that might be responsible for the problem)
/label ~bug ~meeting

View File

@@ -1,17 +0,0 @@
## Description
(Describe the feature that you're requesting concisely)
## Explanation
(Explain why the feature is necessary)
## Mockups/Screenshots
(If possible, provide mockups or screenshots, which demonstrate the feature)
## Dependencies, issues to be resolved beforehand
(List issues or dependencies that need to be resolved before this feature can be implemented)
/label ~feature ~meeting

View File

@@ -1,17 +0,0 @@
## What needs to be changed?
??? - Describe use case!
## How is the current state not sufficient?
???
## Which changes are necessary?
???
## Do the proposed changes impact current use cases?
???
/label ~improvement ~meeting

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/app",
"description": "The generic app tailored to fulfill needs of German universities, written using Ionic Framework.",
"version": "2.1.0",
"version": "3.0.0",
"license": "GPL-3.0-only",
"author": "Karl-Philipp Wulfert <krlwlfrt@gmail.com>",
"contributors": [
@@ -14,10 +14,10 @@
],
"scripts": {
"analyze": "webpack-bundle-analyzer www/stats.json",
"build": "ng build",
"build": "ng build --configuration=production",
"build:analyze": "npm run build:stats && npm run analyze",
"build:android": "ionic capacitor build android --no-open && cd android && ./gradlew clean assembleDebug && cd ..",
"build:prod": "ng build --configuration=production",
"build:dev": "ng build",
"build:stats": "ng build --configuration=production --stats-json",
"changelog": "conventional-changelog -p angular -i src/assets/about/CHANGELOG.md -s -r 0",
"check-icons": "ts-node scripts/check-icon-correctness.ts",
@@ -37,7 +37,7 @@
"lint:fix": "eslint --fix -c .eslintrc.json --ignore-path .eslintignore --ext .ts,.html src/",
"minify-icons": "ts-node scripts/minify-icon-font.ts",
"ng": "ng",
"postinstall": "npx jetify",
"postinstall": "jetify || echo \"skipping jetify in production mode\"",
"push": "git push && git push origin \"v$npm_package_version\"",
"resources:android": "cordova-res android --skip-config --copy",
"resources:ios": "cordova-res ios --skip-config --copy",
@@ -147,7 +147,7 @@
"eslint-plugin-prettier": "4.2.1",
"eslint-plugin-unicorn": "45.0.2",
"fontkit": "2.0.2",
"glob": "10.2.6",
"glob": "10.2.7",
"is-docker": "2.2.1",
"jasmine-core": "4.5.0",
"jasmine-spec-reporter": "7.0.0",

View File

@@ -16,7 +16,6 @@ import {Injectable} from '@angular/core';
import {Client} from '@openstapps/api';
import {SCAppConfiguration, SCIndexResponse} from '@openstapps/core';
import {NGXLogger} from 'ngx-logger';
import packageJson from '../../../../package.json';
import {environment} from '../../../environments/environment';
import {StAppsWebHttpClient} from '../data/stapps-web-http-client.provider';
import {StorageProvider} from '../storage/storage.provider';
@@ -55,7 +54,7 @@ export class ConfigProvider {
/**
* Version of the @openstapps/core package that app is using
*/
scVersion = packageJson.dependencies['@openstapps/core'];
scVersion = environment.sc_version;
/**
* First session indicator (config not found in storage)

View File

@@ -22,6 +22,7 @@ export const environment = {
app_host: 'mobile.app.uni-frankfurt.de',
custom_url_scheme: 'de.anyschool.app',
backend_version: '3.0.0',
sc_version: '1.0.1',
production: true,
};

View File

@@ -22,6 +22,7 @@ export const environment = {
app_host: 'mobile.app.uni-frankfurt.de',
custom_url_scheme: 'de.anyschool.app',
backend_version: '3.0.0',
sc_version: '1.0.1',
production: false,
};

View File

@@ -1,28 +0,0 @@
{
"scripts": {
"build": "tsup",
"format:": "prettier .",
"format:fix": "prettier . --write",
"lint": "eslint --ext .ts src/",
"lint:fix": "eslint --ext .ts src/",
"test": "nyc mocha 'test/**/*.spec.ts'"
},
"nyc": {
"extends": "@openstapps/nyc-config"
},
"tsup": {
"entry": [
"src/index.ts"
],
"sourcemap": true,
"clean": true,
"format": "esm",
"outDir": "lib"
},
"prettier": "@openstapps/prettier-config",
"eslintConfig": {
"extends": [
"@openstapps"
]
}
}

View File

@@ -1,8 +1,10 @@
{
"name": "@openstapps/openstapps",
"version": "2.1.0",
"version": "3.0.0",
"scripts": {
"build": "dotenv -c -- turbo run build",
"build:docker-workspace": "docker build -t openstapps:workspace .",
"build:full": "dotenv -c -- turbo run syncpack build lint format",
"dev": "dotenv -c -- turbo run dev",
"docs": "dotenv -c -- turbo run docs && typedoc",
"format": "dotenv -c -- turbo run format",
@@ -13,18 +15,18 @@
"syncpack": "syncpack list-mismatches && syncpack lint-semver-ranges",
"syncpack:fix": "syncpack format && syncpack fix-mismatches",
"test": "dotenv -c -- turbo run test --filter=!@openstapps/app && node coverage.mjs",
"turboify-pipeline": "pnpm build && pnpm run syncpack && pnpm lint && pnpm format && pnpm test && pnpm run docs"
"test:integration": "dotenv -c -- turbo run test:integration",
"turboify-pipeline": "node deploy.mjs backend,api-cli,database && pnpm build:full && pnpm test && pnpm run docs"
},
"devDependencies": {
"@changesets/cli": "2.26.1",
"cobertura-merge": "1.0.4",
"deepmerge": "4.3.1",
"dotenv-cli": "7.2.1",
"glob": "10.2.6",
"package-sync-cli": "1.3.2",
"syncpack": "10.1.0",
"turbo": "1.10.0",
"typedoc": "0.24.7",
"glob": "10.2.7",
"syncpack": "10.5.1",
"turbo": "1.10.3",
"typedoc": "0.24.8",
"typescript": "4.9.5"
}
}

View File

@@ -1,8 +1,14 @@
FROM registry.gitlab.com/openstapps/projectmanagement/node
FROM openstapps:workspace as pruned
ADD . /app
WORKDIR /app
USER root
RUN pnpm --filter @openstapps/api-cli --prod deploy /pruned
ENTRYPOINT ["node", "lib/cli.js"]
FROM registry.gitlab.com/openstapps/projectmanagement/node:v18
USER node
ENV NODE_ENV=production
COPY --chown=node:node --from=pruned pruned .
ENTRYPOINT ["node", "app.js"]
CMD ["--help"]

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/api-cli",
"description": "CLI client for @openstapps/api",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/api.git",
@@ -18,25 +18,26 @@
"bin": {
"openstapps-api": "app.js"
},
"files": [
"app.js",
"lib",
"README.md"
],
"scripts": {
"build": "tsup",
"build": "tsup-node",
"build:docker": "docker build -t openstapps:api-cli .",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
"lint": "tsc --noEmit && eslint --ext .ts src/",
"lint:fix": "eslint --fix --ext .ts src/",
"test": "c8 mocha --exit"
},
"devDependencies": {
"dependencies": {
"@openstapps/api": "workspace:*",
"@openstapps/core": "workspace:*",
"@openstapps/core-tools": "workspace:*",
"@openstapps/eslint-config": "workspace:*",
"@openstapps/logger": "workspace:*",
"@openstapps/prettier-config": "workspace:*",
"@openstapps/tsconfig": "workspace:*",
"@types/chai": "4.3.5",
"@types/chai-as-promised": "7.1.5",
"@types/chai-spies": "1.0.3",
"@types/cli-progress": "3.11.0",
"@types/express": "4.17.17",
"@types/fs-extra": "9.0.13",
@@ -44,22 +45,26 @@
"@types/mocha": "10.0.1",
"@types/node": "18.15.3",
"@types/wait-on": "5.3.1",
"cli-progress": "3.12.0",
"commander": "10.0.0",
"fs-extra": "10.1.0",
"wait-on": "6.0.1"
},
"devDependencies": {
"@openstapps/prettier-config": "workspace:*",
"@openstapps/tsconfig": "workspace:*",
"@types/chai": "4.3.5",
"@types/chai-as-promised": "7.1.5",
"@types/chai-spies": "1.0.3",
"c8": "7.14.0",
"chai": "4.3.7",
"chai-as-promised": "7.1.1",
"chai-spies": "1.0.0",
"cli-progress": "3.12.0",
"commander": "10.0.0",
"fs-extra": "10.1.0",
"mocha": "10.2.0",
"nock": "13.3.1",
"ts-node": "10.9.1",
"tsup": "6.7.0",
"typescript": "4.9.5",
"wait-on": "6.0.1"
},
"peerDependencies": {
"@openstapps/core": "workspace:*"
"typescript": "4.9.5"
},
"tsup": {
"entry": [

View File

@@ -17,7 +17,7 @@ import {Logger} from '@openstapps/logger';
import {Command} from 'commander';
import {readFileSync} from 'fs';
import path from 'path';
import {URL} from 'url';
import {fileURLToPath, URL} from 'url';
import waitOn from 'wait-on';
import {HttpClient} from '@openstapps/api';
import {copy} from './copy.js';
@@ -29,7 +29,9 @@ process.on('unhandledRejection', async error => {
});
// eslint-disable-next-line unicorn/prefer-module
const packageJson = JSON.parse(readFileSync(path.join(__dirname, '..', 'package.json')).toString());
const packageJson = JSON.parse(
readFileSync(path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'package.json')).toString(),
);
const client = new HttpClient();
const commander = new Command();

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/api-plugin",
"description": "Node.js library to interact with the StApps backend service",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/api.git",
@@ -17,8 +17,12 @@
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"files": [
"lib",
"README.md"
],
"scripts": {
"build": "tsup --dts",
"build": "tsup-node --dts",
"docs": "typedoc --json ./docs/docs.json --options ../../typedoc.base.json src/index.ts",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
@@ -57,7 +61,7 @@
"nock": "13.3.1",
"ts-node": "10.9.1",
"tsup": "6.7.0",
"typedoc": "0.24.7",
"typedoc": "0.24.8",
"typescript": "4.9.5"
},
"peerDependencies": {

View File

@@ -1,124 +0,0 @@
image: registry.gitlab.com/openstapps/projectmanagement/node
default:
tags:
- performance
before_script:
- npm ci
stages:
- build
- test
- audit
- publish
- deploy
build:
stage: build
script:
- npm run build
artifacts:
paths:
- lib
package:
dependencies:
- build
tags:
- secrecy
stage: publish
script:
- echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
- npm publish
only:
- /^v[0-9]+.[0-9]+.[0-9]+$/
artifacts:
paths:
- lib
audit:
stage: audit
script:
- npm audit
allow_failure: true
except:
- schedules
scheduled-audit:
stage: audit
script:
- npm audit --audit-level=high
only:
- schedules
unit:
stage: test
script:
- npm test
coverage: '/Statements[^:]*\:[^:]*\s+([\d\.]+)%/'
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage/cobertura-coverage.xml
pages:
stage: deploy
script:
- npm run documentation
- mv docs public
artifacts:
paths:
- public
only:
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
docker image:
image: registry.gitlab.com/openstapps/projectmanagement/builder:latest
dependencies:
- build
stage: publish
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
script:
- export VERSION=$(node -p "require('./package.json').version")
- export CORE_VERSION=$(openstapps-projectmanagement get-used-version @openstapps/core)
- export IMAGETAG_BASE=$CI_REGISTRY_IMAGE/cli
- export IMAGETAG_CORE_VERSION=$IMAGETAG_BASE:core-$CORE_VERSION
- export IMAGETAG_VERSION=$IMAGETAG_BASE:$VERSION
- export IMAGETAG_LATEST=$IMAGETAG_BASE:latest
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t $IMAGETAG_LATEST -t $IMAGETAG_VERSION -t $IMAGETAG_CORE_VERSION .
- docker push $IMAGETAG_BASE
tags:
- secrecy
only:
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
branch image:
image: registry.gitlab.com/openstapps/projectmanagement/builder:latest
stage: publish
dependencies:
- build
artifacts:
untracked: true
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
script:
- export IMAGETAG_BASE=$CI_REGISTRY_IMAGE/cli
- export IMAGETAG_BRANCH=$IMAGETAG_BASE:$CI_COMMIT_REF_SLUG
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t $IMAGETAG_BRANCH .
- docker push $IMAGETAG_BASE
except:
- /(^v[0-9]+\.[0-9]+\.[0-9]+$|^master$|^develop$)/
only:
- branches
when: manual
tags:
- secrecy

View File

@@ -1,32 +0,0 @@
## Summary
(Summarize the bug encountered concisely)
## Steps to reproduce
(How one can reproduce the issue - this is very important)
## Example Project
(If possible, please create an example project here on GitLab.com that exhibits the problematic behaviour, and link to it here in the bug report)
(If you are using an older version of GitLab, this will also determine whether the bug has been fixed in a more recent version)
## What is the current bug behavior?
(What actually happens)
## What is the expected correct behavior?
(What you should see instead)
## Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)
## Possible fixes
(If you can, link to the line of code that might be responsible for the problem)
/label ~meeting

View File

@@ -1,13 +0,0 @@
## Description
(Describe the feature that you're requesting concisely)
## Explanation
(Explain why the feature is necessary)
## Dependencies, issues to be resolved beforehand
(List issues or dependencies that need to be resolved before this feature can be implemented)
/label ~meeting

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/api",
"description": "Node.js library to interact with the StApps backend service",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/api.git",
@@ -17,8 +17,12 @@
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"files": [
"lib",
"README.md"
],
"scripts": {
"build": "tsup --dts",
"build": "tsup-node --dts",
"docs": "typedoc --json ./docs/docs.json --options ../../typedoc.base.json src/index.ts",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
@@ -40,7 +44,6 @@
"@types/chai-spies": "1.0.3",
"@types/mocha": "10.0.1",
"@types/traverse": "0.6.32",
"undici": "5.22.1",
"c8": "7.14.0",
"chai": "4.3.7",
"chai-as-promised": "7.1.1",
@@ -51,8 +54,9 @@
"traverse": "0.6.7",
"ts-node": "10.9.1",
"tsup": "6.7.0",
"typedoc": "0.24.7",
"typescript": "4.9.5"
"typedoc": "0.24.8",
"typescript": "4.9.5",
"undici": "5.22.1"
},
"peerDependencies": {
"@openstapps/core": "workspace:*"

View File

@@ -1,11 +1,14 @@
{
"name": "@openstapps/collection-utils",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"main": "lib/index.js",
"files": [
"lib"
],
"scripts": {
"build": "tsup --dts",
"build": "tsup-node --dts",
"docs": "typedoc --json ./docs/docs.json --options ../../typedoc.base.json src/index.ts",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
@@ -25,7 +28,7 @@
"mocha": "10.2.0",
"ts-node": "10.9.1",
"tsup": "6.7.0",
"typedoc": "0.24.7",
"typedoc": "0.24.8",
"typescript": "4.9.5"
},
"tsup": {

View File

@@ -1,98 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
.DS_Store
# Schema generation data
Diagram-*.svg
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
#DynamoDB Local files
.dynamodb/
########## end of https://github.com/github/gitignore/blob/master/Node.gitignore
# ignore ide files
.idea
.vscode
# ignore lib directory
lib/
# ignore docs directory
docs/
# ignore openapi resources
openapi/

View File

@@ -1,87 +0,0 @@
image: registry.gitlab.com/openstapps/projectmanagement/node
before_script:
- npm ci
stages:
- build
- test
- audit
- deploy
build:
stage: build
script:
- npm run build
artifacts:
paths:
- lib
test:
stage: test
script:
- npm test
audit:
stage: audit
script:
- npm audit
allow_failure: true
except:
- schedules
scheduled-audit:
stage: audit
script:
- npm audit --audit-level=high
only:
- schedules
openapi:
dependencies:
- build
stage: test
script:
- npm install @openstapps/core
- node lib/cli.js openapi node_modules/@openstapps/core/lib openapi
- NUMBER_OF_LINES=$(cat openapi/openapi.json | wc -l)
- if [ "$NUMBER_OF_LINES" -lt 100 ]; then exit 1; fi
artifacts:
paths:
- openapi/openapi.json
package:
dependencies:
- build
tags:
- secrecy
stage: deploy
script:
- echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
- npm publish
only:
- /^v[0-9]+.[0-9]+.[0-9]+$/
artifacts:
paths:
- lib
uml:
dependencies:
- build
stage: test
services:
- name: registry.gitlab.com/openstapps/core-tools:latest
alias: plantuml
script:
- node lib/cli.js plantuml test/model http://plantuml:8080 --showProperties --showOptionalProperties --showInheritedProperties --showEnumValues --showAssociations --showInheritance --excludeExternals
pages:
stage: deploy
script:
- npm run documentation
- mv docs public
only:
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
artifacts:
paths:
- public

View File

@@ -1,32 +0,0 @@
## Summary
(Summarize the bug encountered concisely)
## Steps to reproduce
(How one can reproduce the issue - this is very important)
## Example Project
(If possible, please create an example project here on GitLab.com that exhibits the problematic behaviour, and link to it here in the bug report)
(If you are using an older version of GitLab, this will also determine whether the bug has been fixed in a more recent version)
## What is the current bug behavior?
(What actually happens)
## What is the expected correct behavior?
(What you should see instead)
## Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)
## Possible fixes
(If you can, link to the line of code that might be responsible for the problem)
/label ~meeting

View File

@@ -1,13 +0,0 @@
## Description
(Describe the feature that you're requesting concisely)
## Explanation
(Explain why the feature is necessary)
## Dependencies, issues to be resolved beforehand
(List issues or dependencies that need to be resolved before this feature can be implemented)
/label ~meeting

View File

@@ -1,12 +0,0 @@
# Ignore all files/folders by default
# See https://stackoverflow.com/a/29932318
/*
# Except these files/folders
!lib
lib/tsconfig.tsbuildinfo
!LICENSE
!package.json
!package-lock.json
!README.md
!resources
!src

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/core-tools",
"description": "Tools to convert and validate StAppsCore",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/core-tools.git",
@@ -25,8 +25,14 @@
"bin": {
"openstapps-core-tools": "app.js"
},
"files": [
"app.js",
"lib",
"README.md",
"Dockerfile"
],
"scripts": {
"build": "tsup --dts",
"build": "tsup-node --dts",
"docs": "typedoc --json ./docs/docs.json --options ../../typedoc.base.json src/index.ts",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
@@ -48,7 +54,7 @@
"del": "6.1.1",
"flatted": "3.2.7",
"fs-extra": "10.1.0",
"glob": "10.2.6",
"glob": "10.2.7",
"got": "12.6.0",
"humanize-string": "3.0.0",
"json-schema": "0.4.0",
@@ -61,7 +67,6 @@
},
"devDependencies": {
"@openstapps/eslint-config": "workspace:*",
"@openstapps/nyc-config": "workspace:*",
"@openstapps/prettier-config": "workspace:*",
"@openstapps/tsconfig": "workspace:*",
"@types/chai": "4.3.5",
@@ -77,7 +82,7 @@
"nock": "13.3.1",
"ts-node": "10.9.1",
"tsup": "6.7.0",
"typedoc": "0.24.7",
"typedoc": "0.24.8",
"typescript": "4.9.5"
},
"tsup": {

View File

@@ -1,95 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
.DS_Store
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
#DynamoDB Local files
.dynamodb/
########## end of https://github.com/github/gitignore/blob/master/Node.gitignore
# ignore ide files
.idea
.vscode
# ignore lib
lib
# ignore docs
docs
# report directory
report

View File

@@ -1,135 +0,0 @@
image: registry.gitlab.com/openstapps/projectmanagement/node
before_script:
- npm install
stages:
- build
- review
- test
- audit
- deploy
- publish
build:
tags:
- performance
stage: build
script:
- npm run build
artifacts:
paths:
- lib
expire_in: 1 week
build-ts-3.8.3:
tags:
- performance
stage: build
script:
- npm uninstall typescript
- npm install typescript@3.8.3
- npm run build
docs_review:
dependencies:
- build
stage: review
script:
- npm run documentation
- ./node_modules/.bin/surge -p ./docs -d https://$CI_PROJECT_PATH_SLUG-$CI_ENVIRONMENT_SLUG.surge.sh/
when: manual
environment:
name: review/$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_NAME
url: https://$CI_PROJECT_PATH_SLUG-$CI_ENVIRONMENT_SLUG.surge.sh/
on_stop: stop_review
except:
- master
- develop
tags:
- secrecy
stop_review:
stage: review
variables:
GIT_STRATEGY: none
script:
- ./node_modules/.bin/surge teardown $CI_PROJECT_PATH_SLUG-$CI_ENVIRONMENT_SLUG.surge.sh
when: manual
environment:
name: review/$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_NAME
action: stop
tags:
- secrecy
audit:
stage: audit
script:
- npm audit
allow_failure: true
except:
- schedules
scheduled-audit:
stage: audit
script:
- npm audit --audit-level=high
only:
- schedules
test:
dependencies:
- build
stage: test
script:
- npm test
coverage: '/Statements[^:]*\:[^:]*\s+([\d\.]+)%/'
artifacts:
paths:
- report
- coverage
reports:
coverage_report:
coverage_format: cobertura
path: coverage/cobertura-coverage.xml
mapping:
tags:
- performance
dependencies:
- build
stage: test
services:
- name: registry.gitlab.com/openstapps/database:latest
alias: elasticsearch
script:
- npm run mappings-integration
artifacts:
paths:
- lib
package:
dependencies:
- build
tags:
- secrecy
stage: publish
script:
- echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
- npm publish
only:
- /^v[0-9]+.[0-9]+.[0-9]+$/
artifacts:
paths:
- lib
pages:
stage: deploy
script:
- npm run documentation
- mv docs public
only:
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
artifacts:
paths:
- public

View File

@@ -1,12 +0,0 @@
# Ignore all files/folders by default
# See https://stackoverflow.com/a/29932318
/*
# Except these files/folders
!lib
lib/tsconfig.tsbuildinfo
!LICENSE
!package.json
!package-lock.json
!README.md
!src
!test/resources/

View File

@@ -1,5 +0,0 @@
lib
coverage
report
docs
.nyc-output

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/core",
"description": "StAppsCore - Generalized model of data",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/core.git",
@@ -25,8 +25,13 @@
],
"main": "./lib/index.js",
"types": "./lib/index.d.ts",
"files": [
"lib",
"test/resources",
"README.md"
],
"scripts": {
"build": "tsup --dts && pnpm run mappings && pnpm run schema",
"build": "tsup-node --dts && pnpm run mappings && pnpm run schema",
"docs": "typedoc --json ./docs/docs.json --options ../../typedoc.base.json src/index.ts",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
@@ -66,7 +71,7 @@
"surge": "0.23.1",
"ts-node": "10.9.1",
"tsup": "6.7.0",
"typedoc": "0.24.7",
"typedoc": "0.24.8",
"typescript": "4.9.5"
},
"tsup": {

View File

@@ -1,15 +1,19 @@
{
"name": "@openstapps/easy-ast",
"description": "Tool to easily handle TypeScript AST",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/core-tools.git",
"author": "Thea Schöbl <dev@theaninova.de>",
"main": "./lib/index.js",
"types": "./lib/index.d.ts",
"files": [
"lib",
"README.md"
],
"scripts": {
"build": "tsup --dts",
"build": "tsup-node --dts",
"docs": "typedoc --json ./docs/docs.json --options ../../typedoc.base.json src/index.ts",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
@@ -20,7 +24,7 @@
"dependencies": {
"@openstapps/collection-utils": "workspace:*",
"@openstapps/logger": "workspace:*",
"glob": "10.2.6",
"glob": "10.2.7",
"typescript": "4.9.5"
},
"devDependencies": {
@@ -35,7 +39,7 @@
"mocha": "10.2.0",
"ts-node": "10.9.1",
"tsup": "6.7.0",
"typedoc": "0.24.7"
"typedoc": "0.24.8"
},
"tsup": {
"entry": [

View File

@@ -1,71 +0,0 @@
image: registry.gitlab.com/openstapps/projectmanagement/node
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules
before_script:
- npm install
stages:
- build
- test
- audit
- deploy
build:
stage: build
script:
- npm run build
artifacts:
paths:
- lib
test:
tags:
- docker
stage: test
script:
- npm test
audit:
stage: audit
script:
- npm audit
allow_failure: true
except:
- schedules
scheduled-audit:
stage: audit
script:
- npm audit --audit-level=high
only:
- schedules
package:
dependencies:
- build
tags:
- secrecy
stage: deploy
script:
- echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
- npm publish
only:
- /^v[0-9]+.[0-9]+.[0-9]+$/
artifacts:
paths:
- lib
pages:
stage: deploy
script:
- npm run documentation
- mv docs public
only:
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
artifacts:
paths:
- public

View File

@@ -1,12 +0,0 @@
# Ignore all files/folders by default
# See https://stackoverflow.com/a/29932318
/*
# Except these files/folders
!lib
lib/tsconfig.tsbuildinfo
!LICENSE
!package.json
!package-lock.json
!README.md
!resources
!src

View File

@@ -1 +0,0 @@
FROM plantuml/plantuml-server:tomcat

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/es-mapping-generator",
"description": "Tool to convert TypeScript Interfaces to Elasticsearch Mappings",
"version": "2.1.0",
"version": "3.0.0",
"type": "commonjs",
"license": "GPL-3.0-only",
"author": "Thea Schöbl <dev@theaninova.de>",
@@ -10,6 +10,11 @@
"bin": {
"openstapps-es-mapping-generator": "app.js"
},
"files": [
"app.js",
"lib",
"README.md"
],
"scripts": {
"build": "rimraf lib && tsc",
"format": "prettier . -c --ignore-path ../../.gitignore",

View File

@@ -1,65 +0,0 @@
image: registry.gitlab.com/openstapps/projectmanagement/node
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules
before_script:
- npm install
stages:
- build
- test
- audit
- deploy
- publish
build:
stage: build
script:
- npm run build
artifacts:
paths:
- lib
audit:
allow_failure: true
except:
- schedules
script:
- npm audit
stage: audit
scheduled-audit:
only:
- schedules
script:
- npm audit
stage: audit
pages:
stage: deploy
script:
- npm run documentation
- mv docs public
only:
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
artifacts:
paths:
- public
package:
dependencies:
- build
tags:
- secrecy
stage: publish
script:
- echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
- npm publish
only:
- /^v[0-9]+.[0-9]+.[0-9]+$/
artifacts:
paths:
- lib

View File

@@ -1,32 +0,0 @@
## Summary
(Summarize the bug encountered concisely)
## Steps to reproduce
(How one can reproduce the issue - this is very important)
## Example Project
(If possible, please create an example project here on GitLab.com that exhibits the problematic behaviour, and link to it here in the bug report)
(If you are using an older version of GitLab, this will also determine whether the bug has been fixed in a more recent version)
## What is the current bug behavior?
(What actually happens)
## What is the expected correct behavior?
(What you should see instead)
## Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)
## Possible fixes
(If you can, link to the line of code that might be responsible for the problem)
/label ~meeting

View File

@@ -1,11 +0,0 @@
# Ignore all files/folders by default
# See https://stackoverflow.com/a/29932318
/*
# Except these files/folders
!lib
lib/tsconfig.tsbuildinfo
!LICENSE
!package.json
!package-lock.json
!README.md
!src

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "@openstapps/gitlab-api",
"description": "Wraps common GitLab API calls in a TypeScript class.",
"version": "2.1.0",
"version": "3.0.0",
"type": "module",
"license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/gitlab-api.git",
@@ -14,8 +14,13 @@
"bin": {
"openstapps-gitlab-api": "app.js"
},
"files": [
"app.js",
"lib",
"README.md"
],
"scripts": {
"build": "tsup --dts",
"build": "tsup-node --dts",
"docs": "typedoc --json ./docs/docs.json --options ../../typedoc.base.json src/api.ts",
"format": "prettier . -c --ignore-path ../../.gitignore",
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
@@ -34,7 +39,7 @@
"@types/node": "18.15.3",
"ts-node": "10.9.1",
"tsup": "6.7.0",
"typedoc": "0.24.7",
"typedoc": "0.24.8",
"typescript": "4.9.5"
},
"tsup": {

View File

@@ -1,76 +0,0 @@
image: registry.gitlab.com/openstapps/projectmanagement/node
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules
before_script:
- npm ci
stages:
- build
- test
- deploy
build:
stage: build
script:
- npm run build
artifacts:
paths:
- lib
test:
variables:
FORCE_COLOR: '1' # see https://github.com/chalk/chalk/issues/203
stage: test
script:
- npm test
coverage: '/Statements[^:]*\:[^:]*\s+([\d\.]+)%/'
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage/cobertura-coverage.xml
audit:
stage: test
script:
- npm audit
except:
- schedules
allow_failure: true
scheduled-audit:
stage: test
script:
- npm audit
only:
- schedules
package:
dependencies:
- build
tags:
- secrecy
stage: deploy
script:
- echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
- npm publish
only:
- /^v[0-9]+.[0-9]+.[0-9]+$/
artifacts:
paths:
- lib
pages:
stage: deploy
script:
- npm run documentation
- mv docs public
only:
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
artifacts:
paths:
- public

Some files were not shown because too many files have changed in this diff Show More