@bitbitpress/client 0.1.8 → 0.1.9

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 (46) hide show
  1. package/README.md +106 -118
  2. package/dist/examples/basic-usage.d.ts.map +1 -1
  3. package/dist/examples/basic-usage.js +39 -47
  4. package/dist/examples/basic-usage.js.map +1 -1
  5. package/dist/generated/openapi.d.ts +26 -39
  6. package/dist/index.d.ts +2 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/user/batch-manager.d.ts +6 -5
  9. package/dist/user/batch-manager.d.ts.map +1 -1
  10. package/dist/user/batch-manager.js +15 -23
  11. package/dist/user/batch-manager.js.map +1 -1
  12. package/dist/user/index.d.ts +28 -32
  13. package/dist/user/index.d.ts.map +1 -1
  14. package/dist/user/index.js +44 -20
  15. package/dist/user/index.js.map +1 -1
  16. package/dist/user/profile.d.ts +2 -2
  17. package/dist/user/profile.d.ts.map +1 -1
  18. package/dist/user/profile.js +2 -2
  19. package/dist/user/profile.js.map +1 -1
  20. package/dist/user/recommendations.d.ts +5 -12
  21. package/dist/user/recommendations.d.ts.map +1 -1
  22. package/dist/user/recommendations.js +3 -3
  23. package/dist/user/recommendations.js.map +1 -1
  24. package/dist/user/report.d.ts +3 -3
  25. package/dist/user/report.d.ts.map +1 -1
  26. package/dist/user/report.js +3 -3
  27. package/dist/user/report.js.map +1 -1
  28. package/dist/user/signal-batch-manager.d.ts +5 -7
  29. package/dist/user/signal-batch-manager.d.ts.map +1 -1
  30. package/dist/user/signal-batch-manager.js +7 -7
  31. package/dist/user/signal-batch-manager.js.map +1 -1
  32. package/dist/user/signal.d.ts +3 -3
  33. package/dist/user/signal.d.ts.map +1 -1
  34. package/dist/user/signal.js +3 -3
  35. package/dist/user/signal.js.map +1 -1
  36. package/dist/user/synthesize.d.ts +19 -13
  37. package/dist/user/synthesize.d.ts.map +1 -1
  38. package/dist/user/synthesize.js +26 -4
  39. package/dist/user/synthesize.js.map +1 -1
  40. package/dist/user/token.d.ts +3 -3
  41. package/dist/user/token.d.ts.map +1 -1
  42. package/dist/user/token.js +3 -3
  43. package/dist/user/token.js.map +1 -1
  44. package/dist/user/typeDefs.d.ts +18 -0
  45. package/dist/user/typeDefs.d.ts.map +1 -1
  46. package/package.json +1 -1
