{"id":22777057,"url":"https://github.com/cocreate-app/cocreate-observer","last_synced_at":"2026-02-04T22:02:24.073Z","repository":{"id":57102881,"uuid":"321520872","full_name":"CoCreate-app/CoCreate-observer","owner":"CoCreate-app","description":"Register a components init function \u0026 observe selector. The init function will be fired immedietly after detection of selector.","archived":false,"fork":false,"pushed_at":"2025-11-17T00:59:19.000Z","size":685,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-17T01:19:28.107Z","etag":null,"topics":["collaboration","html5-framework","javascript-framework","low-code","observer","realtime","realtime-framework","shared-editing"],"latest_commit_sha":null,"homepage":"https://cocreate.app/docs/observer","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CoCreate-app.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"CoCreate-app"}},"created_at":"2020-12-15T01:39:04.000Z","updated_at":"2025-11-16T23:36:41.000Z","dependencies_parsed_at":"2023-11-15T03:23:08.352Z","dependency_job_id":"f68cb627-12d2-43ce-9879-270cf10abeed","html_url":"https://github.com/CoCreate-app/CoCreate-observer","commit_stats":{"total_commits":612,"total_committers":11,"mean_commits":55.63636363636363,"dds":0.423202614379085,"last_synced_commit":"e87f0fbf7e612bd31a9e598ff1f501549aeaec49"},"previous_names":[],"tags_count":223,"template":false,"template_full_name":null,"purl":"pkg:github/CoCreate-app/CoCreate-observer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoCreate-app%2FCoCreate-observer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoCreate-app%2FCoCreate-observer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoCreate-app%2FCoCreate-observer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoCreate-app%2FCoCreate-observer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CoCreate-app","download_url":"https://codeload.github.com/CoCreate-app/CoCreate-observer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoCreate-app%2FCoCreate-observer/sbom","scorecard":{"id":31039,"data":{"date":"2025-08-11","repo":{"name":"github.com/CoCreate-app/CoCreate-observer","commit":"e0fb69be4d3453baab3874f8eab1c5071235384b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/automated.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/CoCreate-app/CoCreate-observer/automated.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/automated.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/CoCreate-app/CoCreate-observer/automated.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/automated.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/CoCreate-app/CoCreate-observer/automated.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/automated.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/CoCreate-app/CoCreate-observer/automated.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/automated.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/CoCreate-app/CoCreate-observer/automated.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/automated.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/CoCreate-app/CoCreate-observer/automated.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/manual.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/CoCreate-app/CoCreate-observer/manual.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/manual.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/CoCreate-app/CoCreate-observer/manual.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/manual.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/CoCreate-app/CoCreate-observer/manual.yml/master?enable=pin","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/automated.yml:1","Warn: no topLevel permission defined: .github/workflows/manual.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}}]},"last_synced_at":"2025-08-14T19:07:31.119Z","repository_id":57102881,"created_at":"2025-08-14T19:07:31.119Z","updated_at":"2025-08-14T19:07:31.119Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29097201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T21:05:08.033Z","status":"ssl_error","status_checked_at":"2026-02-04T21:04:53.031Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["collaboration","html5-framework","javascript-framework","low-code","observer","realtime","realtime-framework","shared-editing"],"created_at":"2024-12-11T19:12:49.304Z","updated_at":"2026-02-04T22:02:24.007Z","avatar_url":"https://github.com/CoCreate-app.png","language":"JavaScript","funding_links":["https://github.com/sponsors/CoCreate-app"],"categories":[],"sub_categories":[],"readme":"# CoCreate-observer\r\n\r\nRegister a components init function \u0026 observe selector. The init function will be fired immedietly after detection of selector. Take it for a spin in our [playground!](https://cocreate.app/docs/observer)\r\n\r\n![minified](https://img.badgesize.io/https://cdn.cocreate.app/observer/latest/CoCreate-observer.min.js?style=flat-square\u0026label=minified\u0026color=orange)\r\n![gzip](https://img.badgesize.io/https://cdn.cocreate.app/observer/latest/CoCreate-observer.min.js?compression=gzip\u0026style=flat-square\u0026label=gzip\u0026color=yellow)\r\n![brotli](https://img.badgesize.io/https://cdn.cocreate.app/observer/latest/CoCreate-observer.min.js?compression=brotli\u0026style=flat-square\u0026label=brotli)\r\n![GitHub latest release](https://img.shields.io/github/v/release/CoCreate-app/CoCreate-observer?style=flat-square)\r\n![License](https://img.shields.io/github/license/CoCreate-app/CoCreate-observer?style=flat-square)\r\n![Hiring](https://img.shields.io/static/v1?style=flat-square\u0026label=\u0026message=Hiring\u0026color=blueviolet)\r\n\r\n![CoCreate-observer](https://cdn.cocreate.app/docs/CoCreate-observer.gif)\r\n\r\n## [Docs \u0026 Demo](https://cocreate.app/docs/observer)\r\n\r\nFor a complete guide and working demo refer to the [doumentation](https://cocreate.app/docs/observer)\r\n\r\n# Table of Contents\r\n\r\n-   [Table of Contents](#table-of-contents)\r\n-   [Installation](#installation)\r\n-   [Code Examples](#examples)\r\n-   [Parameter Description](#announcements)\r\n-   [Announcements](#announcements)\r\n-   [Roadmap](#roadmap)\r\n-   [Contributing](#contributing)\r\n-   [About](#about)\r\n-   [License](#license)\r\n\r\n\u003ca name=\"installation\"\u003e\u003c/a\u003e## Code Examples\r\n\r\n# Installation\r\n\r\nYou can install CoCreate-observer using the following methods:\r\n\r\n**CDN**\r\n\r\n```html\r\n\u003cscript src=\"[https://cdn.cocreate.app/observer/latest/CoCreate-observer.min.js](https://cdn.cocreate.app/observer/latest/CoCreate-observer.min.js)\"\u003e\u003c/script\u003e\r\n```\r\n\r\n**npm**\r\n\r\n```shell\r\n$ npm i @cocreate/observer\r\n```\r\n\r\n**yarn**\r\n\r\n```shell\r\n$ yarn install @cocreate/observer\r\n```\r\n\r\n\u003ca name=\"examples\"\u003e\u003c/a\u003e\r\n\r\n# Code Examples\r\n\r\n```javascript\r\n// Initialize an observer\r\nCoCreate.observer.init({\r\n\tname: \"my-observer\",\r\n\ttypes: [\"attributes\"],\r\n\tselector: \".my-element\",\r\n\tcallback: function (mutation) {\r\n\t\tconsole.log(\"Mutation occurred:\", mutation);\r\n\t}\r\n});\r\n```\r\n\r\n\u003ca name=\"parameter\"\u003e\u003c/a\u003e\r\n\r\n# Parameter Description\r\n\r\nThe `init` function takes a configuration object with the following key parameters:\r\n\r\n-   `name`: A unique name for the observer.\r\n-   `types`: An array of mutation types to observe (e.g., \"childList\", \"attributes\").\r\n-   `selector`: A CSS selector to target elements.\r\n-   `callback`: The function to be executed when a mutation is detected.\r\n\r\n\u003ca name=\"announcements\"\u003e\u003c/a\u003e\r\n\r\n# Announcements\r\n\r\nAll updates to this library are documented in our [CHANGELOG](https://github.com/CoCreate-app/CoCreate-observer/blob/master/CHANGELOG.md) and [releases](https://github.com/CoCreate-app/CoCreate-observer/releases). You may also subscribe to email for releases and breaking changes.\r\n\r\n\u003ca name=\"roadmap\"\u003e\u003c/a\u003e\r\n\r\n# Roadmap\r\n\r\nIf you are interested in the future direction of this project, please take a look at our open [issues](https://github.com/CoCreate-app/CoCreate-observer/issues) and [pull requests](https://github.com/CoCreate-app/CoCreate-observer/pulls). We are currently focused on improving performance for large-scale applications and adding support for custom mutation types. We would love to hear your feedback.\r\n\r\n\u003ca name=\"contribute\"\u003e\u003c/a\u003e\r\n\r\n# Contributing\r\n\r\nWe welcome contributions of all kinds, including bug fixes, new features, documentation improvements, and performance optimizations. We encourage community contributions to our libraries (you might even score some nifty swag), please see our [CONTRIBUTING](https://github.com/CoCreate-app/CoCreate-observer/blob/master/CONTRIBUTING.md) guide for details.\r\n\r\nWe want this library to be community-driven, and CoCreate led. We need your help to realize this goal. To help make sure we are building the right things in the right order, we ask that you create [issues](https://github.com/CoCreate-app/CoCreate-observer/issues) and [pull requests](https://github.com/CoCreate-app/CoCreate-observer/pulls) or merely upvote or comment on existing issues or pull requests.\r\n\r\nWe appreciate your continued support, thank you!\r\n\r\n\u003ca name=\"about\"\u003e\u003c/a\u003e\r\n\r\n# About\r\n\r\nCoCreate-observer is a JavaScript library that simplifies the process of monitoring changes in the DOM (Document Object Model). It provides a robust and efficient way to detect and respond to mutations, such as changes to attributes, additions or removals of nodes, and modifications to text content. CoCreate-observer allows developers to easily register callbacks that are triggered when specific elements matching a selector undergo the specified mutations.\r\n\r\nKey features include:\r\n\r\n-   Efficient selector matching\r\n-   Debouncing to optimize performance\r\n-   Flexible configuration options\r\n-   Cross-browser compatibility\r\n\r\nCoCreate-observer is part of the CoCreate suite of open-source tools designed to accelerate web development and empower developers to build dynamic, interactive applications more efficiently. CoCreate aims to provide a comprehensive and modular ecosystem for modern web development.\r\n\r\nPlease Email the Developer Experience Team [here](mailto:develop@cocreate.app) in case of any queries.\r\n\r\nCoCreate-observer is maintained and funded by CoCreate. The names and logos for CoCreate are trademarks of CoCreate, LLC.\r\n\r\n\u003ca name=\"license\"\u003e\u003c/a\u003e\r\n\r\n# License\r\n\r\nThis software is dual-licensed under the GNU Affero General Public License version 3 (AGPLv3) and a commercial license.\r\n\r\n-   **Open Source Use**: For open-source projects and non-commercial use, this software is available under the AGPLv3. The AGPLv3 allows you to freely use, modify, and distribute this software, provided that all modifications and derivative works are also licensed under the AGPLv3. For the full license text, see the [LICENSE file](https://github.com/CoCreate-app/CoCreate-observer/blob/master/LICENSE).\r\n\r\n-   **Commercial Use**: For-profit companies and individuals intending to use this software for commercial purposes must obtain a commercial license. The commercial license is available when you sign up for an API key on our [website](https://cocreate.app). This license permits proprietary use and modification of the software without the copyleft requirements of the AGPLv3. It is ideal for integrating this software into proprietary commercial products and applications.\r\n\r\nPlease ensure you understand and comply with the appropriate license terms for your use case.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcocreate-app%2Fcocreate-observer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcocreate-app%2Fcocreate-observer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcocreate-app%2Fcocreate-observer/lists"}