@remkoj/optimizely-one-nextjs 6.0.0-pre9 → 6.0.0-rc.3

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.
Files changed (128) hide show
  1. package/AGENTS.md +130 -0
  2. package/README.md +5 -1
  3. package/dist/api/graph-info-service.js +1 -1
  4. package/dist/api/graph-info-service.js.map +1 -1
  5. package/dist/api/index.js +5 -3
  6. package/dist/api/index.js.map +1 -1
  7. package/dist/api/profile-api-service.js +4 -2
  8. package/dist/api/profile-api-service.js.map +1 -1
  9. package/dist/api/types.d.ts +2 -2
  10. package/dist/client-types.d.ts +94 -23
  11. package/dist/client-types.js +5 -1
  12. package/dist/client-types.js.map +1 -1
  13. package/dist/components/context.d.ts +223 -60
  14. package/dist/components/context.js +159 -67
  15. package/dist/components/context.js.map +1 -1
  16. package/dist/components/index.d.ts +1 -0
  17. package/dist/components/optimizely-one-gadget/_notice.js +1 -0
  18. package/dist/components/optimizely-one-gadget/_notice.js.map +1 -1
  19. package/dist/components/optimizely-one-gadget/_types.d.ts +13 -13
  20. package/dist/components/optimizely-one-gadget/audiences-panel.js +2 -1
  21. package/dist/components/optimizely-one-gadget/audiences-panel.js.map +1 -1
  22. package/dist/components/optimizely-one-gadget/exp-panel.d.ts +1 -1
  23. package/dist/components/optimizely-one-gadget/exp-panel.js +1 -0
  24. package/dist/components/optimizely-one-gadget/exp-panel.js.map +1 -1
  25. package/dist/components/optimizely-one-gadget/gadget.js +25 -17
  26. package/dist/components/optimizely-one-gadget/gadget.js.map +1 -1
  27. package/dist/components/optimizely-one-gadget/goals-panel.js +1 -0
  28. package/dist/components/optimizely-one-gadget/goals-panel.js.map +1 -1
  29. package/dist/components/optimizely-one-gadget/graph-panel.js +1 -0
  30. package/dist/components/optimizely-one-gadget/graph-panel.js.map +1 -1
  31. package/dist/components/optimizely-one-gadget/interests-panel.js +1 -0
  32. package/dist/components/optimizely-one-gadget/interests-panel.js.map +1 -1
  33. package/dist/components/optimizely-one-gadget/logo.js +1 -0
  34. package/dist/components/optimizely-one-gadget/logo.js.map +1 -1
  35. package/dist/components/optimizely-one-gadget/profile-panel.js +3 -2
  36. package/dist/components/optimizely-one-gadget/profile-panel.js.map +1 -1
  37. package/dist/components/page-activator.d.ts +1 -1
  38. package/dist/components/page-activator.js +12 -31
  39. package/dist/components/page-activator.js.map +1 -1
  40. package/dist/components/service-filters.d.ts +46 -0
  41. package/dist/components/service-filters.js +56 -0
  42. package/dist/components/service-filters.js.map +1 -0
  43. package/dist/components/types.d.ts +2 -0
  44. package/dist/components/types.js +2 -0
  45. package/dist/components/types.js.map +1 -0
  46. package/dist/components/use-cookie.js.map +1 -1
  47. package/dist/components/use-local-state.d.ts +24 -0
  48. package/dist/components/use-local-state.js +55 -0
  49. package/dist/components/use-local-state.js.map +1 -0
  50. package/dist/components/use-test-mode.js +2 -2
  51. package/dist/components/use-test-mode.js.map +1 -1
  52. package/dist/config.d.ts +119 -0
  53. package/dist/config.js +101 -2
  54. package/dist/config.js.map +1 -1
  55. package/dist/env-vars.d.ts +3 -0
  56. package/dist/env-vars.js +3 -0
  57. package/dist/env-vars.js.map +1 -1
  58. package/dist/products/content-recs/api.js.map +1 -1
  59. package/dist/products/content-recs/client.d.ts +10 -3
  60. package/dist/products/content-recs/client.js +38 -2
  61. package/dist/products/content-recs/client.js.map +1 -1
  62. package/dist/products/content-recs/delivery.d.ts +18 -18
  63. package/dist/products/content-recs/delivery.js.map +1 -1
  64. package/dist/products/content-recs/snippet.d.ts +1 -1
  65. package/dist/products/content-recs/snippet.js +0 -1
  66. package/dist/products/content-recs/snippet.js.map +1 -1
  67. package/dist/{api/content-goals.d.ts → products/content-recs/webservice-goals.d.ts} +1 -1
  68. package/dist/{api/content-goals.js → products/content-recs/webservice-goals.js} +4 -4
  69. package/dist/products/content-recs/webservice-goals.js.map +1 -0
  70. package/dist/products/content-recs/webservice.d.ts +3 -0
  71. package/dist/{api/content-recs.js → products/content-recs/webservice.js} +13 -12
  72. package/dist/products/content-recs/webservice.js.map +1 -0
  73. package/dist/products/data-platform/api.d.ts +9 -9
  74. package/dist/products/data-platform/api.js +9 -9
  75. package/dist/products/data-platform/api.js.map +1 -1
  76. package/dist/products/data-platform/client.d.ts +11 -2
  77. package/dist/products/data-platform/client.js +52 -9
  78. package/dist/products/data-platform/client.js.map +1 -1
  79. package/dist/products/data-platform/index.js.map +1 -1
  80. package/dist/products/data-platform/snippet.d.ts +1 -1
  81. package/dist/products/data-platform/snippet.js +3 -4
  82. package/dist/products/data-platform/snippet.js.map +1 -1
  83. package/dist/products/feature-experimentation/provider.d.ts +7 -0
  84. package/dist/products/feature-experimentation/provider.js +38 -0
  85. package/dist/products/feature-experimentation/provider.js.map +1 -0
  86. package/dist/products/web-experimentation/client.d.ts +5 -2
  87. package/dist/products/web-experimentation/client.js +21 -7
  88. package/dist/products/web-experimentation/client.js.map +1 -1
  89. package/dist/products/web-experimentation/snippet.d.ts +1 -1
  90. package/dist/products/web-experimentation/snippet.js +2 -3
  91. package/dist/products/web-experimentation/snippet.js.map +1 -1
  92. package/dist/products/web-experimentation/webservice.d.ts +3 -0
  93. package/dist/{api/experimentation-api.js → products/web-experimentation/webservice.js} +2 -2
  94. package/dist/products/web-experimentation/webservice.js.map +1 -0
  95. package/dist/server-components/index.d.ts +3 -0
  96. package/dist/server-components/index.js +3 -0
  97. package/dist/server-components/index.js.map +1 -1
  98. package/dist/{components/optimizely-one-gadget/index.d.ts → server-components/optimizely-one-gadget.d.ts} +2 -2
  99. package/dist/{components/optimizely-one-gadget/index.js → server-components/optimizely-one-gadget.js} +4 -5
  100. package/dist/server-components/optimizely-one-gadget.js.map +1 -0
  101. package/dist/server-components/optimizely-one.d.ts +219 -0
  102. package/dist/server-components/optimizely-one.js +112 -0
  103. package/dist/server-components/optimizely-one.js.map +1 -0
  104. package/dist/server-components/scripts/footer.d.ts +1 -1
  105. package/dist/server-components/scripts/footer.js.map +1 -1
  106. package/dist/server-components/scripts/header.d.ts +29 -29
  107. package/dist/server-components/scripts/header.js.map +1 -1
  108. package/dist/server-components/scripts/index.d.ts +6 -6
  109. package/dist/server-components/scripts/index.js +6 -6
  110. package/dist/server-components/scripts/index.js.map +1 -1
  111. package/dist/server.d.ts +1 -2
  112. package/dist/server.js +1 -6
  113. package/dist/server.js.map +1 -1
  114. package/dist/styles.css +2 -2
  115. package/dist/utils/env.js.map +1 -1
  116. package/dist/utils/products.d.ts +92 -0
  117. package/dist/utils/products.js +84 -0
  118. package/dist/utils/products.js.map +1 -0
  119. package/package.json +35 -30
  120. package/dist/api/content-goals.js.map +0 -1
  121. package/dist/api/content-recs.d.ts +0 -3
  122. package/dist/api/content-recs.js.map +0 -1
  123. package/dist/api/experimentation-api.d.ts +0 -3
  124. package/dist/api/experimentation-api.js.map +0 -1
  125. package/dist/components/optimizely-one-gadget/index.js.map +0 -1
  126. package/dist/components/rsc.d.ts +0 -2
  127. package/dist/components/rsc.js +0 -3
  128. package/dist/components/rsc.js.map +0 -1
