@uniformdev/canvas-next-rsc-shared 20.37.1-alpha.1 → 20.37.1-alpha.11

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/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _uniformdev_context from '@uniformdev/context';
2
- import { ContextInstance, ContextState, ContextOptions, CookieTransitionDataStoreOptions, Context, LogMessage, TestVariant, TestOptions, PersonalizedVariant, PersonalizeOptions, TestEvent, PersonalizationEvent } from '@uniformdev/context';
2
+ import { ContextInstance, ContextState, ContextOptions, CookieTransitionDataStoreOptions, Context, LogMessage, TestVariant, TestOptions, PersonalizedVariant, PersonalizeOptions, TestEvent, PersonalizationEvent, CompositionMetadata } from '@uniformdev/context';
3
3
  import { ComponentInstance, RouteGetResponseComposition, RootComponentInstance } from '@uniformdev/canvas';
4
4
  import { PropsWithChildren } from 'react';
5
5
 
@@ -208,6 +208,14 @@ declare class AppDirectoryContextInstance implements AppDirectoryContext {
208
208
  internal_processTestEvent(event: TestEvent): void;
209
209
  internal_processPersonalizationEvent(event: PersonalizationEvent): void;
210
210
  update(update: Partial<AppDirectoryContextState>): Promise<void>;
211
+ /**
212
+ * Gets the current canvas data
213
+ */
214
+ getCompositionMetadata(): Readonly<CompositionMetadata | undefined>;
215
+ /**
216
+ * Updates the canvas data and emits a canvasDataUpdated event
217
+ */
218
+ updateCompositionMetadata(newData: CompositionMetadata): Promise<void>;
211
219
  updateConsent(consent: boolean): Promise<void>;
212
220
  get consent(): boolean | undefined;
213
221
  internal_update(update: Partial<AppDirectoryContextState>): Promise<void>;
@@ -222,11 +230,10 @@ type PersonalizeWithContextComponentProps = ComponentProps<PersonalizeProps> & {
222
230
  contextInstance: AppDirectoryServerContext;
223
231
  };
224
232
 
225
- interface RunPersonalizationProps extends PersonalizeProps {
226
- component: ComponentProps['component'];
233
+ type RunPersonalizationProps = Omit<ComponentProps<PersonalizeProps & {
227
234
  contextInstance: Pick<ContextInstance, 'personalize'> | undefined;
228
- }
229
- declare const runPersonalization: ({ component, trackingEventName, count, algorithm, contextInstance, }: RunPersonalizationProps) => {
235
+ }>, 'slots' | 'slotName' | 'slotIndex'>;
236
+ declare const runPersonalization: ({ component, trackingEventName, count, algorithm, contextInstance, context, }: RunPersonalizationProps) => {
230
237
  indexes: number[];
231
238
  event: PersonalizationEvent;
232
239
  };
@@ -235,9 +242,9 @@ type TestProps = {
235
242
  test: string;
236
243
  };
237
244
 
238
- declare const runTest: ({ test, component, contextInstance, context, }: ComponentProps<TestProps> & {
245
+ declare const runTest: ({ test, component, contextInstance, context, }: Omit<ComponentProps<TestProps> & {
239
246
  contextInstance: Pick<ContextInstance, "test" | "manifest"> | undefined;
240
- }) => {
247
+ }, "slots" | "slotName" | "slotIndex">) => {
241
248
  index: number | null;
242
249
  event: TestEvent | null;
243
250
  };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _uniformdev_context from '@uniformdev/context';
2
- import { ContextInstance, ContextState, ContextOptions, CookieTransitionDataStoreOptions, Context, LogMessage, TestVariant, TestOptions, PersonalizedVariant, PersonalizeOptions, TestEvent, PersonalizationEvent } from '@uniformdev/context';
2
+ import { ContextInstance, ContextState, ContextOptions, CookieTransitionDataStoreOptions, Context, LogMessage, TestVariant, TestOptions, PersonalizedVariant, PersonalizeOptions, TestEvent, PersonalizationEvent, CompositionMetadata } from '@uniformdev/context';
3
3
  import { ComponentInstance, RouteGetResponseComposition, RootComponentInstance } from '@uniformdev/canvas';
4
4
  import { PropsWithChildren } from 'react';
5
5
 
@@ -208,6 +208,14 @@ declare class AppDirectoryContextInstance implements AppDirectoryContext {
208
208
  internal_processTestEvent(event: TestEvent): void;
209
209
  internal_processPersonalizationEvent(event: PersonalizationEvent): void;
210
210
  update(update: Partial<AppDirectoryContextState>): Promise<void>;
211
+ /**
212
+ * Gets the current canvas data
213
+ */
214
+ getCompositionMetadata(): Readonly<CompositionMetadata | undefined>;
215
+ /**
216
+ * Updates the canvas data and emits a canvasDataUpdated event
217
+ */
218
+ updateCompositionMetadata(newData: CompositionMetadata): Promise<void>;
211
219
  updateConsent(consent: boolean): Promise<void>;
212
220
  get consent(): boolean | undefined;
213
221
  internal_update(update: Partial<AppDirectoryContextState>): Promise<void>;
@@ -222,11 +230,10 @@ type PersonalizeWithContextComponentProps = ComponentProps<PersonalizeProps> & {
222
230
  contextInstance: AppDirectoryServerContext;
223
231
  };
224
232
 
225
- interface RunPersonalizationProps extends PersonalizeProps {
226
- component: ComponentProps['component'];
233
+ type RunPersonalizationProps = Omit<ComponentProps<PersonalizeProps & {
227
234
  contextInstance: Pick<ContextInstance, 'personalize'> | undefined;
228
- }
229
- declare const runPersonalization: ({ component, trackingEventName, count, algorithm, contextInstance, }: RunPersonalizationProps) => {
235
+ }>, 'slots' | 'slotName' | 'slotIndex'>;
236
+ declare const runPersonalization: ({ component, trackingEventName, count, algorithm, contextInstance, context, }: RunPersonalizationProps) => {
230
237
  indexes: number[];
231
238
  event: PersonalizationEvent;
232
239
  };
@@ -235,9 +242,9 @@ type TestProps = {
235
242
  test: string;
236
243
  };
237
244
 
238
- declare const runTest: ({ test, component, contextInstance, context, }: ComponentProps<TestProps> & {
245
+ declare const runTest: ({ test, component, contextInstance, context, }: Omit<ComponentProps<TestProps> & {
239
246
  contextInstance: Pick<ContextInstance, "test" | "manifest"> | undefined;
240
- }) => {
247
+ }, "slots" | "slotName" | "slotIndex">) => {
241
248
  index: number | null;
242
249
  event: TestEvent | null;
243
250
  };
package/dist/index.esm.js CHANGED
@@ -153,6 +153,18 @@ var AppDirectoryContextInstance = class {
153
153
  url
154
154
  });
155
155
  }
156
+ /**
157
+ * Gets the current canvas data
158
+ */
159
+ getCompositionMetadata() {
160
+ return __privateGet(this, _context).getCompositionMetadata();
161
+ }
162
+ /**
163
+ * Updates the canvas data and emits a canvasDataUpdated event
164
+ */
165
+ async updateCompositionMetadata(newData) {
166
+ return __privateGet(this, _context).updateCompositionMetadata(newData);
167
+ }
156
168
  async updateConsent(consent) {
157
169
  return __privateGet(this, _context).storage.updateData([
158
170
  {
@@ -177,7 +189,8 @@ var runPersonalization = ({
177
189
  trackingEventName,
178
190
  count,
179
191
  algorithm,
180
- contextInstance
192
+ contextInstance,
193
+ context
181
194
  }) => {
182
195
  var _a;
183
196
  const slot = ((_a = component.slots) == null ? void 0 : _a[CANVAS_PERSONALIZE_SLOT]) || [];
@@ -202,7 +215,12 @@ var runPersonalization = ({
202
215
  name: trackingEventName,
203
216
  take: parsedCount,
204
217
  variations: componentVariations,
205
- algorithm
218
+ algorithm,
219
+ compositionMetadata: {
220
+ compositionId: context.composition._id,
221
+ matchedRoute: context.matchedRoute,
222
+ dynamicInputs: context.dynamicInputs
223
+ }
206
224
  });
207
225
  if (variations) {
208
226
  for (let i = 0; i < variations.length; i++) {
@@ -219,7 +237,12 @@ var runPersonalization = ({
219
237
  name: trackingEventName,
220
238
  variantIds,
221
239
  changed: true,
222
- control: false
240
+ control: false,
241
+ compositionMetadata: {
242
+ compositionId: context.composition._id,
243
+ matchedRoute: context.matchedRoute,
244
+ dynamicInputs: context.dynamicInputs
245
+ }
223
246
  };
224
247
  return {
225
248
  indexes,
@@ -236,7 +259,7 @@ var runTest = ({
236
259
  contextInstance,
237
260
  context
238
261
  }) => {
239
- var _a, _b;
262
+ var _a, _b, _c, _d;
240
263
  const isTestDefined = Boolean((_a = contextInstance == null ? void 0 : contextInstance.manifest.data.project.test) == null ? void 0 : _a[test]);
241
264
  const isContextualTest = context.isContextualEditing && test === CONTEXTUAL_EDITING_TEST_NAME;
242
265
  const shouldShowTest = isTestDefined || isContextualTest;
@@ -256,14 +279,21 @@ var runTest = ({
256
279
  });
257
280
  let index = null;
258
281
  let variantId = null;
282
+ let variantAssigned = false;
259
283
  if (contextInstance) {
260
- const { result } = contextInstance.test({
284
+ const { result, variantAssigned: wasVariantAssigned } = contextInstance.test({
261
285
  name: test,
262
- variations: componentVariations
286
+ variations: componentVariations,
287
+ compositionMetadata: {
288
+ compositionId: context.composition._id,
289
+ matchedRoute: context.matchedRoute,
290
+ dynamicInputs: context.dynamicInputs
291
+ }
263
292
  });
264
293
  if (result) {
265
294
  index = result.index;
266
295
  variantId = result.id;
296
+ variantAssigned = wasVariantAssigned;
267
297
  }
268
298
  }
269
299
  if (!variantId) {
@@ -275,8 +305,14 @@ var runTest = ({
275
305
  }
276
306
  const event = {
277
307
  name: test,
278
- variantAssigned: true,
279
- variantId: variantId != null ? variantId : "NO_VARIANTS"
308
+ variantAssigned,
309
+ control: variantId ? (_d = (_c = componentVariations.find((v) => v.id === variantId)) == null ? void 0 : _c.control) != null ? _d : false : false,
310
+ variantId: variantId != null ? variantId : "NO_VARIANTS",
311
+ compositionMetadata: {
312
+ compositionId: context.composition._id,
313
+ matchedRoute: context.matchedRoute,
314
+ dynamicInputs: context.dynamicInputs
315
+ }
280
316
  };
281
317
  return {
282
318
  index,
package/dist/index.js CHANGED
@@ -180,6 +180,18 @@ var AppDirectoryContextInstance = class {
180
180
  url
181
181
  });
182
182
  }
183
+ /**
184
+ * Gets the current canvas data
185
+ */
186
+ getCompositionMetadata() {
187
+ return __privateGet(this, _context).getCompositionMetadata();
188
+ }
189
+ /**
190
+ * Updates the canvas data and emits a canvasDataUpdated event
191
+ */
192
+ async updateCompositionMetadata(newData) {
193
+ return __privateGet(this, _context).updateCompositionMetadata(newData);
194
+ }
183
195
  async updateConsent(consent) {
184
196
  return __privateGet(this, _context).storage.updateData([
185
197
  {
@@ -204,7 +216,8 @@ var runPersonalization = ({
204
216
  trackingEventName,
205
217
  count,
206
218
  algorithm,
207
- contextInstance
219
+ contextInstance,
220
+ context
208
221
  }) => {
209
222
  var _a;
210
223
  const slot = ((_a = component.slots) == null ? void 0 : _a[import_canvas.CANVAS_PERSONALIZE_SLOT]) || [];
@@ -229,7 +242,12 @@ var runPersonalization = ({
229
242
  name: trackingEventName,
230
243
  take: parsedCount,
231
244
  variations: componentVariations,
232
- algorithm
245
+ algorithm,
246
+ compositionMetadata: {
247
+ compositionId: context.composition._id,
248
+ matchedRoute: context.matchedRoute,
249
+ dynamicInputs: context.dynamicInputs
250
+ }
233
251
  });
234
252
  if (variations) {
235
253
  for (let i = 0; i < variations.length; i++) {
@@ -246,7 +264,12 @@ var runPersonalization = ({
246
264
  name: trackingEventName,
247
265
  variantIds,
248
266
  changed: true,
249
- control: false
267
+ control: false,
268
+ compositionMetadata: {
269
+ compositionId: context.composition._id,
270
+ matchedRoute: context.matchedRoute,
271
+ dynamicInputs: context.dynamicInputs
272
+ }
250
273
  };
251
274
  return {
252
275
  indexes,
@@ -263,7 +286,7 @@ var runTest = ({
263
286
  contextInstance,
264
287
  context
265
288
  }) => {
266
- var _a, _b;
289
+ var _a, _b, _c, _d;
267
290
  const isTestDefined = Boolean((_a = contextInstance == null ? void 0 : contextInstance.manifest.data.project.test) == null ? void 0 : _a[test]);
268
291
  const isContextualTest = context.isContextualEditing && test === import_context2.CONTEXTUAL_EDITING_TEST_NAME;
269
292
  const shouldShowTest = isTestDefined || isContextualTest;
@@ -283,14 +306,21 @@ var runTest = ({
283
306
  });
284
307
  let index = null;
285
308
  let variantId = null;
309
+ let variantAssigned = false;
286
310
  if (contextInstance) {
287
- const { result } = contextInstance.test({
311
+ const { result, variantAssigned: wasVariantAssigned } = contextInstance.test({
288
312
  name: test,
289
- variations: componentVariations
313
+ variations: componentVariations,
314
+ compositionMetadata: {
315
+ compositionId: context.composition._id,
316
+ matchedRoute: context.matchedRoute,
317
+ dynamicInputs: context.dynamicInputs
318
+ }
290
319
  });
291
320
  if (result) {
292
321
  index = result.index;
293
322
  variantId = result.id;
323
+ variantAssigned = wasVariantAssigned;
294
324
  }
295
325
  }
296
326
  if (!variantId) {
@@ -302,8 +332,14 @@ var runTest = ({
302
332
  }
303
333
  const event = {
304
334
  name: test,
305
- variantAssigned: true,
306
- variantId: variantId != null ? variantId : "NO_VARIANTS"
335
+ variantAssigned,
336
+ control: variantId ? (_d = (_c = componentVariations.find((v) => v.id === variantId)) == null ? void 0 : _c.control) != null ? _d : false : false,
337
+ variantId: variantId != null ? variantId : "NO_VARIANTS",
338
+ compositionMetadata: {
339
+ compositionId: context.composition._id,
340
+ matchedRoute: context.matchedRoute,
341
+ dynamicInputs: context.dynamicInputs
342
+ }
307
343
  };
308
344
  return {
309
345
  index,
package/dist/index.mjs CHANGED
@@ -153,6 +153,18 @@ var AppDirectoryContextInstance = class {
153
153
  url
154
154
  });
155
155
  }
156
+ /**
157
+ * Gets the current canvas data
158
+ */
159
+ getCompositionMetadata() {
160
+ return __privateGet(this, _context).getCompositionMetadata();
161
+ }
162
+ /**
163
+ * Updates the canvas data and emits a canvasDataUpdated event
164
+ */
165
+ async updateCompositionMetadata(newData) {
166
+ return __privateGet(this, _context).updateCompositionMetadata(newData);
167
+ }
156
168
  async updateConsent(consent) {
157
169
  return __privateGet(this, _context).storage.updateData([
158
170
  {
@@ -177,7 +189,8 @@ var runPersonalization = ({
177
189
  trackingEventName,
178
190
  count,
179
191
  algorithm,
180
- contextInstance
192
+ contextInstance,
193
+ context
181
194
  }) => {
182
195
  var _a;
183
196
  const slot = ((_a = component.slots) == null ? void 0 : _a[CANVAS_PERSONALIZE_SLOT]) || [];
@@ -202,7 +215,12 @@ var runPersonalization = ({
202
215
  name: trackingEventName,
203
216
  take: parsedCount,
204
217
  variations: componentVariations,
205
- algorithm
218
+ algorithm,
219
+ compositionMetadata: {
220
+ compositionId: context.composition._id,
221
+ matchedRoute: context.matchedRoute,
222
+ dynamicInputs: context.dynamicInputs
223
+ }
206
224
  });
207
225
  if (variations) {
208
226
  for (let i = 0; i < variations.length; i++) {
@@ -219,7 +237,12 @@ var runPersonalization = ({
219
237
  name: trackingEventName,
220
238
  variantIds,
221
239
  changed: true,
222
- control: false
240
+ control: false,
241
+ compositionMetadata: {
242
+ compositionId: context.composition._id,
243
+ matchedRoute: context.matchedRoute,
244
+ dynamicInputs: context.dynamicInputs
245
+ }
223
246
  };
224
247
  return {
225
248
  indexes,
@@ -236,7 +259,7 @@ var runTest = ({
236
259
  contextInstance,
237
260
  context
238
261
  }) => {
239
- var _a, _b;
262
+ var _a, _b, _c, _d;
240
263
  const isTestDefined = Boolean((_a = contextInstance == null ? void 0 : contextInstance.manifest.data.project.test) == null ? void 0 : _a[test]);
241
264
  const isContextualTest = context.isContextualEditing && test === CONTEXTUAL_EDITING_TEST_NAME;
242
265
  const shouldShowTest = isTestDefined || isContextualTest;
@@ -256,14 +279,21 @@ var runTest = ({
256
279
  });
257
280
  let index = null;
258
281
  let variantId = null;
282
+ let variantAssigned = false;
259
283
  if (contextInstance) {
260
- const { result } = contextInstance.test({
284
+ const { result, variantAssigned: wasVariantAssigned } = contextInstance.test({
261
285
  name: test,
262
- variations: componentVariations
286
+ variations: componentVariations,
287
+ compositionMetadata: {
288
+ compositionId: context.composition._id,
289
+ matchedRoute: context.matchedRoute,
290
+ dynamicInputs: context.dynamicInputs
291
+ }
263
292
  });
264
293
  if (result) {
265
294
  index = result.index;
266
295
  variantId = result.id;
296
+ variantAssigned = wasVariantAssigned;
267
297
  }
268
298
  }
269
299
  if (!variantId) {
@@ -275,8 +305,14 @@ var runTest = ({
275
305
  }
276
306
  const event = {
277
307
  name: test,
278
- variantAssigned: true,
279
- variantId: variantId != null ? variantId : "NO_VARIANTS"
308
+ variantAssigned,
309
+ control: variantId ? (_d = (_c = componentVariations.find((v) => v.id === variantId)) == null ? void 0 : _c.control) != null ? _d : false : false,
310
+ variantId: variantId != null ? variantId : "NO_VARIANTS",
311
+ compositionMetadata: {
312
+ compositionId: context.composition._id,
313
+ matchedRoute: context.matchedRoute,
314
+ dynamicInputs: context.dynamicInputs
315
+ }
280
316
  };
281
317
  return {
282
318
  index,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/canvas-next-rsc-shared",
3
- "version": "20.37.1-alpha.1+5ac67f77a7",
3
+ "version": "20.37.1-alpha.11+f4e46464b5",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "scripts": {
6
6
  "build": "tsup",
@@ -32,8 +32,8 @@
32
32
  "react-dom": "18.3.1"
33
33
  },
34
34
  "dependencies": {
35
- "@uniformdev/canvas": "20.37.1-alpha.1+5ac67f77a7",
36
- "@uniformdev/context": "20.37.1-alpha.1+5ac67f77a7"
35
+ "@uniformdev/canvas": "20.37.1-alpha.11+f4e46464b5",
36
+ "@uniformdev/context": "20.37.1-alpha.11+f4e46464b5"
37
37
  },
38
38
  "engines": {
39
39
  "node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
@@ -46,5 +46,5 @@
46
46
  "publishConfig": {
47
47
  "access": "public"
48
48
  },
49
- "gitHead": "5ac67f77a77da73d93c76b9ec23d86acbd0a2123"
49
+ "gitHead": "f4e46464b5578eadab4feec5dcb102446067e053"
50
50
  }