@feelflow/ffid-sdk 5.18.0 → 5.19.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.
@@ -683,6 +683,217 @@ interface FFIDRemoveMemberResponse {
683
683
  message: string;
684
684
  }
685
685
 
686
+ /**
687
+ * Provisioning types (ext API) — service-key-authenticated, idempotent user /
688
+ * organization provisioning for external batch migration (#3790 / #4127).
689
+ *
690
+ * Mirrors the server contract of `POST /api/v1/ext/users/provision` and
691
+ * `POST /api/v1/ext/organizations/provision`. Responses are modelled as
692
+ * discriminated unions on `dryRun` so consumers narrow with `if (res.dryRun)`
693
+ * and the compiler enforces which fields are present on each branch
694
+ * (`wouldCreate` on dry-run, `created` on a real call).
695
+ */
696
+
697
+ /** Optional business-profile fields applied to a freshly provisioned user. */
698
+ interface FFIDProvisionUserProfileInput {
699
+ /** Display name (1–255 chars). */
700
+ displayName?: string;
701
+ /** Company name (≤255 chars). */
702
+ companyName?: string;
703
+ /** Department (≤255 chars). */
704
+ department?: string;
705
+ /** Job title (≤255 chars). */
706
+ jobTitle?: string;
707
+ /** Phone number (≤30 chars). */
708
+ phone?: string;
709
+ }
710
+ /** Parameters for `provisionUser`. */
711
+ interface FFIDProvisionUserParams {
712
+ /**
713
+ * Email of the user to provision. Normalized (trim + lowercase) server-side
714
+ * before the idempotency lookup, so re-runs with different casing resolve to
715
+ * the same user.
716
+ */
717
+ email: string;
718
+ /** Optional business profile applied only when a new user is created. */
719
+ profile?: FFIDProvisionUserProfileInput;
720
+ /**
721
+ * When `true`, the server performs no writes and returns a
722
+ * {@link FFIDProvisionUserDryRun} describing what a real call would do.
723
+ * @default false
724
+ */
725
+ dryRun?: boolean;
726
+ }
727
+ /** Minimal identity returned for a provisioned / resolved user. */
728
+ interface FFIDProvisionedUser {
729
+ /** User ID (UUID). */
730
+ id: string;
731
+ /** Email address (normalized). */
732
+ email: string;
733
+ }
734
+ /**
735
+ * Real (non-dry-run) user provisioning outcome.
736
+ *
737
+ * Idempotent: an existing email resolves to `created: false` (HTTP 200) instead
738
+ * of creating a duplicate; a new email yields `created: true` (HTTP 201) for a
739
+ * passwordless, email-confirmed user.
740
+ */
741
+ interface FFIDProvisionUserOutcome {
742
+ /** Discriminant — absent/`false` for a real call. */
743
+ dryRun?: false;
744
+ /**
745
+ * `true` → a new passwordless, email-confirmed user was created (HTTP 201).
746
+ * `false` → a user with this email already existed; idempotent no-op (HTTP 200).
747
+ */
748
+ created: boolean;
749
+ user: FFIDProvisionedUser;
750
+ /**
751
+ * Present only when a new user was created **and** a `profile` was supplied.
752
+ * `false` means the user row was created but the authoritative profile write
753
+ * did not complete — some profile fields may not be fully applied, so
754
+ * re-issue the profile to be sure. Absent on the idempotent-existing branch
755
+ * and when no profile was requested.
756
+ */
757
+ profileWritten?: boolean;
758
+ }
759
+ /** Dry-run user provisioning outcome — no writes performed. */
760
+ interface FFIDProvisionUserDryRun {
761
+ /** Discriminant — always `true` for a dry-run. */
762
+ dryRun: true;
763
+ /** Whether a real call would create a new user. */
764
+ wouldCreate: boolean;
765
+ /** `id` is present only when the user already exists. */
766
+ user: {
767
+ id?: string;
768
+ email: string;
769
+ };
770
+ }
771
+ /**
772
+ * Response from `provisionUser`. Narrow with the truthiness of `dryRun`:
773
+ *
774
+ * ```ts
775
+ * if (res.dryRun) {
776
+ * // FFIDProvisionUserDryRun — inspect res.wouldCreate
777
+ * } else {
778
+ * // FFIDProvisionUserOutcome — inspect res.created
779
+ * }
780
+ * ```
781
+ *
782
+ * A real (non-dry-run) response omits `dryRun` on the wire (it is `undefined`,
783
+ * not `false`), so narrow with `if (res.dryRun)` — do **not** use
784
+ * `res.dryRun === false` or `switch (res.dryRun)`, which would miss every real
785
+ * response. This mirrors how `FFIDApiResponse` is narrowed on `data` / `error`.
786
+ */
787
+ type FFIDProvisionUserResponse = FFIDProvisionUserOutcome | FFIDProvisionUserDryRun;
788
+ /** A member to add to the provisioned organization. */
789
+ interface FFIDProvisionOrganizationMemberInput {
790
+ email: string;
791
+ /** `owner` is intentionally excluded — the owner is set via `ownerEmail`. */
792
+ role: FFIDAssignableMemberRole;
793
+ }
794
+ /** Parameters for `provisionOrganization`. */
795
+ interface FFIDProvisionOrganizationParams {
796
+ /** Organization display name (1–255 chars). */
797
+ name: string;
798
+ /**
799
+ * Email of the organization owner. The owner **must** already be an FFID user
800
+ * — provision them via `provisionUser` first, otherwise the call returns an
801
+ * `OWNER_NOT_FOUND` error (HTTP 422).
802
+ */
803
+ ownerEmail: string;
804
+ /** Optional billing contact email. */
805
+ billingEmail?: string;
806
+ /** Members to add idempotently (≤100 per request; validated client-side). */
807
+ members?: FFIDProvisionOrganizationMemberInput[];
808
+ /**
809
+ * When `true`, the server performs no writes and returns a
810
+ * {@link FFIDProvisionOrganizationDryRun} describing what a real call would do.
811
+ * @default false
812
+ */
813
+ dryRun?: boolean;
814
+ }
815
+ /** Minimal organization shape returned by the org provisioning helper. */
816
+ interface FFIDProvisionedOrganization {
817
+ /** Organization ID (UUID). */
818
+ id: string;
819
+ /** Organization display name. */
820
+ name: string;
821
+ /** URL-safe slug. */
822
+ slug: string;
823
+ }
824
+ /** Per-member outcome status of a real (non-dry-run) organization provision. */
825
+ type FFIDProvisionMemberStatus = 'added' | 'already_member' | 'user_not_found';
826
+ /** Per-member outcome status of a dry-run organization provision. */
827
+ type FFIDProvisionMemberPlanStatus = 'would_add' | 'already_member' | 'user_not_found';
828
+ /** Per-member outcome of a real (non-dry-run) organization provision. */
829
+ interface FFIDProvisionMemberResult {
830
+ email: string;
831
+ role: FFIDAssignableMemberRole;
832
+ /**
833
+ * - `added` — membership was inserted.
834
+ * - `already_member` — user was already a member (idempotent no-op).
835
+ * - `user_not_found` — no FFID user exists for this email (skipped).
836
+ */
837
+ status: FFIDProvisionMemberStatus;
838
+ }
839
+ /** Per-member plan of a dry-run organization provision. */
840
+ interface FFIDProvisionMemberPlan {
841
+ email: string;
842
+ role: FFIDAssignableMemberRole;
843
+ /**
844
+ * - `would_add` — user exists and is not yet a member.
845
+ * - `already_member` — user is already a member of the existing org.
846
+ * - `user_not_found` — no FFID user exists for this email.
847
+ */
848
+ status: FFIDProvisionMemberPlanStatus;
849
+ }
850
+ /** Real (non-dry-run) organization provisioning outcome. */
851
+ interface FFIDProvisionOrganizationOutcome {
852
+ /** Discriminant — absent/`false` for a real call. */
853
+ dryRun?: false;
854
+ /**
855
+ * `true` → a brand-new organization was created (HTTP 201).
856
+ * `false` → the owner already owned an org with this name; idempotent (HTTP 200).
857
+ */
858
+ created: boolean;
859
+ organization: FFIDProvisionedOrganization;
860
+ /** Per-member results (added / already_member / user_not_found). */
861
+ members: FFIDProvisionMemberResult[];
862
+ }
863
+ /** Dry-run organization provisioning outcome — no writes performed. */
864
+ interface FFIDProvisionOrganizationDryRun {
865
+ /** Discriminant — always `true` for a dry-run. */
866
+ dryRun: true;
867
+ /**
868
+ * Whether a real call would create a new organization. Coupled to
869
+ * `organization`: `wouldCreate === (organization === null)` — the server
870
+ * returns `organization: null` exactly when it would create a new org.
871
+ */
872
+ wouldCreate: boolean;
873
+ /** `null` when the org does not exist yet (would be created) — see `wouldCreate`. */
874
+ organization: FFIDProvisionedOrganization | null;
875
+ /** Per-member plans (would_add / already_member / user_not_found). */
876
+ members: FFIDProvisionMemberPlan[];
877
+ }
878
+ /**
879
+ * Response from `provisionOrganization`. Narrow on `dryRun`:
880
+ *
881
+ * ```ts
882
+ * if (res.dryRun) {
883
+ * // FFIDProvisionOrganizationDryRun — inspect res.wouldCreate / res.organization (nullable)
884
+ * } else {
885
+ * // FFIDProvisionOrganizationOutcome — inspect res.created / res.members
886
+ * }
887
+ * ```
888
+ *
889
+ * As with `FFIDProvisionUserResponse`, a real response omits `dryRun` on the
890
+ * wire, so narrow with `if (res.dryRun)` — not `res.dryRun === false`.
891
+ *
892
+ * When `ownerEmail` has no FFID user, the call resolves to
893
+ * `{ error: { code: 'OWNER_NOT_FOUND' } }` (HTTP 422) rather than a data branch.
894
+ */
895
+ type FFIDProvisionOrganizationResponse = FFIDProvisionOrganizationOutcome | FFIDProvisionOrganizationDryRun;
896
+
686
897
  /**
687
898
  * Contract resource types (#3787 Phase A)
688
899
  *
@@ -1732,6 +1943,8 @@ declare function createFFIDClient(config: FFIDConfig): {
1732
1943
  organizationId: string;
1733
1944
  userId: string;
1734
1945
  }) => Promise<FFIDApiResponse<FFIDRemoveMemberResponse>>;
1946
+ provisionUser: (params: FFIDProvisionUserParams) => Promise<FFIDApiResponse<FFIDProvisionUserResponse>>;
1947
+ provisionOrganization: (params: FFIDProvisionOrganizationParams) => Promise<FFIDApiResponse<FFIDProvisionOrganizationResponse>>;
1735
1948
  getProfile: (options?: FFIDProfileCallOptions) => Promise<FFIDApiResponse<FFIDUserProfile>>;
1736
1949
  updateProfile: (data: FFIDUpdateUserProfileRequest, options?: FFIDProfileCallOptions) => Promise<FFIDApiResponse<FFIDUserProfile>>;
1737
1950
  getLoginHistory: (params?: FFIDGetLoginHistoryParams) => Promise<FFIDApiResponse<FFIDLoginHistoryResponse>>;
@@ -1815,4 +2028,4 @@ declare function createFFIDClient(config: FFIDConfig): {
1815
2028
  /** Type of the FFID client */
