SPDXVersion: SPDX-2.1
DataLicense: CC0-1.0
SPDXID: SPDXRef-DOCUMENT
DocumentName: project
DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-7c702e57-fb9b-4855-9567-ce39d01a0b86
Creator: Person: Anonymous ()
Creator: Organization: Anonymous ()
Creator: Tool: reuse-6.1.0
Created: 2026-05-13T12:59:02Z
CreatorComment: This document was created automatically using available reuse information consistent with REUSE.
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-041b80cb7407b1cc59f607e449e037ad
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-63f11628153eb59e761ea293422001cb
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8fd32224d080851f7b012a645e7ccf93
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a2aa65ddac52a0f4ad63030b7ea92328
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a8fd0ee5aa86958476593d251b978e35
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-be8f05ee6a431aa1f8f363d83f31b18a
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-81e98f1ee4c6cb81a7bd774b5dbb7b74
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ae39448ad4229f8f72e4d91136911b90
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-0455c2777cb87594270a199f5e341c0c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ce2f9ffe71200828656890f09d13befd
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c83df801fb369d2069dc4a947aeca814
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1caf0f063cabaaf283696ac1c76a590c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-56bb853c82b396d22570e0a689ef3e41
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-eab6ae3d0e7f7bbc9ecd4eb1ffa9c0d7
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-0b83a92e8c90dfdf1b49f0b35ac6e729
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-dc8c94cf41141c34a49b417a9f3e1d64
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8effc75368a2206eec88283da89ce38a
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a897454f056f992c091e44fdc30e2c13
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f0d08f5027b887758cc5d283fa99b225
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8fc2b4363913a7d8200eaf5c1bb927ad
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b66fb6054c752ac4488be1e24cad7972
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-cd90371a9118b8210686491134d0a0df
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b127233efc892f45688cbc6abd900b09
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-986871ede40c8907a3532fab5c48f9a4
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a4093ef69cb5369c9afb09bbb812ea33
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7388e1de496e8155498f0658aca2fa1e
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b7f7b86ae8842404047c8143e1841adf
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e16c5be80a007ffd6d32e7bd70c929b3
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a2c3410e93a1e3a15cd0bb550b46358d
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-bbd10b3b707d7859dafd828af60d607d
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-0495b18a59479e9854c50a6a344ad94c
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d947f7e9ba24971ab8bf7f23b1ee4d08
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1efcf6661f6a80e76051dcf7fdf3ab91
FileName: ./.editorconfig
SPDXID: SPDXRef-041b80cb7407b1cc59f607e449e037ad
FileChecksum: SHA1: e0bfc606dc8b9a9bbb670593feab485827c0fee1
LicenseConcluded: NOASSERTION
LicenseInfoInFile: WTFPL
FileCopyrightText: Copyright 2021 林博仁(Buo-ren, Lin)
FileName: ./.gitattributes
SPDXID: SPDXRef-63f11628153eb59e761ea293422001cb
FileChecksum: SHA1: 57cce264752ff2838e20e7ae3ab253af950673e0
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2024 林博仁(Buo-ren Lin)
FileName: ./.github/workflows/README.md
SPDXID: SPDXRef-8fd32224d080851f7b012a645e7ccf93
FileChecksum: SHA1: 9d151e013d56ae3168718e6851b7aa96259d49f0
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 林博仁(Buo-ren Lin)
FileName: ./.github/workflows/check-potential-problems.yml
SPDXID: SPDXRef-a2aa65ddac52a0f4ad63030b7ea92328
FileChecksum: SHA1: 08a5e2a52176b1c6520cb16c3c8dcb6ae3cb530d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2024 林博仁(Buo-ren Lin)
FileName: ./.github/workflows/playwright.yml
SPDXID: SPDXRef-a8fd0ee5aa86958476593d251b978e35
FileChecksum: SHA1: de1e954d3a30f4c9499ba76ea9a706dcd4637c4c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: Copyright 2026 Buo-ren Lin
FileName: ./.github/workflows/release.yml
SPDXID: SPDXRef-be8f05ee6a431aa1f8f363d83f31b18a
FileChecksum: SHA1: 56df8a84589740641c0840a92232f9078bf5f473
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2024 林博仁(Buo-ren Lin)
FileName: ./.gitignore
SPDXID: SPDXRef-81e98f1ee4c6cb81a7bd774b5dbb7b74
FileChecksum: SHA1: 805dcdba8a907ef1d6876bf60fe4458a723f119e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2022 林博仁(Buo-ren, Lin)
FileName: ./.gitlab-ci.yml
SPDXID: SPDXRef-ae39448ad4229f8f72e4d91136911b90
FileChecksum: SHA1: f81152c4d1b2f53c77688939549215c9ee5cbbfe
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2024 林博仁(Buo-ren Lin)
FileName: ./.gitmodules
SPDXID: SPDXRef-0455c2777cb87594270a199f5e341c0c
FileChecksum: SHA1: e8685d141b9ee8440b27343d9c704526a253122f
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2024 林博仁(Buo-ren Lin)
FileName: ./.markdownlint.yml
SPDXID: SPDXRef-ce2f9ffe71200828656890f09d13befd
FileChecksum: SHA1: ae78a301a8f39cb5e34eca04e81b74bc8d0c0a6a
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2024 林博仁(Buo-ren Lin)
FileName: ./.pre-commit-config.yaml
SPDXID: SPDXRef-c83df801fb369d2069dc4a947aeca814
FileChecksum: SHA1: db6397097023fe6a16aa5e59754f5c51fa3491fc
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2026 林博仁(Buo-ren Lin)
FileName: ./.shellcheckrc
SPDXID: SPDXRef-1caf0f063cabaaf283696ac1c76a590c
FileChecksum: SHA1: 1a0742d66206611670ccf702f9886b54e4f39dfd
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0+
FileCopyrightText: Copyright 2025 林博仁(Buo-ren Lin)
FileName: ./.yamllint
SPDXID: SPDXRef-56bb853c82b396d22570e0a689ef3e41
FileChecksum: SHA1: 87355465f7ef3eb23a1d99b52f267fa4d371dc8c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2021 林博仁(Buo-ren, Lin)
FileName: ./README.md
SPDXID: SPDXRef-eab6ae3d0e7f7bbc9ecd4eb1ffa9c0d7
FileChecksum: SHA1: 018c821e59eb3d1c4732761bdcc4ee78dad90852
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 林博仁(Buo-ren Lin)
FileName: ./Vagrantfile
SPDXID: SPDXRef-0b83a92e8c90dfdf1b49f0b35ac6e729
FileChecksum: SHA1: 42a02c61ccd875b31277f8f78dc9ee9faf99679d
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0+
FileCopyrightText: Copyright 2025 林博仁(Buo-ren Lin)
FileName: ./compose.yml
SPDXID: SPDXRef-dc8c94cf41141c34a49b417a9f3e1d64
FileChecksum: SHA1: 63b71f814c69c68dd2c6c1a026b99874407098a8
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2026 林博仁(Buo-ren Lin)
FileName: ./continuous-integration/create-gitlab-release.sh
SPDXID: SPDXRef-8effc75368a2206eec88283da89ce38a
FileChecksum: SHA1: 992317a1a170596314d4b7dc00b4386eaa5dc113
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2024 林博仁(Buo-ren Lin)
FileName: ./continuous-integration/do-static-analysis.install-system-deps.sh
SPDXID: SPDXRef-a897454f056f992c091e44fdc30e2c13
FileChecksum: SHA1: a3616f24dfd523456000580962b2ee10cb8ac9c3
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2026 林博仁(Buo-ren Lin)
FileName: ./continuous-integration/do-static-analysis.sh
SPDXID: SPDXRef-f0d08f5027b887758cc5d283fa99b225
FileChecksum: SHA1: 12b37ef685f574129d25586c569207e567684fdf
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2025 林博仁(Buo-ren Lin)
FileName: ./continuous-integration/generate-build-artifacts.install-system-deps.sh
SPDXID: SPDXRef-8fc2b4363913a7d8200eaf5c1bb927ad
FileChecksum: SHA1: d3fc826400922ca00e2b36eb4c46c032619f53b2
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2026 林博仁(Buo-ren Lin)
FileName: ./continuous-integration/generate-build-artifacts.sh
SPDXID: SPDXRef-b66fb6054c752ac4488be1e24cad7972
FileChecksum: SHA1: ca5ca9f8cce074adbc88c67e333dcc37837d3a35
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2025 林博仁(Buo-ren Lin)
FileName: ./continuous-integration/generate-release-description.sh
SPDXID: SPDXRef-cd90371a9118b8210686491134d0a0df
FileChecksum: SHA1: 040b023f72902c7a94fab4e5544c862a900ce920
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2024 林博仁(Buo-ren Lin)
FileName: ./continuous-integration/patch-github-actions-sudo-security-policy.sh
SPDXID: SPDXRef-b127233efc892f45688cbc6abd900b09
FileChecksum: SHA1: 4ceed8f400a54eea2ac98bdbe8e17d3a04ccaa1c
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2024 林博仁(Buo-ren Lin)
FileName: ./continuous-integration/sudoers.d/90_allow_github_actions_default_envvars.sudoers
SPDXID: SPDXRef-986871ede40c8907a3532fab5c48f9a4
FileChecksum: SHA1: ab8894fa020fceefab2cd598a796e9ffd6c32302
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2024 林博仁(Buo-ren Lin)
FileName: ./continuous-integration/sudoers.d/README.md
SPDXID: SPDXRef-a4093ef69cb5369c9afb09bbb812ea33
FileChecksum: SHA1: bd347f52a5b7d9aa9c592e8f4bbd0d0503717358
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 林博仁(Buo-ren Lin)
FileName: ./continuous-integration/upload-gitlab-generic-packages.sh
SPDXID: SPDXRef-7388e1de496e8155498f0658aca2fa1e
FileChecksum: SHA1: 4c2ca71fa0a1c9afb646fc432828cf360a11cd5e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0
FileCopyrightText: Copyright 2024 林博仁(Buo-ren Lin)
FileName: ./dev-assets/README.md
SPDXID: SPDXRef-b7f7b86ae8842404047c8143e1841adf
FileChecksum: SHA1: ef30dd0668d95e48db6f7aefeb16b60582df6ee6
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 林博仁(Buo-ren Lin)
FileName: ./dev-assets/deploy-test-environment.sh
SPDXID: SPDXRef-e16c5be80a007ffd6d32e7bd70c929b3
FileChecksum: SHA1: 89eb3d5aef0f6eeb3caead2c4ea9cd702757b4e3
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0+
FileCopyrightText: Copyright 2026 林博仁(Buo-ren Lin)
FileName: ./functions.sh
SPDXID: SPDXRef-a2c3410e93a1e3a15cd0bb550b46358d
FileChecksum: SHA1: e7b4638a8e657bf8e54e1b1e45a2c8a4892f9243
LicenseConcluded: NOASSERTION
LicenseInfoInFile: CC-BY-SA-4.0+
FileCopyrightText: Copyright 2025 林博仁(Buo-ren Lin)
FileName: ./package-lock.json
SPDXID: SPDXRef-bbd10b3b707d7859dafd828af60d607d
FileChecksum: SHA1: c81ef88bcb59cda8b71a0976f8fe9119e03fda9e
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 林博仁(Buo-ren Lin)
FileName: ./package.json
SPDXID: SPDXRef-0495b18a59479e9854c50a6a344ad94c
FileChecksum: SHA1: 9f9f7afd07693ed8d7af9b3290e639eaf4ad3452
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: SPDX-FileCopyrightText: 2026 林博仁(Buo-ren Lin)
FileName: ./playwright.config.ts
SPDXID: SPDXRef-d947f7e9ba24971ab8bf7f23b1ee4d08
FileChecksum: SHA1: a3a8675afafb7c40b5a954271606f1e14e896fda
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: Copyright 2026 Buo-ren Lin
FileName: ./tests/example.spec.ts
SPDXID: SPDXRef-1efcf6661f6a80e76051dcf7fdf3ab91
FileChecksum: SHA1: a84ea6b58e07e3440ebb86146cfbbc1fd798da3b
LicenseConcluded: NOASSERTION
LicenseInfoInFile: AGPL-3.0-or-later
FileCopyrightText: Copyright 2026 Buo-ren Lin