@rownd/react-native 0.1.1

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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +213 -0
  3. package/android/build.gradle +59 -0
  4. package/android/src/main/AndroidManifest.xml +4 -0
  5. package/android/src/main/java/com/reactnative/ReactNativePackage.java +22 -0
  6. package/android/src/main/java/com/reactnative/ReactNativeViewManager.java +31 -0
  7. package/ios/ReactNative.xcodeproj/project.pbxproj +282 -0
  8. package/ios/ReactNative.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  9. package/ios/ReactNativeViewManager.m +34 -0
  10. package/lib/commonjs/assets/images/checkmark--filled.svg +12 -0
  11. package/lib/commonjs/assets/images/email-verify-waiting.svg +36 -0
  12. package/lib/commonjs/assets/images/phone-verify-waiting.svg +26 -0
  13. package/lib/commonjs/components/AuthenticatedComponent.js +35 -0
  14. package/lib/commonjs/components/AuthenticatedComponent.js.map +1 -0
  15. package/lib/commonjs/components/AutoSigninDialog.js +119 -0
  16. package/lib/commonjs/components/AutoSigninDialog.js.map +1 -0
  17. package/lib/commonjs/components/DefaultContext.js +269 -0
  18. package/lib/commonjs/components/DefaultContext.js.map +1 -0
  19. package/lib/commonjs/components/GlobalContext.js +340 -0
  20. package/lib/commonjs/components/GlobalContext.js.map +1 -0
  21. package/lib/commonjs/components/RowndComponents.js +29 -0
  22. package/lib/commonjs/components/RowndComponents.js.map +1 -0
  23. package/lib/commonjs/components/RowndProvider.js +55 -0
  24. package/lib/commonjs/components/RowndProvider.js.map +1 -0
  25. package/lib/commonjs/components/SignIn.js +622 -0
  26. package/lib/commonjs/components/SignIn.js.map +1 -0
  27. package/lib/commonjs/data/actions.js +26 -0
  28. package/lib/commonjs/data/actions.js.map +1 -0
  29. package/lib/commonjs/hooks/api.js +157 -0
  30. package/lib/commonjs/hooks/api.js.map +1 -0
  31. package/lib/commonjs/hooks/debounce.js +38 -0
  32. package/lib/commonjs/hooks/debounce.js.map +1 -0
  33. package/lib/commonjs/hooks/fingerprint.js +176 -0
  34. package/lib/commonjs/hooks/fingerprint.js.map +1 -0
  35. package/lib/commonjs/hooks/index.js +48 -0
  36. package/lib/commonjs/hooks/index.js.map +1 -0
  37. package/lib/commonjs/hooks/interval.js +31 -0
  38. package/lib/commonjs/hooks/interval.js.map +1 -0
  39. package/lib/commonjs/hooks/nav.js +39 -0
  40. package/lib/commonjs/hooks/nav.js.map +1 -0
  41. package/lib/commonjs/hooks/rownd.js +163 -0
  42. package/lib/commonjs/hooks/rownd.js.map +1 -0
  43. package/lib/commonjs/index.js +32 -0
  44. package/lib/commonjs/index.js.map +1 -0
  45. package/lib/commonjs/index.tsx.bak +26 -0
  46. package/lib/commonjs/types.js +2 -0
  47. package/lib/commonjs/types.js.map +1 -0
  48. package/lib/commonjs/utils/config.js +28 -0
  49. package/lib/commonjs/utils/config.js.map +1 -0
  50. package/lib/commonjs/utils/events.js +57 -0
  51. package/lib/commonjs/utils/events.js.map +1 -0
  52. package/lib/commonjs/utils/form.js +46 -0
  53. package/lib/commonjs/utils/form.js.map +1 -0
  54. package/lib/commonjs/utils/queue.js +117 -0
  55. package/lib/commonjs/utils/queue.js.map +1 -0
  56. package/lib/commonjs/utils/storage.js +15 -0
  57. package/lib/commonjs/utils/storage.js.map +1 -0
  58. package/lib/commonjs/utils/tailwind.js +17 -0
  59. package/lib/commonjs/utils/tailwind.js.map +1 -0
  60. package/lib/commonjs/utils/tokens.js +35 -0
  61. package/lib/commonjs/utils/tokens.js.map +1 -0
  62. package/lib/commonjs/utils/user-data.js +21 -0
  63. package/lib/commonjs/utils/user-data.js.map +1 -0
  64. package/lib/module/assets/images/checkmark--filled.svg +12 -0
  65. package/lib/module/assets/images/email-verify-waiting.svg +36 -0
  66. package/lib/module/assets/images/phone-verify-waiting.svg +26 -0
  67. package/lib/module/components/AuthenticatedComponent.js +24 -0
  68. package/lib/module/components/AuthenticatedComponent.js.map +1 -0
  69. package/lib/module/components/AutoSigninDialog.js +100 -0
  70. package/lib/module/components/AutoSigninDialog.js.map +1 -0
  71. package/lib/module/components/DefaultContext.js +244 -0
  72. package/lib/module/components/DefaultContext.js.map +1 -0
  73. package/lib/module/components/GlobalContext.js +318 -0
  74. package/lib/module/components/GlobalContext.js.map +1 -0
  75. package/lib/module/components/RowndComponents.js +14 -0
  76. package/lib/module/components/RowndComponents.js.map +1 -0
  77. package/lib/module/components/RowndProvider.js +39 -0
  78. package/lib/module/components/RowndProvider.js.map +1 -0
  79. package/lib/module/components/SignIn.js +593 -0
  80. package/lib/module/components/SignIn.js.map +1 -0
  81. package/lib/module/data/actions.js +19 -0
  82. package/lib/module/data/actions.js.map +1 -0
  83. package/lib/module/hooks/api.js +138 -0
  84. package/lib/module/hooks/api.js.map +1 -0
  85. package/lib/module/hooks/debounce.js +29 -0
  86. package/lib/module/hooks/debounce.js.map +1 -0
  87. package/lib/module/hooks/fingerprint.js +157 -0
  88. package/lib/module/hooks/fingerprint.js.map +1 -0
  89. package/lib/module/hooks/index.js +7 -0
  90. package/lib/module/hooks/index.js.map +1 -0
  91. package/lib/module/hooks/interval.js +23 -0
  92. package/lib/module/hooks/interval.js.map +1 -0
  93. package/lib/module/hooks/nav.js +30 -0
  94. package/lib/module/hooks/nav.js.map +1 -0
  95. package/lib/module/hooks/rownd.js +148 -0
  96. package/lib/module/hooks/rownd.js.map +1 -0
  97. package/lib/module/index.js +6 -0
  98. package/lib/module/index.js.map +1 -0
  99. package/lib/module/index.tsx.bak +26 -0
  100. package/lib/module/types.js +2 -0
  101. package/lib/module/types.js.map +1 -0
  102. package/lib/module/utils/config.js +17 -0
  103. package/lib/module/utils/config.js.map +1 -0
  104. package/lib/module/utils/events.js +45 -0
  105. package/lib/module/utils/events.js.map +1 -0
  106. package/lib/module/utils/form.js +34 -0
  107. package/lib/module/utils/form.js.map +1 -0
  108. package/lib/module/utils/queue.js +109 -0
  109. package/lib/module/utils/queue.js.map +1 -0
  110. package/lib/module/utils/storage.js +6 -0
  111. package/lib/module/utils/storage.js.map +1 -0
  112. package/lib/module/utils/tailwind.js +5 -0
  113. package/lib/module/utils/tailwind.js.map +1 -0
  114. package/lib/module/utils/tokens.js +24 -0
  115. package/lib/module/utils/tokens.js.map +1 -0
  116. package/lib/module/utils/user-data.js +14 -0
  117. package/lib/module/utils/user-data.js.map +1 -0
  118. package/lib/typescript/example2/App.d.ts +11 -0
  119. package/lib/typescript/src/components/AuthenticatedComponent.d.ts +7 -0
  120. package/lib/typescript/src/components/AutoSigninDialog.d.ts +1 -0
  121. package/lib/typescript/src/components/DefaultContext.d.ts +12 -0
  122. package/lib/typescript/src/components/GlobalContext.d.ts +111 -0
  123. package/lib/typescript/src/components/RowndComponents.d.ts +1 -0
  124. package/lib/typescript/src/components/RowndProvider.d.ts +8 -0
  125. package/lib/typescript/src/components/SignIn.d.ts +1 -0
  126. package/lib/typescript/src/data/actions.d.ts +20 -0
  127. package/lib/typescript/src/hooks/api.d.ts +12 -0
  128. package/lib/typescript/src/hooks/debounce.d.ts +5 -0
  129. package/lib/typescript/src/hooks/fingerprint.d.ts +12 -0
  130. package/lib/typescript/src/hooks/index.d.ts +6 -0
  131. package/lib/typescript/src/hooks/interval.d.ts +2 -0
  132. package/lib/typescript/src/hooks/nav.d.ts +6 -0
  133. package/lib/typescript/src/hooks/rownd.d.ts +37 -0
  134. package/lib/typescript/src/index.d.ts +4 -0
  135. package/lib/typescript/src/types.d.ts +26 -0
  136. package/lib/typescript/src/utils/config.d.ts +18 -0
  137. package/lib/typescript/src/utils/events.d.ts +22 -0
  138. package/lib/typescript/src/utils/form.d.ts +17 -0
  139. package/lib/typescript/src/utils/queue.d.ts +21 -0
  140. package/lib/typescript/src/utils/storage.d.ts +3 -0
  141. package/lib/typescript/src/utils/tailwind.d.ts +2 -0
  142. package/lib/typescript/src/utils/tokens.d.ts +4 -0
  143. package/lib/typescript/src/utils/user-data.d.ts +3 -0
  144. package/lib/typescript/tailwind.config.d.ts +10 -0
  145. package/package.json +177 -0
  146. package/react-native.podspec +19 -0
  147. package/src/assets/images/checkmark--filled.svg +12 -0
  148. package/src/assets/images/email-verify-waiting.svg +36 -0
  149. package/src/assets/images/phone-verify-waiting.svg +26 -0
  150. package/src/components/AuthenticatedComponent.tsx +30 -0
  151. package/src/components/AutoSigninDialog.tsx +125 -0
  152. package/src/components/DefaultContext.tsx +278 -0
  153. package/src/components/GlobalContext.tsx +485 -0
  154. package/src/components/RowndComponents.tsx +21 -0
  155. package/src/components/RowndProvider.tsx +56 -0
  156. package/src/components/SignIn.tsx +770 -0
  157. package/src/data/actions.ts +21 -0
  158. package/src/hooks/api.ts +163 -0
  159. package/src/hooks/debounce.ts +36 -0
  160. package/src/hooks/fingerprint.ts +217 -0
  161. package/src/hooks/index.ts +7 -0
  162. package/src/hooks/interval.ts +25 -0
  163. package/src/hooks/nav.tsx +29 -0
  164. package/src/hooks/rownd.ts +184 -0
  165. package/src/index.tsx +6 -0
  166. package/src/index.tsx.bak +26 -0
  167. package/src/types.ts +27 -0
  168. package/src/utils/config.ts +36 -0
  169. package/src/utils/events.ts +54 -0
  170. package/src/utils/form.tsx +64 -0
  171. package/src/utils/queue.ts +75 -0
  172. package/src/utils/storage.ts +7 -0
  173. package/src/utils/tailwind.ts +6 -0
  174. package/src/utils/tokens.ts +26 -0
  175. package/src/utils/user-data.ts +15 -0
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ function useInterval(callback, delay) {
11
+ const savedCallback = (0, _react.useRef)(callback); // Remember the latest callback if it changes.
12
+
13
+ (0, _react.useLayoutEffect)(() => {
14
+ savedCallback.current = callback;
15
+ }, [callback]); // Set up the interval.
16
+
17
+ (0, _react.useEffect)(() => {
18
+ // Don't schedule if no delay is specified.
19
+ // Note: 0 is a valid value for delay.
20
+ if (!delay && delay !== 0) {
21
+ return;
22
+ }
23
+
24
+ const id = setInterval(() => savedCallback.current(), delay);
25
+ return () => clearInterval(id);
26
+ }, [delay]);
27
+ }
28
+
29
+ var _default = useInterval;
30
+ exports.default = _default;
31
+ //# sourceMappingURL=interval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useInterval","callback","delay","savedCallback","useRef","useLayoutEffect","current","useEffect","id","setInterval","clearInterval"],"sources":["interval.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nfunction useInterval(callback: () => void, delay: number | null) {\n const savedCallback = useRef(callback);\n\n // Remember the latest callback if it changes.\n useLayoutEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // Set up the interval.\n useEffect(() => {\n // Don't schedule if no delay is specified.\n // Note: 0 is a valid value for delay.\n if (!delay && delay !== 0) {\n return;\n }\n\n const id = setInterval(() => savedCallback.current(), delay);\n\n return () => clearInterval(id);\n }, [delay]);\n}\n\nexport default useInterval;\n"],"mappings":";;;;;;;AAAA;;AAEA,SAASA,WAAT,CAAqBC,QAArB,EAA2CC,KAA3C,EAAiE;EAC/D,MAAMC,aAAa,GAAG,IAAAC,aAAA,EAAOH,QAAP,CAAtB,CAD+D,CAG/D;;EACA,IAAAI,sBAAA,EAAgB,MAAM;IACpBF,aAAa,CAACG,OAAd,GAAwBL,QAAxB;EACD,CAFD,EAEG,CAACA,QAAD,CAFH,EAJ+D,CAQ/D;;EACA,IAAAM,gBAAA,EAAU,MAAM;IACd;IACA;IACA,IAAI,CAACL,KAAD,IAAUA,KAAK,KAAK,CAAxB,EAA2B;MACzB;IACD;;IAED,MAAMM,EAAE,GAAGC,WAAW,CAAC,MAAMN,aAAa,CAACG,OAAd,EAAP,EAAgCJ,KAAhC,CAAtB;IAEA,OAAO,MAAMQ,aAAa,CAACF,EAAD,CAA1B;EACD,CAVD,EAUG,CAACN,KAAD,CAVH;AAWD;;eAEcF,W"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useNav;
7
+
8
+ var _GlobalContext = require("../components/GlobalContext");
9
+
10
+ var _actions = require("../data/actions");
11
+
12
+ function useNav() {
13
+ const {
14
+ dispatch
15
+ } = (0, _GlobalContext.useGlobalContext)();
16
+ return _ref => {
17
+ let {
18
+ route,
19
+ hide
20
+ } = _ref;
21
+
22
+ if (hide) {
23
+ dispatch({
24
+ type: _actions.ActionType.SET_CONTAINER_VISIBLE,
25
+ payload: {
26
+ isVisible: false
27
+ }
28
+ });
29
+ } else if (route) {
30
+ dispatch({
31
+ type: _actions.ActionType.CHANGE_ROUTE,
32
+ payload: {
33
+ current_route: route
34
+ }
35
+ });
36
+ }
37
+ };
38
+ }
39
+ //# sourceMappingURL=nav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useNav","dispatch","useGlobalContext","route","hide","type","ActionType","SET_CONTAINER_VISIBLE","payload","isVisible","CHANGE_ROUTE","current_route"],"sources":["nav.tsx"],"sourcesContent":["import { useGlobalContext } from '../components/GlobalContext';\nimport { ActionType } from '../data/actions';\n\ninterface INavOpts {\n route?: string;\n hide?: boolean;\n}\n\nexport default function useNav() {\n const { dispatch } = useGlobalContext();\n\n return ({ route, hide }: INavOpts) => {\n if (hide) {\n dispatch({\n type: ActionType.SET_CONTAINER_VISIBLE,\n payload: {\n isVisible: false,\n },\n });\n } else if (route) {\n dispatch({\n type: ActionType.CHANGE_ROUTE,\n payload: {\n current_route: route,\n },\n });\n }\n };\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AAOe,SAASA,MAAT,GAAkB;EAC/B,MAAM;IAAEC;EAAF,IAAe,IAAAC,+BAAA,GAArB;EAEA,OAAO,QAA+B;IAAA,IAA9B;MAAEC,KAAF;MAASC;IAAT,CAA8B;;IACpC,IAAIA,IAAJ,EAAU;MACRH,QAAQ,CAAC;QACPI,IAAI,EAAEC,mBAAA,CAAWC,qBADV;QAEPC,OAAO,EAAE;UACPC,SAAS,EAAE;QADJ;MAFF,CAAD,CAAR;IAMD,CAPD,MAOO,IAAIN,KAAJ,EAAW;MAChBF,QAAQ,CAAC;QACPI,IAAI,EAAEC,mBAAA,CAAWI,YADV;QAEPF,OAAO,EAAE;UACPG,aAAa,EAAER;QADR;MAFF,CAAD,CAAR;IAMD;EACF,CAhBD;AAiBD"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useRownd = useRownd;
7
+
8
+ var _GlobalContext = require("../components/GlobalContext");
9
+
10
+ var _actions = require("../data/actions");
11
+
12
+ var _api = _interopRequireDefault(require("./api"));
13
+
14
+ var _events = require("../utils/events");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ // const RowndContext = createContext<TRowndContext | null>(null);
19
+ function useRownd() {
20
+ var _state$auth, _state$user, _state$user2;
21
+
22
+ const {
23
+ state,
24
+ dispatch
25
+ } = (0, _GlobalContext.useGlobalContext)();
26
+ const {
27
+ isNewAccessTokenNeeded,
28
+ newAccessTokenFromRefreshToken
29
+ } = (0, _api.default)();
30
+ const stateCopy = JSON.parse(JSON.stringify(state));
31
+
32
+ const requestSignIn = opts => {
33
+ dispatch({
34
+ type: _actions.ActionType.CHANGE_ROUTE,
35
+ payload: {
36
+ route: '/account/login',
37
+ options: opts
38
+ }
39
+ });
40
+ };
41
+
42
+ const signOut = () => {
43
+ dispatch({
44
+ type: _actions.ActionType.SIGN_OUT
45
+ });
46
+ };
47
+
48
+ const getAccessToken = async opts => {
49
+ const {
50
+ waitForToken
51
+ } = opts || {};
52
+ let accessToken = state === null || state === void 0 ? void 0 : state.auth.access_token; // Wait for an access token to be available if none exists yet
53
+
54
+ if (!accessToken && waitForToken) {
55
+ return new Promise((resolve, _reject) => {
56
+ console.debug('auth_wait: waiting for access token');
57
+
58
+ const listener = evt => {
59
+ console.debug('auth_wait: received access token');
60
+ const data = evt.detail;
61
+ resolve(data.access_token);
62
+ };
63
+
64
+ _events.events.addEventListener(_events.EventType.AUTH, listener, {
65
+ once: true
66
+ });
67
+ });
68
+ }
69
+
70
+ if (isNewAccessTokenNeeded(undefined)) {
71
+ const resp = await newAccessTokenFromRefreshToken(stateCopy);
72
+ accessToken = resp.access_token;
73
+ }
74
+
75
+ return accessToken;
76
+ };
77
+
78
+ const setUserData = data => {
79
+ return new Promise((resolve, reject) => {
80
+ console.debug('user_data_save_wait: waiting for data to be saved');
81
+
82
+ const listener = evt => {
83
+ console.debug('user_data_save_wait: received data saved event');
84
+
85
+ if (evt.error) {
86
+ return reject(evt.error);
87
+ }
88
+
89
+ resolve(evt.data);
90
+ };
91
+
92
+ _events.events.addEventListener(_events.EventType.USER_DATA_SAVED, listener, {
93
+ once: true
94
+ });
95
+
96
+ dispatch({
97
+ type: _actions.ActionType.SET_USER_DATA,
98
+ payload: {
99
+ data
100
+ }
101
+ });
102
+ });
103
+ };
104
+
105
+ const setUserDataValue = (key, value) => {
106
+ return new Promise((resolve, reject) => {
107
+ console.debug('user_data_save_wait: waiting for data to be saved');
108
+
109
+ const listener = evt => {
110
+ console.debug('user_data_save_wait: received data saved event');
111
+
112
+ if (evt.error) {
113
+ return reject(evt.error);
114
+ }
115
+
116
+ resolve(evt.data);
117
+ };
118
+
119
+ _events.events.addEventListener(_events.EventType.USER_DATA_SAVED, listener, {
120
+ once: true
121
+ });
122
+
123
+ dispatch({
124
+ type: _actions.ActionType.SET_USER_DATA_FIELD,
125
+ payload: {
126
+ field: key,
127
+ value
128
+ }
129
+ });
130
+
131
+ if (value) {
132
+ return;
133
+ }
134
+
135
+ const valueAcl = {
136
+ [key]: {
137
+ shared: true
138
+ }
139
+ };
140
+ dispatch({
141
+ type: _actions.ActionType.UPDATE_LOCAL_ACLS,
142
+ payload: valueAcl
143
+ });
144
+ });
145
+ };
146
+
147
+ return {
148
+ requestSignIn,
149
+ signOut,
150
+ getAccessToken,
151
+ is_authenticated: !!state.auth.access_token,
152
+ is_initializing: !!state.app.id,
153
+ access_token: (_state$auth = state.auth) === null || _state$auth === void 0 ? void 0 : _state$auth.access_token,
154
+ auth: state.auth,
155
+ user: {
156
+ data: (_state$user = state.user) === null || _state$user === void 0 ? void 0 : _state$user.data,
157
+ redacted_fields: (_state$user2 = state.user) === null || _state$user2 === void 0 ? void 0 : _state$user2.redacted,
158
+ set: setUserData,
159
+ setValue: setUserDataValue
160
+ }
161
+ };
162
+ }
163
+ //# sourceMappingURL=rownd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useRownd","state","dispatch","useGlobalContext","isNewAccessTokenNeeded","newAccessTokenFromRefreshToken","useApi","stateCopy","JSON","parse","stringify","requestSignIn","opts","type","ActionType","CHANGE_ROUTE","payload","route","options","signOut","SIGN_OUT","getAccessToken","waitForToken","accessToken","auth","access_token","Promise","resolve","_reject","console","debug","listener","evt","data","detail","events","addEventListener","EventType","AUTH","once","undefined","resp","setUserData","reject","error","USER_DATA_SAVED","SET_USER_DATA","setUserDataValue","key","value","SET_USER_DATA_FIELD","field","valueAcl","shared","UPDATE_LOCAL_ACLS","is_authenticated","is_initializing","app","id","user","redacted_fields","redacted","set","setValue"],"sources":["rownd.ts"],"sourcesContent":["import { useGlobalContext } from '../components/GlobalContext';\nimport { ActionType } from '../data/actions';\nimport useApi from './api';\nimport { events, EventType } from '../utils/events';\n\nexport type TRowndContext = {\n requestSignIn: (opts?: RequestSignInOpts) => void;\n signOut: () => void;\n getAccessToken: (opts?: GetAccessTokenOpts) => Promise<string | null>;\n is_authenticated: boolean;\n is_initializing: boolean;\n access_token: string | null;\n auth: AuthContext;\n user: UserContext;\n};\n\ntype AuthContext = {\n access_token: string | null;\n app_id: string | null;\n is_verified_user?: boolean;\n};\n\ntype UserContext = {\n data: {\n id?: string;\n email?: string | null;\n phone?: string | null;\n [key: string]: any;\n };\n redacted_fields: string[];\n set: (data: Record<string, any>) => Promise<Record<string, any>>;\n setValue: (key: string, value: any) => Promise<Record<string, any>>;\n};\n\ntype RequestSignInOpts = {\n identifier?: string;\n auto_sign_in?: boolean;\n init_data?: Record<string, any>;\n post_login_redirect?: string;\n};\n\ntype GetAccessTokenOpts = {\n waitForToken?: boolean;\n};\n\n// const RowndContext = createContext<TRowndContext | null>(null);\n\nexport function useRownd(): TRowndContext {\n const { state, dispatch } = useGlobalContext();\n const { isNewAccessTokenNeeded, newAccessTokenFromRefreshToken } = useApi();\n\n const stateCopy = JSON.parse(JSON.stringify(state));\n\n const requestSignIn = (opts?: RequestSignInOpts): void => {\n dispatch({\n type: ActionType.CHANGE_ROUTE,\n payload: {\n route: '/account/login',\n options: opts,\n },\n });\n };\n\n const signOut = () => {\n dispatch({\n type: ActionType.SIGN_OUT,\n });\n };\n\n const getAccessToken = async (\n opts?: GetAccessTokenOpts\n ): Promise<string | null> => {\n const { waitForToken } = opts || {};\n let accessToken = state?.auth.access_token;\n\n // Wait for an access token to be available if none exists yet\n if (!accessToken && waitForToken) {\n return new Promise((resolve, _reject) => {\n console.debug('auth_wait: waiting for access token');\n const listener = (evt: any) => {\n console.debug('auth_wait: received access token');\n const data = evt.detail;\n resolve(data.access_token);\n };\n\n events.addEventListener(EventType.AUTH, listener, { once: true });\n });\n }\n\n if (isNewAccessTokenNeeded(undefined)) {\n const resp = await newAccessTokenFromRefreshToken(stateCopy);\n accessToken = resp.access_token;\n }\n\n return accessToken;\n };\n\n const setUserData = (\n data: Record<string, any>\n ): Promise<Record<string, any>> => {\n return new Promise((resolve, reject) => {\n console.debug('user_data_save_wait: waiting for data to be saved');\n const listener = (evt: any) => {\n console.debug('user_data_save_wait: received data saved event');\n if (evt.error) {\n return reject(evt.error);\n }\n\n resolve(evt.data);\n };\n\n events.addEventListener(EventType.USER_DATA_SAVED, listener, {\n once: true,\n });\n\n dispatch({\n type: ActionType.SET_USER_DATA,\n payload: {\n data,\n },\n });\n });\n };\n\n const setUserDataValue = (\n key: string,\n value: any\n ): Promise<Record<string, any>> => {\n return new Promise((resolve, reject) => {\n console.debug('user_data_save_wait: waiting for data to be saved');\n const listener = (evt: any) => {\n console.debug('user_data_save_wait: received data saved event');\n if (evt.error) {\n return reject(evt.error);\n }\n\n resolve(evt.data);\n };\n\n events.addEventListener(EventType.USER_DATA_SAVED, listener, {\n once: true,\n });\n\n dispatch({\n type: ActionType.SET_USER_DATA_FIELD,\n payload: {\n field: key,\n value,\n },\n });\n\n if (value) {\n return;\n }\n\n const valueAcl = {\n [key]: {\n shared: true,\n },\n };\n\n dispatch({\n type: ActionType.UPDATE_LOCAL_ACLS,\n payload: valueAcl,\n });\n });\n };\n\n return {\n requestSignIn,\n signOut,\n getAccessToken,\n is_authenticated: !!state.auth.access_token,\n is_initializing: !!state.app.id,\n access_token: state.auth?.access_token,\n auth: state.auth,\n user: {\n data: state.user?.data,\n redacted_fields: state.user?.redacted,\n set: setUserData,\n setValue: setUserDataValue,\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "AuthenticatedComponent", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _AuthenticatedComponent.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "RowndProvider", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _RowndProvider.RowndProvider;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useRownd", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _rownd.useRownd;
22
+ }
23
+ });
24
+
25
+ var _RowndProvider = require("./components/RowndProvider");
26
+
27
+ var _rownd = require("./hooks/rownd");
28
+
29
+ var _AuthenticatedComponent = _interopRequireDefault(require("./components/AuthenticatedComponent"));
30
+
31
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["// import { requestSignIn } from './components/SignIn';\nimport { RowndProvider } from './components/RowndProvider';\nimport { useRownd } from './hooks/rownd';\nimport AuthenticatedComponent from './components/AuthenticatedComponent';\n\nexport { RowndProvider, useRownd, AuthenticatedComponent };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA"}
@@ -0,0 +1,26 @@
1
+ import {
2
+ requireNativeComponent,
3
+ UIManager,
4
+ Platform,
5
+ ViewStyle,
6
+ } from 'react-native';
7
+
8
+ const LINKING_ERROR =
9
+ `The package '@rownd/react-native' doesn't seem to be linked. Make sure: \n\n` +
10
+ Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
11
+ '- You rebuilt the app after installing the package\n' +
12
+ '- You are not using Expo managed workflow\n';
13
+
14
+ type ReactNativeProps = {
15
+ color: string;
16
+ style: ViewStyle;
17
+ };
18
+
19
+ const ComponentName = 'ReactNativeView';
20
+
21
+ export const ReactNativeView =
22
+ UIManager.getViewManagerConfig(ComponentName) != null
23
+ ? requireNativeComponent<ReactNativeProps>(ComponentName)
24
+ : () => {
25
+ throw new Error(LINKING_ERROR);
26
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export type TRowndContext = {\n requestSignIn: Function;\n signOut: Function;\n getAccessToken: Function;\n is_authenticated: boolean;\n is_initializing: boolean;\n access_token: string | null;\n auth: AuthContext;\n user: UserContext;\n};\n\ntype AuthContext = {\n access_token: string | null;\n app_id?: string;\n is_authenticated: boolean;\n is_verified_user?: boolean;\n};\n\ntype UserContext = {\n data: {\n id?: string;\n email?: string | null;\n phone?: string | null;\n [key: string]: any;\n };\n redacted_fields: string[];\n};"],"mappings":""}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createConfig = createConfig;
7
+
8
+ var _pickBy = _interopRequireDefault(require("lodash-es/pickBy"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ const config = {
13
+ baseUrl: 'https://hub.rownd.io',
14
+ apiUrl: 'https://api.rownd.io',
15
+ pdcBaseUrl: 'https://mydata.rownd.io',
16
+ appKey: '',
17
+ postLoginUrl: null,
18
+ postRegistrationUrl: null,
19
+ locationHash: null,
20
+ postAuthenticationApi: null
21
+ };
22
+
23
+ function createConfig(opts) {
24
+ return { ...config,
25
+ ...(0, _pickBy.default)(opts)
26
+ };
27
+ }
28
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["config","baseUrl","apiUrl","pdcBaseUrl","appKey","postLoginUrl","postRegistrationUrl","locationHash","postAuthenticationApi","createConfig","opts","pickBy"],"sources":["config.ts"],"sourcesContent":["import pickBy from 'lodash-es/pickBy';\n\nexport interface IConfig {\n baseUrl: string;\n apiUrl: string;\n pdcBaseUrl: string;\n appKey: string;\n postLoginUrl: null | string;\n postRegistrationUrl: null | string;\n locationHash: null | string;\n postAuthenticationApi: null | PostAuthApiSpec;\n}\n\nconst config: IConfig = {\n baseUrl: 'https://hub.rownd.io',\n apiUrl: 'https://api.rownd.io',\n pdcBaseUrl: 'https://mydata.rownd.io',\n appKey: '',\n postLoginUrl: null,\n postRegistrationUrl: null,\n locationHash: null,\n postAuthenticationApi: null,\n};\n\nexport type PostAuthApiSpec = {\n method: 'post' | 'put';\n url: string;\n extra_headers: { [key: string]: string };\n};\n\nexport function createConfig(opts: Partial<IConfig>): IConfig {\n return {\n ...config,\n ...pickBy(opts),\n };\n}\n"],"mappings":";;;;;;;AAAA;;;;AAaA,MAAMA,MAAe,GAAG;EACtBC,OAAO,EAAE,sBADa;EAEtBC,MAAM,EAAE,sBAFc;EAGtBC,UAAU,EAAE,yBAHU;EAItBC,MAAM,EAAE,EAJc;EAKtBC,YAAY,EAAE,IALQ;EAMtBC,mBAAmB,EAAE,IANC;EAOtBC,YAAY,EAAE,IAPQ;EAQtBC,qBAAqB,EAAE;AARD,CAAxB;;AAiBO,SAASC,YAAT,CAAsBC,IAAtB,EAAuD;EAC5D,OAAO,EACL,GAAGV,MADE;IAEL,GAAG,IAAAW,eAAA,EAAOD,IAAP;EAFE,CAAP;AAID"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.events = exports.EventType = void 0;
7
+
8
+ var _eventemitter = _interopRequireDefault(require("eventemitter3"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ const bus = new _eventemitter.default();
13
+ let EventType;
14
+ exports.EventType = EventType;
15
+
16
+ (function (EventType) {
17
+ EventType["AUTH"] = "auth";
18
+ EventType["SIGN_OUT"] = "sign_out";
19
+ EventType["USER_DATA"] = "user_data";
20
+ EventType["USER_DATA_SAVED"] = "user_data_saved";
21
+ })(EventType || (exports.EventType = EventType = {}));
22
+
23
+ const events = {
24
+ addEventListener: (type, callback, options) => {
25
+ if (!Object.values(EventType).includes(type)) {
26
+ console.warn(`Unknown event type: ${type}`);
27
+ return;
28
+ }
29
+
30
+ let busFn = bus.on;
31
+
32
+ if (options === true || options !== null && options !== void 0 && options.once) {
33
+ busFn = bus.once;
34
+ }
35
+
36
+ busFn.apply(bus, [type, callback, options]);
37
+ },
38
+ removeEventListener: bus.removeListener,
39
+ dispatchEvent: event => {
40
+ if (!Object.values(EventType).includes(event.type)) {
41
+ throw new Error(`Unknown event type: ${event.type}`);
42
+ }
43
+
44
+ return bus.emit(event.type, event.detail);
45
+ },
46
+
47
+ dispatch(type, data) {
48
+ if (!Object.values(EventType).includes(type)) {
49
+ throw new Error(`Unknown event type: ${type}`);
50
+ }
51
+
52
+ return bus.emit(type, data);
53
+ }
54
+
55
+ };
56
+ exports.events = events;
57
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["bus","EventEmitter","EventType","events","addEventListener","type","callback","options","Object","values","includes","console","warn","busFn","on","once","apply","removeEventListener","removeListener","dispatchEvent","event","Error","emit","detail","dispatch","data"],"sources":["events.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3';\nconst bus = new EventEmitter();\n\nexport enum EventType {\n AUTH = 'auth',\n SIGN_OUT = 'sign_out',\n USER_DATA = 'user_data',\n USER_DATA_SAVED = 'user_data_saved',\n}\n\nexport type TAuthEvent = {\n access_token: string;\n user_id: string;\n app_id: string;\n};\n\ntype EventListenerOptions = {\n once?: boolean;\n};\n\nexport const events = {\n addEventListener: (\n type: string,\n callback: (...args: any[]) => void | null,\n options?: boolean | EventListenerOptions | undefined\n ): void => {\n if (!Object.values<string>(EventType).includes(type)) {\n console.warn(`Unknown event type: ${type}`);\n return;\n }\n\n let busFn = bus.on;\n if (options === true || (options as EventListenerOptions)?.once) {\n busFn = bus.once;\n }\n\n busFn.apply(bus, [type, callback, options]);\n },\n removeEventListener: bus.removeListener,\n dispatchEvent: (event: CustomEvent): boolean => {\n if (!Object.values<string>(EventType).includes(event.type)) {\n throw new Error(`Unknown event type: ${event.type}`);\n }\n\n return bus.emit(event.type, event.detail);\n },\n dispatch(type: EventType, data: any): boolean {\n if (!Object.values<string>(EventType).includes(type)) {\n throw new Error(`Unknown event type: ${type}`);\n }\n\n return bus.emit(type, data);\n },\n};\n"],"mappings":";;;;;;;AAAA;;;;AACA,MAAMA,GAAG,GAAG,IAAIC,qBAAJ,EAAZ;IAEYC,S;;;WAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;GAAAA,S,yBAAAA,S;;AAiBL,MAAMC,MAAM,GAAG;EACpBC,gBAAgB,EAAE,CAChBC,IADgB,EAEhBC,QAFgB,EAGhBC,OAHgB,KAIP;IACT,IAAI,CAACC,MAAM,CAACC,MAAP,CAAsBP,SAAtB,EAAiCQ,QAAjC,CAA0CL,IAA1C,CAAL,EAAsD;MACpDM,OAAO,CAACC,IAAR,CAAc,uBAAsBP,IAAK,EAAzC;MACA;IACD;;IAED,IAAIQ,KAAK,GAAGb,GAAG,CAACc,EAAhB;;IACA,IAAIP,OAAO,KAAK,IAAZ,IAAqBA,OAArB,aAAqBA,OAArB,eAAqBA,OAAD,CAAmCQ,IAA3D,EAAiE;MAC/DF,KAAK,GAAGb,GAAG,CAACe,IAAZ;IACD;;IAEDF,KAAK,CAACG,KAAN,CAAYhB,GAAZ,EAAiB,CAACK,IAAD,EAAOC,QAAP,EAAiBC,OAAjB,CAAjB;EACD,CAjBmB;EAkBpBU,mBAAmB,EAAEjB,GAAG,CAACkB,cAlBL;EAmBpBC,aAAa,EAAGC,KAAD,IAAiC;IAC9C,IAAI,CAACZ,MAAM,CAACC,MAAP,CAAsBP,SAAtB,EAAiCQ,QAAjC,CAA0CU,KAAK,CAACf,IAAhD,CAAL,EAA4D;MAC1D,MAAM,IAAIgB,KAAJ,CAAW,uBAAsBD,KAAK,CAACf,IAAK,EAA5C,CAAN;IACD;;IAED,OAAOL,GAAG,CAACsB,IAAJ,CAASF,KAAK,CAACf,IAAf,EAAqBe,KAAK,CAACG,MAA3B,CAAP;EACD,CAzBmB;;EA0BpBC,QAAQ,CAACnB,IAAD,EAAkBoB,IAAlB,EAAsC;IAC5C,IAAI,CAACjB,MAAM,CAACC,MAAP,CAAsBP,SAAtB,EAAiCQ,QAAjC,CAA0CL,IAA1C,CAAL,EAAsD;MACpD,MAAM,IAAIgB,KAAJ,CAAW,uBAAsBhB,IAAK,EAAtC,CAAN;IACD;;IAED,OAAOL,GAAG,CAACsB,IAAJ,CAASjB,IAAT,EAAeoB,IAAf,CAAP;EACD;;AAhCmB,CAAf"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.renderField = renderField;
7
+
8
+ var _reactNative = require("react-native");
9
+
10
+ var _picker = require("@react-native-picker/picker");
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function renderField(_ref) {
17
+ var _options$;
18
+
19
+ let {
20
+ id,
21
+ label = '',
22
+ name,
23
+ type = 'input',
24
+ value,
25
+ placeholder,
26
+ options = null,
27
+ onChange
28
+ } = _ref;
29
+
30
+ if (!id) {
31
+ id = `rph-input-${name}`;
32
+ }
33
+
34
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, label && /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, label), type === 'select' && /*#__PURE__*/_react.default.createElement(_picker.Picker, {
35
+ onValueChange: onChange,
36
+ selectedValue: value || (options === null || options === void 0 ? void 0 : (_options$ = options[0]) === null || _options$ === void 0 ? void 0 : _options$.value)
37
+ }, options === null || options === void 0 ? void 0 : options.map(opt => /*#__PURE__*/_react.default.createElement(_picker.Picker.Item, {
38
+ value: opt.value,
39
+ key: opt.value
40
+ }, ' ', opt.label, ' '))), type === 'input' && /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
41
+ value: value,
42
+ placeholder: placeholder,
43
+ onChangeText: onChange
44
+ }));
45
+ }
46
+ //# sourceMappingURL=form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["renderField","id","label","name","type","value","placeholder","options","onChange","map","opt"],"sources":["form.tsx"],"sourcesContent":["import { Text, TextInput } from 'react-native';\nimport { Picker } from '@react-native-picker/picker';\nimport React from 'react';\n\ntype FormFieldProps = {\n id?: string;\n name: string;\n value?: string;\n type?: string;\n label?: string;\n placeholder?: string;\n options?:\n | [\n {\n value: string;\n label: string;\n }\n ]\n | null;\n onChange?: (value: string) => void;\n};\n\nexport function renderField({\n id,\n label = '',\n name,\n type = 'input',\n value,\n placeholder,\n options = null,\n onChange,\n}: FormFieldProps) {\n if (!id) {\n id = `rph-input-${name}`;\n }\n\n return (\n <>\n {label && <Text>{label}</Text>}\n\n {type === 'select' && (\n <Picker\n onValueChange={onChange}\n selectedValue={value || options?.[0]?.value}\n >\n {options?.map((opt) => (\n <Picker.Item value={opt.value} key={opt.value}>\n {' '}\n {opt.label}{' '}\n </Picker.Item>\n ))}\n </Picker>\n )}\n\n {type === 'input' && (\n <TextInput\n value={value}\n placeholder={placeholder}\n onChangeText={onChange}\n />\n )}\n </>\n );\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAoBO,SAASA,WAAT,OASY;EAAA;;EAAA,IATS;IAC1BC,EAD0B;IAE1BC,KAAK,GAAG,EAFkB;IAG1BC,IAH0B;IAI1BC,IAAI,GAAG,OAJmB;IAK1BC,KAL0B;IAM1BC,WAN0B;IAO1BC,OAAO,GAAG,IAPgB;IAQ1BC;EAR0B,CAST;;EACjB,IAAI,CAACP,EAAL,EAAS;IACPA,EAAE,GAAI,aAAYE,IAAK,EAAvB;EACD;;EAED,oBACE,4DACGD,KAAK,iBAAI,6BAAC,iBAAD,QAAOA,KAAP,CADZ,EAGGE,IAAI,KAAK,QAAT,iBACC,6BAAC,cAAD;IACE,aAAa,EAAEI,QADjB;IAEE,aAAa,EAAEH,KAAK,KAAIE,OAAJ,aAAIA,OAAJ,oCAAIA,OAAO,CAAG,CAAH,CAAX,8CAAI,UAAcF,KAAlB;EAFtB,GAIGE,OAJH,aAIGA,OAJH,uBAIGA,OAAO,CAAEE,GAAT,CAAcC,GAAD,iBACZ,6BAAC,cAAD,CAAQ,IAAR;IAAa,KAAK,EAAEA,GAAG,CAACL,KAAxB;IAA+B,GAAG,EAAEK,GAAG,CAACL;EAAxC,GACG,GADH,EAEGK,GAAG,CAACR,KAFP,EAEc,GAFd,CADD,CAJH,CAJJ,EAiBGE,IAAI,KAAK,OAAT,iBACC,6BAAC,sBAAD;IACE,KAAK,EAAEC,KADT;IAEE,WAAW,EAAEC,WAFf;IAGE,YAAY,EAAEE;EAHhB,EAlBJ,CADF;AA2BD"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+
10
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
11
+
12
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
13
+
14
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
15
+
16
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
17
+
18
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
19
+
20
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
21
+
22
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
23
+
24
+ // import { logger } from "./utils/log";
25
+ let count = 0;
26
+
27
+ var _items = /*#__PURE__*/new WeakMap();
28
+
29
+ class Queue {
30
+ constructor() {
31
+ _classPrivateFieldInitSpec(this, _items, {
32
+ writable: true,
33
+ value: void 0
34
+ });
35
+
36
+ _classPrivateFieldSet(this, _items, []);
37
+ }
38
+
39
+ enqueue(item) {
40
+ _classPrivateFieldGet(this, _items).push(item);
41
+ }
42
+
43
+ dequeue() {
44
+ return _classPrivateFieldGet(this, _items).shift();
45
+ }
46
+
47
+ get size() {
48
+ return _classPrivateFieldGet(this, _items).length;
49
+ }
50
+
51
+ }
52
+
53
+ var _pendingPromise = /*#__PURE__*/new WeakMap();
54
+
55
+ class AutoQueue extends Queue {
56
+ constructor() {
57
+ super();
58
+
59
+ _defineProperty(this, "_cache", void 0);
60
+
61
+ _classPrivateFieldInitSpec(this, _pendingPromise, {
62
+ writable: true,
63
+ value: void 0
64
+ });
65
+
66
+ _classPrivateFieldSet(this, _pendingPromise, false);
67
+
68
+ this._cache = {};
69
+ }
70
+
71
+ enqueue(action) {
72
+ return new Promise((resolve, reject) => {
73
+ super.enqueue({
74
+ action,
75
+ resolve,
76
+ reject,
77
+ count: count++
78
+ }); // logger.log('queued', count);
79
+
80
+ this.dequeue();
81
+ });
82
+ }
83
+
84
+ async dequeue() {
85
+ if (_classPrivateFieldGet(this, _pendingPromise)) return false;
86
+ const item = super.dequeue();
87
+
88
+ if (!item) {
89
+ this._cache = {};
90
+ return false;
91
+ } // logger.log('dequeued', item.count);
92
+
93
+
94
+ try {
95
+ _classPrivateFieldSet(this, _pendingPromise, true);
96
+
97
+ const payload = await item.action(this);
98
+
99
+ _classPrivateFieldSet(this, _pendingPromise, false);
100
+
101
+ item.resolve(payload);
102
+ } catch (e) {
103
+ _classPrivateFieldSet(this, _pendingPromise, false);
104
+
105
+ item.reject(e);
106
+ } finally {
107
+ this.dequeue();
108
+ }
109
+
110
+ return true;
111
+ }
112
+
113
+ }
114
+
115
+ var _default = AutoQueue;
116
+ exports.default = _default;
117
+ //# sourceMappingURL=queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["count","Queue","constructor","enqueue","item","push","dequeue","shift","size","length","AutoQueue","_cache","action","Promise","resolve","reject","payload","e"],"sources":["queue.ts"],"sourcesContent":["// import { logger } from \"./utils/log\";\n\nlet count = 0;\n\ntype QueueItem = {\n action: () => Promise<any>;\n resolve: (value?: any) => void;\n reject: (reason?: any) => void;\n count: number;\n};\n\nclass Queue {\n #_items: any[];\n constructor() {\n this.#_items = [];\n }\n enqueue(item: QueueItem | (() => Promise<any>)) {\n this.#_items.push(item);\n }\n dequeue(): any {\n return this.#_items.shift();\n }\n get size() {\n return this.#_items.length;\n }\n}\n\nclass AutoQueue<T> extends Queue {\n _cache: Record<string, unknown>;\n #_pendingPromise: boolean;\n constructor() {\n super();\n this.#_pendingPromise = false;\n this._cache = {};\n }\n\n enqueue(action: () => Promise<any>): Promise<T> {\n return new Promise((resolve, reject) => {\n super.enqueue({ action, resolve, reject, count: count++ });\n // logger.log('queued', count);\n this.dequeue();\n });\n }\n\n async dequeue() {\n if (this.#_pendingPromise) return false;\n\n const item = super.dequeue();\n\n if (!item) {\n this._cache = {};\n return false;\n }\n\n // logger.log('dequeued', item.count);\n\n try {\n this.#_pendingPromise = true;\n\n const payload = await item.action(this);\n\n this.#_pendingPromise = false;\n item.resolve(payload);\n } catch (e) {\n this.#_pendingPromise = false;\n item.reject(e);\n } finally {\n this.dequeue();\n }\n\n return true;\n }\n}\n\nexport default AutoQueue;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAEA,IAAIA,KAAK,GAAG,CAAZ;;;;AASA,MAAMC,KAAN,CAAY;EAEVC,WAAW,GAAG;IAAA;MAAA;MAAA;IAAA;;IACZ,oCAAe,EAAf;EACD;;EACDC,OAAO,CAACC,IAAD,EAAyC;IAC9C,oCAAaC,IAAb,CAAkBD,IAAlB;EACD;;EACDE,OAAO,GAAQ;IACb,OAAO,oCAAaC,KAAb,EAAP;EACD;;EACO,IAAJC,IAAI,GAAG;IACT,OAAO,oCAAaC,MAApB;EACD;;AAbS;;;;AAgBZ,MAAMC,SAAN,SAA2BT,KAA3B,CAAiC;EAG/BC,WAAW,GAAG;IACZ;;IADY;;IAAA;MAAA;MAAA;IAAA;;IAEZ,6CAAwB,KAAxB;;IACA,KAAKS,MAAL,GAAc,EAAd;EACD;;EAEDR,OAAO,CAACS,MAAD,EAAyC;IAC9C,OAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtC,MAAMZ,OAAN,CAAc;QAAES,MAAF;QAAUE,OAAV;QAAmBC,MAAnB;QAA2Bf,KAAK,EAAEA,KAAK;MAAvC,CAAd,EADsC,CAEtC;;MACA,KAAKM,OAAL;IACD,CAJM,CAAP;EAKD;;EAEY,MAAPA,OAAO,GAAG;IACd,0BAAI,IAAJ,oBAA2B,OAAO,KAAP;IAE3B,MAAMF,IAAI,GAAG,MAAME,OAAN,EAAb;;IAEA,IAAI,CAACF,IAAL,EAAW;MACT,KAAKO,MAAL,GAAc,EAAd;MACA,OAAO,KAAP;IACD,CARa,CAUd;;;IAEA,IAAI;MACF,6CAAwB,IAAxB;;MAEA,MAAMK,OAAO,GAAG,MAAMZ,IAAI,CAACQ,MAAL,CAAY,IAAZ,CAAtB;;MAEA,6CAAwB,KAAxB;;MACAR,IAAI,CAACU,OAAL,CAAaE,OAAb;IACD,CAPD,CAOE,OAAOC,CAAP,EAAU;MACV,6CAAwB,KAAxB;;MACAb,IAAI,CAACW,MAAL,CAAYE,CAAZ;IACD,CAVD,SAUU;MACR,KAAKX,OAAL;IACD;;IAED,OAAO,IAAP;EACD;;AA5C8B;;eA+ClBI,S"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _reactNativeMmkv = require("react-native-mmkv");
9
+
10
+ const storage = new _reactNativeMmkv.MMKV({
11
+ id: 'rownd-storage'
12
+ });
13
+ var _default = storage;
14
+ exports.default = _default;
15
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["storage","MMKV","id"],"sources":["storage.ts"],"sourcesContent":["import { MMKV } from 'react-native-mmkv';\n\nconst storage = new MMKV({\n id: 'rownd-storage',\n});\n\nexport default storage;\n"],"mappings":";;;;;;;AAAA;;AAEA,MAAMA,OAAO,GAAG,IAAIC,qBAAJ,CAAS;EACvBC,EAAE,EAAE;AADmB,CAAT,CAAhB;eAIeF,O"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _twrnc = require("twrnc");
9
+
10
+ var _tailwindConfig = _interopRequireDefault(require("../../tailwind.config.js"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ const tw = (0, _twrnc.create)(_tailwindConfig.default);
15
+ var _default = tw;
16
+ exports.default = _default;
17
+ //# sourceMappingURL=tailwind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["tw","create","twConfig"],"sources":["tailwind.ts"],"sourcesContent":["import { create } from 'twrnc';\nimport twConfig from '../../tailwind.config.js';\n\nconst tw = create(twConfig);\n\nexport default tw;\n"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,MAAMA,EAAE,GAAG,IAAAC,aAAA,EAAOC,uBAAP,CAAX;eAEeF,E"}