1816
2029
  type FFIDClient = ReturnType<typeof createFFIDClient>;
1817
2030
 
1818
- export { type FFIDUpdateUserProfileRequest as A, type FFIDUser as B, type FFIDUserProfile as C, type TokenStore as D, createFFIDClient as E, type FFIDLogger as F, createTokenStore as G, type TokenData as T, type FFIDError as a, type FFIDCacheAdapter as b, type FFIDVerifyAccessTokenOptions as c, type FFIDApiResponse as d, type FFIDOAuthUserInfo as e, type FFIDAddMemberParams as f, type FFIDAddMemberRequest as g, type FFIDAddMemberResponse as h, type FFIDAssignableMemberRole as i, type FFIDCacheConfig as j, type FFIDClient as k, type FFIDConfig as l, type FFIDListMembersResponse as m, type FFIDMemberRole as n, type FFIDOrganization as o, type FFIDOrganizationMember as p, type FFIDOtpSendResponse as q, type FFIDOtpVerifyResponse as r, type FFIDPasswordResetConfirmResponse as s, type FFIDPasswordResetResponse as t, type FFIDPasswordResetVerifyResponse as u, type FFIDProfileCallOptions as v, type FFIDRemoveMemberResponse as w, type FFIDResetSessionResponse as x, type FFIDSubscription as y, type FFIDUpdateMemberRoleResponse as z };
2031
+ export { type FFIDProvisionOrganizationDryRun as A, type FFIDProvisionOrganizationMemberInput as B, type FFIDProvisionOrganizationOutcome as C, type FFIDProvisionOrganizationParams as D, type FFIDProvisionOrganizationResponse as E, type FFIDLogger as F, type FFIDProvisionUserDryRun as G, type FFIDProvisionUserOutcome as H, type FFIDProvisionUserParams as I, type FFIDProvisionUserProfileInput as J, type FFIDProvisionUserResponse as K, type FFIDProvisionedOrganization as L, type FFIDProvisionedUser as M, type FFIDRemoveMemberResponse as N, type FFIDResetSessionResponse as O, type FFIDSubscription as P, type FFIDUpdateMemberRoleResponse as Q, type FFIDUpdateUserProfileRequest as R, type FFIDUser as S, type FFIDUserProfile as T, type TokenData as U, type TokenStore as V, createFFIDClient as W, createTokenStore as X, type FFIDError as a, type FFIDCacheAdapter as b, type FFIDVerifyAccessTokenOptions as c, type FFIDApiResponse as d, type FFIDOAuthUserInfo as e, type FFIDAddMemberParams as f, type FFIDAddMemberRequest as g, type FFIDAddMemberResponse as h, type FFIDAssignableMemberRole as i, type FFIDCacheConfig as j, type FFIDClient as k, type FFIDConfig as l, type FFIDListMembersResponse as m, type FFIDMemberRole as n, type FFIDOrganization as o, type FFIDOrganizationMember as p, type FFIDOtpSendResponse as q, type FFIDOtpVerifyResponse as r, type FFIDPasswordResetConfirmResponse as s, type FFIDPasswordResetResponse as t, type FFIDPasswordResetVerifyResponse as u, type FFIDProfileCallOptions as v, type FFIDProvisionMemberPlan as w, type FFIDProvisionMemberPlanStatus as x, type FFIDProvisionMemberResult as y, type FFIDProvisionMemberStatus as z };
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk55S5VUWR_cjs = require('./chunk-55S5VUWR.cjs');
3
+ var chunkTW2FXASO_cjs = require('./chunk-TW2FXASO.cjs');
4
4
  var chunkH5O2CCAY_cjs = require('./chunk-H5O2CCAY.cjs');
