@frontegg/redux-store 7.84.0-alpha.0 → 7.84.0

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.
@@ -6,6 +6,7 @@ declare const _default: (store: FronteggState, api: RestApi, sharedActions: Shar
6
6
  resetSignUpState: () => void;
7
7
  resetSignUpStateSoft: () => void;
8
8
  signUpUser: (_payload: ISignUpUserPayload) => Promise<void>;
9
+ signUpUserWithPhoneNumber: (_payload: ISignUpUserPayload) => Promise<void>;
9
10
  loadAllowSignUps: (payload?: WithCallback<WithRetryConfig<{}>, IVendorConfig>) => Promise<void>;
10
11
  loadSignUpStrategies: () => Promise<void>;
11
12
  };
@@ -1,8 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["events", "url"],
4
- _excluded2 = ["events", "url"],
5
- _excluded3 = ["events", "url"];
4
+ _excluded2 = ["events", "url"];
6
5
  import { SignUpStage } from './interfaces';
7
6
  import { deepResetState, errorHandler, retryIfNeeded } from '../../helpers';
8
7
  import { initialState } from './state';
@@ -115,83 +114,11 @@ export default ((store, api, sharedActions) => {
115
114
  });
116
115
  }
117
116
  };
118
- const signUpUserWithUsername = async _payload => {
119
- const {
120
- events
121
- } = _payload,
122
- payload = _objectWithoutPropertiesLoose(_payload, _excluded2);
123
- setSignUpState({
124
- loading: true
125
- });
126
- if (!payload.username) {
127
- throw new Error('Username is required for username signup');
128
- }
129
- try {
130
- const {
131
- routes,
132
- onRedirectTo
133
- } = store.auth;
134
- const {
135
- shouldActivate,
136
- user,
137
- tenantId,
138
- userId,
139
- tenants = [],
140
- activeTenant,
141
- activationToken
142
- } = await api.auth.signUpUserWithUsername(prepareIdentifiersForSignup(payload));
143
- if (!payload.invitationToken) {
144
- reportSignupCompletion(payload, userId, tenantId, activationToken, events, AuthenticationTypes.USERNAME);
145
- }
146
- if (!shouldActivate && user && isMfaRequired(user, store.root.appName)) {
147
- const mfaRequiredState = await actions.getMfaRequiredState(user, DEFAULT_RETRY_CONFIG, true, payload.email);
148
- actions.setAuthState(mfaRequiredState);
149
- onRedirectTo(routes.loginUrl);
150
- } else if (shouldActivate && activationToken) {
151
- const searchParams = new URLSearchParams({
152
- userId: userId || '',
153
- token: activationToken || ''
154
- });
155
- const url = `${routes.activateWithOTCUrl}?${searchParams.toString()}`;
156
- setSignUpState({
157
- loading: false,
158
- shouldActivate,
159
- stage: SignUpStage.SignUpSuccess
160
- });
161
- onRedirectTo(url);
162
- } else {
163
- const tenantsState = store.auth.tenantsState;
164
- setSignUpState({
165
- loading: false,
166
- shouldActivate,
167
- stage: SignUpStage.SignUpSuccess
168
- });
169
- actions.setAuthState({
170
- user,
171
- isAuthenticated: !!(user != null && user.accessToken),
172
- tenantsState: _extends({}, tenantsState, {
173
- tenants,
174
- activeTenant
175
- })
176
- });
177
- }
178
- } catch (e) {
179
- contextHolder.setAccessToken(null);
180
- contextHolder.setUser(null);
181
- setSignUpState({
182
- error: errorHandler(e)
183
- });
184
- } finally {
185
- setSignUpState({
186
- loading: false
187
- });
188
- }
189
- };
190
117
  const signUpUser = async _payload => {
191
118
  const {
192
119
  events
193
120
  } = _payload,
194
- payload = _objectWithoutPropertiesLoose(_payload, _excluded3);
121
+ payload = _objectWithoutPropertiesLoose(_payload, _excluded2);
195
122
  setSignUpState({
196
123
  loading: true
197
124
  });
@@ -199,10 +126,6 @@ export default ((store, api, sharedActions) => {
199
126
  if (phoneNumberStrategy != null && phoneNumberStrategy.required && phoneNumberStrategy != null && phoneNumberStrategy.enabled && payload.phoneNumber) {
200
127
  return signUpUserWithPhoneNumber(_payload);
201
128
  }
202
- const usernameStrategy = store.auth.signUpState.strategies.username;
203
- if (usernameStrategy != null && usernameStrategy.required && usernameStrategy != null && usernameStrategy.enabled && payload.username) {
204
- return signUpUserWithUsername(_payload);
205
- }
206
129
  try {
207
130
  const {
208
131
  routes,
@@ -320,6 +243,7 @@ export default ((store, api, sharedActions) => {
320
243
  resetSignUpState,
321
244
  resetSignUpStateSoft,
322
245
  signUpUser,
246
+ signUpUserWithPhoneNumber,
323
247
  loadAllowSignUps,
324
248
  loadSignUpStrategies
325
249
  };
@@ -15,10 +15,6 @@ export const initialState = {
15
15
  [SignUpStrategyEnum.PhoneNumber]: {
16
16
  enabled: false,
17
17
  required: false
18
- },
19
- [SignUpStrategyEnum.Username]: {
20
- enabled: false,
21
- required: false
22
18
  }
23
19
  }
24
20
  };
@@ -48,7 +48,8 @@ export default ((store, api, sharedActions) => {
48
48
  const {
49
49
  callback,
50
50
  expiresInMinutes,
51
- shouldSendEmail
51
+ shouldSendEmail,
52
+ roleIds
52
53
  } = payload;
53
54
  actions.setTeamError({
54
55
  key: TeamStateKeys.CREATE_TOKEN_LINK,
@@ -61,9 +62,10 @@ export default ((store, api, sharedActions) => {
61
62
  const [enhancedInviteUserModalFlag] = await actions.getFeatureFlags(['invite_user_modal_enhancements_frontend']);
62
63
  let data;
63
64
  if (enhancedInviteUserModalFlag) {
64
- data = await api.teams.createInviteUserLink({
65
+ data = await api.teams.createInviteUserLinkV2({
65
66
  expiresInMinutes: expiresInMinutes != null ? expiresInMinutes : 43200,
66
- shouldSendEmail: shouldSendEmail != null ? shouldSendEmail : true
67
+ shouldSendEmail: shouldSendEmail != null ? shouldSendEmail : true,
68
+ roleIds: roleIds != null ? roleIds : []
67
69
  });
68
70
  } else {
69
71
  data = await api.teams.createInviteUserLink({
@@ -122,9 +124,7 @@ export default ((store, api, sharedActions) => {
122
124
  });
123
125
  try {
124
126
  await api.teams.deleteInviteUserLink();
125
- actions.setTeamState({
126
- inviteTokenState: undefined
127
- });
127
+ await __getInvitationLinkConfig();
128
128
  callback == null ? void 0 : callback(true);
129
129
  } catch (e) {
130
130
  actions.setTeamError({
@@ -258,8 +258,12 @@ export default ((store, api, sharedActions) => {
258
258
 
259
259
  // Fetch roles, permissions, user roles, user groups, and all groups in parallel
260
260
  const [{
261
+ items: userUsernames
262
+ }, {
261
263
  items: roles
262
- }, permissions, userRoles, userGroups, groups] = await Promise.all([api.teams.loadAvailableRoles(), api.teams.loadAvailablePermissions(), userIds.length > 0 ? api.users.getUsersRoles({
264
+ }, permissions, userRoles, userGroups, groups] = await Promise.all([userIds.length > 0 ? api.users.getUsersUsernames({
265
+ userIds
266
+ }) : [], api.teams.loadAvailableRoles(), api.teams.loadAvailablePermissions(), userIds.length > 0 ? api.users.getUsersRoles({
263
267
  ids: userIds
264
268
  }) : [], userIds.length > 0 ? api.users.getUsersGroups({
265
269
  ids: userIds
@@ -269,6 +273,7 @@ export default ((store, api, sharedActions) => {
269
273
 
270
274
  // Map user roles and groups to users
271
275
  const usersWithRolesAndGroups = users.map(user => {
276
+ var _userUsernames$find;
272
277
  // Find user's role IDs
273
278
  const userRoleData = userRoles.find(ur => ur.userId === user.id);
274
279
  const userRoleIds = (userRoleData == null ? void 0 : userRoleData.roleIds) || [];
@@ -279,6 +284,12 @@ export default ((store, api, sharedActions) => {
279
284
  const userGroupIds = (userGroupData == null ? void 0 : userGroupData.groupIds) || [];
280
285
  const userGroupsFull = groups.filter(g => userGroupIds.includes(g.id));
281
286
 
287
+ // Find user's username
288
+ const userUsername = userUsernames == null ? void 0 : (_userUsernames$find = userUsernames.find(username => username.userId === user.id)) == null ? void 0 : _userUsernames$find.username;
289
+ if (!user.name) {
290
+ user.name = userUsername;
291
+ }
292
+
282
293
  //@ts-ignore
283
294
  return _extends({}, user, {
284
295
  roles: userRolesFull,
@@ -92,6 +92,7 @@ export interface InviteTokenState {
92
92
  shouldSendEmail?: boolean;
93
93
  tenantInvitationsAllowed?: boolean;
94
94
  emailsEnabled?: boolean;
95
+ roleIds?: string[];
95
96
  }
96
97
  export interface IAddUsers {
97
98
  emails: string[];
package/auth/helpers.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["phoneNumber", "email", "username"],
3
+ const _excluded = ["phoneNumber", "email"],
4
4
  _excluded2 = ["authenticatedUrl"];
5
5
  import { ContextHolder } from '@frontegg/rest-api';
6
6
  import { defaultFronteggRoutes } from './LoginState/consts';
@@ -56,8 +56,7 @@ export const getUri = urlStrategy => {
56
56
  export const prepareIdentifiersForSignup = payload => {
57
57
  const {
58
58
  phoneNumber,
59
- email,
60
- username
59
+ email
61
60
  } = payload,
62
61
  finalDto = _objectWithoutPropertiesLoose(payload, _excluded);
63
62
  if (email != null && email.length) {
@@ -70,11 +69,6 @@ export const prepareIdentifiersForSignup = payload => {
70
69
  phoneNumber
71
70
  });
72
71
  }
73
- if (username != null && username.length) {
74
- Object.assign(finalDto, {
75
- username
76
- });
77
- }
78
72
  return finalDto;
79
73
  };
80
74
  export const isAuthRoute = (path, routes) => {
@@ -262,8 +262,7 @@ export declare enum UserVerifiedOriginTypes {
262
262
  export declare enum AuthenticationTypes {
263
263
  SOCIAL_LOGIN = "SOCIAL_LOGIN",
264
264
  PASSWORD = "PASSWORD",
265
- PHONE_NUMBER = "PHONE_NUMBER",
266
- USERNAME = "USERNAME"
265
+ PHONE_NUMBER = "PHONE_NUMBER"
267
266
  }
268
267
  export declare enum AdminPortalPagesForEvents {
269
268
  profile = "profile",
@@ -19,7 +19,6 @@ export let AuthenticationTypes;
19
19
  AuthenticationTypes["SOCIAL_LOGIN"] = "SOCIAL_LOGIN";
20
20
  AuthenticationTypes["PASSWORD"] = "PASSWORD";
21
21
  AuthenticationTypes["PHONE_NUMBER"] = "PHONE_NUMBER";
22
- AuthenticationTypes["USERNAME"] = "USERNAME";
23
22
  })(AuthenticationTypes || (AuthenticationTypes = {}));
24
23
  export let AdminPortalPagesForEvents;
25
24
 
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.84.0-alpha.0
1
+ /** @license Frontegg v7.84.0
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -4,6 +4,7 @@ declare const _default: (store: FronteggState, api: RestApi, actions: SharedActi
4
4
  resetSignUpState: () => void;
5
5
  resetSignUpStateSoft: () => void;
6
6
  signUpUser: (_payload: import("../..").ISignUpUserPayload) => Promise<void>;
7
+ signUpUserWithPhoneNumber: (_payload: import("../..").ISignUpUserPayload) => Promise<void>;
7
8
  loadAllowSignUps: (payload?: import("../../interfaces").WithCallback<import("../../interfaces").WithRetryConfig<{}>, import("dist/@frontegg/rest-api").IVendorConfig>) => Promise<void>;
8
9
  loadSignUpStrategies: () => Promise<void>;
9
10
  };
@@ -17,8 +17,7 @@ var _gtm = require("../../helpers/gtm");
17
17
  var _constants = require("../../constants");
18
18
  var _toolkit = require("../../toolkit");
19
19
  const _excluded = ["events", "url"],
20
- _excluded2 = ["events", "url"],
21
- _excluded3 = ["events", "url"];
20
+ _excluded2 = ["events", "url"];
22
21
  var _default = (store, api, sharedActions) => {
23
22
  const actions = sharedActions;
24
23
  const contextHolder = _restApi.ContextHolder.for(store.root.appName);
@@ -122,83 +121,11 @@ var _default = (store, api, sharedActions) => {
122
121
  });
123
122
  }
124
123
  };
125
- const signUpUserWithUsername = async _payload => {
126
- const {
127
- events
128
- } = _payload,
129
- payload = (0, _objectWithoutPropertiesLoose2.default)(_payload, _excluded2);
130
- setSignUpState({
131
- loading: true
132
- });
133
- if (!payload.username) {
134
- throw new Error('Username is required for username signup');
135
- }
136
- try {
137
- const {
138
- routes,
139
- onRedirectTo
140
- } = store.auth;
141
- const {
142
- shouldActivate,
143
- user,
144
- tenantId,
145
- userId,
146
- tenants = [],
147
- activeTenant,
148
- activationToken
149
- } = await api.auth.signUpUserWithUsername((0, _helpers2.prepareIdentifiersForSignup)(payload));
150
- if (!payload.invitationToken) {
151
- reportSignupCompletion(payload, userId, tenantId, activationToken, events, _interfaces2.AuthenticationTypes.USERNAME);
152
- }
153
- if (!shouldActivate && user && (0, _helpers2.isMfaRequired)(user, store.root.appName)) {
154
- const mfaRequiredState = await actions.getMfaRequiredState(user, _constants.DEFAULT_RETRY_CONFIG, true, payload.email);
155
- actions.setAuthState(mfaRequiredState);
156
- onRedirectTo(routes.loginUrl);
157
- } else if (shouldActivate && activationToken) {
158
- const searchParams = new URLSearchParams({
159
- userId: userId || '',
160
- token: activationToken || ''
161
- });
162
- const url = `${routes.activateWithOTCUrl}?${searchParams.toString()}`;
163
- setSignUpState({
164
- loading: false,
165
- shouldActivate,
166
- stage: _interfaces.SignUpStage.SignUpSuccess
167
- });
168
- onRedirectTo(url);
169
- } else {
170
- const tenantsState = store.auth.tenantsState;
171
- setSignUpState({
172
- loading: false,
173
- shouldActivate,
174
- stage: _interfaces.SignUpStage.SignUpSuccess
175
- });
176
- actions.setAuthState({
177
- user,
178
- isAuthenticated: !!(user != null && user.accessToken),
179
- tenantsState: (0, _extends2.default)({}, tenantsState, {
180
- tenants,
181
- activeTenant
182
- })
183
- });
184
- }
185
- } catch (e) {
186
- contextHolder.setAccessToken(null);
187
- contextHolder.setUser(null);
188
- setSignUpState({
189
- error: (0, _helpers.errorHandler)(e)
190
- });
191
- } finally {
192
- setSignUpState({
193
- loading: false
194
- });
195
- }
196
- };
197
124
  const signUpUser = async _payload => {
198
125
  const {
199
126
  events
200
127
  } = _payload,
201
- payload = (0, _objectWithoutPropertiesLoose2.default)(_payload, _excluded3);
128
+ payload = (0, _objectWithoutPropertiesLoose2.default)(_payload, _excluded2);
202
129
  setSignUpState({
203
130
  loading: true
204
131
  });
@@ -206,10 +133,6 @@ var _default = (store, api, sharedActions) => {
206
133
  if (phoneNumberStrategy != null && phoneNumberStrategy.required && phoneNumberStrategy != null && phoneNumberStrategy.enabled && payload.phoneNumber) {
207
134
  return signUpUserWithPhoneNumber(_payload);
208
135
  }
209
- const usernameStrategy = store.auth.signUpState.strategies.username;
210
- if (usernameStrategy != null && usernameStrategy.required && usernameStrategy != null && usernameStrategy.enabled && payload.username) {
211
- return signUpUserWithUsername(_payload);
212
- }
213
136
  try {
214
137
  const {
215
138
  routes,
@@ -327,6 +250,7 @@ var _default = (store, api, sharedActions) => {
327
250
  resetSignUpState,
328
251
  resetSignUpStateSoft,
329
252
  signUpUser,
253
+ signUpUserWithPhoneNumber,
330
254
  loadAllowSignUps,
331
255
  loadSignUpStrategies
332
256
  };
@@ -21,10 +21,6 @@ const initialState = {
21
21
  [_restApi.SignUpStrategyEnum.PhoneNumber]: {
22
22
  enabled: false,
23
23
  required: false
24
- },
25
- [_restApi.SignUpStrategyEnum.Username]: {
26
- enabled: false,
27
- required: false
28
24
  }
29
25
  }
30
26
  };
@@ -55,7 +55,8 @@ var _default = (store, api, sharedActions) => {
55
55
  const {
56
56
  callback,
57
57
  expiresInMinutes,
58
- shouldSendEmail
58
+ shouldSendEmail,
59
+ roleIds
59
60
  } = payload;
60
61
  actions.setTeamError({
61
62
  key: _interfaces.TeamStateKeys.CREATE_TOKEN_LINK,
@@ -68,9 +69,10 @@ var _default = (store, api, sharedActions) => {
68
69
  const [enhancedInviteUserModalFlag] = await actions.getFeatureFlags(['invite_user_modal_enhancements_frontend']);
69
70
  let data;
70
71
  if (enhancedInviteUserModalFlag) {
71
- data = await api.teams.createInviteUserLink({
72
+ data = await api.teams.createInviteUserLinkV2({
72
73
  expiresInMinutes: expiresInMinutes != null ? expiresInMinutes : 43200,
73
- shouldSendEmail: shouldSendEmail != null ? shouldSendEmail : true
74
+ shouldSendEmail: shouldSendEmail != null ? shouldSendEmail : true,
75
+ roleIds: roleIds != null ? roleIds : []
74
76
  });
75
77
  } else {
76
78
  data = await api.teams.createInviteUserLink({
@@ -129,9 +131,7 @@ var _default = (store, api, sharedActions) => {
129
131
  });
130
132
  try {
131
133
  await api.teams.deleteInviteUserLink();
132
- actions.setTeamState({
133
- inviteTokenState: undefined
134
- });
134
+ await __getInvitationLinkConfig();
135
135
  callback == null ? void 0 : callback(true);
136
136
  } catch (e) {
137
137
  actions.setTeamError({
@@ -265,8 +265,12 @@ var _default = (store, api, sharedActions) => {
265
265
 
266
266
  // Fetch roles, permissions, user roles, user groups, and all groups in parallel
267
267
  const [{
268
+ items: userUsernames
269
+ }, {
268
270
  items: roles
269
- }, permissions, userRoles, userGroups, groups] = await Promise.all([api.teams.loadAvailableRoles(), api.teams.loadAvailablePermissions(), userIds.length > 0 ? api.users.getUsersRoles({
271
+ }, permissions, userRoles, userGroups, groups] = await Promise.all([userIds.length > 0 ? api.users.getUsersUsernames({
272
+ userIds
273
+ }) : [], api.teams.loadAvailableRoles(), api.teams.loadAvailablePermissions(), userIds.length > 0 ? api.users.getUsersRoles({
270
274
  ids: userIds
271
275
  }) : [], userIds.length > 0 ? api.users.getUsersGroups({
272
276
  ids: userIds
@@ -276,6 +280,7 @@ var _default = (store, api, sharedActions) => {
276
280
 
277
281
  // Map user roles and groups to users
278
282
  const usersWithRolesAndGroups = users.map(user => {
283
+ var _userUsernames$find;
279
284
  // Find user's role IDs
280
285
  const userRoleData = userRoles.find(ur => ur.userId === user.id);
281
286
  const userRoleIds = (userRoleData == null ? void 0 : userRoleData.roleIds) || [];
@@ -286,6 +291,12 @@ var _default = (store, api, sharedActions) => {
286
291
  const userGroupIds = (userGroupData == null ? void 0 : userGroupData.groupIds) || [];
287
292
  const userGroupsFull = groups.filter(g => userGroupIds.includes(g.id));
288
293
 
294
+ // Find user's username
295
+ const userUsername = userUsernames == null ? void 0 : (_userUsernames$find = userUsernames.find(username => username.userId === user.id)) == null ? void 0 : _userUsernames$find.username;
296
+ if (!user.name) {
297
+ user.name = userUsername;
298
+ }
299
+
289
300
  //@ts-ignore
290
301
  return (0, _extends2.default)({}, user, {
291
302
  roles: userRolesFull,
@@ -53,7 +53,7 @@ Object.keys(_helpers3).forEach(function (key) {
53
53
  }
54
54
  });
55
55
  });
56
- const _excluded = ["phoneNumber", "email", "username"],
56
+ const _excluded = ["phoneNumber", "email"],
57
57
  _excluded2 = ["authenticatedUrl"];
58
58
  const isMfaRequired = (user, appName) => {
59
59
  const contextHolder = _restApi.ContextHolder.for(appName);
@@ -108,8 +108,7 @@ exports.getUri = getUri;
108
108
  const prepareIdentifiersForSignup = payload => {
109
109
  const {
110
110
  phoneNumber,
111
- email,
112
- username
111
+ email
113
112
  } = payload,
114
113
  finalDto = (0, _objectWithoutPropertiesLoose2.default)(payload, _excluded);
115
114
  if (email != null && email.length) {
@@ -122,11 +121,6 @@ const prepareIdentifiersForSignup = payload => {
122
121
  phoneNumber
123
122
  });
124
123
  }
125
- if (username != null && username.length) {
126
- Object.assign(finalDto, {
127
- username
128
- });
129
- }
130
124
  return finalDto;
131
125
  };
132
126
  exports.prepareIdentifiersForSignup = prepareIdentifiersForSignup;
@@ -28,7 +28,6 @@ exports.AuthenticationTypes = AuthenticationTypes;
28
28
  AuthenticationTypes["SOCIAL_LOGIN"] = "SOCIAL_LOGIN";
29
29
  AuthenticationTypes["PASSWORD"] = "PASSWORD";
30
30
  AuthenticationTypes["PHONE_NUMBER"] = "PHONE_NUMBER";
31
- AuthenticationTypes["USERNAME"] = "USERNAME";
32
31
  })(AuthenticationTypes || (exports.AuthenticationTypes = AuthenticationTypes = {}));
33
32
  let AdminPortalPagesForEvents; // noinspection JSUnusedGlobalSymbols
34
33
  exports.AdminPortalPagesForEvents = AdminPortalPagesForEvents;
package/node/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v7.84.0-alpha.0
1
+ /** @license Frontegg v7.84.0
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -8,6 +8,7 @@ var _exportNames = {
8
8
  FronteggNativeModule: true,
9
9
  snapshot: true,
10
10
  subscribe: true,
11
+ ref: true,
11
12
  createProxy: true
12
13
  };
13
14
  Object.defineProperty(exports, "FronteggNativeModule", {
@@ -22,6 +23,12 @@ Object.defineProperty(exports, "createProxy", {
22
23
  return _proxy.createProxy;
23
24
  }
24
25
  });
26
+ Object.defineProperty(exports, "ref", {
27
+ enumerable: true,
28
+ get: function () {
29
+ return _valtio.ref;
30
+ }
31
+ });
25
32
  Object.defineProperty(exports, "snapshot", {
26
33
  enumerable: true,
27
34
  get: function () {
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@frontegg/redux-store",
3
- "version": "7.84.0-alpha.0",
3
+ "version": "7.84.0",
4
4
  "main": "./node/index.js",
5
5
  "license": "MIT",
6
6
  "author": "Frontegg LTD",
7
7
  "dependencies": {
8
8
  "@babel/runtime": "^7.18.6",
9
9
  "@frontegg/entitlements-javascript-commons": "1.1.2",
10
- "@frontegg/rest-api": "7.84.0-alpha.0",
10
+ "@frontegg/rest-api": "7.84.0",
11
11
  "fast-deep-equal": "3.1.3",
12
12
  "get-value": "^3.0.1",
13
13
  "proxy-compare": "^3.0.0",
@@ -2,5 +2,5 @@ export { default as FronteggNativeModule } from './FronteggNativeModule';
2
2
  export * from './store';
3
3
  import { INTERNAL_Snapshot as Snapshot } from '../valtio';
4
4
  export type { Snapshot };
5
- export { snapshot, subscribe } from '../valtio';
5
+ export { snapshot, subscribe, ref } from '../valtio';
6
6
  export { createProxy } from './proxy';
package/toolkit/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export { default as FronteggNativeModule } from './FronteggNativeModule';
2
2
  export * from './store';
3
- export { snapshot, subscribe } from '../valtio';
3
+ export { snapshot, subscribe, ref } from '../valtio';
4
4
  export { createProxy } from './proxy';