@contentful/optimization-core 0.1.0-alpha → 0.1.0-alpha11

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 (149) hide show
  1. package/README.md +329 -93
  2. package/dist/160.mjs +3 -0
  3. package/dist/260.mjs +14 -0
  4. package/dist/260.mjs.map +1 -0
  5. package/dist/499.mjs +4 -0
  6. package/dist/632.mjs +5 -0
  7. package/dist/632.mjs.map +1 -0
  8. package/dist/942.mjs +2 -0
  9. package/dist/api-client.cjs +60 -0
  10. package/dist/api-client.cjs.map +1 -0
  11. package/dist/api-client.d.cts +4 -0
  12. package/dist/api-client.d.mts +4 -0
  13. package/dist/api-client.d.ts +4 -0
  14. package/dist/api-client.mjs +2 -0
  15. package/dist/api-schemas.cjs +63 -0
  16. package/dist/api-schemas.cjs.map +1 -0
  17. package/dist/api-schemas.d.cts +4 -0
  18. package/dist/api-schemas.d.mts +4 -0
  19. package/dist/api-schemas.d.ts +4 -0
  20. package/dist/api-schemas.mjs +2 -0
  21. package/dist/constants.cjs +78 -0
  22. package/dist/constants.cjs.map +1 -0
  23. package/dist/constants.d.cts +88 -0
  24. package/dist/constants.d.mts +88 -0
  25. package/dist/constants.d.ts +88 -0
  26. package/dist/constants.mjs +1 -0
  27. package/dist/index.cjs +1509 -1715
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +2523 -0
  30. package/dist/index.d.mts +2523 -0
  31. package/dist/index.d.ts +2523 -15
  32. package/dist/index.mjs +1215 -1362
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/logger.cjs +67 -0
  35. package/dist/logger.cjs.map +1 -0
  36. package/dist/logger.d.cts +8 -0
  37. package/dist/logger.d.mts +8 -0
  38. package/dist/logger.d.ts +8 -0
  39. package/dist/logger.mjs +2 -0
  40. package/dist/symbols.cjs +42 -0
  41. package/dist/symbols.cjs.map +1 -0
  42. package/dist/symbols.d.cts +10 -0
  43. package/dist/symbols.d.mts +10 -0
  44. package/dist/symbols.d.ts +10 -0
  45. package/dist/symbols.mjs +1 -0
  46. package/package.json +78 -12
  47. package/dist/Consent.d.ts +0 -44
  48. package/dist/Consent.d.ts.map +0 -1
  49. package/dist/Consent.js +0 -2
  50. package/dist/Consent.js.map +0 -1
  51. package/dist/CoreBase.d.ts +0 -161
  52. package/dist/CoreBase.d.ts.map +0 -1
  53. package/dist/CoreBase.js +0 -151
  54. package/dist/CoreBase.js.map +0 -1
  55. package/dist/CoreStateful.d.ts +0 -142
  56. package/dist/CoreStateful.d.ts.map +0 -1
  57. package/dist/CoreStateful.js +0 -137
  58. package/dist/CoreStateful.js.map +0 -1
  59. package/dist/CoreStateless.d.ts +0 -53
  60. package/dist/CoreStateless.d.ts.map +0 -1
  61. package/dist/CoreStateless.js +0 -43
  62. package/dist/CoreStateless.js.map +0 -1
  63. package/dist/ProductBase.d.ts +0 -83
  64. package/dist/ProductBase.d.ts.map +0 -1
  65. package/dist/ProductBase.js +0 -50
  66. package/dist/ProductBase.js.map +0 -1
  67. package/dist/analytics/AnalyticsBase.d.ts +0 -35
  68. package/dist/analytics/AnalyticsBase.d.ts.map +0 -1
  69. package/dist/analytics/AnalyticsBase.js +0 -13
  70. package/dist/analytics/AnalyticsBase.js.map +0 -1
  71. package/dist/analytics/AnalyticsStateful.d.ts +0 -138
  72. package/dist/analytics/AnalyticsStateful.d.ts.map +0 -1
  73. package/dist/analytics/AnalyticsStateful.js +0 -179
  74. package/dist/analytics/AnalyticsStateful.js.map +0 -1
  75. package/dist/analytics/AnalyticsStateless.d.ts +0 -48
  76. package/dist/analytics/AnalyticsStateless.d.ts.map +0 -1
  77. package/dist/analytics/AnalyticsStateless.js +0 -61
  78. package/dist/analytics/AnalyticsStateless.js.map +0 -1
  79. package/dist/analytics/index.d.ts +0 -5
  80. package/dist/analytics/index.d.ts.map +0 -1
  81. package/dist/analytics/index.js +0 -5
  82. package/dist/analytics/index.js.map +0 -1
  83. package/dist/global-constants.d.ts +0 -18
  84. package/dist/global-constants.d.ts.map +0 -1
  85. package/dist/global-constants.js +0 -18
  86. package/dist/global-constants.js.map +0 -1
  87. package/dist/index.d.ts.map +0 -1
  88. package/dist/index.js +0 -15
  89. package/dist/index.js.map +0 -1
  90. package/dist/lib/decorators/guardedBy.d.ts +0 -113
  91. package/dist/lib/decorators/guardedBy.d.ts.map +0 -1
  92. package/dist/lib/decorators/guardedBy.js +0 -143
  93. package/dist/lib/decorators/guardedBy.js.map +0 -1
  94. package/dist/lib/decorators/index.d.ts +0 -2
  95. package/dist/lib/decorators/index.d.ts.map +0 -1
  96. package/dist/lib/decorators/index.js +0 -2
  97. package/dist/lib/decorators/index.js.map +0 -1
  98. package/dist/lib/interceptor/InterceptorManager.d.ts +0 -127
  99. package/dist/lib/interceptor/InterceptorManager.d.ts.map +0 -1
  100. package/dist/lib/interceptor/InterceptorManager.js +0 -125
  101. package/dist/lib/interceptor/InterceptorManager.js.map +0 -1
  102. package/dist/lib/interceptor/index.d.ts +0 -2
  103. package/dist/lib/interceptor/index.d.ts.map +0 -1
  104. package/dist/lib/interceptor/index.js +0 -2
  105. package/dist/lib/interceptor/index.js.map +0 -1
  106. package/dist/lib/value-presence/ValuePresence.d.ts +0 -123
  107. package/dist/lib/value-presence/ValuePresence.d.ts.map +0 -1
  108. package/dist/lib/value-presence/ValuePresence.js +0 -141
  109. package/dist/lib/value-presence/ValuePresence.js.map +0 -1
  110. package/dist/lib/value-presence/index.d.ts +0 -2
  111. package/dist/lib/value-presence/index.d.ts.map +0 -1
  112. package/dist/lib/value-presence/index.js +0 -2
  113. package/dist/lib/value-presence/index.js.map +0 -1
  114. package/dist/personalization/PersonalizationBase.d.ts +0 -184
  115. package/dist/personalization/PersonalizationBase.d.ts.map +0 -1
  116. package/dist/personalization/PersonalizationBase.js +0 -76
  117. package/dist/personalization/PersonalizationBase.js.map +0 -1
  118. package/dist/personalization/PersonalizationStateful.d.ts +0 -226
  119. package/dist/personalization/PersonalizationStateful.d.ts.map +0 -1
  120. package/dist/personalization/PersonalizationStateful.js +0 -297
  121. package/dist/personalization/PersonalizationStateful.js.map +0 -1
  122. package/dist/personalization/PersonalizationStateless.d.ts +0 -74
  123. package/dist/personalization/PersonalizationStateless.d.ts.map +0 -1
  124. package/dist/personalization/PersonalizationStateless.js +0 -98
  125. package/dist/personalization/PersonalizationStateless.js.map +0 -1
  126. package/dist/personalization/index.d.ts +0 -6
  127. package/dist/personalization/index.d.ts.map +0 -1
  128. package/dist/personalization/index.js +0 -6
  129. package/dist/personalization/index.js.map +0 -1
  130. package/dist/personalization/resolvers/FlagsResolver.d.ts +0 -35
  131. package/dist/personalization/resolvers/FlagsResolver.d.ts.map +0 -1
  132. package/dist/personalization/resolvers/FlagsResolver.js +0 -47
  133. package/dist/personalization/resolvers/FlagsResolver.js.map +0 -1
  134. package/dist/personalization/resolvers/MergeTagValueResolver.d.ts +0 -74
  135. package/dist/personalization/resolvers/MergeTagValueResolver.d.ts.map +0 -1
  136. package/dist/personalization/resolvers/MergeTagValueResolver.js +0 -109
  137. package/dist/personalization/resolvers/MergeTagValueResolver.js.map +0 -1
  138. package/dist/personalization/resolvers/PersonalizedEntryResolver.d.ts +0 -142
  139. package/dist/personalization/resolvers/PersonalizedEntryResolver.d.ts.map +0 -1
  140. package/dist/personalization/resolvers/PersonalizedEntryResolver.js +0 -196
  141. package/dist/personalization/resolvers/PersonalizedEntryResolver.js.map +0 -1
  142. package/dist/personalization/resolvers/index.d.ts +0 -7
  143. package/dist/personalization/resolvers/index.d.ts.map +0 -1
  144. package/dist/personalization/resolvers/index.js +0 -7
  145. package/dist/personalization/resolvers/index.js.map +0 -1
  146. package/dist/signals.d.ts +0 -35
  147. package/dist/signals.d.ts.map +0 -1
  148. package/dist/signals.js +0 -30
  149. package/dist/signals.js.map +0 -1
