@homebridge-plugins/homebridge-august 3.0.10 → 3.1.0

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 (56) hide show
  1. package/.github/workflows/release.yml +64 -27
  2. package/CHANGELOG.md +149 -771
  3. package/config.schema.json +8 -1
  4. package/dist/devices/device.js +1 -1
  5. package/dist/devices/device.js.map +1 -1
  6. package/dist/devices/device.test.js +1 -1
  7. package/dist/devices/device.test.js.map +1 -1
  8. package/dist/devices/lock.test.js +27 -0
  9. package/dist/devices/lock.test.js.map +1 -1
  10. package/dist/homebridge-ui/server.js.map +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +15 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.test.js +86 -3
  15. package/dist/index.test.js.map +1 -1
  16. package/dist/package.json +84 -0
  17. package/dist/platform.d.ts +9 -2
  18. package/dist/platform.d.ts.map +1 -1
  19. package/dist/platform.js +36 -11
  20. package/dist/platform.js.map +1 -1
  21. package/dist/platform.matter.d.ts +51 -0
  22. package/dist/platform.matter.d.ts.map +1 -0
  23. package/dist/platform.matter.js +276 -0
  24. package/dist/platform.matter.js.map +1 -0
  25. package/dist/platform.matter.test.d.ts +2 -0
  26. package/dist/platform.matter.test.d.ts.map +1 -0
  27. package/dist/platform.matter.test.js +385 -0
  28. package/dist/platform.matter.test.js.map +1 -0
  29. package/dist/platform.test.js +6 -8
  30. package/dist/platform.test.js.map +1 -1
  31. package/dist/settings.d.ts +1 -0
  32. package/dist/settings.d.ts.map +1 -1
  33. package/dist/settings.test.js +11 -0
  34. package/dist/settings.test.js.map +1 -1
  35. package/docs/assets/icons.js +1 -1
  36. package/docs/assets/icons.svg +1 -1
  37. package/docs/assets/main.js +5 -5
  38. package/docs/assets/navigation.js +1 -0
  39. package/docs/assets/search.js +1 -0
  40. package/docs/assets/style.css +248 -226
  41. package/docs/hierarchy.html +1 -0
  42. package/docs/index.html +17 -13
  43. package/docs/modules.html +1 -2
  44. package/docs/variables/default.html +1 -0
  45. package/eslint.config.js +6 -9
  46. package/package.json +23 -30
  47. package/typedoc.json +0 -4
  48. package/vitest.config.ts +7 -0
  49. package/.github/scripts/npm-version-script-esm-auto.js +0 -207
  50. package/.github/workflows/beta-release.yml +0 -55
  51. package/docs/assets/dmt/dmt-component-data.js +0 -1
  52. package/docs/assets/dmt/dmt-components.css +0 -20
  53. package/docs/assets/dmt/dmt-components.js +0 -67
  54. package/docs/assets/dmt/dmt-search.cmp +0 -0
  55. package/docs/assets/dmt/dmt-theme.css +0 -1
  56. package/docs/functions/default.html +0 -2
@@ -1,30 +1,78 @@
1
- name: Unified Release
1
+ name: Release
2
2
 
3
3
  on:
4
4
  push:
5
5
  branches:
6
- #- "alpha-*"
7
- #- "beta-*"
8
- - latest
6
+ - 'beta-*'
7
+ - 'beta'
8
+ - 'latest'
9
9
  workflow_dispatch:
10
10
 
11
11
  jobs:
