poulet 0.0.6 → 0.1.1
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/README.md +268 -4
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +117 -0
- package/dist/index.d.ts +117 -0
- package/dist/index.global.js +2 -0
- package/dist/index.global.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/react.cjs +2 -0
- package/dist/react.cjs.map +1 -0
- package/dist/react.d.cts +16 -0
- package/dist/react.d.ts +16 -0
- package/dist/react.global.js +25 -0
- package/dist/react.global.js.map +1 -0
- package/dist/react.js +2 -0
- package/dist/react.js.map +1 -0
- package/package.json +70 -52
- package/LICENSE +0 -22
- package/dist/.gitkeep +0 -0
- package/dist/poulet.common.js +0 -959
- package/dist/poulet.js +0 -962
- package/dist/poulet.min.js +0 -7
- package/dist/poulet.mjs +0 -957
- package/lib/Core/Component/_copyAccessor.js +0 -3
- package/lib/Core/Component/_defineReactive.js +0 -46
- package/lib/Core/Component/_mergeMixins.js +0 -53
- package/lib/Core/Component/index.js +0 -139
- package/lib/Core/Directive/_stringParser.js +0 -61
- package/lib/Core/Directive/index.js +0 -93
- package/lib/Core/Observer.js +0 -32
- package/lib/Core/index.js +0 -140
- package/lib/Directives/Class.js +0 -26
- package/lib/Directives/Html.js +0 -7
- package/lib/Directives/Model.js +0 -57
- package/lib/Directives/On.js +0 -13
- package/lib/Directives/Show.js +0 -9
- package/lib/Directives/Style.js +0 -7
- package/lib/Directives/Text.js +0 -7
- package/lib/Directives/index.js +0 -6
- package/lib/Mixins/index.js +0 -0
- package/lib/get.js +0 -10
- package/lib/index.js +0 -6
- package/lib/set.js +0 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils.ts","../src/activity.ts","../src/antifraud.ts","../src/consent.ts","../src/transport.ts","../src/core.ts","../src/bug.ts","../src/index.ts","../src/react.tsx"],"names":["now","on","t","type","fn","onDoc","jitterMs","baseMs","pct","delta","filterPII","o","SUSPICIOUS","out","k","v","log","args","base64ToArrayBuffer","b64","c","lastActivity","unsub","getLastActivity","startActivityTracking","stopActivityTracking","touch","un1","un2","un3","un4","un5","un6","un7","f","LS_KEY","leader","becomeLeaderIfFree","sessionId","current","relinquishLeadership","handleStorageLeadership","onChange","listener","e","fingerprintLite","_a","analyticsAllowed","dntRespected","setDNTPolicy","respect","initConsent","defaultState","setConsent","flags","analyticsOn","cfg","queue","flushing","sign","body","keyData","key","sig","postBatch","items","sanitized","i","headers","blob","initTransport","config","flush","enqueue","payload","batch","session","hbTimer","unStorage","DEFAULTS","configure","openSession","id","fp","lead","startPayload","scheduleHeartbeats","closeSession","reason","stopHeartbeats","endPayload","loop","idle","vis","active","hb","next","getSessionIdSafe","reportBug","p","initialized","init","_b","_c","_d","trackEvent","name","props","ev","shutdown","getSessionId","Ctx","createContext","MetricsProvider","children","useEffect","jsx","useMetrics","useContext"],"mappings":"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","file":"react.js","sourcesContent":["// src/utils.ts\nexport const now = () => Date.now();\n\nexport const uuid = (): string =>\n (crypto?.randomUUID?.() ?? 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (crypto.getRandomValues(new Uint8Array(1))[0] & 0xf) >> 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n }));\n\nexport const isVisible = () => typeof document !== 'undefined' && document.visibilityState === 'visible';\n\nexport const on = <K extends keyof WindowEventMap>(t: Window, type: K, fn: (e: WindowEventMap[K]) => void) => {\n t.addEventListener(type, fn as any, { passive: true });\n return () => t.removeEventListener(type, fn as any);\n};\n\nexport const onDoc = <K extends keyof DocumentEventMap>(type: K, fn: (e: DocumentEventMap[K]) => void) => {\n document.addEventListener(type, fn as any, { passive: true });\n return () => document.removeEventListener(type, fn as any);\n};\n\nexport const clamp = (n: number, min: number, max: number) => Math.max(min, Math.min(max, n));\n\nexport const jitterMs = (baseMs: number, pct = 0.1) => {\n const delta = baseMs * pct;\n return baseMs + (Math.random() * 2 - 1) * delta;\n};\n\nexport const filterPII = (o: any): any => {\n if (!o || typeof o !== 'object') return o;\n const SUSPICIOUS = ['email', 'phone', 'password', 'ssn'];\n const out: any = Array.isArray(o) ? [] : {};\n for (const k of Object.keys(o)) {\n if (SUSPICIOUS.includes(k.toLowerCase())) continue;\n const v = (o as any)[k];\n out[k] = typeof v === 'object' ? filterPII(v) : v;\n }\n return out;\n};\n\nexport const log = (...args: any[]) => {\n if ((window as any).__POULET_DEBUG__) console.log('[poulet]', ...args);\n};\n\nexport const base64ToArrayBuffer = (b64: string) => Uint8Array.from(atob(b64), (c) => c.charCodeAt(0));\n","// src/activity.ts\nimport { isVisible, onDoc, on } from './utils';\n\nlet lastActivity = Date.now();\nlet unsub: Array<() => void> = [];\n\nexport const getLastActivity = () => lastActivity;\n\nexport const startActivityTracking = () => {\n stopActivityTracking();\n const touch = () => { lastActivity = Date.now(); };\n const un1 = onDoc('mousemove', touch);\n const un2 = onDoc('keydown', touch);\n const un3 = onDoc('scroll', touch);\n const un4 = onDoc('touchstart', touch);\n const un5 = on(window, 'focus', touch);\n const un6 = on(window, 'blur', touch);\n const un7 = onDoc('visibilitychange' as any, touch);\n unsub = [un1, un2, un3, un4, un5, un6, un7];\n};\n\nexport const stopActivityTracking = () => {\n unsub.forEach((f) => f());\n unsub = [];\n};\n\nexport const isActive = (idleSec: number) => {\n const idleMs = idleSec * 1000;\n return isVisible() && (Date.now() - lastActivity) < idleMs;\n};\n","// src/antifraud.ts\nconst LS_KEY = 'poulet_leader_session';\nlet leader = false;\n\nexport const becomeLeaderIfFree = (sessionId: string): boolean => {\n const current = localStorage.getItem(LS_KEY);\n if (!current) {\n localStorage.setItem(LS_KEY, sessionId);\n leader = true;\n return true;\n }\n leader = current === sessionId;\n return leader;\n};\n\nexport const relinquishLeadership = (sessionId: string) => {\n const current = localStorage.getItem(LS_KEY);\n if (current === sessionId) {\n localStorage.removeItem(LS_KEY);\n }\n leader = false;\n};\n\nexport const isLeader = () => leader;\n\nexport const handleStorageLeadership = (sessionId: string, onChange: (isLeader: boolean)=>void) => {\n const listener = (e: StorageEvent) => {\n if (e.key !== LS_KEY) return;\n const now = localStorage.getItem(LS_KEY);\n const newLeader = now === sessionId || !now;\n if (!now) { // try claim\n localStorage.setItem(LS_KEY, sessionId);\n onChange(true);\n leader = true;\n } else {\n leader = now === sessionId;\n onChange(leader);\n }\n };\n window.addEventListener('storage', listener);\n return () => window.removeEventListener('storage', listener);\n};\n\nexport const fingerprintLite = () => ({\n ua: navigator.userAgent,\n tz: Intl.DateTimeFormat().resolvedOptions().timeZone ?? 'UTC',\n dpr: window.devicePixelRatio || 1,\n});\n","// src/consent.ts\nimport type { ConsentState } from './types';\n\nlet analyticsAllowed = false;\nlet replayAllowed = false;\nlet state: ConsentState = 'pending';\nlet dntRespected = true;\n\nexport const setDNTPolicy = (respect: boolean) => { dntRespected = respect; };\n\nexport const initConsent = (defaultState: ConsentState) => {\n state = defaultState;\n if (dntRespected && typeof navigator !== 'undefined' && (navigator as any).doNotTrack === '1') {\n analyticsAllowed = false;\n replayAllowed = false;\n state = 'denied';\n }\n};\n\nexport const setConsent = (flags: { analytics?: boolean; replay?: boolean }) => {\n if (typeof flags.analytics === 'boolean') {\n analyticsAllowed = flags.analytics;\n state = analyticsAllowed ? 'granted' : 'denied';\n }\n if (typeof flags.replay === 'boolean') replayAllowed = flags.replay;\n};\n\nexport const consentFlags = () => ({ analytics: analyticsAllowed, replay: replayAllowed, state });\nexport const analyticsOn = () => analyticsAllowed === true;\nexport const replayOn = () => replayAllowed === true;\n","// src/transport.ts\nimport { base64ToArrayBuffer, filterPII, log } from './utils';\nimport type { OutgoingPayload } from './types';\n\ntype TransportConfig = {\n endpoint: string;\n projectKey: string;\n hmacPublicKey?: string; // base64; optional\n debug?: boolean;\n};\n\nlet cfg: TransportConfig;\nlet queue: OutgoingPayload[] = [];\nlet flushing = false;\n\nasync function sign(body: string): Promise<string | undefined> {\n if (!cfg.hmacPublicKey || !('crypto' in window)) return undefined;\n try {\n const keyData = base64ToArrayBuffer(cfg.hmacPublicKey);\n const key = await crypto.subtle.importKey('raw', keyData, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);\n const sig = await crypto.subtle.sign('HMAC', key, new TextEncoder().encode(body));\n return btoa(String.fromCharCode(...new Uint8Array(sig)));\n } catch {\n return undefined;\n }\n}\n\nasync function postBatch(items: OutgoingPayload[]) {\n const sanitized = items.map((i) => filterPII(i));\n const body = JSON.stringify({ projectKey: cfg.projectKey, items: sanitized });\n const sig = await sign(body);\n\n // Try Beacon first\n if (navigator.sendBeacon && !cfg.debug) {\n const headers = { type: 'application/json' };\n const blob = new Blob([body], headers);\n const ok = navigator.sendBeacon(cfg.endpoint + '/ingest', blob);\n if (ok) return true;\n }\n\n // Fallback fetch\n const res = await fetch(cfg.endpoint + '/ingest', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...(sig ? { 'x-signature': sig } : {}) },\n body\n });\n return res.ok;\n}\n\nexport function initTransport(config: TransportConfig) {\n cfg = config;\n window.addEventListener('online', flush);\n setInterval(flush, 5000);\n}\n\nexport function enqueue(payload: OutgoingPayload) {\n queue.push(payload);\n if (queue.length >= 10) void flush();\n}\n\nexport async function flush() {\n if (flushing || queue.length === 0) return;\n flushing = true;\n try {\n const batch = queue.splice(0, 20);\n const ok = await postBatch(batch);\n if (!ok) {\n // put back\n queue.unshift(...batch);\n log('flush failed, will retry');\n }\n } catch (e) {\n log('flush error', e);\n } finally {\n flushing = false;\n }\n}\n","// src/core.ts\nimport { jitterMs, log, now } from './utils';\nimport { startActivityTracking, stopActivityTracking, isActive, getLastActivity } from './activity';\nimport { becomeLeaderIfFree, handleStorageLeadership, relinquishLeadership, isLeader, fingerprintLite } from './antifraud';\nimport { analyticsOn, consentFlags } from './consent';\nimport { initTransport, enqueue, flush } from './transport';\nimport type { Config, SessionState, HeartbeatPayload, SessionStart, SessionEnd } from './types';\n\nlet config: Required<Config>;\nlet session: SessionState | null = null;\nlet hbTimer: number | null = null;\nlet unStorage: (() => void) | undefined;\n\nconst DEFAULTS: Required<Config> = {\n projectKey: '',\n endpoint: '',\n consent: { default: 'pending' },\n user: {},\n billing: { heartbeatSec: 15, idleSec: 60, maxHoursPerDay: 6 },\n privacy: { piiFilter: true, dntRespect: true, countryHint: 'FR' },\n security: { hmacPublicKey: undefined as any },\n features: { bugReporter: true, replay: false, sentryBridge: false },\n sampling: { heartbeats: 1, events: 1, bugs: 1 },\n debug: false,\n};\n\nexport function configure(cfg: Config) {\n config = { ...DEFAULTS, ...cfg, consent: { ...DEFAULTS.consent, ...cfg.consent } } as Required<Config>;\n (window as any).__POULET_DEBUG__ = !!config.debug;\n initTransport({\n endpoint: config.endpoint,\n projectKey: config.projectKey,\n hmacPublicKey: config.security.hmacPublicKey,\n debug: config.debug,\n });\n}\n\nexport function openSession() {\n if (session) return;\n const id = crypto.randomUUID();\n const fp = fingerprintLite();\n session = {\n sessionId: id,\n startedAt: now(),\n lastActivityAt: now(),\n active: true,\n leader: becomeLeaderIfFree(id),\n };\n if (unStorage) unStorage();\n unStorage = handleStorageLeadership(id, (lead) => {\n if (session) session.leader = lead;\n });\n\n startActivityTracking();\n\n const startPayload: SessionStart = {\n type: 'session.start',\n sessionId: id,\n ts: now(),\n projectKey: config.projectKey,\n ua: fp.ua,\n tz: fp.tz,\n dpr: fp.dpr,\n consentFlags: { analytics: analyticsOn(), replay: false },\n };\n enqueue(startPayload);\n scheduleHeartbeats();\n log('session opened', id);\n}\n\nexport function closeSession(reason: SessionEnd['reason']) {\n if (!session) return;\n stopHeartbeats();\n stopActivityTracking();\n relinquishLeadership(session.sessionId);\n const endPayload: SessionEnd = { type: 'session.end', sessionId: session.sessionId, ts: now(), reason };\n enqueue(endPayload);\n void flush();\n if (unStorage) unStorage();\n session = null;\n log('session closed', reason);\n}\n\nfunction scheduleHeartbeats() {\n stopHeartbeats();\n const loop = () => {\n if (!session) return;\n if (!analyticsOn()) return; // consent required\n // @ts-ignore\n const idle = (now() - getLastActivity()) >= config.billing.idleSec * 1000;\n const vis = document.visibilityState === 'visible';\n const active = vis && !idle && session.leader;\n const fp = fingerprintLite();\n\n // @ts-ignore\n if (Math.random() <= config.sampling.heartbeats && active) {\n const hb: HeartbeatPayload = {\n type: 'heartbeat',\n sessionId: session.sessionId,\n ts: now(),\n active: true,\n vis,\n idle: false,\n jitter: Math.random(),\n ua: fp.ua,\n tz: fp.tz,\n dpr: fp.dpr,\n purpose: 'billing',\n };\n enqueue(hb);\n }\n\n // @ts-ignore\n const next = jitterMs(config.billing.heartbeatSec * 1000, 0.1);\n hbTimer = window.setTimeout(loop, next);\n };\n // @ts-ignore\n hbTimer = window.setTimeout(loop, jitterMs(config.billing.heartbeatSec * 1000, 0.1));\n}\n\nfunction stopHeartbeats() {\n if (hbTimer) {\n clearTimeout(hbTimer);\n hbTimer = null;\n }\n}\n\nexport const getSessionIdSafe = () => session?.sessionId ?? null;\n","// src/bug.ts\nimport { enqueue } from './transport';\nimport type { BugPayload } from './types';\nimport { now } from './utils';\nimport { getSessionIdSafe } from './core';\n\nexport function reportBug(payload: {\n title: string; description?: string;\n severity?: 'blocker'|'major'|'minor'|'ux';\n attachments?: Blob[];\n}) {\n const sessionId = getSessionIdSafe();\n if (!sessionId) return;\n const p: BugPayload = {\n type: 'bug',\n sessionId,\n ts: now(),\n title: payload.title,\n description: payload.description,\n severity: payload.severity,\n hasCapture: !!(payload.attachments && payload.attachments.length > 0),\n purpose: 'diagnostics'\n };\n enqueue(p);\n // NOTE: upload des pièces jointes = hors scope core (peut passer par un autre endpoint)\n}\n","// src/index.ts\nimport { configure, openSession, closeSession, getSessionIdSafe } from './core';\nimport { setConsent as _setConsent, initConsent, setDNTPolicy, consentFlags } from './consent';\nimport { enqueue } from './transport';\nimport type { Config, EventPayload } from './types';\nimport { now } from './utils';\nexport * from './types';\nexport { reportBug } from './bug';\n\nlet initialized = false;\n\nexport function init(cfg: Config) {\n if (initialized) return;\n setDNTPolicy(cfg.privacy?.dntRespect ?? true);\n initConsent(cfg.consent?.default ?? 'pending');\n configure(cfg);\n // ouverture paresseuse : dès qu’il y a visibilité/activité\n if (document.visibilityState === 'visible') openSession();\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') openSession();\n });\n // Flush/close sur pagehide\n addEventListener('pagehide', () => closeSession('pagehide'));\n initialized = true;\n}\n\nexport function setConsent(flags: { analytics?: boolean; replay?: boolean }) {\n _setConsent(flags);\n if (document.visibilityState === 'visible') openSession();\n}\n\nexport function trackEvent(name: string, props?: Record<string, unknown>) {\n const sessionId = getSessionIdSafe();\n if (!sessionId) return;\n const ev: EventPayload = {\n type: 'event',\n sessionId,\n ts: now(),\n name,\n props,\n purpose: 'diagnostics',\n };\n enqueue(ev);\n}\n\nexport function shutdown() {\n closeSession('shutdown');\n}\n\nexport function getSessionId() {\n return getSessionIdSafe();\n}\n\nexport function forgetMe() {\n // côté core : rien de persistant par défaut (queue en mémoire).\n // si tu ajoutes IndexedDB/localStorage pour queue offline, purge ici.\n // Pour l’exemple, on ne stocke pas persistantement.\n closeSession('shutdown');\n}\n\nexport const _consentFlags = consentFlags;\n","// src/react.tsx\nimport React, { createContext, useContext, useEffect } from 'react';\nimport type { Config } from './types';\nimport { init, trackEvent, reportBug, setConsent, shutdown, getSessionId } from './index';\n\nconst Ctx = createContext({ trackEvent, reportBug, setConsent, shutdown, getSessionId });\n\nexport const MetricsProvider: React.FC<{ config: Config; children: React.ReactNode }> = ({ config, children }) => {\n useEffect(() => { init(config); }, []); // eslint-disable-line\n return <Ctx.Provider value={{ trackEvent, reportBug, setConsent, shutdown, getSessionId }}>{children}</Ctx.Provider>;\n};\n\nexport const useMetrics = () => useContext(Ctx);\n"]}
|
package/package.json
CHANGED
|
@@ -1,64 +1,82 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "poulet",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Mesure du temps actif, événements et bugs pour rémunérer les testeurs (Web, RGPD, anti-fraude).",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "dist/index.cjs",
|
|
8
|
+
"module": "dist/index.mjs",
|
|
9
|
+
"unpkg": "dist/index.global.js",
|
|
10
|
+
"jsdelivr": "dist/index.global.js",
|
|
11
|
+
"exports": {
|
|
12
|
+
|
|
13
|
+
".": {
|
|
14
|
+
"browser": {
|
|
15
|
+
"import": "./dist/index.mjs",
|
|
16
|
+
"require": "./dist/index.cjs"
|
|
17
|
+
},
|
|
18
|
+
"import": "./dist/index.mjs",
|
|
19
|
+
"require": "./dist/index.cjs",
|
|
20
|
+
"default": "./dist/index.mjs"
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
"./react": {
|
|
24
|
+
"browser": {
|
|
25
|
+
"import": "./dist/react.mjs",
|
|
26
|
+
"require": "./dist/react.cjs"
|
|
27
|
+
},
|
|
28
|
+
"import": "./dist/react.mjs",
|
|
29
|
+
"require": "./dist/react.cjs",
|
|
30
|
+
"default": "./dist/react.mjs"
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
"./iife": "./dist/index.global.js",
|
|
34
|
+
"./types": "./dist/index.d.ts"
|
|
35
|
+
},
|
|
36
|
+
"browser": {
|
|
37
|
+
"express": false,
|
|
38
|
+
"cors": false
|
|
39
|
+
},
|
|
40
|
+
"types": "dist/index.d.ts",
|
|
12
41
|
"files": [
|
|
13
|
-
"
|
|
14
|
-
"
|
|
42
|
+
"dist",
|
|
43
|
+
"README.md",
|
|
44
|
+
"LICENSE"
|
|
45
|
+
],
|
|
46
|
+
"sideEffects": [
|
|
47
|
+
"dist/index.global.js"
|
|
15
48
|
],
|
|
16
49
|
"scripts": {
|
|
17
|
-
"build": "
|
|
18
|
-
"
|
|
19
|
-
"lint": "eslint
|
|
20
|
-
"
|
|
50
|
+
"build": "tsup",
|
|
51
|
+
"check": "tsc -p tsconfig.json --noEmit",
|
|
52
|
+
"lint": "eslint .",
|
|
53
|
+
"test": "echo \"(add vitest if needed)\"",
|
|
54
|
+
"prepublishOnly": "npm run check && npm run build"
|
|
21
55
|
},
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
"name": "Alex Toudic",
|
|
25
|
-
"mail": "alex@bigyouth.fr",
|
|
26
|
-
"url": "https://bigyouth.fr"
|
|
27
|
-
},
|
|
28
|
-
"license": "MIT",
|
|
29
|
-
"repository": {
|
|
30
|
-
"type": "git",
|
|
31
|
-
"url": "git+https://github.com/bigyouth/poulet.git"
|
|
32
|
-
},
|
|
33
|
-
"bugs": {
|
|
34
|
-
"url": "https://github.com/bigyouth/poulet/issues"
|
|
56
|
+
"peerDependencies": {
|
|
57
|
+
"react": ">=17"
|
|
35
58
|
},
|
|
36
59
|
"devDependencies": {
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"eslint-config-standard": "^6.2.1",
|
|
46
|
-
"eslint-plugin-promise": "^3.4.0",
|
|
47
|
-
"eslint-plugin-standard": "^2.0.1",
|
|
48
|
-
"mkdirp": "^0.5.1",
|
|
49
|
-
"rollup": "^0.41.4",
|
|
50
|
-
"rollup-plugin-babel": "^2.7.1",
|
|
51
|
-
"rollup-plugin-local-resolve": "^1.0.7",
|
|
52
|
-
"uglify-js": "^2.7.5",
|
|
53
|
-
"webpack": "^2.2.1"
|
|
60
|
+
"@types/node": "^20.11.30",
|
|
61
|
+
"@types/react": "^18.3.0",
|
|
62
|
+
"eslint": "^8.57.0",
|
|
63
|
+
"eslint-config-prettier": "^9.1.0",
|
|
64
|
+
"eslint-plugin-import": "^2.29.1",
|
|
65
|
+
"eslint-plugin-react": "^7.35.0",
|
|
66
|
+
"tsup": "^8.0.1",
|
|
67
|
+
"typescript": "^5.5.4"
|
|
54
68
|
},
|
|
69
|
+
"keywords": [
|
|
70
|
+
"metrics",
|
|
71
|
+
"heartbeat",
|
|
72
|
+
"web",
|
|
73
|
+
"testing",
|
|
74
|
+
"stripe",
|
|
75
|
+
"rgpd",
|
|
76
|
+
"fraud"
|
|
77
|
+
],
|
|
55
78
|
"dependencies": {
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
},
|
|
59
|
-
"browserify": {
|
|
60
|
-
"transform": [
|
|
61
|
-
"babelify"
|
|
62
|
-
]
|
|
79
|
+
"cors": "^2.8.5",
|
|
80
|
+
"express": "^5.1.0"
|
|
63
81
|
}
|
|
64
82
|
}
|
package/LICENSE
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2015 Alexandre Toudic
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
22
|
-
|
package/dist/.gitkeep
DELETED
|
File without changes
|