5
5
  var react = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -54,8 +54,8 @@ function defaultRedirect(url) {
54
54
  }
55
55
  function useRequireActiveSubscription(options) {
56
56
  const { redirectTo, allowGrace = true, onRedirect } = options;
57
- const { isLoading, error } = chunk55S5VUWR_cjs.useFFIDContext();
58
- const { effectiveStatus, isBlocked, isGrace } = chunk55S5VUWR_cjs.useSubscription();
57
+ const { isLoading, error } = chunkTW2FXASO_cjs.useFFIDContext();
58
+ const { effectiveStatus, isBlocked, isGrace } = chunkTW2FXASO_cjs.useSubscription();
59
59
  const hasFetchError = error !== null && effectiveStatus === null;
60
60
  const shouldRedirect = !isLoading && !hasFetchError && (isBlocked || !allowGrace && isGrace || effectiveStatus === null);
61
61
  react.useEffect(() => {
@@ -76,7 +76,7 @@ function useRequireActiveSubscription(options) {
76
76
  }
77
77
  function withFFIDAuth(Component, options = {}) {
78
78
  const WrappedComponent = (props) => {
79
- const { isLoading, isAuthenticated, login } = chunk55S5VUWR_cjs.useFFIDContext();
79
+ const { isLoading, isAuthenticated, login } = chunkTW2FXASO_cjs.useFFIDContext();
80
80
  const hasRedirected = react.useRef(false);
81
81
  react.useEffect(() => {
82
82
  if (!isLoading && !isAuthenticated && options.redirectToLogin && !hasRedirected.current) {
@@ -105,155 +105,155 @@ var FFID_NEWSLETTER_DISPATCH_MAX_RECIPIENTS = 1e3;
105
105
 
106
106
  Object.defineProperty(exports, "ACCESS_GRANTING_EFFECTIVE_STATUSES", {
107
107
  enumerable: true,
108
- get: function () { return chunk55S5VUWR_cjs.ACCESS_GRANTING_EFFECTIVE_STATUSES; }
108
+ get: function () { return chunkTW2FXASO_cjs.ACCESS_GRANTING_EFFECTIVE_STATUSES; }
109
109
  });
110
110
  Object.defineProperty(exports, "BLOCKING_EFFECTIVE_STATUSES", {
111
111
  enumerable: true,
112
- get: function () { return chunk55S5VUWR_cjs.BLOCKING_EFFECTIVE_STATUSES; }
112
+ get: function () { return chunkTW2FXASO_cjs.BLOCKING_EFFECTIVE_STATUSES; }
113
113
  });
114
114
  Object.defineProperty(exports, "DEFAULT_API_BASE_URL", {
115
115
  enumerable: true,
116
- get: function () { return chunk55S5VUWR_cjs.DEFAULT_API_BASE_URL; }
116
+ get: function () { return chunkTW2FXASO_cjs.DEFAULT_API_BASE_URL; }
117
117
  });
118
118
  Object.defineProperty(exports, "DEFAULT_OAUTH_SCOPES", {
119
119
  enumerable: true,
120
- get: function () { return chunk55S5VUWR_cjs.DEFAULT_OAUTH_SCOPES; }
120
+ get: function () { return chunkTW2FXASO_cjs.DEFAULT_OAUTH_SCOPES; }
121
121
  });
122
122
  Object.defineProperty(exports, "EFFECTIVE_SUBSCRIPTION_STATUSES", {
123
123
  enumerable: true,
124
- get: function () { return chunk55S5VUWR_cjs.EFFECTIVE_SUBSCRIPTION_STATUSES; }
124
+ get: function () { return chunkTW2FXASO_cjs.EFFECTIVE_SUBSCRIPTION_STATUSES; }
125
125
  });
126
126
  Object.defineProperty(exports, "FFIDAnnouncementBadge", {
127
127
  enumerable: true,
128
- get: function () { return chunk55S5VUWR_cjs.FFIDAnnouncementBadge; }
128
+ get: function () { return chunkTW2FXASO_cjs.FFIDAnnouncementBadge; }
129
129
  });
130
130
  Object.defineProperty(exports, "FFIDAnnouncementList", {
131
131
  enumerable: true,
132
- get: function () { return chunk55S5VUWR_cjs.FFIDAnnouncementList; }
132
+ get: function () { return chunkTW2FXASO_cjs.FFIDAnnouncementList; }
133
133
  });
134
134
  Object.defineProperty(exports, "FFIDInquiryForm", {
135
135
  enumerable: true,
136
- get: function () { return chunk55S5VUWR_cjs.FFIDInquiryForm; }
136
+ get: function () { return chunkTW2FXASO_cjs.FFIDInquiryForm; }
137
137
  });
138
138
  Object.defineProperty(exports, "FFIDLoginButton", {
139
139
  enumerable: true,
140
- get: function () { return chunk55S5VUWR_cjs.FFIDLoginButton; }
140
+ get: function () { return chunkTW2FXASO_cjs.FFIDLoginButton; }
141
141
  });
142
142
  Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
143
143
  enumerable: true,
144
- get: function () { return chunk55S5VUWR_cjs.FFIDOrganizationSwitcher; }
144
+ get: function () { return chunkTW2FXASO_cjs.FFIDOrganizationSwitcher; }
145
145
  });
146
146
  Object.defineProperty(exports, "FFIDProvider", {
147
147
  enumerable: true,
148
- get: function () { return chunk55S5VUWR_cjs.FFIDProvider; }
148
+ get: function () { return chunkTW2FXASO_cjs.FFIDProvider; }
149
149
  });
150
150
  Object.defineProperty(exports, "FFIDSDKError", {
151
151
  enumerable: true,
152
- get: function () { return chunk55S5VUWR_cjs.FFIDSDKError; }
152
+ get: function () { return chunkTW2FXASO_cjs.FFIDSDKError; }
153
153
  });
154
154
  Object.defineProperty(exports, "FFIDSubscriptionBadge", {
155
155
  enumerable: true,
156
- get: function () { return chunk55S5VUWR_cjs.FFIDSubscriptionBadge; }
156
+ get: function () { return chunkTW2FXASO_cjs.FFIDSubscriptionBadge; }
157
157
  });
158
158
  Object.defineProperty(exports, "FFIDUserMenu", {
159
159
  enumerable: true,
160
- get: function () { return chunk55S5VUWR_cjs.FFIDUserMenu; }
160
+ get: function () { return chunkTW2FXASO_cjs.FFIDUserMenu; }
161
161
  });
162
162
  Object.defineProperty(exports, "FFID_ANNOUNCEMENTS_ERROR_CODES", {
163
163
  enumerable: true,
164
- get: function () { return chunk55S5VUWR_cjs.FFID_ANNOUNCEMENTS_ERROR_CODES; }
164
+ get: function () { return chunkTW2FXASO_cjs.FFID_ANNOUNCEMENTS_ERROR_CODES; }
165
165
  });
166
166
  Object.defineProperty(exports, "FFID_ERROR_CODES", {
167
167
  enumerable: true,
168
- get: function () { return chunk55S5VUWR_cjs.FFID_ERROR_CODES; }
168
+ get: function () { return chunkTW2FXASO_cjs.FFID_ERROR_CODES; }
169
169
  });
170
170
  Object.defineProperty(exports, "FFID_INQUIRY_CATEGORIES", {
171
171
  enumerable: true,
172
- get: function () { return chunk55S5VUWR_cjs.FFID_INQUIRY_CATEGORIES; }
172
+ get: function () { return chunkTW2FXASO_cjs.FFID_INQUIRY_CATEGORIES; }
173
173
  });
174
174
  Object.defineProperty(exports, "FFID_INQUIRY_CATEGORIES_SITE_2026", {
175
175
  enumerable: true,
176
- get: function () { return chunk55S5VUWR_cjs.FFID_INQUIRY_CATEGORIES_SITE_2026; }
176
+ get: function () { return chunkTW2FXASO_cjs.FFID_INQUIRY_CATEGORIES_SITE_2026; }
177
177
  });
178
178
  Object.defineProperty(exports, "clearState", {
179
179
  enumerable: true,
180
- get: function () { return chunk55S5VUWR_cjs.cleanupStateStorage; }
180
+ get: function () { return chunkTW2FXASO_cjs.cleanupStateStorage; }
181
181
  });
182
182
  Object.defineProperty(exports, "computeEffectiveStatusFromSession", {
183
183
  enumerable: true,
184
- get: function () { return chunk55S5VUWR_cjs.computeEffectiveStatusFromSession; }
184
+ get: function () { return chunkTW2FXASO_cjs.computeEffectiveStatusFromSession; }
185
185
  });
186
186
  Object.defineProperty(exports, "createFFIDAnnouncementsClient", {
187
187
  enumerable: true,
188
- get: function () { return chunk55S5VUWR_cjs.createFFIDAnnouncementsClient; }
188
+ get: function () { return chunkTW2FXASO_cjs.createFFIDAnnouncementsClient; }
189
189
  });
190
190
  Object.defineProperty(exports, "createFFIDClient", {
191
191
  enumerable: true,
192
- get: function () { return chunk55S5VUWR_cjs.createFFIDClient; }
192
+ get: function () { return chunkTW2FXASO_cjs.createFFIDClient; }
193
193
  });
194
194
  Object.defineProperty(exports, "createTokenStore", {
195
195
  enumerable: true,
196
- get: function () { return chunk55S5VUWR_cjs.createTokenStore; }
196
+ get: function () { return chunkTW2FXASO_cjs.createTokenStore; }
197
197
  });
198
198
  Object.defineProperty(exports, "generateCodeChallenge", {
199
199
  enumerable: true,
200
- get: function () { return chunk55S5VUWR_cjs.generateCodeChallenge; }
200
+ get: function () { return chunkTW2FXASO_cjs.generateCodeChallenge; }
201
201
  });
202
202
  Object.defineProperty(exports, "generateCodeVerifier", {
203
203
  enumerable: true,
204
- get: function () { return chunk55S5VUWR_cjs.generateCodeVerifier; }
204
+ get: function () { return chunkTW2FXASO_cjs.generateCodeVerifier; }
205
205
  });
206
206
  Object.defineProperty(exports, "handleRedirectCallback", {
207
207
  enumerable: true,
208
- get: function () { return chunk55S5VUWR_cjs.handleRedirectCallback; }
208
+ get: function () { return chunkTW2FXASO_cjs.handleRedirectCallback; }
209
209
  });
210
210
  Object.defineProperty(exports, "hasAccessFromUserinfo", {
211
211
  enumerable: true,
212
- get: function () { return chunk55S5VUWR_cjs.hasAccessFromUserinfo; }
212
+ get: function () { return chunkTW2FXASO_cjs.hasAccessFromUserinfo; }
213
213
  });
214
214
  Object.defineProperty(exports, "isBlockedFromUserinfo", {
215
215
  enumerable: true,
216
- get: function () { return chunk55S5VUWR_cjs.isBlockedFromUserinfo; }
216
+ get: function () { return chunkTW2FXASO_cjs.isBlockedFromUserinfo; }
217
217
  });
218
218
  Object.defineProperty(exports, "isFFIDInquiryCategorySite2026", {
219
219
  enumerable: true,
220
- get: function () { return chunk55S5VUWR_cjs.isFFIDInquiryCategorySite2026; }
220
+ get: function () { return chunkTW2FXASO_cjs.isFFIDInquiryCategorySite2026; }
221
221
  });
222
222
  Object.defineProperty(exports, "normalizeRedirectUri", {
223
223
  enumerable: true,
224
- get: function () { return chunk55S5VUWR_cjs.normalizeRedirectUri; }
224
+ get: function () { return chunkTW2FXASO_cjs.normalizeRedirectUri; }
225
225
  });
226
226
  Object.defineProperty(exports, "retrieveCodeVerifier", {
227
227
  enumerable: true,
228
- get: function () { return chunk55S5VUWR_cjs.retrieveCodeVerifier; }
228
+ get: function () { return chunkTW2FXASO_cjs.retrieveCodeVerifier; }
229
229
  });
230
230
  Object.defineProperty(exports, "retrieveState", {
231
231
  enumerable: true,
232
- get: function () { return chunk55S5VUWR_cjs.retrieveState; }
232
+ get: function () { return chunkTW2FXASO_cjs.retrieveState; }
233
233
  });
234
234
  Object.defineProperty(exports, "storeCodeVerifier", {
235
235
  enumerable: true,
236
- get: function () { return chunk55S5VUWR_cjs.storeCodeVerifier; }
236
+ get: function () { return chunkTW2FXASO_cjs.storeCodeVerifier; }
237
237
  });
238
238
  Object.defineProperty(exports, "storeState", {
239
239
  enumerable: true,
240
- get: function () { return chunk55S5VUWR_cjs.storeState; }
240
+ get: function () { return chunkTW2FXASO_cjs.storeState; }
241
241
  });
242
242
  Object.defineProperty(exports, "useFFID", {
243
243
  enumerable: true,
244
- get: function () { return chunk55S5VUWR_cjs.useFFID; }
244
+ get: function () { return chunkTW2FXASO_cjs.useFFID; }
245
245
  });
246
246
  Object.defineProperty(exports, "useFFIDAnnouncements", {
247
247
  enumerable: true,
248
- get: function () { return chunk55S5VUWR_cjs.useFFIDAnnouncements; }
248
+ get: function () { return chunkTW2FXASO_cjs.useFFIDAnnouncements; }
249
249
  });
250
250
  Object.defineProperty(exports, "useSubscription", {
251
251
  enumerable: true,
252
- get: function () { return chunk55S5VUWR_cjs.useSubscription; }
252
+ get: function () { return chunkTW2FXASO_cjs.useSubscription; }
253
253
  });
254
254
  Object.defineProperty(exports, "withSubscription", {
255
255
  enumerable: true,
256
- get: function () { return chunk55S5VUWR_cjs.withSubscription; }
256
+ get: function () { return chunkTW2FXASO_cjs.withSubscription; }
257
257
  });
258
258
  Object.defineProperty(exports, "ALL_DENIED_EXCEPT_NECESSARY", {
259
259
  enumerable: true,