
Research
/Security News
Weaponizing Discord for Command and Control Across npm, PyPI, and RubyGems.org
Socket researchers uncover how threat actors weaponize Discord across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.
@qlean/york-analytics
Advanced tools
`york-analytics` — это набор компонентов и утилит, призванный упростить сбор аналитических данных.
york-analytics
— это набор компонентов и утилит, призванный упростить сбор аналитических данных.
Для минимальной настройки необходимо добавить в корень приложения RootAnalyticsProvider
. После этого все Button
, Screen
и Page
начнут отправлять события автоматически.
import React from 'react'
import { RootAnalyticsProvider } from '@qlean/york-analytics'
const App = () => (
<RootAnalyticsProvider appId="exampleApp" trackEvent={console.log}>
// Остальной код приложения
</RootAnalyticsProvider>
)
Вся система работает через React Context. Ключевым модулем является AnalyticsProvider
, который передает дочерним элементам аналитический контекст. Провайдеры можно бесконечно вкладывать друг в друга, создавая новые контексты, при этом дочерние элементы будут брать информацию из ближайшего к ним провайдера.
У любого события есть как минимум 3 свойства: category
, label
и action
. По умолчанию к каждому событию добавляется свойство analyticsRoute
, с помощью которого можно понять где именнов приложении произошло событие. К событию можно добавить любое количество других данных.
{
category: String, // Категория события, как правило совпадает с названием экрана или страницы
label: String, // Название элемента, отправляющего событие
action: String, // Название действия
analyticsRoute: String // Генерируется автоматически из иерархии провайдеров
...analyticsPayload: Object, // Дополнительные данные, которые нужно приложить к событию
}
// Примеры:
{
category: 'ExampleButton',
label: 'doExampleAction',
action: 'click',
}
{
category: 'ExamplePage',
label: 'ExamplePage',
action: 'mount',
orderId: '123',
address: 'Просто улица, д. 1'
}
Стандартные названия действий содержатся в модуле `eventActionTypes`.
В RootAnalyticsProvider
передается проп trackEvent
- функция, которая принимает событие и передает его в транспорт. Транспорт может быть разный у разных приложений. После передачи этой функции, все дочерние провайдеры и подключенные компоненты получат к ней доступ через контекст.
Ряд компонентов йорка уже включает в себя аналитические модули.
Page
— автоматически создает аналитический контекст и отправляет событие pageView
. Категория события равна свойству name
Button
— автоматически отправляет событие click
при нажатии. Категория события берется из ближайшего провайдера.
Header
— автоматически отправляет события при клике на элементы, вызывающие коллбэки. Категория: header
.
Screen
— автоматически создает аналитический контекст и отправляет событие pageView
. Категория события равна свойству name
Button
— автоматически отправляет событие press
при нажатии. Категория события берется из ближайшего провайдера.
import React, { useContext } from 'react'
import PropTypes from 'prop-types'
import { eventActionTypes, useAnalytics } from '@qlean/york-analytics'
const CustomButton = ({ onClick, analyticsPayload, ...rest }) => {
const { trackEvent, category } = useAnalytics()
const handleClick = e => {
trackEvent({
category,
label: name,
action: eventActionTypes.click,
...analyticsPayload,
})
onClick(e)
}
return <button name={name} onClick={handleClick} {...rest} />
}
CustomButton.defaultProps = {
analyticsPayload: {},
}
CustomButton.propTypes = {
onClick: PropTypes.func.isRequired,
analyticsPayload: PropTypes.object,
}
export default CustomButton
FAQs
`york-analytics` — это набор компонентов и утилит, призванный упростить сбор аналитических данных.
We found that @qlean/york-analytics demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 9 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
Socket researchers uncover how threat actors weaponize Discord across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.
Security News
Socket now integrates with Bun 1.3’s Security Scanner API to block risky packages at install time and enforce your organization’s policies in local dev and CI.
Research
The Socket Threat Research Team is tracking weekly intrusions into the npm registry that follow a repeatable adversarial playbook used by North Korean state-sponsored actors.