@kaspernj/api-maker 1.0.2053 → 1.0.2054
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.
- package/build/api.d.ts +19 -0
- package/build/api.d.ts.map +1 -0
- package/build/api.js +232 -116
- package/build/api.js.map +1 -0
- package/build/attribute-not-loaded-error.d.ts +3 -0
- package/build/attribute-not-loaded-error.d.ts.map +1 -0
- package/build/attribute-not-loaded-error.js +26 -2
- package/build/attribute-not-loaded-error.js.map +1 -0
- package/build/base-component.d.ts +4 -0
- package/build/base-component.d.ts.map +1 -0
- package/build/base-component.js +27 -5
- package/build/base-component.js.map +1 -0
- package/build/base-error.d.ts +31 -0
- package/build/base-error.d.ts.map +1 -0
- package/build/base-error.js +74 -31
- package/build/base-error.js.map +1 -0
- package/build/base-model/attribute.d.ts +45 -0
- package/build/base-model/attribute.d.ts.map +1 -0
- package/build/base-model/attribute.js +58 -24
- package/build/base-model/attribute.js.map +1 -0
- package/build/base-model/column.d.ts +17 -0
- package/build/base-model/column.d.ts.map +1 -0
- package/build/base-model/column.js +21 -10
- package/build/base-model/column.js.map +1 -0
- package/build/base-model/reflection.d.ts +22 -0
- package/build/base-model/reflection.d.ts.map +1 -0
- package/build/base-model/reflection.js +66 -14
- package/build/base-model/reflection.js.map +1 -0
- package/build/base-model/scope.d.ts +9 -0
- package/build/base-model/scope.d.ts.map +1 -0
- package/build/base-model/scope.js +51 -11
- package/build/base-model/scope.js.map +1 -0
- package/build/base-model.js +1282 -821
- package/build/base-model.js.map +1 -0
- package/build/bootstrap/attribute-row.d.ts +3 -0
- package/build/bootstrap/attribute-row.d.ts.map +1 -0
- package/build/bootstrap/attribute-row.js +178 -132
- package/build/bootstrap/attribute-row.js.map +1 -0
- package/build/bootstrap/attribute-rows.d.ts +3 -0
- package/build/bootstrap/attribute-rows.d.ts.map +1 -0
- package/build/bootstrap/attribute-rows.js +52 -31
- package/build/bootstrap/attribute-rows.js.map +1 -0
- package/build/bootstrap/card.d.ts +3 -0
- package/build/bootstrap/card.d.ts.map +1 -0
- package/build/bootstrap/card.js +163 -135
- package/build/bootstrap/card.js.map +1 -0
- package/build/bootstrap/checkbox.d.ts +3 -0
- package/build/bootstrap/checkbox.d.ts.map +1 -0
- package/build/bootstrap/checkbox.js +105 -97
- package/build/bootstrap/checkbox.js.map +1 -0
- package/build/bootstrap/checkboxes.d.ts +3 -0
- package/build/bootstrap/checkboxes.d.ts.map +1 -0
- package/build/bootstrap/checkboxes.js +206 -180
- package/build/bootstrap/checkboxes.js.map +1 -0
- package/build/bootstrap/index.d.ts +1 -0
- package/build/bootstrap/index.d.ts.map +1 -0
- package/build/bootstrap/index.js +1 -2
- package/build/bootstrap/index.js.map +1 -0
- package/build/bootstrap/input.d.ts +3 -0
- package/build/bootstrap/input.d.ts.map +1 -0
- package/build/bootstrap/input.js +135 -129
- package/build/bootstrap/input.js.map +1 -0
- package/build/bootstrap/invalid-feedback.d.ts +6 -0
- package/build/bootstrap/invalid-feedback.d.ts.map +1 -0
- package/build/bootstrap/invalid-feedback.js +51 -26
- package/build/bootstrap/invalid-feedback.js.map +1 -0
- package/build/bootstrap/paginate.d.ts +3 -0
- package/build/bootstrap/paginate.d.ts.map +1 -0
- package/build/bootstrap/paginate.js +165 -148
- package/build/bootstrap/paginate.js.map +1 -0
- package/build/bootstrap/radio-buttons.d.ts +3 -0
- package/build/bootstrap/radio-buttons.d.ts.map +1 -0
- package/build/bootstrap/radio-buttons.js +89 -72
- package/build/bootstrap/radio-buttons.js.map +1 -0
- package/build/bootstrap/select.d.ts +3 -0
- package/build/bootstrap/select.d.ts.map +1 -0
- package/build/bootstrap/select.js +103 -88
- package/build/bootstrap/select.js.map +1 -0
- package/build/bootstrap/sort-link.d.ts +3 -0
- package/build/bootstrap/sort-link.d.ts.map +1 -0
- package/build/bootstrap/sort-link.js +153 -129
- package/build/bootstrap/sort-link.js.map +1 -0
- package/build/cable-connection-pool.d.ts +27 -0
- package/build/cable-connection-pool.d.ts.map +1 -0
- package/build/cable-connection-pool.js +118 -123
- package/build/cable-connection-pool.js.map +1 -0
- package/build/cable-subscription-pool.d.ts +16 -0
- package/build/cable-subscription-pool.d.ts.map +1 -0
- package/build/cable-subscription-pool.js +211 -199
- package/build/cable-subscription-pool.js.map +1 -0
- package/build/cable-subscription.d.ts +7 -0
- package/build/cable-subscription.d.ts.map +1 -0
- package/build/cable-subscription.js +25 -20
- package/build/cable-subscription.js.map +1 -0
- package/build/cache-key-generator.d.ts +15 -0
- package/build/cache-key-generator.d.ts.map +1 -0
- package/build/cache-key-generator.js +86 -78
- package/build/cache-key-generator.js.map +1 -0
- package/build/can-can.d.ts +19 -0
- package/build/can-can.d.ts.map +1 -0
- package/build/can-can.js +243 -128
- package/build/can-can.js.map +1 -0
- package/build/channels-consumer.d.ts +3 -0
- package/build/channels-consumer.d.ts.map +1 -0
- package/build/channels-consumer.js +13 -8
- package/build/channels-consumer.js.map +1 -0
- package/build/collection-loader.d.ts +3 -0
- package/build/collection-loader.d.ts.map +1 -0
- package/build/collection-loader.js +70 -46
- package/build/collection-loader.js.map +1 -0
- package/build/collection.d.ts +213 -0
- package/build/collection.d.ts.map +1 -0
- package/build/collection.js +592 -306
- package/build/collection.js.map +1 -0
- package/build/command-submit-data.d.ts +54 -0
- package/build/command-submit-data.d.ts.map +1 -0
- package/build/command-submit-data.js +126 -80
- package/build/command-submit-data.js.map +1 -0
- package/build/commands-pool.d.ts +63 -0
- package/build/commands-pool.d.ts.map +1 -0
- package/build/commands-pool.js +281 -189
- package/build/commands-pool.js.map +1 -0
- package/build/compose.d.ts +2 -0
- package/build/compose.d.ts.map +1 -0
- package/build/compose.js +17 -8
- package/build/compose.js.map +1 -0
- package/build/config.d.ts +9 -0
- package/build/config.d.ts.map +1 -0
- package/build/config.js +105 -70
- package/build/config.js.map +1 -0
- package/build/custom-error.d.ts +8 -0
- package/build/custom-error.d.ts.map +1 -0
- package/build/custom-error.js +30 -4
- package/build/custom-error.js.map +1 -0
- package/build/data-set-to-attributes.d.ts +2 -0
- package/build/data-set-to-attributes.d.ts.map +1 -0
- package/build/data-set-to-attributes.js +45 -9
- package/build/data-set-to-attributes.js.map +1 -0
- package/build/deserializer.d.ts +4 -0
- package/build/deserializer.d.ts.map +1 -0
- package/build/deserializer.js +109 -54
- package/build/deserializer.js.map +1 -0
- package/build/destroy-error.d.ts +8 -0
- package/build/destroy-error.d.ts.map +1 -0
- package/build/destroy-error.js +30 -4
- package/build/destroy-error.js.map +1 -0
- package/build/devise.d.ts +20 -0
- package/build/devise.d.ts.map +1 -0
- package/build/devise.js +214 -123
- package/build/devise.js.map +1 -0
- package/build/draggable-sort/controller.d.ts +41 -0
- package/build/draggable-sort/controller.d.ts.map +1 -0
- package/build/draggable-sort/controller.js +130 -133
- package/build/draggable-sort/controller.js.map +1 -0
- package/build/draggable-sort/index.d.ts +3 -0
- package/build/draggable-sort/index.d.ts.map +1 -0
- package/build/draggable-sort/index.js +147 -111
- package/build/draggable-sort/index.js.map +1 -0
- package/build/draggable-sort/item.d.ts +3 -0
- package/build/draggable-sort/item.d.ts.map +1 -0
- package/build/draggable-sort/item.js +199 -183
- package/build/draggable-sort/item.js.map +1 -0
- package/build/error-logger.d.ts +20 -0
- package/build/error-logger.d.ts.map +1 -0
- package/build/error-logger.js +184 -92
- package/build/error-logger.js.map +1 -0
- package/build/error-messages.d.ts +18 -0
- package/build/error-messages.d.ts.map +1 -0
- package/build/error-messages.js +26 -13
- package/build/error-messages.js.map +1 -0
- package/build/event-connection.d.ts +12 -0
- package/build/event-connection.d.ts.map +1 -0
- package/build/event-connection.js +69 -31
- package/build/event-connection.js.map +1 -0
- package/build/event-emitter-listener.d.ts +8 -0
- package/build/event-emitter-listener.d.ts.map +1 -0
- package/build/event-emitter-listener.js +26 -14
- package/build/event-emitter-listener.js.map +1 -0
- package/build/event-model-class.d.ts +9 -0
- package/build/event-model-class.d.ts.map +1 -0
- package/build/event-model-class.js +50 -23
- package/build/event-model-class.js.map +1 -0
- package/build/events.d.ts +4 -0
- package/build/events.d.ts.map +1 -0
- package/build/events.js +9 -4
- package/build/events.js.map +1 -0
- package/build/form.d.ts +14 -0
- package/build/form.d.ts.map +1 -0
- package/build/form.js +169 -97
- package/build/form.js.map +1 -0
- package/build/history-expo.d.ts +6 -0
- package/build/history-expo.d.ts.map +1 -0
- package/build/history-expo.js +28 -19
- package/build/history-expo.js.map +1 -0
- package/build/history-react-native.d.ts +6 -0
- package/build/history-react-native.d.ts.map +1 -0
- package/build/history-react-native.js +29 -19
- package/build/history-react-native.js.map +1 -0
- package/build/history.d.ts +3 -0
- package/build/history.d.ts.map +1 -0
- package/build/history.js +5 -3
- package/build/history.js.map +1 -0
- package/build/index.d.ts +2 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +6 -3
- package/build/index.js.map +1 -0
- package/build/inputs/attachment.d.ts +3 -0
- package/build/inputs/attachment.d.ts.map +1 -0
- package/build/inputs/attachment.js +125 -133
- package/build/inputs/attachment.js.map +1 -0
- package/build/inputs/auto-submit.d.ts +9 -0
- package/build/inputs/auto-submit.d.ts.map +1 -0
- package/build/inputs/auto-submit.js +71 -35
- package/build/inputs/auto-submit.js.map +1 -0
- package/build/inputs/checkbox.d.ts +3 -0
- package/build/inputs/checkbox.d.ts.map +1 -0
- package/build/inputs/checkbox.js +171 -136
- package/build/inputs/checkbox.js.map +1 -0
- package/build/inputs/checkboxes.d.ts +3 -0
- package/build/inputs/checkboxes.d.ts.map +1 -0
- package/build/inputs/checkboxes.js +161 -110
- package/build/inputs/checkboxes.js.map +1 -0
- package/build/inputs/id-for-component.d.ts +2 -0
- package/build/inputs/id-for-component.d.ts.map +1 -0
- package/build/inputs/id-for-component.js +53 -14
- package/build/inputs/id-for-component.js.map +1 -0
- package/build/inputs/input-wrapper.d.ts +3 -0
- package/build/inputs/input-wrapper.d.ts.map +1 -0
- package/build/inputs/input-wrapper.js +27 -18
- package/build/inputs/input-wrapper.js.map +1 -0
- package/build/inputs/input.d.ts +5 -0
- package/build/inputs/input.d.ts.map +1 -0
- package/build/inputs/input.js +250 -240
- package/build/inputs/input.js.map +1 -0
- package/build/inputs/money.d.ts +3 -0
- package/build/inputs/money.d.ts.map +1 -0
- package/build/inputs/money.js +189 -171
- package/build/inputs/money.js.map +1 -0
- package/build/inputs/name-for-component.d.ts +2 -0
- package/build/inputs/name-for-component.d.ts.map +1 -0
- package/build/inputs/name-for-component.js +48 -11
- package/build/inputs/name-for-component.js.map +1 -0
- package/build/inputs/select.d.ts +5 -0
- package/build/inputs/select.d.ts.map +1 -0
- package/build/inputs/select.js +128 -93
- package/build/inputs/select.js.map +1 -0
- package/build/instance-of-class-name.d.ts +3 -0
- package/build/instance-of-class-name.d.ts.map +1 -0
- package/build/instance-of-class-name.js +24 -21
- package/build/instance-of-class-name.js.map +1 -0
- package/build/is-expo.d.ts +3 -0
- package/build/is-expo.d.ts.map +1 -0
- package/build/is-expo.js +16 -20
- package/build/is-expo.js.map +1 -0
- package/build/key-value-store.d.ts +11 -0
- package/build/key-value-store.d.ts.map +1 -0
- package/build/key-value-store.js +133 -51
- package/build/key-value-store.js.map +1 -0
- package/build/link.d.ts +3 -0
- package/build/link.d.ts.map +1 -0
- package/build/link.js +120 -82
- package/build/link.js.map +1 -0
- package/build/logger.d.ts +13 -0
- package/build/logger.d.ts.map +1 -0
- package/build/logger.js +39 -29
- package/build/logger.js.map +1 -0
- package/build/merge-styles.d.ts +2 -0
- package/build/merge-styles.d.ts.map +1 -0
- package/build/merge-styles.js +16 -11
- package/build/merge-styles.js.map +1 -0
- package/build/modal.d.ts +3 -0
- package/build/modal.d.ts.map +1 -0
- package/build/modal.js +71 -38
- package/build/modal.js.map +1 -0
- package/build/model-class-require.d.ts +3 -0
- package/build/model-class-require.d.ts.map +1 -0
- package/build/model-class-require.js +47 -12
- package/build/model-class-require.js.map +1 -0
- package/build/model-events.d.ts +8 -0
- package/build/model-events.d.ts.map +1 -0
- package/build/model-events.js +39 -30
- package/build/model-events.js.map +1 -0
- package/build/model-name.d.ts +8 -0
- package/build/model-name.d.ts.map +1 -0
- package/build/model-name.js +66 -26
- package/build/model-name.js.map +1 -0
- package/build/model-prop-type.d.ts +21 -0
- package/build/model-prop-type.d.ts.map +1 -0
- package/build/model-prop-type.js +107 -98
- package/build/model-prop-type.js.map +1 -0
- package/build/model-recipes-loader.d.ts +10 -0
- package/build/model-recipes-loader.d.ts.map +1 -0
- package/build/model-recipes-loader.js +30 -31
- package/build/model-recipes-loader.js.map +1 -0
- package/build/model-recipes-model-loader.d.ts +202 -0
- package/build/model-recipes-model-loader.d.ts.map +1 -0
- package/build/model-recipes-model-loader.js +304 -344
- package/build/model-recipes-model-loader.js.map +1 -0
- package/build/models-response-reader.d.ts +9 -0
- package/build/models-response-reader.d.ts.map +1 -0
- package/build/models-response-reader.js +79 -39
- package/build/models-response-reader.js.map +1 -0
- package/build/models.d.ts +3 -0
- package/build/models.d.ts.map +1 -0
- package/build/models.js +11 -8
- package/build/models.js.map +1 -0
- package/build/money-formatter.d.ts +17 -0
- package/build/money-formatter.d.ts.map +1 -0
- package/build/money-formatter.js +93 -76
- package/build/money-formatter.js.map +1 -0
- package/build/not-loaded-error.d.ts +3 -0
- package/build/not-loaded-error.d.ts.map +1 -0
- package/build/not-loaded-error.js +26 -2
- package/build/not-loaded-error.js.map +1 -0
- package/build/params.d.ts +16 -0
- package/build/params.d.ts.map +1 -0
- package/build/params.js +73 -60
- package/build/params.js.map +1 -0
- package/build/preloaded.d.ts +8 -0
- package/build/preloaded.d.ts.map +1 -0
- package/build/preloaded.js +73 -36
- package/build/preloaded.js.map +1 -0
- package/build/resize-observer.d.ts +3 -0
- package/build/resize-observer.d.ts.map +1 -0
- package/build/resize-observer.js +13 -10
- package/build/resize-observer.js.map +1 -0
- package/build/rest-props-validator.d.ts +3 -0
- package/build/rest-props-validator.d.ts.map +1 -0
- package/build/rest-props-validator.js +9 -7
- package/build/rest-props-validator.js.map +1 -0
- package/build/result.d.ts +38 -0
- package/build/result.d.ts.map +1 -0
- package/build/result.js +43 -13
- package/build/result.js.map +1 -0
- package/build/router/route.d.ts +8 -0
- package/build/router/route.d.ts.map +1 -0
- package/build/router/route.js +322 -266
- package/build/router/route.js.map +1 -0
- package/build/router/switch.d.ts +4 -0
- package/build/router/switch.d.ts.map +1 -0
- package/build/router/switch.js +132 -70
- package/build/router/switch.js.map +1 -0
- package/build/router.d.ts +3 -0
- package/build/router.d.ts.map +1 -0
- package/build/router.js +94 -57
- package/build/router.js.map +1 -0
- package/build/routes-native.d.ts +24 -0
- package/build/routes-native.d.ts.map +1 -0
- package/build/routes-native.js +233 -198
- package/build/routes-native.js.map +1 -0
- package/build/routes.d.ts +10 -0
- package/build/routes.d.ts.map +1 -0
- package/build/routes.js +102 -48
- package/build/routes.js.map +1 -0
- package/build/run-last.d.ts +12 -0
- package/build/run-last.d.ts.map +1 -0
- package/build/run-last.js +40 -34
- package/build/run-last.js.map +1 -0
- package/build/serializer.d.ts +10 -0
- package/build/serializer.d.ts.map +1 -0
- package/build/serializer.js +73 -62
- package/build/serializer.js.map +1 -0
- package/build/services.d.ts +5 -0
- package/build/services.d.ts.map +1 -0
- package/build/services.js +30 -20
- package/build/services.js.map +1 -0
- package/build/session-status-updater.d.ts +21 -0
- package/build/session-status-updater.d.ts.map +1 -0
- package/build/session-status-updater.js +227 -130
- package/build/session-status-updater.js.map +1 -0
- package/build/source-maps-loader.js +279 -176
- package/build/source-maps-loader.js.map +1 -0
- package/build/super-admin/config-reader.d.ts +23 -0
- package/build/super-admin/config-reader.d.ts.map +1 -0
- package/build/super-admin/config-reader.js +116 -82
- package/build/super-admin/config-reader.js.map +1 -0
- package/build/super-admin/edit-page/edit-attribute-checkbox.d.ts +3 -0
- package/build/super-admin/edit-page/edit-attribute-checkbox.d.ts.map +1 -0
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +118 -83
- package/build/super-admin/edit-page/edit-attribute-checkbox.js.map +1 -0
- package/build/super-admin/edit-page/edit-attribute-content.d.ts +3 -0
- package/build/super-admin/edit-page/edit-attribute-content.d.ts.map +1 -0
- package/build/super-admin/edit-page/edit-attribute-content.js +79 -55
- package/build/super-admin/edit-page/edit-attribute-content.js.map +1 -0
- package/build/super-admin/edit-page/edit-attribute-input.d.ts +3 -0
- package/build/super-admin/edit-page/edit-attribute-input.d.ts.map +1 -0
- package/build/super-admin/edit-page/edit-attribute-input.js +119 -77
- package/build/super-admin/edit-page/edit-attribute-input.js.map +1 -0
- package/build/super-admin/edit-page/edit-attribute.d.ts +3 -0
- package/build/super-admin/edit-page/edit-attribute.d.ts.map +1 -0
- package/build/super-admin/edit-page/edit-attribute.js +105 -76
- package/build/super-admin/edit-page/edit-attribute.js.map +1 -0
- package/build/super-admin/edit-page.d.ts +3 -0
- package/build/super-admin/edit-page.d.ts.map +1 -0
- package/build/super-admin/edit-page.js +202 -120
- package/build/super-admin/edit-page.js.map +1 -0
- package/build/super-admin/has-edit-config.d.ts +3 -0
- package/build/super-admin/has-edit-config.d.ts.map +1 -0
- package/build/super-admin/has-edit-config.js +17 -11
- package/build/super-admin/has-edit-config.js.map +1 -0
- package/build/super-admin/index-page.d.ts +3 -0
- package/build/super-admin/index-page.d.ts.map +1 -0
- package/build/super-admin/index-page.js +45 -25
- package/build/super-admin/index-page.js.map +1 -0
- package/build/super-admin/index.d.ts +3 -0
- package/build/super-admin/index.d.ts.map +1 -0
- package/build/super-admin/index.js +254 -184
- package/build/super-admin/index.js.map +1 -0
- package/build/super-admin/layout/header/index.d.ts +3 -0
- package/build/super-admin/layout/header/index.d.ts.map +1 -0
- package/build/super-admin/layout/header/index.js +154 -155
- package/build/super-admin/layout/header/index.js.map +1 -0
- package/build/super-admin/layout/index.d.ts +3 -0
- package/build/super-admin/layout/index.d.ts.map +1 -0
- package/build/super-admin/layout/index.js +183 -160
- package/build/super-admin/layout/index.js.map +1 -0
- package/build/super-admin/layout/menu/index.d.ts +3 -0
- package/build/super-admin/layout/menu/index.d.ts.map +1 -0
- package/build/super-admin/layout/menu/index.js +191 -203
- package/build/super-admin/layout/menu/index.js.map +1 -0
- package/build/super-admin/layout/menu/menu-content.d.ts +3 -0
- package/build/super-admin/layout/menu/menu-content.d.ts.map +1 -0
- package/build/super-admin/layout/menu/menu-content.js +86 -45
- package/build/super-admin/layout/menu/menu-content.js.map +1 -0
- package/build/super-admin/layout/menu/menu-item.d.ts +3 -0
- package/build/super-admin/layout/menu/menu-item.d.ts.map +1 -0
- package/build/super-admin/layout/menu/menu-item.js +104 -83
- package/build/super-admin/layout/menu/menu-item.js.map +1 -0
- package/build/super-admin/layout/no-access.d.ts +3 -0
- package/build/super-admin/layout/no-access.d.ts.map +1 -0
- package/build/super-admin/layout/no-access.js +46 -27
- package/build/super-admin/layout/no-access.js.map +1 -0
- package/build/super-admin/model-class-table.d.ts +3 -0
- package/build/super-admin/model-class-table.d.ts.map +1 -0
- package/build/super-admin/model-class-table.js +132 -60
- package/build/super-admin/model-class-table.js.map +1 -0
- package/build/super-admin/models.d.ts +3 -0
- package/build/super-admin/models.d.ts.map +1 -0
- package/build/super-admin/models.js +43 -7
- package/build/super-admin/models.js.map +1 -0
- package/build/super-admin/show-nav.d.ts +3 -0
- package/build/super-admin/show-nav.d.ts.map +1 -0
- package/build/super-admin/show-nav.js +90 -51
- package/build/super-admin/show-nav.js.map +1 -0
- package/build/super-admin/show-page/belongs-to-attribute-row.d.ts +3 -0
- package/build/super-admin/show-page/belongs-to-attribute-row.d.ts.map +1 -0
- package/build/super-admin/show-page/belongs-to-attribute-row.js +77 -28
- package/build/super-admin/show-page/belongs-to-attribute-row.js.map +1 -0
- package/build/super-admin/show-page/index.d.ts +3 -0
- package/build/super-admin/show-page/index.d.ts.map +1 -0
- package/build/super-admin/show-page/index.js +202 -137
- package/build/super-admin/show-page/index.js.map +1 -0
- package/build/super-admin/show-reflection-actions.d.ts +3 -0
- package/build/super-admin/show-reflection-actions.d.ts.map +1 -0
- package/build/super-admin/show-reflection-actions.js +100 -50
- package/build/super-admin/show-reflection-actions.js.map +1 -0
- package/build/super-admin/show-reflection-link.d.ts +3 -0
- package/build/super-admin/show-reflection-link.d.ts.map +1 -0
- package/build/super-admin/show-reflection-link.js +101 -47
- package/build/super-admin/show-reflection-link.js.map +1 -0
- package/build/super-admin/show-reflection-page.d.ts +3 -0
- package/build/super-admin/show-reflection-page.d.ts.map +1 -0
- package/build/super-admin/show-reflection-page.js +98 -49
- package/build/super-admin/show-reflection-page.js.map +1 -0
- package/build/table/column-content.d.ts +25 -0
- package/build/table/column-content.d.ts.map +1 -0
- package/build/table/column-content.js +153 -115
- package/build/table/column-content.js.map +1 -0
- package/build/table/column-identifier.d.ts +2 -0
- package/build/table/column-identifier.d.ts.map +1 -0
- package/build/table/column-identifier.js +22 -16
- package/build/table/column-identifier.js.map +1 -0
- package/build/table/column-visible.d.ts +2 -0
- package/build/table/column-visible.d.ts.map +1 -0
- package/build/table/column-visible.js +12 -6
- package/build/table/column-visible.js.map +1 -0
- package/build/table/components/column.d.ts +3 -0
- package/build/table/components/column.d.ts.map +1 -0
- package/build/table/components/column.js +61 -21
- package/build/table/components/column.js.map +1 -0
- package/build/table/components/flat-list.d.ts +3 -0
- package/build/table/components/flat-list.d.ts.map +1 -0
- package/build/table/components/flat-list.js +61 -21
- package/build/table/components/flat-list.js.map +1 -0
- package/build/table/components/header.d.ts +3 -0
- package/build/table/components/header.d.ts.map +1 -0
- package/build/table/components/header.js +63 -26
- package/build/table/components/header.js.map +1 -0
- package/build/table/components/row.d.ts +3 -0
- package/build/table/components/row.d.ts.map +1 -0
- package/build/table/components/row.js +65 -26
- package/build/table/components/row.js.map +1 -0
- package/build/table/filters/attribute-element.d.ts +3 -0
- package/build/table/filters/attribute-element.d.ts.map +1 -0
- package/build/table/filters/attribute-element.js +63 -44
- package/build/table/filters/attribute-element.js.map +1 -0
- package/build/table/filters/filter-form.d.ts +3 -0
- package/build/table/filters/filter-form.d.ts.map +1 -0
- package/build/table/filters/filter-form.js +489 -453
- package/build/table/filters/filter-form.js.map +1 -0
- package/build/table/filters/filter.d.ts +3 -0
- package/build/table/filters/filter.d.ts.map +1 -0
- package/build/table/filters/filter.js +75 -90
- package/build/table/filters/filter.js.map +1 -0
- package/build/table/filters/index.d.ts +3 -0
- package/build/table/filters/index.d.ts.map +1 -0
- package/build/table/filters/index.js +143 -188
- package/build/table/filters/index.js.map +1 -0
- package/build/table/filters/load-search-modal.d.ts +3 -0
- package/build/table/filters/load-search-modal.d.ts.map +1 -0
- package/build/table/filters/load-search-modal.js +234 -169
- package/build/table/filters/load-search-modal.js.map +1 -0
- package/build/table/filters/reflection-element.d.ts +3 -0
- package/build/table/filters/reflection-element.d.ts.map +1 -0
- package/build/table/filters/reflection-element.js +55 -37
- package/build/table/filters/reflection-element.js.map +1 -0
- package/build/table/filters/save-search-modal.d.ts +3 -0
- package/build/table/filters/save-search-modal.d.ts.map +1 -0
- package/build/table/filters/save-search-modal.js +140 -85
- package/build/table/filters/save-search-modal.js.map +1 -0
- package/build/table/filters/scope-element.d.ts +3 -0
- package/build/table/filters/scope-element.d.ts.map +1 -0
- package/build/table/filters/scope-element.js +58 -42
- package/build/table/filters/scope-element.js.map +1 -0
- package/build/table/header-column-content.d.ts +3 -0
- package/build/table/header-column-content.d.ts.map +1 -0
- package/build/table/header-column-content.js +71 -68
- package/build/table/header-column-content.js.map +1 -0
- package/build/table/header-column.d.ts +3 -0
- package/build/table/header-column.d.ts.map +1 -0
- package/build/table/header-column.js +220 -143
- package/build/table/header-column.js.map +1 -0
- package/build/table/header-select.d.ts +3 -0
- package/build/table/header-select.d.ts.map +1 -0
- package/build/table/header-select.js +77 -105
- package/build/table/header-select.js.map +1 -0
- package/build/table/model-callback-args.d.ts +4 -0
- package/build/table/model-callback-args.d.ts.map +1 -0
- package/build/table/model-callback-args.js +43 -9
- package/build/table/model-callback-args.js.map +1 -0
- package/build/table/model-column.d.ts +3 -0
- package/build/table/model-column.d.ts.map +1 -0
- package/build/table/model-column.js +145 -99
- package/build/table/model-column.js.map +1 -0
- package/build/table/model-row.d.ts +3 -0
- package/build/table/model-row.d.ts.map +1 -0
- package/build/table/model-row.js +188 -190
- package/build/table/model-row.js.map +1 -0
- package/build/table/select-calculator.d.ts +2 -0
- package/build/table/select-calculator.d.ts.map +1 -0
- package/build/table/select-calculator.js +110 -59
- package/build/table/select-calculator.js.map +1 -0
- package/build/table/settings/column-row.d.ts +3 -0
- package/build/table/settings/column-row.d.ts.map +1 -0
- package/build/table/settings/column-row.js +188 -95
- package/build/table/settings/column-row.js.map +1 -0
- package/build/table/settings/download-action.d.ts +3 -0
- package/build/table/settings/download-action.d.ts.map +1 -0
- package/build/table/settings/download-action.js +75 -85
- package/build/table/settings/download-action.js.map +1 -0
- package/build/table/settings/index.d.ts +3 -0
- package/build/table/settings/index.d.ts.map +1 -0
- package/build/table/settings/index.js +103 -95
- package/build/table/settings/index.js.map +1 -0
- package/build/table/table-settings.d.ts +35 -0
- package/build/table/table-settings.d.ts.map +1 -0
- package/build/table/table-settings.js +336 -206
- package/build/table/table-settings.js.map +1 -0
- package/build/table/table.d.ts +3 -0
- package/build/table/table.d.ts.map +1 -0
- package/build/table/table.js +801 -964
- package/build/table/table.js.map +1 -0
- package/build/table/use-sorting.d.ts +21 -0
- package/build/table/use-sorting.d.ts.map +1 -0
- package/build/table/use-sorting.js +59 -31
- package/build/table/use-sorting.js.map +1 -0
- package/build/table/widths.d.ts +18 -0
- package/build/table/widths.d.ts.map +1 -0
- package/build/table/widths.js +75 -74
- package/build/table/widths.js.map +1 -0
- package/build/table/worker-plugins-check-all-checkbox.d.ts +3 -0
- package/build/table/worker-plugins-check-all-checkbox.d.ts.map +1 -0
- package/build/table/worker-plugins-check-all-checkbox.js +230 -121
- package/build/table/worker-plugins-check-all-checkbox.js.map +1 -0
- package/build/table/worker-plugins-checkbox.d.ts +3 -0
- package/build/table/worker-plugins-checkbox.d.ts.map +1 -0
- package/build/table/worker-plugins-checkbox.js +186 -112
- package/build/table/worker-plugins-checkbox.js.map +1 -0
- package/build/translated-attributes.d.ts +2 -0
- package/build/translated-attributes.d.ts.map +1 -0
- package/build/translated-attributes.js +13 -8
- package/build/translated-attributes.js.map +1 -0
- package/build/translated-collections.d.ts +4 -0
- package/build/translated-collections.d.ts.map +1 -0
- package/build/translated-collections.js +22 -12
- package/build/translated-collections.js.map +1 -0
- package/build/updated-attribute.d.ts +15 -0
- package/build/updated-attribute.d.ts.map +1 -0
- package/build/updated-attribute.js +144 -72
- package/build/updated-attribute.js.map +1 -0
- package/build/url-encode.d.ts +6 -0
- package/build/url-encode.d.ts.map +1 -0
- package/build/url-encode.js +22 -13
- package/build/url-encode.js.map +1 -0
- package/build/use-breakpoint.d.ts +3 -0
- package/build/use-breakpoint.d.ts.map +1 -0
- package/build/use-breakpoint.js +126 -75
- package/build/use-breakpoint.js.map +1 -0
- package/build/use-can-can.d.ts +8 -0
- package/build/use-can-can.d.ts.map +1 -0
- package/build/use-can-can.js +107 -52
- package/build/use-can-can.js.map +1 -0
- package/build/use-collection.d.ts +73 -0
- package/build/use-collection.d.ts.map +1 -0
- package/build/use-collection.js +366 -215
- package/build/use-collection.js.map +1 -0
- package/build/use-created-event.d.ts +19 -0
- package/build/use-created-event.d.ts.map +1 -0
- package/build/use-created-event.js +73 -50
- package/build/use-created-event.js.map +1 -0
- package/build/use-current-user-context.d.ts +12 -0
- package/build/use-current-user-context.d.ts.map +1 -0
- package/build/use-current-user-context.js +188 -0
- package/build/use-current-user-context.js.map +1 -0
- package/build/use-current-user.d.ts +14 -0
- package/build/use-current-user.d.ts.map +1 -0
- package/build/use-current-user.js +43 -119
- package/build/use-current-user.js.map +1 -0
- package/build/use-destroyed-event.d.ts +16 -0
- package/build/use-destroyed-event.d.ts.map +1 -0
- package/build/use-destroyed-event.js +78 -58
- package/build/use-destroyed-event.js.map +1 -0
- package/build/use-event-emitter.d.ts +9 -0
- package/build/use-event-emitter.d.ts.map +1 -0
- package/build/use-event-emitter.js +32 -25
- package/build/use-event-emitter.js.map +1 -0
- package/build/use-event-listener.d.ts +9 -0
- package/build/use-event-listener.d.ts.map +1 -0
- package/build/use-event-listener.js +36 -21
- package/build/use-event-listener.js.map +1 -0
- package/build/use-input.d.ts +31 -0
- package/build/use-input.d.ts.map +1 -0
- package/build/use-input.js +166 -134
- package/build/use-input.js.map +1 -0
- package/build/use-model-event.d.ts +17 -0
- package/build/use-model-event.d.ts.map +1 -0
- package/build/use-model-event.js +79 -58
- package/build/use-model-event.js.map +1 -0
- package/build/use-model.d.ts +30 -0
- package/build/use-model.d.ts.map +1 -0
- package/build/use-model.js +259 -159
- package/build/use-model.js.map +1 -0
- package/build/use-resize-observer.d.ts +8 -0
- package/build/use-resize-observer.d.ts.map +1 -0
- package/build/use-resize-observer.js +35 -22
- package/build/use-resize-observer.js.map +1 -0
- package/build/use-router.d.ts +8 -0
- package/build/use-router.d.ts.map +1 -0
- package/build/use-router.js +133 -100
- package/build/use-router.js.map +1 -0
- package/build/use-screen-layout.d.ts +3 -0
- package/build/use-screen-layout.d.ts.map +1 -0
- package/build/use-screen-layout.js +46 -37
- package/build/use-screen-layout.js.map +1 -0
- package/build/use-styles.d.ts +2 -0
- package/build/use-styles.d.ts.map +1 -0
- package/build/use-styles.js +99 -47
- package/build/use-styles.js.map +1 -0
- package/build/use-updated-event.d.ts +16 -0
- package/build/use-updated-event.d.ts.map +1 -0
- package/build/use-updated-event.js +79 -58
- package/build/use-updated-event.js.map +1 -0
- package/build/use-validation-errors.d.ts +7 -0
- package/build/use-validation-errors.d.ts.map +1 -0
- package/build/use-validation-errors.js +35 -29
- package/build/use-validation-errors.js.map +1 -0
- package/build/utils/button.d.ts +3 -0
- package/build/utils/button.d.ts.map +1 -0
- package/build/utils/button.js +143 -123
- package/build/utils/button.js.map +1 -0
- package/build/utils/card.d.ts +3 -0
- package/build/utils/card.d.ts.map +1 -0
- package/build/utils/card.js +107 -55
- package/build/utils/card.js.map +1 -0
- package/build/utils/checkbox.d.ts +3 -0
- package/build/utils/checkbox.d.ts.map +1 -0
- package/build/utils/checkbox.js +113 -77
- package/build/utils/checkbox.js.map +1 -0
- package/build/utils/checkboxes.d.ts +3 -0
- package/build/utils/checkboxes.d.ts.map +1 -0
- package/build/utils/checkboxes.js +184 -159
- package/build/utils/checkboxes.js.map +1 -0
- package/build/utils/default-style.d.ts +7 -0
- package/build/utils/default-style.d.ts.map +1 -0
- package/build/utils/default-style.js +129 -62
- package/build/utils/default-style.js.map +1 -0
- package/build/utils/header.d.ts +3 -0
- package/build/utils/header.d.ts.map +1 -0
- package/build/utils/header.js +37 -19
- package/build/utils/header.js.map +1 -0
- package/build/utils/icon.d.ts +3 -0
- package/build/utils/icon.d.ts.map +1 -0
- package/build/utils/icon.js +158 -96
- package/build/utils/icon.js.map +1 -0
- package/build/utils/invalid-feedback.d.ts +3 -0
- package/build/utils/invalid-feedback.d.ts.map +1 -0
- package/build/utils/invalid-feedback.js +43 -19
- package/build/utils/invalid-feedback.js.map +1 -0
- package/build/utils/modal.d.ts +3 -0
- package/build/utils/modal.d.ts.map +1 -0
- package/build/utils/modal.js +118 -61
- package/build/utils/modal.js.map +1 -0
- package/build/utils/text.d.ts +3 -0
- package/build/utils/text.d.ts.map +1 -0
- package/build/utils/text.js +37 -20
- package/build/utils/text.js.map +1 -0
- package/build/validation-error.d.ts +18 -0
- package/build/validation-error.d.ts.map +1 -0
- package/build/validation-error.js +94 -27
- package/build/validation-error.js.map +1 -0
- package/build/validation-errors.d.ts +58 -0
- package/build/validation-errors.d.ts.map +1 -0
- package/build/validation-errors.js +164 -94
- package/build/validation-errors.js.map +1 -0
- package/build/with-api-maker.d.ts +3 -0
- package/build/with-api-maker.d.ts.map +1 -0
- package/build/with-api-maker.js +73 -27
- package/build/with-api-maker.js.map +1 -0
- package/build/with-collection.d.ts +3 -0
- package/build/with-collection.d.ts.map +1 -0
- package/build/with-collection.js +64 -13
- package/build/with-collection.js.map +1 -0
- package/build/with-current-user.d.ts +3 -0
- package/build/with-current-user.d.ts.map +1 -0
- package/build/with-current-user.js +23 -9
- package/build/with-current-user.js.map +1 -0
- package/build/with-model.d.ts +3 -0
- package/build/with-model.d.ts.map +1 -0
- package/build/with-model.js +28 -14
- package/build/with-model.js.map +1 -0
- package/build/with-router.d.ts +3 -0
- package/build/with-router.d.ts.map +1 -0
- package/build/with-router.js +35 -21
- package/build/with-router.js.map +1 -0
- package/package.json +14 -8
- package/.eslintrc.js +0 -357
- package/android/build.gradle +0 -43
- package/android/src/main/AndroidManifest.xml +0 -2
- package/android/src/main/java/expo/modules/api_maker/ApiMakerModule.kt +0 -50
- package/android/src/main/java/expo/modules/api_maker/ApiMakerView.kt +0 -30
- package/expo-module.config.json +0 -17
- package/ios/ApiMaker.podspec +0 -29
- package/ios/ApiMakerModule.swift +0 -48
- package/ios/ApiMakerView.swift +0 -38
- package/src/api.js +0 -109
- package/src/attribute-not-loaded-error.js +0 -1
- package/src/base-component.jsx +0 -5
- package/src/base-error.js +0 -38
- package/src/base-model/attribute.js +0 -33
- package/src/base-model/column.js +0 -13
- package/src/base-model/reflection.js +0 -15
- package/src/base-model/scope.js +0 -12
- package/src/base-model.js +0 -1001
- package/src/bootstrap/attribute-row.jsx +0 -134
- package/src/bootstrap/attribute-rows.jsx +0 -27
- package/src/bootstrap/card.jsx +0 -149
- package/src/bootstrap/checkbox.jsx +0 -86
- package/src/bootstrap/checkboxes.jsx +0 -185
- package/src/bootstrap/index.js +0 -0
- package/src/bootstrap/input.jsx +0 -173
- package/src/bootstrap/invalid-feedback.jsx +0 -31
- package/src/bootstrap/paginate.jsx +0 -187
- package/src/bootstrap/radio-buttons.jsx +0 -87
- package/src/bootstrap/select.jsx +0 -110
- package/src/bootstrap/sort-link.jsx +0 -106
- package/src/cable-connection-pool.js +0 -127
- package/src/cable-subscription-pool.js +0 -189
- package/src/cable-subscription.js +0 -23
- package/src/cache-key-generator.js +0 -100
- package/src/can-can.js +0 -158
- package/src/channels-consumer.js +0 -10
- package/src/collection-loader.jsx +0 -60
- package/src/collection.js +0 -346
- package/src/command-submit-data.js +0 -103
- package/src/commands-pool.js +0 -212
- package/src/compose.js +0 -11
- package/src/config.js +0 -71
- package/src/custom-error.js +0 -7
- package/src/data-set-to-attributes.js +0 -13
- package/src/deserializer.js +0 -60
- package/src/destroy-error.js +0 -7
- package/src/devise.js +0 -151
- package/src/draggable-sort/controller.js +0 -137
- package/src/draggable-sort/index.jsx +0 -107
- package/src/draggable-sort/item.jsx +0 -171
- package/src/error-logger.js +0 -111
- package/src/error-messages.js +0 -15
- package/src/event-connection.jsx +0 -37
- package/src/event-emitter-listener.jsx +0 -13
- package/src/event-model-class.jsx +0 -28
- package/src/events.js +0 -7
- package/src/form.jsx +0 -110
- package/src/history-expo.js +0 -23
- package/src/history-react-native.js +0 -25
- package/src/history.js +0 -3
- package/src/index.js +0 -3
- package/src/inputs/attachment.jsx +0 -108
- package/src/inputs/auto-submit.js +0 -37
- package/src/inputs/checkbox.jsx +0 -125
- package/src/inputs/checkboxes.jsx +0 -116
- package/src/inputs/id-for-component.js +0 -15
- package/src/inputs/input-wrapper.jsx +0 -16
- package/src/inputs/input.jsx +0 -260
- package/src/inputs/money.jsx +0 -179
- package/src/inputs/name-for-component.js +0 -15
- package/src/inputs/select.jsx +0 -104
- package/src/instance-of-class-name.js +0 -29
- package/src/is-expo.js +0 -18
- package/src/key-value-store.js +0 -68
- package/src/link.jsx +0 -77
- package/src/logger.js +0 -38
- package/src/merge-styles.js +0 -15
- package/src/modal.jsx +0 -37
- package/src/model-class-require.js +0 -17
- package/src/model-events.js +0 -39
- package/src/model-name.js +0 -33
- package/src/model-prop-type.js +0 -124
- package/src/model-recipes-loader.js +0 -28
- package/src/model-recipes-model-loader.js +0 -350
- package/src/models-response-reader.js +0 -48
- package/src/models.js +0 -7
- package/src/models.js.erb +0 -19
- package/src/money-formatter.js +0 -100
- package/src/not-loaded-error.js +0 -1
- package/src/params.js +0 -66
- package/src/preloaded.js +0 -43
- package/src/resize-observer.jsx +0 -10
- package/src/rest-props-validator.js +0 -9
- package/src/result.js +0 -13
- package/src/router/route.jsx +0 -246
- package/src/router/switch.jsx +0 -76
- package/src/router.jsx +0 -47
- package/src/routes-native.js +0 -173
- package/src/routes.js +0 -58
- package/src/run-last.js +0 -39
- package/src/serializer.js +0 -76
- package/src/services.js +0 -23
- package/src/session-status-updater.js +0 -172
- package/src/source-maps-loader.js +0 -203
- package/src/super-admin/config-reader.jsx +0 -93
- package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +0 -84
- package/src/super-admin/edit-page/edit-attribute-content.jsx +0 -57
- package/src/super-admin/edit-page/edit-attribute-input.jsx +0 -79
- package/src/super-admin/edit-page/edit-attribute.jsx +0 -84
- package/src/super-admin/edit-page.jsx +0 -117
- package/src/super-admin/has-edit-config.js +0 -15
- package/src/super-admin/index-page.jsx +0 -23
- package/src/super-admin/index.jsx +0 -219
- package/src/super-admin/layout/header/index.jsx +0 -144
- package/src/super-admin/layout/header/style.scss +0 -45
- package/src/super-admin/layout/index.jsx +0 -154
- package/src/super-admin/layout/menu/index.jsx +0 -173
- package/src/super-admin/layout/menu/menu-content.jsx +0 -43
- package/src/super-admin/layout/menu/menu-item.jsx +0 -70
- package/src/super-admin/layout/menu/style.scss +0 -11
- package/src/super-admin/layout/no-access.jsx +0 -26
- package/src/super-admin/model-class-table.jsx +0 -66
- package/src/super-admin/models.js +0 -11
- package/src/super-admin/show-nav.jsx +0 -45
- package/src/super-admin/show-page/belongs-to-attribute-row.jsx +0 -30
- package/src/super-admin/show-page/index.jsx +0 -141
- package/src/super-admin/show-reflection-actions.jsx +0 -55
- package/src/super-admin/show-reflection-link.jsx +0 -40
- package/src/super-admin/show-reflection-page.jsx +0 -50
- package/src/super-admin/stylesheets/variables.scss +0 -11
- package/src/table/column-content.jsx +0 -122
- package/src/table/column-identifier.js +0 -23
- package/src/table/column-visible.js +0 -7
- package/src/table/components/column.jsx +0 -19
- package/src/table/components/flat-list.jsx +0 -19
- package/src/table/components/header.jsx +0 -21
- package/src/table/components/row.jsx +0 -23
- package/src/table/filters/attribute-element.jsx +0 -47
- package/src/table/filters/filter-form.jsx +0 -448
- package/src/table/filters/filter.jsx +0 -74
- package/src/table/filters/index.jsx +0 -171
- package/src/table/filters/load-search-modal.jsx +0 -157
- package/src/table/filters/reflection-element.jsx +0 -38
- package/src/table/filters/save-search-modal.jsx +0 -74
- package/src/table/filters/scope-element.jsx +0 -44
- package/src/table/header-column-content.jsx +0 -55
- package/src/table/header-column.jsx +0 -129
- package/src/table/header-select.jsx +0 -78
- package/src/table/model-callback-args.js +0 -10
- package/src/table/model-column.jsx +0 -86
- package/src/table/model-row.jsx +0 -140
- package/src/table/select-calculator.js +0 -65
- package/src/table/settings/column-row.jsx +0 -93
- package/src/table/settings/download-action.jsx +0 -73
- package/src/table/settings/index.jsx +0 -66
- package/src/table/table-settings.js +0 -262
- package/src/table/table.jsx +0 -957
- package/src/table/use-sorting.js +0 -35
- package/src/table/variables.scss +0 -11
- package/src/table/widths.jsx +0 -87
- package/src/table/worker-plugins-check-all-checkbox.jsx +0 -112
- package/src/table/worker-plugins-checkbox.jsx +0 -104
- package/src/translated-attributes.js +0 -11
- package/src/translated-collections-data.js.erb +0 -5
- package/src/translated-collections.js +0 -13
- package/src/updated-attribute.jsx +0 -93
- package/src/url-encode.js +0 -18
- package/src/use-breakpoint.js +0 -100
- package/src/use-can-can.js +0 -55
- package/src/use-collection.js +0 -280
- package/src/use-created-event.js +0 -55
- package/src/use-current-user.js +0 -133
- package/src/use-destroyed-event.js +0 -60
- package/src/use-event-emitter.js +0 -25
- package/src/use-event-listener.js +0 -23
- package/src/use-input.js +0 -159
- package/src/use-model-event.js +0 -60
- package/src/use-model.js +0 -189
- package/src/use-resize-observer.js +0 -24
- package/src/use-router.jsx +0 -128
- package/src/use-screen-layout.js +0 -49
- package/src/use-styles.js +0 -66
- package/src/use-updated-event.js +0 -60
- package/src/use-validation-errors.js +0 -33
- package/src/utils/button.jsx +0 -127
- package/src/utils/card.jsx +0 -58
- package/src/utils/checkbox.jsx +0 -73
- package/src/utils/checkboxes.jsx +0 -157
- package/src/utils/default-style.jsx +0 -80
- package/src/utils/header.jsx +0 -14
- package/src/utils/icon.jsx +0 -81
- package/src/utils/invalid-feedback.jsx +0 -20
- package/src/utils/modal.jsx +0 -64
- package/src/utils/text.jsx +0 -15
- package/src/validation-error.js +0 -35
- package/src/validation-errors.js +0 -121
- package/src/with-api-maker.jsx +0 -31
- package/src/with-collection.jsx +0 -17
- package/src/with-current-user.jsx +0 -10
- package/src/with-model.jsx +0 -16
- package/src/with-router.jsx +0 -11
package/build/collection.js
CHANGED
|
@@ -1,310 +1,596 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import Result from "./result";
|
|
8
|
-
import uniqunize from "uniqunize";
|
|
9
|
-
export default class ApiMakerCollection {
|
|
10
|
-
static apiMakerType = "Collection";
|
|
11
|
-
constructor(args, queryArgs = {}) {
|
|
12
|
-
this.queryArgs = queryArgs;
|
|
13
|
-
this.args = args;
|
|
14
|
-
}
|
|
15
|
-
abilities(originalAbilities) {
|
|
16
|
-
const newAbilities = {};
|
|
17
|
-
for (const originalAbilityName in originalAbilities) {
|
|
18
|
-
const newModelName = inflection.underscore(originalAbilityName);
|
|
19
|
-
const newValues = [];
|
|
20
|
-
const originalValues = originalAbilities[originalAbilityName];
|
|
21
|
-
for (const originalAbilityName of originalValues) {
|
|
22
|
-
const newAbilityName = inflection.underscore(originalAbilityName);
|
|
23
|
-
newValues.push(newAbilityName);
|
|
24
|
-
}
|
|
25
|
-
newAbilities[newModelName] = newValues;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
26
7
|
}
|
|
27
|
-
|
|
28
|
-
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
29
42
|
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
delete this.queryArgs[key];
|
|
57
|
-
} else {
|
|
58
|
-
throw new Error(`Unhandled key: ${key}`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return this;
|
|
62
|
-
}
|
|
63
|
-
async first() {
|
|
64
|
-
const models = await this.toArray();
|
|
65
|
-
return models[0];
|
|
66
|
-
}
|
|
67
|
-
groupBy(...arrayOfTablesAndColumns) {
|
|
68
|
-
const arrayOfTablesAndColumnsWithLowercaseColumns = arrayOfTablesAndColumns.map(tableAndColumn => {
|
|
69
|
-
if (Array.isArray(tableAndColumn)) {
|
|
70
|
-
return [tableAndColumn[0], tableAndColumn[1].toLowerCase()];
|
|
71
|
-
} else {
|
|
72
|
-
return tableAndColumn.toLowerCase();
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
const currentGroupBy = this.queryArgs.groupBy || [];
|
|
76
|
-
const newGroupBy = currentGroupBy.concat(arrayOfTablesAndColumnsWithLowercaseColumns);
|
|
77
|
-
return this._merge({
|
|
78
|
-
groupBy: newGroupBy
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
async ensureLoaded() {
|
|
82
|
-
if (!this.isLoaded()) {
|
|
83
|
-
const models = await this.toArray();
|
|
84
|
-
this.set(models);
|
|
85
|
-
}
|
|
86
|
-
return this.loaded();
|
|
87
|
-
}
|
|
88
|
-
isLoaded() {
|
|
89
|
-
const {
|
|
90
|
-
model,
|
|
91
|
-
reflectionName
|
|
92
|
-
} = this.args;
|
|
93
|
-
if (reflectionName in model.relationshipsCache) {
|
|
94
|
-
return true;
|
|
95
|
-
} else if (reflectionName in model.relationships) {
|
|
96
|
-
return true;
|
|
43
|
+
};
|
|
44
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
45
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
46
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
47
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
48
|
+
function step(op) {
|
|
49
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
50
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
51
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
52
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
53
|
+
switch (op[0]) {
|
|
54
|
+
case 0: case 1: t = op; break;
|
|
55
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
56
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
57
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
58
|
+
default:
|
|
59
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
60
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
61
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
62
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
63
|
+
if (t[2]) _.ops.pop();
|
|
64
|
+
_.trys.pop(); continue;
|
|
65
|
+
}
|
|
66
|
+
op = body.call(thisArg, _);
|
|
67
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
68
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
97
69
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
forEach = (...args) => this.loaded().forEach(...args);
|
|
154
|
-
map = (...args) => this.loaded().map(...args);
|
|
155
|
-
preload(preloadValue) {
|
|
156
|
-
return this._merge({
|
|
157
|
-
preload: preloadValue
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
page(page) {
|
|
161
|
-
if (!page) page = 1;
|
|
162
|
-
return this._merge({
|
|
163
|
-
page
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
pageKey(pageKey) {
|
|
167
|
-
return this._merge({
|
|
168
|
-
pageKey
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
isFiltered() {
|
|
172
|
-
const {
|
|
173
|
-
queryArgs
|
|
174
|
-
} = this;
|
|
175
|
-
if (queryArgs.accessibleBy || queryArgs.count || queryArgs.limit || queryArgs.page || queryArgs.params || queryArgs.per || queryArgs.ransack || queryArgs.search) {
|
|
176
|
-
return true;
|
|
177
|
-
}
|
|
178
|
-
return false;
|
|
179
|
-
}
|
|
180
|
-
params() {
|
|
181
|
-
let params = {};
|
|
182
|
-
if (this.queryArgs.params) params = incorporate(params, this.queryArgs.params);
|
|
183
|
-
if (this.queryArgs.abilities) params.abilities = this.queryArgs.abilities;
|
|
184
|
-
if (this.queryArgs.accessibleBy) params.accessible_by = inflection.underscore(this.queryArgs.accessibleBy);
|
|
185
|
-
if (this.queryArgs.count) params.count = this.queryArgs.count;
|
|
186
|
-
if (this.queryArgs.distinct) params.distinct = this.queryArgs.distinct;
|
|
187
|
-
if (this.queryArgs.groupBy) params.group_by = this.queryArgs.groupBy;
|
|
188
|
-
if (this.queryArgs.ransack) params.q = this.queryArgs.ransack;
|
|
189
|
-
if (this.queryArgs.limit) params.limit = this.queryArgs.limit;
|
|
190
|
-
if (this.queryArgs.preload) params.preload = this.queryArgs.preload;
|
|
191
|
-
if (this.queryArgs.page) params.page = this.queryArgs.page;
|
|
192
|
-
if (this.queryArgs.per) params.per = this.queryArgs.per;
|
|
193
|
-
if (this.queryArgs.search) params.search = this.queryArgs.search;
|
|
194
|
-
if (this.queryArgs.select) params.select = this.queryArgs.select;
|
|
195
|
-
if (this.queryArgs.selectColumns) params.select_columns = this.queryArgs.selectColumns;
|
|
196
|
-
return params;
|
|
197
|
-
}
|
|
198
|
-
per(per) {
|
|
199
|
-
return this._merge({
|
|
200
|
-
per
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
perKey(perKey) {
|
|
204
|
-
return this._merge({
|
|
205
|
-
perKey
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
ransack(params) {
|
|
209
|
-
if (params) this._merge({
|
|
210
|
-
ransack: params
|
|
211
|
-
});
|
|
212
|
-
return this;
|
|
213
|
-
}
|
|
214
|
-
async result() {
|
|
215
|
-
const response = await this._response();
|
|
216
|
-
const models = digg(response, "collection");
|
|
217
|
-
this._addQueryToModels(models);
|
|
218
|
-
const result = new Result({
|
|
219
|
-
collection: this,
|
|
220
|
-
models,
|
|
221
|
-
response
|
|
222
|
-
});
|
|
223
|
-
return result;
|
|
224
|
-
}
|
|
225
|
-
search(params) {
|
|
226
|
-
if (params) this._merge({
|
|
227
|
-
search: params
|
|
228
|
-
});
|
|
229
|
-
return this;
|
|
230
|
-
}
|
|
231
|
-
searchKey(searchKey) {
|
|
232
|
-
return this._merge({
|
|
233
|
-
searchKey
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
select(originalSelect) {
|
|
237
|
-
const newSelect = {};
|
|
238
|
-
for (const originalModelName in originalSelect) {
|
|
239
|
-
const newModelName = inflection.underscore(originalModelName);
|
|
240
|
-
const newValues = [];
|
|
241
|
-
const originalValues = originalSelect[originalModelName];
|
|
242
|
-
for (const originalAttributeName of originalValues) {
|
|
243
|
-
const newAttributeName = inflection.underscore(originalAttributeName);
|
|
244
|
-
newValues.push(newAttributeName);
|
|
245
|
-
}
|
|
246
|
-
newSelect[newModelName] = newValues;
|
|
247
|
-
}
|
|
248
|
-
return this._merge({
|
|
249
|
-
select: newSelect
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
selectColumns(originalSelect) {
|
|
253
|
-
const newSelect = {};
|
|
254
|
-
for (const originalModelName in originalSelect) {
|
|
255
|
-
const newModelName = inflection.underscore(inflection.underscore(originalModelName));
|
|
256
|
-
const newValues = [];
|
|
257
|
-
const originalValues = originalSelect[originalModelName];
|
|
258
|
-
for (const originalAttributeName of originalValues) {
|
|
259
|
-
const newAttributeName = inflection.underscore(originalAttributeName);
|
|
260
|
-
newValues.push(newAttributeName);
|
|
261
|
-
}
|
|
262
|
-
newSelect[newModelName] = newValues;
|
|
263
|
-
}
|
|
264
|
-
return this._merge({
|
|
265
|
-
selectColumns: newSelect
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
sort(sortBy) {
|
|
269
|
-
return this._merge({
|
|
270
|
-
ransack: {
|
|
271
|
-
s: sortBy
|
|
272
|
-
}
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
async toArray() {
|
|
276
|
-
const response = await this._response();
|
|
277
|
-
const models = digg(response, "collection");
|
|
278
|
-
this._addQueryToModels(models);
|
|
279
|
-
return models;
|
|
280
|
-
}
|
|
281
|
-
modelClass() {
|
|
282
|
-
const modelName = digg(this.args.modelClass.modelClassData(), "name");
|
|
283
|
-
return modelClassRequire(modelName);
|
|
284
|
-
}
|
|
285
|
-
clone() {
|
|
286
|
-
const clonedQueryArgs = cloneDeep(this.queryArgs);
|
|
287
|
-
return new ApiMakerCollection(this.args, clonedQueryArgs);
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
// This is needed when reloading a version of the model with the same selected attributes and preloads
|
|
291
|
-
_addQueryToModels(models) {
|
|
292
|
-
for (const model of models) {
|
|
293
|
-
model.collection = this;
|
|
70
|
+
};
|
|
71
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
72
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
73
|
+
};
|
|
74
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
75
|
+
var clone_deep_1 = __importDefault(require("clone-deep"));
|
|
76
|
+
var commands_pool_js_1 = __importDefault(require("./commands-pool.js"));
|
|
77
|
+
var diggerize_1 = require("diggerize");
|
|
78
|
+
var inflection = __importStar(require("inflection"));
|
|
79
|
+
var incorporator_1 = require("incorporator");
|
|
80
|
+
var model_class_require_js_1 = __importDefault(require("./model-class-require.js"));
|
|
81
|
+
var result_js_1 = __importDefault(require("./result.js"));
|
|
82
|
+
var uniqunize_1 = __importDefault(require("uniqunize"));
|
|
83
|
+
/**
|
|
84
|
+
* @template {typeof import("./base-model.js").default} MC
|
|
85
|
+
* @typedef {InstanceType<MC>} ModelOf
|
|
86
|
+
*/
|
|
87
|
+
/**
|
|
88
|
+
* @template {typeof import("./base-model.js").default} MC
|
|
89
|
+
* @typedef {object} CollectionArgsType
|
|
90
|
+
* @property {ModelOf<MC>} [model]
|
|
91
|
+
* @property {MC} modelClass
|
|
92
|
+
* @property {string} [reflectionName]
|
|
93
|
+
*/
|
|
94
|
+
/**
|
|
95
|
+
* @typedef {object} QueryArgsType
|
|
96
|
+
* @property {Record<string, string[]>} [abilities]
|
|
97
|
+
* @property {string} [accessibleBy]
|
|
98
|
+
* @property {number} [count]
|
|
99
|
+
* @property {string} [distinct]
|
|
100
|
+
* @property {string[]} [groupBy]
|
|
101
|
+
* @property {number} [limit]
|
|
102
|
+
* @property {number} [page]
|
|
103
|
+
* @property {Record<string, any>} [params]
|
|
104
|
+
* @property {number} [per]
|
|
105
|
+
* @property {string[]} [preload]
|
|
106
|
+
* @property {Record<string, any>} [ransack]
|
|
107
|
+
* @property {Record<string, any>} [search]
|
|
108
|
+
* @property {Record<string, string[]>} [select]
|
|
109
|
+
* @property {Record<string, string[]>} [selectColumns]
|
|
110
|
+
*/
|
|
111
|
+
/**
|
|
112
|
+
* @template {typeof import("./base-model.js").default} MC
|
|
113
|
+
*/
|
|
114
|
+
var ApiMakerCollection = /** @class */ (function () {
|
|
115
|
+
/**
|
|
116
|
+
* @param {CollectionArgsType<MC>} args
|
|
117
|
+
* @param {QueryArgsType} queryArgs
|
|
118
|
+
*/
|
|
119
|
+
function ApiMakerCollection(args, queryArgs) {
|
|
120
|
+
if (queryArgs === void 0) { queryArgs = {}; }
|
|
121
|
+
if (!args.modelClass)
|
|
122
|
+
throw new Error("No modelClass given in ".concat(Object.keys(args).join(", ")));
|
|
123
|
+
this.queryArgs = queryArgs;
|
|
124
|
+
this.args = args;
|
|
294
125
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
}
|
|
310
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjbG9uZURlZXAiLCJDb21tYW5kc1Bvb2wiLCJkaWdnIiwiaW5mbGVjdGlvbiIsImluY29ycG9yYXRlIiwibW9kZWxDbGFzc1JlcXVpcmUiLCJSZXN1bHQiLCJ1bmlxdW5pemUiLCJBcGlNYWtlckNvbGxlY3Rpb24iLCJhcGlNYWtlclR5cGUiLCJjb25zdHJ1Y3RvciIsImFyZ3MiLCJxdWVyeUFyZ3MiLCJhYmlsaXRpZXMiLCJvcmlnaW5hbEFiaWxpdGllcyIsIm5ld0FiaWxpdGllcyIsIm9yaWdpbmFsQWJpbGl0eU5hbWUiLCJuZXdNb2RlbE5hbWUiLCJ1bmRlcnNjb3JlIiwibmV3VmFsdWVzIiwib3JpZ2luYWxWYWx1ZXMiLCJuZXdBYmlsaXR5TmFtZSIsInB1c2giLCJfbWVyZ2UiLCJhY2Nlc3NpYmxlQnkiLCJhYmlsaXR5TmFtZSIsImNvdW50IiwicmVzcG9uc2UiLCJjbG9uZSIsIl9yZXNwb25zZSIsImRpc3RpbmN0IiwiZWFjaCIsImNhbGxiYWNrIiwiYXJyYXkiLCJ0b0FycmF5IiwibW9kZWwiLCJjYWxsIiwiZXhjZXB0Iiwia2V5cyIsImtleSIsIkVycm9yIiwiZmlyc3QiLCJtb2RlbHMiLCJncm91cEJ5IiwiYXJyYXlPZlRhYmxlc0FuZENvbHVtbnMiLCJhcnJheU9mVGFibGVzQW5kQ29sdW1uc1dpdGhMb3dlcmNhc2VDb2x1bW5zIiwibWFwIiwidGFibGVBbmRDb2x1bW4iLCJBcnJheSIsImlzQXJyYXkiLCJ0b0xvd2VyQ2FzZSIsImN1cnJlbnRHcm91cEJ5IiwibmV3R3JvdXBCeSIsImNvbmNhdCIsImVuc3VyZUxvYWRlZCIsImlzTG9hZGVkIiwic2V0IiwibG9hZGVkIiwicmVmbGVjdGlvbk5hbWUiLCJyZWxhdGlvbnNoaXBzQ2FjaGUiLCJyZWxhdGlvbnNoaXBzIiwibGltaXQiLCJhbW91bnQiLCJwcmVsb2FkZWQiLCJpc05ld1JlY29yZCIsInJlZmxlY3Rpb25OYW1lVW5kZXJzY29yZSIsInJlbGF0aW9uc2hpcHNMb2FkZWQiLCJPYmplY3QiLCJtb2RlbENsYXNzRGF0YSIsIm5hbWUiLCJqb2luIiwibmV3Q29sbGVjdGlvbiIsIm5ld01vZGVsIiwiaW5jbHVkZXMiLCJmaW5kIiwiZm9yRWFjaCIsInByZWxvYWQiLCJwcmVsb2FkVmFsdWUiLCJwYWdlIiwicGFnZUtleSIsImlzRmlsdGVyZWQiLCJwYXJhbXMiLCJwZXIiLCJyYW5zYWNrIiwic2VhcmNoIiwiYWNjZXNzaWJsZV9ieSIsImdyb3VwX2J5IiwicSIsInNlbGVjdCIsInNlbGVjdENvbHVtbnMiLCJzZWxlY3RfY29sdW1ucyIsInBlcktleSIsInJlc3VsdCIsIl9hZGRRdWVyeVRvTW9kZWxzIiwiY29sbGVjdGlvbiIsInNlYXJjaEtleSIsIm9yaWdpbmFsU2VsZWN0IiwibmV3U2VsZWN0Iiwib3JpZ2luYWxNb2RlbE5hbWUiLCJvcmlnaW5hbEF0dHJpYnV0ZU5hbWUiLCJuZXdBdHRyaWJ1dGVOYW1lIiwic29ydCIsInNvcnRCeSIsInMiLCJtb2RlbENsYXNzIiwibW9kZWxOYW1lIiwiY2xvbmVkUXVlcnlBcmdzIiwibmV3UXVlcnlBcmdzIiwiYWRkQ29tbWFuZCIsImNvbW1hbmQiLCJjb2xsZWN0aW9uTmFtZSIsInR5cGUiXSwic291cmNlcyI6WyIuLi9zcmMvY29sbGVjdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2xvbmVEZWVwIGZyb20gXCJjbG9uZS1kZWVwXCJcbmltcG9ydCBDb21tYW5kc1Bvb2wgZnJvbSBcIi4vY29tbWFuZHMtcG9vbFwiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcbmltcG9ydCBtb2RlbENsYXNzUmVxdWlyZSBmcm9tIFwiLi9tb2RlbC1jbGFzcy1yZXF1aXJlXCJcbmltcG9ydCBSZXN1bHQgZnJvbSBcIi4vcmVzdWx0XCJcbmltcG9ydCB1bmlxdW5pemUgZnJvbSBcInVuaXF1bml6ZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyQ29sbGVjdGlvbiB7XG4gIHN0YXRpYyBhcGlNYWtlclR5cGUgPSBcIkNvbGxlY3Rpb25cIlxuXG4gIGNvbnN0cnVjdG9yKGFyZ3MsIHF1ZXJ5QXJncyA9IHt9KSB7XG4gICAgdGhpcy5xdWVyeUFyZ3MgPSBxdWVyeUFyZ3NcbiAgICB0aGlzLmFyZ3MgPSBhcmdzXG4gIH1cblxuICBhYmlsaXRpZXMob3JpZ2luYWxBYmlsaXRpZXMpIHtcbiAgICBjb25zdCBuZXdBYmlsaXRpZXMgPSB7fVxuXG4gICAgZm9yIChjb25zdCBvcmlnaW5hbEFiaWxpdHlOYW1lIGluIG9yaWdpbmFsQWJpbGl0aWVzKSB7XG4gICAgICBjb25zdCBuZXdNb2RlbE5hbWUgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUob3JpZ2luYWxBYmlsaXR5TmFtZSlcbiAgICAgIGNvbnN0IG5ld1ZhbHVlcyA9IFtdXG4gICAgICBjb25zdCBvcmlnaW5hbFZhbHVlcyA9IG9yaWdpbmFsQWJpbGl0aWVzW29yaWdpbmFsQWJpbGl0eU5hbWVdXG5cbiAgICAgIGZvciAoY29uc3Qgb3JpZ2luYWxBYmlsaXR5TmFtZSBvZiBvcmlnaW5hbFZhbHVlcykge1xuICAgICAgICBjb25zdCBuZXdBYmlsaXR5TmFtZSA9IGluZmxlY3Rpb24udW5kZXJzY29yZShvcmlnaW5hbEFiaWxpdHlOYW1lKVxuICAgICAgICBuZXdWYWx1ZXMucHVzaChuZXdBYmlsaXR5TmFtZSlcbiAgICAgIH1cblxuICAgICAgbmV3QWJpbGl0aWVzW25ld01vZGVsTmFtZV0gPSBuZXdWYWx1ZXNcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe2FiaWxpdGllczogbmV3QWJpbGl0aWVzfSlcbiAgfVxuXG4gIGFjY2Vzc2libGVCeShhYmlsaXR5TmFtZSkge1xuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7YWNjZXNzaWJsZUJ5OiBpbmZsZWN0aW9uLnVuZGVyc2NvcmUoYWJpbGl0eU5hbWUpfSlcbiAgfVxuXG4gIGFzeW5jIGNvdW50KCkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbG9uZSgpLl9tZXJnZSh7Y291bnQ6IHRydWV9KS5fcmVzcG9uc2UoKVxuXG4gICAgcmV0dXJuIGRpZ2cocmVzcG9uc2UsIFwiY291bnRcIilcbiAgfVxuXG4gIGRpc3RpbmN0KCkge1xuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7ZGlzdGluY3Q6IHRydWV9KVxuICB9XG5cbiAgYXN5bmMgZWFjaChjYWxsYmFjaykge1xuICAgIGNvbnN0IGFycmF5ID0gYXdhaXQgdGhpcy50b0FycmF5KClcblxuICAgIGZvciAoY29uc3QgbW9kZWwgaW4gYXJyYXkpIHtcbiAgICAgIGNhbGxiYWNrLmNhbGwobW9kZWwpXG4gICAgfVxuICB9XG5cbiAgZXhjZXB0KC4uLmtleXMpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICBpZiAoa2V5ID09IFwicGFnZVwiKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnF1ZXJ5QXJnc1trZXldXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaGFuZGxlZCBrZXk6ICR7a2V5fWApXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGFzeW5jIGZpcnN0KCkge1xuICAgIGNvbnN0IG1vZGVscyA9IGF3YWl0IHRoaXMudG9BcnJheSgpXG4gICAgcmV0dXJuIG1vZGVsc1swXVxuICB9XG5cbiAgZ3JvdXBCeSguLi5hcnJheU9mVGFibGVzQW5kQ29sdW1ucykge1xuICAgIGNvbnN0IGFycmF5T2ZUYWJsZXNBbmRDb2x1bW5zV2l0aExvd2VyY2FzZUNvbHVtbnMgPSBhcnJheU9mVGFibGVzQW5kQ29sdW1ucy5tYXAoKHRhYmxlQW5kQ29sdW1uKSA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0YWJsZUFuZENvbHVtbikpIHtcbiAgICAgICAgcmV0dXJuIFt0YWJsZUFuZENvbHVtblswXSwgdGFibGVBbmRDb2x1bW5bMV0udG9Mb3dlckNhc2UoKV1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0YWJsZUFuZENvbHVtbi50b0xvd2VyQ2FzZSgpXG4gICAgICB9XG4gICAgfSlcbiAgICBjb25zdCBjdXJyZW50R3JvdXBCeSA9IHRoaXMucXVlcnlBcmdzLmdyb3VwQnkgfHwgW11cbiAgICBjb25zdCBuZXdHcm91cEJ5ID0gY3VycmVudEdyb3VwQnkuY29uY2F0KGFycmF5T2ZUYWJsZXNBbmRDb2x1bW5zV2l0aExvd2VyY2FzZUNvbHVtbnMpXG5cbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe1xuICAgICAgZ3JvdXBCeTogbmV3R3JvdXBCeVxuICAgIH0pXG4gIH1cblxuICBhc3luYyBlbnN1cmVMb2FkZWQoKSB7XG4gICAgaWYgKCF0aGlzLmlzTG9hZGVkKCkpIHtcbiAgICAgIGNvbnN0IG1vZGVscyA9IGF3YWl0IHRoaXMudG9BcnJheSgpXG5cbiAgICAgIHRoaXMuc2V0KG1vZGVscylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sb2FkZWQoKVxuICB9XG5cbiAgaXNMb2FkZWQoKSB7XG4gICAgY29uc3Qge21vZGVsLCByZWZsZWN0aW9uTmFtZX0gPSB0aGlzLmFyZ3NcblxuICAgIGlmIChyZWZsZWN0aW9uTmFtZSBpbiBtb2RlbC5yZWxhdGlvbnNoaXBzQ2FjaGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBlbHNlIGlmIChyZWZsZWN0aW9uTmFtZSBpbiBtb2RlbC5yZWxhdGlvbnNoaXBzKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgbGltaXQoYW1vdW50KSB7XG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtsaW1pdDogYW1vdW50fSlcbiAgfVxuXG4gIHByZWxvYWRlZCgpIHtcbiAgICBpZiAoISh0aGlzLmFyZ3MucmVmbGVjdGlvbk5hbWUgaW4gdGhpcy5hcmdzLm1vZGVsLnJlbGF0aW9uc2hpcHNDYWNoZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmFyZ3MucmVmbGVjdGlvbk5hbWV9IGhhc250IGJlZW4gbG9hZGVkIHlldGApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXJncy5tb2RlbC5yZWxhdGlvbnNoaXBzQ2FjaGVbdGhpcy5hcmdzLnJlZmxlY3Rpb25OYW1lXVxuICB9XG5cbiAgbG9hZGVkKCkge1xuICAgIGNvbnN0IHttb2RlbCwgcmVmbGVjdGlvbk5hbWV9ID0gdGhpcy5hcmdzXG5cbiAgICBpZiAocmVmbGVjdGlvbk5hbWUgaW4gbW9kZWwucmVsYXRpb25zaGlwcykge1xuICAgICAgcmV0dXJuIG1vZGVsLnJlbGF0aW9uc2hpcHNbcmVmbGVjdGlvbk5hbWVdXG4gICAgfSBlbHNlIGlmIChyZWZsZWN0aW9uTmFtZSBpbiBtb2RlbC5yZWxhdGlvbnNoaXBzQ2FjaGUpIHtcbiAgICAgIHJldHVybiBtb2RlbC5yZWxhdGlvbnNoaXBzQ2FjaGVbcmVmbGVjdGlvbk5hbWVdXG4gICAgfSBlbHNlIGlmIChtb2RlbC5pc05ld1JlY29yZCgpKSB7XG4gICAgICBjb25zdCByZWZsZWN0aW9uTmFtZVVuZGVyc2NvcmUgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUocmVmbGVjdGlvbk5hbWUpXG5cbiAgICAgIC8vIEluaXRpYWxpemUgYXMgZW1wdHkgYW5kIHRyeSBhZ2FpbiB0byByZXR1cm4gdGhlIGVtcHR5IHJlc3VsdFxuICAgICAgdGhpcy5zZXQoW10pXG5cbiAgICAgIHJldHVybiBkaWdnKG1vZGVsLnJlbGF0aW9uc2hpcHMsIHJlZmxlY3Rpb25OYW1lVW5kZXJzY29yZSlcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVsYXRpb25zaGlwc0xvYWRlZCA9IHVuaXF1bml6ZShPYmplY3Qua2V5cyhtb2RlbC5yZWxhdGlvbnNoaXBzKS5jb25jYXQoT2JqZWN0LmtleXMobW9kZWwucmVsYXRpb25zaGlwc0NhY2hlKSkpXG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtyZWZsZWN0aW9uTmFtZX0gaGFzbnQgYmVlbiBsb2FkZWQgeWV0IG9uICR7bW9kZWwubW9kZWxDbGFzc0RhdGEoKS5uYW1lfS4gTG9hZGVkIHdhczogJHtyZWxhdGlvbnNoaXBzTG9hZGVkLmpvaW4oXCIsIFwiKX1gKVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlcGxhY2VzIHRoZSByZWxhdGlvbnNoaXBzIHdpdGggdGhlIGdpdmVuIG5ldyBjb2xsZWN0aW9uLlxuICBzZXQobmV3Q29sbGVjdGlvbikge1xuICAgIHRoaXMuYXJncy5tb2RlbC5yZWxhdGlvbnNoaXBzW3RoaXMuYXJncy5yZWZsZWN0aW9uTmFtZV0gPSBuZXdDb2xsZWN0aW9uXG4gIH1cblxuICAvLyBQdXNoZXMgYW5vdGhlciBtb2RlbCBvbnRvIHRoZSBnaXZlbiBjb2xsZWN0aW9uLlxuICBwdXNoKG5ld01vZGVsKSB7XG4gICAgY29uc3Qge21vZGVsLCByZWZsZWN0aW9uTmFtZX0gPSB0aGlzLmFyZ3NcblxuICAgIGlmICghKHJlZmxlY3Rpb25OYW1lIGluIG1vZGVsLnJlbGF0aW9uc2hpcHMpKSB7XG4gICAgICBtb2RlbC5yZWxhdGlvbnNoaXBzW3JlZmxlY3Rpb25OYW1lXSA9IFtdXG4gICAgfVxuXG4gICAgaWYgKCFtb2RlbC5yZWxhdGlvbnNoaXBzW3JlZmxlY3Rpb25OYW1lXS5pbmNsdWRlcyhuZXdNb2RlbCkpIHtcbiAgICAgIG1vZGVsLnJlbGF0aW9uc2hpcHNbcmVmbGVjdGlvbk5hbWVdLnB1c2gobmV3TW9kZWwpXG4gICAgfVxuICB9XG5cbiAgLy8gQXJyYXkgc2hvcnRjdXRzXG4gIGZpbmQgPSAoLi4uYXJncykgPT4gdGhpcy5sb2FkZWQoKS5maW5kKC4uLmFyZ3MpXG4gIGZvckVhY2ggPSAoLi4uYXJncykgPT4gdGhpcy5sb2FkZWQoKS5mb3JFYWNoKC4uLmFyZ3MpXG4gIG1hcCA9ICguLi5hcmdzKSA9PiB0aGlzLmxvYWRlZCgpLm1hcCguLi5hcmdzKVxuXG4gIHByZWxvYWQocHJlbG9hZFZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtwcmVsb2FkOiBwcmVsb2FkVmFsdWV9KVxuICB9XG5cbiAgcGFnZShwYWdlKSB7XG4gICAgaWYgKCFwYWdlKSBwYWdlID0gMVxuXG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtwYWdlfSlcbiAgfVxuXG4gIHBhZ2VLZXkocGFnZUtleSkge1xuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7cGFnZUtleX0pXG4gIH1cblxuICBpc0ZpbHRlcmVkKCkge1xuICAgIGNvbnN0IHtxdWVyeUFyZ3N9ID0gdGhpc1xuXG4gICAgaWYgKFxuICAgICAgcXVlcnlBcmdzLmFjY2Vzc2libGVCeSB8fFxuICAgICAgcXVlcnlBcmdzLmNvdW50IHx8XG4gICAgICBxdWVyeUFyZ3MubGltaXQgfHxcbiAgICAgIHF1ZXJ5QXJncy5wYWdlIHx8XG4gICAgICBxdWVyeUFyZ3MucGFyYW1zIHx8XG4gICAgICBxdWVyeUFyZ3MucGVyIHx8XG4gICAgICBxdWVyeUFyZ3MucmFuc2FjayB8fFxuICAgICAgcXVlcnlBcmdzLnNlYXJjaFxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHBhcmFtcygpIHtcbiAgICBsZXQgcGFyYW1zID0ge31cblxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5wYXJhbXMpIHBhcmFtcyA9IGluY29ycG9yYXRlKHBhcmFtcywgdGhpcy5xdWVyeUFyZ3MucGFyYW1zKVxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5hYmlsaXRpZXMpIHBhcmFtcy5hYmlsaXRpZXMgPSB0aGlzLnF1ZXJ5QXJncy5hYmlsaXRpZXNcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3MuYWNjZXNzaWJsZUJ5KSBwYXJhbXMuYWNjZXNzaWJsZV9ieSA9IGluZmxlY3Rpb24udW5kZXJzY29yZSh0aGlzLnF1ZXJ5QXJncy5hY2Nlc3NpYmxlQnkpXG4gICAgaWYgKHRoaXMucXVlcnlBcmdzLmNvdW50KSBwYXJhbXMuY291bnQgPSB0aGlzLnF1ZXJ5QXJncy5jb3VudFxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5kaXN0aW5jdCkgcGFyYW1zLmRpc3RpbmN0ID0gdGhpcy5xdWVyeUFyZ3MuZGlzdGluY3RcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3MuZ3JvdXBCeSkgcGFyYW1zLmdyb3VwX2J5ID0gdGhpcy5xdWVyeUFyZ3MuZ3JvdXBCeVxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5yYW5zYWNrKSBwYXJhbXMucSA9IHRoaXMucXVlcnlBcmdzLnJhbnNhY2tcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3MubGltaXQpIHBhcmFtcy5saW1pdCA9IHRoaXMucXVlcnlBcmdzLmxpbWl0XG4gICAgaWYgKHRoaXMucXVlcnlBcmdzLnByZWxvYWQpIHBhcmFtcy5wcmVsb2FkID0gdGhpcy5xdWVyeUFyZ3MucHJlbG9hZFxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5wYWdlKSBwYXJhbXMucGFnZSA9IHRoaXMucXVlcnlBcmdzLnBhZ2VcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3MucGVyKSBwYXJhbXMucGVyID0gdGhpcy5xdWVyeUFyZ3MucGVyXG4gICAgaWYgKHRoaXMucXVlcnlBcmdzLnNlYXJjaCkgcGFyYW1zLnNlYXJjaCA9IHRoaXMucXVlcnlBcmdzLnNlYXJjaFxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5zZWxlY3QpIHBhcmFtcy5zZWxlY3QgPSB0aGlzLnF1ZXJ5QXJncy5zZWxlY3RcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3Muc2VsZWN0Q29sdW1ucykgcGFyYW1zLnNlbGVjdF9jb2x1bW5zID0gdGhpcy5xdWVyeUFyZ3Muc2VsZWN0Q29sdW1uc1xuXG4gICAgcmV0dXJuIHBhcmFtc1xuICB9XG5cbiAgcGVyKHBlcikge1xuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7cGVyfSlcbiAgfVxuXG4gIHBlcktleShwZXJLZXkpIHtcbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe3BlcktleX0pXG4gIH1cblxuICByYW5zYWNrKHBhcmFtcykge1xuICAgIGlmIChwYXJhbXMpIHRoaXMuX21lcmdlKHtyYW5zYWNrOiBwYXJhbXN9KVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBhc3luYyByZXN1bHQoKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLl9yZXNwb25zZSgpXG4gICAgY29uc3QgbW9kZWxzID0gZGlnZyhyZXNwb25zZSwgXCJjb2xsZWN0aW9uXCIpXG5cbiAgICB0aGlzLl9hZGRRdWVyeVRvTW9kZWxzKG1vZGVscylcblxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBSZXN1bHQoe2NvbGxlY3Rpb246IHRoaXMsIG1vZGVscywgcmVzcG9uc2V9KVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgc2VhcmNoKHBhcmFtcykge1xuICAgIGlmIChwYXJhbXMpIHRoaXMuX21lcmdlKHtzZWFyY2g6IHBhcmFtc30pXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHNlYXJjaEtleShzZWFyY2hLZXkpIHtcbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe3NlYXJjaEtleX0pXG4gIH1cblxuICBzZWxlY3Qob3JpZ2luYWxTZWxlY3QpIHtcbiAgICBjb25zdCBuZXdTZWxlY3QgPSB7fVxuXG4gICAgZm9yIChjb25zdCBvcmlnaW5hbE1vZGVsTmFtZSBpbiBvcmlnaW5hbFNlbGVjdCkge1xuICAgICAgY29uc3QgbmV3TW9kZWxOYW1lID0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKG9yaWdpbmFsTW9kZWxOYW1lKVxuICAgICAgY29uc3QgbmV3VmFsdWVzID0gW11cbiAgICAgIGNvbnN0IG9yaWdpbmFsVmFsdWVzID0gb3JpZ2luYWxTZWxlY3Rbb3JpZ2luYWxNb2RlbE5hbWVdXG5cbiAgICAgIGZvciAoY29uc3Qgb3JpZ2luYWxBdHRyaWJ1dGVOYW1lIG9mIG9yaWdpbmFsVmFsdWVzKSB7XG4gICAgICAgIGNvbnN0IG5ld0F0dHJpYnV0ZU5hbWUgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUob3JpZ2luYWxBdHRyaWJ1dGVOYW1lKVxuICAgICAgICBuZXdWYWx1ZXMucHVzaChuZXdBdHRyaWJ1dGVOYW1lKVxuICAgICAgfVxuXG4gICAgICBuZXdTZWxlY3RbbmV3TW9kZWxOYW1lXSA9IG5ld1ZhbHVlc1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7c2VsZWN0OiBuZXdTZWxlY3R9KVxuICB9XG5cbiAgc2VsZWN0Q29sdW1ucyhvcmlnaW5hbFNlbGVjdCkge1xuICAgIGNvbnN0IG5ld1NlbGVjdCA9IHt9XG5cbiAgICBmb3IgKGNvbnN0IG9yaWdpbmFsTW9kZWxOYW1lIGluIG9yaWdpbmFsU2VsZWN0KSB7XG4gICAgICBjb25zdCBuZXdNb2RlbE5hbWUgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUoaW5mbGVjdGlvbi51bmRlcnNjb3JlKG9yaWdpbmFsTW9kZWxOYW1lKSlcbiAgICAgIGNvbnN0IG5ld1ZhbHVlcyA9IFtdXG4gICAgICBjb25zdCBvcmlnaW5hbFZhbHVlcyA9IG9yaWdpbmFsU2VsZWN0W29yaWdpbmFsTW9kZWxOYW1lXVxuXG4gICAgICBmb3IgKGNvbnN0IG9yaWdpbmFsQXR0cmlidXRlTmFtZSBvZiBvcmlnaW5hbFZhbHVlcykge1xuICAgICAgICBjb25zdCBuZXdBdHRyaWJ1dGVOYW1lID0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKG9yaWdpbmFsQXR0cmlidXRlTmFtZSlcbiAgICAgICAgbmV3VmFsdWVzLnB1c2gobmV3QXR0cmlidXRlTmFtZSlcbiAgICAgIH1cblxuICAgICAgbmV3U2VsZWN0W25ld01vZGVsTmFtZV0gPSBuZXdWYWx1ZXNcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe3NlbGVjdENvbHVtbnM6IG5ld1NlbGVjdH0pXG4gIH1cblxuICBzb3J0KHNvcnRCeSkge1xuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7cmFuc2Fjazoge3M6IHNvcnRCeX19KVxuICB9XG5cbiAgYXN5bmMgdG9BcnJheSgpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuX3Jlc3BvbnNlKClcbiAgICBjb25zdCBtb2RlbHMgPSBkaWdnKHJlc3BvbnNlLCBcImNvbGxlY3Rpb25cIilcblxuICAgIHRoaXMuX2FkZFF1ZXJ5VG9Nb2RlbHMobW9kZWxzKVxuXG4gICAgcmV0dXJuIG1vZGVsc1xuICB9XG5cbiAgbW9kZWxDbGFzcygpIHtcbiAgICBjb25zdCBtb2RlbE5hbWUgPSBkaWdnKHRoaXMuYXJncy5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCksIFwibmFtZVwiKVxuXG4gICAgcmV0dXJuIG1vZGVsQ2xhc3NSZXF1aXJlKG1vZGVsTmFtZSlcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIGNvbnN0IGNsb25lZFF1ZXJ5QXJncyA9IGNsb25lRGVlcCh0aGlzLnF1ZXJ5QXJncylcblxuICAgIHJldHVybiBuZXcgQXBpTWFrZXJDb2xsZWN0aW9uKHRoaXMuYXJncywgY2xvbmVkUXVlcnlBcmdzKVxuICB9XG5cbiAgLy8gVGhpcyBpcyBuZWVkZWQgd2hlbiByZWxvYWRpbmcgYSB2ZXJzaW9uIG9mIHRoZSBtb2RlbCB3aXRoIHRoZSBzYW1lIHNlbGVjdGVkIGF0dHJpYnV0ZXMgYW5kIHByZWxvYWRzXG4gIF9hZGRRdWVyeVRvTW9kZWxzKG1vZGVscykge1xuICAgIGZvciAoY29uc3QgbW9kZWwgb2YgbW9kZWxzKSB7XG4gICAgICBtb2RlbC5jb2xsZWN0aW9uID0gdGhpc1xuICAgIH1cbiAgfVxuXG4gIF9tZXJnZShuZXdRdWVyeUFyZ3MpIHtcbiAgICBpbmNvcnBvcmF0ZSh0aGlzLnF1ZXJ5QXJncywgbmV3UXVlcnlBcmdzKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIF9yZXNwb25zZSgpIHtcbiAgICBjb25zdCBtb2RlbENsYXNzRGF0YSA9IHRoaXMuYXJncy5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKClcblxuICAgIHJldHVybiBDb21tYW5kc1Bvb2wuYWRkQ29tbWFuZChcbiAgICAgIHtcbiAgICAgICAgYXJnczogdGhpcy5wYXJhbXMoKSxcbiAgICAgICAgY29tbWFuZDogYCR7bW9kZWxDbGFzc0RhdGEuY29sbGVjdGlvbk5hbWV9LWluZGV4YCxcbiAgICAgICAgY29sbGVjdGlvbk5hbWU6IG1vZGVsQ2xhc3NEYXRhLmNvbGxlY3Rpb25OYW1lLFxuICAgICAgICB0eXBlOiBcImluZGV4XCJcbiAgICAgIH0sXG4gICAgICB7fVxuICAgIClcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxTQUFTLE1BQU0sWUFBWTtBQUNsQyxPQUFPQyxZQUFZLE1BQU0saUJBQWlCO0FBQzFDLFNBQVFDLElBQUksUUFBTyxXQUFXO0FBQzlCLE9BQU8sS0FBS0MsVUFBVSxNQUFNLFlBQVk7QUFDeEMsU0FBUUMsV0FBVyxRQUFPLGNBQWM7QUFDeEMsT0FBT0MsaUJBQWlCLE1BQU0sdUJBQXVCO0FBQ3JELE9BQU9DLE1BQU0sTUFBTSxVQUFVO0FBQzdCLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBRWpDLGVBQWUsTUFBTUMsa0JBQWtCLENBQUM7RUFDdEMsT0FBT0MsWUFBWSxHQUFHLFlBQVk7RUFFbENDLFdBQVdBLENBQUNDLElBQUksRUFBRUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFO0lBQ2hDLElBQUksQ0FBQ0EsU0FBUyxHQUFHQSxTQUFTO0lBQzFCLElBQUksQ0FBQ0QsSUFBSSxHQUFHQSxJQUFJO0VBQ2xCO0VBRUFFLFNBQVNBLENBQUNDLGlCQUFpQixFQUFFO0lBQzNCLE1BQU1DLFlBQVksR0FBRyxDQUFDLENBQUM7SUFFdkIsS0FBSyxNQUFNQyxtQkFBbUIsSUFBSUYsaUJBQWlCLEVBQUU7TUFDbkQsTUFBTUcsWUFBWSxHQUFHZCxVQUFVLENBQUNlLFVBQVUsQ0FBQ0YsbUJBQW1CLENBQUM7TUFDL0QsTUFBTUcsU0FBUyxHQUFHLEVBQUU7TUFDcEIsTUFBTUMsY0FBYyxHQUFHTixpQkFBaUIsQ0FBQ0UsbUJBQW1CLENBQUM7TUFFN0QsS0FBSyxNQUFNQSxtQkFBbUIsSUFBSUksY0FBYyxFQUFFO1FBQ2hELE1BQU1DLGNBQWMsR0FBR2xCLFVBQVUsQ0FBQ2UsVUFBVSxDQUFDRixtQkFBbUIsQ0FBQztR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QUFDb0IsQ0FBQyxFQUFFRDtNQUFNO0lBQUMsQ0FBQyxDQUFDO0VBQzVDO0VBRUEsTUFBTXBFLE9BQU9BLENBQUEsRUFBRztJQUNkLE1BQU1QLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQ0UsU0FBUyxDQUFDLENBQUM7SUFDdkMsTUFBTWEsTUFBTSxHQUFHeEMsSUFBSSxDQUFDeUIsUUFBUSxFQUFFLFlBQVksQ0FBQztJQUUzQyxJQUFJLENBQUNrRSxpQkFBaUIsQ0FBQ25ELE1BQU0sQ0FBQztJQUU5QixPQUFPQSxNQUFNO0VBQ2Y7RUFFQThELFVBQVVBLENBQUEsRUFBRztJQUNYLE1BQU1DLFNBQVMsR0FBR3ZHLElBQUksQ0FBQyxJQUFJLENBQUNTLElBQUksQ0FBQzZGLFVBQVUsQ0FBQ3BDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBRXJFLE9BQU8vRCxpQkFBaUIsQ0FBQ29HLFNBQVMsQ0FBQztFQUNyQztFQUVBN0UsS0FBS0EsQ0FBQSxFQUFHO0lBQ04sTUFBTThFLGVBQWUsR0FBRzFHLFNBQVMsQ0FBQyxJQUFJLENBQUNZLFNBQVMsQ0FBQztJQUVqRCxPQUFPLElBQUlKLGtCQUFrQixDQUFDLElBQUksQ0FBQ0csSUFBSSxFQUFFK0YsZUFBZSxDQUFDO0VBQzNEOztFQUVBO0VBQ0FiLGlCQUFpQkEsQ0FBQ25ELE1BQU0sRUFBRTtJQUN4QixLQUFLLE1BQU1QLEtBQUssSUFBSU8sTUFBTSxFQUFFO01BQzFCUCxLQUFLLENBQUMyRCxVQUFVLEdBQUcsSUFBSTtJQUN6QjtFQUNGO0VBRUF2RSxNQUFNQSxDQUFDb0YsWUFBWSxFQUFFO0lBQ25CdkcsV0FBVyxDQUFDLElBQUksQ0FBQ1EsU0FBUyxFQUFFK0YsWUFBWSxDQUFDO0lBRXpDLE9BQU8sSUFBSTtFQUNiO0VBRUE5RSxTQUFTQSxDQUFBLEVBQUc7SUFDVixNQUFNdUMsY0FBYyxHQUFHLElBQUksQ0FBQ3pELElBQUksQ0FBQzZGLFVBQVUsQ0FBQ3BDLGNBQWMsQ0FBQyxDQUFDO0lBRTVELE9BQU9uRSxZQUFZLENBQUMyRyxVQUFVLENBQzVCO01BQ0VqRyxJQUFJLEVBQUUsSUFBSSxDQUFDc0UsTUFBTSxDQUFDLENBQUM7TUFDbkI0QixPQUFPLEVBQUUsR0FBR3pDLGNBQWMsQ0FBQzBDLGNBQWMsUUFBUTtNQUNqREEsY0FBYyxFQUFFMUMsY0FBYyxDQUFDMEMsY0FBYztNQUM3Q0MsSUFBSSxFQUFFO0lBQ1IsQ0FBQyxFQUNELENBQUMsQ0FDSCxDQUFDO0VBQ0g7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
126
|
+
ApiMakerCollection.prototype.abilities = function (originalAbilities) {
|
|
127
|
+
var newAbilities = {};
|
|
128
|
+
for (var originalAbilityName in originalAbilities) {
|
|
129
|
+
var newModelName = inflection.underscore(originalAbilityName);
|
|
130
|
+
var newValues = [];
|
|
131
|
+
var originalValues = originalAbilities[originalAbilityName];
|
|
132
|
+
for (var _i = 0, originalValues_1 = originalValues; _i < originalValues_1.length; _i++) {
|
|
133
|
+
var originalAbilityName_1 = originalValues_1[_i];
|
|
134
|
+
var newAbilityName = inflection.underscore(originalAbilityName_1);
|
|
135
|
+
newValues.push(newAbilityName);
|
|
136
|
+
}
|
|
137
|
+
newAbilities[newModelName] = newValues;
|
|
138
|
+
}
|
|
139
|
+
return this._merge({ abilities: newAbilities });
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* @param {string} abilityName
|
|
143
|
+
* @returns {this}
|
|
144
|
+
*/
|
|
145
|
+
ApiMakerCollection.prototype.accessibleBy = function (abilityName) {
|
|
146
|
+
return this._merge({ accessibleBy: inflection.underscore(abilityName) });
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* @returns {Promise<number>}
|
|
150
|
+
*/
|
|
151
|
+
ApiMakerCollection.prototype.count = function () {
|
|
152
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
153
|
+
var response;
|
|
154
|
+
return __generator(this, function (_a) {
|
|
155
|
+
switch (_a.label) {
|
|
156
|
+
case 0: return [4 /*yield*/, this.clone()._merge({ count: true })._response()];
|
|
157
|
+
case 1:
|
|
158
|
+
response = _a.sent();
|
|
159
|
+
return [2 /*return*/, (0, diggerize_1.digg)(response, "count")];
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* @returns {this}
|
|
166
|
+
*/
|
|
167
|
+
ApiMakerCollection.prototype.distinct = function () {
|
|
168
|
+
return this._merge({ distinct: true });
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* @param {function(import("./base-model.js").default) : void} callback
|
|
172
|
+
* @returns {Promise<void>}
|
|
173
|
+
*/
|
|
174
|
+
ApiMakerCollection.prototype.each = function (callback) {
|
|
175
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
176
|
+
var array, model;
|
|
177
|
+
return __generator(this, function (_a) {
|
|
178
|
+
switch (_a.label) {
|
|
179
|
+
case 0: return [4 /*yield*/, this.toArray()];
|
|
180
|
+
case 1:
|
|
181
|
+
array = _a.sent();
|
|
182
|
+
for (model in array) {
|
|
183
|
+
callback.call(model);
|
|
184
|
+
}
|
|
185
|
+
return [2 /*return*/];
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* @param {...string} keys
|
|
192
|
+
* @returns {this}
|
|
193
|
+
*/
|
|
194
|
+
ApiMakerCollection.prototype.except = function () {
|
|
195
|
+
var keys = [];
|
|
196
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
197
|
+
keys[_i] = arguments[_i];
|
|
198
|
+
}
|
|
199
|
+
for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) {
|
|
200
|
+
var key = keys_1[_a];
|
|
201
|
+
if (key == "page") {
|
|
202
|
+
delete this.queryArgs[key];
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
throw new Error("Unhandled key: ".concat(key));
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return this;
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* @returns {Promise<ModelOf<MC>>}
|
|
212
|
+
*/
|
|
213
|
+
ApiMakerCollection.prototype.first = function () {
|
|
214
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
215
|
+
var models;
|
|
216
|
+
return __generator(this, function (_a) {
|
|
217
|
+
switch (_a.label) {
|
|
218
|
+
case 0: return [4 /*yield*/, this.toArray()];
|
|
219
|
+
case 1:
|
|
220
|
+
models = _a.sent();
|
|
221
|
+
return [2 /*return*/, models[0]];
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
};
|
|
226
|
+
ApiMakerCollection.prototype.groupBy = function () {
|
|
227
|
+
var arrayOfTablesAndColumns = [];
|
|
228
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
229
|
+
arrayOfTablesAndColumns[_i] = arguments[_i];
|
|
230
|
+
}
|
|
231
|
+
var arrayOfTablesAndColumnsWithLowercaseColumns = arrayOfTablesAndColumns.map(function (tableAndColumn) {
|
|
232
|
+
if (Array.isArray(tableAndColumn)) {
|
|
233
|
+
return [tableAndColumn[0], tableAndColumn[1].toLowerCase()];
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
return tableAndColumn.toLowerCase();
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
var currentGroupBy = this.queryArgs.groupBy || [];
|
|
240
|
+
var newGroupBy = currentGroupBy.concat(arrayOfTablesAndColumnsWithLowercaseColumns);
|
|
241
|
+
return this._merge({
|
|
242
|
+
groupBy: newGroupBy
|
|
243
|
+
});
|
|
244
|
+
};
|
|
245
|
+
ApiMakerCollection.prototype.ensureLoaded = function () {
|
|
246
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
247
|
+
var models;
|
|
248
|
+
return __generator(this, function (_a) {
|
|
249
|
+
switch (_a.label) {
|
|
250
|
+
case 0:
|
|
251
|
+
if (!!this.isLoaded()) return [3 /*break*/, 2];
|
|
252
|
+
return [4 /*yield*/, this.toArray()];
|
|
253
|
+
case 1:
|
|
254
|
+
models = _a.sent();
|
|
255
|
+
this.set(models);
|
|
256
|
+
_a.label = 2;
|
|
257
|
+
case 2: return [2 /*return*/, this.loaded()];
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
};
|
|
262
|
+
/**
|
|
263
|
+
* @returns {boolean}
|
|
264
|
+
*/
|
|
265
|
+
ApiMakerCollection.prototype.isLoaded = function () {
|
|
266
|
+
var _a = this.args, model = _a.model, reflectionName = _a.reflectionName;
|
|
267
|
+
if (reflectionName in model.relationshipsCache) {
|
|
268
|
+
return true;
|
|
269
|
+
}
|
|
270
|
+
else if (reflectionName in model.relationships) {
|
|
271
|
+
return true;
|
|
272
|
+
}
|
|
273
|
+
return false;
|
|
274
|
+
};
|
|
275
|
+
/**
|
|
276
|
+
* @param {number} amount
|
|
277
|
+
* @returns {this}
|
|
278
|
+
*/
|
|
279
|
+
ApiMakerCollection.prototype.limit = function (amount) {
|
|
280
|
+
return this._merge({ limit: amount });
|
|
281
|
+
};
|
|
282
|
+
/**
|
|
283
|
+
* @returns {Array<ModelOf<MC>>}
|
|
284
|
+
*/
|
|
285
|
+
ApiMakerCollection.prototype.preloaded = function () {
|
|
286
|
+
if (!(this.args.reflectionName in this.args.model.relationshipsCache)) {
|
|
287
|
+
throw new Error("".concat(this.args.reflectionName, " hasnt been loaded yet"));
|
|
288
|
+
}
|
|
289
|
+
return this.args.model.relationshipsCache[this.args.reflectionName];
|
|
290
|
+
};
|
|
291
|
+
/**
|
|
292
|
+
* @returns {ModelOf<MC> | Array<ModelOf<MC>>}
|
|
293
|
+
*/
|
|
294
|
+
ApiMakerCollection.prototype.loaded = function () {
|
|
295
|
+
var _a = this.args, model = _a.model, reflectionName = _a.reflectionName;
|
|
296
|
+
if (reflectionName in model.relationships) {
|
|
297
|
+
return model.relationships[reflectionName];
|
|
298
|
+
}
|
|
299
|
+
else if (reflectionName in model.relationshipsCache) {
|
|
300
|
+
return model.relationshipsCache[reflectionName];
|
|
301
|
+
}
|
|
302
|
+
else if (model.isNewRecord()) {
|
|
303
|
+
var reflectionNameUnderscore = inflection.underscore(reflectionName);
|
|
304
|
+
// Initialize as empty and try again to return the empty result
|
|
305
|
+
this.set([]);
|
|
306
|
+
return (0, diggerize_1.digg)(model.relationships, reflectionNameUnderscore);
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
var relationshipsLoaded = (0, uniqunize_1.default)(Object.keys(model.relationships).concat(Object.keys(model.relationshipsCache)));
|
|
310
|
+
throw new Error("".concat(reflectionName, " hasnt been loaded yet on ").concat(model.modelClassData().name, ". Loaded was: ").concat(relationshipsLoaded.join(", ")));
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
/** @returns {Array<ModelOf<MC>>} */
|
|
314
|
+
ApiMakerCollection.prototype.loadedArray = function () {
|
|
315
|
+
var loaded = this.loaded();
|
|
316
|
+
if (Array.isArray(loaded)) {
|
|
317
|
+
return loaded;
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
throw new Error("'loaded' wasn't an array");
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
// Replaces the relationships with the given new collection.
|
|
324
|
+
ApiMakerCollection.prototype.set = function (newCollection) {
|
|
325
|
+
this.args.model.relationships[this.args.reflectionName] = newCollection;
|
|
326
|
+
};
|
|
327
|
+
// Pushes another model onto the given collection.
|
|
328
|
+
ApiMakerCollection.prototype.push = function (newModel) {
|
|
329
|
+
var _a = this.args, model = _a.model, reflectionName = _a.reflectionName;
|
|
330
|
+
if (!(reflectionName in model.relationships)) {
|
|
331
|
+
model.relationships[reflectionName] = [];
|
|
332
|
+
}
|
|
333
|
+
if (!model.relationships[reflectionName].includes(newModel)) {
|
|
334
|
+
model.relationships[reflectionName].push(newModel);
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
// Array shortcuts
|
|
338
|
+
/**
|
|
339
|
+
* @param {function(import("./base-model.js").default): boolean} callback
|
|
340
|
+
* @returns {import("./base-model.js").default}
|
|
341
|
+
*/
|
|
342
|
+
ApiMakerCollection.prototype.find = function (callback) { return this.loadedArray().find(callback); };
|
|
343
|
+
/**
|
|
344
|
+
* @param {function(import("./base-model.js").default): void} callback
|
|
345
|
+
* @returns {void}
|
|
346
|
+
*/
|
|
347
|
+
ApiMakerCollection.prototype.forEach = function (callback) { return this.loadedArray().forEach(callback); };
|
|
348
|
+
/**
|
|
349
|
+
* @param {function(import("./base-model.js").default): void} callback
|
|
350
|
+
* @returns {any[]}
|
|
351
|
+
*/
|
|
352
|
+
ApiMakerCollection.prototype.map = function (callback) { return this.loadedArray().map(callback); };
|
|
353
|
+
/**
|
|
354
|
+
* @param {string[]} preloadValue
|
|
355
|
+
* @returns {this}
|
|
356
|
+
*/
|
|
357
|
+
ApiMakerCollection.prototype.preload = function (preloadValue) {
|
|
358
|
+
return this._merge({ preload: preloadValue });
|
|
359
|
+
};
|
|
360
|
+
/**
|
|
361
|
+
* @param {number} page
|
|
362
|
+
* @returns {this}
|
|
363
|
+
*/
|
|
364
|
+
ApiMakerCollection.prototype.page = function (page) {
|
|
365
|
+
if (!page)
|
|
366
|
+
page = 1;
|
|
367
|
+
return this._merge({ page: page });
|
|
368
|
+
};
|
|
369
|
+
/**
|
|
370
|
+
* @param {string} pageKey
|
|
371
|
+
* @returns {this}
|
|
372
|
+
*/
|
|
373
|
+
ApiMakerCollection.prototype.pageKey = function (pageKey) {
|
|
374
|
+
return this._merge({ pageKey: pageKey });
|
|
375
|
+
};
|
|
376
|
+
/**
|
|
377
|
+
* @returns {boolean}
|
|
378
|
+
*/
|
|
379
|
+
ApiMakerCollection.prototype.isFiltered = function () {
|
|
380
|
+
var queryArgs = this.queryArgs;
|
|
381
|
+
if (queryArgs.accessibleBy ||
|
|
382
|
+
queryArgs.count ||
|
|
383
|
+
queryArgs.limit ||
|
|
384
|
+
queryArgs.page ||
|
|
385
|
+
queryArgs.params ||
|
|
386
|
+
queryArgs.per ||
|
|
387
|
+
queryArgs.ransack ||
|
|
388
|
+
queryArgs.search) {
|
|
389
|
+
return true;
|
|
390
|
+
}
|
|
391
|
+
return false;
|
|
392
|
+
};
|
|
393
|
+
/**
|
|
394
|
+
* @returns {Record<string, any>}
|
|
395
|
+
*/
|
|
396
|
+
ApiMakerCollection.prototype.params = function () {
|
|
397
|
+
var params = {};
|
|
398
|
+
if (this.queryArgs.params)
|
|
399
|
+
params = (0, incorporator_1.incorporate)(params, this.queryArgs.params);
|
|
400
|
+
if (this.queryArgs.abilities)
|
|
401
|
+
params.abilities = this.queryArgs.abilities;
|
|
402
|
+
if (this.queryArgs.accessibleBy)
|
|
403
|
+
params.accessible_by = inflection.underscore(this.queryArgs.accessibleBy);
|
|
404
|
+
if (this.queryArgs.count)
|
|
405
|
+
params.count = this.queryArgs.count;
|
|
406
|
+
if (this.queryArgs.distinct)
|
|
407
|
+
params.distinct = this.queryArgs.distinct;
|
|
408
|
+
if (this.queryArgs.groupBy)
|
|
409
|
+
params.group_by = this.queryArgs.groupBy;
|
|
410
|
+
if (this.queryArgs.ransack)
|
|
411
|
+
params.q = this.queryArgs.ransack;
|
|
412
|
+
if (this.queryArgs.limit)
|
|
413
|
+
params.limit = this.queryArgs.limit;
|
|
414
|
+
if (this.queryArgs.preload)
|
|
415
|
+
params.preload = this.queryArgs.preload;
|
|
416
|
+
if (this.queryArgs.page)
|
|
417
|
+
params.page = this.queryArgs.page;
|
|
418
|
+
if (this.queryArgs.per)
|
|
419
|
+
params.per = this.queryArgs.per;
|
|
420
|
+
if (this.queryArgs.search)
|
|
421
|
+
params.search = this.queryArgs.search;
|
|
422
|
+
if (this.queryArgs.select)
|
|
423
|
+
params.select = this.queryArgs.select;
|
|
424
|
+
if (this.queryArgs.selectColumns)
|
|
425
|
+
params.select_columns = this.queryArgs.selectColumns;
|
|
426
|
+
return params;
|
|
427
|
+
};
|
|
428
|
+
/**
|
|
429
|
+
* @param {number} per
|
|
430
|
+
* @returns {this}
|
|
431
|
+
*/
|
|
432
|
+
ApiMakerCollection.prototype.per = function (per) {
|
|
433
|
+
return this._merge({ per: per });
|
|
434
|
+
};
|
|
435
|
+
/**
|
|
436
|
+
* @param {string} perKey
|
|
437
|
+
* @returns {this}
|
|
438
|
+
*/
|
|
439
|
+
ApiMakerCollection.prototype.perKey = function (perKey) {
|
|
440
|
+
return this._merge({ perKey: perKey });
|
|
441
|
+
};
|
|
442
|
+
/**
|
|
443
|
+
* @param {Record<string, any>} params
|
|
444
|
+
* @returns {this}
|
|
445
|
+
*/
|
|
446
|
+
ApiMakerCollection.prototype.ransack = function (params) {
|
|
447
|
+
if (params)
|
|
448
|
+
this._merge({ ransack: params });
|
|
449
|
+
return this;
|
|
450
|
+
};
|
|
451
|
+
/**
|
|
452
|
+
* @returns {Promise<Result>}
|
|
453
|
+
*/
|
|
454
|
+
ApiMakerCollection.prototype.result = function () {
|
|
455
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
456
|
+
var response, models, result;
|
|
457
|
+
return __generator(this, function (_a) {
|
|
458
|
+
switch (_a.label) {
|
|
459
|
+
case 0: return [4 /*yield*/, this._response()];
|
|
460
|
+
case 1:
|
|
461
|
+
response = _a.sent();
|
|
462
|
+
models = (0, diggerize_1.digg)(response, "collection");
|
|
463
|
+
this._addQueryToModels(models);
|
|
464
|
+
result = new result_js_1.default({ collection: this, models: models, response: response });
|
|
465
|
+
return [2 /*return*/, result];
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
});
|
|
469
|
+
};
|
|
470
|
+
/**
|
|
471
|
+
* @param {Record<string, any>} params
|
|
472
|
+
* @returns {this}
|
|
473
|
+
*/
|
|
474
|
+
ApiMakerCollection.prototype.search = function (params) {
|
|
475
|
+
if (params)
|
|
476
|
+
this._merge({ search: params });
|
|
477
|
+
return this;
|
|
478
|
+
};
|
|
479
|
+
/**
|
|
480
|
+
* @param {string} searchKey
|
|
481
|
+
* @returns {this}
|
|
482
|
+
*/
|
|
483
|
+
ApiMakerCollection.prototype.searchKey = function (searchKey) {
|
|
484
|
+
return this._merge({ searchKey: searchKey });
|
|
485
|
+
};
|
|
486
|
+
/**
|
|
487
|
+
* @param {Record<string, string[]>} originalSelect
|
|
488
|
+
* @returns {this}
|
|
489
|
+
*/
|
|
490
|
+
ApiMakerCollection.prototype.select = function (originalSelect) {
|
|
491
|
+
var newSelect = {};
|
|
492
|
+
for (var originalModelName in originalSelect) {
|
|
493
|
+
var newModelName = inflection.underscore(originalModelName);
|
|
494
|
+
var newValues = [];
|
|
495
|
+
var originalValues = originalSelect[originalModelName];
|
|
496
|
+
for (var _i = 0, originalValues_2 = originalValues; _i < originalValues_2.length; _i++) {
|
|
497
|
+
var originalAttributeName = originalValues_2[_i];
|
|
498
|
+
var newAttributeName = inflection.underscore(originalAttributeName);
|
|
499
|
+
newValues.push(newAttributeName);
|
|
500
|
+
}
|
|
501
|
+
newSelect[newModelName] = newValues;
|
|
502
|
+
}
|
|
503
|
+
return this._merge({ select: newSelect });
|
|
504
|
+
};
|
|
505
|
+
/**
|
|
506
|
+
* @param {Record<string, string[]>} originalSelect
|
|
507
|
+
* @returns {this}
|
|
508
|
+
*/
|
|
509
|
+
ApiMakerCollection.prototype.selectColumns = function (originalSelect) {
|
|
510
|
+
var newSelect = {};
|
|
511
|
+
for (var originalModelName in originalSelect) {
|
|
512
|
+
var newModelName = inflection.underscore(inflection.underscore(originalModelName));
|
|
513
|
+
var newValues = [];
|
|
514
|
+
var originalValues = originalSelect[originalModelName];
|
|
515
|
+
for (var _i = 0, originalValues_3 = originalValues; _i < originalValues_3.length; _i++) {
|
|
516
|
+
var originalAttributeName = originalValues_3[_i];
|
|
517
|
+
var newAttributeName = inflection.underscore(originalAttributeName);
|
|
518
|
+
newValues.push(newAttributeName);
|
|
519
|
+
}
|
|
520
|
+
newSelect[newModelName] = newValues;
|
|
521
|
+
}
|
|
522
|
+
return this._merge({ selectColumns: newSelect });
|
|
523
|
+
};
|
|
524
|
+
/**
|
|
525
|
+
* @param {string} sortBy
|
|
526
|
+
* @returns {this}
|
|
527
|
+
*/
|
|
528
|
+
ApiMakerCollection.prototype.sort = function (sortBy) {
|
|
529
|
+
return this._merge({ ransack: { s: sortBy } });
|
|
530
|
+
};
|
|
531
|
+
/**
|
|
532
|
+
* @returns {Promise<Array<ModelOf<MC>>>}
|
|
533
|
+
*/
|
|
534
|
+
ApiMakerCollection.prototype.toArray = function () {
|
|
535
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
536
|
+
var response, models;
|
|
537
|
+
return __generator(this, function (_a) {
|
|
538
|
+
switch (_a.label) {
|
|
539
|
+
case 0: return [4 /*yield*/, this._response()];
|
|
540
|
+
case 1:
|
|
541
|
+
response = _a.sent();
|
|
542
|
+
models = (0, diggerize_1.digg)(response, "collection");
|
|
543
|
+
this._addQueryToModels(models);
|
|
544
|
+
return [2 /*return*/, models];
|
|
545
|
+
}
|
|
546
|
+
});
|
|
547
|
+
});
|
|
548
|
+
};
|
|
549
|
+
/**
|
|
550
|
+
* @returns {MC}
|
|
551
|
+
*/
|
|
552
|
+
ApiMakerCollection.prototype.modelClass = function () {
|
|
553
|
+
if (!this.args.modelClass) {
|
|
554
|
+
throw new Error("No model class given in args");
|
|
555
|
+
}
|
|
556
|
+
return this.args.modelClass;
|
|
557
|
+
};
|
|
558
|
+
/**
|
|
559
|
+
* @returns {ApiMakerCollection}
|
|
560
|
+
*/
|
|
561
|
+
ApiMakerCollection.prototype.clone = function () {
|
|
562
|
+
var clonedQueryArgs = (0, clone_deep_1.default)(this.queryArgs);
|
|
563
|
+
return new ApiMakerCollection(this.args, clonedQueryArgs);
|
|
564
|
+
};
|
|
565
|
+
// This is needed when reloading a version of the model with the same selected attributes and preloads
|
|
566
|
+
ApiMakerCollection.prototype._addQueryToModels = function (models) {
|
|
567
|
+
for (var _i = 0, models_1 = models; _i < models_1.length; _i++) {
|
|
568
|
+
var model = models_1[_i];
|
|
569
|
+
model.collection = this;
|
|
570
|
+
}
|
|
571
|
+
};
|
|
572
|
+
ApiMakerCollection.prototype._merge = function (newQueryArgs) {
|
|
573
|
+
(0, incorporator_1.incorporate)(this.queryArgs, newQueryArgs);
|
|
574
|
+
return this;
|
|
575
|
+
};
|
|
576
|
+
ApiMakerCollection.prototype._response = function () {
|
|
577
|
+
var _a;
|
|
578
|
+
if (!this.args)
|
|
579
|
+
throw new Error("No args?");
|
|
580
|
+
if (!this.args.modelClass)
|
|
581
|
+
throw new Error("No modelClass in args");
|
|
582
|
+
if (!this.args.modelClass.modelClassData)
|
|
583
|
+
throw new Error("No modelClassData on modelClass ".concat((_a = this.args.modelClass) === null || _a === void 0 ? void 0 : _a.name, " (").concat(typeof this.args.modelClass, ")"));
|
|
584
|
+
var modelClassData = this.args.modelClass.modelClassData();
|
|
585
|
+
return commands_pool_js_1.default.addCommand({
|
|
586
|
+
args: this.params(),
|
|
587
|
+
command: "".concat(modelClassData.collectionName, "-index"),
|
|
588
|
+
collectionName: modelClassData.collectionName,
|
|
589
|
+
type: "index"
|
|
590
|
+
}, {});
|
|
591
|
+
};
|
|
592
|
+
ApiMakerCollection.apiMakerType = "Collection";
|
|
593
|
+
return ApiMakerCollection;
|
|
594
|
+
}());
|
|
595
|
+
exports.default = ApiMakerCollection;
|
|
596
|
+
//# sourceMappingURL=collection.js.map
|