@rool-dev/sdk 0.12.5 → 2.0.0-dev.4adc2c2

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 (108) hide show
  1. package/README.md +434 -786
  2. package/dist/agents.d.ts +130 -0
  3. package/dist/agents.d.ts.map +1 -0
  4. package/dist/agents.js +348 -0
  5. package/dist/agents.js.map +1 -0
  6. package/dist/auth-base.d.ts +43 -88
  7. package/dist/auth-base.d.ts.map +1 -1
  8. package/dist/auth-base.js +178 -302
  9. package/dist/auth-base.js.map +1 -1
  10. package/dist/auth-browser.d.ts +7 -25
  11. package/dist/auth-browser.d.ts.map +1 -1
  12. package/dist/auth-browser.js +45 -82
  13. package/dist/auth-browser.js.map +1 -1
  14. package/dist/auth-native.d.ts +9 -56
  15. package/dist/auth-native.d.ts.map +1 -1
  16. package/dist/auth-native.js +88 -177
  17. package/dist/auth-native.js.map +1 -1
  18. package/dist/auth-node.d.ts +32 -36
  19. package/dist/auth-node.d.ts.map +1 -1
  20. package/dist/auth-node.js +338 -265
  21. package/dist/auth-node.js.map +1 -1
  22. package/dist/auth-url.d.ts +6 -0
  23. package/dist/auth-url.d.ts.map +1 -0
  24. package/dist/auth-url.js +30 -0
  25. package/dist/auth-url.js.map +1 -0
  26. package/dist/client.d.ts +35 -290
  27. package/dist/client.d.ts.map +1 -1
  28. package/dist/client.js +275 -637
  29. package/dist/client.js.map +1 -1
  30. package/dist/events.d.ts +40 -0
  31. package/dist/events.d.ts.map +1 -0
  32. package/dist/events.js +175 -0
  33. package/dist/events.js.map +1 -0
  34. package/dist/files.d.ts +170 -0
  35. package/dist/files.d.ts.map +1 -0
  36. package/dist/files.js +846 -0
  37. package/dist/files.js.map +1 -0
  38. package/dist/index.d.ts +16 -19
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +7 -20
  41. package/dist/index.js.map +1 -1
  42. package/dist/machine.d.ts +49 -0
  43. package/dist/machine.d.ts.map +1 -0
  44. package/dist/machine.js +142 -0
  45. package/dist/machine.js.map +1 -0
  46. package/dist/problem.d.ts +11 -0
  47. package/dist/problem.d.ts.map +1 -0
  48. package/dist/problem.js +20 -0
  49. package/dist/problem.js.map +1 -0
  50. package/dist/structured.d.ts +84 -0
  51. package/dist/structured.d.ts.map +1 -0
  52. package/dist/structured.js +405 -0
  53. package/dist/structured.js.map +1 -0
  54. package/dist/types.d.ts +119 -520
  55. package/dist/types.d.ts.map +1 -1
  56. package/package.json +11 -16
  57. package/dist/auth.d.ts +0 -99
  58. package/dist/auth.d.ts.map +0 -1
  59. package/dist/auth.js +0 -217
  60. package/dist/auth.js.map +0 -1
  61. package/dist/client-info.d.ts +0 -18
  62. package/dist/client-info.d.ts.map +0 -1
  63. package/dist/client-info.js +0 -25
  64. package/dist/client-info.js.map +0 -1
  65. package/dist/event-emitter.d.ts +0 -45
  66. package/dist/event-emitter.d.ts.map +0 -1
  67. package/dist/event-emitter.js +0 -86
  68. package/dist/event-emitter.js.map +0 -1
  69. package/dist/graphql.d.ts +0 -90
  70. package/dist/graphql.d.ts.map +0 -1
  71. package/dist/graphql.js +0 -471
  72. package/dist/graphql.js.map +0 -1
  73. package/dist/logger.d.ts +0 -13
  74. package/dist/logger.d.ts.map +0 -1
  75. package/dist/logger.js +0 -17
  76. package/dist/logger.js.map +0 -1
  77. package/dist/path.d.ts +0 -6
  78. package/dist/path.d.ts.map +0 -1
  79. package/dist/path.js +0 -47
  80. package/dist/path.js.map +0 -1
  81. package/dist/reroute.d.ts +0 -22
  82. package/dist/reroute.d.ts.map +0 -1
  83. package/dist/reroute.js +0 -70
  84. package/dist/reroute.js.map +0 -1
  85. package/dist/rest.d.ts +0 -54
  86. package/dist/rest.d.ts.map +0 -1
  87. package/dist/rest.js +0 -171
  88. package/dist/rest.js.map +0 -1
  89. package/dist/router.d.ts +0 -20
  90. package/dist/router.d.ts.map +0 -1
  91. package/dist/router.js +0 -54
  92. package/dist/router.js.map +0 -1
  93. package/dist/space-session.d.ts +0 -30
  94. package/dist/space-session.d.ts.map +0 -1
  95. package/dist/space-session.js +0 -83
  96. package/dist/space-session.js.map +0 -1
  97. package/dist/space.d.ts +0 -161
  98. package/dist/space.d.ts.map +0 -1
  99. package/dist/space.js +0 -618
  100. package/dist/space.js.map +0 -1
  101. package/dist/subscription.d.ts +0 -36
  102. package/dist/subscription.d.ts.map +0 -1
  103. package/dist/subscription.js +0 -419
  104. package/dist/subscription.js.map +0 -1
  105. package/dist/webdav.d.ts +0 -171
  106. package/dist/webdav.d.ts.map +0 -1
  107. package/dist/webdav.js +0 -481
  108. package/dist/webdav.js.map +0 -1
