@bardioc/create-bardioc-app 0.7.0 → 0.7.1

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.
Files changed (42) hide show
  1. package/package.json +2 -2
  2. package/templates/_base/.changeset/README.md +4 -6
  3. package/templates/_base/.claude/commands/changeset-app.md +11 -12
  4. package/templates/_base/.claude/commands/refresh-bundle.md +1 -1
  5. package/templates/_base/AGENTS.md +128 -0
  6. package/templates/_base/CLAUDE.md +1 -0
  7. package/templates/_base/README.md +11 -17
  8. package/templates/_opt-link/scripts/link-source.mjs +1 -1
  9. package/templates/_opt-pipeline/bitbucket-pipelines.yml +12 -56
  10. package/templates/angular/package.json +1 -1
  11. package/templates/nextjs/package.json +1 -1
  12. package/templates/preact/package.json +1 -1
  13. package/templates/solid/package.json +1 -1
  14. package/templates/svelte/package.json +1 -1
  15. package/templates/vite/CLAUDE.md +149 -135
  16. package/templates/vite/package.json +3 -3
  17. package/templates/vite/src/App.tsx +6 -3
  18. package/templates/vite/src/auth/onboarding.tsx +19 -23
  19. package/templates/vite/src/climate/climate-data.ts +19 -0
  20. package/templates/vite/src/climate/conditions-chart.tsx +11 -6
  21. package/templates/vite/src/climate/location-card.tsx +2 -5
  22. package/templates/vite/src/climate/location-select.tsx +7 -2
  23. package/templates/vite/src/climate/metrics-grid.tsx +6 -1
  24. package/templates/vite/src/climate/overview-view.tsx +26 -7
  25. package/templates/vite/src/climate/stations-view.tsx +73 -9
  26. package/templates/vite/src/climate/types.ts +5 -5
  27. package/templates/vite/src/dashboard-provider.tsx +15 -5
  28. package/templates/vite/src/events/live-events-view.tsx +67 -37
  29. package/templates/vite/src/events/mock-events.ts +33 -0
  30. package/templates/vite/src/graph/explorer-view.tsx +81 -63
  31. package/templates/vite/src/i18n.tsx +6 -2
  32. package/templates/vite/src/index.css +0 -6
  33. package/templates/vite/src/locales/de.json +55 -51
  34. package/templates/vite/src/locales/en.json +44 -40
  35. package/templates/vite/src/preview-state.tsx +29 -0
  36. package/templates/vite/src/profile/profile-view.tsx +43 -25
  37. package/templates/vite/src/shell/about-dialog.tsx +6 -5
  38. package/templates/vite/src/shell/app-shell.tsx +46 -45
  39. package/templates/vite/src/shell/debug-menu.tsx +86 -0
  40. package/templates/vite/src/shell/header.tsx +6 -4
  41. package/templates/vite/src/shell/view-content.tsx +69 -0
  42. package/templates/vue/package.json +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bardioc/create-bardioc-app",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Scaffold a Bardioc app with framework templates (vite, react, vue, angular, svelte, solid, preact, nextjs)",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -32,7 +32,7 @@
32
32
  "devDependencies": {
33
33
  "@vitest/coverage-v8": "^4.1.8",
34
34
  "@types/node": "^25.9.1",
35
- "typescript": "6.0.3",
35
+ "typescript": "^7.0.2",
36
36
  "vitest": "^4.1.8"
37
37
  },