package/AGENTS.md ADDED
@@ -0,0 +1,130 @@
1
+ # @remkoj/optimizely-one-nextjs — usage
2
+
3
+ Optimizely One integration for Next.js — connects Optimizely Data Platform (ODP),
4
+ Content Recommendations, and Web Experimentation to a Next.js application.
5
+
6
+ ## Install
7
+
8
+ ```bash
9
+ npm install @remkoj/optimizely-one-nextjs
10
+ ```
11
+
12
+ Requires Node `>=24.0.0 <25.0.0`. Import the stylesheet in your root layout.
13
+
14
+ ```typescript
15
+ import '@remkoj/optimizely-one-nextjs/dist/styles.css'
16
+ ```
17
+
18
+ ## Environment variables
19
+
20
+ | Variable | Description |
21
+ | --- | --- |
22
+ | `OPTIMIZELY_ONE_HELPER` | Enable/disable the Optimizely One helper (default: `false`) |
23
+ | `ODP_API_KEY` | Optimizely Data Platform API key |
24
+ | `ODP_SERVICE` | ODP service endpoint (default: `https://api.zaius.com/`) |
25
+ | `CONTENT_RECS_CLIENT` | Content Recommendations client ID |
26
+ | `CONTENT_RECS_DELIVERY_KEY` | Content Recommendations API key |
27
+ | `WEB_EXPERIMENTATION_PROJECT` | Web Experimentation project ID |
28
+ | `OPTIMIZELY_DEBUG` | Set to `"1"` for debug logging |
29
+
30
+ ## Subpath exports
31
+
32
+ | Import path | Contents |
33
+ | --- | --- |
34
+ | `@remkoj/optimizely-one-nextjs` | Core types and configuration |
35
+ | `@remkoj/optimizely-one-nextjs/api` | Next.js API route handlers for Optimizely One |
36
+ | `@remkoj/optimizely-one-nextjs/client` | Client-side components and hooks |
37
+ | `@remkoj/optimizely-one-nextjs/server` | Server-side utilities |
38
+
39
+ ## Configuration
40
+
41
+ ```typescript
42
+ import { readConfigFromEnv } from '@remkoj/optimizely-one-nextjs'
43
+
44
+ // Reads all Optimizely One config from environment variables
45
+ const config = readConfigFromEnv()
46
+ ```
47
+
48
+ ## API routes
49
+
50
+ Mount the Optimizely One API handler in `app/api/me/[[...path]]/route.ts`.
51
+ The catch-all segment name must match `pathParameterName` (default: `'path'`).
52
+
53
+ ```typescript
54
+ import { createOptimizelyOneApi } from '@remkoj/optimizely-one-nextjs/api'
55
+
56
+ const handler = createOptimizelyOneApi()
57
+
58
+ export const GET = handler
59
+ export const POST = handler
60
+ export const runtime = 'nodejs'
61
+ export const dynamic = 'force-dynamic'
62
+ ```
63
+
64
+ ## Server-side product clients (import from `./api` or `./server`)
65
+
66
+ `DataPlatform` and `ContentRecs` are available as named exports from both `./api` and `./server`.
67
+
68
+ ```typescript
69
+ import { DataPlatform, ContentRecs } from '@remkoj/optimizely-one-nextjs/api'
70
+ // or from '@remkoj/optimizely-one-nextjs/server'
71
+
72
+ // Optimizely Data Platform
73
+ if (DataPlatform.Tools.isEnabled()) {
74
+ const vuid = DataPlatform.Tools.getVisitorID(cookies())
75
+ const client = new DataPlatform.Client()
76
+ const terms = await client.getLastSearchTerms(vuid)
77
+ }
78
+
79
+ // Content Recommendations
80
+ if (ContentRecs.Tools.isEnabled()) {
81
+ const visitorId = ContentRecs.Tools.getVisitorID(cookies())
82
+ const client = new ContentRecs.Client()
83
+ const topics = await client.getContentTopics(visitorId)
84
+ }
85
+ ```
86
+
87
+ ## Client components (import from `./client`)
88
+
89
+ ```typescript
90
+ import {
91
+ OptimizelyOneProvider, // context provider — wrap around your root layout body
92
+ OptimizelyOneGadget, // debug panel; render only in dev/preview
93
+ PageActivator, // fires page-view events on route change
94
+ ContentRecsDelivery, // renders personalised content recommendations
95
+ } from '@remkoj/optimizely-one-nextjs/client'
96
+
97
+ // In root layout:
98
+ <OptimizelyOneProvider>
99
+ <PageActivator />
100
+ {children}
101
+ <OptimizelyOneGadget enabled={enableDemoTools} />
102
+ </OptimizelyOneProvider>
103
+
104
+ // In a component:
105
+ <ContentRecsDelivery
106
+ apiKey={deliveryApiKey}
107
+ count={3}
108
+ template={ArticleTemplate}
109
+ className="grid grid-cols-3"
110
+ />
111
+ ```
112
+
113
+ ## Server utilities (import from `./server`)
114
+
115
+ ```typescript
116
+ import { Scripts, OptimizelyOneGadget, EnvTools } from '@remkoj/optimizely-one-nextjs/server'
117
+
118
+ // Inject required tracking scripts
119
+ <Scripts nonce={nonce} />
120
+
121
+ // Read environment-controlled feature flags
122
+ const enabled = EnvTools.readValueAsBoolean('OPTIMIZELY_ONE_HELPER', false)
123
+ const key = EnvTools.readValue('GA_TRACKING_ID')
124
+ ```
125
+
126
+ ## Constraints
127
+
128
+ - `dist/styles.css` must be imported at the application root; it is not injected automatically.
129
+ - Server utilities (`./server`) are server-only; do not import from client components.
130
+ - The API route must be a catch-all (`[[...path]]`) so every sub-path is handled by the same handler.
package/README.md CHANGED
@@ -1,4 +1,8 @@
1
1
  # Next.JS Optimizely One toolkit <!-- omit in toc -->