12
+ # ─── BETA RELEASE (branches starting with "beta") ────────────────────────────
13
+
14
+ # 1️⃣ Build and test
15
+ build_and_test:
16
+ if: startsWith(github.ref_name, 'beta')
17
+ uses: homebridge/.github/.github/workflows/nodejs-build-and-test.yml@latest
18
+ with:
19
+ enable_coverage: false
20
+ secrets:
21
+ token: ${{ secrets.GITHUB_TOKEN }}
22
+
23
+ # 2️⃣ Lint
24
+ lint:
25
+ if: startsWith(github.ref_name, 'beta')
26
+ needs: build_and_test
27
+ uses: homebridge/.github/.github/workflows/eslint.yml@latest
28
+
29
+ # 3️⃣ Publish beta to NPM (OIDC — id-token required here and in the reusable workflow)
30
+ beta-publish:
31
+ if: startsWith(github.ref_name, 'beta')
32
+ needs: lint
33
+ permissions:
34
+ id-token: write
35
+ uses: homebridge/.github/.github/workflows/npm-publish-esm-oidc.yml@latest
36
+ with:
37
+ tag: 'beta'
38
+ dynamically_adjust_version: true
39
+ npm_version_command: 'pre'
40
+ pre_id: 'beta'
41
+
42
+ # 4️⃣ Create GitHub pre-release
43
+ beta-pre-release:
44
+ if: startsWith(github.ref_name, 'beta')
45
+ needs: beta-publish
46
+ uses: homebridge/.github/.github/workflows/pre-release.yml@latest
47
+ with:
48
+ npm_version: ${{ needs.beta-publish.outputs.NPM_VERSION }}
49
+ body: |
50
+ **Beta Release**
51
+ **Version**: v${{ needs.beta-publish.outputs.NPM_VERSION }}
52
+ [How To Test Beta Releases](https://github.com/homebridge-plugins/homebridge-august/wiki/Beta-Version)
53
+
54
+
55
+ # ─── STABLE RELEASE (branch: "latest") ───────────────────────────────────────
56
+
12
57
  # 1️⃣ Determine release type, ESM status, and branch name
13
58
  determine-release-type:
59
+ if: github.ref_name == 'latest'
14
60
  uses: homebridge/.github/.github/workflows/determine-release-type.yml@latest
15
61
  with:
16
62
  ref_name: ${{ github.ref_name }}
17
63
 
18
64
  # 2️⃣ Update version and changelog using the scripts
19
65
  update-version:
66
+ if: github.ref_name == 'latest'
20
67
  needs: determine-release-type
21
68
  uses: homebridge/.github/.github/workflows/update-version.yml@latest
22
69
  with:
23
70
  release_type: ${{ needs.determine-release-type.outputs.release_type }}
24
71
  is_esm: ${{ needs.determine-release-type.outputs.is_esm == 'true' }}
25
72
 
26
- # 3️⃣ Publish to NPM and create GitHub release
73
+ # 3️⃣ Publish to NPM and create GitHub release (OIDC — id-token required here and in the reusable workflow)
27
74
  publish-release:
75
+ if: github.ref_name == 'latest'
28
76
  needs: [determine-release-type, update-version]
29
77
  permissions:
30
78
  id-token: write
@@ -39,17 +87,17 @@ jobs:
39
87
 
40
88
  # 4️⃣ Promote branch if this is a prerelease (alpha/beta)
41
89
  promote-branch:
90
+ if: ${{ github.ref_name == 'latest' && needs.determine-release-type.outputs.release_type != 'latest' && needs.determine-release-type.outputs.release_type != 'skip' }}
42
91
  needs: [determine-release-type, publish-release]
43
- if: ${{ needs.determine-release-type.outputs.release_type != 'latest' && needs.determine-release-type.outputs.release_type != 'skip' }}
44
92
  uses: homebridge/.github/.github/workflows/promote-branch.yml@latest
45
93
  with:
46
94
  branch_name: ${{ needs.determine-release-type.outputs.branch_name }}
47
95
  release_type: ${{ needs.determine-release-type.outputs.release_type }}
48
96
  is_esm: ${{ needs.determine-release-type.outputs.is_esm == 'true' }}
49
97
 
50
- # 5️⃣ Notify if any previous job fails
98
+ # 5️⃣ Notify if any stable-release job fails
51
99
  workflow-failure:
52
- if: ${{ failure() }}
100
+ if: failure()
53
101
  needs: [determine-release-type, update-version, publish-release, promote-branch]
54
102
  uses: homebridge/.github/.github/workflows/report-failure.yml@latest
55
103
  with:
@@ -57,27 +105,16 @@ jobs:
57
105
  job_name: ${{ github.job }}
58
106
  run_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
59
107
 
60
- # 6️⃣ Sync GitHub Release body from CHANGELOG.md
61
- sync-github-release:
62
- name: Sync GitHub Release (reusable)
63
- needs: [determine-release-type, update-version, publish-release]
64
- uses: homebridge/.github/.github/workflows/sync-github-release.yml@latest
65
- with:
66
- version: ${{ needs.update-version.outputs.version }}
67
- changelog_path: CHANGELOG.md
68
- tag_prefix: v
69
- secrets:
70
- repo_token: ${{ secrets.GITHUB_TOKEN }}
71
-
72
- # 7️⃣ Post to Discord
73
- github-releases-to-discord:
74
- name: Discord Webhooks
75
- needs: [determine-release-type, update-version, publish-release, sync-github-release]
108
+ # 6️⃣ Post to Discord (Beta + Stable)
109
+ discord:
110
+ name: Release Notifications
111
+ if: ${{ always() && ((startsWith(github.ref_name, 'beta') && needs.beta-publish.result == 'success') || (github.ref_name == 'latest' && needs.publish-release.result == 'success')) }}
112
+ needs: [beta-publish, update-version, publish-release]
76
113
  uses: homebridge/.github/.github/workflows/discord-webhooks.yml@latest
77
114
  with:
78
- title: "August Release"
115
+ title: ${{ startsWith(github.ref_name, 'beta') && 'Homebridge August Beta Release' || 'Homebridge August Release' }}
79
116
  description: |
80
- Version `v${{ needs.update-version.outputs.version }}`
81
- url: "https://github.com/homebridge-plugins/homebridge-august/releases/tag/v${{ needs.update-version.outputs.version }}"
117
+ Version `v${{ startsWith(github.ref_name, 'beta') && needs.beta-publish.outputs.NPM_VERSION || needs.update-version.outputs.version }}`
118
+ url: "https://github.com/homebridge-plugins/homebridge-august/releases/tag/v${{ startsWith(github.ref_name, 'beta') && needs.beta-publish.outputs.NPM_VERSION || needs.update-version.outputs.version }}"
82
119
  secrets:
83
120
  DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL_LATEST }}