@micha.bigler/ui-core-micha 2.2.9 → 2.2.12

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,118 @@
1
+ name: Publish ui-core-micha to npm
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ paths:
8
+ - "package.json"
9
+ - "pnpm-lock.yaml"
10
+ - "src/**"
11
+ - "tsconfig.build.json"
12
+ workflow_dispatch:
13
+
14
+ jobs:
15
+ publish:
16
+ runs-on: ubuntu-latest
17
+ permissions:
18
+ id-token: write
19
+ contents: read
20
+
21
+ steps:
22
+ - name: Check out code
23
+ uses: actions/checkout@v4
24
+ with:
25
+ fetch-depth: 2
26
+
27
+ - name: Set up Node
28
+ uses: actions/setup-node@v4
29
+ with:
30
+ node-version: '20.x'
31
+ registry-url: 'https://registry.npmjs.org'
32
+
33
+ - name: Decide whether to publish
34
+ id: version_check
35
+ run: |
36
+ node <<'NODE'
37
+ const fs = require('fs');
38
+ const cp = require('child_process');
39
+
40
+ const outputPath = process.env.GITHUB_OUTPUT;
41
+ const githubEvent = process.env.GITHUB_EVENT_NAME || '';
42
+
43
+ function writeOutput(value) {
44
+ fs.appendFileSync(outputPath, `should_publish=${value}\n`, 'utf8');
45
+ }
46
+
47
+ if (githubEvent === 'workflow_dispatch') {
48
+ console.log('Manual dispatch: publish enabled.');
49
+ writeOutput('true');
50
+ process.exit(0);
51
+ }
52
+
53
+ const current = JSON.parse(fs.readFileSync('package.json', 'utf8')).version;
54
+ let previous;
55
+ try {
56
+ previous = JSON.parse(
57
+ cp.execFileSync('git', ['show', 'HEAD^:package.json'], { encoding: 'utf8' })
58
+ ).version;
59
+ } catch (error) {
60
+ console.log('No previous package.json found. Publishing.');
61
+ writeOutput('true');
62
+ process.exit(0);
63
+ }
64
+
65
+ console.log(`Previous version: ${previous}`);
66
+ console.log(`Current version: ${current}`);
67
+
68
+ function parse(version) {
69
+ return version.split('.').map((part) => Number.parseInt(part, 10) || 0);
70
+ }
71
+
72
+ function greaterThan(a, b) {
73
+ const left = parse(a);
74
+ const right = parse(b);
75
+ const maxLength = Math.max(left.length, right.length);
76
+ for (let index = 0; index < maxLength; index += 1) {
77
+ const lv = left[index] || 0;
78
+ const rv = right[index] || 0;
79
+ if (lv > rv) return true;
80
+ if (lv < rv) return false;
81
+ }
82
+ return false;
83
+ }
84
+
85
+ if (greaterThan(current, previous)) {
86
+ console.log('Version increased. Publishing.');
87
+ writeOutput('true');
88
+ } else {
89
+ console.log('Version did not increase. Skipping publish.');
90
+ writeOutput('false');
91
+ }
92
+ NODE
93
+
94
+ - name: Set up pnpm
95
+ if: steps.version_check.outputs.should_publish == 'true'
96
+ uses: pnpm/action-setup@v4
97
+ with:
98
+ version: 10.18.1
99
+
100
+ - name: Show version from package.json
101
+ if: steps.version_check.outputs.should_publish == 'true'
102
+ run: node -e "console.log('Version from package.json:', require('./package.json').version);"
103
+
104
+ - name: Install dependencies (pnpm)
105
+ if: steps.version_check.outputs.should_publish == 'true'
106
+ run: pnpm install --frozen-lockfile
107
+
108
+ - name: Build
109
+ if: steps.version_check.outputs.should_publish == 'true'
110
+ run: pnpm run build
111
+
112
+ - name: Ensure recent npm for trusted publishing
113
+ if: steps.version_check.outputs.should_publish == 'true'
114
+ run: npm install -g npm@latest
115
+
116
+ - name: Publish to npm (Trusted Publishing)
117
+ if: steps.version_check.outputs.should_publish == 'true'
118
+ run: npm publish --access public
@@ -19,12 +19,15 @@ const PUBLIC_PATHS = [
19
19
  "/reset", // Reset Link (/reset/:uid/:token)
20
20
  "/welcome" // Optional: Falls Welcome auch öffentlich ist
21
21
  ];
22
+ function isPublicSitePath(pathname) {
23
+ return pathname === "/sites" || pathname.startsWith("/sites/");
24
+ }
22
25
  function redirectToLoginOnce() {
23
26
  if (!isBrowser())
24
27
  return;
25
28
  const currentPath = window.location.pathname;
26
29
  // 1. Check: Sind wir auf einer öffentlichen Seite?
27
- const isPublicPage = PUBLIC_PATHS.some(path => currentPath.startsWith(path));
30
+ const isPublicPage = isPublicSitePath(currentPath) || PUBLIC_PATHS.some(path => currentPath.startsWith(path));
28
31
  // Wenn ja: NICHT weiterleiten. Der 401 Fehler wird an die Komponente durchgereicht.
29
32
  if (isPublicPage)
30
33
  return;
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "@micha.bigler/ui-core-micha",
3
- "version": "2.2.9",
3
+ "version": "2.2.12",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/bigler-webapps/ui-core-micha"
9
+ },
6
10
  "private": false,
7
11
  "peerDependencies": {
8
12
  "@emotion/react": "^11.0.0",
@@ -24,13 +24,17 @@ const PUBLIC_PATHS = [
24
24
  "/welcome" // Optional: Falls Welcome auch öffentlich ist
25
25
  ];
26
26
 
27
+ function isPublicSitePath(pathname) {
28
+ return pathname === "/sites" || pathname.startsWith("/sites/");
29
+ }
30
+
27
31
  function redirectToLoginOnce() {
28
32
  if (!isBrowser()) return;
29
33
 
30
34
  const currentPath = window.location.pathname;
31
35
 
32
36
  // 1. Check: Sind wir auf einer öffentlichen Seite?
33
- const isPublicPage = PUBLIC_PATHS.some(path => currentPath.startsWith(path));
37
+ const isPublicPage = isPublicSitePath(currentPath) || PUBLIC_PATHS.some(path => currentPath.startsWith(path));
34
38
 
35
39
  // Wenn ja: NICHT weiterleiten. Der 401 Fehler wird an die Komponente durchgereicht.
36
40
  if (isPublicPage) return;