2
+
3
+ > [!WARNING]
4
+ > There'll be an update of Optimizely SaaS CMS that is incompatible with all SDK versions prior to 5.1.6. If you don't upgrade, you will see empty pages (main website) and "Component not found" messages (preview).
5
+
2
6
  React components (both client & server) to integrate the browser-side products from Optimizely (Web Experimentation, Data Platform & Content Analytics / Recommendations)
3
7
 
4
8
  ## Table of Contents <!-- omit in toc -->
@@ -161,4 +165,4 @@ Using the Optimizely One Gadget it is possible to demonstrate the in-session beh
161
165
  ### 3.2. Selecting the Web Experimentation project in browser
162
166
  When the `OPTIMIZELY_ONE_HELPER` is set to "1" - or the Scripts.Header component has been instructed to do so explicitly - it is possible to change the Optimizely Web Experimentation project on the fly. This is done by adding a query string parameter `?pid=`, with the new project id.
163
167
 
164
- The project id is persisted in localStorage with the key `_pid` and needs to be removed manually to revert back to the configured Web Experimentation project.
168
+ The project id is persisted in localStorage with the key `_pid` and needs to be removed manually to revert back to the configured Web Experimentation project.
@@ -3,7 +3,7 @@ import createAdminApi from '@remkoj/optimizely-graph-client/admin';
3
3
  import getConfig from '../config';
