@kaspernj/api-maker 1.0.2011 → 1.0.2012

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 (410) hide show
  1. package/{.eslintrc.cjs → .eslintrc.js} +10 -1
  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.js +135 -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 +129 -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 +131 -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 +9 -0
  34. package/build/collection-loader.js +48 -0
  35. package/build/collection.js +280 -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 +62 -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 +112 -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-emitter-listener.js +15 -0
  52. package/build/event-model-class.js +24 -0
  53. package/build/events.js +5 -0
  54. package/build/flash-message.js +79 -0
  55. package/build/form.js +83 -0
  56. package/build/history-expo.js +20 -0
  57. package/build/history-react-native.js +20 -0
  58. package/build/history.js +3 -0
  59. package/build/index.js +3 -0
  60. package/build/inputs/attachment.js +133 -0
  61. package/build/inputs/auto-submit.js +36 -0
  62. package/build/inputs/checkbox.js +138 -0
  63. package/build/inputs/checkboxes.js +112 -0
  64. package/build/inputs/id-for-component.js +15 -0
  65. package/build/inputs/input-wrapper.js +19 -0
  66. package/build/inputs/input.js +243 -0
  67. package/build/inputs/money.js +179 -0
  68. package/build/inputs/name-for-component.js +13 -0
  69. package/build/inputs/select.js +93 -0
  70. package/build/instance-of-class-name.js +23 -0
  71. package/build/key-value-store.js +53 -0
  72. package/build/link.js +73 -0
  73. package/build/logger.js +30 -0
  74. package/build/modal.js +38 -0
  75. package/build/model-class-require.js +13 -0
  76. package/build/model-events.js +30 -0
  77. package/build/model-name.js +28 -0
  78. package/build/model-prop-type.js +101 -0
  79. package/build/model-recipes-loader.js +32 -0
  80. package/build/model-recipes-model-loader.js +357 -0
  81. package/build/models-response-reader.js +40 -0
  82. package/build/models.js +8 -0
  83. package/build/money-formatter.js +78 -0
  84. package/build/not-loaded-error.js +2 -0
  85. package/build/params.js +61 -0
  86. package/build/preloaded.js +38 -0
  87. package/build/resize-observer.js +11 -0
  88. package/build/result.js +13 -0
  89. package/build/router/route.js +270 -0
  90. package/build/router/switch.js +72 -0
  91. package/build/router.js +59 -0
  92. package/build/routes-native.js +202 -0
  93. package/build/routes.js +50 -0
  94. package/build/run-last.js +35 -0
  95. package/build/serializer.js +63 -0
  96. package/build/services.js +20 -0
  97. package/build/session-status-updater.js +134 -0
  98. package/build/source-maps-loader.js +184 -0
  99. package/build/super-admin/config-reader.js +85 -0
  100. package/build/super-admin/edit-page/edit-attribute-checkbox.js +85 -0
  101. package/build/super-admin/edit-page/edit-attribute-content.js +55 -0
  102. package/build/super-admin/edit-page/edit-attribute-input.js +79 -0
  103. package/build/super-admin/edit-page/edit-attribute.js +77 -0
  104. package/build/super-admin/edit-page.js +123 -0
  105. package/build/super-admin/has-edit-config.js +12 -0
  106. package/build/super-admin/index-page.js +25 -0
  107. package/build/super-admin/index.js +181 -0
  108. package/build/super-admin/layout/header/index.js +161 -0
  109. package/build/super-admin/layout/index.js +164 -0
  110. package/build/super-admin/layout/menu/index.js +206 -0
  111. package/build/super-admin/layout/menu/menu-content.js +46 -0
  112. package/build/super-admin/layout/menu/menu-item.js +84 -0
  113. package/build/super-admin/layout/no-access.js +27 -0
  114. package/build/super-admin/model-class-table.js +61 -0
  115. package/build/super-admin/models.js +8 -0
  116. package/build/super-admin/show-nav.js +51 -0
  117. package/build/super-admin/show-page/belongs-to-attribute-row.js +29 -0
  118. package/build/super-admin/show-page/index.js +141 -0
  119. package/build/super-admin/show-reflection-actions.js +47 -0
  120. package/build/super-admin/show-reflection-link.js +48 -0
  121. package/build/super-admin/show-reflection-page.js +48 -0
  122. package/build/table/column-content.js +117 -0
  123. package/build/table/column-identifier.js +18 -0
  124. package/build/table/column-visible.js +7 -0
  125. package/build/table/components/column.js +21 -0
  126. package/build/table/components/flat-list.js +21 -0
  127. package/build/table/components/header.js +26 -0
  128. package/build/table/components/row.js +26 -0
  129. package/build/table/filters/attribute-element.js +44 -0
  130. package/build/table/filters/filter-form.js +402 -0
  131. package/build/table/filters/filter.js +90 -0
  132. package/build/table/filters/index.js +184 -0
  133. package/build/table/filters/load-search-modal.js +175 -0
  134. package/build/table/filters/reflection-element.js +37 -0
  135. package/build/table/filters/save-search-modal.js +88 -0
  136. package/build/table/filters/scope-element.js +42 -0
  137. package/build/table/header-column-content.js +68 -0
  138. package/build/table/header-column.js +144 -0
  139. package/build/table/header-select.js +105 -0
  140. package/build/table/model-callback-args.js +10 -0
  141. package/build/table/model-column.js +97 -0
  142. package/build/table/model-row.js +193 -0
  143. package/build/table/select-calculator.js +63 -0
  144. package/build/table/settings/column-row.js +97 -0
  145. package/build/table/settings/download-action.js +79 -0
  146. package/build/table/settings/index.js +92 -0
  147. package/build/table/table-settings.js +219 -0
  148. package/build/table/table.js +972 -0
  149. package/build/table/use-sorting.js +34 -0
  150. package/build/table/widths.js +75 -0
  151. package/build/table/worker-plugins-check-all-checkbox.js +125 -0
  152. package/build/table/worker-plugins-checkbox.js +115 -0
  153. package/build/translated-attributes.js +10 -0
  154. package/build/translated-collections.js +12 -0
  155. package/build/updated-attribute.js +76 -0
  156. package/build/url-encode.js +15 -0
  157. package/build/use-breakpoint.js +62 -0
  158. package/build/use-can-can.js +55 -0
  159. package/build/use-collection.js +225 -0
  160. package/build/use-created-event.js +52 -0
  161. package/build/use-current-user.js +76 -0
  162. package/build/use-destroyed-event.js +60 -0
  163. package/build/use-event-emitter.js +13 -0
  164. package/build/use-event-listener.js +16 -0
  165. package/build/use-input.js +137 -0
  166. package/build/use-model-event.js +60 -0
  167. package/build/use-model.js +169 -0
  168. package/build/use-resize-observer.js +23 -0
  169. package/build/use-router.js +104 -0
  170. package/build/use-screen-layout.js +39 -0
  171. package/build/use-updated-event.js +60 -0
  172. package/build/use-validation-errors.js +30 -0
  173. package/build/utils/card.js +51 -0
  174. package/build/utils/checkbox.js +78 -0
  175. package/build/utils/checkboxes.js +163 -0
  176. package/build/utils/default-style.js +18 -0
  177. package/build/utils/icon.js +23 -0
  178. package/build/utils/invalid-feedback.js +19 -0
  179. package/build/utils/modal.js +62 -0
  180. package/build/utils/text.js +19 -0
  181. package/build/validation-error.js +28 -0
  182. package/build/validation-errors.js +98 -0
  183. package/build/with-api-maker.js +29 -0
  184. package/build/with-collection.js +14 -0
  185. package/build/with-current-user.js +10 -0
  186. package/build/with-model.js +15 -0
  187. package/build/with-router.js +22 -0
  188. package/expo-module.config.json +17 -0
  189. package/ios/ApiMaker.podspec +29 -0
  190. package/ios/ApiMakerModule.swift +48 -0
  191. package/ios/ApiMakerView.swift +38 -0
  192. package/link.sh +8 -0
  193. package/package.json +49 -46
  194. package/src/{api.mjs → api.js} +38 -37
  195. package/src/base-component.jsx +5 -0
  196. package/src/{base-error.mjs → base-error.js} +4 -6
  197. package/src/base-model/attribute.js +33 -0
  198. package/src/base-model/column.js +13 -0
  199. package/src/base-model/reflection.js +15 -0
  200. package/src/base-model/scope.js +12 -0
  201. package/src/{base-model.mjs → base-model.js} +302 -144
  202. package/src/bootstrap/attribute-row.jsx +135 -0
  203. package/src/bootstrap/attribute-rows.jsx +27 -0
  204. package/src/bootstrap/card.jsx +149 -0
  205. package/src/bootstrap/checkbox.jsx +86 -0
  206. package/src/bootstrap/checkboxes.jsx +185 -0
  207. package/src/bootstrap/index.js +0 -0
  208. package/src/bootstrap/input.jsx +173 -0
  209. package/src/bootstrap/invalid-feedback.jsx +31 -0
  210. package/src/bootstrap/paginate.jsx +187 -0
  211. package/src/bootstrap/radio-buttons.jsx +87 -0
  212. package/src/bootstrap/select.jsx +110 -0
  213. package/src/bootstrap/sort-link.jsx +106 -0
  214. package/src/{cable-connection-pool.mjs → cable-connection-pool.js} +16 -36
  215. package/src/{cable-subscription-pool.mjs → cable-subscription-pool.js} +26 -21
  216. package/src/{cable-subscription.mjs → cable-subscription.js} +6 -4
  217. package/src/cache-key-generator.js +100 -0
  218. package/src/{can-can.mjs → can-can.js} +13 -12
  219. package/src/channels-consumer.js +10 -0
  220. package/src/collection-loader.jsx +58 -224
  221. package/src/{collection.mjs → collection.js} +98 -44
  222. package/src/{command-submit-data.mjs → command-submit-data.js} +2 -7
  223. package/src/{commands-pool.mjs → commands-pool.js} +57 -41
  224. package/src/compose.js +11 -0
  225. package/src/{config.mjs → config.js} +6 -2
  226. package/src/{custom-error.mjs → custom-error.js} +1 -1
  227. package/src/data-set-to-attributes.js +13 -0
  228. package/src/{deserializer.mjs → deserializer.js} +3 -3
  229. package/src/destroy-error.js +7 -0
  230. package/src/devise.js +129 -0
  231. package/src/draggable-sort/controller.js +137 -0
  232. package/src/draggable-sort/index.jsx +108 -0
  233. package/src/draggable-sort/item.jsx +174 -0
  234. package/src/{error-logger.mjs → error-logger.js} +12 -7
  235. package/src/{error-messages.mjs → error-messages.js} +1 -0
  236. package/src/event-connection.jsx +1 -1
  237. package/src/event-emitter-listener.jsx +8 -27
  238. package/src/event-model-class.jsx +2 -4
  239. package/src/events.js +7 -0
  240. package/src/flash-message.js +70 -0
  241. package/src/form.jsx +91 -0
  242. package/src/history-expo.js +23 -0
  243. package/src/history-react-native.js +25 -0
  244. package/src/history.js +3 -0
  245. package/src/index.js +3 -0
  246. package/src/inputs/attachment.jsx +108 -0
  247. package/src/inputs/auto-submit.js +37 -0
  248. package/src/inputs/checkbox.jsx +125 -0
  249. package/src/inputs/checkboxes.jsx +116 -0
  250. package/src/inputs/id-for-component.js +15 -0
  251. package/src/inputs/input-wrapper.jsx +16 -0
  252. package/src/inputs/input.jsx +260 -0
  253. package/src/inputs/money.jsx +187 -0
  254. package/src/inputs/name-for-component.js +15 -0
  255. package/src/inputs/select.jsx +104 -0
  256. package/src/{key-value-store.mjs → key-value-store.js} +1 -1
  257. package/src/link.jsx +54 -9
  258. package/src/logger.js +38 -0
  259. package/src/modal.jsx +37 -0
  260. package/src/model-class-require.js +17 -0
  261. package/src/{model-events.mjs → model-events.js} +1 -1
  262. package/src/{model-name.mjs → model-name.js} +8 -8
  263. package/src/{model-recipes-loader.mjs → model-recipes-loader.js} +1 -1
  264. package/src/{model-recipes-model-loader.mjs → model-recipes-model-loader.js} +5 -5
  265. package/src/{models-response-reader.mjs → models-response-reader.js} +3 -4
  266. package/src/models.js +7 -0
  267. package/src/{models.mjs.erb → models.js.erb} +6 -3
  268. package/src/{money-formatter.mjs → money-formatter.js} +5 -4
  269. package/src/{params.mjs → params.js} +17 -7
  270. package/src/{preloaded.mjs → preloaded.js} +2 -2
  271. package/src/resize-observer.jsx +10 -0
  272. package/src/result.js +13 -0
  273. package/src/router/route.jsx +246 -0
  274. package/src/router/switch.jsx +76 -0
  275. package/src/router.jsx +23 -21
  276. package/src/{routes-native.mjs → routes-native.js} +12 -6
  277. package/src/{routes.mjs → routes.js} +1 -1
  278. package/src/run-last.js +39 -0
  279. package/src/{serializer.mjs → serializer.js} +2 -2
  280. package/src/{services.mjs → services.js} +1 -1
  281. package/src/session-status-updater.js +172 -0
  282. package/src/{source-maps-loader.mjs → source-maps-loader.js} +54 -28
  283. package/src/super-admin/config-reader.jsx +93 -0
  284. package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +81 -0
  285. package/src/super-admin/edit-page/edit-attribute-content.jsx +57 -0
  286. package/src/super-admin/edit-page/edit-attribute-input.jsx +71 -0
  287. package/src/super-admin/edit-page/edit-attribute.jsx +81 -0
  288. package/src/super-admin/edit-page.jsx +117 -0
  289. package/src/super-admin/has-edit-config.js +15 -0
  290. package/src/super-admin/index-page.jsx +23 -0
  291. package/src/super-admin/index.jsx +197 -0
  292. package/src/super-admin/layout/header/index.jsx +144 -0
  293. package/src/super-admin/layout/header/style.scss +45 -0
  294. package/src/super-admin/layout/index.jsx +154 -0
  295. package/src/super-admin/layout/menu/index.jsx +171 -0
  296. package/src/super-admin/layout/menu/menu-content.jsx +43 -0
  297. package/src/super-admin/layout/menu/menu-item.jsx +70 -0
  298. package/src/super-admin/layout/menu/style.scss +11 -0
  299. package/src/super-admin/layout/no-access.jsx +26 -0
  300. package/src/super-admin/model-class-table.jsx +66 -0
  301. package/src/super-admin/models.js +11 -0
  302. package/src/super-admin/show-nav.jsx +44 -0
  303. package/src/super-admin/show-page/belongs-to-attribute-row.jsx +30 -0
  304. package/src/super-admin/show-page/index.jsx +141 -0
  305. package/src/super-admin/show-reflection-actions.jsx +49 -0
  306. package/src/super-admin/show-reflection-link.jsx +40 -0
  307. package/src/super-admin/show-reflection-page.jsx +47 -0
  308. package/src/super-admin/stylesheets/variables.scss +11 -0
  309. package/src/table/column-content.jsx +122 -0
  310. package/src/table/column-identifier.js +23 -0
  311. package/src/table/column-visible.js +7 -0
  312. package/src/table/components/column.jsx +19 -0
  313. package/src/table/components/flat-list.jsx +19 -0
  314. package/src/table/components/header.jsx +21 -0
  315. package/src/table/components/row.jsx +23 -0
  316. package/src/table/filters/attribute-element.jsx +47 -0
  317. package/src/table/filters/filter-form.jsx +407 -0
  318. package/src/table/filters/filter.jsx +70 -0
  319. package/src/table/filters/index.jsx +170 -0
  320. package/src/table/filters/load-search-modal.jsx +146 -0
  321. package/src/table/filters/reflection-element.jsx +38 -0
  322. package/src/table/filters/save-search-modal.jsx +74 -0
  323. package/src/table/filters/scope-element.jsx +44 -0
  324. package/src/table/header-column-content.jsx +55 -0
  325. package/src/table/header-column.jsx +129 -0
  326. package/src/table/header-select.jsx +73 -0
  327. package/src/table/model-callback-args.js +10 -0
  328. package/src/table/model-column.jsx +82 -0
  329. package/src/table/model-row.jsx +136 -0
  330. package/src/table/select-calculator.js +65 -0
  331. package/src/table/settings/column-row.jsx +93 -0
  332. package/src/table/settings/download-action.jsx +68 -0
  333. package/src/table/settings/index.jsx +65 -0
  334. package/src/table/table-settings.js +263 -0
  335. package/src/table/table.jsx +950 -0
  336. package/src/table/use-sorting.js +35 -0
  337. package/src/table/variables.scss +11 -0
  338. package/src/table/widths.jsx +87 -0
  339. package/src/table/worker-plugins-check-all-checkbox.jsx +112 -0
  340. package/src/table/worker-plugins-checkbox.jsx +104 -0
  341. package/src/translated-attributes.js +11 -0
  342. package/src/{translated-collections.mjs → translated-collections.js} +3 -2
  343. package/src/updated-attribute.jsx +1 -1
  344. package/src/url-encode.js +18 -0
  345. package/src/use-breakpoint.js +76 -0
  346. package/src/use-can-can.js +55 -0
  347. package/src/use-collection.js +280 -0
  348. package/src/use-created-event.js +55 -0
  349. package/src/use-current-user.js +88 -0
  350. package/src/use-destroyed-event.js +60 -0
  351. package/src/use-event-emitter.js +15 -0
  352. package/src/use-event-listener.js +19 -0
  353. package/src/use-input.js +157 -0
  354. package/src/use-model-event.js +60 -0
  355. package/src/use-model.js +189 -0
  356. package/src/use-resize-observer.js +24 -0
  357. package/src/use-router.jsx +128 -0
  358. package/src/use-screen-layout.js +49 -0
  359. package/src/use-updated-event.js +60 -0
  360. package/src/use-validation-errors.js +33 -0
  361. package/src/utils/card.jsx +49 -0
  362. package/src/utils/checkbox.jsx +80 -0
  363. package/src/utils/checkboxes.jsx +158 -0
  364. package/src/utils/default-style.jsx +25 -0
  365. package/src/utils/icon.jsx +21 -0
  366. package/src/utils/invalid-feedback.jsx +20 -0
  367. package/src/utils/modal.jsx +60 -0
  368. package/src/utils/text.jsx +16 -0
  369. package/src/{validation-error.mjs → validation-error.js} +9 -5
  370. package/src/{validation-errors.mjs → validation-errors.js} +15 -27
  371. package/src/with-api-maker.jsx +31 -0
  372. package/src/with-collection.jsx +17 -0
  373. package/src/with-current-user.jsx +7 -25
  374. package/src/with-model.jsx +16 -0
  375. package/src/with-router.jsx +7 -129
  376. package/__tests__/base-model.test.js +0 -71
  377. package/__tests__/cable-connection-pool.test.js +0 -227
  378. package/__tests__/cable-subscription-pool.test.js +0 -26
  379. package/__tests__/can-can.test.js +0 -34
  380. package/__tests__/collection.test.js +0 -51
  381. package/__tests__/custom-error.test.js +0 -13
  382. package/__tests__/model-name.test.js +0 -34
  383. package/__tests__/model-prop-type.test.js +0 -113
  384. package/__tests__/params.test.js +0 -40
  385. package/__tests__/routes-native.test.js +0 -103
  386. package/__tests__/routes.test.js +0 -46
  387. package/__tests__/serializer.test.js +0 -30
  388. package/__tests__/support/task.js +0 -27
  389. package/__tests__/support/user.js +0 -32
  390. package/index.js +0 -1
  391. package/jest.config.js +0 -4
  392. package/src/can-can-loader.jsx +0 -54
  393. package/src/channels-consumer.mjs +0 -3
  394. package/src/destroy-error.mjs +0 -7
  395. package/src/devise.mjs +0 -122
  396. package/src/event-created.jsx +0 -65
  397. package/src/event-destroyed.jsx +0 -29
  398. package/src/event-listener.jsx +0 -38
  399. package/src/event-updated.jsx +0 -74
  400. package/src/logger.mjs +0 -25
  401. package/src/model-class-require.mjs +0 -10
  402. package/src/model-load-wrapper.jsx +0 -116
  403. package/src/result.mjs +0 -29
  404. package/src/session-status-updater.mjs +0 -116
  405. package/webpack.config.js +0 -15
  406. /package/src/{attribute-not-loaded-error.mjs → attribute-not-loaded-error.js} +0 -0
  407. /package/src/{instance-of-class-name.mjs → instance-of-class-name.js} +0 -0
  408. /package/src/{model-prop-type.mjs → model-prop-type.js} +0 -0
  409. /package/src/{not-loaded-error.mjs → not-loaded-error.js} +0 -0
  410. /package/src/{translated-collections-data.mjs.erb → translated-collections-data.js.erb} +0 -0
