@picahq/authkit-token 1.0.2 → 1.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"link.api.d.ts","sourceRoot":"","sources":["../../../src/apis/link.api.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EAGvB,MAAM,UAAU,CAAC;AAgGlB,eAAO,MAAM,uBAAuB,YACzB,OAAO,MAAM,EAAE,MAAM,CAAC,OAC1B,MAAM,YACD,sBAAsB,iBAkBjC,CAAC"}
1
+ {"version":3,"file":"link.api.d.ts","sourceRoot":"","sources":["../../../src/apis/link.api.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EAIvB,MAAM,UAAU,CAAC;AA0HlB,eAAO,MAAM,uBAAuB,YACzB,OAAO,MAAM,EAAE,MAAM,CAAC,OAC1B,MAAM,YACD,sBAAsB,iBAwBjC,CAAC"}
@@ -54,12 +54,27 @@ async function paginateAuthkitConnections(url, headers, payload, options = {}) {
54
54
  pages: 1,
55
55
  total,
56
56
  requestId: latestResponse.requestId,
57
+ isWhiteList: false,
57
58
  };
58
59
  }
60
+ async function fetchUserWhitelistStatus(url, headers) {
61
+ try {
62
+ const response = await axios_1.default.get(`${url}/v1/users/flags`, { headers });
63
+ return response.data?.authkitWhitelist ?? false;
64
+ }
65
+ catch (error) {
66
+ console.warn('Failed to fetch user whitelist status, defaulting to false:', error);
67
+ return false;
68
+ }
69
+ }
59
70
  const createEventLinkTokenApi = async (headers, url, payload) => {
60
71
  try {
72
+ const isWhiteList = await fetchUserWhitelistStatus(url, headers);
61
73
  const authkitResponse = await paginateAuthkitConnections(url, headers, payload, { limit: 100, maxConcurrentRequests: 3, maxRetries: 3 });
62
- return authkitResponse;
74
+ return {
75
+ ...authkitResponse,
76
+ isWhiteList,
77
+ };
63
78
  }
64
79
  catch (error) {
65
80
  if (axios_1.default.isAxiosError(error)) {
@@ -1 +1 @@
1
- {"version":3,"file":"link.api.js","sourceRoot":"","sources":["../../../src/apis/link.api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link.api.js","sourceRoot":"","sources":["../../../src/apis/link.api.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picahq/authkit-token",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Secure token generation for Pica AuthKit using Node.js",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -3,6 +3,7 @@ import {
3
3
  CreateEventLinkPayload,
4
4
  AuthkitResponse,
5
5
  ConnectorPaginationOptions,
6
+ UserFlags,
6
7
  } from '../types';
7
8
 
8
9
  /**
@@ -96,15 +97,43 @@ async function paginateAuthkitConnections(
96
97
  pages: 1,
97
98
  total,
98
99
  requestId: latestResponse.requestId, // Use the requestId from the latest response
100
+ isWhiteList: false, // Default value, will be updated by createEventLinkTokenApi
99
101
  };
100
102
  }
101
103
 
104
+ /**
105
+ * Fetches user whitelist status from /v1/users/flags endpoint
106
+ * @param url - Base URL for the API
107
+ * @param headers - Request headers
108
+ * @returns Promise with boolean indicating whitelist status, defaults to false on error
109
+ */
110
+ async function fetchUserWhitelistStatus(
111
+ url: string,
112
+ headers: Record<string, string>,
113
+ ): Promise<boolean> {
114
+ try {
115
+ const response = await axios.get<UserFlags>(
116
+ `${url}/v1/users/flags`,
117
+ { headers }
118
+ );
119
+
120
+ // Extract authkitWhitelist directly from response, default to false if not present
121
+ return response.data?.authkitWhitelist ?? false;
122
+ } catch (error) {
123
+ // If the endpoint fails, we don't fail the whole thing, just return false
124
+ console.warn('Failed to fetch user whitelist status, defaulting to false:', error);
125
+ return false;
126
+ }
127
+ }
128
+
102
129
  export const createEventLinkTokenApi = async (
103
130
  headers: Record<string, string>,
104
131
  url: string,
105
132
  payload?: CreateEventLinkPayload,
106
133
  ) => {
107
134
  try {
135
+ // Fetch user whitelist status (doesn't fail if endpoint fails)
136
+ const isWhiteList = await fetchUserWhitelistStatus(url, headers);
108
137
 
109
138
  // Fetch all authkit connections with pagination support
110
139
  const authkitResponse = await paginateAuthkitConnections(
@@ -114,7 +143,11 @@ export const createEventLinkTokenApi = async (
114
143
  { limit: 100, maxConcurrentRequests: 3, maxRetries: 3 }
115
144
  );
116
145
 
117
- return authkitResponse;
146
+ // Add isWhiteList to the response
147
+ return {
148
+ ...authkitResponse,
149
+ isWhiteList,
150
+ };
118
151
  } catch (error) {
119
152
  if (axios.isAxiosError(error)) {
120
153
  return error.response?.data;
@@ -210,6 +210,7 @@ export interface AuthkitResponse {
210
210
  pages: number;
211
211
  page: number;
212
212
  requestId: number;
213
+ isWhiteList: boolean;
213
214
  }
214
215
 
215
216
  export interface ConnectorPaginationOptions {
@@ -218,4 +219,11 @@ export interface ConnectorPaginationOptions {
218
219
  maxRetries?: number;
219
220
  }
220
221
 
222
+ export interface UserFlags {
223
+ accessList: string[];
224
+ authkitWhitelist: boolean;
225
+ earlyAccess: string[];
226
+ completedQuickstart: boolean;
227
+ }
228
+
221
229