38
38
  "scripts": {
@@ -5,13 +5,11 @@ as the `@bardioc/*` libraries.
5
5
 
6
6
  **To cut a release: run the `/changeset-app` skill** (or `npm run changeset`) — it picks the semver bump
7
7
  and applies it locally (`npm run release:version`), so `package.json`'s `version` always reflects the
8
- release. Commit the result with your PR; merging to `dev` runs the publish step in the pipeline.
8
+ release. Commit the result with your PR.
9
9
 
10
10
  The skill is named `changeset-app` (not `changeset`) to avoid clashing with the `/changeset` command
11
11
  in `bardioc-desktop-frontend` when both repos are open in one workspace. It's app-agnostic — it reads
12
- the published package name from `package.json` — so the same skill file works in any app repo.
12
+ the package name from `package.json` — so the same skill file works in any app repo.
13
13
 
14
- > **This app ships private + unscoped, so publishing is dormant.** `npm run changeset publish` no-ops on
15
- > a private package — versioning works, but nothing is pushed to a registry. To actually publish to
16
- > Nexus, scope the name (e.g. `@bardioc/<app>`), set `"private": false`, and add a
17
- > `publishConfig.registry`; then the pipeline's publish step starts shipping the built `dist/`.
14
+ > **This app is not published to a registry.** It ships `"private": true`, so `npm run changeset publish`
15
+ > no-ops — versioning works, and the release is the zip built by `npm run bundle`.
@@ -1,15 +1,16 @@
1
1
  ---
2
2
  name: changeset-app
3
- description: Write a changeset for this app repo's single published package, pick the semver bump (default patch, major on breaking change), and apply the bump locally — keeping package.json's version in step with the release.
3
+ description: Write a changeset for this app repo's single package, pick the semver bump (default patch, major on breaking change), and apply the bump locally — keeping package.json's version in step with the release.
4
4
  argument-hint: "[optional: summary, and/or 'minor'/'major' to override the bump]"
5
5
  ---
6
6
 
7
7
  # /changeset-app — Author + bump locally
8
8
 
9
- This is a **single-package hosted-app repo**: it publishes exactly one package (read its name from
9
+ This is a **single-package hosted-app repo**: it holds exactly one package (read its name from
10
10
  this repo's `package.json` `name` field). This skill writes the `.changeset/*.md`, picks the **bump**,
11
11
  and **applies it** (`npm run release:version`), so `package.json`'s `version` always reflects the
12
- release. The result is committed with your PR; the pipeline only publishes.
12
+ release. The result is committed with your PR. Nothing is published: the release is the zip built
13
+ by `npm run bundle`.
13
14
 
14
15
  > Named `changeset-app` (not `changeset`) on purpose: `bardioc-desktop-frontend` ships its own
15
16
  > `/changeset`, and project commands don't namespace across repos — a shared name would collide
@@ -19,7 +20,7 @@ release. The result is committed with your PR; the pipeline only publishes.
19
20
 
20
21
  ## Step 0 — Identify the package
21
22
 
22
- Read the published package name from this repo's `package.json` `name` field. This is the **only**
23
+ Read the package name from this repo's `package.json` `name` field. This is the **only**
23
24
  app-specific value — use it verbatim in the changeset frontmatter (Step 2). Everything else below is
24
25
  identical across app repos.
25
26
 
@@ -53,7 +54,7 @@ The user invoked this with: `$ARGUMENTS`
53
54
 
54
55
  If this change raises a `@bardioc/*` dependency in `package.json` (e.g. `@bardioc/ui` ↑ because
55
56
  the app now uses a new component/prop/type from it), that is a **release-relevant change**:
56
- write a changeset so the app's **own** version bumps as well. The published app version must
57
+ write a changeset so the app's **own** version bumps as well. The app version must
57
58
  move whenever its required dependency set moves — otherwise the package.json version no longer
58
59
  identifies a distinct release.
59
60
 
@@ -95,10 +96,8 @@ manifest note below) — a bump alone does not update the zip.
95
96
  rebuild the zip and swap it into the host's `apps/webos-host/public/_apps/`. The committed
96
97
  `app-manifest.json` `version` is just a seed — the stamp overwrites it in the build output, so
97
98
  don't sync it by hand.
98
- - **Bump before merging to `dev`** so the release carries a fresh version. There is **no
99
- release gate**: if you forget, `npm run changeset publish` just no-ops (green, "No unpublished
100
- projects") rather than failing — the merge succeeds but publishes nothing until you bump. (While
101
- the package is private, publish always no-ops regardless.)
102
- - Bumping locally is why CI needs **no git-write token** — the version is already in the PR;
103
- the pipeline only runs `npm run changeset publish` (which publishes only if the version isn't on
104
- Nexus yet and the package is publishable).
99
+ - **Bump before merging to `dev`** so the zip built from it carries a fresh version. There is **no
100
+ release gate**: nothing fails if you forget.
101
+ - Bumping locally is why CI needs **no git-write token** — the version is already in the PR.
102
+ Nothing is published: the app ships `"private": true`, and its release is the zip built by
103
+ `npm run bundle`.
@@ -93,7 +93,7 @@ Do **not** commit unless the user asks.
93
93
 
94
94
  ## Notes
95
95
 
96
- - This app is decoupled from the host's workspace (its own `pnpm-lock.yaml`). Always run
96
+ - This app is decoupled from the host's workspace (its own `package-lock.json`). Always run
97
97
  `npm run bundle` from inside `REPO`, never from the host root.
98
98
  - Removing the repo zip first (Step 2) is deliberate: it guarantees the copy in Step 4 is a
99
99
  brand-new build, never a leftover artifact.
@@ -0,0 +1,128 @@
1
+ # {{DISPLAY_NAME}} — agent guide
2
+
3
+ A Bardioc hosted app, scaffolded with `@bardioc/create-bardioc-app`. It runs in an iframe inside
4
+ Bardioc OS and reaches the OS and the backend only through `@bardioc/app-sdk`. This file holds what
5
+ every Bardioc app shares, whatever its framework; `CLAUDE.md` may add notes for this template.
6
+
7
+ ---
8
+
9
+ ## Commands
10
+
11
+ The app uses **npm**, not pnpm or yarn: `npm run bundle` needs npm's lockfile for its SBOM and audit.
12
+
13
+ ```bash
14
+ npm install
15
+ npm run dev # http://localhost:{{PORT}}
16
+ npm run build # → build output, with the manifest version stamped
17
+ npm run bundle # compliance gate + build → {{APP_NAME}}.zip
18
+ npm run check-types
19
+ npm run lint # @bardioc/configs preset (not in the angular template)
20
+ npm run format # @bardioc/configs preset (not in the angular template)
21
+ ```
22
+
23
+ ---
24
+
25
+ ## Running it
26
+
27
+ - **Inside the host** the app needs no setup: the OS provides the session.
28
+ - **Standalone** (`npm run dev`), the dev host stands in for the OS (`installDevHost()` from
29
+ `@bardioc/app-sdk/dev`, in the app's entry: `src/main.*`, or `app/page.tsx` in nextjs). SDK
30
+ calls go through a dev-auth proxy that signs them with `DEV_SECRET`: the `bardiocDevAuth` Vite
31
+ plugin, or `scripts/dev.mjs` in the angular and nextjs templates. Set `DEV_SECRET` (from the App Store after registering the app) and
32
+ `API_BASE_URL` in `.env` (see `.env.example`). Without them every backend call fails with a
33
+ `BardiocError`; render that as an error state.
34
+ - **Check dev auth in the browser**, not with `curl`: the proxy relays the browser's session, so
35
+ `curl localhost:{{PORT}}/rest/…` gets 401 even with a valid `DEV_SECRET`.
36
+ - **`npm run preview`** (Vite templates) serves the build on port + 1000, not on `{{PORT}}`; trust
37
+ the `Local:` line it prints. A build opened outside the host renders in fallback fonts, because fonts come from the
38
+ host's `/fonts` contract.
39
+ - Gate the SDK on `isInsideIframe()` / `isDevStandalone()` (`@bardioc/app-sdk/dev`), as
40
+ the app's entry does: with neither a host nor a dev session there is nothing to connect to.
41
+
42
+ ---
43
+
44
+ ## SDK — `@bardioc/app-sdk` 1.x
45
+
46
+ Everything goes through one `Bardioc` object. The app's entry gets it: `connect()` from
47
+ `@bardioc/app-sdk`, or `useSdk()` from `@bardioc/app-sdk/react` under `AppSdkProvider`.
48
+
49
+ - **Graph** — `bardioc.graph.*`: `get(id)`, `getMany`, `getByXid`, `query(lucene, opts)`,
50
+ `gremlin(rootId, query)`, `create`, `update`, `delete`, `connect`, `history`, `timeseries.*`
51
+ (full list: the `GraphApi` type).
52
+ - `query` can resolve to a `{ items: [...] }` envelope: normalize before indexing.
53
+ - Escape `/` in Lucene as `\/` (`ogit\/_type:"…"`).
54
+ - Ids and types differ between instances: discover them with a wildcard `query('*')` instead of
55
+ hard-coding them.
56
+ - **OS** — `bardioc.os.profile.get()`, `bardioc.os.organization.getStructure()`,
57
+ `bardioc.os.applications.list()` (full list: the `OsApi` type). Any other backend path:
58
+ `bardioc.bff.request({ path })`.
59
+ - **Storage** — `bardioc.idb(store)`: app-scoped IndexedDB with `get`, `put`, `delete`,
60
+ `query({ prefix, limit })`. Standalone, it lives in this browser's IndexedDB.
61
+ - **Host UI** — `bardioc.ui.notify(message, level)`, `bardioc.ui.setMenu(...)` /
62
+ `setCommands(...)` with `onCommand(id, run)` for the OS menu bar.
63
+ - **Live events** — `bardioc.events.graph({ types }, onEvent)` resolves to the function that ends
64
+ the stream. No events arrive outside a valid session: render an empty state.
65
+ - **Context** — `bardioc.context` (`osConfig` with theme and language, the app's `settings`) and
66
+ `bardioc.onContextChange(listener)`. Follow the OS theme and language.
67
+ - **`bardioc.apps.*`** exists only inside the host; standalone it rejects with `unavailable`.
68
+
69
+ ### Errors
70
+
71
+ Every failure is a `BardiocError` with a `code` (`invalid`, `unauthenticated`, `forbidden`,
72
+ `not_found`, `conflict`, `rate_limited`, `unavailable`, `timeout`, …). HTTP failures also carry
73
+ `status`. Both survive the trip through the host. Wrap every call and give each failure a visible
74
+ state; never fall back to made-up data without labeling it.
75
+
76
+ ```typescript
77
+ import { BardiocError } from '@bardioc/app-sdk';
78
+
79
+ try {
80
+ return await bardioc.graph.get(id);
81
+ } catch (error) {
82
+ if (error instanceof BardiocError && error.code === 'not_found') return null;
83
+ throw error;
84
+ }
85
+ ```
86
+
87
+ `unauthenticated` / `forbidden` mean the session is missing or lacks a permission: say so, rather
88
+ than showing an empty result.
89
+
90
+ ---
91
+
92
+ ## Manifest — `public/app-manifest.json`
93
+
94
+ Validated by `validateManifest` (`@bardioc/app-sdk`), also on build.
95
+
96
+ - Required: `manifestVersion` (1 or 2), `id` (lowercase), `name`, `version`. `version` is stamped
97
+ from `package.json` on build, so bump it there, not here.
98
+ - Optional: `description`, `entry`, `icon` (an `icon.svg` in `public/`, 64 KB or smaller),
99
+ `author` (`{ name, url? }`), `categories`, `showInDock`, `showInDockAppsMenu`.
100
+ - `rules.roles`: the graph access the app requests at review, as role name →
101
+ `{ vertexRule?, edgeRule? }`.
102
+ - `window`: `size` (`xs|sm|md|lg|xl` or `{ width, height, minWidth?, minHeight? }`), `resizable`,
103
+ `maximizable`, `minimizable`, `customScroll`, `centered`, `isHeaderless`, `isInstanceAware`,
104
+ `canHaveMultipleWindows`.
105
+
106
+ ---
107
+
108
+ ## Copy
109
+
110
+ American English. Labels (titles, buttons, menu items, tabs, columns, field labels, placeholders,
111
+ tooltips) in Title Case (`Add Station`, `Save and Close`). Descriptions, toasts, errors and
112
+ validation messages as sentences ending with a period.
113
+
114
+ ---
115
+
116
+ ## Ship
117
+
118
+ 1. Bump `version` in `package.json`. For an app already in the Development Center it must be higher
119
+ than the last upload.
120
+ 2. `npm run bundle` → `{{APP_NAME}}.zip`, with the build output at the zip root. It needs the system
121
+ `zip` binary; on Windows, run `npm run build` and zip the build output's contents instead.
122
+ 3. Check the archive (`unzip -l {{APP_NAME}}.zip`): `app-manifest.json` and `index.html` at the top
123
+ level, with the version you set.
124
+ 4. Upload in Bardioc OS: **Development Center** → **Create App** → drop the zip (first time), or the
125
+ app's page → **New version** → **Upload version**. A new app starts as a draft: **Install**
126
+ tries it in your own OS, **Submit for review** publishes it through the App Store review.
127
+
128
+ Don't ship any other way: `/refresh-bundle` only copies the zip into a local host checkout.
@@ -0,0 +1 @@
1
+ @AGENTS.md
@@ -38,9 +38,9 @@ template is the exception — Angular 19 pins TypeScript 5.8, which the presets
38
38
 
39
39
  > Available only if you scaffolded with `--with-link` (adds `scripts/link-source.mjs`,
40
40
  > `pnpm-workspace.yaml`, and `.npmrc`). Otherwise this section does not apply — every `@bardioc/*`
41
- > dep resolves from Nexus.
41
+ > dep resolves from the npm registry.
42
42
 
43
- By default, every `@bardioc/*` dependency comes from Nexus. To develop against a local source
43
+ By default, every `@bardioc/*` dependency comes from the npm registry. To develop against a local source
44
44
  checkout instead — for example, to edit `@bardioc/ui` and see HMR in this app — symlink the source
45
45
  repo into `.linked/`:
46
46
 
@@ -63,7 +63,7 @@ pnpm unlink:source <name> # remove
63
63
  ### CI / Docker
64
64
 
65
65
  No `.linked/` directory exists, so the workspace glob matches nothing and `@bardioc/*` always
66
- resolves from Nexus. No overlay or CI-only workspace file needed.
66
+ resolves from the npm registry. No overlay or CI-only workspace file needed.
67
67
 
68
68
  ## Build & Bundle
69
69
 
@@ -80,13 +80,12 @@ finding, and ships the SBOM and the reports inside the zip. `{{APP_NAME}}.zip` i
80
80
  to the Bardioc host as a hosted app. To swap a fresh build into a local WebOS host checkout, run the
81
81
  **`/refresh-bundle`** skill.
82
82
 
83
- ## Release & Publishing
83
+ ## Release
84
84
 
85
85
  This app is versioned with [Changesets](https://github.com/changesets/changesets). **The version
86
- bump is done locally** (so CI needs no git-write token), and there is **no release gate** — a
87
- forgotten bump just publishes nothing rather than failing the deploy.
86
+ bump is done locally** (so CI needs no git-write token), and nothing is published: the release is the zip built by `npm run bundle`.
88
87
 
89
- > The CI pipeline below (PR checks + the publish step) is present only if you scaffolded with
88
+ > The CI pipeline below (PR checks) is present only if you scaffolded with
90
89
  > `--with-pipeline`. Without it, version locally with the steps below and bundle/ship by hand.
91
90
 
92
91
  **To cut a release:**
@@ -94,13 +93,8 @@ forgotten bump just publishes nothing rather than failing the deploy.
94
93
  1. On your feature branch, run the **`/changeset-app`** skill (or `npm run changeset`) — it picks the
95
94
  semver bump, writes `.changeset/*.md`, and applies it locally (`npm run release:version`). Commit the
96
95
  result with your PR. Then run **`/refresh-bundle`** so the new version reaches the shipped zip.
97
- 2. Open a PR. The PR pipeline runs `check-types`, `build`, and `audit` in parallel. No publish.
98
- 3. Merge to `dev`. CI runs again, then the publish step runs.
99
-
100
- > **Publishing is dormant by default.** This app ships `"private": true` with an unscoped name, so
101
- > `npm run changeset publish` cleanly no-ops. To publish to Nexus, scope the package name
102
- > (e.g. `@bardioc/{{APP_NAME}}`), set `"private": false`, and add a `publishConfig.registry` — then
103
- > the pipeline's publish step ships the built output (set `"files": ["<output-dir>"]` accordingly).
104
- >
105
- > **CI prerequisite** (set as a Bitbucket repo/workspace variable, not in the repo):
106
- > `NEXUS_REPO_USER` / `NEXUS_REPO_PASS` — an account with `npm-releases` deploy rights.
96
+ 2. Open a PR. The PR pipeline runs `check-types`, `build`, and `audit` in parallel.
97
+ 3. Merge to `dev`. CI runs again.
98
+
99
+ > **Publishing is not used.** This app ships `"private": true`, so `npm run changeset publish` cleanly
100
+ > no-ops; the release is the zip built by `npm run bundle`.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  // Symlinks a local @bardioc/* source checkout into .linked/ and syncs its pnpm catalogs into
3
- // pnpm-workspace.yaml. Without a link the workspace glob matches nothing and deps resolve from Nexus.
3
+ // pnpm-workspace.yaml. Without a link the workspace glob matches nothing and deps resolve from the npm registry.
4
4
  // node link-source.mjs <path> [--as <name>] link (name defaults to basename)
5
5
  // node link-source.mjs --remove <name> remove a link
6
6
 
@@ -5,35 +5,27 @@ options:
5
5
 
6
6
  definitions:
7
7
  caches:
8
- pnpm: .pnpm-store
8
+ npm: ~/.npm
9
9
 
10
10
  steps:
11
11
  - step: &check-types
12
12
  name: Check types
13
13
  runs-on: ['almai', 'self.hosted', 'linux']
14
14
  caches:
15
- - pnpm
15
+ - npm
16
16
  script:
17
- - corepack enable && corepack prepare pnpm@10.33.0 --activate
18
- - pnpm config set store-dir .pnpm-store
19
- - npm config set @bardioc:registry http://nexus.almato.com/repository/npm-group/
20
- - echo "//nexus.almato.com/repository/npm-group/:_auth=$(echo -n ${NEXUS_REPO_USER}:${NEXUS_REPO_PASS} | base64)" >> ~/.npmrc
21
- - pnpm install --frozen-lockfile
22
- - pnpm check-types
17
+ - npm ci
18
+ - npm run check-types
23
19
 
24
20
  - step: &build
25
21
  name: Build
26
22
  runs-on: ['almai', 'self.hosted', 'linux']
27
23
  caches:
28
- - pnpm
24
+ - npm
29
25
  script:
30
- - corepack enable && corepack prepare pnpm@10.33.0 --activate
31
- - pnpm config set store-dir .pnpm-store
32
- - npm config set @bardioc:registry http://nexus.almato.com/repository/npm-group/
33
- - echo "//nexus.almato.com/repository/npm-group/:_auth=$(echo -n ${NEXUS_REPO_USER}:${NEXUS_REPO_PASS} | base64)" >> ~/.npmrc
34
- - pnpm install --frozen-lockfile
26
+ - npm ci
35
27
  - export {{BUILD_ENV}}={{APP_NAME}}
36
- - pnpm build
28
+ - npm run build
37
29
  artifacts:
38
30
  - {{OUT_DIR}}/**
39
31
 
@@ -41,41 +33,14 @@ definitions:
41
33
  name: Security audit
42
34
  runs-on: ['almai', 'self.hosted', 'linux']
43
35
  caches:
44
- - pnpm
36
+ - npm
45
37
  script:
46
- - corepack enable && corepack prepare pnpm@10.33.0 --activate
47
- - pnpm config set store-dir .pnpm-store
48
- - npm config set @bardioc:registry http://nexus.almato.com/repository/npm-group/
49
- - echo "//nexus.almato.com/repository/npm-group/:_auth=$(echo -n ${NEXUS_REPO_USER}:${NEXUS_REPO_PASS} | base64)" >> ~/.npmrc
50
- - pnpm install --frozen-lockfile
51
- - pnpm audit --audit-level=high
52
-
53
- # Publishes any version not yet on Nexus. The bump is done locally (pnpm release:version) and merged
54
- # in the PR — no git write token, no release gate. Dormant while the app is `"private": true` +
55
- # unscoped (changeset publish no-ops). To enable: scope the name, set private:false, add
56
- # publishConfig.registry, and set `files` to the build output.
57
- - step: &publish
58
- name: Publish package to Nexus
59
- runs-on: ['almai', 'self.hosted', 'linux']
60
- caches:
61
- - pnpm
62
- script:
63
- - corepack enable && corepack prepare pnpm@10.33.0 --activate
64
- - pnpm config set store-dir .pnpm-store
65
- - npm config set @bardioc:registry http://nexus.almato.com/repository/npm-group/
66
- - echo "//nexus.almato.com/repository/npm-group/:_auth=$(echo -n ${NEXUS_REPO_USER}:${NEXUS_REPO_PASS} | base64)" >> ~/.npmrc
67
- # npm publish auth must live in $HOME/.npmrc — changeset publish runs npm publish from the package dir.
68
- - echo "//nexus.almato.com/repository/npm-releases/:_auth=$(echo -n ${NEXUS_REPO_USER}:${NEXUS_REPO_PASS} | base64)" >> "$HOME/.npmrc"
69
- - echo "//nexus.almato.com/repository/npm-releases/:always-auth=true" >> "$HOME/.npmrc"
70
- - pnpm install --frozen-lockfile
71
- - export {{BUILD_ENV}}={{APP_NAME}}
72
- - pnpm build
73
- # Switch @bardioc to the writable npm-releases repo (npm-group is read-only; @scope:registry wins over publishConfig).
74
- - npm config set @bardioc:registry http://nexus.almato.com/repository/npm-releases/
75
- - pnpm changeset publish
38
+ - npm ci
39
+ - npm audit --omit=dev --audit-level=high
76
40
 
41
+ # Nothing is published: the app ships as the zip built by `npm run bundle`.
77
42
  pipelines:
78
- # PRs (and pushes to a PR's source branch) run everything except publish.
43
+ # PRs (and pushes to a PR's source branch).
79
44
  pull-requests:
80
45
  '**':
81
46
  - parallel:
@@ -83,18 +48,9 @@ pipelines:
83
48
  - step: *build
84
49
  - step: *audit
85
50
 
86
- # Commits to `dev` run CI then publish. No gate: changeset publish no-ops when nothing is new.
87
51
  branches:
88
52
  dev:
89
53
  - parallel:
90
54
  - step: *check-types
91
55
  - step: *build
92
56
  - step: *audit
93
- - step:
94
- <<: *publish
95
- trigger: automatic
96
-
97
- custom:
98
- # On-demand publish — re-run if a publish failed.
99
- publish-package:
100
- - step: *publish
@@ -32,7 +32,7 @@
32
32
  "@angular/platform-browser": "^19.2.12",
33
33
  "@angular/platform-browser-dynamic": "^19.2.12",
34
34
  "@angular/router": "^19.2.12",
35
- "@bardioc/app-sdk": "^1.0.1",
35
+ "@bardioc/app-sdk": "^1.0.3",
36
36
  "rxjs": "~7.8.2",
37
37
  "tslib": "^2.8.1",
38
38
  "zone.js": "~0.15.1"
@@ -21,7 +21,7 @@
21
21
  "release:publish": "changeset publish"
22
22
  },
23
23
  "dependencies": {
24
- "@bardioc/app-sdk": "^1.0.1",
24
+ "@bardioc/app-sdk": "^1.0.3",
25
25
  "next": "^15.3.2",
26
26
  "react": "^19.2.5",
27
27
  "react-dom": "^19.2.5"
@@ -22,7 +22,7 @@
22
22
  "release:publish": "changeset publish"
23
23
  },
24
24
  "dependencies": {
25
- "@bardioc/app-sdk": "^1.0.1",
25
+ "@bardioc/app-sdk": "^1.0.3",
26
26
  "preact": "^10.26.7"
27
27
  },
28
28
  "devDependencies": {
@@ -22,7 +22,7 @@
22
22
  "release:publish": "changeset publish"
23
23
  },
24
24
  "dependencies": {
25
- "@bardioc/app-sdk": "^1.0.1",
25
+ "@bardioc/app-sdk": "^1.0.3",
26
26
  "solid-js": "^1.9.7"
27
27
  },
28
28
  "devDependencies": {
@@ -22,7 +22,7 @@
22
22
  "release:publish": "changeset publish"
23
23
  },
24
24
  "dependencies": {
25
- "@bardioc/app-sdk": "^1.0.1",
25
+ "@bardioc/app-sdk": "^1.0.3",
26
26
  "svelte": "^5.33.14"
27
27
  },
28
28
  "devDependencies": {