@@ -1,196 +0,0 @@
1
- import { isEntry, isEntryReplacementComponent, isEntryReplacementVariant, isPersonalizationEntry, isPersonalizedEntry, } from '@contentful/optimization-api-client';
2
- import { createScopedLogger } from 'logger';
3
- const logger = createScopedLogger('Personalization');
4
- /** Base string for resolver warning messages. */
5
- const RESOLUTION_WARNING_BASE = 'Could not resolve personalized entry variant:';
6
- /**
7
- * Resolve a personalized Contentful entry to the correct variant for the current
8
- * selections.
9
- *
10
- * @public
11
- * @remarks
12
- * Given a baseline {@link PersonalizedEntry} and a set of selected personalizations
13
- * (variants per experience), this resolver finds the matching replacement variant
14
- * for the component configured against the baseline entry.
15
- *
16
- * **Variant indexing**: `variantIndex` in {@link SelectedPersonalization} is treated as
17
- * 1‑based (index 1 = first variant). A value of `0` indicates baseline.
18
- */
19
- const PersonalizedEntryResolver = {
20
- /**
21
- * Find the personalization entry corresponding to one of the selected experiences.
22
- *
23
- * @param params - Object containing the baseline personalized entry and the selections.
24
- * @param skipValidation - When `true`, skip type/shape validation for perf.
25
- * @returns The matching {@link PersonalizationEntry}, or `undefined` if not found/invalid.
26
- * @example
27
- * ```ts
28
- * const personalizationEntry = PersonalizedEntryResolver.getPersonalizationEntry({
29
- * personalizedEntry: entry,
30
- * selectedPersonalizations
31
- * })
32
- * ```
33
- * @remarks
34
- * A personalization entry is a personalization configuration object supplied in a
35
- * `PersonalizedEntry.nt_experiences` array. A personalized entry may relate to
36
- * multiple personalizations.
37
- */
38
- getPersonalizationEntry({ personalizedEntry, selectedPersonalizations, }, skipValidation = false) {
39
- if (!skipValidation &&
40
- (!selectedPersonalizations.length || !isPersonalizedEntry(personalizedEntry)))
41
- return;
42
- const personalizationEntry = personalizedEntry.fields.nt_experiences
43
- .filter((maybePersonalization) => isPersonalizationEntry(maybePersonalization))
44
- .find((personalizationEntry) => selectedPersonalizations.some(({ experienceId }) => experienceId === personalizationEntry.fields.nt_experience_id));
45
- return personalizationEntry;
46
- },
47
- /**
48
- * Look up the selection metadata for a specific personalization entry.
49
- *
50
- * @param params - Object with the target personalization entry and selections.
51
- * @param skipValidation - When `true`, skip type checks.
52
- * @returns The matching {@link SelectedPersonalization}, if present.
53
- * @example
54
- * ```ts
55
- * const selectedPersonalization = PersonalizedEntryResolver.getSelectedPersonalization({
56
- * personalizationEntry,
57
- * selectedPersonalizations
58
- * })
59
- * ```
60
- * @remarks
61
- * Selected personalizations are supplied by the Experience API in the
62
- * `experiences` response data property.
63
- */
64
- getSelectedPersonalization({ personalizationEntry, selectedPersonalizations, }, skipValidation = false) {
65
- if (!skipValidation &&
66
- (!selectedPersonalizations.length || !isPersonalizationEntry(personalizationEntry)))
67
- return;
68
- const selectedPersonalization = selectedPersonalizations.find(({ experienceId }) => experienceId === personalizationEntry.fields.nt_experience_id);
69
- return selectedPersonalization;
70
- },
71
- /**
72
- * Get the replacement variant config for the given selection index.
73
- *
74
- * @param params - Baseline entry, personalization entry, and 1‑based variant index.
75
- * @param skipValidation - When `true`, skip type checks.
76
- * @returns The {@link EntryReplacementVariant} for the component, if any.
77
- * @example
78
- * ```ts
79
- * const selectedVariant = PersonalizedEntryResolver.getSelectedVariant({
80
- * personalizedEntry: entry,
81
- * personalizationEntry,
82
- * selectedVariantIndex: 2 // second variant (1‑based)
83
- * })
84
- * ```
85
- * @remarks
86
- * Entry replacement variants are variant configurations specified in a
87
- * personalization configuration component's `variants` array supplied by the
88
- * personalized entry via its `nt_config` field.
89
- */
90
- getSelectedVariant({ personalizedEntry, personalizationEntry, selectedVariantIndex, }, skipValidation = false) {
91
- if (!skipValidation &&
92
- (!isPersonalizedEntry(personalizedEntry) || !isPersonalizationEntry(personalizationEntry)))
93
- return;
94
- const relevantVariants = personalizationEntry.fields.nt_config?.components
95
- ?.filter((component) => isEntryReplacementComponent(component) && !component.baseline.hidden)
96
- .find((component) => component.baseline.id === personalizedEntry.sys.id)?.variants;
97
- if (!relevantVariants?.length)
98
- return;
99
- return relevantVariants.at(selectedVariantIndex - 1);
100
- },
101
- /**
102
- * Resolve the concrete Contentful entry that corresponds to a selected variant.
103
- *
104
- * @typeParam S - Entry skeleton type.
105
- * @typeParam M - Chain modifiers.
106
- * @typeParam L - Locale code.
107
- * @param params - Personalization entry and selected variant.
108
- * @param skipValidation - When `true`, skip type checks.
109
- * @returns The resolved entry typed as {@link Entry} or `undefined`.
110
- * @example
111
- * ```ts
112
- * const selectedVariantEntry = PersonalizedEntryResolver.getSelectedVariantEntry<{ fields: unknown }>({
113
- * personalizationEntry,
114
- * selectedVariant
115
- * })
116
- * ```
117
- * @remarks
118
- * A personalized entry will resolve either to the baseline (the entry
119
- * supplied as `personalizedEntry`) or the selected variant.
120
- */
121
- getSelectedVariantEntry({ personalizationEntry, selectedVariant, }, skipValidation = false) {
122
- if (!skipValidation &&
123
- (!isPersonalizationEntry(personalizationEntry) || !isEntryReplacementVariant(selectedVariant)))
124
- return;
125
- const selectedVariantEntry = personalizationEntry.fields.nt_variants?.find((variant) => variant.sys.id === selectedVariant.id);
126
- return isEntry(selectedVariantEntry) ? selectedVariantEntry : undefined;
127
- },
128
- /**
129
- * Resolve the selected entry (baseline or variant) for a personalized entry
130
- * and optional selected personalizations, returning both the entry and the
131
- * personalization metadata.
132
- *
133
- * @typeParam S - Entry skeleton type.
134
- * @typeParam M - Chain modifiers.
135
- * @typeParam L - Locale code.
136
- * @param entry - The baseline personalized entry.
137
- * @param selectedPersonalizations - Optional selections for the current profile.
138
- * @returns An object containing the resolved entry and (if chosen) the selection.
139
- * @example
140
- * ```ts
141
- * const { entry: personalizedEntry, personalization } = PersonalizedEntryResolver.resolve(entry, selections)
142
- * if (personalization) console.log('Variant index', personalization.variantIndex)
143
- * ```
144
- */
145
- resolve(entry, selectedPersonalizations) {
146
- logger.debug(`Resolving personalized entry for baseline entry ${entry.sys.id}`);
147
- if (!selectedPersonalizations?.length) {
148
- logger.warn(`${RESOLUTION_WARNING_BASE} no selectedPersonalizations exist for the current profile`);
149
- return { entry };
150
- }
151
- if (!isPersonalizedEntry(entry)) {
152
- logger.warn(`${RESOLUTION_WARNING_BASE} entry ${entry.sys.id} is not personalized`);
153
- return { entry };
154
- }
155
- const personalizationEntry = PersonalizedEntryResolver.getPersonalizationEntry({
156
- personalizedEntry: entry,
157
- selectedPersonalizations,
158
- }, true);
159
- if (!personalizationEntry) {
160
- logger.warn(`${RESOLUTION_WARNING_BASE} could not find a personalization entry for ${entry.sys.id}`);
161
- return { entry };
162
- }
163
- const selectedPersonalization = PersonalizedEntryResolver.getSelectedPersonalization({
164
- personalizationEntry,
165
- selectedPersonalizations,
166
- }, true);
167
- const selectedVariantIndex = selectedPersonalization?.variantIndex ?? 0;
168
- if (selectedVariantIndex === 0) {
169
- logger.debug(`Resolved personalization entry for entry ${entry.sys.id} is baseline`);
170
- return { entry };
171
- }
172
- const selectedVariant = PersonalizedEntryResolver.getSelectedVariant({
173
- personalizedEntry: entry,
174
- personalizationEntry,
175
- selectedVariantIndex,
176
- }, true);
177
- if (!selectedVariant) {
178
- logger.warn(`${RESOLUTION_WARNING_BASE} could not find a valid replacement variant entry for ${entry.sys.id}`);
179
- return { entry };
180
- }
181
- const selectedVariantEntry = PersonalizedEntryResolver.getSelectedVariantEntry({
182
- personalizationEntry,
183
- selectedVariant,
184
- }, true);
185
- if (!selectedVariantEntry) {
186
- logger.warn(`${RESOLUTION_WARNING_BASE} could not find a valid replacement variant entry for ${entry.sys.id}`);
187
- return { entry };
188
- }
189
- else {
190
- logger.debug(`Entry ${entry.sys.id} has been resolved to variant entry ${selectedVariantEntry.sys.id}`);
191
- }
192
- return { entry: selectedVariantEntry, personalization: selectedPersonalization };
193
- },
194
- };
195
- export default PersonalizedEntryResolver;
196
- //# sourceMappingURL=PersonalizedEntryResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PersonalizedEntryResolver.js","sourceRoot":"","sources":["../../../src/personalization/resolvers/PersonalizedEntryResolver.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export * from './FlagsResolver';
2
- export { default as FlagsResolver } from './FlagsResolver';
3
- export * from './MergeTagValueResolver';
4
- export { default as MergeTagValueResolver } from './MergeTagValueResolver';
5
- export * from './PersonalizedEntryResolver';
6
- export { default as PersonalizedEntryResolver } from './PersonalizedEntryResolver';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/personalization/resolvers/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE1D,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE1E,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAA"}
@@ -1,7 +0,0 @@
1
- export * from './FlagsResolver';
2
- export { default as FlagsResolver } from './FlagsResolver';
3
- export * from './MergeTagValueResolver';
4
- export { default as MergeTagValueResolver } from './MergeTagValueResolver';
5
- export * from './PersonalizedEntryResolver';
6
- export { default as PersonalizedEntryResolver } from './PersonalizedEntryResolver';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/personalization/resolvers/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE1D,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE1E,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAA"}
package/dist/signals.d.ts DELETED
@@ -1,35 +0,0 @@
1
- import type { InsightsEvent as AnalyticsEvent, ChangeArray, Flags, ExperienceEvent as PersonalizationEvent, Profile } from '@contentful/optimization-api-client';
2
- import { batch, effect, type Signal } from '@preact/signals-core';
3
- export declare const changes: Signal<ChangeArray | undefined>;
4
- export declare const consent: Signal<boolean | undefined>;
5
- export declare const event: Signal<AnalyticsEvent | PersonalizationEvent | undefined>;
6
- export declare const flags: import("@preact/signals-core").ReadonlySignal<Flags | undefined>;
7
- export declare const online: Signal<boolean | undefined>;
8
- export declare const personalizations: Signal<{
9
- experienceId: string;
10
- variantIndex: number;
11
- variants: Record<string, string>;
12
- sticky?: boolean | undefined;
13
- }[] | undefined>;
14
- export declare const profile: Signal<Profile | undefined>;
15
- export interface Signals {
16
- changes: typeof changes;
17
- consent: typeof consent;
18
- event: typeof event;
19
- flags: typeof flags;
20
- online: typeof online;
21
- personalizations: typeof personalizations;
22
- profile: typeof profile;
23
- }
24
- export interface Subscription {
25
- unsubscribe: () => void;
26
- }
27
- export interface Observable<T> {
28
- subscribe: (next: (v: T) => void) => Subscription;
29
- }
30
- export declare function toObservable<T>(s: {
31
- value: T;
32
- }): Observable<T>;
33
- export declare const signals: Signals;
34
- export { batch, effect, type Signal };
35
- //# sourceMappingURL=signals.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../src/signals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,IAAI,cAAc,EAC/B,WAAW,EACX,KAAK,EACL,eAAe,IAAI,oBAAoB,EACvC,OAAO,EAER,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAY,MAAM,EAAU,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAGnF,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,WAAW,GAAG,SAAS,CAAqC,CAAA;AAEzF,eAAO,MAAM,OAAO,6BAAgC,CAAA;AAEpD,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG,oBAAoB,GAAG,SAAS,CAEzE,CAAA;AAEH,eAAO,MAAM,KAAK,kEAAgF,CAAA;AAElG,eAAO,MAAM,MAAM,6BAAoC,CAAA;AAEvD,eAAO,MAAM,gBAAgB;;;;;gBAAqD,CAAA;AAElF,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAiC,CAAA;AAEjF,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,OAAO,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,OAAO,CAAA;IACvB,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,MAAM,EAAE,OAAO,MAAM,CAAA;IACrB,gBAAgB,EAAE,OAAO,gBAAgB,CAAA;IACzC,OAAO,EAAE,OAAO,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,IAAI,CAAA;CACxB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,KAAK,YAAY,CAAA;CAClD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAU9D;AAED,eAAO,MAAM,OAAO,EAAE,OAQrB,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA"}
package/dist/signals.js DELETED
@@ -1,30 +0,0 @@
1
- import { batch, computed, effect, signal } from '@preact/signals-core';
2
- import { FlagsResolver } from './personalization/resolvers';
3
- export const changes = signal();
4
- export const consent = signal();
5
- export const event = signal();
6
- export const flags = computed(() => FlagsResolver.resolve(changes.value ?? []));
7
- export const online = signal(true);
8
- export const personalizations = signal();
9
- export const profile = signal();
10
- export function toObservable(s) {
11
- return {
12
- subscribe(next) {
13
- const dispose = effect(() => {
14
- next(s.value);
15
- });
16
- return { unsubscribe: dispose };
17
- },
18
- };
19
- }
20
- export const signals = {
21
- changes,
22
- consent,
23
- event,
24
- flags,
25
- online,
26
- personalizations,
27
- profile,
28
- };
29
- export { batch, effect };
30
- //# sourceMappingURL=signals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signals.js","sourceRoot":"","sources":["../src/signals.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAe,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,MAAM,CAAC,MAAM,OAAO,GAAoC,MAAM,EAA2B,CAAA;AAEzF,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,EAAuB,CAAA;AAEpD,MAAM,CAAC,MAAM,KAAK,GAA8D,MAAM,EAEnF,CAAA;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAoB,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAA;AAElG,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,EAA4C,CAAA;AAElF,MAAM,CAAC,MAAM,OAAO,GAAgC,MAAM,EAAuB,CAAA;AAoBjF,MAAM,UAAU,YAAY,CAAI,CAAe;IAC7C,OAAO;QACL,SAAS,CAAC,IAAI;YACZ,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE;gBAC1B,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,CAAC,CAAA;YAEF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAA;QACjC,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAY;IAC9B,OAAO;IACP,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,gBAAgB;IAChB,OAAO;CACR,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAe,CAAA"}