-
#150
51b862dThanks @leo-paz! - Improve published README and package metadata citation surfaces with canonical docs, OpenAPI, MCP, and agent discovery links. -
Updated dependencies [
51b862d]:- @outlit/core@1.5.3
-
#130
c37989dThanks @leo-paz! - Deprecate manual engaged and inactive stage helper usage while preserving wire compatibility. Activation remains the manual SDK stage; engaged and inactive are now documented as derived from tracked activity. -
Updated dependencies [
c37989d]:- @outlit/core@1.5.2
-
#113
36b1ce4Thanks @leo-paz! - Generate UUIDv7 identifiers on SDK events so ingestion can deduplicate retries consistently. -
Updated dependencies [
36b1ce4]:- @outlit/core@1.5.1
- #82
60a4633Thanks @leo-paz! - Remove the publiccustomerDomaintracking field from the SDK surface and makecustomerIdplus identify-time email linking the only supported customer-attribution path.
- Updated dependencies [
60a4633]:- @outlit/core@1.5.0
-
#78
d2f7b68Thanks @leo-paz! - Introduce the approved customer-identified tracking contract across the SDKs.- Promote
customerIdandcustomerDomainto top-level public identity fields. - Keep
identify()user-scoped while allowing customer metadata viacustomerId,customerDomain, andcustomerTraits. - Allow
track()to accept user-only, customer-only, or combined attribution. - Deprecate nested
traits.customerin favor of top-level customer traits.
- Promote
-
#79
31dc72aThanks @leo-paz! - Stop sending user and customer profile traits in payload-level browser identity on non-identify event batches. Profile updates now stay on identify events, while later track batches carry only attribution identifiers. -
#80
9c99955Thanks @leo-paz! - Serialize browser batch customer attribution into top-levelcustomerIdentityinstead of nesting customer fields underuserIdentity. This aligns the browser SDK with the platform ingest schema while keeping identify events customer-aware. -
Updated dependencies [
d2f7b68,9c99955]:- @outlit/core@1.4.5
-
#72
06bd548Thanks @rafa-thayto! - Add integrations commands (list, add, remove, status) with API-key and OAuth provider flows -
Updated dependencies [
06bd548]:- @outlit/core@1.4.4
-
#67
e8c4779Thanks @leo-paz! - fix: replace workspace:* with concrete version ranges to prevent protocol leak during npm publish -
Updated dependencies [
86db798]:- @outlit/core@1.4.3
- #46
32e8206Thanks @leo-paz! - Fix auto-identify for forms where email inputs lack anameattribute. React/JSX controlled components often omit name attributes, causing FormData to miss their values. Now reads unnamed inputs directly from the DOM during identity extraction so auto-identify works on these forms.
- #44
778f449Thanks @leo-paz! - Addclientprop toOutlitProviderfor sharing a single Outlit instance between imperative usage and React context. When provided, the provider uses the existing instance directly and does not callshutdown()on unmount. Uses a discriminated union type to enforce mutual exclusivity with config props at compile time.
-
#42
bde5685Thanks @leo-paz! - AdddisableTracking()method and consent state persistencedisableTracking()programmatically stops all tracking, flushes pending events, and persists the opt-out decision- Consent decisions (opt-in/opt-out) are persisted across sessions via localStorage and cookies
- On page load, persisted consent takes priority over the
autoTrackoption disableTrackingexposed via ReactuseOutlit()hook and VueuseOutlit()composable- CDN snippet updated to support
disableTrackingqueuing before SDK loads
-
#39
788b6b5Thanks @leo-paz! - Add Vue 3 support with plugin and composablesOutlitPluginfor easy Vue app installation with automatic pageview trackinguseOutlitcomposable for accessing the Outlit instanceuseOutlitUsercomposable for reactive user identity syncuseTrackcomposable for event tracking- New
@outlit/browser/vueentry point
- #27
dc430ecThanks @leo-paz! - Fix race condition where stage events (activate, engaged, inactive) were silently dropped when called before user identity was established. Events are now queued and flushed when setUser() or identify() is called.
- #25
066f8d3Thanks @leo-paz! - Update E2E test fixtures to use new namespace-based IIFE stub pattern with user and customer namespaces
- #23
22be5d0Thanks @leo-paz! - Update the script tag stub snippet to use a helper for cleaner method stubs.
-
#21
ae24b74Thanks @leo-paz! - fix: simplify SDK types to resolve TypeScript memory issues- Simplify
ServerIdentityandCustomerIdentifiertypes to avoid complex unions that caused TypeScript to require 8GB+ memory for type checking - Make
domainrequired inCustomerIdentifier- users must now provide domain when calling billing methods (customer.trialing,customer.paid,customer.churned) - Type checking now completes in ~1 second with normal memory usage
- Simplify
-
Updated dependencies [
ae24b74]:- @outlit/core@1.0.1
-
#19
6d95b23Thanks @leo-paz! - feat: add user and customer namespaces for stage and billing eventsBREAKING CHANGE: Stage and billing methods are now accessed via namespaces.
Before:
outlit.activate({ milestone: "onboarding" }); outlit.engaged({ days: 7 }); outlit.paid({ plan: "pro" }); outlit.churned({ reason: "cancelled" });
After:
// User journey stages outlit.user.activate({ milestone: "onboarding" }); outlit.user.engaged({ days: 7 }); outlit.user.inactive({ reason: "no_activity" }); // Customer billing status (requires identifier) outlit.customer.trialing({ domain: "acme.com" }); outlit.customer.paid({ domain: "acme.com", properties: { plan: "pro" } }); outlit.customer.churned({ stripeCustomerId: "cus_xxx", properties: { reason: "cancelled" }, });
Other changes:
- Add type constraints:
ServerIdentityrequires email or userId - Add type constraints:
CustomerIdentifierrequires customerId, stripeCustomerId, or domain - Add warning logs for URL parsing failures
- Add sendBeacon fallback warning and response.ok check
- Fix JSDoc import path in node client
- Add type constraints:
- Updated dependencies [
6d95b23]:- @outlit/core@1.0.0
- #17
7c11805Thanks @rafa-thayto! - Add typesVersions for legacy moduleResolution support
- #14
3feb1dbThanks @leo-paz! - Add sessionId to all browser events at the batch level, enabling session tracking from pageviews, forms, and custom events (not just engagement). Session tracking is now always initialized for sessionId management, even when engagement events are disabled.
- Updated dependencies [
3feb1db]:- @outlit/core@0.4.0
e09ca38Thanks @leo-paz! - New sdk events for discovered, signed up, activated, engaged, paid, churned
- Updated dependencies [
e09ca38]:- @outlit/core@0.3.0
-
Updated dependencies [
754f4ab]:- @outlit/core@0.2.2
-
Updated dependencies [
26ff67c]:- @outlit/core@0.2.1
- Updated dependencies [
7caf611]:- @outlit/core@0.2.0