homebridge-securitysystem 0.0.1-matter
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.
- package/.gitattributes +1 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +46 -0
- package/.github/ISSUE_TEMPLATE/feature-request.yml +17 -0
- package/.github/ISSUE_TEMPLATE/questions-answers.yml +40 -0
- package/.github/demo.jpg +0 -0
- package/.github/dependabot.yml +19 -0
- package/.github/release.yml +36 -0
- package/.github/workflows/build-package.yml +49 -0
- package/.github/workflows/bump-version.yml +59 -0
- package/.github/workflows/dependency-review.yml +26 -0
- package/.github/workflows/publish.yml +155 -0
- package/.github/workflows/stale-activity.yml +27 -0
- package/AGENTS.md +247 -0
- package/CHANGELOG.md +572 -0
- package/CODE_OF_CONDUCT.md +128 -0
- package/CONTRIBUTING.md +5 -0
- package/LICENSE +21 -0
- package/README.md +47 -0
- package/SECURITY.md +12 -0
- package/config.schema.json +934 -0
- package/dist/conditions/already-triggered-condition.d.ts +10 -0
- package/dist/conditions/already-triggered-condition.js +22 -0
- package/dist/conditions/already-triggered-condition.js.map +1 -0
- package/dist/conditions/arming-in-progress-condition.d.ts +10 -0
- package/dist/conditions/arming-in-progress-condition.js +21 -0
- package/dist/conditions/arming-in-progress-condition.js.map +1 -0
- package/dist/conditions/arming-lock-condition.d.ts +10 -0
- package/dist/conditions/arming-lock-condition.js +43 -0
- package/dist/conditions/arming-lock-condition.js.map +1 -0
- package/dist/conditions/condition.d.ts +22 -0
- package/dist/conditions/condition.js +19 -0
- package/dist/conditions/condition.js.map +1 -0
- package/dist/conditions/double-knock-condition.d.ts +24 -0
- package/dist/conditions/double-knock-condition.js +73 -0
- package/dist/conditions/double-knock-condition.js.map +1 -0
- package/dist/conditions/not-armed-condition.d.ts +10 -0
- package/dist/conditions/not-armed-condition.js +26 -0
- package/dist/conditions/not-armed-condition.js.map +1 -0
- package/dist/conditions/trigger-already-running-condition.d.ts +10 -0
- package/dist/conditions/trigger-already-running-condition.js +21 -0
- package/dist/conditions/trigger-already-running-condition.js.map +1 -0
- package/dist/constants/default-constant.d.ts +24 -0
- package/dist/constants/default-constant.js +27 -0
- package/dist/constants/default-constant.js.map +1 -0
- package/dist/constants/homekit-constant.d.ts +2 -0
- package/dist/constants/homekit-constant.js +3 -0
- package/dist/constants/homekit-constant.js.map +1 -0
- package/dist/constants/matter-constant.d.ts +21 -0
- package/dist/constants/matter-constant.js +61 -0
- package/dist/constants/matter-constant.js.map +1 -0
- package/dist/handlers/sensor-handler.d.ts +24 -0
- package/dist/handlers/sensor-handler.js +63 -0
- package/dist/handlers/sensor-handler.js.map +1 -0
- package/dist/handlers/state-handler.d.ts +49 -0
- package/dist/handlers/state-handler.js +204 -0
- package/dist/handlers/state-handler.js.map +1 -0
- package/dist/handlers/switch-handler.d.ts +28 -0
- package/dist/handlers/switch-handler.js +95 -0
- package/dist/handlers/switch-handler.js.map +1 -0
- package/dist/handlers/trip-handler.d.ts +44 -0
- package/dist/handlers/trip-handler.js +156 -0
- package/dist/handlers/trip-handler.js.map +1 -0
- package/dist/homekit/homekit-registrar.d.ts +12 -0
- package/dist/homekit/homekit-registrar.js +23 -0
- package/dist/homekit/homekit-registrar.js.map +1 -0
- package/dist/homekit/service-factory.d.ts +12 -0
- package/dist/homekit/service-factory.js +24 -0
- package/dist/homekit/service-factory.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/condition-context-interface.d.ts +14 -0
- package/dist/interfaces/condition-context-interface.js +2 -0
- package/dist/interfaces/condition-context-interface.js.map +1 -0
- package/dist/interfaces/hap-types-interface.d.ts +9 -0
- package/dist/interfaces/hap-types-interface.js +2 -0
- package/dist/interfaces/hap-types-interface.js.map +1 -0
- package/dist/interfaces/mqtt-status-payload-interface.d.ts +6 -0
- package/dist/interfaces/mqtt-status-payload-interface.js +2 -0
- package/dist/interfaces/mqtt-status-payload-interface.js.map +1 -0
- package/dist/interfaces/options-interface.d.ts +87 -0
- package/dist/interfaces/options-interface.js +2 -0
- package/dist/interfaces/options-interface.js.map +1 -0
- package/dist/interfaces/persisted-state-interface.d.ts +6 -0
- package/dist/interfaces/persisted-state-interface.js +2 -0
- package/dist/interfaces/persisted-state-interface.js.map +1 -0
- package/dist/interfaces/service-registry-interface.d.ts +10 -0
- package/dist/interfaces/service-registry-interface.js +2 -0
- package/dist/interfaces/service-registry-interface.js.map +1 -0
- package/dist/interfaces/system-state-interface.d.ts +22 -0
- package/dist/interfaces/system-state-interface.js +2 -0
- package/dist/interfaces/system-state-interface.js.map +1 -0
- package/dist/schemas/arming-lock-schema.d.ts +10 -0
- package/dist/schemas/arming-lock-schema.js +12 -0
- package/dist/schemas/arming-lock-schema.js.map +1 -0
- package/dist/schemas/error-schema.d.ts +4 -0
- package/dist/schemas/error-schema.js +7 -0
- package/dist/schemas/error-schema.js.map +1 -0
- package/dist/schemas/mode-request-schema.d.ts +10 -0
- package/dist/schemas/mode-request-schema.js +18 -0
- package/dist/schemas/mode-request-schema.js.map +1 -0
- package/dist/schemas/status-response-schema.d.ts +7 -0
- package/dist/schemas/status-response-schema.js +10 -0
- package/dist/schemas/status-response-schema.js.map +1 -0
- package/dist/schemas/trip-mode-request-schema.d.ts +9 -0
- package/dist/schemas/trip-mode-request-schema.js +24 -0
- package/dist/schemas/trip-mode-request-schema.js.map +1 -0
- package/dist/security-system-platform.d.ts +19 -0
- package/dist/security-system-platform.js +56 -0
- package/dist/security-system-platform.js.map +1 -0
- package/dist/security-system.d.ts +28 -0
- package/dist/security-system.js +169 -0
- package/dist/security-system.js.map +1 -0
- package/dist/services/command-service.d.ts +16 -0
- package/dist/services/command-service.js +65 -0
- package/dist/services/command-service.js.map +1 -0
- package/dist/services/configuration-service.d.ts +24 -0
- package/dist/services/configuration-service.js +189 -0
- package/dist/services/configuration-service.js.map +1 -0
- package/dist/services/event-bus-service.d.ts +12 -0
- package/dist/services/event-bus-service.js +17 -0
- package/dist/services/event-bus-service.js.map +1 -0
- package/dist/services/matter-service.d.ts +69 -0
- package/dist/services/matter-service.js +363 -0
- package/dist/services/matter-service.js.map +1 -0
- package/dist/services/mqtt-service.d.ts +16 -0
- package/dist/services/mqtt-service.js +97 -0
- package/dist/services/mqtt-service.js.map +1 -0
- package/dist/services/server-service.d.ts +28 -0
- package/dist/services/server-service.js +275 -0
- package/dist/services/server-service.js.map +1 -0
- package/dist/services/storage-service.d.ts +14 -0
- package/dist/services/storage-service.js +70 -0
- package/dist/services/storage-service.js.map +1 -0
- package/dist/services/webhook-service.d.ts +16 -0
- package/dist/services/webhook-service.js +68 -0
- package/dist/services/webhook-service.js.map +1 -0
- package/dist/tests/conditions.test.d.ts +1 -0
- package/dist/tests/conditions.test.js +175 -0
- package/dist/tests/conditions.test.js.map +1 -0
- package/dist/tests/matter-service.test.d.ts +1 -0
- package/dist/tests/matter-service.test.js +475 -0
- package/dist/tests/matter-service.test.js.map +1 -0
- package/dist/tests/mqtt-service.test.d.ts +1 -0
- package/dist/tests/mqtt-service.test.js +168 -0
- package/dist/tests/mqtt-service.test.js.map +1 -0
- package/dist/tests/sensor-handler.test.d.ts +1 -0
- package/dist/tests/sensor-handler.test.js +87 -0
- package/dist/tests/sensor-handler.test.js.map +1 -0
- package/dist/tests/server-service.test.d.ts +1 -0
- package/dist/tests/server-service.test.js +188 -0
- package/dist/tests/server-service.test.js.map +1 -0
- package/dist/tests/state-handler.test.d.ts +1 -0
- package/dist/tests/state-handler.test.js +276 -0
- package/dist/tests/state-handler.test.js.map +1 -0
- package/dist/tests/switch-handler.test.d.ts +1 -0
- package/dist/tests/switch-handler.test.js +186 -0
- package/dist/tests/switch-handler.test.js.map +1 -0
- package/dist/tests/trip-handler.test.d.ts +1 -0
- package/dist/tests/trip-handler.test.js +179 -0
- package/dist/tests/trip-handler.test.js.map +1 -0
- package/dist/timers/timer-manager.d.ts +31 -0
- package/dist/timers/timer-manager.js +118 -0
- package/dist/timers/timer-manager.js.map +1 -0
- package/dist/types/event-payload-map-type.d.ts +15 -0
- package/dist/types/event-payload-map-type.js +2 -0
- package/dist/types/event-payload-map-type.js.map +1 -0
- package/dist/types/event-type.d.ts +44 -0
- package/dist/types/event-type.js +20 -0
- package/dist/types/event-type.js.map +1 -0
- package/dist/types/matter-accessory-key-type.d.ts +7 -0
- package/dist/types/matter-accessory-key-type.js +2 -0
- package/dist/types/matter-accessory-key-type.js.map +1 -0
- package/dist/types/mode-type.d.ts +4 -0
- package/dist/types/mode-type.js +2 -0
- package/dist/types/mode-type.js.map +1 -0
- package/dist/types/origin-type.d.ts +9 -0
- package/dist/types/origin-type.js +11 -0
- package/dist/types/origin-type.js.map +1 -0
- package/dist/types/security-state-type.d.ts +11 -0
- package/dist/types/security-state-type.js +13 -0
- package/dist/types/security-state-type.js.map +1 -0
- package/dist/types/sensor-kind-type.d.ts +2 -0
- package/dist/types/sensor-kind-type.js +2 -0
- package/dist/types/sensor-kind-type.js.map +1 -0
- package/dist/types/service-result-type.d.ts +4 -0
- package/dist/types/service-result-type.js +2 -0
- package/dist/types/service-result-type.js.map +1 -0
- package/dist/utils/arming-util.d.ts +19 -0
- package/dist/utils/arming-util.js +24 -0
- package/dist/utils/arming-util.js.map +1 -0
- package/dist/utils/state-util.d.ts +8 -0
- package/dist/utils/state-util.js +29 -0
- package/dist/utils/state-util.js.map +1 -0
- package/docs/MQTT.md +50 -0
- package/package.json +64 -0
- package/src/@types/homebridge-lib.d.ts +11 -0
- package/src/conditions/already-triggered-condition.ts +24 -0
- package/src/conditions/arming-in-progress-condition.ts +23 -0
- package/src/conditions/arming-lock-condition.ts +50 -0
- package/src/conditions/condition.ts +31 -0
- package/src/conditions/double-knock-condition.ts +84 -0
- package/src/conditions/not-armed-condition.ts +30 -0
- package/src/conditions/trigger-already-running-condition.ts +23 -0
- package/src/constants/default-constant.ts +28 -0
- package/src/constants/homekit-constant.ts +2 -0
- package/src/constants/matter-constant.ts +69 -0
- package/src/handlers/sensor-handler.ts +78 -0
- package/src/handlers/state-handler.ts +257 -0
- package/src/handlers/switch-handler.ts +111 -0
- package/src/handlers/trip-handler.ts +193 -0
- package/src/homekit/homekit-registrar.ts +28 -0
- package/src/homekit/service-factory.ts +35 -0
- package/src/index.ts +9 -0
- package/src/interfaces/condition-context-interface.ts +15 -0
- package/src/interfaces/hap-types-interface.ts +11 -0
- package/src/interfaces/mqtt-status-payload-interface.ts +6 -0
- package/src/interfaces/options-interface.ts +116 -0
- package/src/interfaces/persisted-state-interface.ts +7 -0
- package/src/interfaces/service-registry-interface.ts +11 -0
- package/src/interfaces/system-state-interface.ts +25 -0
- package/src/schemas/arming-lock-schema.ts +12 -0
- package/src/schemas/error-schema.ts +7 -0
- package/src/schemas/mode-request-schema.ts +18 -0
- package/src/schemas/status-response-schema.ts +10 -0
- package/src/schemas/trip-mode-request-schema.ts +24 -0
- package/src/security-system-platform.ts +68 -0
- package/src/security-system.ts +199 -0
- package/src/services/command-service.ts +76 -0
- package/src/services/configuration-service.ts +224 -0
- package/src/services/event-bus-service.ts +21 -0
- package/src/services/matter-service.ts +446 -0
- package/src/services/mqtt-service.ts +123 -0
- package/src/services/server-service.ts +327 -0
- package/src/services/storage-service.ts +80 -0
- package/src/services/webhook-service.ts +77 -0
- package/src/tests/conditions.test.ts +212 -0
- package/src/tests/matter-service.test.ts +610 -0
- package/src/tests/mqtt-service.test.ts +231 -0
- package/src/tests/sensor-handler.test.ts +116 -0
- package/src/tests/server-service.test.ts +238 -0
- package/src/tests/state-handler.test.ts +371 -0
- package/src/tests/switch-handler.test.ts +234 -0
- package/src/tests/trip-handler.test.ts +244 -0
- package/src/timers/timer-manager.ts +141 -0
- package/src/types/event-payload-map-type.ts +25 -0
- package/src/types/event-type.ts +61 -0
- package/src/types/matter-accessory-key-type.ts +33 -0
- package/src/types/mode-type.ts +4 -0
- package/src/types/origin-type.ts +9 -0
- package/src/types/security-state-type.ts +11 -0
- package/src/types/sensor-kind-type.ts +2 -0
- package/src/types/service-result-type.ts +4 -0
- package/src/utils/arming-util.ts +44 -0
- package/src/utils/state-util.ts +32 -0
- package/tsconfig.json +26 -0
- package/vitest.config.ts +8 -0
package/.gitattributes
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.github/workflows/*.lock.yml linguist-generated=true merge=ours
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
name: Bug Report
|
|
2
|
+
description: File a bug report
|
|
3
|
+
labels: [bug]
|
|
4
|
+
assignees:
|
|
5
|
+
- MiguelRipoll23
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thanks for taking the time to fill out this bug report!
|
|
11
|
+
- type: input
|
|
12
|
+
id: plugin-version
|
|
13
|
+
attributes:
|
|
14
|
+
label: Plugin version
|
|
15
|
+
description: Installed version of the plugin
|
|
16
|
+
placeholder: 1.0.0
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
- type: textarea
|
|
20
|
+
id: plugin-configuration
|
|
21
|
+
attributes:
|
|
22
|
+
label: Plugin configuration
|
|
23
|
+
description: Configuration of the plugin
|
|
24
|
+
validations:
|
|
25
|
+
required: true
|
|
26
|
+
- type: input
|
|
27
|
+
id: homebridge-version
|
|
28
|
+
attributes:
|
|
29
|
+
label: Homebridge version
|
|
30
|
+
description: Installed version of Homebridge
|
|
31
|
+
placeholder: 1.0.0
|
|
32
|
+
validations:
|
|
33
|
+
required: true
|
|
34
|
+
- type: textarea
|
|
35
|
+
id: what-happened
|
|
36
|
+
attributes:
|
|
37
|
+
label: What happened?
|
|
38
|
+
description: A description of the bug found plus the steps to reproduce the issue
|
|
39
|
+
validations:
|
|
40
|
+
required: true
|
|
41
|
+
- type: textarea
|
|
42
|
+
id: log
|
|
43
|
+
attributes:
|
|
44
|
+
label: Relevant log output
|
|
45
|
+
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
|
46
|
+
render: bash
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: Feature Request
|
|
2
|
+
description: Suggest a new feature
|
|
3
|
+
labels: [enhancement]
|
|
4
|
+
assignees:
|
|
5
|
+
- MiguelRipoll23
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thanks for taking the time to suggest new features!
|
|
11
|
+
- type: textarea
|
|
12
|
+
id: feature-description
|
|
13
|
+
attributes:
|
|
14
|
+
label: What are you missing?
|
|
15
|
+
description: A description of the feature suggested to be added
|
|
16
|
+
validations:
|
|
17
|
+
required: true
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Questions & Answers
|
|
2
|
+
description: Get an answer
|
|
3
|
+
labels: [question]
|
|
4
|
+
assignees:
|
|
5
|
+
- MiguelRipoll23
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thanks for taking the time to learn about this plugin!
|
|
11
|
+
- type: input
|
|
12
|
+
id: plugin-version
|
|
13
|
+
attributes:
|
|
14
|
+
label: Plugin version
|
|
15
|
+
description: Installed version of the plugin
|
|
16
|
+
placeholder: 1.0.0
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
- type: textarea
|
|
20
|
+
id: plugin-configuration
|
|
21
|
+
attributes:
|
|
22
|
+
label: Plugin configuration
|
|
23
|
+
description: Configuration of the plugin
|
|
24
|
+
validations:
|
|
25
|
+
required: true
|
|
26
|
+
- type: input
|
|
27
|
+
id: homebridge-version
|
|
28
|
+
attributes:
|
|
29
|
+
label: Homebridge version
|
|
30
|
+
description: Installed version of Homebridge
|
|
31
|
+
placeholder: 1.0.0
|
|
32
|
+
validations:
|
|
33
|
+
required: true
|
|
34
|
+
- type: textarea
|
|
35
|
+
id: what-question
|
|
36
|
+
attributes:
|
|
37
|
+
label: What's your question?
|
|
38
|
+
description: A description of the question using your use case and expected behavior
|
|
39
|
+
validations:
|
|
40
|
+
required: true
|
package/.github/demo.jpg
ADDED
|
Binary file
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
|
3
|
+
# Please see the documentation for all configuration options:
|
|
4
|
+
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
|
5
|
+
|
|
6
|
+
version: 2
|
|
7
|
+
updates:
|
|
8
|
+
- package-ecosystem: "github-actions"
|
|
9
|
+
directory: "/"
|
|
10
|
+
schedule:
|
|
11
|
+
interval: "daily"
|
|
12
|
+
|
|
13
|
+
- package-ecosystem: npm
|
|
14
|
+
directory: "/"
|
|
15
|
+
schedule:
|
|
16
|
+
interval: daily
|
|
17
|
+
time: "18:00"
|
|
18
|
+
timezone: Europe/Madrid
|
|
19
|
+
open-pull-requests-limit: 10
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
changelog:
|
|
2
|
+
exclude:
|
|
3
|
+
labels:
|
|
4
|
+
- ignore-for-release
|
|
5
|
+
|
|
6
|
+
categories:
|
|
7
|
+
- title: ☢️ Security
|
|
8
|
+
labels:
|
|
9
|
+
- security
|
|
10
|
+
- vulnerability
|
|
11
|
+
|
|
12
|
+
- title: 💥 Breaking Changes
|
|
13
|
+
labels:
|
|
14
|
+
- breaking
|
|
15
|
+
- breaking-change
|
|
16
|
+
|
|
17
|
+
- title: 🎉 New Features
|
|
18
|
+
labels:
|
|
19
|
+
- feature
|
|
20
|
+
|
|
21
|
+
- title: ✨ Enhancements
|
|
22
|
+
labels:
|
|
23
|
+
- enhancement
|
|
24
|
+
|
|
25
|
+
- title: 🐛 Bug Fixes
|
|
26
|
+
labels:
|
|
27
|
+
- bug
|
|
28
|
+
- bugfix
|
|
29
|
+
|
|
30
|
+
- title: 📦 Dependencies
|
|
31
|
+
labels:
|
|
32
|
+
- dependencies
|
|
33
|
+
|
|
34
|
+
- title: 🛠️ Other Changes
|
|
35
|
+
labels:
|
|
36
|
+
- "*"
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: Build package
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths-ignore:
|
|
8
|
+
- "**.md"
|
|
9
|
+
pull_request:
|
|
10
|
+
types: [opened, reopened, synchronize, ready_for_review, labeled, unlabeled]
|
|
11
|
+
paths-ignore:
|
|
12
|
+
- "**.md"
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
build-package:
|
|
16
|
+
name: Build package
|
|
17
|
+
if: ${{ !contains(github.event.pull_request.labels.*.name, 'ignore-for-release') }}
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
permissions:
|
|
20
|
+
contents: read
|
|
21
|
+
id-token: write
|
|
22
|
+
attestations: write
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- name: Checkout repository
|
|
26
|
+
uses: actions/checkout@v7
|
|
27
|
+
|
|
28
|
+
- name: Setup pnpm
|
|
29
|
+
uses: pnpm/action-setup@v6.0.10
|
|
30
|
+
with:
|
|
31
|
+
version: latest
|
|
32
|
+
|
|
33
|
+
- name: Setup node
|
|
34
|
+
uses: actions/setup-node@v7
|
|
35
|
+
with:
|
|
36
|
+
cache: "pnpm"
|
|
37
|
+
registry-url: https://registry.npmjs.org/
|
|
38
|
+
|
|
39
|
+
- name: Build package
|
|
40
|
+
run: |
|
|
41
|
+
pnpm install --frozen-lockfile
|
|
42
|
+
pnpm run build
|
|
43
|
+
pnpm pack
|
|
44
|
+
|
|
45
|
+
- name: Attest build provenance
|
|
46
|
+
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
|
|
47
|
+
uses: actions/attest-build-provenance@v4
|
|
48
|
+
with:
|
|
49
|
+
subject-path: "*.tgz"
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
name: Bump version
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
channel:
|
|
7
|
+
type: choice
|
|
8
|
+
default: beta
|
|
9
|
+
description: Pick channel
|
|
10
|
+
options:
|
|
11
|
+
- alpha
|
|
12
|
+
- beta
|
|
13
|
+
- stable
|
|
14
|
+
|
|
15
|
+
new-build-for-prerelease:
|
|
16
|
+
type: boolean
|
|
17
|
+
default: true
|
|
18
|
+
description: New build for prerelease
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
bump-version:
|
|
22
|
+
name: Bump version
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
permissions:
|
|
25
|
+
contents: write
|
|
26
|
+
pull-requests: write
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- name: Checkout branch
|
|
30
|
+
uses: actions/checkout@v7
|
|
31
|
+
|
|
32
|
+
- name: Setup node
|
|
33
|
+
uses: actions/setup-node@v7
|
|
34
|
+
with:
|
|
35
|
+
node-version: 24
|
|
36
|
+
|
|
37
|
+
- name: Get next version
|
|
38
|
+
uses: MiguelRipoll23/get-next-version@v3.2.1
|
|
39
|
+
id: get-next-version
|
|
40
|
+
with:
|
|
41
|
+
channel: ${{ inputs.channel }}
|
|
42
|
+
new-build-for-prerelease: ${{ inputs.new-build-for-prerelease }}
|
|
43
|
+
|
|
44
|
+
- name: Update version
|
|
45
|
+
run: |
|
|
46
|
+
npm version --no-git-tag-version ${{ env.NEXT_VERSION }}
|
|
47
|
+
env:
|
|
48
|
+
NEXT_VERSION: ${{ steps.get-next-version.outputs.next-version }}
|
|
49
|
+
|
|
50
|
+
- name: Create pull request
|
|
51
|
+
uses: peter-evans/create-pull-request@v8
|
|
52
|
+
with:
|
|
53
|
+
branch: version/${{ steps.get-next-version.outputs.next-version }}
|
|
54
|
+
commit-message: ${{ steps.get-next-version.outputs.next-version }}
|
|
55
|
+
title: Bump version to ${{ steps.get-next-version.outputs.next-version }}
|
|
56
|
+
body: Automated pull request triggered by a new release.
|
|
57
|
+
labels: new-release,ignore-for-release
|
|
58
|
+
reviewers: MiguelRipoll23
|
|
59
|
+
draft: true
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Dependency Review Action
|
|
2
|
+
#
|
|
3
|
+
# This Action will scan dependency manifest files that change as part of a Pull Request, surfacing known-vulnerable versions of the packages declared or updated in the PR. Once installed, if the workflow run is marked as required, PRs introducing known-vulnerable packages will be blocked from merging.
|
|
4
|
+
#
|
|
5
|
+
# Source repository: https://github.com/actions/dependency-review-action
|
|
6
|
+
# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
|
|
7
|
+
name: Review dependencies
|
|
8
|
+
on:
|
|
9
|
+
pull_request:
|
|
10
|
+
types: [opened, reopened, synchronize, ready_for_review]
|
|
11
|
+
paths-ignore:
|
|
12
|
+
- "**.md"
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
review-dependencies:
|
|
19
|
+
name: Review Dependencies
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
steps:
|
|
22
|
+
- name: Checkout Repository
|
|
23
|
+
uses: actions/checkout@v7
|
|
24
|
+
|
|
25
|
+
- name: Review Dependencies
|
|
26
|
+
uses: actions/dependency-review-action@v5
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
name: Publish package
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types:
|
|
6
|
+
- closed
|
|
7
|
+
branches:
|
|
8
|
+
- main
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
id-token: write
|
|
12
|
+
contents: write
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
create-tag:
|
|
16
|
+
name: Create tag
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
|
|
19
|
+
if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'new-release')
|
|
20
|
+
|
|
21
|
+
outputs:
|
|
22
|
+
tag-name: ${{ steps.get-tag-name.outputs.tag-name }}
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- name: Checkout branch
|
|
26
|
+
uses: actions/checkout@v7
|
|
27
|
+
|
|
28
|
+
- name: Get tag name
|
|
29
|
+
id: get-tag-name
|
|
30
|
+
run: |
|
|
31
|
+
branch_name="${{ github.event.pull_request.head.ref }}"
|
|
32
|
+
tag_name=$(echo $branch_name | sed 's/version\///')
|
|
33
|
+
echo "tag-name=$tag_name" >> $GITHUB_OUTPUT
|
|
34
|
+
|
|
35
|
+
- name: Create tag
|
|
36
|
+
run: |
|
|
37
|
+
git tag "${{ env.TAG_NAME }}"
|
|
38
|
+
env:
|
|
39
|
+
TAG_NAME: ${{ steps.get-tag-name.outputs.tag-name }}
|
|
40
|
+
|
|
41
|
+
- name: Push tag to origin
|
|
42
|
+
run: git push origin "${{ env.TAG_NAME }}"
|
|
43
|
+
env:
|
|
44
|
+
TAG_NAME: ${{ steps.get-tag-name.outputs.tag-name }}
|
|
45
|
+
|
|
46
|
+
create-release:
|
|
47
|
+
name: Create release
|
|
48
|
+
needs: [create-tag]
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
if: needs.create-tag.outputs.tag-name != ''
|
|
51
|
+
permissions:
|
|
52
|
+
contents: write
|
|
53
|
+
steps:
|
|
54
|
+
- name: Create release
|
|
55
|
+
uses: ncipollo/release-action@v1
|
|
56
|
+
with:
|
|
57
|
+
tag: "${{ needs.create-tag.outputs.tag-name }}"
|
|
58
|
+
prerelease: ${{ contains(needs.create-tag.outputs.tag-name, '-') }}
|
|
59
|
+
generateReleaseNotes: true
|
|
60
|
+
allowUpdates: true
|
|
61
|
+
|
|
62
|
+
update-changelog:
|
|
63
|
+
name: Update changelog
|
|
64
|
+
needs: [create-tag, create-release]
|
|
65
|
+
runs-on: ubuntu-latest
|
|
66
|
+
if: needs.create-tag.outputs.tag-name != ''
|
|
67
|
+
permissions:
|
|
68
|
+
contents: write
|
|
69
|
+
steps:
|
|
70
|
+
- name: Checkout branch
|
|
71
|
+
uses: actions/checkout@v7
|
|
72
|
+
with:
|
|
73
|
+
ref: main
|
|
74
|
+
|
|
75
|
+
- name: Build changelog entry from auto release notes
|
|
76
|
+
env:
|
|
77
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
78
|
+
TAG_NAME: ${{ needs.create-tag.outputs.tag-name }}
|
|
79
|
+
run: |
|
|
80
|
+
release_notes_text="$(
|
|
81
|
+
gh api \
|
|
82
|
+
repos/${{ github.repository }}/releases/tags/${TAG_NAME} \
|
|
83
|
+
--jq '.body'
|
|
84
|
+
)"
|
|
85
|
+
|
|
86
|
+
if [ -z "${release_notes_text}" ]; then
|
|
87
|
+
echo "Release notes were not generated. Skipping changelog update."
|
|
88
|
+
exit 0
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
current_date="$(date -u +%F)"
|
|
92
|
+
release_header="## ${TAG_NAME} - ${current_date}"
|
|
93
|
+
|
|
94
|
+
if [ -f CHANGELOG.md ] && grep -Fqx "${release_header}" CHANGELOG.md; then
|
|
95
|
+
echo "Changelog already contains ${release_header}. Skipping changelog update."
|
|
96
|
+
exit 0
|
|
97
|
+
fi
|
|
98
|
+
|
|
99
|
+
temporary_file_path="$(mktemp)"
|
|
100
|
+
{
|
|
101
|
+
echo "# Changelog"
|
|
102
|
+
echo
|
|
103
|
+
echo "${release_header}"
|
|
104
|
+
echo
|
|
105
|
+
echo "${release_notes_text}"
|
|
106
|
+
echo
|
|
107
|
+
if [ -f CHANGELOG.md ]; then
|
|
108
|
+
awk 'NR == 1 && $0 == "# Changelog" { next } { print }' CHANGELOG.md
|
|
109
|
+
fi
|
|
110
|
+
} > "${temporary_file_path}"
|
|
111
|
+
|
|
112
|
+
mv "${temporary_file_path}" CHANGELOG.md
|
|
113
|
+
|
|
114
|
+
- name: Commit changelog
|
|
115
|
+
run: |
|
|
116
|
+
git config user.name "github-actions[bot]"
|
|
117
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
118
|
+
git add CHANGELOG.md
|
|
119
|
+
if git diff --quiet --cached CHANGELOG.md; then
|
|
120
|
+
echo "No changelog updates to commit."
|
|
121
|
+
exit 0
|
|
122
|
+
fi
|
|
123
|
+
git commit -m "docs: update changelog for ${{ needs.create-tag.outputs.tag-name }}"
|
|
124
|
+
git push origin HEAD:main
|
|
125
|
+
|
|
126
|
+
publish-package:
|
|
127
|
+
name: Publish package
|
|
128
|
+
runs-on: ubuntu-latest
|
|
129
|
+
needs: [create-tag, create-release, update-changelog]
|
|
130
|
+
|
|
131
|
+
steps:
|
|
132
|
+
- name: Checkout branch
|
|
133
|
+
uses: actions/checkout@v7
|
|
134
|
+
|
|
135
|
+
- name: Setup pnpm
|
|
136
|
+
uses: pnpm/action-setup@v6.0.10
|
|
137
|
+
with:
|
|
138
|
+
version: latest
|
|
139
|
+
|
|
140
|
+
- name: Setup node
|
|
141
|
+
uses: actions/setup-node@v7
|
|
142
|
+
with:
|
|
143
|
+
node-version: 24
|
|
144
|
+
registry-url: https://registry.npmjs.org/
|
|
145
|
+
|
|
146
|
+
- name: Install dependencies
|
|
147
|
+
run: pnpm install --frozen-lockfile
|
|
148
|
+
|
|
149
|
+
- name: Get version
|
|
150
|
+
run: |
|
|
151
|
+
echo "NPM_VERSION=${{ needs.create-tag.outputs.tag-name }}" >> $GITHUB_ENV
|
|
152
|
+
|
|
153
|
+
- name: Publish package
|
|
154
|
+
run: |
|
|
155
|
+
pnpm publish --access public --no-git-checks --provenance --tag "$(if [[ $NPM_VERSION == *-* ]]; then echo beta; else echo latest; fi)"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time.
|
|
2
|
+
#
|
|
3
|
+
# You can adjust the behavior by modifying this file.
|
|
4
|
+
# For more information, see:
|
|
5
|
+
# https://github.com/actions/stale
|
|
6
|
+
name: Close stale activity
|
|
7
|
+
|
|
8
|
+
on:
|
|
9
|
+
schedule:
|
|
10
|
+
- cron: "19 9 * * *"
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
stale:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
permissions:
|
|
16
|
+
issues: write
|
|
17
|
+
pull-requests: write
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/stale@v11
|
|
21
|
+
with:
|
|
22
|
+
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
23
|
+
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed in a few days if no further activity occurs. Thank you for your contributions."
|
|
24
|
+
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed in a few days if no further activity occurs. Thank you for your contributions."
|
|
25
|
+
stale-issue-label: "stale"
|
|
26
|
+
stale-pr-label: "stale"
|
|
27
|
+
exempt-issue-labels: "feature,enhancement,unsupported,pinned"
|