@@ -18,17 +18,17 @@ const clearTimer = getClearTimeout();
18
18
  class SynthesizeBatchManager {
19
19
  queue = [];
20
20
  timer = null;
21
- config;
21
+ getConfig;
22
22
  batchTimeout;
23
- constructor(config, batchTimeout) {
24
- this.config = config;
23
+ constructor(getConfig, batchTimeout) {
24
+ this.getConfig = getConfig;
25
25
  this.batchTimeout = batchTimeout;
26
26
  }
27
27
  /**
28
- * Update the request configuration (e.g., when token changes)
28
+ * Update the config getter (e.g., when token refresh logic changes)
29
29
  */
30
30
  updateConfig(config) {
31
- this.config = config;
31
+ this.getConfig = () => Promise.resolve(config);
32
32
  }
33
33
  addItem(item) {
34
34
  return new Promise((resolve, reject) => {
@@ -42,7 +42,7 @@ class SynthesizeBatchManager {
42
42
  }, this.batchTimeout);
43
43
  });
44
44
  }
45
- flush() {
45
+ async flush() {
46
46
  if (this.queue.length === 0) {
47
47
  return;
48
48
  }
@@ -50,12 +50,10 @@ class SynthesizeBatchManager {
50
50
  // Clear queue and reset state
51
51
  this.queue = [];
52
52
  this.timer = null;
53
- // Create a shared stream router that will distribute events to indexed promises
53
+ const config = await this.getConfig();
54
54
  const router = new StreamRouter(batch);
55
- // Send batch request in the background
56
- // Don't await - let it run asynchronously
57
55
  const items = batch.map((b) => b.item);
58
- (0, synthesize_js_1.synthesize)(this.config, items)
56
+ (0, synthesize_js_1.synthesize)(config, items)
59
57
  .then((stream) => {
60
58
  router.setStream(stream);
61
59
  router.start();
@@ -102,8 +100,8 @@ class StreamRouter {
102
100
  this.resolvers.clear();
103
101
  }
104
102
  /**
105
- * Start consuming the stream and routing events
106
- * Resolves promises with the data field from events (DAILY_SUMMARY or CUSTOM) for their index
103
+ * Start consuming the stream and routing events.
104
+ * Data events have { index, data?, error? }; connection events have { type: 'connected' | 'complete' }.
107
105
  */
108
106
  async start() {
109
107
  if (!this.stream) {
@@ -112,20 +110,14 @@ class StreamRouter {
112
110
  }
113
111
  try {
114
112
  for await (const event of this.stream) {
115
- // Skip connection and completion events - we only care about data events
116
- if (event.type === 'connected' || event.type === 'complete') {
113
+ if ('type' in event && (event.type === 'connected' || event.type === 'complete')) {
117
114
  continue;
118
115
  }
119
- // Handle data events (DAILY_SUMMARY or CUSTOM) - route to specific index
120
- if (event.index !== undefined &&
121
- (event.type === 'DAILY_SUMMARY' || event.type === 'CUSTOM')) {
122
- const index = event.index;
123
- const resolver = this.resolvers.get(index);
116
+ if ('index' in event && typeof event.index === 'number') {
117
+ const resolver = this.resolvers.get(event.index);
124
118
  if (resolver) {
125
- // Resolve the promise with only the data field
126
- resolver.resolve(event.data);
127
- // Remove the resolver since it's been resolved
128
- this.resolvers.delete(index);
119
+ resolver.resolve({ data: event.data, error: event.error });
120
+ this.resolvers.delete(event.index);
129
121
  }
130
122
  }
131
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"batch-manager.js","sourceRoot":"","sources":["../../src/user/batch-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-manager.js","sourceRoot":"","sources":["../../src/user/batch-manager.ts"],"names":[],"mappings":"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"}
@@ -3,79 +3,75 @@ import { type RecommendationsRequest, type RecommendationsResponse } from './rec
3
3
  import { type ProfileResponse } from './profile.js';
4
4
  import { type ReportRequest, type ReportResponse } from './report.js';
5
5
  import { type Signal, type SignalRequest, type SignalResponse } from './signal.js';
6
- import { type SynthesizeEvent } from './synthesize.js';
6
+ import { type SynthesizeEvent, type SynthesizeItemResponse } from './synthesize.js';
7
7
  import { type TokenRequest, type TokenResponse } from './token.js';
8
- import type { SynthesizeRequest } from './typeDefs.js';
8
+ import type { SynthesizeItem, SynthesizeItems } from './typeDefs.js';
9
9
  /**
10
- * User-related API methods interface
11
- * Provides type-safe access to all user API endpoints
10
+ * User-related API methods interface (aligned with OpenAPI spec paths).
12
11
  */
13
12
  export interface UserMethods {
14
13
  /**
15
- * Authenticate with SSO token
16
- * Exchanges SSO token for authentication token and sets it for all user methods
14
+ * Exchange SSO token for a BitBitPress token and store it for subsequent calls.
17
15
  *
18
- * @param ssoToken - The SSO token to exchange for an authentication token
16
+ * @param ssoToken - Token from your authentication provider (OIDC)
19
17
  * @returns Promise that resolves when authentication is complete
20
18
  */
21
19
  authenticate(ssoToken: string): Promise<void>;
22
20
  /**
23
- * Exchange SSO token for authentication token (returns token without setting it)
21
+ * Exchange SSO token for a BitBitPress token (returns token without storing it).
24
22
  *
25
- * @param ssoToken - The SSO token to exchange
26
- * @returns Promise that resolves with the token response containing idToken or accessToken
23
+ * @param ssoToken - Token from your authentication provider (OIDC)
24
+ * @returns Promise that resolves with token data (idToken, accessToken, refreshToken, expiresIn)
27
25
  */
28
26
  token(ssoToken: TokenRequest['ssoToken']): Promise<TokenResponse>;
29
27
  /**
30
- * Get user profile information
28
+ * Get user profile (e.g. suggested interest topics).
31
29
  *
32
- * @returns Promise that resolves with user profile data
30
+ * @returns Promise that resolves with profile data (e.g. suggestedInterestTopics)
33
31
  */
34
32
  profile(): Promise<NonNullable<ProfileResponse>>;
35
33
  /**
36
- * Get recommended articles for the authenticated user
34
+ * Retrieve recommended articles for the authenticated user based on their interests.
37
35
  *
38
- * @param options - Optional request parameters for recommendations
39
- * @returns Promise that resolves with recommended articles
36
+ * @param options - Optional: limit, cursor, fields (dot/bracket notation for asset fields)
37
+ * @returns Promise that resolves with items (assetId, score, fields) and optional cursor
40
38
  */
41
39
  recommendations(options?: RecommendationsRequest): Promise<NonNullable<RecommendationsResponse>>;
42
40
  /**
43
- * Report a bit (create a user-provided bit to be ingested into the system)
41
+ * Create a user-provided bit to be ingested (e.g. news or content the user wants to share).
44
42
  *
45
- * @param options - Report request parameters
46
- * @returns Promise that resolves with report response data
43
+ * @param options - title (optional) and content (required)
44
+ * @returns Promise that resolves when the report is accepted
47
45
  */
48
46
  report(options: ReportRequest): Promise<NonNullable<ReportResponse>>;
49
47
  /**
50
- * Record user signals (e.g. clicked topic, read article) to inform profile interests
48
+ * Record user signals (e.g. clicked topic, read article) to inform profile and recommendations.
51
49
  *
52
- * @param options - Signal request parameters containing an array of signals
53
- * @returns Promise that resolves with the signal response
50
+ * @param options - signals array and optional isSynchronous
51
+ * @returns Promise that resolves with response data (recorded: boolean)
54
52
  */
55
53
  signal(options: SignalRequest): Promise<NonNullable<SignalResponse>>;
56
54
  /**
57
- * Record a single signal (batched)
58
- * Signals are batched and sent together after the configured timeout
55
+ * Record a single signal (batched). Signals are sent together after the configured timeout.
59
56
  *
60
57
  * @param signal - Single signal to record
61
- * @returns Promise that resolves with the signal response
58
+ * @returns Promise that resolves with response data (recorded: boolean)
62
59
  */
63
60
  signalItem(signal: Signal): Promise<NonNullable<SignalResponse>>;
64
61
  /**
65
- * Synthesize user content (streaming)
62
+ * Synthesize content items personalized to the user (streaming SSE).
66
63
  *
67
- * @param items - Array of items to synthesize
68
- * @returns AsyncIterable that yields synthesis events
64
+ * @param items - Array of items: optional inputs (type: externalId | text | excludeExternalIds, value), output (schema, optional staleAfter), optional configurationKeyName
65
+ * @returns AsyncIterable yielding connection events (connected, complete) and data events (index, data?, error?)
69
66
  */
70
- synthesize(items: SynthesizeRequest['items']): Promise<AsyncIterable<SynthesizeEvent>>;
67
+ synthesize(items: SynthesizeItems): Promise<AsyncIterable<SynthesizeEvent>>;
71
68
  /**
72
- * Synthesize a single item (batched)
73
- * Items are batched and sent together after the configured timeout
69
+ * Synthesize a single item (batched). Items are sent together after the configured timeout.
74
70
  *
75
71
  * @param item - Single item to synthesize
76
- * @returns Promise that resolves with the data field from the event (excluding 'connected' and 'complete' events)
72
+ * @returns Promise that resolves with the synthesized data for that item's index
77
73
  */
78
- synthesizeItem(item: SynthesizeRequest['items'][number]): Promise<unknown>;
74
+ synthesizeItem(item: SynthesizeItem): Promise<SynthesizeItemResponse>;
79
75
  }
80
76
  /**
81
77
  * User-related API methods
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjG,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAiB,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAElE;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;IAEjD;;;;;OAKG;IACH,eAAe,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAEjG;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAErE;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAErE;;;;;;OAMG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAEjE;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;IAEvF;;;;;;OAMG;IACH,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,sBAAsB,GAAE,MAAY,EACpC,kBAAkB,GAAE,MAAY,GAC/B,WAAW,CA8Cb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjG,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAiB,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAElE;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;IAEjD;;;;;OAKG;IACH,eAAe,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAEjG;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAErE;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAErE;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAEjE;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;IAE5E;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACvE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,sBAAsB,GAAE,MAAY,EACpC,kBAAkB,GAAE,MAAY,GAC/B,WAAW,CAmFb"}
@@ -13,36 +13,60 @@ const token_js_1 = require("./token.js");
13
13
  * User-related API methods
14
14
  */
15
15
  function createUserMethods(config, synthesizeBatchTimeout = 250, signalBatchTimeout = 250) {
16
- // Store token in closure - will be set by authenticate method
16
+ // Store token and last SSO token in closure - set by authenticate
17
17
  let userToken;
18
- // Create a config getter that includes the user token
19
- const getConfigWithToken = () => ({
20
- ...config,
21
- token: userToken,
22
- });
23
- const synthesizeBatchManager = new batch_manager_js_1.SynthesizeBatchManager(getConfigWithToken(), synthesizeBatchTimeout);
24
- const signalBatchManager = new signal_batch_manager_js_1.SignalBatchManager(getConfigWithToken(), signalBatchTimeout);
25
- return {
26
- async authenticate(ssoToken) {
18
+ let lastSsoToken;
19
+ let tokenExpiresAt; // ms timestamp
20
+ /** Exchange SSO token and store access token + expiry. Returns true if a token was stored. */
21
+ const exchangeAndStoreToken = async (ssoToken) => {
22
+ try {
27
23
  const tokenResponse = await (0, token_js_1.exchangeToken)(config, ssoToken);
28
- const accessToken = tokenResponse?.idToken || tokenResponse?.accessToken;
24
+ const accessToken = tokenResponse?.idToken ?? tokenResponse?.accessToken;
29
25
  if (accessToken) {
30
26
  userToken = accessToken;
31
- // Update batch manager configs with new token
32
- synthesizeBatchManager.updateConfig(getConfigWithToken());
33
- signalBatchManager.updateConfig(getConfigWithToken());
27
+ const expiresIn = tokenResponse?.expiresIn;
28
+ tokenExpiresAt =
29
+ typeof expiresIn === 'number'
30
+ ? Date.now() + expiresIn * 1000
31
+ : undefined;
32
+ return true;
34
33
  }
35
- else {
34
+ }
35
+ catch {
36
+ // Exchange failed
37
+ }
38
+ return false;
39
+ };
40
+ /** Returns config with current token. If token is missing or expired, attempts to re-authenticate with lastSsoToken. */
41
+ const getConfigWithToken = async () => {
42
+ const now = Date.now();
43
+ const missingOrExpired = userToken === undefined ||
44
+ (tokenExpiresAt !== undefined && now >= tokenExpiresAt);
45
+ if (missingOrExpired && lastSsoToken !== undefined) {
46
+ await exchangeAndStoreToken(lastSsoToken);
47
+ }
48
+ return {
49
+ ...config,
50
+ token: userToken,
51
+ };
52
+ };
53
+ const synthesizeBatchManager = new batch_manager_js_1.SynthesizeBatchManager(getConfigWithToken, synthesizeBatchTimeout);
54
+ const signalBatchManager = new signal_batch_manager_js_1.SignalBatchManager(getConfigWithToken, signalBatchTimeout);
55
+ return {
56
+ async authenticate(ssoToken) {
57
+ lastSsoToken = ssoToken;
58
+ const stored = await exchangeAndStoreToken(ssoToken);
59
+ if (!stored) {
36
60
  throw new Error('Token exchange failed: no access token in response');
37
61
  }
38
62
  },
39
63
  token: (ssoToken) => (0, token_js_1.exchangeToken)(config, ssoToken),
40
- profile: () => (0, profile_js_1.getProfile)(getConfigWithToken()),
41
- recommendations: (options) => (0, recommendations_js_1.getRecommendations)(getConfigWithToken(), options),
42
- report: (options) => (0, report_js_1.reportBit)(getConfigWithToken(), options),
43
- signal: (options) => (0, signal_js_1.recordSignal)(getConfigWithToken(), options),
64
+ profile: () => getConfigWithToken().then(profile_js_1.getProfile),
65
+ recommendations: (options) => getConfigWithToken().then((cfg) => (0, recommendations_js_1.getRecommendations)(cfg, options)),
66
+ report: (options) => getConfigWithToken().then((cfg) => (0, report_js_1.reportBit)(cfg, options)),
67
+ signal: (options) => getConfigWithToken().then((cfg) => (0, signal_js_1.recordSignal)(cfg, options)),
44
68
  signalItem: (signal) => signalBatchManager.addSignal(signal),
45
- synthesize: (items) => (0, synthesize_js_1.synthesize)(getConfigWithToken(), items),
69
+ synthesize: (items) => getConfigWithToken().then((cfg) => (0, synthesize_js_1.synthesize)(cfg, items)),
46
70
  synthesizeItem: (item) => synthesizeBatchManager.addItem(item),
47
71
  };
48
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":";;AAkGA,8CAkDC;AAnJD,yDAA4D;AAC5D,6DAI8B;AAC9B,6CAAgE;AAChE,2CAAiF;AACjF,2CAAiG;AACjG,uEAA+D;AAC/D,mDAAmE;AACnE,yCAAkF;AAmFlF;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,MAAqB,EACrB,yBAAiC,GAAG,EACpC,qBAA6B,GAAG;IAEhC,8DAA8D;IAC9D,IAAI,SAA6B,CAAC;IAElC,sDAAsD;IACtD,MAAM,kBAAkB,GAAG,GAAkB,EAAE,CAAC,CAAC;QAC/C,GAAG,MAAM;QACT,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,IAAI,yCAAsB,CAAC,kBAAkB,EAAE,EAAE,sBAAsB,CAAC,CAAC;IACxG,MAAM,kBAAkB,GAAG,IAAI,4CAAkB,CAAC,kBAAkB,EAAE,EAAE,kBAAkB,CAAC,CAAC;IAE5F,OAAO;QACL,KAAK,CAAC,YAAY,CAAC,QAAgB;YACjC,MAAM,aAAa,GAAG,MAAM,IAAA,wBAAa,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,aAAa,EAAE,OAAO,IAAI,aAAa,EAAE,WAAW,CAAC;YACzE,IAAI,WAAW,EAAE,CAAC;gBAChB,SAAS,GAAG,WAAW,CAAC;gBACxB,8CAA8C;gBAC9C,sBAAsB,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBAC1D,kBAAkB,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,KAAK,EAAE,CAAC,QAAkC,EAAE,EAAE,CAAC,IAAA,wBAAa,EAAC,MAAM,EAAE,QAAQ,CAAC;QAE9E,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,uBAAU,EAAC,kBAAkB,EAAE,CAAC;QAE/C,eAAe,EAAE,CAAC,OAAgC,EAAE,EAAE,CACpD,IAAA,uCAAkB,EAAC,kBAAkB,EAAE,EAAE,OAAO,CAAC;QAEnD,MAAM,EAAE,CAAC,OAAsB,EAAE,EAAE,CAAC,IAAA,qBAAS,EAAC,kBAAkB,EAAE,EAAE,OAAO,CAAC;QAE5E,MAAM,EAAE,CAAC,OAAsB,EAAE,EAAE,CAAC,IAAA,wBAAY,EAAC,kBAAkB,EAAE,EAAE,OAAO,CAAC;QAE/E,UAAU,EAAE,CAAC,MAAc,EAAwC,EAAE,CACnE,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC;QAEtC,UAAU,EAAE,CAAC,KAAiC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,kBAAkB,EAAE,EAAE,KAAK,CAAC;QAE1F,cAAc,EAAE,CAAC,IAAwC,EAAoB,EAAE,CAC7E,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@ import type { paths } from '../generated/openapi.js';
2
2
  import type { RequestConfig } from '../request.js';
3
3
  export type ProfileResponse = paths['/v1/user/profile']['get']['responses'][200]['content']['application/json']['data'];
4
4
  /**
5
- * Get user profile information
5
+ * Get user profile information (e.g. suggested interest topics).
6
6
  *
7
7
  * @param config - Request configuration with base URL, timeout, fetch, and optional token
8
- * @returns Promise that resolves with user profile data
8
+ * @returns Promise that resolves with profile data (`suggestedInterestTopics` per OpenAPI)
9
9
  */
10
10
  export declare function getProfile(config: RequestConfig): Promise<NonNullable<ProfileResponse>>;
11
11
  //# sourceMappingURL=profile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/user/profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,MAAM,eAAe,GACzB,KAAK,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5F;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAavC"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/user/profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,MAAM,eAAe,GACzB,KAAK,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5F;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAWvC"}
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getProfile = getProfile;
4
4
  const request_js_1 = require("../request.js");
5
5
  /**
6
- * Get user profile information
6
+ * Get user profile information (e.g. suggested interest topics).
7
7
  *
8
8
  * @param config - Request configuration with base URL, timeout, fetch, and optional token
9
- * @returns Promise that resolves with user profile data
9
+ * @returns Promise that resolves with profile data (`suggestedInterestTopics` per OpenAPI)
10
10
  */
11
11
  async function getProfile(config) {
12
12
  const response = await (0, request_js_1.makeRequest)(config, {
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/user/profile.ts"],"names":[],"mappings":";;AAcA,gCAeC;AA3BD,8CAA4C;AAM5C;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAC9B,MAAqB;IAErB,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAW,EAEhC,MAAM,EAAE;QACR,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,kBAAkB;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/user/profile.ts"],"names":[],"mappings":";;AAcA,gCAaC;AAzBD,8CAA4C;AAM5C;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAC9B,MAAqB;IAErB,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAW,EAAkB,MAAM,EAAE;QAC1D,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,kBAAkB;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,21 +1,14 @@
1
1
  import type { paths } from '../generated/openapi.js';
2
2
  import type { RequestConfig } from '../request.js';
3
- export type RecommendationsRequest = paths['/v1/user/recommendations']['post']['requestBody'] extends infer RB ? RB extends {
4
- content: {
5
- 'application/json': infer U;
6
- };
7
- } ? U : RB extends {
8
- content?: {
9
- 'application/json': infer U;
10
- };
11
- } ? U : never : never;
3
+ import type { RecommendationsRequestBody } from './typeDefs.js';
4
+ export type RecommendationsRequest = RecommendationsRequestBody;
12
5
  export type RecommendationsResponse = paths['/v1/user/recommendations']['post']['responses'][200]['content']['application/json']['data'];
13
6
  /**
14
- * Get recommended articles for the authenticated user
7
+ * Retrieve recommended articles for the authenticated user based on their interests.
15
8
  *
16
9
  * @param config - Request configuration with base URL, timeout, fetch, and optional token
17
- * @param options - Optional recommendations request parameters (type: RecommendationsRequest)
18
- * @returns Promise that resolves with recommended articles data
10
+ * @param options - Optional: limit, cursor, and fields (dot/bracket notation for asset fields)
11
+ * @returns Promise that resolves with items (assetId, score, fields) and optional cursor
19
12
  */
20
13
  export declare function getRecommendations(config: RequestConfig, options?: RecommendationsRequest): Promise<NonNullable<RecommendationsResponse>>;
21
14
  //# sourceMappingURL=recommendations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recommendations.d.ts","sourceRoot":"","sources":["../../src/user/recommendations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,MAAM,sBAAsB,GAChC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,SAAS,MAAM,EAAE,GACrE,EAAE,SAAS;IACT,OAAO,EAAE;QAAE,kBAAkB,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CAC1C,GACC,CAAC,GACD,EAAE,SAAS;IACP,OAAO,CAAC,EAAE;QAAE,kBAAkB,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CAC3C,GACD,CAAC,GACD,KAAK,GACT,KAAK,CAAC;AACZ,MAAM,MAAM,uBAAuB,GACjC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErG;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAc/C"}
1
+ {"version":3,"file":"recommendations.d.ts","sourceRoot":"","sources":["../../src/user/recommendations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAChE,MAAM,MAAM,uBAAuB,GACjC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErG;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAY/C"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRecommendations = getRecommendations;
4
4
  const request_js_1 = require("../request.js");
5
5
  /**
6
- * Get recommended articles for the authenticated user
6
+ * Retrieve recommended articles for the authenticated user based on their interests.
7
7
  *
8
8
  * @param config - Request configuration with base URL, timeout, fetch, and optional token
9
- * @param options - Optional recommendations request parameters (type: RecommendationsRequest)
10
- * @returns Promise that resolves with recommended articles data
9
+ * @param options - Optional: limit, cursor, and fields (dot/bracket notation for asset fields)
10
+ * @returns Promise that resolves with items (assetId, score, fields) and optional cursor
11
11
  */
12
12
  async function getRecommendations(config, options) {
13
13
  const response = await (0, request_js_1.makeRequest)(config, {
@@ -1 +1 @@
1
- {"version":3,"file":"recommendations.js","sourceRoot":"","sources":["../../src/user/recommendations.ts"],"names":[],"mappings":";;AA2BA,gDAiBC;AA1CD,8CAA4C;AAkB5C;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CACtC,MAAqB,EACrB,OAAgC;IAEhC,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAW,EAEhC,MAAM,EAAE;QACR,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,0BAA0B;QAChC,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"recommendations.js","sourceRoot":"","sources":["../../src/user/recommendations.ts"],"names":[],"mappings":";;AAgBA,gDAeC;AA7BD,8CAA4C;AAO5C;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CACtC,MAAqB,EACrB,OAAgC;IAEhC,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAW,EAA0B,MAAM,EAAE;QAClE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,0BAA0B;QAChC,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -3,11 +3,11 @@ import type { RequestConfig } from '../request.js';
3
3
  export type ReportRequest = paths['/v1/user/report']['post']['requestBody']['content']['application/json'];
4
4
  export type ReportResponse = paths['/v1/user/report']['post']['responses'][200]['content']['application/json']['data'];
5
5
  /**
6
- * Report a bit (create a user-provided bit to be ingested into the system)
6
+ * Create a user-provided bit to be ingested (e.g. news or other content the user wants to share).
7
7
  *
8
8
  * @param config - Request configuration with base URL, timeout, fetch, and optional token
9
- * @param options - Report request parameters
10
- * @returns Promise that resolves with report response data
9
+ * @param options - title (optional) and content (required)
10
+ * @returns Promise that resolves when the report is accepted
11
11
  */
12
12
  export declare function reportBit(config: RequestConfig, options: ReportRequest): Promise<NonNullable<ReportResponse>>;
13
13
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/user/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,MAAM,aAAa,GACvB,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACjF,MAAM,MAAM,cAAc,GACxB,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5F;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CActC"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/user/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,MAAM,aAAa,GACvB,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACjF,MAAM,MAAM,cAAc,GACxB,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5F;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAYtC"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.reportBit = reportBit;
4
4
  const request_js_1 = require("../request.js");
5
5
  /**
6
- * Report a bit (create a user-provided bit to be ingested into the system)
6
+ * Create a user-provided bit to be ingested (e.g. news or other content the user wants to share).
7
7
  *
8
8
  * @param config - Request configuration with base URL, timeout, fetch, and optional token
9
- * @param options - Report request parameters
10
- * @returns Promise that resolves with report response data
9
+ * @param options - title (optional) and content (required)
10
+ * @returns Promise that resolves when the report is accepted
11
11
  */
12
12
  async function reportBit(config, options) {
13
13
  const response = await (0, request_js_1.makeRequest)(config, {
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/user/report.ts"],"names":[],"mappings":";;AAiBA,8BAiBC;AAhCD,8CAA4C;AAQ5C;;;;;;GAMG;AACI,KAAK,UAAU,SAAS,CAC7B,MAAqB,EACrB,OAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAW,EAEhC,MAAM,EAAE;QACR,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/user/report.ts"],"names":[],"mappings":";;AAiBA,8BAeC;AA9BD,8CAA4C;AAQ5C;;;;;;GAMG;AACI,KAAK,UAAU,SAAS,CAC7B,MAAqB,EACrB,OAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAW,EAAiB,MAAM,EAAE;QACzD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { RequestConfig } from '../request.js';
2
- import { type Signal } from './signal.js';
2
+ import { type Signal, type SignalResponse } from './signal.js';
3
3
  /**
4
4
  * Batch manager for signalItem
5
5
  * Batches individual signals and sends them together after the timeout
@@ -7,16 +7,14 @@ import { type Signal } from './signal.js';
7
7
  export declare class SignalBatchManager {
8
8
  private queue;
9
9
  private timer;
10
- private config;
10
+ private getConfig;
11
11
  private batchTimeout;
12
- constructor(config: RequestConfig, batchTimeout: number);
12
+ constructor(getConfig: () => Promise<RequestConfig>, batchTimeout: number);
13
13
  /**
14
- * Update the request configuration (e.g., when token changes)
14
+ * Update the config getter (e.g., when token refresh logic changes)
15
15
  */
16
16
  updateConfig(config: RequestConfig): void;
17
- addSignal(signal: Signal): Promise<{
18
- recorded?: boolean;
19
- }>;
17
+ addSignal(signal: Signal): Promise<NonNullable<SignalResponse>>;
20
18
  private flush;
21
19
  }
22
20
  //# sourceMappingURL=signal-batch-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signal-batch-manager.d.ts","sourceRoot":"","sources":["../../src/user/signal-batch-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAkBxD;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAIL;IACR,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM;IAKvD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAIzC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;YAe5C,KAAK;CA6BpB"}
1
+ {"version":3,"file":"signal-batch-manager.d.ts","sourceRoot":"","sources":["../../src/user/signal-batch-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAkB7E;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAIL;IACR,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,YAAY,CAAS;gBAEjB,SAAS,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,MAAM;IAKzE;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAIzC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YAejD,KAAK;CA6BpB"}
@@ -18,17 +18,17 @@ const clearTimer = getClearTimeout();
18
18
  class SignalBatchManager {
19
19
  queue = [];
20
20
  timer = null;
21
- config;
21
+ getConfig;
22
22
  batchTimeout;
23
- constructor(config, batchTimeout) {
24
- this.config = config;
23
+ constructor(getConfig, batchTimeout) {
24
+ this.getConfig = getConfig;
25
25
  this.batchTimeout = batchTimeout;
26
26
  }
27
27
  /**
28
- * Update the request configuration (e.g., when token changes)
28
+ * Update the config getter (e.g., when token refresh logic changes)
29
29
  */
30
30
  updateConfig(config) {
31
- this.config = config;
31
+ this.getConfig = () => Promise.resolve(config);
32
32
  }
33
33
  addSignal(signal) {
34
34
  return new Promise((resolve, reject) => {
@@ -51,9 +51,9 @@ class SignalBatchManager {
51
51
  this.queue = [];
52
52
  this.timer = null;
53
53
  try {
54
- // Send batch request
54
+ const config = await this.getConfig();
55
55
  const signals = batch.map((b) => b.signal);
56
- const response = await (0, signal_js_1.recordSignal)(this.config, { signals });
56
+ const response = await (0, signal_js_1.recordSignal)(config, { signals });
57
57
  // Resolve all promises with the same response
58
58
  // The API returns a single response for the batch
59
59
  for (const { resolve } of batch) {
@@ -1 +1 @@
1
- {"version":3,"file":"signal-batch-manager.js","sourceRoot":"","sources":["../../src/user/signal-batch-manager.ts"],"names":[],"mappings":";;;AACA,2CAAwD;AAExD,mDAAmD;AACnD,SAAS,aAAa;IACpB,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;AACjC,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;AAMrC;;;GAGG;AACH,MAAa,kBAAkB;IACrB,KAAK,GAIR,EAAE,CAAC;IACA,KAAK,GAAiB,IAAI,CAAC;IAC3B,MAAM,CAAgB;IACtB,YAAY,CAAS;IAE7B,YAAY,MAAqB,EAAE,YAAoB;QACrD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAqB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAE7C,cAAc;YACd,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE;gBACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9B,8BAA8B;QAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC;YACH,qBAAqB;YACrB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAY,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAE9D,8CAA8C;YAC9C,kDAAkD;YAClD,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;gBAChC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8BAA8B;YAC9B,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAlED,gDAkEC"}
1
+ {"version":3,"file":"signal-batch-manager.js","sourceRoot":"","sources":["../../src/user/signal-batch-manager.ts"],"names":[],"mappings":";;;AACA,2CAA6E;AAE7E,mDAAmD;AACnD,SAAS,aAAa;IACpB,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;AACjC,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;AAMrC;;;GAGG;AACH,MAAa,kBAAkB;IACrB,KAAK,GAIR,EAAE,CAAC;IACA,KAAK,GAAiB,IAAI,CAAC;IAC3B,SAAS,CAA+B;IACxC,YAAY,CAAS;IAE7B,YAAY,SAAuC,EAAE,YAAoB;QACvE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAqB;QAChC,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAE7C,cAAc;YACd,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE;gBACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9B,8BAA8B;QAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAY,EAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAEzD,8CAA8C;YAC9C,kDAAkD;YAClD,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;gBAChC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8BAA8B;YAC9B,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAlED,gDAkEC"}
@@ -4,11 +4,11 @@ export type SignalRequest = paths['/v1/user/signal']['post']['requestBody']['con
4
4
  export type SignalResponse = paths['/v1/user/signal']['post']['responses'][200]['content']['application/json']['data'];
5
5
  export type Signal = SignalRequest['signals'][number];
6
6
  /**
7
- * Record user signals (e.g. clicked topic, read article) to inform profile interests
7
+ * Record user signals (e.g. clicked topic, read article) to inform profile interests. Powers recommendations.
8
8
  *
9
9
  * @param config - Request configuration with base URL, timeout, fetch, and optional token
10
- * @param options - Signal request parameters (type: SignalRequest) containing an array of signals
11
- * @returns Promise that resolves with the signal response data
10
+ * @param options - signals array (signal text, type: active|passive, optional negative, contentContext) and optional isSynchronous
11
+ * @returns Promise that resolves with response data (recorded: boolean)
12
12
  */
13
13
  export declare function recordSignal(config: RequestConfig, options: SignalRequest): Promise<NonNullable<SignalResponse>>;
14
14
  //# sourceMappingURL=signal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../src/user/signal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,MAAM,aAAa,GACvB,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACjF,MAAM,MAAM,cAAc,GACxB,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAG5F,MAAM,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CActC"}
1
+ {"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../src/user/signal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,MAAM,aAAa,GACvB,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACjF,MAAM,MAAM,cAAc,GACxB,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAG5F,MAAM,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAYtC"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.recordSignal = recordSignal;
4
4
  const request_js_1 = require("../request.js");
5
5
  /**
6
- * Record user signals (e.g. clicked topic, read article) to inform profile interests
6
+ * Record user signals (e.g. clicked topic, read article) to inform profile interests. Powers recommendations.
7
7
  *
8
8
  * @param config - Request configuration with base URL, timeout, fetch, and optional token
9
- * @param options - Signal request parameters (type: SignalRequest) containing an array of signals
10
- * @returns Promise that resolves with the signal response data
9
+ * @param options - signals array (signal text, type: active|passive, optional negative, contentContext) and optional isSynchronous
10
+ * @returns Promise that resolves with response data (recorded: boolean)
11
11
  */
12
12
  async function recordSignal(config, options) {
13
13
  const response = await (0, request_js_1.makeRequest)(config, {
@@ -1 +1 @@
1
- {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/user/signal.ts"],"names":[],"mappings":";;AAoBA,oCAiBC;AAnCD,8CAA4C;AAW5C;;;;;;GAMG;AACI,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,OAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAW,EAEhC,MAAM,EAAE;QACR,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/user/signal.ts"],"names":[],"mappings":";;AAoBA,oCAeC;AAjCD,8CAA4C;AAW5C;;;;;;GAMG;AACI,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,OAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAW,EAAiB,MAAM,EAAE;QACzD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}