@@ -1,33 +1,15 @@
1
- import { BaseTokenAuthProvider, type BaseTokenAuthConfig } from './auth-base.js';
2
- export type BrowserAuthConfig = BaseTokenAuthConfig;
3
- export declare class BrowserAuthProvider extends BaseTokenAuthProvider {
4
- /**
5
- * Initialize auth manager - should be called on app startup.
6
- * Processes any auth callback in the URL and sets up auto-refresh.
7
- */
8
- initialize(): boolean;
9
- /**
10
- * Initiate login by redirecting to auth page.
11
- * @param appName - The name of the application requesting login (displayed on auth page)
12
- */
13
- login(appName: string, params?: Record<string, string>): void;
14
- /**
15
- * Initiate signup by redirecting to auth page.
16
- * @param appName - The name of the application requesting signup (displayed on auth page)
17
- */
18
- signup(appName: string, params?: Record<string, string>): void;
19
- /**
20
- * Process auth callback from URL fragment.
21
- * Should be called on page load.
22
- * @returns true if callback was processed
23
- */
24
- processCallback(): boolean;
1
+ import { TokenAuth, type TokenAuthConfig } from "./auth-base.js";
2
+ export type BrowserAuthConfig = TokenAuthConfig;
3
+ export declare class BrowserAuth extends TokenAuth {
4
+ initialize(): Promise<boolean>;
5
+ login(appName: string, params?: Record<string, string>): Promise<void>;
6
+ signup(appName: string, params?: Record<string, string>): Promise<void>;
7
+ private processCallback;
25
8
  private redirectToAuth;
26
9
  protected clearTransientState(): void;
27
10
  private get stateKey();
28
11
  private storeState;
29
12
  private readState;
30
13
  private clearState;
31
- private generateState;
32
14
  }
33
15
  //# sourceMappingURL=auth-browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-browser.d.ts","sourceRoot":"","sources":["../src/auth-browser.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAEpD,qBAAa,mBAAoB,SAAQ,qBAAqB;IAC1D;;;OAGG;IACH,UAAU,IAAI,OAAO;IAMrB;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAI7D;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAI9D;;;;OAIG;IACH,eAAe,IAAI,OAAO;IA6C1B,OAAO,CAAC,cAAc;IAoBtB,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAIrC,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,aAAa;CASxB"}
1
+ {"version":3,"file":"auth-browser.d.ts","sourceRoot":"","sources":["../src/auth-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEhD,qBAAa,WAAY,SAAQ,SAAS;IAClC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAK9B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,MAAM,CACV,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;IAIhB,OAAO,CAAC,eAAe;IAmCvB,OAAO,CAAC,cAAc;IAuBtB,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAIrC,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,UAAU;CAOnB"}
@@ -1,105 +1,73 @@
1
- // =============================================================================
2
- // Browser auth provider
3
- // Full-page redirect flow: hands off to the auth pages and reads the returned
4
- // tokens from the URL fragment on the way back. Token storage and refresh live
5
- // in BaseTokenAuthProvider.
6
- // =============================================================================
7
- import { BaseTokenAuthProvider } from './auth-base.js';
8
- export class BrowserAuthProvider extends BaseTokenAuthProvider {
9
- /**
10
- * Initialize auth manager - should be called on app startup.
11
- * Processes any auth callback in the URL and sets up auto-refresh.
12
- */
13
- initialize() {
14
- const wasCallback = this.processCallback();
15
- this.initBase();
16
- return wasCallback;
1
+ import { TokenAuth } from "./auth-base.js";
2
+ export class BrowserAuth extends TokenAuth {
3
+ async initialize() {
4
+ this.processCallback();
5
+ return this.isAuthenticated();
17
6
  }
18
- /**
19
- * Initiate login by redirecting to auth page.
20
- * @param appName - The name of the application requesting login (displayed on auth page)
21
- */
22
- login(appName, params) {
23
- this.redirectToAuth('login', appName, params);
7
+ async login(appName, params) {
8
+ this.redirectToAuth("login", appName, params);
24
9
  }
25
- /**
26
- * Initiate signup by redirecting to auth page.
27
- * @param appName - The name of the application requesting signup (displayed on auth page)
28
- */
29
- signup(appName, params) {
30
- this.redirectToAuth('signup', appName, params);
10
+ async signup(appName, params) {
11
+ this.redirectToAuth("signup", appName, params);
31
12
  }
32
- /**
33
- * Process auth callback from URL fragment.
34
- * Should be called on page load.
35
- * @returns true if callback was processed
36
- */
37
13
  processCallback() {
38
- const hash = window.location.hash ?? '';
39
- const trimmed = hash.startsWith('#') ? hash.slice(1) : hash;
40
- if (!trimmed)
14
+ const hash = window.location.hash.startsWith("#")
15
+ ? window.location.hash.slice(1)
16
+ : window.location.hash;
17
+ if (!hash)
41
18
  return false;
42
- const params = new URLSearchParams(trimmed);
43
- const idToken = params.get('id_token');
19
+ const params = new URLSearchParams(hash);
20
+ const idToken = params.get("id_token");
44
21
  if (!idToken)
45
22
  return false;
46
- const refreshToken = params.get('refresh_token');
47
- const roolToken = params.get('rool_token');
48
- const expiresIn = params.get('expires_in');
49
- const expiresAt = expiresIn ? Date.now() + Number(expiresIn) * 1000 : NaN;
50
- const incomingState = params.get('state');
23
+ const incomingState = params.get("state");
51
24
  const storedState = this.readState();
52
- // Validate state — only enforce when both sides have one (SDK-initiated
53
- // flow). When the auth page is opened directly (e.g., link from the
54
- // website), there's no incoming state and nothing to validate against.
55
25
  if (storedState && incomingState && incomingState !== storedState) {
56
- this.logger.error('[RoolClient] Auth state mismatch. Token fragment ignored.');
26
+ console.error("[RoolAuth] Browser auth state mismatch");
57
27
  return false;
58
28
  }
59
- if (!Number.isFinite(expiresAt)) {
60
- this.logger.error('[RoolClient] Auth response missing expires_in. Token ignored.');
29
+ const accepted = this.acceptTokenResponse({
30
+ id_token: idToken,
31
+ refresh_token: params.get("refresh_token"),
32
+ rool_token: params.get("rool_token"),
33
+ expires_in: params.get("expires_in"),
34
+ });
35
+ if (!accepted)
61
36
  return false;
62
- }
63
- // Clear state and store tokens
64
37
  this.clearState();
65
- this.acceptTokens(idToken, refreshToken, roolToken, expiresAt);
66
- // Clean URL
67
- const cleanUrl = window.location.origin + window.location.pathname + window.location.search;
38
+ const cleanUrl = window.location.origin +
39
+ window.location.pathname +
40
+ window.location.search;
68
41
  window.history.replaceState({}, document.title, cleanUrl);
69
- this.notifyAuthState(true);
42
+ this.emitAuthState(true);
70
43
  return true;
71
44
  }
72
- // ===========================================================================
73
- // Private
74
- // ===========================================================================
75
45
  redirectToAuth(flow, appName, params) {
76
- const origin = new URL(this.authBaseUrl).origin;
77
- const url = new URL(`${origin}/${flow}`);
78
- const redirectTarget = window.location.origin + window.location.pathname + window.location.search;
79
- url.searchParams.set('redirect_uri', redirectTarget);
80
- url.searchParams.set('app_name', appName);
81
- if (params) {
82
- for (const [key, value] of Object.entries(params)) {
83
- url.searchParams.set(key, value);
84
- }
46
+ const url = new URL(`/${flow}`, new URL(this.authBaseUrl).origin);
47
+ url.searchParams.set("redirect_uri", window.location.origin +
48
+ window.location.pathname +
49
+ window.location.search);
50
+ url.searchParams.set("app_name", appName);
51
+ for (const [name, value] of Object.entries(params ?? {})) {
52
+ url.searchParams.set(name, value);
85
53
  }
86
- const state = this.generateState();
54
+ const state = randomState();
87
55
  this.storeState(state);
88
- url.searchParams.set('state', state);
56
+ url.searchParams.set("state", state);
89
57
  window.location.href = url.toString();
90
58
  }
91
59
  clearTransientState() {
92
60
  this.clearState();
93
61
  }
94
62
  get stateKey() {
95
- return this.keyFor('auth_state');
63
+ return this.keyFor("auth_state");
96
64
  }
97
65
  storeState(value) {
98
66
  try {
99
67
  sessionStorage.setItem(this.stateKey, value);
100
68
  }
101
69
  catch {
102
- // Ignore storage restrictions
70
+ // Storage can be unavailable in restricted browser contexts.
103
71
  }
104
72
  }
105
73
  readState() {
@@ -115,18 +83,13 @@ export class BrowserAuthProvider extends BaseTokenAuthProvider {
115
83
  sessionStorage.removeItem(this.stateKey);
116
84
  }
117
85
  catch {
118
- // Ignore storage restrictions
119
- }
120
- }
121
- generateState() {
122
- try {
123
- const buffer = new Uint8Array(16);
124
- window.crypto.getRandomValues(buffer);
125
- return Array.from(buffer, (value) => value.toString(16).padStart(2, '0')).join('');
126
- }
127
- catch {
128
- return Math.random().toString(36).slice(2) + Math.random().toString(36).slice(2);
86
+ // Storage can be unavailable in restricted browser contexts.
129
87
  }
130
88
  }
131
89
  }
90
+ function randomState() {
91
+ const bytes = new Uint8Array(16);
92
+ crypto.getRandomValues(bytes);
93
+ return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
94
+ }
132
95
  //# sourceMappingURL=auth-browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-browser.js","sourceRoot":"","sources":["../src/auth-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-browser.js","sourceRoot":"","sources":["../src/auth-browser.ts"],"names":[],"mappings":"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"}
@@ -1,72 +1,25 @@
1
- import { BaseTokenAuthProvider } from './auth-base.js';
2
- import type { PasswordSignInResult } from './types.js';
3
- export type NativeAuthFlowProvider = 'google' | 'apple';
4
- export interface NativePkceAuthConfig {
5
- /**
6
- * Deep-link redirect URI registered by the app. Must match the auth
7
- * server's native-client allowlist exactly, e.g.
8
- * 'roolandroidauth://auth/callback' or 'rooliosauth://auth/callback'.
9
- */
1
+ import { TokenAuth, type TokenAuthConfig } from "./auth-base.js";
2
+ import type { PasswordSignInResult } from "./types.js";
3
+ export type NativeAuthProvider = "google" | "apple";
4
+ export interface NativeAuthConfig extends TokenAuthConfig {
10
5
  redirectUri: string;
11
- /** Identity provider used when login()/signup() are called without one. */
12
- defaultProvider?: NativeAuthFlowProvider;
13
- /**
14
- * Open a URL in an external system browser (NOT the app webview), e.g.
15
- * Capacitor's `Browser.open({ url })`. PKCE requires the authorization
16
- * step to happen outside the app so the app never sees provider secrets.
17
- */
6
+ defaultProvider?: NativeAuthProvider;
18
7
  openExternal: (url: string) => void | Promise<void>;
19
8
  }
20
- export declare class NativePkceAuthProvider extends BaseTokenAuthProvider {
9
+ export declare class NativeAuth extends TokenAuth {
21
10
  private readonly redirectUri;
22
11
  private readonly defaultProvider;
23
12
  private readonly openExternal;
24
- constructor(config: NativePkceAuthConfig);
25
- /**
26
- * No synchronous callback to process — the app drives completion via
27
- * handleRedirect(). Just arm refresh for any persisted session.
28
- */
29
- initialize(): boolean;
30
- /**
31
- * Begin sign-in. `params.provider` ('google' | 'apple') overrides the
32
- * default; `params.rvid` is forwarded for signup attribution.
33
- */
13
+ constructor(config: NativeAuthConfig);
14
+ initialize(): Promise<boolean>;
34
15
  login(_appName: string, params?: Record<string, string>): Promise<void>;
35
- /**
36
- * Same flow as login — the providers don't distinguish signup from login
37
- * for native, and the auth server creates the account on first sign-in.
38
- */
39
16
  signup(_appName: string, params?: Record<string, string>): Promise<void>;
40
- /**
41
- * Complete a sign-in from the deep link the app received (e.g. Capacitor's
42
- * appUrlOpen). Validates state, exchanges the code + stored verifier at
43
- * /token, and persists the session. Returns true once signed in.
44
- */
45
17
  handleRedirect(url: string): Promise<boolean>;
46
- /**
47
- * Sign in with email + password. No redirect involved — the auth server
48
- * returns the token set as JSON, which we persist directly.
49
- *
50
- * Resolves `signed_in` on success, or `verify_required` when the account's
51
- * email isn't verified (the server has emailed a magic link). Rejects with
52
- * a human-readable Error on bad credentials or server failure.
53
- */
54
18
  signInWithPassword(email: string, password: string): Promise<PasswordSignInResult>;
55
- /**
56
- * Request a magic sign-in link by email. The server emails a link carrying
57
- * a verify token; the user completes sign-in by following it, which lands
58
- * back in the app and is finished via `verify(token)`. Resolves once the
59
- * email is accepted; rejects with a human-readable Error if the address is
60
- * rejected (invalid / disposable / unreachable).
61
- *
62
- * NOTE: the emailed link is an https URL (`<appsDomain>/?verify=…`), so on
63
- * native it only re-opens the app if Universal Links / App Links are set up
64
- * for that domain. Without them the link completes on the website instead.
65
- */
66
19
  requestMagicLink(email: string): Promise<void>;
20
+ protected clearTransientState(): void;
67
21
  private get verifierKey();
68
22
  private get stateKey();
69
23
  private startPkce;
70
- protected clearTransientState(): void;
71
24
  }
72
25
  //# sourceMappingURL=auth-native.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-native.d.ts","sourceRoot":"","sources":["../src/auth-native.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACjC;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC;;;;OAIG;IACH,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED,qBAAa,sBAAuB,SAAQ,qBAAqB;IAC7D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;gBAEzD,MAAM,EAAE,oBAAoB;IAOxC;;;OAGG;IACH,UAAU,IAAI,OAAO;IAKrB;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE;;;;OAIG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgFnD;;;;;;;OAOG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiDxF;;;;;;;;;;OAUG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BpD,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,QAAQ,GAEnB;YAEa,SAAS;IAuBvB,SAAS,CAAC,mBAAmB,IAAI,IAAI;CAIxC"}
1
+ {"version":3,"file":"auth-native.d.ts","sourceRoot":"","sources":["../src/auth-native.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAED,qBAAa,UAAW,SAAQ,SAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;gBAEzD,MAAM,EAAE,gBAAgB;IAO9B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,KAAK,CACT,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;IAIV,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;IAIV,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgD7C,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC;IAmC1B,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBpD,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAKrC,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,QAAQ,GAEnB;YAEa,SAAS;CAyBxB"}