@kaspernj/api-maker 1.0.446 → 1.0.447

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 (357) hide show
  1. package/{.eslintrc.cjs → .eslintrc.js} +4 -0
  2. package/README.md +35 -0
  3. package/android/build.gradle +43 -0
  4. package/android/src/main/AndroidManifest.xml +2 -0
  5. package/android/src/main/java/expo/modules/api_maker/ApiMakerModule.kt +50 -0
  6. package/android/src/main/java/expo/modules/api_maker/ApiMakerView.kt +30 -0
  7. package/build/api.js +120 -0
  8. package/build/attribute-not-loaded-error.js +2 -0
  9. package/build/base-component.js +5 -0
  10. package/build/base-error.js +33 -0
  11. package/build/base-model/attribute.js +25 -0
  12. package/build/base-model/column.js +11 -0
  13. package/build/base-model/reflection.js +14 -0
  14. package/build/base-model/scope.js +11 -0
  15. package/build/base-model.js +828 -0
  16. package/build/bootstrap/attribute-row/index.js +105 -0
  17. package/build/bootstrap/attribute-rows.js +31 -0
  18. package/build/bootstrap/card.js +138 -0
  19. package/build/bootstrap/checkbox.js +97 -0
  20. package/build/bootstrap/checkboxes.js +183 -0
  21. package/build/bootstrap/index.js +2 -0
  22. package/build/bootstrap/input.js +128 -0
  23. package/build/bootstrap/invalid-feedback.js +27 -0
  24. package/build/bootstrap/paginate.js +150 -0
  25. package/build/bootstrap/radio-buttons.js +72 -0
  26. package/build/bootstrap/select.js +88 -0
  27. package/build/bootstrap/sort-link.js +130 -0
  28. package/build/cable-connection-pool.js +128 -0
  29. package/build/cable-subscription-pool.js +207 -0
  30. package/build/cable-subscription.js +21 -0
  31. package/build/cache-key-generator.js +81 -0
  32. package/build/can-can.js +134 -0
  33. package/build/channels-consumer.js +3 -0
  34. package/build/collection-loader.js +48 -0
  35. package/build/collection.js +279 -0
  36. package/build/command-submit-data.js +81 -0
  37. package/build/commands-pool.js +195 -0
  38. package/build/compose.js +9 -0
  39. package/build/config.js +53 -0
  40. package/build/custom-error.js +5 -0
  41. package/build/data-set-to-attributes.js +10 -0
  42. package/build/deserializer.js +56 -0
  43. package/build/destroy-error.js +5 -0
  44. package/build/devise.js +109 -0
  45. package/build/draggable-sort/controller.js +136 -0
  46. package/build/draggable-sort/index.js +114 -0
  47. package/build/draggable-sort/item.js +188 -0
  48. package/build/error-logger.js +101 -0
  49. package/build/error-messages.js +13 -0
  50. package/build/event-connection.js +32 -0
  51. package/build/event-model-class.js +24 -0
  52. package/build/events.js +5 -0
  53. package/build/form.js +83 -0
  54. package/build/index.js +3 -0
  55. package/build/inputs/attachment.js +121 -0
  56. package/build/inputs/auto-submit.js +36 -0
  57. package/build/inputs/checkbox.js +145 -0
  58. package/build/inputs/checkboxes.js +111 -0
  59. package/build/inputs/id-for-component.js +15 -0
  60. package/build/inputs/input-wrapper.js +18 -0
  61. package/build/inputs/input.js +230 -0
  62. package/build/inputs/money.js +179 -0
  63. package/build/inputs/name-for-component.js +13 -0
  64. package/build/inputs/select.js +92 -0
  65. package/build/instance-of-class-name.js +23 -0
  66. package/build/key-value-store.js +53 -0
  67. package/build/link.js +68 -0
  68. package/build/logger.js +30 -0
  69. package/build/modal.js +37 -0
  70. package/build/model-class-require.js +13 -0
  71. package/build/model-events.js +30 -0
  72. package/build/model-name.js +28 -0
  73. package/build/model-prop-type.js +101 -0
  74. package/build/model-recipes-loader.js +32 -0
  75. package/build/model-recipes-model-loader.js +357 -0
  76. package/build/models-response-reader.js +40 -0
  77. package/build/models.js +8 -0
  78. package/build/money-formatter.js +77 -0
  79. package/build/not-loaded-error.js +2 -0
  80. package/build/params.js +60 -0
  81. package/build/preloaded.js +38 -0
  82. package/build/resize-observer.js +11 -0
  83. package/build/result.js +13 -0
  84. package/build/router/route.js +262 -0
  85. package/build/router/switch.js +72 -0
  86. package/build/router.js +57 -0
  87. package/build/routes-native.js +202 -0
  88. package/build/routes.js +50 -0
  89. package/build/run-last.js +35 -0
  90. package/build/serializer.js +63 -0
  91. package/build/services.js +20 -0
  92. package/build/session-status-updater.js +126 -0
  93. package/build/source-maps-loader.js +171 -0
  94. package/build/super-admin/config-reader.js +84 -0
  95. package/build/super-admin/edit-page/edit-attribute-checkbox.js +85 -0
  96. package/build/super-admin/edit-page/edit-attribute-content.js +54 -0
  97. package/build/super-admin/edit-page/edit-attribute-input.js +79 -0
  98. package/build/super-admin/edit-page/edit-attribute.js +76 -0
  99. package/build/super-admin/edit-page.js +120 -0
  100. package/build/super-admin/has-edit-config.js +12 -0
  101. package/build/super-admin/index-page.js +24 -0
  102. package/build/super-admin/index.js +180 -0
  103. package/build/super-admin/layout/header/index.js +151 -0
  104. package/build/super-admin/layout/index.js +109 -0
  105. package/build/super-admin/layout/menu/index.js +93 -0
  106. package/build/super-admin/layout/menu/menu-content.js +40 -0
  107. package/build/super-admin/layout/menu/menu-item.js +83 -0
  108. package/build/super-admin/layout/no-access.js +25 -0
  109. package/build/super-admin/model-class-table.js +61 -0
  110. package/build/super-admin/models.js +8 -0
  111. package/build/super-admin/show-nav.js +49 -0
  112. package/build/super-admin/show-page/belongs-to-attribute-row.js +28 -0
  113. package/build/super-admin/show-page/index.js +141 -0
  114. package/build/super-admin/show-reflection-actions.js +47 -0
  115. package/build/super-admin/show-reflection-link.js +46 -0
  116. package/build/super-admin/show-reflection-page.js +47 -0
  117. package/build/table/column-content.js +112 -0
  118. package/build/table/column-identifier.js +18 -0
  119. package/build/table/column-visible.js +7 -0
  120. package/build/table/components/column.js +20 -0
  121. package/build/table/components/flat-list.js +20 -0
  122. package/build/table/components/header.js +25 -0
  123. package/build/table/components/row.js +25 -0
  124. package/build/table/filters/attribute-element.js +43 -0
  125. package/build/table/filters/filter-form.js +392 -0
  126. package/build/table/filters/filter.js +89 -0
  127. package/build/table/filters/index.js +182 -0
  128. package/build/table/filters/load-search-modal.js +174 -0
  129. package/build/table/filters/reflection-element.js +36 -0
  130. package/build/table/filters/save-search-modal.js +86 -0
  131. package/build/table/filters/scope-element.js +41 -0
  132. package/build/table/header-column-content.js +67 -0
  133. package/build/table/header-column.js +144 -0
  134. package/build/table/header-select.js +104 -0
  135. package/build/table/model-callback-args.js +10 -0
  136. package/build/table/model-column.js +87 -0
  137. package/build/table/model-row.js +179 -0
  138. package/build/table/select-calculator.js +63 -0
  139. package/build/table/settings/column-row.js +97 -0
  140. package/build/table/settings/download-action.js +78 -0
  141. package/build/table/settings/index.js +92 -0
  142. package/build/table/table-settings.js +219 -0
  143. package/build/table/table.js +972 -0
  144. package/build/table/use-sorting.js +34 -0
  145. package/build/table/widths.js +75 -0
  146. package/build/table/worker-plugins-check-all-checkbox.js +125 -0
  147. package/build/table/worker-plugins-checkbox.js +115 -0
  148. package/build/translated-attributes.js +10 -0
  149. package/build/translated-collections.js +11 -0
  150. package/build/updated-attribute.js +76 -0
  151. package/build/url-encode.js +15 -0
  152. package/build/use-breakpoint.js +44 -0
  153. package/build/use-can-can.js +55 -0
  154. package/build/use-collection.js +225 -0
  155. package/build/use-created-event.js +52 -0
  156. package/build/use-current-user.js +73 -0
  157. package/build/use-destroyed-event.js +60 -0
  158. package/build/use-event-emitter.js +13 -0
  159. package/build/use-event-listener.js +16 -0
  160. package/build/use-input.js +140 -0
  161. package/build/use-model-event.js +60 -0
  162. package/build/use-model.js +169 -0
  163. package/build/use-resize-observer.js +23 -0
  164. package/build/use-router.js +102 -0
  165. package/build/use-screen-layout.js +39 -0
  166. package/build/use-updated-event.js +60 -0
  167. package/build/use-validation-errors.js +30 -0
  168. package/build/utils/card.js +51 -0
  169. package/build/utils/checkbox.js +48 -0
  170. package/build/utils/default-style.js +18 -0
  171. package/build/utils/modal.js +61 -0
  172. package/build/utils/text.js +18 -0
  173. package/build/validation-error.js +28 -0
  174. package/build/validation-errors.js +98 -0
  175. package/build/with-collection.js +13 -0
  176. package/build/with-current-user.js +9 -0
  177. package/build/with-model.js +14 -0
  178. package/build/with-router.js +21 -0
  179. package/expo-module.config.json +17 -0
  180. package/ios/ApiMaker.podspec +29 -0
  181. package/ios/ApiMakerModule.swift +48 -0
  182. package/ios/ApiMakerView.swift +38 -0
  183. package/package.json +35 -15
  184. package/src/{api.mjs → api.js} +5 -5
  185. package/src/{base-error.mjs → base-error.js} +1 -1
  186. package/src/base-model/{attribute.mjs → attribute.js} +1 -1
  187. package/src/base-model/{reflection.mjs → reflection.js} +1 -1
  188. package/src/{base-model.mjs → base-model.js} +14 -14
  189. package/src/bootstrap/attribute-row/index.jsx +2 -2
  190. package/src/bootstrap/attribute-rows.jsx +1 -1
  191. package/src/bootstrap/card.jsx +1 -1
  192. package/src/bootstrap/checkbox.jsx +1 -1
  193. package/src/bootstrap/checkboxes.jsx +1 -1
  194. package/src/bootstrap/input.jsx +1 -1
  195. package/src/bootstrap/paginate.jsx +2 -2
  196. package/src/bootstrap/sort-link.jsx +3 -3
  197. package/src/{cable-connection-pool.mjs → cable-connection-pool.js} +3 -3
  198. package/src/{cable-subscription-pool.mjs → cable-subscription-pool.js} +4 -4
  199. package/src/{cable-subscription.mjs → cable-subscription.js} +1 -1
  200. package/src/{can-can.mjs → can-can.js} +1 -1
  201. package/src/collection-loader.jsx +2 -2
  202. package/src/{collection.mjs → collection.js} +3 -3
  203. package/src/{commands-pool.mjs → commands-pool.js} +11 -11
  204. package/src/{custom-error.mjs → custom-error.js} +1 -1
  205. package/src/{deserializer.mjs → deserializer.js} +2 -2
  206. package/src/{destroy-error.mjs → destroy-error.js} +1 -1
  207. package/src/{devise.mjs → devise.js} +5 -9
  208. package/src/draggable-sort/index.jsx +3 -3
  209. package/src/draggable-sort/item.jsx +2 -2
  210. package/src/{error-logger.mjs → error-logger.js} +1 -1
  211. package/src/event-connection.jsx +1 -1
  212. package/src/event-model-class.jsx +1 -1
  213. package/src/form.jsx +1 -1
  214. package/src/index.js +3 -0
  215. package/src/inputs/attachment.jsx +2 -2
  216. package/src/inputs/checkbox.jsx +7 -6
  217. package/src/inputs/checkboxes.jsx +1 -1
  218. package/src/inputs/input-wrapper.jsx +1 -1
  219. package/src/inputs/input.jsx +8 -7
  220. package/src/inputs/money.jsx +3 -3
  221. package/src/inputs/select.jsx +1 -1
  222. package/src/{key-value-store.mjs → key-value-store.js} +1 -1
  223. package/src/link.jsx +2 -2
  224. package/src/modal.jsx +1 -1
  225. package/src/{model-class-require.mjs → model-class-require.js} +4 -2
  226. package/src/{model-events.mjs → model-events.js} +1 -1
  227. package/src/{model-name.mjs → model-name.js} +1 -1
  228. package/src/{model-recipes-loader.mjs → model-recipes-loader.js} +1 -1
  229. package/src/{model-recipes-model-loader.mjs → model-recipes-model-loader.js} +2 -2
  230. package/src/{models-response-reader.mjs → models-response-reader.js} +2 -2
  231. package/src/models.js +7 -0
  232. package/src/{models.mjs.erb → models.js.erb} +1 -1
  233. package/src/{params.mjs → params.js} +2 -2
  234. package/src/{preloaded.mjs → preloaded.js} +1 -1
  235. package/src/resize-observer.jsx +1 -1
  236. package/src/router/route.jsx +1 -1
  237. package/src/router/switch.jsx +1 -1
  238. package/src/router.jsx +1 -1
  239. package/src/{routes-native.mjs → routes-native.js} +1 -1
  240. package/src/{services.mjs → services.js} +1 -1
  241. package/src/{session-status-updater.mjs → session-status-updater.js} +3 -3
  242. package/src/{source-maps-loader.mjs → source-maps-loader.js} +1 -1
  243. package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +1 -1
  244. package/src/super-admin/edit-page/edit-attribute-content.jsx +1 -1
  245. package/src/super-admin/edit-page/edit-attribute-input.jsx +1 -1
  246. package/src/super-admin/edit-page/edit-attribute.jsx +1 -1
  247. package/src/super-admin/edit-page.jsx +2 -2
  248. package/src/super-admin/has-edit-config.js +1 -1
  249. package/src/super-admin/index-page.jsx +1 -1
  250. package/src/super-admin/index.jsx +7 -7
  251. package/src/super-admin/layout/header/index.jsx +2 -2
  252. package/src/super-admin/layout/index.jsx +3 -3
  253. package/src/super-admin/layout/menu/index.jsx +3 -3
  254. package/src/super-admin/layout/menu/menu-content.jsx +2 -2
  255. package/src/super-admin/layout/menu/{menu-item/index.jsx → menu-item.jsx} +5 -6
  256. package/src/super-admin/layout/no-access.jsx +2 -2
  257. package/src/super-admin/model-class-table.jsx +3 -3
  258. package/src/super-admin/models.js +1 -1
  259. package/src/super-admin/show-nav.jsx +2 -2
  260. package/src/super-admin/show-page/belongs-to-attribute-row.jsx +1 -1
  261. package/src/super-admin/show-page/index.jsx +2 -2
  262. package/src/super-admin/show-reflection-actions.jsx +1 -1
  263. package/src/super-admin/show-reflection-link.jsx +1 -1
  264. package/src/super-admin/show-reflection-page.jsx +1 -1
  265. package/src/table/column-content.jsx +1 -1
  266. package/src/table/filters/filter-form.jsx +1 -1
  267. package/src/table/filters/index.jsx +5 -3
  268. package/src/table/filters/load-search-modal.jsx +6 -4
  269. package/src/table/filters/save-search-modal.jsx +4 -4
  270. package/src/table/header-select.jsx +1 -1
  271. package/src/table/model-column.jsx +1 -1
  272. package/src/table/model-row.jsx +2 -2
  273. package/src/table/{select-calculator.mjs → select-calculator.js} +1 -1
  274. package/src/table/settings/column-row.jsx +2 -2
  275. package/src/table/settings/download-action.jsx +3 -3
  276. package/src/table/settings/index.jsx +3 -3
  277. package/src/table/table-settings.js +5 -4
  278. package/src/table/table.jsx +8 -8
  279. package/src/table/{use-sorting.mjs → use-sorting.js} +1 -1
  280. package/src/table/worker-plugins-check-all-checkbox.jsx +2 -2
  281. package/src/table/worker-plugins-checkbox.jsx +2 -2
  282. package/src/{translated-collections.mjs → translated-collections.js} +1 -1
  283. package/src/updated-attribute.jsx +1 -1
  284. package/src/{use-breakpoint.mjs → use-breakpoint.js} +2 -2
  285. package/src/use-can-can.js +55 -0
  286. package/src/{use-collection.mjs → use-collection.js} +4 -4
  287. package/src/{use-created-event.mjs → use-created-event.js} +2 -2
  288. package/src/{use-current-user.mjs → use-current-user.js} +6 -5
  289. package/src/{use-destroyed-event.mjs → use-destroyed-event.js} +2 -2
  290. package/src/{use-input.mjs → use-input.js} +5 -5
  291. package/src/use-model-event.js +2 -2
  292. package/src/{use-model.mjs → use-model.js} +4 -4
  293. package/src/{use-resize-observer.mjs → use-resize-observer.js} +1 -1
  294. package/src/use-router.jsx +2 -2
  295. package/src/{use-updated-event.mjs → use-updated-event.js} +2 -2
  296. package/src/{use-validation-errors.mjs → use-validation-errors.js} +3 -3
  297. package/src/utils/checkbox.jsx +2 -2
  298. package/src/{validation-error.mjs → validation-error.js} +1 -1
  299. package/src/{validation-errors.mjs → validation-errors.js} +1 -1
  300. package/src/with-current-user.jsx +1 -1
  301. package/src/with-model.jsx +1 -1
  302. package/__tests__/base-model.test.mjs +0 -71
  303. package/__tests__/cable-connection-pool.test.mjs +0 -227
  304. package/__tests__/cable-subscription-pool.test.mjs +0 -27
  305. package/__tests__/can-can.test.mjs +0 -34
  306. package/__tests__/collection.test.mjs +0 -51
  307. package/__tests__/custom-error.test.mjs +0 -13
  308. package/__tests__/model-name.test.mjs +0 -34
  309. package/__tests__/model-prop-type.test.mjs +0 -113
  310. package/__tests__/params.test.mjs +0 -40
  311. package/__tests__/routes-native.test.mjs +0 -104
  312. package/__tests__/routes.test.mjs +0 -47
  313. package/__tests__/serializer.test.mjs +0 -30
  314. package/__tests__/support/task.mjs +0 -27
  315. package/__tests__/support/user.mjs +0 -32
  316. package/index.js +0 -1
  317. package/jest.config.js +0 -9
  318. package/src/event-created.jsx +0 -12
  319. package/src/event-destroyed.jsx +0 -25
  320. package/src/event-emitter-listener.jsx +0 -10
  321. package/src/event-listener.jsx +0 -25
  322. package/src/event-updated.jsx +0 -27
  323. package/src/super-admin/layout/menu/menu-item/style.scss +0 -10
  324. package/src/use-can-can.mjs +0 -48
  325. package/src/with-can-can.jsx +0 -12
  326. package/webpack.config.js +0 -15
  327. /package/src/{attribute-not-loaded-error.mjs → attribute-not-loaded-error.js} +0 -0
  328. /package/src/base-model/{column.mjs → column.js} +0 -0
  329. /package/src/base-model/{scope.mjs → scope.js} +0 -0
  330. /package/src/{cache-key-generator.mjs → cache-key-generator.js} +0 -0
  331. /package/src/{channels-consumer.mjs → channels-consumer.js} +0 -0
  332. /package/src/{command-submit-data.mjs → command-submit-data.js} +0 -0
  333. /package/src/{config.mjs → config.js} +0 -0
  334. /package/src/{data-set-to-attributes.mjs → data-set-to-attributes.js} +0 -0
  335. /package/src/draggable-sort/{controller.mjs → controller.js} +0 -0
  336. /package/src/{error-messages.mjs → error-messages.js} +0 -0
  337. /package/src/{events.mjs → events.js} +0 -0
  338. /package/src/inputs/{auto-submit.mjs → auto-submit.js} +0 -0
  339. /package/src/inputs/{id-for-component.mjs → id-for-component.js} +0 -0
  340. /package/src/inputs/{name-for-component.mjs → name-for-component.js} +0 -0
  341. /package/src/{instance-of-class-name.mjs → instance-of-class-name.js} +0 -0
  342. /package/src/{logger.mjs → logger.js} +0 -0
  343. /package/src/{model-prop-type.mjs → model-prop-type.js} +0 -0
  344. /package/src/{money-formatter.mjs → money-formatter.js} +0 -0
  345. /package/src/{not-loaded-error.mjs → not-loaded-error.js} +0 -0
  346. /package/src/{result.mjs → result.js} +0 -0
  347. /package/src/{routes.mjs → routes.js} +0 -0
  348. /package/src/{run-last.mjs → run-last.js} +0 -0
  349. /package/src/{serializer.mjs → serializer.js} +0 -0
  350. /package/src/table/{column-identifier.mjs → column-identifier.js} +0 -0
  351. /package/src/table/{column-visible.mjs → column-visible.js} +0 -0
  352. /package/src/table/{model-callback-args.mjs → model-callback-args.js} +0 -0
  353. /package/src/{translated-collections-data.mjs.erb → translated-collections-data.js.erb} +0 -0
  354. /package/src/{url-encode.mjs → url-encode.js} +0 -0
  355. /package/src/{use-event-emitter.mjs → use-event-emitter.js} +0 -0
  356. /package/src/{use-event-listener.mjs → use-event-listener.js} +0 -0
  357. /package/src/{use-screen-layout.mjs → use-screen-layout.js} +0 -0
