ep_loading_message 0.0.26 → 0.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,11 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "daily"
7
+ - package-ecosystem: "npm"
8
+ directory: "/"
9
+ schedule:
10
+ interval: "daily"
11
+ versioning-strategy: "increase"
@@ -0,0 +1,71 @@
1
+ name: Backend Tests
2
+
3
+ # any branch is useful for testing before a PR is submitted
4
+ on:
5
+ workflow_call:
6
+
7
+ jobs:
8
+ withplugins:
9
+ # run on pushes to any branch
10
+ # run on PRs from external forks
11
+ if: |
12
+ (github.event_name != 'pull_request')
13
+ || (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id)
14
+ name: with Plugins
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ -
18
+ name: Install libreoffice
19
+ uses: awalsh128/cache-apt-pkgs-action@v1.6.0
20
+ with:
21
+ packages: libreoffice libreoffice-pdfimport
22
+ version: 1.0
23
+ -
24
+ name: Install etherpad core
25
+ uses: actions/checkout@v4
26
+ with:
27
+ repository: ether/etherpad-lite
28
+ path: etherpad-lite
29
+ - uses: pnpm/action-setup@v3
30
+ name: Install pnpm
31
+ with:
32
+ version: 10
33
+ run_install: false
34
+ - name: Get pnpm store directory
35
+ shell: bash
36
+ run: |
37
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
38
+ - uses: actions/cache@v4
39
+ name: Setup pnpm cache
40
+ with:
41
+ path: ${{ env.STORE_PATH }}
42
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
43
+ restore-keys: |
44
+ ${{ runner.os }}-pnpm-store-
45
+ -
46
+ name: Checkout plugin repository
47
+ uses: actions/checkout@v4
48
+ with:
49
+ path: plugin
50
+ - name: Remove tests
51
+ working-directory: ./etherpad-lite
52
+ run: rm -rf ./src/tests/backend/specs
53
+ -
54
+ name: Install Etherpad core dependencies
55
+ working-directory: ./etherpad-lite
56
+ run: bin/installDeps.sh
57
+ - name: Install plugin
58
+ working-directory: ./etherpad-lite
59
+ run: |
60
+ pnpm run plugins i --path ../../plugin
61
+ -
62
+ name: Run the backend tests
63
+ working-directory: ./etherpad-lite/src
64
+ run: |
65
+ shopt -s globstar
66
+ res=$(find ./plugin_packages -path "*/static/tests/backend/specs/*" 2>/dev/null | wc -l)
67
+ if [ $res -eq 0 ]; then
68
+ echo "No backend tests found"
69
+ else
70
+ npx cross-env NODE_ENV=production mocha --import=tsx --timeout 120000 --recursive node_modules/ep_*/static/tests/backend/specs/**
71
+ fi
@@ -0,0 +1,41 @@
1
+ name: "CodeQL"
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+ branches: [ "main" ]
8
+ schedule:
9
+ - cron: "45 16 * * 5"
10
+
11
+ jobs:
12
+ analyze:
13
+ name: Analyze
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ actions: read
17
+ contents: read
18
+ security-events: write
19
+
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ language: [ javascript ]
24
+
25
+ steps:
26
+ - name: Checkout
27
+ uses: actions/checkout@v6
28
+
29
+ - name: Initialize CodeQL
30
+ uses: github/codeql-action/init@v4
31
+ with:
32
+ languages: ${{ matrix.language }}
33
+ queries: +security-and-quality
34
+
35
+ - name: Autobuild
36
+ uses: github/codeql-action/autobuild@v4
37
+
38
+ - name: Perform CodeQL Analysis
39
+ uses: github/codeql-action/analyze@v4
40
+ with:
41
+ category: "/language:${{ matrix.language }}"
@@ -0,0 +1,94 @@
1
+ # Publicly credit Sauce Labs because they generously support open source
2
+ # projects.
3
+ name: Frontend Tests
4
+
5
+ on:
6
+ workflow_call:
7
+
8
+ jobs:
9
+ test-frontend:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ -
14
+ name: Check out Etherpad core
15
+ uses: actions/checkout@v4
16
+ with:
17
+ repository: ether/etherpad-lite
18
+ - uses: pnpm/action-setup@v3
19
+ name: Install pnpm
20
+ with:
21
+ version: 10
22
+ run_install: false
23
+ - name: Get pnpm store directory
24
+ shell: bash
25
+ run: |
26
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
27
+ - uses: actions/cache@v4
28
+ name: Setup pnpm cache
29
+ with:
30
+ path: ${{ env.STORE_PATH }}
31
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
32
+ restore-keys: |
33
+ ${{ runner.os }}-pnpm-store-
34
+ -
35
+ name: Check out the plugin
36
+ uses: actions/checkout@v4
37
+ with:
38
+ path: ./node_modules/__tmp
39
+ -
40
+ name: export GIT_HASH to env
41
+ id: environment
42
+ run: |
43
+ cd ./node_modules/__tmp
44
+ echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
45
+ -
46
+ name: Determine plugin name
47
+ id: plugin_name
48
+ run: |
49
+ cd ./node_modules/__tmp
50
+ npx -c 'printf %s\\n "::set-output name=plugin_name::${npm_package_name}"'
51
+ -
52
+ name: Rename plugin directory
53
+ env:
54
+ PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
55
+ run: |
56
+ mv ./node_modules/__tmp ./node_modules/"${PLUGIN_NAME}"
57
+ -
58
+ name: Install plugin dependencies
59
+ env:
60
+ PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
61
+ run: |
62
+ cd ./node_modules/"${PLUGIN_NAME}"
63
+ pnpm i
64
+ # Etherpad core dependencies must be installed after installing the
65
+ # plugin's dependencies, otherwise npm will try to hoist common
66
+ # dependencies by removing them from src/node_modules and installing them
67
+ # in the top-level node_modules. As of v6.14.10, npm's hoist logic appears
68
+ # to be buggy, because it sometimes removes dependencies from
69
+ # src/node_modules but fails to add them to the top-level node_modules.
70
+ # Even if npm correctly hoists the dependencies, the hoisting seems to
71
+ # confuse tools such as `npm outdated`, `npm update`, and some ESLint
72
+ # rules.
73
+ -
74
+ name: Install Etherpad core dependencies
75
+ run: bin/installDeps.sh
76
+ - name: Create settings.json
77
+ run: cp ./src/tests/settings.json settings.json
78
+ - name: Run the frontend tests
79
+ shell: bash
80
+ run: |
81
+ pnpm run dev &
82
+ connected=false
83
+ can_connect() {
84
+ curl -sSfo /dev/null http://localhost:9001/ || return 1
85
+ connected=true
86
+ }
87
+ now() { date +%s; }
88
+ start=$(now)
89
+ while [ $(($(now) - $start)) -le 15 ] && ! can_connect; do
90
+ sleep 1
91
+ done
92
+ cd src
93
+ pnpm exec playwright install chromium --with-deps
94
+ pnpm run test-ui --project=chromium
@@ -0,0 +1,85 @@
1
+ # This workflow will run tests using node and then publish a package to the npm registry when a release is created
2
+ # For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
3
+ #
4
+ # Publishing uses npm Trusted Publishing (OIDC) — no NPM_TOKEN secret is
5
+ # required. Each package must have a trusted publisher configured on npmjs.com
6
+ # pointing at this workflow file. See:
7
+ # https://docs.npmjs.com/trusted-publishers
8
+
9
+ name: Node.js Package
10
+
11
+ on:
12
+ workflow_call:
13
+
14
+ jobs:
15
+ publish-npm:
16
+ runs-on: ubuntu-latest
17
+ permissions:
18
+ contents: write # for `git push --follow-tags` of the version bump
19
+ id-token: write # for npm OIDC trusted publishing
20
+ steps:
21
+ - uses: actions/setup-node@v6
22
+ with:
23
+ # OIDC trusted publishing needs npm >= 11.5.1, which requires
24
+ # Node >= 20.17.0. setup-node's `20` resolves to the latest
25
+ # 20.x, which satisfies that.
26
+ node-version: 20
27
+ registry-url: https://registry.npmjs.org/
28
+ - name: Upgrade npm to >=11.5.1 (required for trusted publishing)
29
+ run: npm install -g npm@latest
30
+ - name: Check out Etherpad core
31
+ uses: actions/checkout@v6
32
+ with:
33
+ repository: ether/etherpad-lite
34
+ - uses: pnpm/action-setup@v5
35
+ name: Install pnpm
36
+ with:
37
+ version: 10
38
+ run_install: false
39
+ - name: Get pnpm store directory
40
+ shell: bash
41
+ run: |
42
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
43
+ - uses: actions/cache@v5
44
+ name: Setup pnpm cache
45
+ with:
46
+ path: ${{ env.STORE_PATH }}
47
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
48
+ restore-keys: |
49
+ ${{ runner.os }}-pnpm-store-
50
+ -
51
+ uses: actions/checkout@v6
52
+ with:
53
+ fetch-depth: 0
54
+ -
55
+ name: Bump version (patch)
56
+ run: |
57
+ LATEST_TAG=$(git describe --tags --abbrev=0) || exit 1
58
+ NEW_COMMITS=$(git rev-list --count "${LATEST_TAG}"..) || exit 1
59
+ [ "${NEW_COMMITS}" -gt 0 ] || exit 0
60
+ git config user.name 'github-actions[bot]'
61
+ git config user.email '41898282+github-actions[bot]@users.noreply.github.com'
62
+ pnpm i
63
+ pnpm version patch
64
+ git push --follow-tags
65
+ # This is required if the package has a prepare script that uses something
66
+ # in dependencies or devDependencies.
67
+ -
68
+ run: pnpm i
69
+ # `npm publish` must come after `git push` otherwise there is a race
70
+ # condition: If two PRs are merged back-to-back then master/main will be
71
+ # updated with the commits from the second PR before the first PR's
72
+ # workflow has a chance to push the commit generated by `npm version
73
+ # patch`. This causes the first PR's `git push` step to fail after the
74
+ # package has already been published, which in turn will cause all future
75
+ # workflow runs to fail because they will all attempt to use the same
76
+ # already-used version number. By running `npm publish` after `git push`,
77
+ # back-to-back merges will cause the first merge's workflow to fail but
78
+ # the second's will succeed.
79
+ #
80
+ # Use `npm publish` directly (not `pnpm publish`) because OIDC trusted
81
+ # publishing requires npm CLI >= 11.5.1 and `pnpm publish` shells out to
82
+ # whichever `npm` is on PATH; calling `npm` directly avoids any shim
83
+ # ambiguity.
84
+ - name: Publish to npm via OIDC
85
+ run: npm publish --provenance --access public
@@ -0,0 +1,26 @@
1
+ name: Node.js Package
2
+ on: [push]
3
+
4
+ # id-token: write must be granted here so the reusable npmpublish workflow
5
+ # can request an OIDC token for npm trusted publishing.
6
+ permissions:
7
+ contents: write
8
+ id-token: write
9
+
10
+ jobs:
11
+ backend:
12
+ uses: ./.github/workflows/backend-tests.yml
13
+ secrets: inherit
14
+ frontend:
15
+ uses: ./.github/workflows/frontend-tests.yml
16
+ secrets: inherit
17
+ release:
18
+ if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
19
+ needs:
20
+ - backend
21
+ - frontend
22
+ permissions:
23
+ contents: write # for the version bump push
24
+ id-token: write # for npm OIDC trusted publishing
25
+ uses: ./.github/workflows/npmpublish.yml
26
+ secrets: inherit
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ep_loading_message",
3
3
  "description": "Show a loading helpful message",
4
- "version": "0.0.26",
4
+ "version": "0.0.35",
5
5
  "author": {
6
6
  "name": "John McLear",
7
7
  "email": "john@mclear.co.uk",
@@ -9,28 +9,23 @@
9
9
  },
10
10
  "repository": {
11
11
  "type": "git",
12
- "url": "https://github.com/ether/ether-plugins.git"
12
+ "url": "https://github.com/ether/ep_loading_message.git"
13
13
  },
14
14
  "contributors": [],
15
- "dependencies": {},
16
15
  "engines": {
17
- "node": ">=20.0.0"
16
+ "node": ">=18.0.0"
18
17
  },
19
18
  "funding": {
20
19
  "type": "individual",
21
20
  "url": "https://etherpad.org/"
22
21
  },
23
22
  "devDependencies": {
24
- "eslint": "^9.24.0",
23
+ "eslint": "^8.57.1",
25
24
  "eslint-config-etherpad": "^4.0.4",
26
- "typescript": "^5.4.3"
25
+ "typescript": "^5.9.3"
27
26
  },
28
- "bugs": {
29
- "url": "https://github.com/ether/ether-plugins/issues"
30
- },
31
- "homepage": "https://github.com/ether/ether-plugins/tree/main/ep_loading_message#readme",
32
27
  "scripts": {
33
28
  "lint": "eslint .",
34
29
  "lint:fix": "eslint --fix ."
35
30
  }
36
- }
31
+ }