4
4
  export const GraphInfoApiService = {
5
5
  for: { path: '/graph', verb: 'get' },
6
- handler: async (query, cookies) => {
6
+ handler: async () => {
7
7
  const config = getConfig();
8
8
  // Check if the toolkit is enabled
9
9
  if (!config.HelperEnabled)
@@ -1 +1 @@
1
- {"version":3,"file":"graph-info-service.js","sourceRoot":"","sources":["../../src/api/graph-info-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AACxC,OAAO,cAAc,MAAM,uCAAuC,CAAA;AAClE,OAAO,SAAS,MAAM,WAAW,CAAA;AAGjC,MAAM,CAAC,MAAM,mBAAmB,GAAsC;IAClE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;IACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,aAAa;YACrB,OAAO,SAAS,CAAC,QAAQ,CAAA;QAE7B,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;QAEjC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAA;QAC1D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,CAAA;QACzE,MAAM,OAAO,GAAW,EAAE,CAAA;QAC1B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;YAClC,OAAO,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC9B,CAAC,CAAA;QACN,CAAC;QAED,OAAO,CAAC;gBACJ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACpB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;oBACzC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAA;oBAC5E,OAAO;wBACH,GAAG,EAAE,UAAU;wBACf,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,UAAU;wBAC9C,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;qBAC9B,CAAA;gBACL,CAAC,CAAC;gBACF,OAAO;aACV,EAAE,GAAG,CAAC,CAAA;IACX,CAAC;CACJ,CAAA;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"graph-info-service.js","sourceRoot":"","sources":["../../src/api/graph-info-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AACxC,OAAO,cAAc,MAAM,uCAAuC,CAAA;AAClE,OAAO,SAAS,MAAM,WAAW,CAAA;AAGjC,MAAM,CAAC,MAAM,mBAAmB,GAAsC;IACpE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;IACpC,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,aAAa;YACvB,OAAO,SAAS,CAAC,QAAQ,CAAA;QAE3B,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;QAEjC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAA;QAC1D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,CAAA;QACzE,MAAM,OAAO,GAA4C,EAAE,CAAA;QAC3D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;YAClC,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,CAAC;gBACN,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACtB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;oBACzC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAA;oBAC5E,OAAO;wBACL,GAAG,EAAE,UAAU;wBACf,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,UAAU;wBAC9C,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;qBAC5B,CAAA;gBACH,CAAC,CAAC;gBACF,OAAO;aACR,EAAE,GAAG,CAAC,CAAA;IACT,CAAC;CACF,CAAA;AAED,eAAe,mBAAmB,CAAA"}
package/dist/api/index.js CHANGED
@@ -1,11 +1,13 @@
1
1
  import 'server-only';
2
2
  import { NextResponse } from 'next/server';
3
3
  import { cookies } from 'next/headers';
4
+ // General services
4
5
  import ProfileApiService from './profile-api-service';
5
6
  import GraphInfoApiService from './graph-info-service';
6
- import ExperimentationApiService from './experimentation-api';
7
- import ContentRecsApiService from './content-recs';
8
- import ContentRecsGoalsService from './content-goals';
7
+ // Product specific services
8
+ import ExperimentationApiService from '../products/web-experimentation/webservice';
9
+ import ContentRecsApiService from '../products/content-recs/webservice';
10
+ import ContentRecsGoalsService from '../products/content-recs/webservice-goals';
9
11
  export function createOptimizelyOneApi(config) {
10
12
  const pathParameterName = config?.pathParameterName ?? 'path';
11
13
  const services = [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export const ProfileApiService = {
12
12
  if (!config.HelperEnabled)
13
13
  return Responses.NotFound;
14
14
  // Start timer
15
- let start = Date.now();
15
+ const start = Date.now();
16
16
  // Read requested scopes
17
17
  const scopes = query.get('scope')?.toLowerCase()?.split(',')?.map(x => x.trim());
18
18
  const fetchContentTopics = !scopes || scopes.includes('topics');
@@ -83,7 +83,9 @@ function stringToInt(value, defaultValue) {
83
83
  const result = Number.parseInt(value ?? defaultValue.toString(), 10);
84
84
  return isNaN(result) ? defaultValue : result;
85
85
  }
86
- catch { }
86
+ catch {
87
+ // Ingored on purpose
88
+ }
87
89
  return defaultValue;
88
90
  }
89
91
  //# sourceMappingURL=profile-api-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile-api-service.js","sourceRoot":"","sources":["../../src/api/profile-api-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile-api-service.js","sourceRoot":"","sources":["../../src/api/profile-api-service.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@ export type ApiServiceErrorMessage = {
7
7
  };
8
8
  };
9
9
  export type ApiServiceErrorResponse = [ApiServiceErrorMessage, number] | [string, number, string];
10
- export type ApiServiceResponse<T extends {} = {}> = [T, 200 | undefined] | ApiServiceErrorResponse;
11
- export type ApiService<T extends {} = {}> = {
10
+ export type ApiServiceResponse<T extends object = object> = [T, 200 | undefined] | ApiServiceErrorResponse;
11
+ export type ApiService<T extends object = object> = {
12
12
  for: {
13
13
  path: string;
14
14
  verb: string;
@@ -5,33 +5,80 @@ declare global {
5
5
  optimizely?: OptimizelyWebExperimentationApi;
6
6
  }
7
7
  }
8
- export interface OptimizelyOneService<T = any> {
8
+ /**
9
+ * Contract implemented by Optimizely One client services.
10
+ *
11
+ * A service can expose one or more optional capabilities (activation, tracking,
12
+ * profile updates/discovery) and provides access to an underlying browser API.
13
+ *
14
+ * @typeParam T The concrete browser API client type exposed by the service.
15
+ * @typeParam SC The service code type used to identify the service.
16
+ */
17
+ export interface OptimizelyOneService<T = unknown, SC = string> {
18
+ /**
19
+ * Sort order for service execution. Lower values run first.
20
+ */
9
21
  order: Readonly<number>;
22
+ /**
23
+ * Indicates whether the service is currently active.
24
+ */
10
25
  isActive: Readonly<boolean>;
11
- code: Readonly<string>;
26
+ /**
27
+ * Stable service identifier used to locate a service by code.
28
+ */
29
+ code: Readonly<SC>;
30
+ /**
31
+ * Enables or disables debug logging for this service instance.
32
+ */
12
33
  debug: boolean;
13
34
  /**
14
- * Perform any actions that must be done to apply the capabilities of this
15
- * service on the page. This function MUST NOT perform behaviour tracking of
16
- * any kind.
17
- *
18
- * @param path The path for which to activate.
19
- * @returns void
20
- */
35
+ * Perform any actions that must be done to apply the capabilities of this
36
+ * service on the page. This function MUST NOT perform behaviour tracking of
37
+ * any kind.
38
+ *
39
+ * @param path The path for which to activate.
40
+ * @returns void
41
+ */
21
42
  activatePage?: (path: string) => void;
22
43
  /**
23
- * Perform any actions that must be done to performt the pageview tracking
24
- * needed for this service.
25
- *
26
- * @param path The path for which to activate.
27
- * @returns void
28
- */
44
+ * Perform any actions that must be done to performt the pageview tracking
45
+ * needed for this service.
46
+ *
47
+ * @param path The path for which to activate.
48
+ * @returns void
49
+ */
29
50
  trackPage?: (path: string) => void;
51
+ /**
52
+ * Tracks a custom event through this service.
53
+ *
54
+ * @param event The event payload.
55
+ * @returns void
56
+ */
30
57
  trackEvent?: (event: OptimizelyOneEvent) => void;
58
+ /**
59
+ * Updates profile data known to this service.
60
+ *
61
+ * @param profileData Complete new profile
62
+ * @returns void
63
+ */
31
64
  updateProfile?: (profileData: OptimizelyOneProfileData) => void;
32
- discoverProfileData?: (signal?: AbortSignal | null) => Promise<OptimizelyOneProfileData>;
65
+ /**
66
+ * Discovers profile data from this service.
67
+ *
68
+ * @param signal Optional abort signal used to cancel discovery.
69
+ * @returns A partial profile payload discovered by this service.
70
+ */
71
+ discoverProfileData?: (signal?: AbortSignal | null) => Promise<Partial<OptimizelyOneProfileData>>;
72
+ /**
73
+ * Retrieves the underlying browser API client for this service.
74
+ *
75
+ * @returns The browser API instance, or `undefined` when unavailable.
76
+ */
33
77
  getBrowserApi: () => T | undefined;
34
78
  }
79
+ export type OptimizelyOneServiceWithCapability<T = unknown, SC extends string = string, K extends keyof OptimizelyOneService = keyof OptimizelyOneService> = Omit<OptimizelyOneService<T, SC>, K | 'active'> & Required<Pick<OptimizelyOneService<T, SC>, K> & {
80
+ active: true;
81
+ }>;
35
82
  export type OptimizelyOneEvent = NavigationSearchEvent | {
36
83
  event: string;
37
84
  action: string;
@@ -43,26 +90,50 @@ type NavigationSearchEvent = {
43
90
  search_term: string;
44
91
  };
45
92
  export type OptimizelyOneProfileData = {
93
+ /**
94
+ * The Pseudo ID used by Optimizely Feature experimentation
95
+ */
96
+ feature_experimentation_id?: string;
97
+ /**
98
+ * The Pseudo ID used by Optimizely Content Recommendations
99
+ * and intelligence
100
+ */
46
101
  content_intelligence_id?: string;
102
+ /**
103
+ * Any other ID tracked within the profile, these IDs are
104
+ * considered PII and thus should not be sent to systems
105
+ * that may not process PII.
106
+ */
107
+ ids: Record<string, string>;
108
+ /**
109
+ * Any custom field to be tracked within the profile, the
110
+ * values here may not be PII.
111
+ */
47
112
  custom: Record<string, string | number | boolean>;
113
+ /**
114
+ * Any custom field to be tracked within the profile, the
115
+ * values here may or may not be PII
116
+ */
117
+ customPII: Record<string, string | number | boolean>;
48
118
  };
119
+ export declare const DefaultProfileData: OptimizelyOneProfileData;
49
120
  export type OptimizelyDataPlatformApi = {
50
121
  event: (name: string, data?: {
51
- [param: string]: any;
122
+ [param: string]: unknown;
52
123
  }) => Promise<void>;
53
124
  dispatch: (group: string, action: string, params?: {
54
- [param: string]: any;
125
+ [param: string]: unknown;
55
126
  }) => Promise<void>;
56
- customer: (customerIds: Record<string, string | number>, customerAttributes?: Record<string, any>) => void;
127
+ customer: (customerIds: Record<string, string | number>, customerAttributes?: Record<string, unknown>) => void;
57
128
  };
58
129
  export type OptimizelyContentRecsApi = {
59
- push: (command: [string, any]) => void;
130
+ push: (command: [string, unknown]) => void;
60
131
  };
61
132
  export type OptimizelyWebExperimentationApi = {
62
133
  initialized?: boolean;
63
134
  push: (data: {
64
135
  type: string;
65
- [paramName: string]: any;
136
+ [paramName: string]: unknown;
66
137
  }) => void;
67
138
  get?: <T extends keyof OptlyWebGet>(what: T) => OptlyWebGet[T];
68
139
  };
@@ -82,7 +153,7 @@ export type OptlyWebGet = {
82
153
  isActive: boolean;
83
154
  }) => {
84
155
  [id: string]: {
85
- audiences: any[];
156
+ audiences: unknown[];
86
157
  experimentName: string | null;
87
158
  id: string;
88
159
  isActive: boolean;
@@ -116,7 +187,7 @@ export type OptlyWebGet = {
116
187
  id: string;
117
188
  isActive: boolean;
118
189
  isInCampaignHoldback: boolean;
119
- reason?: any;
190
+ reason?: unknown;
120
191
  variation: {
121
192
  id: string;
122
193
  name: string;
@@ -1,2 +1,6 @@
1
- export {};
1
+ export const DefaultProfileData = {
2
+ custom: {},
3
+ customPII: {},
4
+ ids: {}
5
+ };
2
6
  //# sourceMappingURL=client-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-types.js","sourceRoot":"","sources":["../src/client-types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"client-types.js","sourceRoot":"","sources":["../src/client-types.ts"],"names":[],"mappings":"AAqIA,MAAM,CAAC,MAAM,kBAAkB,GAA8B;IAC3D,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,EAAE;IACb,GAAG,EAAE,EAAE;CACR,CAAA"}