@@ -1,10 +1,14 @@
1
1
  module.exports = {
2
+ root: true,
3
+ ignorePatterns: ['build'],
2
4
  env: {
3
5
  browser: true,
4
6
  commonjs: true,
5
7
  es2021: true
6
8
  },
7
9
  extends: [
10
+ 'universe/native',
11
+ 'universe/web',
8
12
  "eslint:recommended",
9
13
  "plugin:react/recommended",
10
14
  "plugin:jest/recommended"
@@ -66,6 +70,7 @@ module.exports = {
66
70
  "implicit-arrow-linebreak": "error",
67
71
  "indent": ["error", 2, {"MemberExpression": "off"}],
68
72
  "init-declarations": "off",
73
+ "jest/max-expects": "error",
69
74
  "jest/max-nested-describe": "error",
70
75
  "jest/no-alias-methods": "error",
71
76
  "jest/no-conditional-in-test": "error",
@@ -74,12 +79,15 @@ module.exports = {
74
79
  "jest/no-if": "error",
75
80
  "jest/no-large-snapshots": "error",
76
81
  "jest/no-restricted-matchers": "error",
82
+ "jest/no-restricted-jest-methods": "error",
77
83
  "jest/no-test-return-statement": "error",
78
84
  "jest/prefer-comparison-matcher": "error",
85
+ "jest/prefer-each": "error",
79
86
  "jest/prefer-equality-matcher": "error",
80
87
  "jest/prefer-expect-resolves": "off", // Needs configuration and no documentation could be found?
81
88
  "jest/prefer-hooks-on-top": "error",
82
89
  "jest/prefer-lowercase-title": "off",
90
+ "jest/prefer-mock-promise-shorthand": "error",
83
91
  "prefer-object-has-own": "error",
84
92
  "jest/prefer-snapshot-hint": "error",
85
93
  "jest/prefer-to-be": "off", // Needs configuration and no documentation could be found?
@@ -97,6 +105,7 @@ module.exports = {
97
105
  "line-comment-position": "off",
98
106
  "lines-around-comment": "error",
99
107
  "lines-between-class-members": "off",
108
+ "logical-assignment-operators": "error",
100
109
  "max-classes-per-file": "off",
101
110
  "max-depth": "error",
102
111
  "max-nested-callbacks": "error",
@@ -249,7 +258,7 @@ module.exports = {
249
258
  "react/jsx-props-no-multi-spaces": "error",
250
259
  "react/jsx-props-no-spreading": "off",
251
260
  "react/jsx-sort-default-props": "error",
252
- "react/jsx-sort-props": "error",
261
+ "react/jsx-sort-props": ["error", {ignoreCase: true}],
253
262
  "react/jsx-tag-spacing": "error",
254
263
  "react/jsx-wrap-multilines": "error",
255
264
  "react/jsx-max-props-per-line": "off",
package/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # api-maker
2
+
3
+ My new module
4
+
5
+ # API documentation
6
+
7
+ - [Documentation for the latest stable release](https://docs.expo.dev/versions/latest/sdk/api-maker/)
8
+ - [Documentation for the main branch](https://docs.expo.dev/versions/unversioned/sdk/api-maker/)
9
+
10
+ # Installation in managed Expo projects
11
+
12
+ For [managed](https://docs.expo.dev/archive/managed-vs-bare/) Expo projects, please follow the installation instructions in the [API documentation for the latest stable release](#api-documentation). If you follow the link and there is no documentation available then this library is not yet usable within managed projects — it is likely to be included in an upcoming Expo SDK release.
13
+
14
+ # Installation in bare React Native projects
15
+
16
+ For bare React Native projects, you must ensure that you have [installed and configured the `expo` package](https://docs.expo.dev/bare/installing-expo-modules/) before continuing.
17
+
18
+ ### Add the package to your npm dependencies
19
+
20
+ ```
21
+ npm install api-maker
22
+ ```
23
+
24
+ ### Configure for Android
25
+
26
+
27
+
28
+
29
+ ### Configure for iOS
30
+
31
+ Run `npx pod-install` after installing the npm package.
32
+
33
+ # Contributing
34
+
35
+ Contributions are very welcome! Please refer to guidelines described in the [contributing guide]( https://github.com/expo/expo#contributing).
@@ -0,0 +1,43 @@
1
+ apply plugin: 'com.android.library'
2
+
3
+ group = 'expo.modules.api_maker'
4
+ version = '0.1.0'
5
+
6
+ def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
7
+ apply from: expoModulesCorePlugin
8
+ applyKotlinExpoModulesCorePlugin()
9
+ useCoreDependencies()
10
+ useExpoPublishing()
11
+
12
+ // If you want to use the managed Android SDK versions from expo-modules-core, set this to true.
13
+ // The Android SDK versions will be bumped from time to time in SDK releases and may introduce breaking changes in your module code.
14
+ // Most of the time, you may like to manage the Android SDK versions yourself.
15
+ def useManagedAndroidSdkVersions = false
16
+ if (useManagedAndroidSdkVersions) {
17
+ useDefaultAndroidSdkVersions()
18
+ } else {
19
+ buildscript {
20
+ // Simple helper that allows the root project to override versions declared by this library.
21
+ ext.safeExtGet = { prop, fallback ->
22
+ rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
23
+ }
24
+ }
25
+ project.android {
26
+ compileSdkVersion safeExtGet("compileSdkVersion", 34)
27
+ defaultConfig {
28
+ minSdkVersion safeExtGet("minSdkVersion", 21)
29
+ targetSdkVersion safeExtGet("targetSdkVersion", 34)
30
+ }
31
+ }
32
+ }
33
+
34
+ android {
35
+ namespace "expo.modules.api_maker"
36
+ defaultConfig {
37
+ versionCode 1
38
+ versionName "0.1.0"
39
+ }
40
+ lintOptions {
41
+ abortOnError false
42
+ }
43
+ }
@@ -0,0 +1,2 @@
1
+ <manifest>
2
+ </manifest>
@@ -0,0 +1,50 @@
1
+ package expo.modules.api_maker
2
+
3
+ import expo.modules.kotlin.modules.Module
4
+ import expo.modules.kotlin.modules.ModuleDefinition
5
+ import java.net.URL
6
+
7
+ class ApiMakerModule : Module() {
8
+ // Each module class must implement the definition function. The definition consists of components
9
+ // that describes the module's functionality and behavior.
10
+ // See https://docs.expo.dev/modules/module-api for more details about available components.
11
+ override fun definition() = ModuleDefinition {
12
+ // Sets the name of the module that JavaScript code will use to refer to the module. Takes a string as an argument.
13
+ // Can be inferred from module's class name, but it's recommended to set it explicitly for clarity.
14
+ // The module will be accessible from `requireNativeModule('ApiMaker')` in JavaScript.
15
+ Name("ApiMaker")
16
+
17
+ // Sets constant properties on the module. Can take a dictionary or a closure that returns a dictionary.
18
+ Constants(
19
+ "PI" to Math.PI
20
+ )
21
+
22
+ // Defines event names that the module can send to JavaScript.
23
+ Events("onChange")
24
+
25
+ // Defines a JavaScript synchronous function that runs the native code on the JavaScript thread.
26
+ Function("hello") {
27
+ "Hello world! 👋"
28
+ }
29
+
30
+ // Defines a JavaScript function that always returns a Promise and whose native code
31
+ // is by default dispatched on the different thread than the JavaScript runtime runs on.
32
+ AsyncFunction("setValueAsync") { value: String ->
33
+ // Send an event to JavaScript.
34
+ sendEvent("onChange", mapOf(
35
+ "value" to value
36
+ ))
37
+ }
38
+
39
+ // Enables the module to be used as a native view. Definition components that are accepted as part of
40
+ // the view definition: Prop, Events.
41
+ View(ApiMakerView::class) {
42
+ // Defines a setter for the `url` prop.
43
+ Prop("url") { view: ApiMakerView, url: URL ->
44
+ view.webView.loadUrl(url.toString())
45
+ }
46
+ // Defines an event that the view can send to JavaScript.
47
+ Events("onLoad")
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,30 @@
1
+ package expo.modules.api_maker
2
+
3
+ import android.content.Context
4
+ import android.webkit.WebView
5
+ import android.webkit.WebViewClient
6
+ import expo.modules.kotlin.AppContext
7
+ import expo.modules.kotlin.viewevent.EventDispatcher
8
+ import expo.modules.kotlin.views.ExpoView
9
+
10
+ class ApiMakerView(context: Context, appContext: AppContext) : ExpoView(context, appContext) {
11
+ // Creates and initializes an event dispatcher for the `onLoad` event.
12
+ // The name of the event is inferred from the value and needs to match the event name defined in the module.
13
+ private val onLoad by EventDispatcher()
14
+
15
+ // Defines a WebView that will be used as the root subview.
16
+ internal val webView = WebView(context).apply {
17
+ layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)
18
+ webViewClient = object : WebViewClient() {
19
+ override fun onPageFinished(view: WebView, url: String) {
20
+ // Sends an event to JavaScript. Triggers a callback defined on the view component in JavaScript.
21
+ onLoad(mapOf("url" to url))
22
+ }
23
+ }
24
+ }
25
+
26
+ init {
27
+ // Adds the WebView to the view hierarchy.
28
+ addView(webView)
29
+ }
30
+ }
package/build/api.js ADDED
@@ -0,0 +1,120 @@
1
+ import config from "./config";
2
+ import CustomError from "./custom-error";
3
+ import FormDataObjectizer from "form-data-objectizer";
4
+ import Logger from "./logger";
5
+ import qs from "qs";
6
+ import SessionStatusUpdater from "./session-status-updater";
7
+ import urlEncode from "./url-encode";
8
+ const logger = new Logger({
9
+ name: "ApiMaker / Api"
10
+ });
11
+
12
+ // logger.setDebug(true)
13
+
14
+ export default class Api {
15
+ static get = async (path, pathParams = null) => await Api.requestLocal({
16
+ path,
17
+ pathParams,
18
+ method: "GET"
19
+ });
20
+ static delete = async (path, pathParams = null) => await Api.requestLocal({
21
+ path,
22
+ pathParams,
23
+ method: "DELETE"
24
+ });
25
+ static patch = async (path, data = {}) => await Api.requestLocal({
26
+ path,
27
+ data,
28
+ method: "PATCH"
29
+ });
30
+ static post = async (path, data = {}) => await Api.requestLocal({
31
+ path,
32
+ data,
33
+ method: "POST"
34
+ });
35
+ static async request({
36
+ data,
37
+ headers,
38
+ method,
39
+ path,
40
+ pathParams
41
+ }) {
42
+ let requestPath = "";
43
+ if (config.getHost()) requestPath += config.getHost();
44
+ requestPath += path;
45
+ if (pathParams) {
46
+ const pathParamsString = qs.stringify(pathParams, {
47
+ arrayFormat: "brackets",
48
+ encoder: urlEncode
49
+ });
50
+ requestPath += `?${pathParamsString}`;
51
+ }
52
+ const xhr = new XMLHttpRequest();
53
+ xhr.open(method, requestPath, true);
54
+ xhr.withCredentials = true;
55
+ if (headers) {
56
+ for (const headerName in headers) {
57
+ xhr.setRequestHeader(headerName, headers[headerName]);
58
+ }
59
+ }
60
+ const response = await Api.executeXhr(xhr, data);
61
+ return response;
62
+ }
63
+ static executeXhr(xhr, data) {
64
+ return new Promise((resolve, reject) => {
65
+ xhr.onload = () => {
66
+ const response = this._parseResponse(xhr);
67
+ if (xhr.status == 200) {
68
+ resolve(response);
69
+ } else {
70
+ const customError = new CustomError(`Request failed with code: ${xhr.status}`, {
71
+ response,
72
+ xhr
73
+ });
74
+ if (data instanceof FormData) {
75
+ customError.peakflowParameters = FormDataObjectizer.toObject(data);
76
+ } else {
77
+ customError.peakflowParameters = data;
78
+ }
79
+ reject(customError);
80
+ }
81
+ };
82
+ xhr.send(data);
83
+ });
84
+ }
85
+ static async requestLocal(args) {
86
+ if (!args.headers) {
87
+ args.headers = {};
88
+ }
89
+ const token = await this._token();
90
+ logger.debug(() => `Got token: ${token}`);
91
+ if (token) {
92
+ args.headers["X-CSRF-Token"] = token;
93
+ }
94
+ if (args.data) {
95
+ args.headers["Content-Type"] = "application/json";
96
+ args.data = JSON.stringify(args.data);
97
+ }
98
+ if (args.rawData) {
99
+ args.data = args.rawData;
100
+ }
101
+ return await this.request(args);
102
+ }
103
+ static async put(path, data = {}) {
104
+ return await this.requestLocal({
105
+ path,
106
+ data,
107
+ method: "PUT"
108
+ });
109
+ }
110
+ static _token = async () => await SessionStatusUpdater.current().getCsrfToken();
111
+ static _parseResponse(xhr) {
112
+ const responseType = xhr.getResponseHeader("content-type");
113
+ if (responseType && responseType.startsWith("application/json")) {
114
+ return JSON.parse(xhr.responseText);
115
+ } else {
116
+ return xhr.responseText;
117
+ }
118
+ }
119
+ }
120
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25maWciLCJDdXN0b21FcnJvciIsIkZvcm1EYXRhT2JqZWN0aXplciIsIkxvZ2dlciIsInFzIiwiU2Vzc2lvblN0YXR1c1VwZGF0ZXIiLCJ1cmxFbmNvZGUiLCJsb2dnZXIiLCJuYW1lIiwiQXBpIiwiZ2V0IiwicGF0aCIsInBhdGhQYXJhbXMiLCJyZXF1ZXN0TG9jYWwiLCJtZXRob2QiLCJkZWxldGUiLCJwYXRjaCIsImRhdGEiLCJwb3N0IiwicmVxdWVzdCIsImhlYWRlcnMiLCJyZXF1ZXN0UGF0aCIsImdldEhvc3QiLCJwYXRoUGFyYW1zU3RyaW5nIiwic3RyaW5naWZ5IiwiYXJyYXlGb3JtYXQiLCJlbmNvZGVyIiwieGhyIiwiWE1MSHR0cFJlcXVlc3QiLCJvcGVuIiwid2l0aENyZWRlbnRpYWxzIiwiaGVhZGVyTmFtZSIsInNldFJlcXVlc3RIZWFkZXIiLCJyZXNwb25zZSIsImV4ZWN1dGVYaHIiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsIm9ubG9hZCIsIl9wYXJzZVJlc3BvbnNlIiwic3RhdHVzIiwiY3VzdG9tRXJyb3IiLCJGb3JtRGF0YSIsInBlYWtmbG93UGFyYW1ldGVycyIsInRvT2JqZWN0Iiwic2VuZCIsImFyZ3MiLCJ0b2tlbiIsIl90b2tlbiIsImRlYnVnIiwiSlNPTiIsInJhd0RhdGEiLCJwdXQiLCJjdXJyZW50IiwiZ2V0Q3NyZlRva2VuIiwicmVzcG9uc2VUeXBlIiwiZ2V0UmVzcG9uc2VIZWFkZXIiLCJzdGFydHNXaXRoIiwicGFyc2UiLCJyZXNwb25zZVRleHQiXSwic291cmNlcyI6WyIuLi9zcmMvYXBpLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25maWcgZnJvbSBcIi4vY29uZmlnXCJcbmltcG9ydCBDdXN0b21FcnJvciBmcm9tIFwiLi9jdXN0b20tZXJyb3JcIlxuaW1wb3J0IEZvcm1EYXRhT2JqZWN0aXplciBmcm9tIFwiZm9ybS1kYXRhLW9iamVjdGl6ZXJcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXJcIlxuaW1wb3J0IHFzIGZyb20gXCJxc1wiXG5pbXBvcnQgU2Vzc2lvblN0YXR1c1VwZGF0ZXIgZnJvbSBcIi4vc2Vzc2lvbi1zdGF0dXMtdXBkYXRlclwiXG5pbXBvcnQgdXJsRW5jb2RlIGZyb20gXCIuL3VybC1lbmNvZGVcIlxuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gQXBpXCJ9KVxuXG4vLyBsb2dnZXIuc2V0RGVidWcodHJ1ZSlcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpIHtcbiAgc3RhdGljIGdldCA9IGFzeW5jIChwYXRoLCBwYXRoUGFyYW1zID0gbnVsbCkgPT4gIGF3YWl0IEFwaS5yZXF1ZXN0TG9jYWwoe3BhdGgsIHBhdGhQYXJhbXMsIG1ldGhvZDogXCJHRVRcIn0pXG4gIHN0YXRpYyBkZWxldGUgPSBhc3luYyAocGF0aCwgcGF0aFBhcmFtcyA9IG51bGwpID0+IGF3YWl0IEFwaS5yZXF1ZXN0TG9jYWwoe3BhdGgsIHBhdGhQYXJhbXMsIG1ldGhvZDogXCJERUxFVEVcIn0pXG4gIHN0YXRpYyBwYXRjaCA9IGFzeW5jIChwYXRoLCBkYXRhID0ge30pID0+IGF3YWl0IEFwaS5yZXF1ZXN0TG9jYWwoe3BhdGgsIGRhdGEsIG1ldGhvZDogXCJQQVRDSFwifSlcbiAgc3RhdGljIHBvc3QgPSBhc3luYyAocGF0aCwgZGF0YSA9IHt9KSA9PiBhd2FpdCBBcGkucmVxdWVzdExvY2FsKHtwYXRoLCBkYXRhLCBtZXRob2Q6IFwiUE9TVFwifSlcblxuICBzdGF0aWMgYXN5bmMgcmVxdWVzdCh7ZGF0YSwgaGVhZGVycywgbWV0aG9kLCBwYXRoLCBwYXRoUGFyYW1zfSkge1xuICAgIGxldCByZXF1ZXN0UGF0aCA9IFwiXCJcbiAgICBpZiAoY29uZmlnLmdldEhvc3QoKSkgcmVxdWVzdFBhdGggKz0gY29uZmlnLmdldEhvc3QoKVxuICAgIHJlcXVlc3RQYXRoICs9IHBhdGhcblxuICAgIGlmIChwYXRoUGFyYW1zKSB7XG4gICAgICBjb25zdCBwYXRoUGFyYW1zU3RyaW5nID0gcXMuc3RyaW5naWZ5KHBhdGhQYXJhbXMsIHthcnJheUZvcm1hdDogXCJicmFja2V0c1wiLCBlbmNvZGVyOiB1cmxFbmNvZGV9KVxuICAgICAgcmVxdWVzdFBhdGggKz0gYD8ke3BhdGhQYXJhbXNTdHJpbmd9YFxuICAgIH1cblxuICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpXG5cbiAgICB4aHIub3BlbihtZXRob2QsIHJlcXVlc3RQYXRoLCB0cnVlKVxuICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSB0cnVlXG5cbiAgICBpZiAoaGVhZGVycykge1xuICAgICAgZm9yIChjb25zdCBoZWFkZXJOYW1lIGluIGhlYWRlcnMpIHtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoaGVhZGVyTmFtZSwgaGVhZGVyc1toZWFkZXJOYW1lXSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IEFwaS5leGVjdXRlWGhyKHhociwgZGF0YSlcblxuICAgIHJldHVybiByZXNwb25zZVxuICB9XG5cbiAgc3RhdGljIGV4ZWN1dGVYaHIoeGhyLCBkYXRhKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy5fcGFyc2VSZXNwb25zZSh4aHIpXG5cbiAgICAgICAgaWYgKHhoci5zdGF0dXMgPT0gMjAwKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjdXN0b21FcnJvciA9IG5ldyBDdXN0b21FcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBjb2RlOiAke3hoci5zdGF0dXN9YCwge3Jlc3BvbnNlLCB4aHJ9KVxuXG4gICAgICAgICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgICAgICAgY3VzdG9tRXJyb3IucGVha2Zsb3dQYXJhbWV0ZXJzID0gRm9ybURhdGFPYmplY3RpemVyLnRvT2JqZWN0KGRhdGEpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1c3RvbUVycm9yLnBlYWtmbG93UGFyYW1ldGVycyA9IGRhdGFcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZWplY3QoY3VzdG9tRXJyb3IpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgeGhyLnNlbmQoZGF0YSlcbiAgICB9KVxuICB9XG5cbiAgc3RhdGljIGFzeW5jIHJlcXVlc3RMb2NhbChhcmdzKSB7XG4gICAgaWYgKCFhcmdzLmhlYWRlcnMpIHtcbiAgICAgIGFyZ3MuaGVhZGVycyA9IHt9XG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBhd2FpdCB0aGlzLl90b2tlbigpXG5cbiAgICBsb2dnZXIuZGVidWcoKCkgPT4gYEdvdCB0b2tlbjogJHt0b2tlbn1gKVxuXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICBhcmdzLmhlYWRlcnNbXCJYLUNTUkYtVG9rZW5cIl0gPSB0b2tlblxuICAgIH1cblxuICAgIGlmIChhcmdzLmRhdGEpIHtcbiAgICAgIGFyZ3MuaGVhZGVyc1tcIkNvbnRlbnQtVHlwZVwiXSA9IFwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICBhcmdzLmRhdGEgPSBKU09OLnN0cmluZ2lmeShhcmdzLmRhdGEpXG4gICAgfVxuXG4gICAgaWYgKGFyZ3MucmF3RGF0YSkge1xuICAgICAgYXJncy5kYXRhID0gYXJncy5yYXdEYXRhXG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucmVxdWVzdChhcmdzKVxuICB9XG5cbiAgc3RhdGljIGFzeW5jIHB1dChwYXRoLCBkYXRhID0ge30pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5yZXF1ZXN0TG9jYWwoe3BhdGgsIGRhdGEsIG1ldGhvZDogXCJQVVRcIn0pXG4gIH1cblxuICBzdGF0aWMgX3Rva2VuID0gYXN5bmMgKCkgPT4gYXdhaXQgU2Vzc2lvblN0YXR1c1VwZGF0ZXIuY3VycmVudCgpLmdldENzcmZUb2tlbigpXG5cbiAgc3RhdGljIF9wYXJzZVJlc3BvbnNlKHhocikge1xuICAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9IHhoci5nZXRSZXNwb25zZUhlYWRlcihcImNvbnRlbnQtdHlwZVwiKVxuXG4gICAgaWYgKHJlc3BvbnNlVHlwZSAmJiByZXNwb25zZVR5cGUuc3RhcnRzV2l0aChcImFwcGxpY2F0aW9uL2pzb25cIikpIHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHhoci5yZXNwb25zZVRleHQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB4aHIucmVzcG9uc2VUZXh0XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxVQUFVO0FBQzdCLE9BQU9DLFdBQVcsTUFBTSxnQkFBZ0I7QUFDeEMsT0FBT0Msa0JBQWtCLE1BQU0sc0JBQXNCO0FBQ3JELE9BQU9DLE1BQU0sTUFBTSxVQUFVO0FBQzdCLE9BQU9DLEVBQUUsTUFBTSxJQUFJO0FBQ25CLE9BQU9DLG9CQUFvQixNQUFNLDBCQUEwQjtBQUMzRCxPQUFPQyxTQUFTLE1BQU0sY0FBYztBQUVwQyxNQUFNQyxNQUFNLEdBQUcsSUFBSUosTUFBTSxDQUFDO0VBQUNLLElBQUksRUFBRTtBQUFnQixDQUFDLENBQUM7O0FBRW5EOztBQUVBLGVBQWUsTUFBTUMsR0FBRyxDQUFDO0VBQ3ZCLE9BQU9DLEdBQUcsR0FBRyxNQUFBQSxDQUFPQyxJQUFJLEVBQUVDLFVBQVUsR0FBRyxJQUFJLEtBQU0sTUFBTUgsR0FBRyxDQUFDSSxZQUFZLENBQUM7SUFBQ0YsSUFBSTtJQUFFQyxVQUFVO0lBQUVFLE1BQU0sRUFBRTtFQUFLLENBQUMsQ0FBQztFQUMxRyxPQUFPQyxNQUFNLEdBQUcsTUFBQUEsQ0FBT0osSUFBSSxFQUFFQyxVQUFVLEdBQUcsSUFBSSxLQUFLLE1BQU1ILEdBQUcsQ0FBQ0ksWUFBWSxDQUFDO0lBQUNGLElBQUk7SUFBRUMs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QUksQ0FBQzFCLE9BQU8sRUFBRTtNQUNqQjBCLElBQUksQ0FBQzFCLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDbkI7SUFFQSxNQUFNMkIsS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDQyxNQUFNLENBQUMsQ0FBQztJQUVqQ3pDLE1BQU0sQ0FBQzBDLEtBQUssQ0FBQyxNQUFNLGNBQWNGLEtBQUssRUFBRSxDQUFDO0lBRXpDLElBQUlBLEtBQUssRUFBRTtNQUNURCxJQUFJLENBQUMxQixPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcyQixLQUFLO0lBQ3RDO0lBRUEsSUFBSUQsSUFBSSxDQUFDN0IsSUFBSSxFQUFFO01BQ2I2QixJQUFJLENBQUMxQixPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsa0JBQWtCO01BQ2pEMEIsSUFBSSxDQUFDN0IsSUFBSSxHQUFHaUMsSUFBSSxDQUFDMUIsU0FBUyxDQUFDc0IsSUFBSSxDQUFDN0IsSUFBSSxDQUFDO0lBQ3ZDO0lBRUEsSUFBSTZCLElBQUksQ0FBQ0ssT0FBTyxFQUFFO01BQ2hCTCxJQUFJLENBQUM3QixJQUFJLEdBQUc2QixJQUFJLENBQUNLLE9BQU87SUFDMUI7SUFFQSxPQUFPLE1BQU0sSUFBSSxDQUFDaEMsT0FBTyxDQUFDMkIsSUFBSSxDQUFDO0VBQ2pDO0VBRUEsYUFBYU0sR0FBR0EsQ0FBQ3pDLElBQUksRUFBRU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFO0lBQ2hDLE9BQU8sTUFBTSxJQUFJLENBQUNKLFlBQVksQ0FBQztNQUFDRixJQUFJO01BQUVNLElBQUk7TUFBRUgsTUFBTSxFQUFFO0lBQUssQ0FBQyxDQUFDO0VBQzdEO0VBRUEsT0FBT2tDLE1BQU0sR0FBRyxNQUFBQSxDQUFBLEtBQVksTUFBTTNDLG9CQUFvQixDQUFDZ0QsT0FBTyxDQUFDLENBQUMsQ0FBQ0MsWUFBWSxDQUFDLENBQUM7RUFFL0UsT0FBT2YsY0FBY0EsQ0FBQ1osR0FBRyxFQUFFO0lBQ3pCLE1BQU00QixZQUFZLEdBQUc1QixHQUFHLENBQUM2QixpQkFBaUIsQ0FBQyxjQUFjLENBQUM7SUFFMUQsSUFBSUQsWUFBWSxJQUFJQSxZQUFZLENBQUNFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO01BQy9ELE9BQU9QLElBQUksQ0FBQ1EsS0FBSyxDQUFDL0IsR0FBRyxDQUFDZ0MsWUFBWSxDQUFDO0lBQ3JDLENBQUMsTUFBTTtNQUNMLE9BQU9oQyxHQUFHLENBQUNnQyxZQUFZO0lBQ3pCO0VBQ0Y7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,2 @@
1
+ export default class AttributeNotLoadedError extends Error {}
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBdHRyaWJ1dGVOb3RMb2FkZWRFcnJvciIsIkVycm9yIl0sInNvdXJjZXMiOlsiLi4vc3JjL2F0dHJpYnV0ZS1ub3QtbG9hZGVkLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIEF0dHJpYnV0ZU5vdExvYWRlZEVycm9yIGV4dGVuZHMgRXJyb3Ige31cbiJdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSxNQUFNQSx1QkFBdUIsU0FBU0MsS0FBSyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,5 @@
1
+ import { ShapeComponent } from "set-state-compare/src/shape-component";
2
+ export default class BaseComponent extends ShapeComponent {
3
+ // Nothing yet.
4
+ }
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaGFwZUNvbXBvbmVudCIsIkJhc2VDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi9zcmMvYmFzZS1jb21wb25lbnQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzZUNvbXBvbmVudCBleHRlbmRzIFNoYXBlQ29tcG9uZW50IHtcbiAgLy8gTm90aGluZyB5ZXQuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLGNBQWMsUUFBTyx1Q0FBdUM7QUFFcEUsZUFBZSxNQUFNQyxhQUFhLFNBQVNELGNBQWMsQ0FBQztFQUN4RDtBQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,33 @@
1
+ import { dig, digg } from "diggerize";
2
+ import errorMessages from "./error-messages";
3
+ export default class BaseError extends Error {
4
+ static apiMakerType = "BaseError";
5
+ constructor(message, args = {}) {
6
+ let messageToUse = message;
7
+ if ("addResponseErrorsToErrorMessage" in args && !args.addResponseErrorsToErrorMessage) {
8
+ messageToUse = message;
9
+ } else {
10
+ if (typeof args.response == "object" && dig(args, "response", "errors")) {
11
+ if (message) {
12
+ messageToUse = `${messageToUse}: ${errorMessages(args).join(". ")}`;
13
+ } else {
14
+ messageToUse = errorMessages(args).join(". ");
15
+ }
16
+ }
17
+ }
18
+ super(messageToUse);
19
+ this.args = args;
20
+
21
+ // Maintains proper stack trace for where our error was thrown (only available on V8)
22
+ if (Error.captureStackTrace) Error.captureStackTrace(this, BaseError);
23
+ }
24
+ errorMessages() {
25
+ return errorMessages(this.args);
26
+ }
27
+ errorTypes() {
28
+ if (typeof this.args.response == "object") {
29
+ return digg(this, "args", "response", "errors").map(error => digg(error, "type"));
30
+ }
31
+ }
32
+ }
33
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWciLCJkaWdnIiwiZXJyb3JNZXNzYWdlcyIsIkJhc2VFcnJvciIsIkVycm9yIiwiYXBpTWFrZXJUeXBlIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwiYXJncyIsIm1lc3NhZ2VUb1VzZSIsImFkZFJlc3BvbnNlRXJyb3JzVG9FcnJvck1lc3NhZ2UiLCJyZXNwb25zZSIsImpvaW4iLCJjYXB0dXJlU3RhY2tUcmFjZSIsImVycm9yVHlwZXMiLCJtYXAiLCJlcnJvciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnLCBkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBlcnJvck1lc3NhZ2VzIGZyb20gXCIuL2Vycm9yLW1lc3NhZ2VzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBzdGF0aWMgYXBpTWFrZXJUeXBlID0gXCJCYXNlRXJyb3JcIlxuXG4gIGNvbnN0cnVjdG9yIChtZXNzYWdlLCBhcmdzID0ge30pIHtcbiAgICBsZXQgbWVzc2FnZVRvVXNlID0gbWVzc2FnZVxuXG4gICAgaWYgKFwiYWRkUmVzcG9uc2VFcnJvcnNUb0Vycm9yTWVzc2FnZVwiIGluIGFyZ3MgJiYgIWFyZ3MuYWRkUmVzcG9uc2VFcnJvcnNUb0Vycm9yTWVzc2FnZSkge1xuICAgICAgbWVzc2FnZVRvVXNlID0gbWVzc2FnZVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIGFyZ3MucmVzcG9uc2UgPT0gXCJvYmplY3RcIiAmJiBkaWcoYXJncywgXCJyZXNwb25zZVwiLCBcImVycm9yc1wiKSkge1xuICAgICAgICBpZiAobWVzc2FnZSkge1xuICAgICAgICAgIG1lc3NhZ2VUb1VzZSA9IGAke21lc3NhZ2VUb1VzZX06ICR7ZXJyb3JNZXNzYWdlcyhhcmdzKS5qb2luKFwiLiBcIil9YFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1lc3NhZ2VUb1VzZSA9IGVycm9yTWVzc2FnZXMoYXJncykuam9pbihcIi4gXCIpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdXBlcihtZXNzYWdlVG9Vc2UpXG4gICAgdGhpcy5hcmdzID0gYXJnc1xuXG4gICAgLy8gTWFpbnRhaW5zIHByb3BlciBzdGFjayB0cmFjZSBmb3Igd2hlcmUgb3VyIGVycm9yIHdhcyB0aHJvd24gKG9ubHkgYXZhaWxhYmxlIG9uIFY4KVxuICAgIGlmIChFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSkgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgQmFzZUVycm9yKVxuICB9XG5cbiAgZXJyb3JNZXNzYWdlcyAoKSB7XG4gICAgcmV0dXJuIGVycm9yTWVzc2FnZXModGhpcy5hcmdzKVxuICB9XG5cbiAgZXJyb3JUeXBlcyAoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmFyZ3MucmVzcG9uc2UgPT0gXCJvYmplY3RcIikge1xuICAgICAgcmV0dXJuIGRpZ2codGhpcywgXCJhcmdzXCIsIFwicmVzcG9uc2VcIiwgXCJlcnJvcnNcIikubWFwKChlcnJvcikgPT4gZGlnZyhlcnJvciwgXCJ0eXBlXCIpKVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxHQUFHLEVBQUVDLElBQUksUUFBTyxXQUFXO0FBQ25DLE9BQU9DLGFBQWEsTUFBTSxrQkFBa0I7QUFFNUMsZUFBZSxNQUFNQyxTQUFTLFNBQVNDLEtBQUssQ0FBQztFQUMzQyxPQUFPQyxZQUFZLEdBQUcsV0FBVztFQUVqQ0MsV0FBV0EsQ0FBRUMsT0FBTyxFQUFFQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUU7SUFDL0IsSUFBSUMsWUFBWSxHQUFHRixPQUFPO0lBRTFCLElBQUksaUNBQWlDLElBQUlDLElBQUksSUFBSSxDQUFDQSxJQUFJLENBQUNFLCtCQUErQixFQUFFO01BQ3RGRCxZQUFZLEdBQUdGLE9BQU87SUFDeEIsQ0FBQyxNQUFNO01BQ0wsSUFBSSxPQUFPQyxJQUFJLENBQUNHLFFBQVEsSUFBSSxRQUFRLElBQUlYLEdBQUcsQ0FBQ1EsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTtRQUN2RSxJQUFJRCxPQUFPLEVBQUU7VUFDWEUsWUFBWSxHQUFHLEdBQUdBLFlBQVksS0FBS1AsYUFBYSxDQUFDTSxJQUFJLENBQUMsQ0FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3JFLENBQUMsTUFBTTtVQUNMSCxZQUFZLEdBQUdQLGFBQWEsQ0FBQ00sSUFBSSxDQUFDLENBQUNJLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0M7TUFDRjtJQUNGO0lBRUEsS0FBSyxDQUFDSCxZQUFZLENBQUM7SUFDbkIsSUFBSSxDQUFDRCxJQUFJLEdBQUdBLElBQUk7O0lBRWhCO0lBQ0EsSUFBSUosS0FBSyxDQUFDUyxpQkFBaUIsRUFBRVQsS0FBSyxDQUFDUyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUVWLFNBQVMsQ0FBQztFQUN2RTtFQUVBRCxhQUFhQSxDQUFBLEVBQUk7SUFDZixPQUFPQSxhQUFhLENBQUMsSUFBSSxDQUFDTSxJQUFJLENBQUM7RUFDakM7RUFFQU0sVUFBVUEsQ0FBQSxFQUFJO0lBQ1osSUFBSSxPQUFPLElBQUksQ0FBQ04sSUFBSSxDQUFDRyxRQUFRLElBQUksUUFBUSxFQUFFO01BQ3pDLE9BQU9WLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQ2MsR0FBRyxDQUFFQyxLQUFLLElBQUtmLElBQUksQ0FBQ2UsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JGO0VBQ0Y7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,25 @@
1
+ import Column from "./column";
2
+ import { digg } from "diggerize";
3
+ export default class ApiMakerBaseModelAttribute {
4
+ constructor(attributeData) {
5
+ this.attributeData = attributeData;
6
+ }
7
+ getColumn() {
8
+ if (!this.column) {
9
+ const columnData = digg(this, "attributeData", "column");
10
+ if (columnData) {
11
+ this.column = new Column(columnData);
12
+ }
13
+ }
14
+ return this.column;
15
+ }
16
+ isColumn = () => Boolean(digg(this, "attributeData", "column"));
17
+ isSelectedByDefault() {
18
+ const isSelectedByDefault = digg(this, "attributeData", "selected_by_default");
19
+ if (isSelectedByDefault || isSelectedByDefault === null) return true;
20
+ return false;
21
+ }
22
+ isTranslated = () => digg(this, "attributeData", "translated");
23
+ name = () => digg(this, "attributeData", "name");
24
+ }
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2x1bW4iLCJkaWdnIiwiQXBpTWFrZXJCYXNlTW9kZWxBdHRyaWJ1dGUiLCJjb25zdHJ1Y3RvciIsImF0dHJpYnV0ZURhdGEiLCJnZXRDb2x1bW4iLCJjb2x1bW4iLCJjb2x1bW5EYXRhIiwiaXNDb2x1bW4iLCJCb29sZWFuIiwiaXNTZWxlY3RlZEJ5RGVmYXVsdCIsImlzVHJhbnNsYXRlZCIsIm5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFzZS1tb2RlbC9hdHRyaWJ1dGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbHVtbiBmcm9tIFwiLi9jb2x1bW5cIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJCYXNlTW9kZWxBdHRyaWJ1dGUge1xuICBjb25zdHJ1Y3RvcihhdHRyaWJ1dGVEYXRhKSB7XG4gICAgdGhpcy5hdHRyaWJ1dGVEYXRhID0gYXR0cmlidXRlRGF0YVxuICB9XG5cbiAgZ2V0Q29sdW1uKCkge1xuICAgIGlmICghdGhpcy5jb2x1bW4pIHtcbiAgICAgIGNvbnN0IGNvbHVtbkRhdGEgPSBkaWdnKHRoaXMsIFwiYXR0cmlidXRlRGF0YVwiLCBcImNvbHVtblwiKVxuXG4gICAgICBpZiAoY29sdW1uRGF0YSkge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IG5ldyBDb2x1bW4oY29sdW1uRGF0YSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb2x1bW5cbiAgfVxuXG4gIGlzQ29sdW1uID0gKCkgPT4gQm9vbGVhbihkaWdnKHRoaXMsIFwiYXR0cmlidXRlRGF0YVwiLCBcImNvbHVtblwiKSlcblxuICBpc1NlbGVjdGVkQnlEZWZhdWx0KCkge1xuICAgIGNvbnN0IGlzU2VsZWN0ZWRCeURlZmF1bHQgPSBkaWdnKHRoaXMsIFwiYXR0cmlidXRlRGF0YVwiLCBcInNlbGVjdGVkX2J5X2RlZmF1bHRcIilcblxuICAgIGlmIChpc1NlbGVjdGVkQnlEZWZhdWx0IHx8IGlzU2VsZWN0ZWRCeURlZmF1bHQgPT09IG51bGwpIHJldHVybiB0cnVlXG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlzVHJhbnNsYXRlZCA9ICgpID0+IGRpZ2codGhpcywgXCJhdHRyaWJ1dGVEYXRhXCIsIFwidHJhbnNsYXRlZFwiKVxuICBuYW1lID0gKCkgPT4gZGlnZyh0aGlzLCBcImF0dHJpYnV0ZURhdGFcIiwgXCJuYW1lXCIpXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxVQUFVO0FBQzdCLFNBQVFDLElBQUksUUFBTyxXQUFXO0FBRTlCLGVBQWUsTUFBTUMsMEJBQTBCLENBQUM7RUFDOUNDLFdBQVdBLENBQUNDLGFBQWEsRUFBRTtJQUN6QixJQUFJLENBQUNBLGFBQWEsR0FBR0EsYUFBYTtFQUNwQztFQUVBQyxTQUFTQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUMsSUFBSSxDQUFDQyxNQUFNLEVBQUU7TUFDaEIsTUFBTUMsVUFBVSxHQUFHTixJQUFJLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUM7TUFFeEQsSUFBSU0sVUFBVSxFQUFFO1FBQ2QsSUFBSSxDQUFDRCxNQUFNLEdBQUcsSUFBSU4sTUFBTSxDQUFDTyxVQUFVLENBQUM7TUFDdEM7SUFDRjtJQUVBLE9BQU8sSUFBSSxDQUFDRCxNQUFNO0VBQ3BCO0VBRUFFLFFBQVEsR0FBR0EsQ0FBQSxLQUFNQyxPQUFPLENBQUNSLElBQUksQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0VBRS9EUyxtQkFBbUJBLENBQUEsRUFBRztJQUNwQixNQUFNQSxtQkFBbUIsR0FBR1QsSUFBSSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUscUJBQXFCLENBQUM7SUFFOUUsSUFBSVMsbUJBQW1CLElBQUlBLG1CQUFtQixLQUFLLElBQUksRUFBRSxPQUFPLElBQUk7SUFFcEUsT0FBTyxLQUFLO0VBQ2Q7RUFFQUMsWUFBWSxHQUFHQSxDQUFBLEtBQU1WLElBQUksQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQztFQUM5RFcsSUFBSSxHQUFHQSxDQUFBLEtBQU1YLElBQUksQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQztBQUNsRCIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,11 @@
1
+ import { digg } from "diggerize";
2
+ export default class ApiMakerBaseModelColumn {
3
+ constructor(columnData) {
4
+ if (!columnData) {
5
+ throw new Error("No column data was given");
6
+ }
7
+ this.columnData = columnData;
8
+ }
9
+ getType = () => digg(this, "columnData", "type");
10
+ }
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiQXBpTWFrZXJCYXNlTW9kZWxDb2x1bW4iLCJjb25zdHJ1Y3RvciIsImNvbHVtbkRhdGEiLCJFcnJvciIsImdldFR5cGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFzZS1tb2RlbC9jb2x1bW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJCYXNlTW9kZWxDb2x1bW4ge1xuICBjb25zdHJ1Y3Rvcihjb2x1bW5EYXRhKSB7XG4gICAgaWYgKCFjb2x1bW5EYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBjb2x1bW4gZGF0YSB3YXMgZ2l2ZW5cIilcbiAgICB9XG5cbiAgICB0aGlzLmNvbHVtbkRhdGEgPSBjb2x1bW5EYXRhXG4gIH1cblxuICBnZXRUeXBlID0gKCkgPT4gZGlnZyh0aGlzLCBcImNvbHVtbkRhdGFcIiwgXCJ0eXBlXCIpXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLElBQUksUUFBTyxXQUFXO0FBRTlCLGVBQWUsTUFBTUMsdUJBQXVCLENBQUM7RUFDM0NDLFdBQVdBLENBQUNDLFVBQVUsRUFBRTtJQUN0QixJQUFJLENBQUNBLFVBQVUsRUFBRTtNQUNmLE1BQU0sSUFBSUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDO0lBQzdDO0lBRUEsSUFBSSxDQUFDRCxVQUFVLEdBQUdBLFVBQVU7RUFDOUI7RUFFQUUsT0FBTyxHQUFHQSxDQUFBLEtBQU1MLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQztBQUNsRCIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,14 @@
1
+ import { digg } from "diggerize";
2
+ import * as inflection from "inflection";
3
+ import modelClassRequire from "../model-class-require";
4
+ export default class ApiMakerBaseModelReflection {
5
+ constructor(reflectionData) {
6
+ this.reflectionData = reflectionData;
7
+ }
8
+ foreignKey = () => digg(this, "reflectionData", "foreignKey");
9
+ macro = () => digg(this, "reflectionData", "macro");
10
+ modelClass = () => modelClassRequire(inflection.singularize(inflection.camelize(digg(this, "reflectionData", "resource_name"))));
11
+ name = () => inflection.camelize(digg(this, "reflectionData", "name"), true);
12
+ through = () => digg(this, "reflectionData", "through");
13
+ }
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiaW5mbGVjdGlvbiIsIm1vZGVsQ2xhc3NSZXF1aXJlIiwiQXBpTWFrZXJCYXNlTW9kZWxSZWZsZWN0aW9uIiwiY29uc3RydWN0b3IiLCJyZWZsZWN0aW9uRGF0YSIsImZvcmVpZ25LZXkiLCJtYWNybyIsIm1vZGVsQ2xhc3MiLCJzaW5ndWxhcml6ZSIsImNhbWVsaXplIiwibmFtZSIsInRocm91Z2giXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFzZS1tb2RlbC9yZWZsZWN0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBtb2RlbENsYXNzUmVxdWlyZSBmcm9tIFwiLi4vbW9kZWwtY2xhc3MtcmVxdWlyZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyQmFzZU1vZGVsUmVmbGVjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHJlZmxlY3Rpb25EYXRhKSB7XG4gICAgdGhpcy5yZWZsZWN0aW9uRGF0YSA9IHJlZmxlY3Rpb25EYXRhXG4gIH1cblxuICBmb3JlaWduS2V5ID0gKCkgPT4gZGlnZyh0aGlzLCBcInJlZmxlY3Rpb25EYXRhXCIsIFwiZm9yZWlnbktleVwiKVxuICBtYWNybyA9ICgpID0+IGRpZ2codGhpcywgXCJyZWZsZWN0aW9uRGF0YVwiLCBcIm1hY3JvXCIpXG4gIG1vZGVsQ2xhc3MgPSAoKSA9PiBtb2RlbENsYXNzUmVxdWlyZShpbmZsZWN0aW9uLnNpbmd1bGFyaXplKGluZmxlY3Rpb24uY2FtZWxpemUoZGlnZyh0aGlzLCBcInJlZmxlY3Rpb25EYXRhXCIsIFwicmVzb3VyY2VfbmFtZVwiKSkpKVxuICBuYW1lID0gKCkgPT4gaW5mbGVjdGlvbi5jYW1lbGl6ZShkaWdnKHRoaXMsIFwicmVmbGVjdGlvbkRhdGFcIiwgXCJuYW1lXCIpLCB0cnVlKVxuICB0aHJvdWdoID0gKCkgPT4gZGlnZyh0aGlzLCBcInJlZmxlY3Rpb25EYXRhXCIsIFwidGhyb3VnaFwiKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxJQUFJLFFBQU8sV0FBVztBQUM5QixPQUFPLEtBQUtDLFVBQVUsTUFBTSxZQUFZO0FBQ3hDLE9BQU9DLGlCQUFpQixNQUFNLHdCQUF3QjtBQUV0RCxlQUFlLE1BQU1DLDJCQUEyQixDQUFDO0VBQy9DQyxXQUFXQSxDQUFDQyxjQUFjLEVBQUU7SUFDMUIsSUFBSSxDQUFDQSxjQUFjLEdBQUdBLGNBQWM7RUFDdEM7RUFFQUMsVUFBVSxHQUFHQSxDQUFBLEtBQU1OLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0VBQzdETyxLQUFLLEdBQUdBLENBQUEsS0FBTVAsSUFBSSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUM7RUFDbkRRLFVBQVUsR0FBR0EsQ0FBQSxLQUFNTixpQkFBaUIsQ0FBQ0QsVUFBVSxDQUFDUSxXQUFXLENBQUNSLFVBQVUsQ0FBQ1MsUUFBUSxDQUFDVixJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUNoSVcsSUFBSSxHQUFHQSxDQUFBLEtBQU1WLFVBQVUsQ0FBQ1MsUUFBUSxDQUFDVixJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQztFQUM1RVksT0FBTyxHQUFHQSxDQUFBLEtBQU1aLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDO0FBQ3pEIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,11 @@
1
+ import { digg } from "diggerize";
2
+ import * as inflection from "inflection";
3
+ export default class ApiMakerBaseModelScope {
4
+ constructor(scopeData) {
5
+ this.scopeData = scopeData;
6
+ }
7
+ name() {
8
+ return inflection.camelize(digg(this, "scopeData", "name"), true);
9
+ }
10
+ }
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiaW5mbGVjdGlvbiIsIkFwaU1ha2VyQmFzZU1vZGVsU2NvcGUiLCJjb25zdHJ1Y3RvciIsInNjb3BlRGF0YSIsIm5hbWUiLCJjYW1lbGl6ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLW1vZGVsL3Njb3BlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJCYXNlTW9kZWxTY29wZSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlRGF0YSkge1xuICAgIHRoaXMuc2NvcGVEYXRhID0gc2NvcGVEYXRhXG4gIH1cblxuICBuYW1lKCkge1xuICAgIHJldHVybiBpbmZsZWN0aW9uLmNhbWVsaXplKGRpZ2codGhpcywgXCJzY29wZURhdGFcIiwgXCJuYW1lXCIpLCB0cnVlKVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLElBQUksUUFBTyxXQUFXO0FBQzlCLE9BQU8sS0FBS0MsVUFBVSxNQUFNLFlBQVk7QUFFeEMsZUFBZSxNQUFNQyxzQkFBc0IsQ0FBQztFQUMxQ0MsV0FBV0EsQ0FBQ0MsU0FBUyxFQUFFO0lBQ3JCLElBQUksQ0FBQ0EsU0FBUyxHQUFHQSxTQUFTO0VBQzVCO0VBRUFDLElBQUlBLENBQUEsRUFBRztJQUNMLE9BQU9KLFVBQVUsQ0FBQ0ssUUFBUSxDQUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUM7RUFDbkU7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==