@@ -0,0 +1,23 @@
1
+ import { digg } from "diggerize";
2
+ const propTypesValidator = (expectedClassName, args = {}) => (props, propName, componentName) => {
3
+ const prop = digg(props, propName);
4
+ if (!prop) {
5
+ if (args.required) {
6
+ return new Error(`The prop \`${propName}\` is marked as required in \`${componentName}\`, but its value is \`${typeof prop}\`.`);
7
+ }
8
+ return;
9
+ }
10
+ const className = digg(prop, "constructor", "name");
11
+ if (className != expectedClassName) {
12
+ return new Error(`Invalid prop '${propName}' passed to '${componentName}'. Expected a class name of '${expectedClassName}' but got '${className}'.`);
13
+ }
14
+ };
15
+ const instanceOfClassName = expectedClassName => {
16
+ const validator = propTypesValidator(expectedClassName);
17
+ validator.isRequired = propTypesValidator(expectedClassName, {
18
+ required: true
19
+ });
20
+ return validator;
21
+ };
22
+ export default instanceOfClassName;
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwicHJvcFR5cGVzVmFsaWRhdG9yIiwiZXhwZWN0ZWRDbGFzc05hbWUiLCJhcmdzIiwicHJvcHMiLCJwcm9wTmFtZSIsImNvbXBvbmVudE5hbWUiLCJwcm9wIiwicmVxdWlyZWQiLCJFcnJvciIsImNsYXNzTmFtZSIsImluc3RhbmNlT2ZDbGFzc05hbWUiLCJ2YWxpZGF0b3IiLCJpc1JlcXVpcmVkIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luc3RhbmNlLW9mLWNsYXNzLW5hbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcblxuY29uc3QgcHJvcFR5cGVzVmFsaWRhdG9yID0gKGV4cGVjdGVkQ2xhc3NOYW1lLCBhcmdzID0ge30pID0+IChwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUpID0+IHtcbiAgY29uc3QgcHJvcCA9IGRpZ2cocHJvcHMsIHByb3BOYW1lKVxuXG4gIGlmICghcHJvcCkge1xuICAgIGlmIChhcmdzLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gbmV3IEVycm9yKGBUaGUgcHJvcCBcXGAke3Byb3BOYW1lfVxcYCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQgaW4gXFxgJHtjb21wb25lbnROYW1lfVxcYCwgYnV0IGl0cyB2YWx1ZSBpcyBcXGAke3R5cGVvZiBwcm9wfVxcYC5gKVxuICAgIH1cblxuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgY2xhc3NOYW1lID0gZGlnZyhwcm9wLCBcImNvbnN0cnVjdG9yXCIsIFwibmFtZVwiKVxuXG4gIGlmIChjbGFzc05hbWUgIT0gZXhwZWN0ZWRDbGFzc05hbWUpIHtcbiAgICByZXR1cm4gbmV3IEVycm9yKGBJbnZhbGlkIHByb3AgJyR7cHJvcE5hbWV9JyBwYXNzZWQgdG8gJyR7Y29tcG9uZW50TmFtZX0nLiBFeHBlY3RlZCBhIGNsYXNzIG5hbWUgb2YgJyR7ZXhwZWN0ZWRDbGFzc05hbWV9JyBidXQgZ290ICcke2NsYXNzTmFtZX0nLmApXG4gIH1cbn1cblxuY29uc3QgaW5zdGFuY2VPZkNsYXNzTmFtZSA9IChleHBlY3RlZENsYXNzTmFtZSkgPT4ge1xuICBjb25zdCB2YWxpZGF0b3IgPSBwcm9wVHlwZXNWYWxpZGF0b3IoZXhwZWN0ZWRDbGFzc05hbWUpXG5cbiAgdmFsaWRhdG9yLmlzUmVxdWlyZWQgPSBwcm9wVHlwZXNWYWxpZGF0b3IoZXhwZWN0ZWRDbGFzc05hbWUsIHtyZXF1aXJlZDogdHJ1ZX0pXG5cbiAgcmV0dXJuIHZhbGlkYXRvclxufVxuXG5leHBvcnQgZGVmYXVsdCBpbnN0YW5jZU9mQ2xhc3NOYW1lXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLElBQUksUUFBTyxXQUFXO0FBRTlCLE1BQU1DLGtCQUFrQixHQUFHQSxDQUFDQyxpQkFBaUIsRUFBRUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUNDLEtBQUssRUFBRUMsUUFBUSxFQUFFQyxhQUFhLEtBQUs7RUFDL0YsTUFBTUMsSUFBSSxHQUFHUCxJQUFJLENBQUNJLEtBQUssRUFBRUMsUUFBUSxDQUFDO0VBRWxDLElBQUksQ0FBQ0UsSUFBSSxFQUFFO0lBQ1QsSUFBSUosSUFBSSxDQUFDSyxRQUFRLEVBQUU7TUFDakIsT0FBTyxJQUFJQyxLQUFLLENBQUMsY0FBY0osUUFBUSxpQ0FBaUNDLGFBQWEsMEJBQTBCLE9BQU9DLElBQUksS0FBSyxDQUFDO0lBQ2xJO0lBRUE7RUFDRjtFQUVBLE1BQU1HLFNBQVMsR0FBR1YsSUFBSSxDQUFDTyxJQUFJLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQztFQUVuRCxJQUFJRyxTQUFTLElBQUlSLGlCQUFpQixFQUFFO0lBQ2xDLE9BQU8sSUFBSU8sS0FBSyxDQUFDLGlCQUFpQkosUUFBUSxnQkFBZ0JDLGFBQWEsZ0NBQWdDSixpQkFBaUIsY0FBY1EsU0FBUyxJQUFJLENBQUM7RUFDdEo7QUFDRixDQUFDO0FBRUQsTUFBTUMsbUJBQW1CLEdBQUlULGlCQUFpQixJQUFLO0VBQ2pELE1BQU1VLFNBQVMsR0FBR1gsa0JBQWtCLENBQUNDLGlCQUFpQixDQUFDO0VBRXZEVSxTQUFTLENBQUNDLFVBQVUsR0FBR1osa0JBQWtCLENBQUNDLGlCQUFpQixFQUFFO0lBQUNNLFFBQVEsRUFBRTtFQUFJLENBQUMsQ0FBQztFQUU5RSxPQUFPSSxTQUFTO0FBQ2xCLENBQUM7QUFFRCxlQUFlRCxtQkFBbUIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,53 @@
1
+ import Params from "./params";
2
+ const shared = {};
3
+ export default class KeyValueStore {
4
+ static current() {
5
+ if (!shared.currentKeyValueStore) shared.currentKeyValueStore = new KeyValueStore();
6
+ return shared.currentKeyValueStore;
7
+ }
8
+ static get(key) {
9
+ return KeyValueStore.current().get(key);
10
+ }
11
+ static set(key, value) {
12
+ return KeyValueStore.current().set(key, value);
13
+ }
14
+ static async getCachedParams(paramName, args = {}) {
15
+ const oldQuery = await KeyValueStore.get(paramName);
16
+ const params = Params.parse();
17
+ if (params && paramName in params) {
18
+ return params[paramName];
19
+ } else if (oldQuery) {
20
+ return oldQuery;
21
+ } else {
22
+ return args.default || {};
23
+ }
24
+ }
25
+ static setCachedParams(paramName, qParams) {
26
+ return KeyValueStore.set(paramName, qParams);
27
+ }
28
+ constructor() {
29
+ this.database = new Dexie("KeyValueStoreDatabase");
30
+ this.database.version(1).stores({
31
+ keyValues: "++id, key, value"
32
+ });
33
+ }
34
+ async get(key) {
35
+ const row = await this.database.keyValues.where("key").equals(key).first();
36
+ if (row) return row.value;
37
+ }
38
+ async set(key, value) {
39
+ const row = await this.database.keyValues.where("key").equals(key).first();
40
+ if (row) {
41
+ await this.database.keyValues.update(row.id, {
42
+ value
43
+ });
44
+ } else {
45
+ await this.database.keyValues.add({
46
+ key,
47
+ value
48
+ });
49
+ }
50
+ return true;
51
+ }
52
+ }
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJhbXMiLCJzaGFyZWQiLCJLZXlWYWx1ZVN0b3JlIiwiY3VycmVudCIsImN1cnJlbnRLZXlWYWx1ZVN0b3JlIiwiZ2V0Iiwia2V5Iiwic2V0IiwidmFsdWUiLCJnZXRDYWNoZWRQYXJhbXMiLCJwYXJhbU5hbWUiLCJhcmdzIiwib2xkUXVlcnkiLCJwYXJhbXMiLCJwYXJzZSIsImRlZmF1bHQiLCJzZXRDYWNoZWRQYXJhbXMiLCJxUGFyYW1zIiwiY29uc3RydWN0b3IiLCJkYXRhYmFzZSIsIkRleGllIiwidmVyc2lvbiIsInN0b3JlcyIsImtleVZhbHVlcyIsInJvdyIsIndoZXJlIiwiZXF1YWxzIiwiZmlyc3QiLCJ1cGRhdGUiLCJpZCIsImFkZCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9rZXktdmFsdWUtc3RvcmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFBhcmFtcyBmcm9tIFwiLi9wYXJhbXNcIlxuXG5jb25zdCBzaGFyZWQgPSB7fVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBLZXlWYWx1ZVN0b3JlIHtcbiAgc3RhdGljIGN1cnJlbnQgKCkge1xuICAgIGlmICghc2hhcmVkLmN1cnJlbnRLZXlWYWx1ZVN0b3JlKSBzaGFyZWQuY3VycmVudEtleVZhbHVlU3RvcmUgPSBuZXcgS2V5VmFsdWVTdG9yZSgpXG5cbiAgICByZXR1cm4gc2hhcmVkLmN1cnJlbnRLZXlWYWx1ZVN0b3JlXG4gIH1cblxuICBzdGF0aWMgZ2V0IChrZXkpIHtcbiAgICByZXR1cm4gS2V5VmFsdWVTdG9yZS5jdXJyZW50KCkuZ2V0KGtleSlcbiAgfVxuXG4gIHN0YXRpYyBzZXQgKGtleSwgdmFsdWUpIHtcbiAgICByZXR1cm4gS2V5VmFsdWVTdG9yZS5jdXJyZW50KCkuc2V0KGtleSwgdmFsdWUpXG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0Q2FjaGVkUGFyYW1zIChwYXJhbU5hbWUsIGFyZ3MgPSB7fSkge1xuICAgIGNvbnN0IG9sZFF1ZXJ5ID0gYXdhaXQgS2V5VmFsdWVTdG9yZS5nZXQocGFyYW1OYW1lKVxuICAgIGNvbnN0IHBhcmFtcyA9IFBhcmFtcy5wYXJzZSgpXG5cbiAgICBpZiAocGFyYW1zICYmIHBhcmFtTmFtZSBpbiBwYXJhbXMpIHtcbiAgICAgIHJldHVybiBwYXJhbXNbcGFyYW1OYW1lXVxuICAgIH0gZWxzZSBpZiAob2xkUXVlcnkpIHtcbiAgICAgIHJldHVybiBvbGRRdWVyeVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXJncy5kZWZhdWx0IHx8IHt9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIHNldENhY2hlZFBhcmFtcyAocGFyYW1OYW1lLCBxUGFyYW1zKSB7XG4gICAgcmV0dXJuIEtleVZhbHVlU3RvcmUuc2V0KHBhcmFtTmFtZSwgcVBhcmFtcylcbiAgfVxuXG4gIGNvbnN0cnVjdG9yICgpIHtcbiAgICB0aGlzLmRhdGFiYXNlID0gbmV3IERleGllKFwiS2V5VmFsdWVTdG9yZURhdGFiYXNlXCIpXG4gICAgdGhpcy5kYXRhYmFzZS52ZXJzaW9uKDEpLnN0b3Jlcyh7XG4gICAgICBrZXlWYWx1ZXM6IFwiKytpZCwga2V5LCB2YWx1ZVwiXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldCAoa2V5KSB7XG4gICAgY29uc3Qgcm93ID0gYXdhaXQgdGhpcy5kYXRhYmFzZS5rZXlWYWx1ZXNcbiAgICAgIC53aGVyZShcImtleVwiKVxuICAgICAgLmVxdWFscyhrZXkpXG4gICAgICAuZmlyc3QoKVxuXG4gICAgaWYgKHJvdylcbiAgICAgIHJldHVybiByb3cudmFsdWVcbiAgfVxuXG4gIGFzeW5jIHNldCAoa2V5LCB2YWx1ZSkge1xuICAgIGNvbnN0IHJvdyA9IGF3YWl0IHRoaXMuZGF0YWJhc2Uua2V5VmFsdWVzXG4gICAgICAud2hlcmUoXCJrZXlcIilcbiAgICAgIC5lcXVhbHMoa2V5KVxuICAgICAgLmZpcnN0KClcblxuICAgIGlmIChyb3cpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGF0YWJhc2Uua2V5VmFsdWVzLnVwZGF0ZShyb3cuaWQsIHt2YWx1ZX0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuZGF0YWJhc2Uua2V5VmFsdWVzLmFkZCh7a2V5LCB2YWx1ZX0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLE1BQU0sVUFBVTtBQUU3QixNQUFNQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWpCLGVBQWUsTUFBTUMsYUFBYSxDQUFDO0VBQ2pDLE9BQU9DLE9BQU9BLENBQUEsRUFBSTtJQUNoQixJQUFJLENBQUNGLE1BQU0sQ0FBQ0csb0JBQW9CLEVBQUVILE1BQU0sQ0FBQ0csb0JBQW9CLEdBQUcsSUFBSUYsYUFBYSxDQUFDLENBQUM7SUFFbkYsT0FBT0QsTUFBTSxDQUFDRyxvQkFBb0I7RUFDcEM7RUFFQSxPQUFPQyxHQUFHQSxDQUFFQyxHQUFHLEVBQUU7SUFDZixPQUFPSixhQUFhLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUNFLEdBQUcsQ0FBQ0MsR0FBRyxDQUFDO0VBQ3pDO0VBRUEsT0FBT0MsR0FBR0EsQ0FBRUQsR0FBRyxFQUFFRSxLQUFLLEVBQUU7SUFDdEIsT0FBT04sYUFBYSxDQUFDQyxPQUFPLENBQUMsQ0FBQyxDQUFDSSxHQUFHLENBQUNELEdBQUcsRUFBRUUsS0FBSyxDQUFDO0VBQ2hEO0VBRUEsYUFBYUMsZUFBZUEsQ0FBRUMsU0FBUyxFQUFFQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUU7SUFDbEQsTUFBTUMsUUFBUSxHQUFHLE1BQU1WLGFBQWEsQ0FBQ0csR0FBRyxDQUFDSyxTQUFTLENBQUM7SUFDbkQsTUFBTUcsTUFBTSxHQUFHYixNQUFNLENBQUNjLEtBQUssQ0FBQyxDQUFDO0lBRTdCLElBQUlELE1BQU0sSUFBSUgsU0FBUyxJQUFJRyxNQUFNLEVBQUU7TUFDakMsT0FBT0EsTUFBTSxDQUFDSCxTQUFTLENBQUM7SUFDMUIsQ0FBQyxNQUFNLElBQUlFLFFBQVEsRUFBRTtNQUNuQixPQUFPQSxRQUFRO0lBQ2pCLENBQUMsTUFBTTtNQUNMLE9BQU9ELElBQUksQ0FBQ0ksT0FBTyxJQUFJLENBQUMsQ0FBQztJQUMzQjtFQUNGO0VBRUEsT0FBT0MsZUFBZUEsQ0FBRU4sU0FBUyxFQUFFTyxPQUFPLEVBQUU7SUFDMUMsT0FBT2YsYUFBYSxDQUFDSyxHQUFHLENBQUNHLFNBQVMsRUFBRU8sT0FBTyxDQUFDO0VBQzlDO0VBRUFDLFdBQVdBLENBQUEsRUFBSTtJQUNiLElBQUksQ0FBQ0MsUUFBUSxHQUFHLElBQUlDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztJQUNsRCxJQUFJLENBQUNELFFBQVEsQ0FBQ0UsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDQyxNQUFNLENBQUM7TUFDOUJDLFNBQVMsRUFBRTtJQUNiLENBQUMsQ0FBQztFQUNKO0VBRUEsTUFBTWxCLEdBQUdBLENBQUVDLEdBQUcsRUFBRTtJQUNkLE1BQU1rQixHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUNMLFFBQVEsQ0FBQ0ksU0FBUyxDQUN0Q0UsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUNaQyxNQUFNLENBQUNwQixHQUFHLENBQUMsQ0FDWHFCLEtBQUssQ0FBQyxDQUFDO0lBRVYsSUFBSUgsR0FBRyxFQUNMLE9BQU9BLEdBQUcsQ0FBQ2hCLEtBQUs7RUFDcEI7RUFFQSxNQUFNRCxHQUFHQSxDQUFFRCxHQUFHLEVBQUVFLEtBQUssRUFBRTtJQUNyQixNQUFNZ0IsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDTCxRQUFRLENBQUNJLFNBQVMsQ0FDdENFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FDWkMsTUFBTSxDQUFDcEIsR0FBRyxDQUFDLENBQ1hxQixLQUFLLENBQUMsQ0FBQztJQUVWLElBQUlILEdBQUcsRUFBRTtNQUNQLE1BQU0sSUFBSSxDQUFDTCxRQUFRLENBQUNJLFNBQVMsQ0FBQ0ssTUFBTSxDQUFDSixHQUFHLENBQUNLLEVBQUUsRUFBRTtRQUFDckI7TUFBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQyxNQUFNO01BQ0wsTUFBTSxJQUFJLENBQUNXLFFBQVEsQ0FBQ0ksU0FBUyxDQUFDTyxHQUFHLENBQUM7UUFBQ3hCLEdBQUc7UUFBRUU7TUFBSyxDQUFDLENBQUM7SUFDakQ7SUFFQSxPQUFPLElBQUk7RUFDYjtBQUNGIiwiaWdub3JlTGlzdCI6W119
package/build/link.js ADDED
@@ -0,0 +1,68 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ import { Platform, Pressable } from "react-native";
3
+ import BaseComponent from "./base-component";
4
+ import dataSetToAttributes from "./data-set-to-attributes";
5
+ import memo from "set-state-compare/src/memo";
6
+ import PropTypes from "prop-types";
7
+ import { shapeComponent } from "set-state-compare/src/shape-component";
8
+ export default memo(shapeComponent(class ApiMakerLink extends BaseComponent {
9
+ static propTypes = {
10
+ usePressable: PropTypes.bool
11
+ };
12
+ render() {
13
+ const {
14
+ dataSet,
15
+ to,
16
+ onClick,
17
+ onPress,
18
+ usePressable,
19
+ ...restProps
20
+ } = this.props;
21
+ if (Platform.OS == "web" && !usePressable) {
22
+ return /*#__PURE__*/React.createElement("a", _extends({}, dataSetToAttributes(dataSet), {
23
+ href: to
24
+ }, restProps, {
25
+ onClick: this.tt.onLinkClicked
26
+ }));
27
+ }
28
+ return /*#__PURE__*/React.createElement(Pressable, _extends({
29
+ dataSet: dataSet,
30
+ onPress: this.tt.onPress
31
+ }, restProps));
32
+ }
33
+ onLinkClicked = (e, ...restArgs) => {
34
+ const {
35
+ onClick,
36
+ onPress
37
+ } = this.props;
38
+ if (onClick) {
39
+ onClick(e, ...restArgs);
40
+ }
41
+ if (onPress) {
42
+ onPress(e, ...restArgs);
43
+ }
44
+ if (!e.defaultPrevented && !e.ctrlKey && !e.metaKey) {
45
+ e.preventDefault();
46
+ this.redirect();
47
+ }
48
+ };
49
+ onPress = () => {
50
+ const {
51
+ onClick,
52
+ onPress
53
+ } = this.props;
54
+ if (onClick) {
55
+ onClick(e, ...restArgs);
56
+ }
57
+ if (onPress) {
58
+ onPress(e, ...restArgs);
59
+ }
60
+ this.redirect();
61
+ };
62
+ redirect = () => {
63
+ const history = globalThis.apiMakerConfigGlobal?.history;
64
+ if (!history) throw new Error("History hasn't been set in the API maker configuration");
65
+ history.push(this.props.to);
66
+ };
67
+ }));
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQbGF0Zm9ybSIsIlByZXNzYWJsZSIsIkJhc2VDb21wb25lbnQiLCJkYXRhU2V0VG9BdHRyaWJ1dGVzIiwibWVtbyIsIlByb3BUeXBlcyIsInNoYXBlQ29tcG9uZW50IiwiQXBpTWFrZXJMaW5rIiwicHJvcFR5cGVzIiwidXNlUHJlc3NhYmxlIiwiYm9vbCIsInJlbmRlciIsImRhdGFTZXQiLCJ0byIsIm9uQ2xpY2siLCJvblByZXNzIiwicmVzdFByb3BzIiwicHJvcHMiLCJPUyIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzIiwiaHJlZiIsInR0Iiwib25MaW5rQ2xpY2tlZCIsImUiLCJyZXN0QXJncyIsImRlZmF1bHRQcmV2ZW50ZWQiLCJjdHJsS2V5IiwibWV0YUtleSIsInByZXZlbnREZWZhdWx0IiwicmVkaXJlY3QiLCJoaXN0b3J5IiwiZ2xvYmFsVGhpcyIsImFwaU1ha2VyQ29uZmlnR2xvYmFsIiwiRXJyb3IiLCJwdXNoIl0sInNvdXJjZXMiOlsiLi4vc3JjL2xpbmsuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGxhdGZvcm0sIFByZXNzYWJsZX0gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi9iYXNlLWNvbXBvbmVudFwiXG5pbXBvcnQgZGF0YVNldFRvQXR0cmlidXRlcyBmcm9tIFwiLi9kYXRhLXNldC10by1hdHRyaWJ1dGVzXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlckxpbmsgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICB1c2VQcmVzc2FibGU6IFByb3BUeXBlcy5ib29sXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2RhdGFTZXQsIHRvLCBvbkNsaWNrLCBvblByZXNzLCB1c2VQcmVzc2FibGUsIC4uLnJlc3RQcm9wc30gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoUGxhdGZvcm0uT1MgPT0gXCJ3ZWJcIiAmJiAhdXNlUHJlc3NhYmxlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8YSB7Li4uZGF0YVNldFRvQXR0cmlidXRlcyhkYXRhU2V0KX0gaHJlZj17dG99IHsuLi5yZXN0UHJvcHN9IG9uQ2xpY2s9e3RoaXMudHQub25MaW5rQ2xpY2tlZH0gLz5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFByZXNzYWJsZSBkYXRhU2V0PXtkYXRhU2V0fSBvblByZXNzPXt0aGlzLnR0Lm9uUHJlc3N9IHsuLi5yZXN0UHJvcHN9IC8+XG4gICAgKVxuICB9XG5cbiAgb25MaW5rQ2xpY2tlZCA9IChlLCAuLi5yZXN0QXJncykgPT4ge1xuICAgIGNvbnN0IHtvbkNsaWNrLCBvblByZXNzfSA9IHRoaXMucHJvcHNcblxuICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICBvbkNsaWNrKGUsIC4uLnJlc3RBcmdzKVxuICAgIH1cblxuICAgIGlmIChvblByZXNzKSB7XG4gICAgICBvblByZXNzKGUsIC4uLnJlc3RBcmdzKVxuICAgIH1cblxuICAgIGlmICghZS5kZWZhdWx0UHJldmVudGVkICYmICFlLmN0cmxLZXkgJiYgIWUubWV0YUtleSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICAgIHRoaXMucmVkaXJlY3QoKVxuICAgIH1cbiAgfVxuXG4gIG9uUHJlc3MgPSAoKSA9PiB7XG4gICAgY29uc3Qge29uQ2xpY2ssIG9uUHJlc3N9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgIG9uQ2xpY2soZSwgLi4ucmVzdEFyZ3MpXG4gICAgfVxuXG4gICAgaWYgKG9uUHJlc3MpIHtcbiAgICAgIG9uUHJlc3MoZSwgLi4ucmVzdEFyZ3MpXG4gICAgfVxuXG4gICAgdGhpcy5yZWRpcmVjdCgpXG4gIH1cblxuICByZWRpcmVjdCA9ICgpID0+IHtcbiAgICBjb25zdCBoaXN0b3J5ID0gZ2xvYmFsVGhpcy5hcGlNYWtlckNvbmZpZ0dsb2JhbD8uaGlzdG9yeVxuXG4gICAgaWYgKCFoaXN0b3J5KSB0aHJvdyBuZXcgRXJyb3IoXCJIaXN0b3J5IGhhc24ndCBiZWVuIHNldCBpbiB0aGUgQVBJIG1ha2VyIGNvbmZpZ3VyYXRpb25cIilcblxuICAgIGhpc3RvcnkucHVzaCh0aGlzLnByb3BzLnRvKVxuICB9XG59KSlcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVFBLFFBQVEsRUFBRUMsU0FBUyxRQUFPLGNBQWM7QUFDaEQsT0FBT0MsYUFBYSxNQUFNLGtCQUFrQjtBQUM1QyxPQUFPQyxtQkFBbUIsTUFBTSwwQkFBMEI7QUFDMUQsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPQyxTQUFTLE1BQU0sWUFBWTtBQUNsQyxTQUFRQyxjQUFjLFFBQU8sdUNBQXVDO0FBRXBFLGVBQWVGLElBQUksQ0FBQ0UsY0FBYyxDQUFDLE1BQU1DLFlBQVksU0FBU0wsYUFBYSxDQUFDO0VBQzFFLE9BQU9NLFNBQVMsR0FBRztJQUNqQkMsWUFBWSxFQUFFSixTQUFTLENBQUNLO0VBQzFCLENBQUM7RUFFREMsTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUFDQyxPQUFPO01BQUVDLEVBQUU7TUFBRUMsT0FBTztNQUFFQyxPQUFPO01BQUVOLFlBQVk7TUFBRSxHQUFHTztJQUFTLENBQUMsR0FBRyxJQUFJLENBQUNDLEtBQUs7SUFFOUUsSUFBSWpCLFFBQVEsQ0FBQ2tCLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQ1QsWUFBWSxFQUFFO01BQ3pDLG9CQUNFVSxLQUFBLENBQUFDLGFBQUEsTUFBQUMsUUFBQSxLQUFPbEIsbUJBQW1CLENBQUNTLE9BQU8sQ0FBQztRQUFFVSxJQUFJLEVBQUVUO01BQUcsR0FBS0csU0FBUztRQUFFRixPQUFPLEVBQUUsSUFBSSxDQUFDUyxFQUFFLENBQUNDO01BQWMsRUFBRSxDQUFDO0lBRXBHO0lBRUEsb0JBQ0VMLEtBQUEsQ0FBQUMsYUFBQSxDQUFDbkIsU0FBUyxFQUFBb0IsUUFBQTtNQUFDVCxPQUFPLEVBQUVBLE9BQVE7TUFBQ0csT0FBTyxFQUFFLElBQUksQ0FBQ1EsRUFBRSxDQUFDUjtJQUFRLEdBQUtDLFNBQVMsQ0FBRyxDQUFDO0VBRTVFO0VBRUFRLGFBQWEsR0FBR0EsQ0FBQ0MsQ0FBQyxFQUFFLEdBQUdDLFFBQVEsS0FBSztJQUNsQyxNQUFNO01BQUNaLE9BQU87TUFBRUM7SUFBTyxDQUFDLEdBQUcsSUFBSSxDQUFDRSxLQUFLO0lBRXJDLElBQUlILE9BQU8sRUFBRTtNQUNYQSxPQUFPLENBQUNXLENBQUMsRUFBRSxHQUFHQyxRQUFRLENBQUM7SUFDekI7SUFFQSxJQUFJWCxPQUFPLEVBQUU7TUFDWEEsT0FBTyxDQUFDVSxDQUFDLEVBQUUsR0FBR0MsUUFBUSxDQUFDO0lBQ3pCO0lBRUEsSUFBSSxDQUFDRCxDQUFDLENBQUNFLGdCQUFnQixJQUFJLENBQUNGLENBQUMsQ0FBQ0csT0FBTyxJQUFJLENBQUNILENBQUMsQ0FBQ0ksT0FBTyxFQUFFO01BQ25ESixDQUFDLENBQUNLLGNBQWMsQ0FBQyxDQUFDO01BRWxCLElBQUksQ0FBQ0MsUUFBUSxDQUFDLENBQUM7SUFDakI7RUFDRixDQUFDO0VBRURoQixPQUFPLEdBQUdBLENBQUEsS0FBTTtJQUNkLE1BQU07TUFBQ0QsT0FBTztNQUFFQztJQUFPLENBQUMsR0FBRyxJQUFJLENBQUNFLEtBQUs7SUFFckMsSUFBSUgsT0FBTyxFQUFFO01BQ1hBLE9BQU8sQ0FBQ1csQ0FBQyxFQUFFLEdBQUdDLFFBQVEsQ0FBQztJQUN6QjtJQUVBLElBQUlYLE9BQU8sRUFBRTtNQUNYQSxPQUFPLENBQUNVLENBQUMsRUFBRSxHQUFHQyxRQUFRLENBQUM7SUFDekI7SUFFQSxJQUFJLENBQUNLLFFBQVEsQ0FBQyxDQUFDO0VBQ2pCLENBQUM7RUFFREEsUUFBUSxHQUFHQSxDQUFBLEtBQU07SUFDZixNQUFNQyxPQUFPLEdBQUdDLFVBQVUsQ0FBQ0Msb0JBQW9CLEVBQUVGLE9BQU87SUFFeEQsSUFBSSxDQUFDQSxPQUFPLEVBQUUsTUFBTSxJQUFJRyxLQUFLLENBQUMsd0RBQXdELENBQUM7SUFFdkZILE9BQU8sQ0FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQ25CLEtBQUssQ0FBQ0osRUFBRSxDQUFDO0VBQzdCLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,30 @@
1
+ const shared = {};
2
+ export default class ApiMakerLogger {
3
+ static getGlobalDebug = () => shared.isDebugging;
4
+ static setGlobalDebug(newValue) {
5
+ shared.isDebugging = newValue;
6
+ }
7
+ constructor(args = {}) {
8
+ this.name = args.name;
9
+ }
10
+ debug(message) {
11
+ if (this.getDebug()) {
12
+ this.log(message);
13
+ }
14
+ }
15
+ error(message) {
16
+ console.error(message);
17
+ }
18
+ log(message) {
19
+ if (!this.debug && !ApiMakerLogger.getGlobalDebug()) return;
20
+ if (typeof message == "function") message = message();
21
+ if (!Array.isArray(message)) message = [message];
22
+ if (this.name) message.unshift(`${this.name}:`);
23
+ console.log(...message);
24
+ }
25
+ getDebug = () => this.isDebugging;
26
+ setDebug(value) {
27
+ this.isDebugging = value;
28
+ }
29
+ }
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzaGFyZWQiLCJBcGlNYWtlckxvZ2dlciIsImdldEdsb2JhbERlYnVnIiwiaXNEZWJ1Z2dpbmciLCJzZXRHbG9iYWxEZWJ1ZyIsIm5ld1ZhbHVlIiwiY29uc3RydWN0b3IiLCJhcmdzIiwibmFtZSIsImRlYnVnIiwibWVzc2FnZSIsImdldERlYnVnIiwibG9nIiwiZXJyb3IiLCJjb25zb2xlIiwiQXJyYXkiLCJpc0FycmF5IiwidW5zaGlmdCIsInNldERlYnVnIiwidmFsdWUiXSwic291cmNlcyI6WyIuLi9zcmMvbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHNoYXJlZCA9IHt9XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyTG9nZ2VyIHtcbiAgc3RhdGljIGdldEdsb2JhbERlYnVnID0gKCkgPT4gc2hhcmVkLmlzRGVidWdnaW5nXG5cbiAgc3RhdGljIHNldEdsb2JhbERlYnVnKG5ld1ZhbHVlKSB7XG4gICAgc2hhcmVkLmlzRGVidWdnaW5nID0gbmV3VmFsdWVcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGFyZ3MgPSB7fSkge1xuICAgIHRoaXMubmFtZSA9IGFyZ3MubmFtZVxuICB9XG5cbiAgZGVidWcobWVzc2FnZSkge1xuICAgIGlmICh0aGlzLmdldERlYnVnKCkpIHtcbiAgICAgIHRoaXMubG9nKG1lc3NhZ2UpXG4gICAgfVxuICB9XG5cbiAgZXJyb3IobWVzc2FnZSkge1xuICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSlcbiAgfVxuXG4gIGxvZyhtZXNzYWdlKSB7XG4gICAgaWYgKCF0aGlzLmRlYnVnICYmICFBcGlNYWtlckxvZ2dlci5nZXRHbG9iYWxEZWJ1ZygpKSByZXR1cm5cbiAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT0gXCJmdW5jdGlvblwiKSBtZXNzYWdlID0gbWVzc2FnZSgpXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG1lc3NhZ2UpKSBtZXNzYWdlID0gW21lc3NhZ2VdXG4gICAgaWYgKHRoaXMubmFtZSkgbWVzc2FnZS51bnNoaWZ0KGAke3RoaXMubmFtZX06YClcblxuICAgIGNvbnNvbGUubG9nKC4uLm1lc3NhZ2UpXG4gIH1cblxuICBnZXREZWJ1ZyA9ICgpID0+IHRoaXMuaXNEZWJ1Z2dpbmdcblxuICBzZXREZWJ1Zyh2YWx1ZSkge1xuICAgIHRoaXMuaXNEZWJ1Z2dpbmcgPSB2YWx1ZVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFFakIsZUFBZSxNQUFNQyxjQUFjLENBQUM7RUFDbEMsT0FBT0MsY0FBYyxHQUFHQSxDQUFBLEtBQU1GLE1BQU0sQ0FBQ0csV0FBVztFQUVoRCxPQUFPQyxjQUFjQSxDQUFDQyxRQUFRLEVBQUU7SUFDOUJMLE1BQU0sQ0FBQ0csV0FBVyxHQUFHRSxRQUFRO0VBQy9CO0VBRUFDLFdBQVdBLENBQUNDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRTtJQUNyQixJQUFJLENBQUNDLElBQUksR0FBR0QsSUFBSSxDQUFDQyxJQUFJO0VBQ3ZCO0VBRUFDLEtBQUtBLENBQUNDLE9BQU8sRUFBRTtJQUNiLElBQUksSUFBSSxDQUFDQyxRQUFRLENBQUMsQ0FBQyxFQUFFO01BQ25CLElBQUksQ0FBQ0MsR0FBRyxDQUFDRixPQUFPLENBQUM7SUFDbkI7RUFDRjtFQUVBRyxLQUFLQSxDQUFDSCxPQUFPLEVBQUU7SUFDYkksT0FBTyxDQUFDRCxLQUFLLENBQUNILE9BQU8sQ0FBQztFQUN4QjtFQUVBRSxHQUFHQSxDQUFDRixPQUFPLEVBQUU7SUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDRCxLQUFLLElBQUksQ0FBQ1IsY0FBYyxDQUFDQyxjQUFjLENBQUMsQ0FBQyxFQUFFO0lBQ3JELElBQUksT0FBT1EsT0FBTyxJQUFJLFVBQVUsRUFBRUEsT0FBTyxHQUFHQSxPQUFPLENBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUNLLEtBQUssQ0FBQ0MsT0FBTyxDQUFDTixPQUFPLENBQUMsRUFBRUEsT0FBTyxHQUFHLENBQUNBLE9BQU8sQ0FBQztJQUNoRCxJQUFJLElBQUksQ0FBQ0YsSUFBSSxFQUFFRSxPQUFPLENBQUNPLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQ1QsSUFBSSxHQUFHLENBQUM7SUFFL0NNLE9BQU8sQ0FBQ0YsR0FBRyxDQUFDLEdBQUdGLE9BQU8sQ0FBQztFQUN6QjtFQUVBQyxRQUFRLEdBQUdBLENBQUEsS0FBTSxJQUFJLENBQUNSLFdBQVc7RUFFakNlLFFBQVFBLENBQUNDLEtBQUssRUFBRTtJQUNkLElBQUksQ0FBQ2hCLFdBQVcsR0FBR2dCLEtBQUs7RUFDMUI7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
package/build/modal.js ADDED
@@ -0,0 +1,37 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ import BaseComponent from "./base-component";
3
+ import memo from "set-state-compare/src/memo";
4
+ import { shapeComponent } from "set-state-compare/src/shape-component";
5
+ import { Modal, Pressable, View } from "react-native";
6
+ export default memo(shapeComponent(class ApiMakerModal extends BaseComponent {
7
+ render() {
8
+ const {
9
+ children,
10
+ onRequestClose,
11
+ ...restProps
12
+ } = this.props;
13
+ return /*#__PURE__*/React.createElement(Modal, _extends({
14
+ onRequestClose: onRequestClose
15
+ }, restProps), /*#__PURE__*/React.createElement(View, {
16
+ style: {
17
+ alignItems: "center",
18
+ justifyContent: "center",
19
+ minWidth: "100%",
20
+ minHeight: "100%",
21
+ padding: 20
22
+ }
23
+ }, /*#__PURE__*/React.createElement(Pressable, {
24
+ dataSet: {
25
+ class: "modal-backdrop"
26
+ },
27
+ onPress: onRequestClose,
28
+ style: {
29
+ position: "absolute",
30
+ minWidth: "100%",
31
+ minHeight: "100%",
32
+ backgroundColor: "rgba(0, 0, 0, 0.5)"
33
+ }
34
+ }), children));
35
+ }
36
+ }));
37
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwibWVtbyIsInNoYXBlQ29tcG9uZW50IiwiTW9kYWwiLCJQcmVzc2FibGUiLCJWaWV3IiwiQXBpTWFrZXJNb2RhbCIsInJlbmRlciIsImNoaWxkcmVuIiwib25SZXF1ZXN0Q2xvc2UiLCJyZXN0UHJvcHMiLCJwcm9wcyIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzIiwic3R5bGUiLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJtaW5XaWR0aCIsIm1pbkhlaWdodCIsInBhZGRpbmciLCJkYXRhU2V0IiwiY2xhc3MiLCJvblByZXNzIiwicG9zaXRpb24iLCJiYWNrZ3JvdW5kQ29sb3IiXSwic291cmNlcyI6WyIuLi9zcmMvbW9kYWwuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5pbXBvcnQge01vZGFsLCBQcmVzc2FibGUsIFZpZXd9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyTW9kYWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtjaGlsZHJlbiwgb25SZXF1ZXN0Q2xvc2UsIC4uLnJlc3RQcm9wc30gPSB0aGlzLnByb3BzXG5cbiAgICByZXR1cm4gKFxuICAgICAgPE1vZGFsIG9uUmVxdWVzdENsb3NlPXtvblJlcXVlc3RDbG9zZX0gey4uLnJlc3RQcm9wc30+XG4gICAgICAgIDxWaWV3XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgICAgIG1pbldpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgIG1pbkhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgICBwYWRkaW5nOiAyMCxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPFByZXNzYWJsZVxuICAgICAgICAgICAgZGF0YVNldD17e2NsYXNzOiBcIm1vZGFsLWJhY2tkcm9wXCJ9fVxuICAgICAgICAgICAgb25QcmVzcz17b25SZXF1ZXN0Q2xvc2V9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICBtaW5XaWR0aDogXCIxMDAlXCIsXG4gICAgICAgICAgICAgIG1pbkhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCJyZ2JhKDAsIDAsIDAsIDAuNSlcIlxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9WaWV3PlxuICAgICAgPC9Nb2RhbD5cbiAgICApXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsYUFBYSxNQUFNLGtCQUFrQjtBQUM1QyxPQUFPQyxJQUFJLE1BQU0sNEJBQTRCO0FBQzdDLFNBQVFDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEUsU0FBUUMsS0FBSyxFQUFFQyxTQUFTLEVBQUVDLElBQUksUUFBTyxjQUFjO0FBRW5ELGVBQWVKLElBQUksQ0FBQ0MsY0FBYyxDQUFDLE1BQU1JLGFBQWEsU0FBU04sYUFBYSxDQUFDO0VBQzNFTyxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNO01BQUNDLFFBQVE7TUFBRUMsY0FBYztNQUFFLEdBQUdDO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ0MsS0FBSztJQUUzRCxvQkFDRUMsS0FBQSxDQUFBQyxhQUFBLENBQUNWLEtBQUssRUFBQVcsUUFBQTtNQUFDTCxjQUFjLEVBQUVBO0lBQWUsR0FBS0MsU0FBUyxnQkFDbERFLEtBQUEsQ0FBQUMsYUFBQSxDQUFDUixJQUFJO01BQ0hVLEtBQUssRUFBRTtRQUNMQyxVQUFVLEVBQUUsUUFBUTtRQUNwQkMsY0FBYyxFQUFFLFFBQVE7UUFDeEJDLFFBQVEsRUFBRSxNQUFNO1FBQ2hCQyxTQUFTLEVBQUUsTUFBTTtRQUNqQkMsT0FBTyxFQUFFO01BQ1g7SUFBRSxnQkFFRlIsS0FBQSxDQUFBQyxhQUFBLENBQUNULFNBQVM7TUFDUmlCLE9BQU8sRUFBRTtRQUFDQyxLQUFLLEVBQUU7TUFBZ0IsQ0FBRTtNQUNuQ0MsT0FBTyxFQUFFZCxjQUFlO01BQ3hCTSxLQUFLLEVBQUU7UUFDTFMsUUFBUSxFQUFFLFVBQVU7UUFDcEJOLFFBQVEsRUFBRSxNQUFNO1FBQ2hCQyxTQUFTLEVBQUUsTUFBTTtRQUNqQk0sZUFBZSxFQUFFO01BQ25CO0lBQUUsQ0FDSCxDQUFDLEVBQ0RqQixRQUNHLENBQ0QsQ0FBQztFQUVaO0FBQ0YsQ0FBQyxDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,13 @@
1
+ import * as inflection from "inflection";
2
+ import models from "./models";
3
+ const modelClassRequire = modelName => {
4
+ const requireName = inflection.camelize(modelName);
5
+ const ModelClass = models[requireName];
6
+ if (!ModelClass) {
7
+ const modelClasses = Object.keys(models).sort();
8
+ throw new Error(`No model called ${modelName} in ${modelClasses.join(", ")}`);
9
+ }
10
+ return ModelClass;
11
+ };
12
+ export default modelClassRequire;
13
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbmZsZWN0aW9uIiwibW9kZWxzIiwibW9kZWxDbGFzc1JlcXVpcmUiLCJtb2RlbE5hbWUiLCJyZXF1aXJlTmFtZSIsImNhbWVsaXplIiwiTW9kZWxDbGFzcyIsIm1vZGVsQ2xhc3NlcyIsIk9iamVjdCIsImtleXMiLCJzb3J0IiwiRXJyb3IiLCJqb2luIl0sInNvdXJjZXMiOlsiLi4vc3JjL21vZGVsLWNsYXNzLXJlcXVpcmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgbW9kZWxzIGZyb20gXCIuL21vZGVsc1wiXG5cbmNvbnN0IG1vZGVsQ2xhc3NSZXF1aXJlID0gKG1vZGVsTmFtZSkgPT4ge1xuICBjb25zdCByZXF1aXJlTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUobW9kZWxOYW1lKVxuICBjb25zdCBNb2RlbENsYXNzID0gbW9kZWxzW3JlcXVpcmVOYW1lXVxuXG4gIGlmICghTW9kZWxDbGFzcykge1xuICAgIGNvbnN0IG1vZGVsQ2xhc3NlcyA9IE9iamVjdC5rZXlzKG1vZGVscykuc29ydCgpXG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1vZGVsIGNhbGxlZCAke21vZGVsTmFtZX0gaW4gJHttb2RlbENsYXNzZXMuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICByZXR1cm4gTW9kZWxDbGFzc1xufVxuXG5leHBvcnQgZGVmYXVsdCBtb2RlbENsYXNzUmVxdWlyZVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUtBLFVBQVUsTUFBTSxZQUFZO0FBQ3hDLE9BQU9DLE1BQU0sTUFBTSxVQUFVO0FBRTdCLE1BQU1DLGlCQUFpQixHQUFJQyxTQUFTLElBQUs7RUFDdkMsTUFBTUMsV0FBVyxHQUFHSixVQUFVLENBQUNLLFFBQVEsQ0FBQ0YsU0FBUyxDQUFDO0VBQ2xELE1BQU1HLFVBQVUsR0FBR0wsTUFBTSxDQUFDRyxXQUFXLENBQUM7RUFFdEMsSUFBSSxDQUFDRSxVQUFVLEVBQUU7SUFDZixNQUFNQyxZQUFZLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDUixNQUFNLENBQUMsQ0FBQ1MsSUFBSSxDQUFDLENBQUM7SUFFL0MsTUFBTSxJQUFJQyxLQUFLLENBQUMsbUJBQW1CUixTQUFTLE9BQU9JLFlBQVksQ0FBQ0ssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7RUFDL0U7RUFFQSxPQUFPTixVQUFVO0FBQ25CLENBQUM7QUFFRCxlQUFlSixpQkFBaUIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,30 @@
1
+ import CableConnectionPool from "./cable-connection-pool";
2
+ import { digg } from "diggerize";
3
+ export default class ModelEvents {
4
+ static connect(model, eventName, callback) {
5
+ const modelClassName = digg(model.modelClassData(), "name");
6
+ const cableSubscription = CableConnectionPool.current().connectEvent(modelClassName, model.primaryKey(), eventName, callback);
7
+ return cableSubscription;
8
+ }
9
+ static connectModelClass(modelClass, eventName, callback) {
10
+ const modelClassName = digg(modelClass.modelClassData(), "name");
11
+ const cableSubscription = CableConnectionPool.current().connectModelClassEvent(modelClassName, eventName, callback);
12
+ return cableSubscription;
13
+ }
14
+ static connectCreated(modelClass, callback) {
15
+ const modelClassName = digg(modelClass.modelClassData(), "name");
16
+ const cableSubscription = CableConnectionPool.current().connectCreated(modelClassName, callback);
17
+ return cableSubscription;
18
+ }
19
+ static connectDestroyed(model, callback) {
20
+ const modelClassName = digg(model.modelClassData(), "name");
21
+ const cableSubscription = CableConnectionPool.current().connectDestroyed(modelClassName, model.primaryKey(), callback);
22
+ return cableSubscription;
23
+ }
24
+ static connectUpdated(model, callback) {
25
+ const modelClassName = digg(model.modelClassData(), "name");
26
+ const cableSubscription = CableConnectionPool.current().connectUpdate(modelClassName, model.primaryKey(), callback);
27
+ return cableSubscription;
28
+ }
29
+ }
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDYWJsZUNvbm5lY3Rpb25Qb29sIiwiZGlnZyIsIk1vZGVsRXZlbnRzIiwiY29ubmVjdCIsIm1vZGVsIiwiZXZlbnROYW1lIiwiY2FsbGJhY2siLCJtb2RlbENsYXNzTmFtZSIsIm1vZGVsQ2xhc3NEYXRhIiwiY2FibGVTdWJzY3JpcHRpb24iLCJjdXJyZW50IiwiY29ubmVjdEV2ZW50IiwicHJpbWFyeUtleSIsImNvbm5lY3RNb2RlbENsYXNzIiwibW9kZWxDbGFzcyIsImNvbm5lY3RNb2RlbENsYXNzRXZlbnQiLCJjb25uZWN0Q3JlYXRlZCIsImNvbm5lY3REZXN0cm95ZWQiLCJjb25uZWN0VXBkYXRlZCIsImNvbm5lY3RVcGRhdGUiXSwic291cmNlcyI6WyIuLi9zcmMvbW9kZWwtZXZlbnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDYWJsZUNvbm5lY3Rpb25Qb29sIGZyb20gXCIuL2NhYmxlLWNvbm5lY3Rpb24tcG9vbFwiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2RlbEV2ZW50cyB7XG4gIHN0YXRpYyBjb25uZWN0IChtb2RlbCwgZXZlbnROYW1lLCBjYWxsYmFjaykge1xuICAgIGNvbnN0IG1vZGVsQ2xhc3NOYW1lID0gZGlnZyhtb2RlbC5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIilcbiAgICBjb25zdCBjYWJsZVN1YnNjcmlwdGlvbiA9IENhYmxlQ29ubmVjdGlvblBvb2wuY3VycmVudCgpLmNvbm5lY3RFdmVudChtb2RlbENsYXNzTmFtZSwgbW9kZWwucHJpbWFyeUtleSgpLCBldmVudE5hbWUsIGNhbGxiYWNrKVxuXG4gICAgcmV0dXJuIGNhYmxlU3Vic2NyaXB0aW9uXG4gIH1cblxuICBzdGF0aWMgY29ubmVjdE1vZGVsQ2xhc3MgKG1vZGVsQ2xhc3MsIGV2ZW50TmFtZSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IGRpZ2cobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIilcbiAgICBjb25zdCBjYWJsZVN1YnNjcmlwdGlvbiA9IENhYmxlQ29ubmVjdGlvblBvb2wuY3VycmVudCgpLmNvbm5lY3RNb2RlbENsYXNzRXZlbnQobW9kZWxDbGFzc05hbWUsIGV2ZW50TmFtZSwgY2FsbGJhY2spXG5cbiAgICByZXR1cm4gY2FibGVTdWJzY3JpcHRpb25cbiAgfVxuXG4gIHN0YXRpYyBjb25uZWN0Q3JlYXRlZCAobW9kZWxDbGFzcywgY2FsbGJhY2spIHtcbiAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IGRpZ2cobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIilcbiAgICBjb25zdCBjYWJsZVN1YnNjcmlwdGlvbiA9IENhYmxlQ29ubmVjdGlvblBvb2wuY3VycmVudCgpLmNvbm5lY3RDcmVhdGVkKG1vZGVsQ2xhc3NOYW1lLCBjYWxsYmFjaylcblxuICAgIHJldHVybiBjYWJsZVN1YnNjcmlwdGlvblxuICB9XG5cbiAgc3RhdGljIGNvbm5lY3REZXN0cm95ZWQgKG1vZGVsLCBjYWxsYmFjaykge1xuICAgIGNvbnN0IG1vZGVsQ2xhc3NOYW1lID0gZGlnZyhtb2RlbC5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIilcbiAgICBjb25zdCBjYWJsZVN1YnNjcmlwdGlvbiA9IENhYmxlQ29ubmVjdGlvblBvb2wuY3VycmVudCgpLmNvbm5lY3REZXN0cm95ZWQobW9kZWxDbGFzc05hbWUsIG1vZGVsLnByaW1hcnlLZXkoKSwgY2FsbGJhY2spXG5cbiAgICByZXR1cm4gY2FibGVTdWJzY3JpcHRpb25cbiAgfVxuXG4gIHN0YXRpYyBjb25uZWN0VXBkYXRlZCAobW9kZWwsIGNhbGxiYWNrKSB7XG4gICAgY29uc3QgbW9kZWxDbGFzc05hbWUgPSBkaWdnKG1vZGVsLm1vZGVsQ2xhc3NEYXRhKCksIFwibmFtZVwiKVxuICAgIGNvbnN0IGNhYmxlU3Vic2NyaXB0aW9uID0gQ2FibGVDb25uZWN0aW9uUG9vbC5jdXJyZW50KCkuY29ubmVjdFVwZGF0ZShtb2RlbENsYXNzTmFtZSwgbW9kZWwucHJpbWFyeUtleSgpLCBjYWxsYmFjaylcblxuICAgIHJldHVybiBjYWJsZVN1YnNjcmlwdGlvblxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLG1CQUFtQixNQUFNLHlCQUF5QjtBQUN6RCxTQUFRQyxJQUFJLFFBQU8sV0FBVztBQUU5QixlQUFlLE1BQU1DLFdBQVcsQ0FBQztFQUMvQixPQUFPQyxPQUFPQSxDQUFFQyxLQUFLLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxFQUFFO0lBQzFDLE1BQU1DLGNBQWMsR0FBR04sSUFBSSxDQUFDRyxLQUFLLENBQUNJLGNBQWMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzNELE1BQU1DLGlCQUFpQixHQUFHVCxtQkFBbUIsQ0FBQ1UsT0FBTyxDQUFDLENBQUMsQ0FBQ0MsWUFBWSxDQUFDSixjQUFjLEVBQUVILEtBQUssQ0FBQ1EsVUFBVSxDQUFDLENBQUMsRUFBRVAsU0FBUyxFQUFFQyxRQUFRLENBQUM7SUFFN0gsT0FBT0csaUJBQWlCO0VBQzFCO0VBRUEsT0FBT0ksaUJBQWlCQSxDQUFFQyxVQUFVLEVBQUVULFNBQVMsRUFBRUMsUUFBUSxFQUFFO0lBQ3pELE1BQU1DLGNBQWMsR0FBR04sSUFBSSxDQUFDYSxVQUFVLENBQUNOLGNBQWMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2hFLE1BQU1DLGlCQUFpQixHQUFHVCxtQkFBbUIsQ0FBQ1UsT0FBTyxDQUFDLENBQUMsQ0FBQ0ssc0JBQXNCLENBQUNSLGNBQWMsRUFBRUYsU0FBUyxFQUFFQyxRQUFRLENBQUM7SUFFbkgsT0FBT0csaUJBQWlCO0VBQzFCO0VBRUEsT0FBT08sY0FBY0EsQ0FBRUYsVUFBVSxFQUFFUixRQUFRLEVBQUU7SUFDM0MsTUFBTUMsY0FBYyxHQUFHTixJQUFJLENBQUNhLFVBQVUsQ0FBQ04sY0FBYyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEUsTUFBTUMsaUJBQWlCLEdBQUdULG1CQUFtQixDQUFDVSxPQUFPLENBQUMsQ0FBQyxDQUFDTSxjQUFjLENBQUNULGNBQWMsRUFBRUQsUUFBUSxDQUFDO0lBRWhHLE9BQU9HLGlCQUFpQjtFQUMxQjtFQUVBLE9BQU9RLGdCQUFnQkEsQ0FBRWIsS0FBSyxFQUFFRSxRQUFRLEVBQUU7SUFDeEMsTUFBTUMsY0FBYyxHQUFHTixJQUFJLENBQUNHLEtBQUssQ0FBQ0ksY0FBYyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDM0QsTUFBTUMsaUJBQWlCLEdBQUdULG1CQUFtQixDQUFDVSxPQUFPLENBQUMsQ0FBQyxDQUFDTyxnQkFBZ0IsQ0FBQ1YsY0FBYyxFQUFFSCxLQUFLLENBQUNRLFVBQVUsQ0FBQyxDQUFDLEVBQUVOLFFBQVEsQ0FBQztJQUV0SCxPQUFPRyxpQkFBaUI7RUFDMUI7RUFFQSxPQUFPUyxjQUFjQSxDQUFFZCxLQUFLLEVBQUVFLFFBQVEsRUFBRTtJQUN0QyxNQUFNQyxjQUFjLEdBQUdOLElBQUksQ0FBQ0csS0FBSyxDQUFDSSxjQUFjLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUMzRCxNQUFNQyxpQkFBaUIsR0FBR1QsbUJBQW1CLENBQUNVLE9BQU8sQ0FBQyxDQUFDLENBQUNTLGFBQWEsQ0FBQ1osY0FBYyxFQUFFSCxLQUFLLENBQUNRLFVBQVUsQ0FBQyxDQUFDLEVBQUVOLFFBQVEsQ0FBQztJQUVuSCxPQUFPRyxpQkFBaUI7RUFDMUI7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,28 @@
1
+ import Config from "./config";
2
+ import * as inflection from "inflection";
3
+ export default class ModelName {
4
+ constructor(data) {
5
+ this.data = data;
6
+ }
7
+ camelizedLower = () => this.data.modelClassData.camelizedLower;
8
+ human(args) {
9
+ let argsToUse = args;
10
+ if (!argsToUse) argsToUse = {
11
+ count: 1
12
+ };
13
+ let countKey;
14
+ if (argsToUse.count > 1 || argsToUse.count < 0) {
15
+ countKey = "other";
16
+ } else {
17
+ countKey = "one";
18
+ }
19
+ const key = `activerecord.models.${this.data.modelClassData.i18nKey}.${countKey}`;
20
+ let defaultModelName = this.data.modelClassData.name;
21
+ if (args?.count > 1) defaultModelName = inflection.pluralize(defaultModelName);
22
+ return Config.getI18n().t(key, {
23
+ defaultValue: defaultModelName
24
+ });
25
+ }
26
+ paramKey = () => this.data.modelClassData.paramKey;
27
+ }
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb25maWciLCJpbmZsZWN0aW9uIiwiTW9kZWxOYW1lIiwiY29uc3RydWN0b3IiLCJkYXRhIiwiY2FtZWxpemVkTG93ZXIiLCJtb2RlbENsYXNzRGF0YSIsImh1bWFuIiwiYXJncyIsImFyZ3NUb1VzZSIsImNvdW50IiwiY291bnRLZXkiLCJrZXkiLCJpMThuS2V5IiwiZGVmYXVsdE1vZGVsTmFtZSIsIm5hbWUiLCJwbHVyYWxpemUiLCJnZXRJMThuIiwidCIsImRlZmF1bHRWYWx1ZSIsInBhcmFtS2V5Il0sInNvdXJjZXMiOlsiLi4vc3JjL21vZGVsLW5hbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbmZpZyBmcm9tIFwiLi9jb25maWdcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1vZGVsTmFtZSB7XG4gIGNvbnN0cnVjdG9yKGRhdGEpIHtcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gIH1cblxuICBjYW1lbGl6ZWRMb3dlciA9ICgpID0+IHRoaXMuZGF0YS5tb2RlbENsYXNzRGF0YS5jYW1lbGl6ZWRMb3dlclxuXG4gIGh1bWFuKGFyZ3MpIHtcbiAgICBsZXQgYXJnc1RvVXNlID0gYXJnc1xuXG4gICAgaWYgKCFhcmdzVG9Vc2UpIGFyZ3NUb1VzZSA9IHsgY291bnQ6IDEgfVxuXG4gICAgbGV0IGNvdW50S2V5XG5cbiAgICBpZiAoYXJnc1RvVXNlLmNvdW50ID4gMSB8fCBhcmdzVG9Vc2UuY291bnQgPCAwKSB7XG4gICAgICBjb3VudEtleSA9IFwib3RoZXJcIlxuICAgIH0gZWxzZSB7XG4gICAgICBjb3VudEtleSA9IFwib25lXCJcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSBgYWN0aXZlcmVjb3JkLm1vZGVscy4ke3RoaXMuZGF0YS5tb2RlbENsYXNzRGF0YS5pMThuS2V5fS4ke2NvdW50S2V5fWBcbiAgICBsZXQgZGVmYXVsdE1vZGVsTmFtZSA9IHRoaXMuZGF0YS5tb2RlbENsYXNzRGF0YS5uYW1lXG5cbiAgICBpZiAoYXJncz8uY291bnQgPiAxKSBkZWZhdWx0TW9kZWxOYW1lID0gaW5mbGVjdGlvbi5wbHVyYWxpemUoZGVmYXVsdE1vZGVsTmFtZSlcblxuICAgIHJldHVybiBDb25maWcuZ2V0STE4bigpLnQoa2V5LCB7ZGVmYXVsdFZhbHVlOiBkZWZhdWx0TW9kZWxOYW1lfSlcbiAgfVxuXG4gIHBhcmFtS2V5ID0gKCkgPT4gdGhpcy5kYXRhLm1vZGVsQ2xhc3NEYXRhLnBhcmFtS2V5XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxVQUFVO0FBQzdCLE9BQU8sS0FBS0MsVUFBVSxNQUFNLFlBQVk7QUFFeEMsZUFBZSxNQUFNQyxTQUFTLENBQUM7RUFDN0JDLFdBQVdBLENBQUNDLElBQUksRUFBRTtJQUNoQixJQUFJLENBQUNBLElBQUksR0FBR0EsSUFBSTtFQUNsQjtFQUVBQyxjQUFjLEdBQUdBLENBQUEsS0FBTSxJQUFJLENBQUNELElBQUksQ0FBQ0UsY0FBYyxDQUFDRCxjQUFjO0VBRTlERSxLQUFLQSxDQUFDQyxJQUFJLEVBQUU7SUFDVixJQUFJQyxTQUFTLEdBQUdELElBQUk7SUFFcEIsSUFBSSxDQUFDQyxTQUFTLEVBQUVBLFNBQVMsR0FBRztNQUFFQyxLQUFLLEVBQUU7SUFBRSxDQUFDO0lBRXhDLElBQUlDLFFBQVE7SUFFWixJQUFJRixTQUFTLENBQUNDLEtBQUssR0FBRyxDQUFDLElBQUlELFNBQVMsQ0FBQ0MsS0FBSyxHQUFHLENBQUMsRUFBRTtNQUM5Q0MsUUFBUSxHQUFHLE9BQU87SUFDcEIsQ0FBQyxNQUFNO01BQ0xBLFFBQVEsR0FBRyxLQUFLO0lBQ2xCO0lBRUEsTUFBTUMsR0FBRyxHQUFHLHVCQUF1QixJQUFJLENBQUNSLElBQUksQ0FBQ0UsY0FBYyxDQUFDTyxPQUFPLElBQUlGLFFBQVEsRUFBRTtJQUNqRixJQUFJRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUNWLElBQUksQ0FBQ0UsY0FBYyxDQUFDUyxJQUFJO0lBRXBELElBQUlQLElBQUksRUFBRUUsS0FBSyxHQUFHLENBQUMsRUFBRUksZ0JBQWdCLEdBQUdiLFVBQVUsQ0FBQ2UsU0FBUyxDQUFDRixnQkFBZ0IsQ0FBQztJQUU5RSxPQUFPZCxNQUFNLENBQUNpQixPQUFPLENBQUMsQ0FBQyxDQUFDQyxDQUFDLENBQUNOLEdBQUcsRUFBRTtNQUFDTyxZQUFZLEVBQUVMO0lBQWdCLENBQUMsQ0FBQztFQUNsRTtFQUVBTSxRQUFRLEdBQUdBLENBQUEsS0FBTSxJQUFJLENBQUNoQixJQUFJLENBQUNFLGNBQWMsQ0FBQ2MsUUFBUTtBQUNwRCIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,101 @@
1
+ import { digg } from "diggerize";
2
+ import Inflection from "inflection";
3
+ export default class ApiMakerModelPropType {
4
+ static ofModel(modelClass) {
5
+ const modelPropTypeInstance = new ApiMakerModelPropType();
6
+ modelPropTypeInstance.withModelType(modelClass);
7
+ return modelPropTypeInstance;
8
+ }
9
+ constructor() {
10
+ this.isNotRequired = this.isNotRequired.bind(this);
11
+ this.isRequired = this.isRequired.bind(this);
12
+ this._withLoadedAssociations = {};
13
+ }
14
+ isNotRequired(props, propName, _componentName) {
15
+ const model = props[propName];
16
+ if (model) {
17
+ return this.validate({
18
+ model,
19
+ propName
20
+ });
21
+ }
22
+ }
23
+ isRequired(props, propName, _componentName) {
24
+ const model = props[propName];
25
+ if (!model) return new Error(`${propName} was required but not given`);
26
+ return this.validate({
27
+ model,
28
+ propName
29
+ });
30
+ }
31
+ previous() {
32
+ if (!this._previousModelPropType) throw new Error("No previous model prop type set");
33
+ return this._previousModelPropType;
34
+ }
35
+ setPreviousModelPropType(previousModelPropType) {
36
+ this._previousModelPropType = previousModelPropType;
37
+ }
38
+ withModelType(modelClass) {
39
+ this._withModelType = modelClass;
40
+ }
41
+ validate({
42
+ model,
43
+ propName
44
+ }) {
45
+ if (this._withModelType && this._withModelType.name != model.constructor.name) return new Error(`Expected ${propName} to be of type ${this._withModelType.name} but it wasn't: ${model.constructor.name}`);
46
+ if (this._withLoadedAbilities) {
47
+ for (const abilityName of this._withLoadedAbilities) {
48
+ const underscoreAbilityName = Inflection.underscore(abilityName);
49
+ if (!(underscoreAbilityName in model.abilities)) return new Error(`The ability ${abilityName} was required to be loaded in ${propName} of the ${model.constructor.name} type but it wasn't`);
50
+ }
51
+ }
52
+ if (this._withLoadedAssociations) {
53
+ for (const associationName in this._withLoadedAssociations) {
54
+ const associationModelPropType = digg(this._withLoadedAssociations, associationName);
55
+ const underscoreAssociationName = Inflection.underscore(associationName);
56
+ if (!(underscoreAssociationName in model.relationshipsCache)) return new Error(`The association ${associationName} was required to be loaded in ${propName} of the ${model.constructor.name} type but it wasn't`);
57
+ const associationCache = digg(model.relationshipsCache, underscoreAssociationName);
58
+
59
+ // Find a model to run sub-model-prop-type-validations on
60
+ if (Array.isArray(associationCache)) {
61
+ for (const preloadedModel of associationCache) {
62
+ const validationResult = associationModelPropType.validate({
63
+ model: preloadedModel,
64
+ propName: `${propName}.${associationName}`
65
+ });
66
+ if (validationResult) return validationResult;
67
+ }
68
+ } else if (associationCache) {
69
+ const validationResult = associationModelPropType.validate({
70
+ model: associationCache,
71
+ propName: `${propName}.${associationName}`
72
+ });
73
+ if (validationResult) return validationResult;
74
+ }
75
+ }
76
+ }
77
+ if (this._withLoadedAttributes && model.isPersisted()) {
78
+ for (const attributeName of this._withLoadedAttributes) {
79
+ const underscoreAttributeName = Inflection.underscore(attributeName);
80
+ if (!(underscoreAttributeName in model.modelData)) {
81
+ return new Error(`The attribute ${attributeName} was required to be loaded in ${propName} of the ${model.constructor.name} type but it wasn't`);
82
+ }
83
+ }
84
+ }
85
+ }
86
+ withLoadedAbilities(arrayOfAbilities) {
87
+ this._withLoadedAbilities = arrayOfAbilities;
88
+ return this;
89
+ }
90
+ withLoadedAssociation(associationName) {
91
+ const associationModelPropType = new ApiMakerModelPropType();
92
+ associationModelPropType.setPreviousModelPropType(this);
93
+ this._withLoadedAssociations[associationName] = associationModelPropType;
94
+ return associationModelPropType;
95
+ }
96
+ withLoadedAttributes(arrayOfAttributes) {
97
+ this._withLoadedAttributes = arrayOfAttributes;
98
+ return this;
99
+ }
100
+ }
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiSW5mbGVjdGlvbiIsIkFwaU1ha2VyTW9kZWxQcm9wVHlwZSIsIm9mTW9kZWwiLCJtb2RlbENsYXNzIiwibW9kZWxQcm9wVHlwZUluc3RhbmNlIiwid2l0aE1vZGVsVHlwZSIsImNvbnN0cnVjdG9yIiwiaXNOb3RSZXF1aXJlZCIsImJpbmQiLCJpc1JlcXVpcmVkIiwiX3dpdGhMb2FkZWRBc3NvY2lhdGlvbnMiLCJwcm9wcyIsInByb3BOYW1lIiwiX2NvbXBvbmVudE5hbWUiLCJtb2RlbCIsInZhbGlkYXRlIiwiRXJyb3IiLCJwcmV2aW91cyIsIl9wcmV2aW91c01vZGVsUHJvcFR5cGUiLCJzZXRQcmV2aW91c01vZGVsUHJvcFR5cGUiLCJwcmV2aW91c01vZGVsUHJvcFR5cGUiLCJfd2l0aE1vZGVsVHlwZSIsIm5hbWUiLCJfd2l0aExvYWRlZEFiaWxpdGllcyIsImFiaWxpdHlOYW1lIiwidW5kZXJzY29yZUFiaWxpdHlOYW1lIiwidW5kZXJzY29yZSIsImFiaWxpdGllcyIsImFzc29jaWF0aW9uTmFtZSIsImFzc29jaWF0aW9uTW9kZWxQcm9wVHlwZSIsInVuZGVyc2NvcmVBc3NvY2lhdGlvbk5hbWUiLCJyZWxhdGlvbnNoaXBzQ2FjaGUiLCJhc3NvY2lhdGlvbkNhY2hlIiwiQXJyYXkiLCJpc0FycmF5IiwicHJlbG9hZGVkTW9kZWwiLCJ2YWxpZGF0aW9uUmVzdWx0IiwiX3dpdGhMb2FkZWRBdHRyaWJ1dGVzIiwiaXNQZXJzaXN0ZWQiLCJhdHRyaWJ1dGVOYW1lIiwidW5kZXJzY29yZUF0dHJpYnV0ZU5hbWUiLCJtb2RlbERhdGEiLCJ3aXRoTG9hZGVkQWJpbGl0aWVzIiwiYXJyYXlPZkFiaWxpdGllcyIsIndpdGhMb2FkZWRBc3NvY2lhdGlvbiIsIndpdGhMb2FkZWRBdHRyaWJ1dGVzIiwiYXJyYXlPZkF0dHJpYnV0ZXMiXSwic291cmNlcyI6WyIuLi9zcmMvbW9kZWwtcHJvcC10eXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgSW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyTW9kZWxQcm9wVHlwZSB7XG4gIHN0YXRpYyBvZk1vZGVsIChtb2RlbENsYXNzKSB7XG4gICAgY29uc3QgbW9kZWxQcm9wVHlwZUluc3RhbmNlID0gbmV3IEFwaU1ha2VyTW9kZWxQcm9wVHlwZSgpXG5cbiAgICBtb2RlbFByb3BUeXBlSW5zdGFuY2Uud2l0aE1vZGVsVHlwZShtb2RlbENsYXNzKVxuXG4gICAgcmV0dXJuIG1vZGVsUHJvcFR5cGVJbnN0YW5jZVxuICB9XG5cbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHRoaXMuaXNOb3RSZXF1aXJlZCA9IHRoaXMuaXNOb3RSZXF1aXJlZC5iaW5kKHRoaXMpXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gdGhpcy5pc1JlcXVpcmVkLmJpbmQodGhpcylcbiAgICB0aGlzLl93aXRoTG9hZGVkQXNzb2NpYXRpb25zID0ge31cbiAgfVxuXG4gIGlzTm90UmVxdWlyZWQgKHByb3BzLCBwcm9wTmFtZSwgX2NvbXBvbmVudE5hbWUpIHtcbiAgICBjb25zdCBtb2RlbCA9IHByb3BzW3Byb3BOYW1lXVxuXG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZSh7bW9kZWwsIHByb3BOYW1lfSlcbiAgICB9XG4gIH1cblxuICBpc1JlcXVpcmVkIChwcm9wcywgcHJvcE5hbWUsIF9jb21wb25lbnROYW1lKSB7XG4gICAgY29uc3QgbW9kZWwgPSBwcm9wc1twcm9wTmFtZV1cblxuICAgIGlmICghbW9kZWwpIHJldHVybiBuZXcgRXJyb3IoYCR7cHJvcE5hbWV9IHdhcyByZXF1aXJlZCBidXQgbm90IGdpdmVuYClcblxuICAgIHJldHVybiB0aGlzLnZhbGlkYXRlKHttb2RlbCwgcHJvcE5hbWV9KVxuICB9XG5cbiAgcHJldmlvdXMgKCkge1xuICAgIGlmICghdGhpcy5fcHJldmlvdXNNb2RlbFByb3BUeXBlKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBwcmV2aW91cyBtb2RlbCBwcm9wIHR5cGUgc2V0XCIpXG5cbiAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNNb2RlbFByb3BUeXBlXG4gIH1cblxuICBzZXRQcmV2aW91c01vZGVsUHJvcFR5cGUgKHByZXZpb3VzTW9kZWxQcm9wVHlwZSkge1xuICAgIHRoaXMuX3ByZXZpb3VzTW9kZWxQcm9wVHlwZSA9IHByZXZpb3VzTW9kZWxQcm9wVHlwZVxuICB9XG5cbiAgd2l0aE1vZGVsVHlwZSAobW9kZWxDbGFzcykge1xuICAgIHRoaXMuX3dpdGhNb2RlbFR5cGUgPSBtb2RlbENsYXNzXG4gIH1cblxuICB2YWxpZGF0ZSAoe21vZGVsLCBwcm9wTmFtZX0pIHtcbiAgICBpZiAodGhpcy5fd2l0aE1vZGVsVHlwZSAmJiB0aGlzLl93aXRoTW9kZWxUeXBlLm5hbWUgIT0gbW9kZWwuY29uc3RydWN0b3IubmFtZSlcbiAgICAgIHJldHVybiBuZXcgRXJyb3IoYEV4cGVjdGVkICR7cHJvcE5hbWV9IHRvIGJlIG9mIHR5cGUgJHt0aGlzLl93aXRoTW9kZWxUeXBlLm5hbWV9IGJ1dCBpdCB3YXNuJ3Q6ICR7bW9kZWwuY29uc3RydWN0b3IubmFtZX1gKVxuXG4gICAgaWYgKHRoaXMuX3dpdGhMb2FkZWRBYmlsaXRpZXMpIHtcbiAgICAgIGZvciAoY29uc3QgYWJpbGl0eU5hbWUgb2YgdGhpcy5fd2l0aExvYWRlZEFiaWxpdGllcykge1xuICAgICAgICBjb25zdCB1bmRlcnNjb3JlQWJpbGl0eU5hbWUgPSBJbmZsZWN0aW9uLnVuZGVyc2NvcmUoYWJpbGl0eU5hbWUpXG5cbiAgICAgICAgaWYgKCEodW5kZXJzY29yZUFiaWxpdHlOYW1lIGluIG1vZGVsLmFiaWxpdGllcykpXG4gICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihgVGhlIGFiaWxpdHkgJHthYmlsaXR5TmFtZX0gd2FzIHJlcXVpcmVkIHRvIGJlIGxvYWRlZCBpbiAke3Byb3BOYW1lfSBvZiB0aGUgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfSB0eXBlIGJ1dCBpdCB3YXNuJ3RgKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLl93aXRoTG9hZGVkQXNzb2NpYXRpb25zKSB7XG4gICAgICBmb3IgKGNvbnN0IGFzc29jaWF0aW9uTmFtZSBpbiB0aGlzLl93aXRoTG9hZGVkQXNzb2NpYXRpb25zKSB7XG4gICAgICAgIGNvbnN0IGFzc29jaWF0aW9uTW9kZWxQcm9wVHlwZSA9IGRpZ2codGhpcy5fd2l0aExvYWRlZEFzc29jaWF0aW9ucywgYXNzb2NpYXRpb25OYW1lKVxuICAgICAgICBjb25zdCB1bmRlcnNjb3JlQXNzb2NpYXRpb25OYW1lID0gSW5mbGVjdGlvbi51bmRlcnNjb3JlKGFzc29jaWF0aW9uTmFtZSlcblxuICAgICAgICBpZiAoISh1bmRlcnNjb3JlQXNzb2NpYXRpb25OYW1lIGluIG1vZGVsLnJlbGF0aW9uc2hpcHNDYWNoZSkpXG4gICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihgVGhlIGFzc29jaWF0aW9uICR7YXNzb2NpYXRpb25OYW1lfSB3YXMgcmVxdWlyZWQgdG8gYmUgbG9hZGVkIGluICR7cHJvcE5hbWV9IG9mIHRoZSAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9IHR5cGUgYnV0IGl0IHdhc24ndGApXG5cbiAgICAgICAgY29uc3QgYXNzb2NpYXRpb25DYWNoZSA9IGRpZ2cobW9kZWwucmVsYXRpb25zaGlwc0NhY2hlLCB1bmRlcnNjb3JlQXNzb2NpYXRpb25OYW1lKVxuXG4gICAgICAgIC8vIEZpbmQgYSBtb2RlbCB0byBydW4gc3ViLW1vZGVsLXByb3AtdHlwZS12YWxpZGF0aW9ucyBvblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhc3NvY2lhdGlvbkNhY2hlKSkge1xuICAgICAgICAgIGZvciAoY29uc3QgcHJlbG9hZGVkTW9kZWwgb2YgYXNzb2NpYXRpb25DYWNoZSkge1xuICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGFzc29jaWF0aW9uTW9kZWxQcm9wVHlwZS52YWxpZGF0ZSh7XG4gICAgICAgICAgICAgIG1vZGVsOiBwcmVsb2FkZWRNb2RlbCxcbiAgICAgICAgICAgICAgcHJvcE5hbWU6IGAke3Byb3BOYW1lfS4ke2Fzc29jaWF0aW9uTmFtZX1gXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBpZiAodmFsaWRhdGlvblJlc3VsdCkgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHRcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoYXNzb2NpYXRpb25DYWNoZSkge1xuICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBhc3NvY2lhdGlvbk1vZGVsUHJvcFR5cGUudmFsaWRhdGUoe1xuICAgICAgICAgICAgbW9kZWw6IGFzc29jaWF0aW9uQ2FjaGUsXG4gICAgICAgICAgICBwcm9wTmFtZTogYCR7cHJvcE5hbWV9LiR7YXNzb2NpYXRpb25OYW1lfWBcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQpIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fd2l0aExvYWRlZEF0dHJpYnV0ZXMgJiYgbW9kZWwuaXNQZXJzaXN0ZWQoKSkge1xuICAgICAgZm9yIChjb25zdCBhdHRyaWJ1dGVOYW1lIG9mIHRoaXMuX3dpdGhMb2FkZWRBdHRyaWJ1dGVzKSB7XG4gICAgICAgIGNvbnN0IHVuZGVyc2NvcmVBdHRyaWJ1dGVOYW1lID0gSW5mbGVjdGlvbi51bmRlcnNjb3JlKGF0dHJpYnV0ZU5hbWUpXG5cbiAgICAgICAgaWYgKCEodW5kZXJzY29yZUF0dHJpYnV0ZU5hbWUgaW4gbW9kZWwubW9kZWxEYXRhKSkge1xuICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoYFRoZSBhdHRyaWJ1dGUgJHthdHRyaWJ1dGVOYW1lfSB3YXMgcmVxdWlyZWQgdG8gYmUgbG9hZGVkIGluICR7cHJvcE5hbWV9IG9mIHRoZSAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9IHR5cGUgYnV0IGl0IHdhc24ndGApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB3aXRoTG9hZGVkQWJpbGl0aWVzIChhcnJheU9mQWJpbGl0aWVzKSB7XG4gICAgdGhpcy5fd2l0aExvYWRlZEFiaWxpdGllcyA9IGFycmF5T2ZBYmlsaXRpZXNcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICB3aXRoTG9hZGVkQXNzb2NpYXRpb24gKGFzc29jaWF0aW9uTmFtZSkge1xuICAgIGNvbnN0IGFzc29jaWF0aW9uTW9kZWxQcm9wVHlwZSA9IG5ldyBBcGlNYWtlck1vZGVsUHJvcFR5cGUoKVxuXG4gICAgYXNzb2NpYXRpb25Nb2RlbFByb3BUeXBlLnNldFByZXZpb3VzTW9kZWxQcm9wVHlwZSh0aGlzKVxuICAgIHRoaXMuX3dpdGhMb2FkZWRBc3NvY2lhdGlvbnNbYXNzb2NpYXRpb25OYW1lXSA9IGFzc29jaWF0aW9uTW9kZWxQcm9wVHlwZVxuXG4gICAgcmV0dXJuIGFzc29jaWF0aW9uTW9kZWxQcm9wVHlwZVxuICB9XG5cbiAgd2l0aExvYWRlZEF0dHJpYnV0ZXMgKGFycmF5T2ZBdHRyaWJ1dGVzKSB7XG4gICAgdGhpcy5fd2l0aExvYWRlZEF0dHJpYnV0ZXMgPSBhcnJheU9mQXR0cmlidXRlc1xuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxJQUFJLFFBQU8sV0FBVztBQUM5QixPQUFPQyxVQUFVLE1BQU0sWUFBWTtBQUVuQyxlQUFlLE1BQU1DLHFCQUFxQixDQUFDO0VBQ3pDLE9BQU9DLE9BQU9BLENBQUVDLFVBQVUsRUFBRTtJQUMxQixNQUFNQyxxQkFBcUIsR0FBRyxJQUFJSCxxQkFBcUIsQ0FBQyxDQUFDO0lBRXpERyxxQkFBcUIsQ0FBQ0MsYUFBYSxDQUFDRixVQUFVLENBQUM7SUFFL0MsT0FBT0MscUJBQXFCO0VBQzlCO0VBRUFFLFdBQVdBLENBQUEsRUFBSTtJQUNi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
@@ -0,0 +1,32 @@
1
+ import { digg, digs } from "diggerize";
2
+ import ModelRecipesModelLoader from "./model-recipes-model-loader";
3
+ export default class ModelRecipesLoader {
4
+ constructor({
5
+ recipes
6
+ }) {
7
+ this.modelClasses = {};
8
+ this.recipes = recipes;
9
+ }
10
+ getModelClass(name) {
11
+ return digg(this, "modelClasses", name);
12
+ }
13
+ load() {
14
+ const {
15
+ recipes
16
+ } = digs(this, "recipes");
17
+ const {
18
+ models
19
+ } = digs(recipes, "models");
20
+ for (const modelName in models) {
21
+ const modelRecipe = models[modelName];
22
+ const modelClassLoader = new ModelRecipesModelLoader({
23
+ modelRecipe,
24
+ modelRecipesLoader: this
25
+ });
26
+ const modelClass = modelClassLoader.createClass();
27
+ this.modelClasses[modelName] = modelClass;
28
+ }
29
+ return this.modelClasses;
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiZGlncyIsIk1vZGVsUmVjaXBlc01vZGVsTG9hZGVyIiwiTW9kZWxSZWNpcGVzTG9hZGVyIiwiY29uc3RydWN0b3IiLCJyZWNpcGVzIiwibW9kZWxDbGFzc2VzIiwiZ2V0TW9kZWxDbGFzcyIsIm5hbWUiLCJsb2FkIiwibW9kZWxzIiwibW9kZWxOYW1lIiwibW9kZWxSZWNpcGUiLCJtb2RlbENsYXNzTG9hZGVyIiwibW9kZWxSZWNpcGVzTG9hZGVyIiwibW9kZWxDbGFzcyIsImNyZWF0ZUNsYXNzIl0sInNvdXJjZXMiOlsiLi4vc3JjL21vZGVsLXJlY2lwZXMtbG9hZGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZywgZGlnc30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgTW9kZWxSZWNpcGVzTW9kZWxMb2FkZXIgZnJvbSBcIi4vbW9kZWwtcmVjaXBlcy1tb2RlbC1sb2FkZXJcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2RlbFJlY2lwZXNMb2FkZXIge1xuICBjb25zdHJ1Y3RvciAoe3JlY2lwZXN9KSB7XG4gICAgdGhpcy5tb2RlbENsYXNzZXMgPSB7fVxuICAgIHRoaXMucmVjaXBlcyA9IHJlY2lwZXNcbiAgfVxuXG4gIGdldE1vZGVsQ2xhc3MgKG5hbWUpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLCBcIm1vZGVsQ2xhc3Nlc1wiLCBuYW1lKVxuICB9XG5cbiAgbG9hZCAoKSB7XG4gICAgY29uc3Qge3JlY2lwZXN9ID0gZGlncyh0aGlzLCBcInJlY2lwZXNcIilcbiAgICBjb25zdCB7bW9kZWxzfSA9IGRpZ3MocmVjaXBlcywgXCJtb2RlbHNcIilcblxuICAgIGZvciAoY29uc3QgbW9kZWxOYW1lIGluIG1vZGVscykge1xuICAgICAgY29uc3QgbW9kZWxSZWNpcGUgPSBtb2RlbHNbbW9kZWxOYW1lXVxuICAgICAgY29uc3QgbW9kZWxDbGFzc0xvYWRlciA9IG5ldyBNb2RlbFJlY2lwZXNNb2RlbExvYWRlcih7bW9kZWxSZWNpcGUsIG1vZGVsUmVjaXBlc0xvYWRlcjogdGhpc30pXG4gICAgICBjb25zdCBtb2RlbENsYXNzID0gbW9kZWxDbGFzc0xvYWRlci5jcmVhdGVDbGFzcygpXG5cbiAgICAgIHRoaXMubW9kZWxDbGFzc2VzW21vZGVsTmFtZV0gPSBtb2RlbENsYXNzXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubW9kZWxDbGFzc2VzXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsSUFBSSxFQUFFQyxJQUFJLFFBQU8sV0FBVztBQUNwQyxPQUFPQyx1QkFBdUIsTUFBTSw4QkFBOEI7QUFFbEUsZUFBZSxNQUFNQyxrQkFBa0IsQ0FBQztFQUN0Q0MsV0FBV0EsQ0FBRTtJQUFDQztFQUFPLENBQUMsRUFBRTtJQUN0QixJQUFJLENBQUNDLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDdEIsSUFBSSxDQUFDRCxPQUFPLEdBQUdBLE9BQU87RUFDeEI7RUFFQUUsYUFBYUEsQ0FBRUMsSUFBSSxFQUFFO0lBQ25CLE9BQU9SLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFUSxJQUFJLENBQUM7RUFDekM7RUFFQUMsSUFBSUEsQ0FBQSxFQUFJO0lBQ04sTUFBTTtNQUFDSjtJQUFPLENBQUMsR0FBR0osSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUM7SUFDdkMsTUFBTTtNQUFDUztJQUFNLENBQUMsR0FBR1QsSUFBSSxDQUFDSSxPQUFPLEVBQUUsUUFBUSxDQUFDO0lBRXhDLEtBQUssTUFBTU0sU0FBUyxJQUFJRCxNQUFNLEVBQUU7TUFDOUIsTUFBTUUsV0FBVyxHQUFHRixNQUFNLENBQUNDLFNBQVMsQ0FBQztNQUNyQyxNQUFNRSxnQkFBZ0IsR0FBRyxJQUFJWCx1QkFBdUIsQ0FBQztRQUFDVSxXQUFXO1FBQUVFLGtCQUFrQixFQUFFO01BQUksQ0FBQyxDQUFDO01BQzdGLE1BQU1DLFVBQVUsR0FBR0YsZ0JBQWdCLENBQUNHLFdBQVcsQ0FBQyxDQUFDO01BRWpELElBQUksQ0FBQ1YsWUFBWSxDQUFDSyxTQUFTLENBQUMsR0FBR0ksVUFBVTtJQUMzQztJQUVBLE9BQU8sSUFBSSxDQUFDVCxZQUFZO0VBQzFCO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=