@kaspernj/api-maker 1.0.451 → 1.0.453
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.js +1 -1
- package/build/api.js.map +1 -0
- package/build/attribute-not-loaded-error.js +1 -1
- package/build/attribute-not-loaded-error.js.map +1 -0
- package/build/base-component.js +1 -1
- package/build/base-component.js.map +1 -0
- package/build/base-error.js +1 -1
- package/build/base-error.js.map +1 -0
- package/build/base-model/attribute.js +1 -1
- package/build/base-model/attribute.js.map +1 -0
- package/build/base-model/column.js +1 -1
- package/build/base-model/column.js.map +1 -0
- package/build/base-model/reflection.js +1 -1
- package/build/base-model/reflection.js.map +1 -0
- package/build/base-model/scope.js +1 -1
- package/build/base-model/scope.js.map +1 -0
- package/build/base-model.js +1 -1
- package/build/base-model.js.map +1 -0
- package/build/bootstrap/attribute-row/index.js +1 -1
- package/build/bootstrap/attribute-row/index.js.map +1 -0
- package/build/bootstrap/attribute-rows.js +1 -1
- package/build/bootstrap/attribute-rows.js.map +1 -0
- package/build/bootstrap/card.js +1 -1
- package/build/bootstrap/card.js.map +1 -0
- package/build/bootstrap/checkbox.js +1 -1
- package/build/bootstrap/checkbox.js.map +1 -0
- package/build/bootstrap/checkboxes.js +1 -1
- package/build/bootstrap/checkboxes.js.map +1 -0
- package/build/bootstrap/index.js +1 -1
- package/build/bootstrap/index.js.map +1 -0
- package/build/bootstrap/input.js +1 -1
- package/build/bootstrap/input.js.map +1 -0
- package/build/bootstrap/invalid-feedback.js +1 -1
- package/build/bootstrap/invalid-feedback.js.map +1 -0
- package/build/bootstrap/paginate.js +1 -1
- package/build/bootstrap/paginate.js.map +1 -0
- package/build/bootstrap/radio-buttons.js +1 -1
- package/build/bootstrap/radio-buttons.js.map +1 -0
- package/build/bootstrap/select.js +1 -1
- package/build/bootstrap/select.js.map +1 -0
- package/build/bootstrap/sort-link.js +1 -1
- package/build/bootstrap/sort-link.js.map +1 -0
- package/build/cable-connection-pool.js +1 -1
- package/build/cable-connection-pool.js.map +1 -0
- package/build/cable-subscription-pool.js +1 -1
- package/build/cable-subscription-pool.js.map +1 -0
- package/build/cable-subscription.js +1 -1
- package/build/cable-subscription.js.map +1 -0
- package/build/cache-key-generator.js +1 -1
- package/build/cache-key-generator.js.map +1 -0
- package/build/can-can.js +1 -1
- package/build/can-can.js.map +1 -0
- package/build/channels-consumer.js +1 -1
- package/build/channels-consumer.js.map +1 -0
- package/build/collection-loader.js +1 -1
- package/build/collection-loader.js.map +1 -0
- package/build/collection.js +1 -1
- package/build/collection.js.map +1 -0
- package/build/command-submit-data.js +1 -1
- package/build/command-submit-data.js.map +1 -0
- package/build/commands-pool.js +1 -1
- package/build/commands-pool.js.map +1 -0
- package/build/compose.js +1 -1
- package/build/compose.js.map +1 -0
- package/build/config.js +1 -1
- package/build/config.js.map +1 -0
- package/build/custom-error.js +1 -1
- package/build/custom-error.js.map +1 -0
- package/build/data-set-to-attributes.js +1 -1
- package/build/data-set-to-attributes.js.map +1 -0
- package/build/deserializer.js +1 -1
- package/build/deserializer.js.map +1 -0
- package/build/destroy-error.js +1 -1
- package/build/destroy-error.js.map +1 -0
- package/build/devise.js +1 -1
- package/build/devise.js.map +1 -0
- package/build/draggable-sort/controller.js +1 -1
- package/build/draggable-sort/controller.js.map +1 -0
- package/build/draggable-sort/index.js +1 -1
- package/build/draggable-sort/index.js.map +1 -0
- package/build/draggable-sort/item.js +1 -1
- package/build/draggable-sort/item.js.map +1 -0
- package/build/error-logger.js +1 -1
- package/build/error-logger.js.map +1 -0
- package/build/error-messages.js +1 -1
- package/build/error-messages.js.map +1 -0
- package/build/event-connection.js +1 -1
- package/build/event-connection.js.map +1 -0
- package/build/event-model-class.js +1 -1
- package/build/event-model-class.js.map +1 -0
- package/build/events.js +1 -1
- package/build/events.js.map +1 -0
- package/build/flash-message.js +1 -1
- package/build/flash-message.js.map +1 -0
- package/build/form.js +1 -1
- package/build/form.js.map +1 -0
- package/build/index.js +1 -1
- package/build/index.js.map +1 -0
- package/build/inputs/attachment.js +1 -1
- package/build/inputs/attachment.js.map +1 -0
- package/build/inputs/auto-submit.js +1 -1
- package/build/inputs/auto-submit.js.map +1 -0
- package/build/inputs/checkbox.js +1 -1
- package/build/inputs/checkbox.js.map +1 -0
- package/build/inputs/checkboxes.js +1 -1
- package/build/inputs/checkboxes.js.map +1 -0
- package/build/inputs/id-for-component.js +1 -1
- package/build/inputs/id-for-component.js.map +1 -0
- package/build/inputs/input-wrapper.js +1 -1
- package/build/inputs/input-wrapper.js.map +1 -0
- package/build/inputs/input.js +1 -1
- package/build/inputs/input.js.map +1 -0
- package/build/inputs/money.js +1 -1
- package/build/inputs/money.js.map +1 -0
- package/build/inputs/name-for-component.js +1 -1
- package/build/inputs/name-for-component.js.map +1 -0
- package/build/inputs/select.js +1 -1
- package/build/inputs/select.js.map +1 -0
- package/build/instance-of-class-name.js +1 -1
- package/build/instance-of-class-name.js.map +1 -0
- package/build/key-value-store.js +1 -1
- package/build/key-value-store.js.map +1 -0
- package/build/link.js +1 -1
- package/build/link.js.map +1 -0
- package/build/logger.js +1 -1
- package/build/logger.js.map +1 -0
- package/build/modal.js +1 -1
- package/build/modal.js.map +1 -0
- package/build/model-class-require.js +1 -1
- package/build/model-class-require.js.map +1 -0
- package/build/model-events.js +1 -1
- package/build/model-events.js.map +1 -0
- package/build/model-name.js +1 -1
- package/build/model-name.js.map +1 -0
- package/build/model-prop-type.js +1 -1
- package/build/model-prop-type.js.map +1 -0
- package/build/model-recipes-loader.js +1 -1
- package/build/model-recipes-loader.js.map +1 -0
- package/build/model-recipes-model-loader.js +1 -1
- package/build/model-recipes-model-loader.js.map +1 -0
- package/build/models-response-reader.js +1 -1
- package/build/models-response-reader.js.map +1 -0
- package/build/models.js +1 -1
- package/build/models.js.map +1 -0
- package/build/money-formatter.js +1 -1
- package/build/money-formatter.js.map +1 -0
- package/build/not-loaded-error.js +1 -1
- package/build/not-loaded-error.js.map +1 -0
- package/build/params.js +1 -1
- package/build/params.js.map +1 -0
- package/build/preloaded.js +1 -1
- package/build/preloaded.js.map +1 -0
- package/build/resize-observer.js +1 -1
- package/build/resize-observer.js.map +1 -0
- package/build/result.js +1 -1
- package/build/result.js.map +1 -0
- package/build/router/route.js +1 -1
- package/build/router/route.js.map +1 -0
- package/build/router/switch.js +1 -1
- package/build/router/switch.js.map +1 -0
- package/build/router.js +1 -1
- package/build/router.js.map +1 -0
- package/build/routes-native.js +1 -1
- package/build/routes-native.js.map +1 -0
- package/build/routes.js +1 -1
- package/build/routes.js.map +1 -0
- package/build/run-last.js +1 -1
- package/build/run-last.js.map +1 -0
- package/build/serializer.js +1 -1
- package/build/serializer.js.map +1 -0
- package/build/services.js +1 -1
- package/build/services.js.map +1 -0
- package/build/session-status-updater.js +1 -1
- package/build/session-status-updater.js.map +1 -0
- package/build/source-maps-loader.js +19 -8
- package/build/source-maps-loader.js.map +1 -0
- package/build/super-admin/config-reader.js +1 -1
- package/build/super-admin/config-reader.js.map +1 -0
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +1 -1
- package/build/super-admin/edit-page/edit-attribute-checkbox.js.map +1 -0
- package/build/super-admin/edit-page/edit-attribute-content.js +1 -1
- package/build/super-admin/edit-page/edit-attribute-content.js.map +1 -0
- package/build/super-admin/edit-page/edit-attribute-input.js +1 -1
- package/build/super-admin/edit-page/edit-attribute-input.js.map +1 -0
- package/build/super-admin/edit-page/edit-attribute.js +1 -1
- package/build/super-admin/edit-page/edit-attribute.js.map +1 -0
- package/build/super-admin/edit-page.js +1 -1
- package/build/super-admin/edit-page.js.map +1 -0
- package/build/super-admin/has-edit-config.js +1 -1
- package/build/super-admin/has-edit-config.js.map +1 -0
- package/build/super-admin/index-page.js +1 -1
- package/build/super-admin/index-page.js.map +1 -0
- package/build/super-admin/index.js +1 -1
- package/build/super-admin/index.js.map +1 -0
- package/build/super-admin/layout/header/index.js +1 -1
- package/build/super-admin/layout/header/index.js.map +1 -0
- package/build/super-admin/layout/index.js +1 -1
- package/build/super-admin/layout/index.js.map +1 -0
- package/build/super-admin/layout/menu/index.js +1 -1
- package/build/super-admin/layout/menu/index.js.map +1 -0
- package/build/super-admin/layout/menu/menu-content.js +1 -1
- package/build/super-admin/layout/menu/menu-content.js.map +1 -0
- package/build/super-admin/layout/menu/menu-item.js +1 -1
- package/build/super-admin/layout/menu/menu-item.js.map +1 -0
- package/build/super-admin/layout/no-access.js +1 -1
- package/build/super-admin/layout/no-access.js.map +1 -0
- package/build/super-admin/model-class-table.js +1 -1
- package/build/super-admin/model-class-table.js.map +1 -0
- package/build/super-admin/models.js +1 -1
- package/build/super-admin/models.js.map +1 -0
- package/build/super-admin/show-nav.js +1 -1
- package/build/super-admin/show-nav.js.map +1 -0
- package/build/super-admin/show-page/belongs-to-attribute-row.js +1 -1
- package/build/super-admin/show-page/belongs-to-attribute-row.js.map +1 -0
- package/build/super-admin/show-page/index.js +1 -1
- package/build/super-admin/show-page/index.js.map +1 -0
- package/build/super-admin/show-reflection-actions.js +1 -1
- package/build/super-admin/show-reflection-actions.js.map +1 -0
- package/build/super-admin/show-reflection-link.js +1 -1
- package/build/super-admin/show-reflection-link.js.map +1 -0
- package/build/super-admin/show-reflection-page.js +1 -1
- package/build/super-admin/show-reflection-page.js.map +1 -0
- package/build/table/column-content.js +1 -1
- package/build/table/column-content.js.map +1 -0
- package/build/table/column-identifier.js +1 -1
- package/build/table/column-identifier.js.map +1 -0
- package/build/table/column-visible.js +1 -1
- package/build/table/column-visible.js.map +1 -0
- package/build/table/components/column.js +1 -1
- package/build/table/components/column.js.map +1 -0
- package/build/table/components/flat-list.js +1 -1
- package/build/table/components/flat-list.js.map +1 -0
- package/build/table/components/header.js +1 -1
- package/build/table/components/header.js.map +1 -0
- package/build/table/components/row.js +1 -1
- package/build/table/components/row.js.map +1 -0
- package/build/table/filters/attribute-element.js +1 -1
- package/build/table/filters/attribute-element.js.map +1 -0
- package/build/table/filters/filter-form.js +1 -1
- package/build/table/filters/filter-form.js.map +1 -0
- package/build/table/filters/filter.js +1 -1
- package/build/table/filters/filter.js.map +1 -0
- package/build/table/filters/index.js +1 -1
- package/build/table/filters/index.js.map +1 -0
- package/build/table/filters/load-search-modal.js +1 -1
- package/build/table/filters/load-search-modal.js.map +1 -0
- package/build/table/filters/reflection-element.js +1 -1
- package/build/table/filters/reflection-element.js.map +1 -0
- package/build/table/filters/save-search-modal.js +1 -1
- package/build/table/filters/save-search-modal.js.map +1 -0
- package/build/table/filters/scope-element.js +1 -1
- package/build/table/filters/scope-element.js.map +1 -0
- package/build/table/header-column-content.js +1 -1
- package/build/table/header-column-content.js.map +1 -0
- package/build/table/header-column.js +1 -1
- package/build/table/header-column.js.map +1 -0
- package/build/table/header-select.js +1 -1
- package/build/table/header-select.js.map +1 -0
- package/build/table/model-callback-args.js +1 -1
- package/build/table/model-callback-args.js.map +1 -0
- package/build/table/model-column.js +1 -1
- package/build/table/model-column.js.map +1 -0
- package/build/table/model-row.js +1 -1
- package/build/table/model-row.js.map +1 -0
- package/build/table/select-calculator.js +1 -1
- package/build/table/select-calculator.js.map +1 -0
- package/build/table/settings/column-row.js +1 -1
- package/build/table/settings/column-row.js.map +1 -0
- package/build/table/settings/download-action.js +1 -1
- package/build/table/settings/download-action.js.map +1 -0
- package/build/table/settings/index.js +1 -1
- package/build/table/settings/index.js.map +1 -0
- package/build/table/table-settings.js +1 -1
- package/build/table/table-settings.js.map +1 -0
- package/build/table/table.js +1 -1
- package/build/table/table.js.map +1 -0
- package/build/table/use-sorting.js +1 -1
- package/build/table/use-sorting.js.map +1 -0
- package/build/table/widths.js +1 -1
- package/build/table/widths.js.map +1 -0
- package/build/table/worker-plugins-check-all-checkbox.js +1 -1
- package/build/table/worker-plugins-check-all-checkbox.js.map +1 -0
- package/build/table/worker-plugins-checkbox.js +1 -1
- package/build/table/worker-plugins-checkbox.js.map +1 -0
- package/build/translated-attributes.js +1 -1
- package/build/translated-attributes.js.map +1 -0
- package/build/translated-collections.js +1 -1
- package/build/translated-collections.js.map +1 -0
- package/build/updated-attribute.js +1 -1
- package/build/updated-attribute.js.map +1 -0
- package/build/url-encode.js +1 -1
- package/build/url-encode.js.map +1 -0
- package/build/use-breakpoint.js +1 -1
- package/build/use-breakpoint.js.map +1 -0
- package/build/use-can-can.js +1 -1
- package/build/use-can-can.js.map +1 -0
- package/build/use-collection.js +1 -1
- package/build/use-collection.js.map +1 -0
- package/build/use-created-event.js +1 -1
- package/build/use-created-event.js.map +1 -0
- package/build/use-current-user.js +1 -1
- package/build/use-current-user.js.map +1 -0
- package/build/use-destroyed-event.js +1 -1
- package/build/use-destroyed-event.js.map +1 -0
- package/build/use-event-emitter.js +1 -1
- package/build/use-event-emitter.js.map +1 -0
- package/build/use-event-listener.js +1 -1
- package/build/use-event-listener.js.map +1 -0
- package/build/use-input.js +1 -1
- package/build/use-input.js.map +1 -0
- package/build/use-model-event.js +1 -1
- package/build/use-model-event.js.map +1 -0
- package/build/use-model.js +1 -1
- package/build/use-model.js.map +1 -0
- package/build/use-resize-observer.js +1 -1
- package/build/use-resize-observer.js.map +1 -0
- package/build/use-router.js +1 -1
- package/build/use-router.js.map +1 -0
- package/build/use-screen-layout.js +1 -1
- package/build/use-screen-layout.js.map +1 -0
- package/build/use-updated-event.js +1 -1
- package/build/use-updated-event.js.map +1 -0
- package/build/use-validation-errors.js +1 -1
- package/build/use-validation-errors.js.map +1 -0
- package/build/utils/card.js +1 -1
- package/build/utils/card.js.map +1 -0
- package/build/utils/checkbox.js +1 -1
- package/build/utils/checkbox.js.map +1 -0
- package/build/utils/default-style.js +1 -1
- package/build/utils/default-style.js.map +1 -0
- package/build/utils/modal.js +1 -1
- package/build/utils/modal.js.map +1 -0
- package/build/utils/text.js +1 -1
- package/build/utils/text.js.map +1 -0
- package/build/validation-error.js +1 -1
- package/build/validation-error.js.map +1 -0
- package/build/validation-errors.js +1 -1
- package/build/validation-errors.js.map +1 -0
- package/build/with-collection.js +1 -1
- package/build/with-collection.js.map +1 -0
- package/build/with-current-user.js +1 -1
- package/build/with-current-user.js.map +1 -0
- package/build/with-model.js +1 -1
- package/build/with-model.js.map +1 -0
- package/build/with-router.js +1 -1
- package/build/with-router.js.map +1 -0
- package/link.sh +8 -0
- package/package.json +2 -2
- package/src/source-maps-loader.js +19 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-name.js","names":["Config","inflection","ModelName","constructor","data","camelizedLower","modelClassData","human","args","argsToUse","count","countKey","key","i18nKey","defaultModelName","name","pluralize","getI18n","t","defaultValue","paramKey"],"sources":["../src/model-name.js"],"sourcesContent":["import Config from \"./config\"\nimport * as inflection from \"inflection\"\n\nexport default class ModelName {\n constructor(data) {\n this.data = data\n }\n\n camelizedLower = () => this.data.modelClassData.camelizedLower\n\n human(args) {\n let argsToUse = args\n\n if (!argsToUse) argsToUse = { count: 1 }\n\n let countKey\n\n if (argsToUse.count > 1 || argsToUse.count < 0) {\n countKey = \"other\"\n } else {\n countKey = \"one\"\n }\n\n const key = `activerecord.models.${this.data.modelClassData.i18nKey}.${countKey}`\n let defaultModelName = this.data.modelClassData.name\n\n if (args?.count > 1) defaultModelName = inflection.pluralize(defaultModelName)\n\n return Config.getI18n().t(key, {defaultValue: defaultModelName})\n }\n\n paramKey = () => this.data.modelClassData.paramKey\n}\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,UAAU;AAC7B,OAAO,KAAKC,UAAU,MAAM,YAAY;AAExC,eAAe,MAAMC,SAAS,CAAC;EAC7BC,WAAWA,CAACC,IAAI,EAAE;IAChB,IAAI,CAACA,IAAI,GAAGA,IAAI;EAClB;EAEAC,cAAc,GAAGA,CAAA,KAAM,IAAI,CAACD,IAAI,CAACE,cAAc,CAACD,cAAc;EAE9DE,KAAKA,CAACC,IAAI,EAAE;IACV,IAAIC,SAAS,GAAGD,IAAI;IAEpB,IAAI,CAACC,SAAS,EAAEA,SAAS,GAAG;MAAEC,KAAK,EAAE;IAAE,CAAC;IAExC,IAAIC,QAAQ;IAEZ,IAAIF,SAAS,CAACC,KAAK,GAAG,CAAC,IAAID,SAAS,CAACC,KAAK,GAAG,CAAC,EAAE;MAC9CC,QAAQ,GAAG,OAAO;IACpB,CAAC,MAAM;MACLA,QAAQ,GAAG,KAAK;IAClB;IAEA,MAAMC,GAAG,GAAG,uBAAuB,IAAI,CAACR,IAAI,CAACE,cAAc,CAACO,OAAO,IAAIF,QAAQ,EAAE;IACjF,IAAIG,gBAAgB,GAAG,IAAI,CAACV,IAAI,CAACE,cAAc,CAACS,IAAI;IAEpD,IAAIP,IAAI,EAAEE,KAAK,GAAG,CAAC,EAAEI,gBAAgB,GAAGb,UAAU,CAACe,SAAS,CAACF,gBAAgB,CAAC;IAE9E,OAAOd,MAAM,CAACiB,OAAO,CAAC,CAAC,CAACC,CAAC,CAACN,GAAG,EAAE;MAACO,YAAY,EAAEL;IAAgB,CAAC,CAAC;EAClE;EAEAM,QAAQ,GAAGA,CAAA,KAAM,IAAI,CAAChB,IAAI,CAACE,cAAc,CAACc,QAAQ;AACpD","ignoreList":[]}
|
package/build/model-prop-type.js
CHANGED
|
@@ -98,4 +98,4 @@ export default class ApiMakerModelPropType {
|
|
|
98
98
|
return this;
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiSW5mbGVjdGlvbiIsIkFwaU1ha2VyTW9kZWxQcm9wVHlwZSIsIm9mTW9kZWwiLCJtb2RlbENsYXNzIiwibW9kZWxQcm9wVHlwZUluc3RhbmNlIiwid2l0aE1vZGVsVHlwZSIsImNvbnN0cnVjdG9yIiwiaXNOb3RSZXF1aXJlZCIsImJpbmQiLCJpc1JlcXVpcmVkIiwiX3dpdGhMb2FkZWRBc3NvY2lhdGlvbnMiLCJwcm9wcyIsInByb3BOYW1lIiwiX2NvbXBvbmVudE5hbWUiLCJtb2RlbCIsInZhbGlkYXRlIiwiRXJyb3IiLCJwcmV2aW91cyIsIl9wcmV2aW91c01vZGVsUHJvcFR5cGUiLCJzZXRQcmV2aW91c01vZGVsUHJvcFR5cGUiLCJwcmV2aW91c01vZGVsUHJvcFR5cGUiLCJfd2l0aE1vZGVsVHlwZSIsIm5hbWUiLCJfd2l0aExvYWRlZEFiaWxpdGllcyIsImFiaWxpdHlOYW1lIiwidW5kZXJzY29yZUFiaWxpdHlOYW1lIiwidW5kZXJzY29yZSIsImFiaWxpdGllcyIsImFzc29jaWF0aW9uTmFtZSIsImFzc29jaWF0aW9uTW9kZWxQcm9wVHlwZSIsInVuZGVyc2NvcmVBc3NvY2lhdGlvbk5hbWUiLCJyZWxhdGlvbnNoaXBzQ2FjaGUiLCJhc3NvY2lhdGlvbkNhY2hlIiwiQXJyYXkiLCJpc0FycmF5IiwicHJlbG9hZGVkTW9kZWwiLCJ2YWxpZGF0aW9uUmVzdWx0IiwiX3dpdGhMb2FkZWRBdHRyaWJ1dGVzIiwiaXNQZXJzaXN0ZWQiLCJhdHRyaWJ1dGVOYW1lIiwidW5kZXJzY29yZUF0dHJpYnV0ZU5hbWUiLCJtb2RlbERhdGEiLCJ3aXRoTG9hZGVkQWJpbGl0aWVzIiwiYXJyYXlPZkFiaWxpdGllcyIsIndpdGhMb2FkZWRBc3NvY2lhdGlvbiIsIndpdGhMb2FkZWRBdHRyaWJ1dGVzIiwiYXJyYXlPZkF0dHJpYnV0ZXMiXSwic291cmNlcyI6WyIuLi9zcmMvbW9kZWwtcHJvcC10eXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgSW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyTW9kZWxQcm9wVHlwZSB7XG4gIHN0YXRpYyBvZk1vZGVsIChtb2RlbENsYXNzKSB7XG4gICAgY29uc3QgbW9kZWxQcm9wVHlwZUluc3RhbmNlID0gbmV3IEFwaU1ha2VyTW9kZWxQcm9wVHlwZSgpXG5cbiAgICBtb2RlbFByb3BUeXBlSW5zdGFuY2Uud2l0aE1vZGVsVHlwZShtb2RlbENsYXNzKVxuXG4gICAgcmV0dXJuIG1vZGVsUHJvcFR5cGVJbnN0YW5jZVxuICB9XG5cbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHRoaXMuaXNOb3RSZXF1aXJlZCA9IHRoaXMuaXNOb3RSZXF1aXJlZC5iaW5kKHRoaXMpXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gdGhpcy5pc1JlcXVpcmVkLmJpbmQodGhpcylcbiAgICB0aGlzLl93aXRoTG9hZGVkQXNzb2NpYXRpb25zID0ge31cbiAgfVxuXG4gIGlzTm90UmVxdWlyZWQgKHByb3BzLCBwcm9wTmFtZSwgX2NvbXBvbmVudE5hbWUpIHtcbiAgICBjb25zdCBtb2RlbCA9IHByb3BzW3Byb3BOYW1lXVxuXG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZSh7bW9kZWwsIHByb3BOYW1lfSlcbiAgICB9XG4gIH1cblxuICBpc1JlcXVpcmVkIChwcm9wcywgcHJvcE5hbWUsIF9jb21wb25lbnROYW1lKSB7XG4gICAgY29uc3QgbW9kZWwgPSBwcm9wc1twcm9wTmFtZV1cblxuICAgIGlmICghbW9kZWwpIHJldHVybiBuZXcgRXJyb3IoYCR7cHJvcE5hbWV9IHdhcyByZXF1aXJlZCBidXQgbm90IGdpdmVuYClcblxuICAgIHJldHVybiB0aGlzLnZhbGlkYXRlKHttb2RlbCwgcHJvcE5hbWV9KVxuICB9XG5cbiAgcHJldmlvdXMgKCkge1xuICAgIGlmICghdGhpcy5fcHJldmlvdXNNb2RlbFByb3BUeXBlKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBwcmV2aW91cyBtb2RlbCBwcm9wIHR5cGUgc2V0XCIpXG5cbiAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNNb2RlbFByb3BUeXBlXG4gIH1cblxuICBzZXRQcmV2aW91c01vZGVsUHJvcFR5cGUgKHByZXZpb3VzTW9kZWxQcm9wVHlwZSkge1xuICAgIHRoaXMuX3ByZXZpb3VzTW9kZWxQcm9wVHlwZSA9IHByZXZpb3VzTW9kZWxQcm9wVHlwZVxuICB9XG5cbiAgd2l0aE1vZGVsVHlwZSAobW9kZWxDbGFzcykge1xuICAgIHRoaXMuX3dpdGhNb2RlbFR5cGUgPSBtb2RlbENsYXNzXG4gIH1cblxuICB2YWxpZGF0ZSAoe21vZGVsLCBwcm9wTmFtZX0pIHtcbiAgICBpZiAodGhpcy5fd2l0aE1vZGVsVHlwZSAmJiB0aGlzLl93aXRoTW9kZWxUeXBlLm5hbWUgIT0gbW9kZWwuY29uc3RydWN0b3IubmFtZSlcbiAgICAgIHJldHVybiBuZXcgRXJyb3IoYEV4cGVjdGVkICR7cHJvcE5hbWV9IHRvIGJlIG9mIHR5cGUgJHt0aGlzLl93aXRoTW9kZWxUeXBlLm5hbWV9IGJ1dCBpdCB3YXNuJ3Q6ICR7bW9kZWwuY29uc3RydWN0b3IubmFtZX1gKVxuXG4gICAgaWYgKHRoaXMuX3dpdGhMb2FkZWRBYmlsaXRpZXMpIHtcbiAgICAgIGZvciAoY29uc3QgYWJpbGl0eU5hbWUgb2YgdGhpcy5fd2l0aExvYWRlZEFiaWxpdGllcykge1xuICAgICAgICBjb25zdCB1bmRlcnNjb3JlQWJpbGl0eU5hbWUgPSBJbmZsZWN0aW9uLnVuZGVyc2NvcmUoYWJpbGl0eU5hbWUpXG5cbiAgICAgICAgaWYgKCEodW5kZXJzY29yZUFiaWxpdHlOYW1lIGluIG1vZGVsLmFiaWxpdGllcykpXG4gICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihgVGhlIGFiaWxpdHkgJHthYmlsaXR5TmFtZX0gd2FzIHJlcXVpcmVkIHRvIGJlIGxvYWRlZCBpbiAke3Byb3BOYW1lfSBvZiB0aGUgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfSB0eXBlIGJ1dCBpdCB3YXNuJ3RgKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLl93aXRoTG9hZGVkQXNzb2NpYXRpb25zKSB7XG4gICAgICBmb3IgKGNvbnN0IGFzc29jaWF0aW9uTmFtZSBpbiB0aGlzLl93aXRoTG9hZGVkQXNzb2NpYXRpb25zKSB7XG4gICAgICAgIGNvbnN0IGFzc29jaWF0aW9uTW9kZWxQcm9wVHlwZSA9IGRpZ2codGhpcy5fd2l0aExvYWRlZEFzc29jaWF0aW9ucywgYXNzb2NpYXRpb25OYW1lKVxuICAgICAgICBjb25zdCB1bmRlcnNjb3JlQXNzb2NpYXRpb25OYW1lID0gSW5mbGVjdGlvbi51bmRlcnNjb3JlKGFzc29jaWF0aW9uTmFtZSlcblxuICAgICAgICBpZiAoISh1bmRlcnNjb3JlQXNzb2NpYXRpb25OYW1lIGluIG1vZGVsLnJlbGF0aW9uc2hpcHNDYWNoZSkpXG4gICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihgVGhlIGFzc29jaWF0aW9uICR7YXNzb2NpYXRpb25OYW1lfSB3YXMgcmVxdWlyZWQgdG8gYmUgbG9hZGVkIGluICR7cHJvcE5hbWV9IG9mIHRoZSAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9IHR5cGUgYnV0IGl0IHdhc24ndGApXG5cbiAgICAgICAgY29uc3QgYXNzb2NpYXRpb25DYWNoZSA9IGRpZ2cobW9kZWwucmVsYXRpb25zaGlwc0NhY2hlLCB1bmRlcnNjb3JlQXNzb2NpYXRpb25OYW1lKVxuXG4gICAgICAgIC8vIEZpbmQgYSBtb2RlbCB0byBydW4gc3ViLW1vZGVsLXByb3AtdHlwZS12YWxpZGF0aW9ucyBvblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhc3NvY2lhdGlvbkNhY2hlKSkge1xuICAgICAgICAgIGZvciAoY29uc3QgcHJlbG9hZGVkTW9kZWwgb2YgYXNzb2NpYXRpb25DYWNoZSkge1xuICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGFzc29jaWF0aW9uTW9kZWxQcm9wVHlwZS52YWxpZGF0ZSh7XG4gICAgICAgICAgICAgIG1vZGVsOiBwcmVsb2FkZWRNb2RlbCxcbiAgICAgICAgICAgICAgcHJvcE5hbWU6IGAke3Byb3BOYW1lfS4ke2Fzc29jaWF0aW9uTmFtZX1gXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBpZiAodmFsaWRhdGlvblJlc3VsdCkgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHRcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoYXNzb2NpYXRpb25DYWNoZSkge1xuICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBhc3NvY2lhdGlvbk1vZGVsUHJvcFR5cGUudmFsaWRhdGUoe1xuICAgICAgICAgICAgbW9kZWw6IGFzc29jaWF0aW9uQ2FjaGUsXG4gICAgICAgICAgICBwcm9wTmFtZTogYCR7cHJvcE5hbWV9LiR7YXNzb2NpYXRpb25OYW1lfWBcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQpIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fd2l0aExvYWRlZEF0dHJpYnV0ZXMgJiYgbW9kZWwuaXNQZXJzaXN0ZWQoKSkge1xuICAgICAgZm9yIChjb25zdCBhdHRyaWJ1dGVOYW1lIG9mIHRoaXMuX3dpdGhMb2FkZWRBdHRyaWJ1dGVzKSB7XG4gICAgICAgIGNvbnN0IHVuZGVyc2NvcmVBdHRyaWJ1dGVOYW1lID0gSW5mbGVjdGlvbi51bmRlcnNjb3JlKGF0dHJpYnV0ZU5hbWUpXG5cbiAgICAgICAgaWYgKCEodW5kZXJzY29yZUF0dHJpYnV0ZU5hbWUgaW4gbW9kZWwubW9kZWxEYXRhKSkge1xuICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoYFRoZSBhdHRyaWJ1dGUgJHthdHRyaWJ1dGVOYW1lfSB3YXMgcmVxdWlyZWQgdG8gYmUgbG9hZGVkIGluICR7cHJvcE5hbWV9IG9mIHRoZSAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9IHR5cGUgYnV0IGl0IHdhc24ndGApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB3aXRoTG9hZGVkQWJpbGl0aWVzIChhcnJheU9mQWJpbGl0aWVzKSB7XG4gICAgdGhpcy5fd2l0aExvYWRlZEFiaWxpdGllcyA9IGFycmF5T2ZBYmlsaXRpZXNcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICB3aXRoTG9hZGVkQXNzb2NpYXRpb24gKGFzc29jaWF0aW9uTmFtZSkge1xuICAgIGNvbnN0IGFzc29jaWF0aW9uTW9kZWxQcm9wVHlwZSA9IG5ldyBBcGlNYWtlck1vZGVsUHJvcFR5cGUoKVxuXG4gICAgYXNzb2NpYXRpb25Nb2RlbFByb3BUeXBlLnNldFByZXZpb3VzTW9kZWxQcm9wVHlwZSh0aGlzKVxuICAgIHRoaXMuX3dpdGhMb2FkZWRBc3NvY2lhdGlvbnNbYXNzb2NpYXRpb25OYW1lXSA9IGFzc29jaWF0aW9uTW9kZWxQcm9wVHlwZVxuXG4gICAgcmV0dXJuIGFzc29jaWF0aW9uTW9kZWxQcm9wVHlwZVxuICB9XG5cbiAgd2l0aExvYWRlZEF0dHJpYnV0ZXMgKGFycmF5T2ZBdHRyaWJ1dGVzKSB7XG4gICAgdGhpcy5fd2l0aExvYWRlZEF0dHJpYnV0ZXMgPSBhcnJheU9mQXR0cmlidXRlc1xuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxJQUFJLFFBQU8sV0FBVztBQUM5QixPQUFPQyxVQUFVLE1BQU0sWUFBWTtBQUVuQyxlQUFlLE1BQU1DLHFCQUFxQixDQUFDO0VBQ3pDLE9BQU9DLE9BQU9BLENBQUVDLFVBQVUsRUFBRTtJQUMxQixNQUFNQyxxQkFBcUIsR0FBRyxJQUFJSCxxQkFBcUIsQ0FBQyxDQUFDO0lBRXpERyxxQkFBcUIsQ0FBQ0MsYUFBYSxDQUFDRixVQUFVLENBQUM7SUFFL0MsT0FBT0MscUJBQXFCO0VBQzlCO0VBRUFFLFdBQVdBLENBQUEsRUFBSTtJQUNi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
|
|
101
|
+
//# sourceMappingURL=model-prop-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-prop-type.js","names":["digg","Inflection","ApiMakerModelPropType","ofModel","modelClass","modelPropTypeInstance","withModelType","constructor","isNotRequired","bind","isRequired","_withLoadedAssociations","props","propName","_componentName","model","validate","Error","previous","_previousModelPropType","setPreviousModelPropType","previousModelPropType","_withModelType","name","_withLoadedAbilities","abilityName","underscoreAbilityName","underscore","abilities","associationName","associationModelPropType","underscoreAssociationName","relationshipsCache","associationCache","Array","isArray","preloadedModel","validationResult","_withLoadedAttributes","isPersisted","attributeName","underscoreAttributeName","modelData","withLoadedAbilities","arrayOfAbilities","withLoadedAssociation","withLoadedAttributes","arrayOfAttributes"],"sources":["../src/model-prop-type.js"],"sourcesContent":["import {digg} from \"diggerize\"\nimport Inflection from \"inflection\"\n\nexport default class ApiMakerModelPropType {\n static ofModel (modelClass) {\n const modelPropTypeInstance = new ApiMakerModelPropType()\n\n modelPropTypeInstance.withModelType(modelClass)\n\n return modelPropTypeInstance\n }\n\n constructor () {\n this.isNotRequired = this.isNotRequired.bind(this)\n this.isRequired = this.isRequired.bind(this)\n this._withLoadedAssociations = {}\n }\n\n isNotRequired (props, propName, _componentName) {\n const model = props[propName]\n\n if (model) {\n return this.validate({model, propName})\n }\n }\n\n isRequired (props, propName, _componentName) {\n const model = props[propName]\n\n if (!model) return new Error(`${propName} was required but not given`)\n\n return this.validate({model, propName})\n }\n\n previous () {\n if (!this._previousModelPropType) throw new Error(\"No previous model prop type set\")\n\n return this._previousModelPropType\n }\n\n setPreviousModelPropType (previousModelPropType) {\n this._previousModelPropType = previousModelPropType\n }\n\n withModelType (modelClass) {\n this._withModelType = modelClass\n }\n\n validate ({model, propName}) {\n if (this._withModelType && this._withModelType.name != model.constructor.name)\n return new Error(`Expected ${propName} to be of type ${this._withModelType.name} but it wasn't: ${model.constructor.name}`)\n\n if (this._withLoadedAbilities) {\n for (const abilityName of this._withLoadedAbilities) {\n const underscoreAbilityName = Inflection.underscore(abilityName)\n\n if (!(underscoreAbilityName in model.abilities))\n return new Error(`The ability ${abilityName} was required to be loaded in ${propName} of the ${model.constructor.name} type but it wasn't`)\n }\n }\n\n if (this._withLoadedAssociations) {\n for (const associationName in this._withLoadedAssociations) {\n const associationModelPropType = digg(this._withLoadedAssociations, associationName)\n const underscoreAssociationName = Inflection.underscore(associationName)\n\n if (!(underscoreAssociationName in model.relationshipsCache))\n return new Error(`The association ${associationName} was required to be loaded in ${propName} of the ${model.constructor.name} type but it wasn't`)\n\n const associationCache = digg(model.relationshipsCache, underscoreAssociationName)\n\n // Find a model to run sub-model-prop-type-validations on\n if (Array.isArray(associationCache)) {\n for (const preloadedModel of associationCache) {\n const validationResult = associationModelPropType.validate({\n model: preloadedModel,\n propName: `${propName}.${associationName}`\n })\n\n if (validationResult) return validationResult\n }\n } else if (associationCache) {\n const validationResult = associationModelPropType.validate({\n model: associationCache,\n propName: `${propName}.${associationName}`\n })\n\n if (validationResult) return validationResult\n }\n }\n }\n\n if (this._withLoadedAttributes && model.isPersisted()) {\n for (const attributeName of this._withLoadedAttributes) {\n const underscoreAttributeName = Inflection.underscore(attributeName)\n\n if (!(underscoreAttributeName in model.modelData)) {\n return new Error(`The attribute ${attributeName} was required to be loaded in ${propName} of the ${model.constructor.name} type but it wasn't`)\n }\n }\n }\n }\n\n withLoadedAbilities (arrayOfAbilities) {\n this._withLoadedAbilities = arrayOfAbilities\n\n return this\n }\n\n withLoadedAssociation (associationName) {\n const associationModelPropType = new ApiMakerModelPropType()\n\n associationModelPropType.setPreviousModelPropType(this)\n this._withLoadedAssociations[associationName] = associationModelPropType\n\n return associationModelPropType\n }\n\n withLoadedAttributes (arrayOfAttributes) {\n this._withLoadedAttributes = arrayOfAttributes\n\n return this\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,4 +29,4 @@ export default class ModelRecipesLoader {
|
|
|
29
29
|
return this.modelClasses;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
//# sourceMappingURL=
|
|
32
|
+
//# sourceMappingURL=model-recipes-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-recipes-loader.js","names":["digg","digs","ModelRecipesModelLoader","ModelRecipesLoader","constructor","recipes","modelClasses","getModelClass","name","load","models","modelName","modelRecipe","modelClassLoader","modelRecipesLoader","modelClass","createClass"],"sources":["../src/model-recipes-loader.js"],"sourcesContent":["import {digg, digs} from \"diggerize\"\nimport ModelRecipesModelLoader from \"./model-recipes-model-loader\"\n\nexport default class ModelRecipesLoader {\n constructor ({recipes}) {\n this.modelClasses = {}\n this.recipes = recipes\n }\n\n getModelClass (name) {\n return digg(this, \"modelClasses\", name)\n }\n\n load () {\n const {recipes} = digs(this, \"recipes\")\n const {models} = digs(recipes, \"models\")\n\n for (const modelName in models) {\n const modelRecipe = models[modelName]\n const modelClassLoader = new ModelRecipesModelLoader({modelRecipe, modelRecipesLoader: this})\n const modelClass = modelClassLoader.createClass()\n\n this.modelClasses[modelName] = modelClass\n }\n\n return this.modelClasses\n }\n}\n"],"mappings":"AAAA,SAAQA,IAAI,EAAEC,IAAI,QAAO,WAAW;AACpC,OAAOC,uBAAuB,MAAM,8BAA8B;AAElE,eAAe,MAAMC,kBAAkB,CAAC;EACtCC,WAAWA,CAAE;IAACC;EAAO,CAAC,EAAE;IACtB,IAAI,CAACC,YAAY,GAAG,CAAC,CAAC;IACtB,IAAI,CAACD,OAAO,GAAGA,OAAO;EACxB;EAEAE,aAAaA,CAAEC,IAAI,EAAE;IACnB,OAAOR,IAAI,CAAC,IAAI,EAAE,cAAc,EAAEQ,IAAI,CAAC;EACzC;EAEAC,IAAIA,CAAA,EAAI;IACN,MAAM;MAACJ;IAAO,CAAC,GAAGJ,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;IACvC,MAAM;MAACS;IAAM,CAAC,GAAGT,IAAI,CAACI,OAAO,EAAE,QAAQ,CAAC;IAExC,KAAK,MAAMM,SAAS,IAAID,MAAM,EAAE;MAC9B,MAAME,WAAW,GAAGF,MAAM,CAACC,SAAS,CAAC;MACrC,MAAME,gBAAgB,GAAG,IAAIX,uBAAuB,CAAC;QAACU,WAAW;QAAEE,kBAAkB,EAAE;MAAI,CAAC,CAAC;MAC7F,MAAMC,UAAU,GAAGF,gBAAgB,CAACG,WAAW,CAAC,CAAC;MAEjD,IAAI,CAACV,YAAY,CAACK,SAAS,CAAC,GAAGI,UAAU;IAC3C;IAEA,OAAO,IAAI,CAACT,YAAY;EAC1B;AACF","ignoreList":[]}
|
|
@@ -354,4 +354,4 @@ export default class ApiMakerModelRecipesModelLoader {
|
|
|
354
354
|
};
|
|
355
355
|
}
|
|
356
356
|
}
|
|
357
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlTW9kZWwiLCJDb2xsZWN0aW9uIiwiZGlnZyIsImRpZ3MiLCJpbmZsZWN0aW9uIiwiQXBpTWFrZXJNb2RlbFJlY2lwZXNNb2RlbExvYWRlciIsImNvbnN0cnVjdG9yIiwibW9kZWxSZWNpcGUiLCJtb2RlbFJlY2lwZXNMb2FkZXIiLCJFcnJvciIsImNyZWF0ZUNsYXNzIiwiYXR0cmlidXRlcyIsImNvbGxlY3Rpb25fY29tbWFuZHMiLCJjb2xsZWN0aW9uQ29tbWFuZHMiLCJtZW1iZXJfY29tbWFuZHMiLCJtZW1iZXJDb21tYW5kcyIsIm1vZGVsX2NsYXNzX2RhdGEiLCJtb2RlbENsYXNzRGF0YSIsInJlbGF0aW9uc2hpcHMiLCJuYW1lIiwibW9kZWxDbGFzc05hbWUiLCJNb2RlbENsYXNzIiwiQXBpTWFrZXJNb2RlbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwid3JpdGFibGUiLCJ2YWx1ZSIsInByb3RvdHlwZSIsImFkZEF0dHJpYnV0ZU1ldGhvZHNUb01vZGVsQ2xhc3MiLCJhZGRSZWxhdGlvbnNoaXBzVG9Nb2RlbENsYXNzIiwiYWRkUXVlcnlDb21tYW5kc1RvTW9kZWxDbGFzcyIsImFkZE1lbWJlckNvbW1hbmRzVG9Nb2RlbENsYXNzIiwiYXR0cmlidXRlTmFtZSIsImF0dHJpYnV0ZSIsIm1ldGhvZE5hbWUiLCJjYW1lbGl6ZSIsImhhc01ldGhvZE5hbWUiLCJyZWFkQXR0cmlidXRlVW5kZXJzY29yZSIsIl9pc1ByZXNlbnQiLCJjb2xsZWN0aW9uQ29tbWFuZE5hbWUiLCJhcmdzIiwiY29tbWFuZEFyZ3MiLCJfY2FsbENvbGxlY3Rpb25Db21tYW5kIiwiY29tbWFuZCIsImNvbGxlY3Rpb25OYW1lIiwidHlwZSIsIm1lbWJlckNvbW1hbmROYW1lIiwiX2NhbGxNZW1iZXJDb21tYW5kIiwicHJpbWFyeUtleSIsInJlbGF0aW9uc2hpcE5hbWUiLCJyZWxhdGlvbnNoaXAiLCJhY3RpdmVfcmVjb3JkIiwiYWN0aXZlUmVjb3JkTmFtZSIsInByaW1hcnlfa2V5IiwiYWN0aXZlUmVjb3JkUHJpbWFyeUtleSIsImNsYXNzX25hbWUiLCJjbGFzc05hbWUiLCJmb3JlaWduX2tleSIsImZvcmVpZ25LZXkiLCJrbGFzcyIsImtsYXNzUHJpbWFyeUtleSIsIm9wdGlvbnMiLCJhcyIsIm9wdGlvbnNBcyIsIm9wdGlvbnNQcmltYXJ5S2V5IiwidGhyb3VnaCIsIm9wdGlvbnNUaHJvdWdoIiwicmVzb3VyY2VfbmFtZSIsInJlc291cmNlTmFtZSIsImxvYWRNZXRob2ROYW1lIiwibW9kZWxNZXRob2ROYW1lIiwiZGVmaW5lQmVsb25nc1RvR2V0TWV0aG9kIiwiZGVmaW5lQmVsb25nc1RvTG9hZE1ldGhvZCIsImRlZmluZUhhc01hbnlHZXRNZXRob2QiLCJkZWZpbmVIYXNNYW55TG9hZE1ldGhvZCIsImRlZmluZUhhc09uZUdldE1ldGhkIiwiZGVmaW5lSGFzT25lTG9hZE1ldGhvZCIsIl9yZWFkQmVsb25nc1RvUmVmbGVjdGlvbiIsInJlZmxlY3Rpb25OYW1lIiwiZm9yZWlnbktleU1ldGhvZE5hbWUiLCJpZCIsIm1vZGVsQ2xhc3MiLCJnZXRNb2RlbENsYXNzIiwicmFuc2FjayIsInJhbnNhY2tJZFNlYXJjaEtleSIsIl9sb2FkQmVsb25nc1RvUmVmbGVjdGlvbiIsIm1vZGVsIiwiaGFzTWFueVBhcmFtZXRlcnMiLCJtb2RlbE5hbWUiLCJxdWVyeVBhcmFtZXRlcnMiLCJwYXJhbXMiLCJyZWZsZWN0aW9uIiwicHJpbWFyeUtleUNvbHVtbk5hbWUiLCJwcmltYXJ5S2V5TWV0aG9kTmFtZSIsIl9sb2FkSGFzTWFueVJlZmxlY3Rpb24iLCJfcmVhZEhhc09uZVJlZmxlY3Rpb24iLCJfbG9hZEhhc09uZVJlZmxlY3Rpb24iXSwic291cmNlcyI6WyIuLi9zcmMvbW9kZWwtcmVjaXBlcy1tb2RlbC1sb2FkZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VNb2RlbCBmcm9tIFwiLi9iYXNlLW1vZGVsXCJcbmltcG9ydCBDb2xsZWN0aW9uIGZyb20gXCIuL2NvbGxlY3Rpb25cIlxuaW1wb3J0IHtkaWdnLCBkaWdzfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlck1vZGVsUmVjaXBlc01vZGVsTG9hZGVyIHtcbiAgY29uc3RydWN0b3IgKHttb2RlbFJlY2lwZSwgbW9kZWxSZWNpcGVzTG9hZGVyfSkge1xuICAgIGlmICghbW9kZWxSZWNpcGUpIHRocm93IG5ldyBFcnJvcihcIk5vICdtb2RlbFJlY2lwZScgd2FzIGdpdmVuXCIpXG5cbiAgICB0aGlzLm1vZGVsUmVjaXBlc0xvYWRlciA9IG1vZGVsUmVjaXBlc0xvYWRlclxuICAgIHRoaXMubW9kZWxSZWNpcGUgPSBtb2RlbFJlY2lwZVxuICB9XG5cbiAgY3JlYXRlQ2xhc3MgKCkge1xuICAgIGNvbnN0IHttb2RlbFJlY2lwZX0gPSBkaWdzKHRoaXMsIFwibW9kZWxSZWNpcGVcIilcbiAgICBjb25zdCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgICAgY29sbGVjdGlvbl9jb21tYW5kczogY29sbGVjdGlvbkNvbW1hbmRzLFxuICAgICAgbWVtYmVyX2NvbW1hbmRzOiBtZW1iZXJDb21tYW5kcyxcbiAgICAgIG1vZGVsX2NsYXNzX2RhdGE6IG1vZGVsQ2xhc3NEYXRhLFxuICAgICAgcmVsYXRpb25zaGlwc1xuICAgIH0gPSBkaWdzKFxuICAgICAgbW9kZWxSZWNpcGUsXG4gICAgICBcImF0dHJpYnV0ZXNcIixcbiAgICAgIFwiY29sbGVjdGlvbl9jb21tYW5kc1wiLFxuICAgICAgXCJtZW1iZXJfY29tbWFuZHNcIixcbiAgICAgIFwibW9kZWxfY2xhc3NfZGF0YVwiLFxuICAgICAgXCJyZWxhdGlvbnNoaXBzXCJcbiAgICApXG4gICAgY29uc3Qge25hbWU6IG1vZGVsQ2xhc3NOYW1lfSA9IGRpZ3MobW9kZWxDbGFzc0RhdGEsIFwibmFtZVwiKVxuICAgIGNvbnN0IE1vZGVsQ2xhc3MgPSBjbGFzcyBBcGlNYWtlck1vZGVsIGV4dGVuZHMgQmFzZU1vZGVsIHsgfVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE1vZGVsQ2xhc3MsIFwibmFtZVwiLCB7d3JpdGFibGU6IGZhbHNlLCB2YWx1ZTogbW9kZWxDbGFzc05hbWV9KVxuXG4gICAgTW9kZWxDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3IubW9kZWxDbGFzc0RhdGEgPSAoKSA9PiBtb2RlbENsYXNzRGF0YVxuXG4gICAgdGhpcy5hZGRBdHRyaWJ1dGVNZXRob2RzVG9Nb2RlbENsYXNzKE1vZGVsQ2xhc3MsIGF0dHJpYnV0ZXMpXG4gICAgdGhpcy5hZGRSZWxhdGlvbnNoaXBzVG9Nb2RlbENsYXNzKE1vZGVsQ2xhc3MsIG1vZGVsQ2xhc3NEYXRhLCByZWxhdGlvbnNoaXBzKVxuICAgIHRoaXMuYWRkUXVlcnlDb21tYW5kc1RvTW9kZWxDbGFzcyhNb2RlbENsYXNzLCBjb2xsZWN0aW9uQ29tbWFuZHMpXG4gICAgdGhpcy5hZGRNZW1iZXJDb21tYW5kc1RvTW9kZWxDbGFzcyhNb2RlbENsYXNzLCBtZW1iZXJDb21tYW5kcylcblxuICAgIHJldHVybiBNb2RlbENsYXNzXG4gIH1cblxuICBhZGRBdHRyaWJ1dGVNZXRob2RzVG9Nb2RlbENsYXNzIChNb2RlbENsYXNzLCBhdHRyaWJ1dGVzKSB7XG4gICAgZm9yIChjb25zdCBhdHRyaWJ1dGVOYW1lIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV1cbiAgICAgIGNvbnN0IHtuYW1lfSA9IGRpZ3MoYXR0cmlidXRlLCBcIm5hbWVcIilcbiAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKG5hbWUsIHRydWUpXG4gICAgICBjb25zdCBoYXNNZXRob2ROYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShgaGFzXyR7bmFtZX1gLCB0cnVlKVxuXG4gICAgICBNb2RlbENsYXNzLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZEF0dHJpYnV0ZVVuZGVyc2NvcmUoYXR0cmlidXRlTmFtZSlcbiAgICAgIH1cblxuICAgICAgTW9kZWxDbGFzcy5wcm90b3R5cGVbaGFzTWV0aG9kTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpc1ttZXRob2ROYW1lXSgpXG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUHJlc2VudCh2YWx1ZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhZGRRdWVyeUNvbW1hbmRzVG9Nb2RlbENsYXNzIChNb2RlbENsYXNzLCBjb2xsZWN0aW9uQ29tbWFuZHMpIHtcbiAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb25Db21tYW5kTmFtZSBpbiBjb2xsZWN0aW9uQ29tbWFuZHMpIHtcbiAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKGNvbGxlY3Rpb25Db21tYW5kTmFtZSwgdHJ1ZSlcblxuICAgICAgTW9kZWxDbGFzc1ttZXRob2ROYW1lXSA9IGZ1bmN0aW9uIChhcmdzLCBjb21tYW5kQXJncyA9IHt9KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jYWxsQ29sbGVjdGlvbkNvbW1hbmQoXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgIGNvbW1hbmQ6IGNvbGxlY3Rpb25Db21tYW5kTmFtZSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25OYW1lOiBkaWdnKHRoaXMubW9kZWxDbGFzc0RhdGEoKSwgXCJjb2xsZWN0aW9uTmFtZVwiKSxcbiAgICAgICAgICAgIHR5cGU6IFwiY29sbGVjdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb21tYW5kQXJnc1xuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYWRkTWVtYmVyQ29tbWFuZHNUb01vZGVsQ2xhc3MgKE1vZGVsQ2xhc3MsIG1lbWJlckNvbW1hbmRzKSB7XG4gICAgZm9yIChjb25zdCBtZW1iZXJDb21tYW5kTmFtZSBpbiBtZW1iZXJDb21tYW5kcykge1xuICAgICAgY29uc3QgbWV0aG9kTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUobWVtYmVyQ29tbWFuZE5hbWUsIHRydWUpXG5cbiAgICAgIE1vZGVsQ2xhc3MucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24gKGFyZ3MsIGNvbW1hbmRBcmdzID0ge30pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhbGxNZW1iZXJDb21tYW5kKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgICBjb21tYW5kOiBtZW1iZXJDb21tYW5kTmFtZSxcbiAgICAgICAgICAgIHByaW1hcnlLZXk6IHRoaXMucHJpbWFyeUtleSgpLFxuICAgICAgICAgICAgY29sbGVjdGlvbk5hbWU6IHRoaXMubW9kZWxDbGFzc0RhdGEoKS5jb2xsZWN0aW9uTmFtZSxcbiAgICAgICAgICAgIHR5cGU6IFwibWVtYmVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbW1hbmRBcmdzXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhZGRSZWxhdGlvbnNoaXBzVG9Nb2RlbENsYXNzIChNb2RlbENsYXNzLCBtb2RlbENsYXNzRGF0YSwgcmVsYXRpb25zaGlwcykge1xuICAgIGNvbnN0IHttb2RlbFJlY2lwZXNMb2FkZXJ9ID0gZGlncyh0aGlzLCBcIm1vZGVsUmVjaXBlc0xvYWRlclwiKVxuXG4gICAgZm9yIChjb25zdCByZWxhdGlvbnNoaXBOYW1lIGluIHJlbGF0aW9uc2hpcHMpIHtcbiAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcCA9IHJlbGF0aW9uc2hpcHNbcmVsYXRpb25zaGlwTmFtZV1cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYWN0aXZlX3JlY29yZDoge1xuICAgICAgICAgIG5hbWU6IGFjdGl2ZVJlY29yZE5hbWUsXG4gICAgICAgICAgcHJpbWFyeV9rZXk6IGFjdGl2ZVJlY29yZFByaW1hcnlLZXlcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NfbmFtZTogY2xhc3NOYW1lLFxuICAgICAgICBmb3JlaWduX2tleTogZm9yZWlnbktleSxcbiAgICAgICAga2xhc3M6IHtwcmltYXJ5X2tleToga2xhc3NQcmltYXJ5S2V5fSxcbiAgICAgICAgb3B0aW9uczoge2FzOiBvcHRpb25zQXMsIHByaW1hcnlfa2V5OiBvcHRpb25zUHJpbWFyeUtleSwgdGhyb3VnaDogb3B0aW9uc1Rocm91Z2h9LFxuICAgICAgICByZXNvdXJjZV9uYW1lOiByZXNvdXJjZU5hbWUsXG4gICAgICAgIHR5cGVcbiAgICAgIH0gPSBkaWdzKFxuICAgICAgICByZWxhdGlvbnNoaXAsXG4gICAgICAgIFwiYWN0aXZlX3JlY29yZFwiLFxuICAgICAgICBcImNsYXNzX25hbWVcIixcbiAgICAgICAgXCJmb3JlaWduX2tleVwiLFxuICAgICAgICBcImtsYXNzXCIsXG4gICAgICAgIFwib3B0aW9uc1wiLFxuICAgICAgICBcInJlc291cmNlX25hbWVcIixcbiAgICAgICAgXCJ0eXBlXCJcbiAgICAgIClcbiAgICAgIGNvbnN0IGxvYWRNZXRob2ROYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShgbG9hZF8ke3JlbGF0aW9uc2hpcE5hbWV9YCwgdHJ1ZSlcbiAgICAgIGNvbnN0IG1vZGVsTWV0aG9kTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUocmVsYXRpb25zaGlwTmFtZSwgdHJ1ZSlcblxuICAgICAgaWYgKHR5cGUgPT0gXCJiZWxvbmdzX3RvXCIpIHtcbiAgICAgICAgdGhpcy5kZWZpbmVCZWxvbmdzVG9HZXRNZXRob2Qoe01vZGVsQ2xhc3MsIG1vZGVsTWV0aG9kTmFtZSwgcmVsYXRpb25zaGlwTmFtZX0pXG4gICAgICAgIHRoaXMuZGVmaW5lQmVsb25nc1RvTG9hZE1ldGhvZCh7XG4gICAgICAgICAgZm9yZWlnbktleSxcbiAgICAgICAgICBrbGFzc1ByaW1hcnlLZXksXG4gICAgICAgICAgbG9hZE1ldGhvZE5hbWUsXG4gICAgICAgICAgTW9kZWxDbGFzcyxcbiAgICAgICAgICBtb2RlbFJlY2lwZXNMb2FkZXIsXG4gICAgICAgICAgb3B0aW9uc1ByaW1hcnlLZXksXG4gICAgICAgICAgcmVsYXRpb25zaGlwTmFtZSxcbiAgICAgICAgICByZXNvdXJjZU5hbWVcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcImhhc19tYW55XCIpIHtcbiAgICAgICAgdGhpcy5kZWZpbmVIYXNNYW55R2V0TWV0aG9kKHtcbiAgICAgICAgICBhY3RpdmVSZWNvcmROYW1lLFxuICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICBmb3JlaWduS2V5LFxuICAgICAgICAgIE1vZGVsQ2xhc3MsXG4gICAgICAgICAgbW9kZWxNZXRob2ROYW1lLFxuICAgICAgICAgIG1vZGVsUmVjaXBlc0xvYWRlcixcbiAgICAgICAgICBvcHRpb25zQXMsXG4gICAgICAgICAgb3B0aW9uc1ByaW1hcnlLZXksXG4gICAgICAgICAgb3B0aW9uc1Rocm91Z2gsXG4gICAgICAgICAgcmVsYXRpb25zaGlwTmFtZSxcbiAgICAgICAgICByZXNvdXJjZU5hbWVcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5kZWZpbmVIYXNNYW55TG9hZE1ldGhvZCh7Zm9yZWlnbktleSwgbG9hZE1ldGhvZE5hbWUsIE1vZGVsQ2xhc3MsIG1vZGVsQ2xhc3NEYXRhLCBtb2RlbFJlY2lwZXNMb2FkZXIsIHJlbGF0aW9uc2hpcE5hbWUsIHJlc291cmNlTmFtZX0pXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJoYXNfb25lXCIpIHtcbiAgICAgICAgdGhpcy5kZWZpbmVIYXNPbmVHZXRNZXRoZCh7TW9kZWxDbGFzcywgbW9kZWxNZXRob2ROYW1lLCByZWxhdGlvbnNoaXBOYW1lfSlcbiAgICAgICAgdGhpcy5kZWZpbmVIYXNPbmVMb2FkTWV0aG9kKHtcbiAgICAgICAgICBhY3RpdmVSZWNvcmRQcmltYXJ5S2V5LFxuICAgICAgICAgIGZvcmVpZ25LZXksXG4gICAgICAgICAgbG9hZE1ldGhvZE5hbWUsXG4gICAgICAgICAgTW9kZWxDbGFzcyxcbiAgICAgICAgICBtb2RlbENsYXNzRGF0YSxcbiAgICAgICAgICBtb2RlbFJlY2lwZXNMb2FkZXIsXG4gICAgICAgICAgb3B0aW9uc1Rocm91Z2gsXG4gICAgICAgICAgcmVsYXRpb25zaGlwTmFtZSxcbiAgICAgICAgICByZXNvdXJjZU5hbWVcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biByZWxhdGlvbnNoaXAgdHlwZTogJHt0eXBlfWApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZGVmaW5lQmVsb25nc1RvR2V0TWV0aG9kICh7TW9kZWxDbGFzcywgbW9kZWxNZXRob2ROYW1lLCByZWxhdGlvbnNoaXBOYW1lfSkge1xuICAgIE1vZGVsQ2xhc3MucHJvdG90eXBlW21vZGVsTWV0aG9kTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVhZEJlbG9uZ3NUb1JlZmxlY3Rpb24oe3JlZmxlY3Rpb25OYW1lOiByZWxhdGlvbnNoaXBOYW1lfSlcbiAgICB9XG4gIH1cblxuICBkZWZpbmVCZWxvbmdzVG9Mb2FkTWV0aG9kICh7Zm9yZWlnbktleSwga2xhc3NQcmltYXJ5S2V5LCBNb2RlbENsYXNzLCBtb2RlbFJlY2lwZXNMb2FkZXIsIGxvYWRNZXRob2ROYW1lLCBvcHRpb25zUHJpbWFyeUtleSwgcmVsYXRpb25zaGlwTmFtZSwgcmVzb3VyY2VOYW1lfSkge1xuICAgIE1vZGVsQ2xhc3MucHJvdG90eXBlW2xvYWRNZXRob2ROYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGZvcmVpZ25LZXlNZXRob2ROYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShmb3JlaWduS2V5LCB0cnVlKVxuXG4gICAgICBpZiAoIShmb3JlaWduS2V5TWV0aG9kTmFtZSBpbiB0aGlzKSkgdGhyb3cgbmV3IEVycm9yKGBGb3JlaWduIGtleSBtZXRob2Qgd2Fzbid0IGRlZmluZWQ6ICR7Zm9yZWlnbktleU1ldGhvZE5hbWV9YClcblxuICAgICAgY29uc3QgaWQgPSB0aGlzW2ZvcmVpZ25LZXlNZXRob2ROYW1lXSgpXG4gICAgICBjb25zdCBtb2RlbENsYXNzID0gbW9kZWxSZWNpcGVzTG9hZGVyLmdldE1vZGVsQ2xhc3MocmVzb3VyY2VOYW1lKVxuICAgICAgY29uc3QgcmFuc2FjayA9IHt9XG4gICAgICBjb25zdCByYW5zYWNrSWRTZWFyY2hLZXkgPSBgJHtvcHRpb25zUHJpbWFyeUtleSB8fCBrbGFzc1ByaW1hcnlLZXl9X2VxYFxuXG4gICAgICByYW5zYWNrW3JhbnNhY2tJZFNlYXJjaEtleV0gPSBpZFxuXG4gICAgICByZXR1cm4gdGhpcy5fbG9hZEJlbG9uZ3NUb1JlZmxlY3Rpb24oXG4gICAgICAgIHtyZWZsZWN0aW9uTmFtZTogcmVsYXRpb25zaGlwTmFtZSwgbW9kZWw6IHRoaXMsIG1vZGVsQ2xhc3N9LFxuICAgICAgICB7cmFuc2Fja31cbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBkZWZpbmVIYXNNYW55R2V0TWV0aG9kICh7XG4gICAgYWN0aXZlUmVjb3JkTmFtZSxcbiAgICBjbGFzc05hbWUsXG4gICAgZm9yZWlnbktleSxcbiAgICBNb2RlbENsYXNzLFxuICAgIG1vZGVsTWV0aG9kTmFtZSxcbiAgICBtb2RlbFJlY2lwZXNMb2FkZXIsXG4gICAgb3B0aW9uc0FzLFxuICAgIG9wdGlvbnNQcmltYXJ5S2V5LFxuICAgIG9wdGlvbnNUaHJvdWdoLFxuICAgIHJlbGF0aW9uc2hpcE5hbWUsXG4gICAgcmVzb3VyY2VOYW1lXG4gIH0pIHtcbiAgICBNb2RlbENsYXNzLnByb3RvdHlwZVttb2RlbE1ldGhvZE5hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaWQgPSB0aGlzLnByaW1hcnlLZXkoKVxuICAgICAgY29uc3QgbW9kZWxDbGFzcyA9IG1vZGVsUmVjaXBlc0xvYWRlci5nZXRNb2RlbENsYXNzKHJlc291cmNlTmFtZSlcbiAgICAgIGNvbnN0IHJhbnNhY2sgPSB7fVxuXG4gICAgICByYW5zYWNrW2Ake2ZvcmVpZ25LZXl9X2VxYF0gPSBpZFxuXG4gICAgICBjb25zdCBoYXNNYW55UGFyYW1ldGVycyA9IHtcbiAgICAgICAgcmVmbGVjdGlvbk5hbWU6IHJlbGF0aW9uc2hpcE5hbWUsXG4gICAgICAgIG1vZGVsOiB0aGlzLFxuICAgICAgICBtb2RlbE5hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgbW9kZWxDbGFzc1xuICAgICAgfVxuXG4gICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzXG5cbiAgICAgIGlmIChvcHRpb25zVGhyb3VnaCkge1xuICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSB7XG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICB0aHJvdWdoOiB7XG4gICAgICAgICAgICAgIG1vZGVsOiBhY3RpdmVSZWNvcmROYW1lLFxuICAgICAgICAgICAgICBpZDogdGhpcy5wcmltYXJ5S2V5KCksXG4gICAgICAgICAgICAgIHJlZmxlY3Rpb246IHJlbGF0aW9uc2hpcE5hbWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJhbnNhY2sgPSB7fVxuICAgICAgICBjb25zdCBwcmltYXJ5S2V5Q29sdW1uTmFtZSA9IG9wdGlvbnNQcmltYXJ5S2V5IHx8IGRpZ2coTW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcInByaW1hcnlLZXlcIilcbiAgICAgICAgY29uc3QgcHJpbWFyeUtleU1ldGhvZE5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKHByaW1hcnlLZXlDb2x1bW5OYW1lLCB0cnVlKVxuXG4gICAgICAgIGlmICghKHByaW1hcnlLZXlNZXRob2ROYW1lIGluIHRoaXMpKSB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggcHJpbWFyeSBrZXkgbWV0aG9kOiAke3ByaW1hcnlLZXlNZXRob2ROYW1lfWApXG5cbiAgICAgICAgcmFuc2Fja1tgJHtmb3JlaWduS2V5fV9lcWBdID0gdGhpc1twcmltYXJ5S2V5TWV0aG9kTmFtZV0oKVxuXG4gICAgICAgIGlmIChvcHRpb25zQXMpIHtcbiAgICAgICAgICByYW5zYWNrW2Ake29wdGlvbnNBc31fdHlwZV9lcWBdID0gYWN0aXZlUmVjb3JkTmFtZVxuICAgICAgICB9XG5cbiAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0ge3JhbnNhY2t9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbihoYXNNYW55UGFyYW1ldGVycywgcXVlcnlQYXJhbWV0ZXJzKVxuICAgIH1cbiAgfVxuXG4gIGRlZmluZUhhc01hbnlMb2FkTWV0aG9kICh7Zm9yZWlnbktleSwgbG9hZE1ldGhvZE5hbWUsIE1vZGVsQ2xhc3MsIG1vZGVsQ2xhc3NEYXRhLCBtb2RlbFJlY2lwZXNMb2FkZXIsIG9wdGlvbnNUaHJvdWdoLCByZWxhdGlvbnNoaXBOYW1lLCByZXNvdXJjZU5hbWV9KSB7XG4gICAgTW9kZWxDbGFzcy5wcm90b3R5cGVbbG9hZE1ldGhvZE5hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaWQgPSB0aGlzLnByaW1hcnlLZXkoKVxuICAgICAgY29uc3QgbW9kZWxDbGFzcyA9IG1vZGVsUmVjaXBlc0xvYWRlci5nZXRNb2RlbENsYXNzKHJlc291cmNlTmFtZSlcblxuICAgICAgaWYgKG9wdGlvbnNUaHJvdWdoKSB7XG4gICAgICAgIGNvbnN0IG1vZGVsQ2xhc3NOYW1lID0gZGlnZyhtb2RlbENsYXNzRGF0YSwgXCJjbGFzc05hbWVcIilcblxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZEhhc01hbnlSZWZsZWN0aW9uKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJlZmxlY3Rpb25OYW1lOiByZWxhdGlvbnNoaXBOYW1lLFxuICAgICAgICAgICAgbW9kZWw6IHRoaXMsXG4gICAgICAgICAgICBtb2RlbENsYXNzXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgdGhyb3VnaDoge1xuICAgICAgICAgICAgICAgIG1vZGVsOiBtb2RlbENsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICByZWZsZWN0aW9uOiByZWxhdGlvbnNoaXBOYW1lXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJhbnNhY2sgPSB7fVxuXG4gICAgICAgIHJhbnNhY2tbYCR7Zm9yZWlnbktleX1fZXFgXSA9IGlkXG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRIYXNNYW55UmVmbGVjdGlvbihcbiAgICAgICAgICB7XG4gICAgICAgICAgICByZWZsZWN0aW9uTmFtZTogcmVsYXRpb25zaGlwTmFtZSxcbiAgICAgICAgICAgIG1vZGVsOiB0aGlzLFxuICAgICAgICAgICAgbW9kZWxDbGFzc1xuICAgICAgICAgIH0sXG4gICAgICAgICAge3JhbnNhY2t9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkZWZpbmVIYXNPbmVHZXRNZXRoZCAoe01vZGVsQ2xhc3MsIG1vZGVsTWV0aG9kTmFtZSwgcmVsYXRpb25zaGlwTmFtZX0pIHtcbiAgICBNb2RlbENsYXNzLnByb3RvdHlwZVttb2RlbE1ldGhvZE5hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlYWRIYXNPbmVSZWZsZWN0aW9uKHtyZWZsZWN0aW9uTmFtZTogcmVsYXRpb25zaGlwTmFtZX0pXG4gICAgfVxuICB9XG5cbiAgZGVmaW5lSGFzT25lTG9hZE1ldGhvZCAoe1xuICAgIGFjdGl2ZVJlY29yZFByaW1hcnlLZXksXG4gICAgZm9yZWlnbktleSxcbiAgICBsb2FkTWV0aG9kTmFtZSxcbiAgICBNb2RlbENsYXNzLFxuICAgIG1vZGVsQ2xhc3NEYXRhLFxuICAgIG1vZGVsUmVjaXBlc0xvYWRlcixcbiAgICBvcHRpb25zVGhyb3VnaCxcbiAgICByZWxhdGlvbnNoaXBOYW1lLFxuICAgIHJlc291cmNlTmFtZVxuICB9KSB7XG4gICAgTW9kZWxDbGFzcy5wcm90b3R5cGVbbG9hZE1ldGhvZE5hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcHJpbWFyeUtleU1ldGhvZE5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKGFjdGl2ZVJlY29yZFByaW1hcnlLZXksIHRydWUpXG5cbiAgICAgIGlmICghKHByaW1hcnlLZXlNZXRob2ROYW1lIGluIHRoaXMpKSB0aHJvdyBuZXcgRXJyb3IoYFByaW1hcnkga2V5IG1ldGhvZCB3YXNuJ3QgZGVmaW5lZDogJHtwcmltYXJ5S2V5TWV0aG9kTmFtZX1gKVxuXG4gICAgICBjb25zdCBpZCA9IHRoaXNbcHJpbWFyeUtleU1ldGhvZE5hbWVdKClcbiAgICAgIGNvbnN0IG1vZGVsQ2xhc3MgPSBtb2RlbFJlY2lwZXNMb2FkZXIuZ2V0TW9kZWxDbGFzcyhyZXNvdXJjZU5hbWUpXG5cbiAgICAgIGlmIChvcHRpb25zVGhyb3VnaCkge1xuICAgICAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IGRpZ2cobW9kZWxDbGFzc0RhdGEsIFwiY2xhc3NOYW1lXCIpXG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRIYXNPbmVSZWZsZWN0aW9uKFxuICAgICAgICAgIHtyZWZsZWN0aW9uTmFtZTogcmVsYXRpb25zaGlwTmFtZSwgbW9kZWw6IHRoaXMsIG1vZGVsQ2xhc3N9LFxuICAgICAgICAgIHtwYXJhbXM6IHt0aHJvdWdoOiB7bW9kZWw6IG1vZGVsQ2xhc3NOYW1lLCBpZCwgcmVmbGVjdGlvbjogcmVsYXRpb25zaGlwTmFtZX19fVxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYW5zYWNrID0ge31cblxuICAgICAgICByYW5zYWNrW2Ake2ZvcmVpZ25LZXl9X2VxYF0gPSBpZFxuXG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkSGFzT25lUmVmbGVjdGlvbihcbiAgICAgICAgICB7XG4gICAgICAgICAgICByZWZsZWN0aW9uTmFtZTogcmVsYXRpb25zaGlwTmFtZSxcbiAgICAgICAgICAgIG1vZGVsOiB0aGlzLFxuICAgICAgICAgICAgbW9kZWxDbGFzc1xuICAgICAgICAgIH0sXG4gICAgICAgICAge3JhbnNhY2t9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsU0FBUyxNQUFNLGNBQWM7QUFDcEMsT0FBT0MsVUFBVSxNQUFNLGNBQWM7QUFDckMsU0FBUUMsSUFBSSxFQUFFQyxJQUFJLFFBQU8sV0FBVztBQUNwQyxPQUFPLEtBQUtDLFVBQVUsTUFBTSxZQUFZO0FBRXhDLGVBQWUsTUFBTUMsK0JBQStCLENBQUM7RUFDbkRDLFdBQVdBLENBQUU7SUFBQ0MsV0FBVztJQUFFQztFQUFrQixDQUFDLEVBQUU7SUFDOUMsSUFBSSxDQUFDRCxXQUFXLEVBQUUsTUFBTSxJQUFJRSxLQUFLLENBQUMsNEJBQTRCLENBQUM7SUFFL0QsSUFBSSxDQUFDRCxrQkFBa0IsR0FBR0Esa0JBQWtCO0lBQzVDLElBQUksQ0FBQ0QsV0FBVyxHQUFHQSxXQUFXO0VBQ2hDO0VBRUFHLFdBQVdBLENBQUEsRUFBSTtJQUNiLE1BQU07TUFBQ0g7SUFBVyxDQUFDLEdBQUdKLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDO0lBQy9DLE1BQU07TUFDSlEsVUFBVTtNQUNWQyxtQkFBbUIsRUFBRUMsa0JBQWtCO01BQ3ZDQyxlQUFlLEVBQUVDLGNBQWM7TUFDL0JDLGdCQUFnQixFQUFFQyxjQUFjO01BQ2hDQztJQUNGLENBQUMsR0FBR2YsSUFBSSxDQUNOSSxXQUFXLEVBQ1gsWUFBWSxFQUNaLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLGVBQ0YsQ0FBQztJQUNELE1BQU07TUFBQ1ksSUFBSSxFQUFFQztJQUFjLENBQUMsR0FBR2pCLElBQUksQ0FBQ2MsY0FBYyxFQUFFLE1BQU0sQ0FBQztJQUMzRCxNQUFNSSxVQUFVLEdBQUcsTUFBTUMsYUFBYSxTQUFTdEIsU0FBUyxDQUFDLEVBQUc7SUFFNUR1QixNQUFNLENBQUNDLGNBQWMsQ0FBQ0gsVUFBVSxFQUFFLE1BQU0sRUFBRTtNQUFDSSxRQUFRLEVBQUUsS0FBSztNQUFFQyxLQUFLLEVBQUVOO0lBQWMsQ0FBQyxDQUFDO0lBRW5GQyxVQUFVLENBQUNNLFNBQVMsQ0FBQ3JCLFdBQVcsQ0FBQ1csY0FBYyxHQUFHLE1BQU1BLGNBQWM7SUFFdEUsSUFBSSxDQUFDVywrQkFBK0IsQ0FBQ1AsVUFBVSxFQUFFVixVQUFVLENBQUM7SUFDNUQsSUFBSSxDQUFDa0IsNEJBQTRCLENBQUNSLFVBQVUsRUFBRUosY0FBYyxFQUFFQyxhQUFhLENBQUM7SUFDNUUsSUFBSSxDQUFDWSw0QkFBNEIsQ0FBQ1QsVUFBVSxFQUFFUixrQkFBa0IsQ0FBQztJQUNqRSxJQUFJLENBQUNrQiw2QkFBNkIsQ0FBQ1YsVUFBVSxFQUFFTixjQUFjLENBQUM7SUFFOUQsT0FBT00sVUFBVTtFQUNuQjtFQUVBTywrQkFBK0JBLENBQUVQLFVBQVUsRUFBRVYsVUFBVSxFQUFFO0lBQ3ZELEtBQUssTUFBTXFCLGFBQWEsSUFBSXJCLFVBQVUsRUFBRTtNQUN0QyxNQUFNc0IsU0FBUyxHQUFHdEIsVUFBVSxDQUFDcUIsYUFBYSxDQUFDO01BQzNDLE1BQU07UUFBQ2I7TUFBSSxDQUFDLEdBQUdoQixJQUFJLENBQUM4QixTQUFTLEVBQUUsTUFBTSxDQUFDO01BQ3RDLE1BQU1DLFVBQVUsR0FBRzlCLFVBQVUsQ0FBQytCLFFBQVEsQ0FBQ2hCLElBQUksRUFBRSxJQUFJLENBQUM7TUFDbEQsTUFBTWlCLGFBQWEsR0FBR2hDLFVBQVUsQ0FBQytCLFFBQVEsQ0FBQyxPQUFPaEIsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDO01BRTlERSxVQUFVLENBQUNNLFNBQVMsQ0FBQ08sVUFBVSxDQUFDLEdBQUcsWUFBWTtRQUM3QyxPQUFPLElBQUksQ0FBQ0csdUJBQXVCLENBQUNMLGFBQWEsQ0FBQztNQUNwRCxDQUFDO01BRURYLFVBQVUsQ0FBQ00sU0FBUyxDQUFDUyxhQUFhLENBQUMsR0FBRyxZQUFZO1FBQ2hELE1BQU1WLEtBQUssR0FBRyxJQUFJLENBQUNRLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFaEMsT0FBTyxJQUFJLENBQUNJLFVBQVUsQ0FBQ1osS0FBSyxDQUFDO01BQy9CLENBQUM7SUFDSDtFQUNGO0VBRUFJLDRCQUE0QkEsQ0FBRVQsVUFBVSxFQUFFUixrQkFBa0IsRUFBRTtJQUM1RCxLQUFLLE1BQU0wQixxQkFBcUIsSUFBSTFCLGtCQUFrQixFQUFFO01BQ3RELE1BQU1xQixVQUFVLEdBQUc5QixVQUFVLENBQUMrQixRQUFRLENBQUNJLHFCQUFxQixFQUFFLElBQUksQ0FBQztNQUVuRWxCLFVBQVUsQ0FBQ2EsVUFBVSxDQUFDLEdBQUcsVUFBVU0sSUFBSSxFQUFFQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLEVBQUU7UUFDekQsT0FBTyxJQUFJLENBQUNDLHNCQUFzQixDQUNoQztVQUNFRixJQUFJO1VBQ0pHLE9BQU8sRUFBRUoscUJBQXFCO1VBQzlCSyxjQUFjLEVBQUUxQyxJQUFJLENBQUMsSUFBSSxDQUFDZSxjQUFjLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO1VBQzdENEIsSUFBSSxFQUFFO1FBQ1IsQ0FBQyxFQUNESixXQUNGLENBQUM7TUFDSCxDQUFDO0lBQ0g7RUFDRjtFQUVBViw2QkFBNkJBLENBQUVWLFVBQVUsRUFBRU4sY0FBYyxFQUFFO0lBQ3pELEtBQUssTUFBTStCLGlCQUFpQixJQUFJL0IsY0FBYyxFQUFFO01BQzlDLE1BQU1tQixVQUFVLEdBQUc5QixVQUFVLENBQUMrQixRQUFRLENBQUNXLGlCQUFpQixFQUFFLElBQUksQ0FBQztNQUUvRHpCLFVBQVUsQ0FBQ00sU0FBUyxDQUFDTyxVQUFVLENBQUMsR0FBRyxVQUFVTSxJQUFJLEVBQUVDLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUNuRSxPQUFPLElBQUksQ0FBQ00sa0JBQWtCLENBQzVCO1VBQ0VQLElBQUk7VUFDSkcsT0FBTyxFQUFFRyxpQkFBaUI7VUFDMUJFLFVBQVUsRUFBRSxJQUFJLENBQUNBLFVBQVUsQ0FBQyxDQUFDO1VBQzdCSixjQUFjLEVBQUUsSUFBSSxDQUFDM0IsY0FBYyxDQUFDLENBQUMsQ0FBQzJCLGNBQWM7VUFDcERDLElBQUksRUFBRTtRQUNSLENBQUMsRUFDREosV0FDRixDQUFDO01BQ0gsQ0FBQztJQUNIO0VBQ0Y7RUFFQVosNEJBQTRCQSxDQUFFUixVQUFVLEVBQUVKLGNBQWMsRUFBRUMsYUFBYSxFQUFFO0lBQ3ZFLE1BQU07TUFBQ1Y7SUFBa0IsQ0FBQyxHQUFHTCxJQUFJLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDO0lBRTdELEtBQUssTUFBTThDLGdCQUFnQixJQUFJL0IsYUFBYSxFQUFFO01BQzVDLE1BQU1nQyxZQUFZLEdBQUdoQyxhQUFhLENBQUMrQixnQkFBZ0IsQ0FBQztNQUNwRCxNQUFNO1FBQ0pFLGFBQWEsRUFBRTtVQUNiaEMsSUFBSSxFQUFFaUMsZ0JBQWdCO1VBQ3RCQyxXQUFXLEVBQUVDO1FBQ2YsQ0FBQztRQUNEQyxVQUFVLEVBQUVDLFNBQVM7UUFDckJDLFdBQVcsRUFBRUMsVUFBVTtRQUN2QkMsS0FBSyxFQUFFO1VBQUNOLFdBQVcsRUFBRU87UUFBZSxDQUFDO1FBQ3JDQyxPQUFPLEVBQUU7VUFBQ0MsRUFBRSxFQUFFQyxTQUFTO1VBQUVWLFdBQVcsRUFBRVcsaUJBQWlCO1VBQUVDLE9BQU8sRUFBRUM7UUFBYyxDQUFDO1FBQ2pGQyxhQUFhLEVBQUVDLFlBQVk7UUFDM0J2QjtNQUNGLENBQUMsR0FBRzFDLElBQUksQ0FDTitDLFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLGFBQWEsRUFDYixPQUFPLEVBQ1AsU0FBUyxFQUNULGVBQWUsRUFDZixNQUNGLENBQUM7TUFDRCxNQUFNbUIsY0FBYyxHQUFHakUsVUFBVSxDQUFDK0IsUUFBUSxDQUFDLFFBQVFjLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxDQUFDO01BQzVFLE1BQU1xQixlQUFlLEdBQUdsRSxVQUFVLENBQUMrQixRQUFRLENBQUNjLGdCQUFnQixFQUFFLElBQUksQ0FBQztNQUVuRSxJQUFJSixJQUFJLElBQUksWUFBWSxFQUFFO1FBQ3hCLElBQUksQ0FBQzBCLHdCQUF3QixDQUFDO1VBQUNsRCxVQUFVO1VBQUVpRCxlQUFlO1VBQUVyQjtRQUFnQixDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDdUIseUJBQXlCLENBQUM7VUFDN0JkLFVBQVU7VUFDVkUsZUFBZTtVQUNmUyxjQUFjO1VBQ2RoRCxVQUFVO1VBQ1ZiLGtCQUFrQjtVQUNsQndELGlCQUFpQjtVQUNqQmYsZ0JBQWdCO1VBQ2hCbUI7UUFDRixDQUFDLENBQUM7TUFDSixDQUFDLE1BQU0sSUFBSXZCLElBQUksSUFBSSxVQUFVLEVBQUU7UUFDN0IsSUFBSSxDQUFDNEIsc0JBQXNCLENBQUM7VUFDMUJyQixnQkFBZ0I7VUFDaEJJLFNBQVM7VUFDVEUsVUFBVTtVQUNWckMsVUFBVTtVQUNWaUQsZUFBZTtVQUNmOUQsa0JBQWtCO1VBQ2xCdUQsU0FBUztVQUNUQyxpQkFBaUI7VUFDakJFLGNBQWM7VUFDZGpCLGdCQUFnQjtVQUNoQm1CO1FBQ0YsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDTSx1QkFBdUIsQ0FBQztVQUFDaEIsVUFBVTtVQUFFVyxjQUFjO1VBQUVoRCxVQUFVO1VBQUVKLGNBQWM7VUFBRVQsa0JBQWtCO1VBQUV5QyxnQkFBZ0I7VUFBRW1CO1FBQVksQ0FBQyxDQUFDO01BQzVJLENBQUMsTUFBTSxJQUFJdkIsSUFBSSxJQUFJLFNBQVMsRUFBRTtRQUM1QixJQUFJLENBQUM4QixvQkFBb0IsQ0FBQztVQUFDdEQsVUFBVTtVQUFFaUQsZUFBZTtVQUFFckI7UUFBZ0IsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQzJCLHNCQUFzQixDQUFDO1VBQzFCdEIsc0JBQXNCO1VBQ3RCSSxVQUFVO1VBQ1ZXLGNBQWM7VUFDZGhELFVBQVU7VUFDVkosY0FBYztVQUNkVCxrQkFBa0I7VUFDbEIwRCxjQUFjO1VBQ2RqQixnQkFBZ0I7VUFDaEJtQjtRQUNGLENBQUMsQ0FBQztNQUNKLENBQUMsTUFBTTtRQUNMLE1BQU0sSUFBSTNELEtBQUssQ0FBQyw4QkFBOEJvQyxJQUFJLEVBQUUsQ0FBQztNQUN2RDtJQUNGO0VBQ0Y7RUFFQTBCLHdCQUF3QkEsQ0FBRTtJQUFDbEQsVUFBVTtJQUFFaUQsZUFBZTtJQUFFckI7RUFBZ0IsQ0FBQyxFQUFFO0lBQ3pFNUIsVUFBVSxDQUFDTSxTQUFTLENBQUMyQyxlQUFlLENBQUMsR0FBRyxZQUFZO01BQ2xELE9BQU8sSUFBSSxDQUFDTyx3QkFBd0IsQ0FBQztRQUFDQyxjQUFjLEVBQUU3QjtNQUFnQixDQUFDLENBQUM7SUFDMUUsQ0FBQztFQUNIO0VBRUF1Qix5QkFBeUJBLENBQUU7SUFBQ2QsVUFBVTtJQUFFRSxlQUFlO0lBQUV2QyxVQUFVO0lBQUViLGtCQUFrQjtJQUFFNkQsY0FBYztJQUFFTCxpQkFBaUI7SUFBRWYsZ0JBQWdCO0lBQUVtQjtFQUFZLENBQUMsRUFBRTtJQUMzSi9DLFVBQVUsQ0FBQ00sU0FBUyxDQUFDMEMsY0FBYyxDQUFDLEdBQUcsWUFBWTtNQUNqRCxNQUFNVSxvQkFBb0IsR0FBRzNFLFVBQVUsQ0FBQytCLFFBQVEsQ0FBQ3VCLFVBQVUsRUFBRSxJQUFJLENBQUM7TUFFbEUsSUFBSSxFQUFFcUIsb0JBQW9CLElBQUksSUFBSSxDQUFDLEVBQUUsTUFBTSxJQUFJdEUsS0FBSyxDQUFDLHNDQUFzQ3NFLG9CQUFvQixFQUFFLENBQUM7TUFFbEgsTUFBTUMsRUFBRSxHQUFHLElBQUksQ0FBQ0Qsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO01BQ3ZDLE1BQU1FLFVBQVUsR0FBR3pFLGtCQUFrQixDQUFDMEUsYUFBYSxDQUFDZCxZQUFZLENBQUM7TUFDakUsTUFBTWUsT0FBTyxHQUFHLENBQUMsQ0FBQztNQUNsQixNQUFNQyxrQkFBa0IsR0FBRyxHQUFHcEIsaUJBQWlCLElBQUlKLGVBQWUsS0FBSztNQUV2RXVCLE9BQU8sQ0FBQ0Msa0JBQWtCLENBQUMsR0FBR0osRUFBRTtNQUVoQyxPQUFPLElBQUksQ0FBQ0ssd0JBQXdCLENBQ2xDO1FBQUNQLGNBQWMsRUFBRTdCLGdCQUFnQjtRQUFFcUMsS0FBSyxFQUFFLElBQUk7UUFBRUw7TUFBVSxDQUFDLEVBQzNEO1FBQUNFO01BQU8sQ0FDVixDQUFDO0lBQ0gsQ0FBQztFQUNIO0VBRUFWLHNCQUFzQkEsQ0FBRTtJQUN0QnJCLGdCQUFnQjtJQUNoQkksU0FBUztJQUNURSxVQUFVO0lBQ1ZyQyxVQUFVO0lBQ1ZpRCxlQUFlO0lBQ2Y5RCxrQkFBa0I7SUFDbEJ1RCxTQUFTO0lBQ1RDLGlCQUFpQjtJQUNqQkUsY0FBYztJQUNkakIsZ0JBQWdCO0lBQ2hCbUI7RUFDRixDQUFDLEVBQUU7SUFDRC9DLFVBQVUsQ0FBQ00sU0FBUyxDQUFDMkMsZUFBZSxDQUFDLEdBQUcsWUFBWTtNQUNsRCxNQUFNVSxFQUFFLEdBQUcsSUFBSSxDQUFDaEMsVUFBVSxDQUFDLENBQUM7TUFDNUIsTUFBTWlDLFVBQVUsR0FBR3pFLGtCQUFrQixDQUFDMEUsYUFBYSxDQUFDZCxZQUFZLENBQUM7TUFDakUsTUFBTWUsT0FBTyxHQUFHLENBQUMsQ0FBQztNQUVsQkEsT0FBTyxDQUFDLEdBQUd6QixVQUFVLEtBQUssQ0FBQyxHQUFHc0IsRUFBRTtNQUVoQyxNQUFNTyxpQkFBaUIsR0FBRztRQUN4QlQsY0FBYyxFQUFFN0IsZ0JBQWdCO1FBQ2hDcUMsS0FBSyxFQUFFLElBQUk7UUFDWEUsU0FBUyxFQUFFaEMsU0FBUztRQUNwQnlCO01BQ0YsQ0FBQztNQUVELElBQUlRLGVBQWU7TUFFbkIsSUFBSXZCLGNBQWMsRUFBRTtRQUNsQnVCLGVBQWUsR0FBRztVQUNoQkMsTUFBTSxFQUFFO1lBQ056QixPQUFPLEVBQUU7Y0FDUHFCLEtBQUssRUFBRWxDLGdCQUFnQjtjQUN2QjRCLEVBQUUsRUFBRSxJQUFJLENBQUNoQyxVQUFVLENBQUMsQ0FBQztjQUNyQjJDLFVBQVUsRUFBRTFDO1lBQ2Q7VUFDRjtRQUNGLENBQUM7TUFDSCxDQUFDLE1BQU07UUFDTCxNQUFNa0MsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNsQixNQUFNUyxvQkFBb0IsR0FBRzVCLGlCQUFpQixJQUFJOUQsSUFBSSxDQUFDbUIsVUFBVSxDQUFDSixjQUFjLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQztRQUNqRyxNQUFNNEUsb0JBQW9CLEdBQUd6RixVQUFVLENBQUMrQixRQUFRLENBQUN5RCxvQkFBb0IsRUFBRSxJQUFJLENBQUM7UUFFNUUsSUFBSSxFQUFFQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsRUFBRSxNQUFNLElBQUlwRixLQUFLLENBQUMsK0JBQStCb0Ysb0JBQW9CLEVBQUUsQ0FBQztRQUUzR1YsT0FBTyxDQUFDLEdBQUd6QixVQUFVLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQ21DLG9CQUFvQixDQUFDLENBQUMsQ0FBQztRQUUxRCxJQUFJOUIsU0FBUyxFQUFFO1VBQ2JvQixPQUFPLENBQUMsR0FBR3BCLFNBQVMsVUFBVSxDQUFDLEdBQUdYLGdCQUFnQjtRQUNwRDtRQUVBcUMsZUFBZSxHQUFHO1VBQUNOO1FBQU8sQ0FBQztNQUM3QjtNQUVBLE9BQU8sSUFBSWxGLFVBQVUsQ0FBQ3NGLGlCQUFpQixFQUFFRSxlQUFlLENBQUM7SUFDM0QsQ0FBQztFQUNIO0VBRUFmLHVCQUF1QkEsQ0FBRTtJQUFDaEIsVUFBVTtJQUFFVyxjQUFjO0lBQUVoRCxVQUFVO0lBQUVKLGNBQWM7SUFBRVQsa0JBQWtCO0lBQUUwRCxjQUFjO0lBQUVqQixnQkFBZ0I7SUFBRW1CO0VBQVksQ0FBQyxFQUFFO0lBQ3JKL0MsVUFBVSxDQUFDTSxTQUFTLENBQUMwQyxjQUFjLENBQUMsR0FBRyxZQUFZO01BQ2pELE1BQU1XLEVBQUUsR0FBRyxJQUFJLENBQUNoQyxVQUFVLENBQUMsQ0FBQztNQUM1QixNQUFNaUMsVUFBVSxHQUFHekUsa0JBQWtCLENBQUMwRSxhQUFhLENBQUNkLFlBQVksQ0FBQztNQUVqRSxJQUFJRixjQUFjLEVBQUU7UUFDbEIsTUFBTTlDLGNBQWMsR0FBR2xCLElBQUksQ0FBQ2UsY0FBYyxFQUFFLFdBQVcsQ0FBQztRQUV4RCxPQUFPLElBQUksQ0FBQzZFLHNCQUFzQixDQUNoQztVQUNFaEIsY0FBYyxFQUFFN0IsZ0JBQWdCO1VBQ2hDcUMsS0FBSyxFQUFFLElBQUk7VUFDWEw7UUFDRixDQUFDLEVBQ0Q7VUFDRVMsTUFBTSxFQUFFO1lBQ056QixPQUFPLEVBQUU7Y0FDUHFCLEtBQUssRUFBRWxFLGNBQWM7Y0FDckI0RCxFQUFFO2NBQ0ZXLFVBQVUsRUFBRTFDO1lBQ2Q7VUFDRjtRQUNGLENBQ0YsQ0FBQztNQUNILENBQUMsTUFBTTtRQUNMLE1BQU1rQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBRWxCQSxPQUFPLENBQUMsR0FBR3pCLFVBQVUsS0FBSyxDQUFDLEdBQUdzQixFQUFFO1FBRWhDLE9BQU8sSUFBSSxDQUFDYyxzQkFBc0IsQ0FDaEM7VUFDRWhCLGNBQWMsRUFBRTdCLGdCQUFnQjtVQUNoQ3FDLEtBQUssRUFBRSxJQUFJO1VBQ1hMO1FBQ0YsQ0FBQyxFQUNEO1VBQUNFO1FBQU8sQ0FDVixDQUFDO01BQ0g7SUFDRixDQUFDO0VBQ0g7RUFFQVIsb0JBQW9CQSxDQUFFO0lBQUN0RCxVQUFVO0lBQUVpRCxlQUFlO0lBQUVyQjtFQUFnQixDQUFDLEVBQUU7SUFDckU1QixVQUFVLENBQUNNLFNBQVMsQ0FBQzJDLGVBQWUsQ0FBQyxHQUFHLFlBQVk7TUFDbEQsT0FBTyxJQUFJLENBQUN5QixxQkFBcUIsQ0FBQztRQUFDakIsY0FBYyxFQUFFN0I7TUFBZ0IsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7RUFDSDtFQUVBMkIsc0JBQXNCQSxDQUFFO0lBQ3RCdEIsc0JBQXNCO0lBQ3RCSSxVQUFVO0lBQ1ZXLGNBQWM7SUFDZGhELFVBQVU7SUFDVkosY0FBYztJQUNkVCxrQkFBa0I7SUFDbEIwRCxjQUFjO0lBQ2RqQixnQkFBZ0I7SUFDaEJtQjtFQUNGLENBQUMsRUFBRTtJQUNEL0MsVUFBVSxDQUFDTSxTQUFTLENBQUMwQyxjQUFjLENBQUMsR0FBRyxZQUFZO01BQ2pELE1BQU13QixvQkFBb0IsR0FBR3pGLFVBQVUsQ0FBQytCLFFBQVEsQ0FBQ21CLHNCQUFzQixFQUFFLElBQUksQ0FBQztNQUU5RSxJQUFJLEVBQUV1QyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsRUFBRSxNQUFNLElBQUlwRixLQUFLLENBQUMsc0NBQXNDb0Ysb0JBQW9CLEVBQUUsQ0FBQztNQUVsSCxNQUFNYixFQUFFLEdBQUcsSUFBSSxDQUFDYSxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7TUFDdkMsTUFBTVosVUFBVSxHQUFHekUsa0JBQWtCLENBQUMwRSxhQUFhLENBQUNkLFlBQVksQ0FBQztNQUVqRSxJQUFJRixjQUFjLEVBQUU7UUFDbEIsTUFBTTlDLGNBQWMsR0FBR2xCLElBQUksQ0FBQ2UsY0FBYyxFQUFFLFdBQVcsQ0FBQztRQUV4RCxPQUFPLElBQUksQ0FBQytFLHFCQUFxQixDQUMvQjtVQUFDbEIsY0FBYyxFQUFFN0IsZ0JBQWdCO1VBQUVxQyxLQUFLLEVBQUUsSUFBSTtVQUFFTDtRQUFVLENBQUMsRUFDM0Q7VUFBQ1MsTUFBTSxFQUFFO1lBQUN6QixPQUFPLEVBQUU7Y0FBQ3FCLEtBQUssRUFBRWxFLGNBQWM7Y0FBRTRELEVBQUU7Y0FBRVcsVUFBVSxFQUFFMUM7WUFBZ0I7VUFBQztRQUFDLENBQy9FLENBQUM7TUFDSCxDQUFDLE1BQU07UUFDTCxNQUFNa0MsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUVsQkEsT0FBTyxDQUFDLEdBQUd6QixVQUFVLEtBQUssQ0FBQyxHQUFHc0IsRUFBRTtRQUVoQyxPQUFPLElBQUksQ0FBQ2dCLHFCQUFxQixDQUMvQjtVQUNFbEIsY0FBYyxFQUFFN0IsZ0JBQWdCO1VBQ2hDcUMsS0FBSyxFQUFFLElBQUk7VUFDWEw7UUFDRixDQUFDLEVBQ0Q7VUFBQ0U7UUFBTyxDQUNWLENBQUM7TUFDSDtJQUNGLENBQUM7RUFDSDtBQUNGIiwiaWdub3JlTGlzdCI6W119
|
|
357
|
+
//# sourceMappingURL=model-recipes-model-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-recipes-model-loader.js","names":["BaseModel","Collection","digg","digs","inflection","ApiMakerModelRecipesModelLoader","constructor","modelRecipe","modelRecipesLoader","Error","createClass","attributes","collection_commands","collectionCommands","member_commands","memberCommands","model_class_data","modelClassData","relationships","name","modelClassName","ModelClass","ApiMakerModel","Object","defineProperty","writable","value","prototype","addAttributeMethodsToModelClass","addRelationshipsToModelClass","addQueryCommandsToModelClass","addMemberCommandsToModelClass","attributeName","attribute","methodName","camelize","hasMethodName","readAttributeUnderscore","_isPresent","collectionCommandName","args","commandArgs","_callCollectionCommand","command","collectionName","type","memberCommandName","_callMemberCommand","primaryKey","relationshipName","relationship","active_record","activeRecordName","primary_key","activeRecordPrimaryKey","class_name","className","foreign_key","foreignKey","klass","klassPrimaryKey","options","as","optionsAs","optionsPrimaryKey","through","optionsThrough","resource_name","resourceName","loadMethodName","modelMethodName","defineBelongsToGetMethod","defineBelongsToLoadMethod","defineHasManyGetMethod","defineHasManyLoadMethod","defineHasOneGetMethd","defineHasOneLoadMethod","_readBelongsToReflection","reflectionName","foreignKeyMethodName","id","modelClass","getModelClass","ransack","ransackIdSearchKey","_loadBelongsToReflection","model","hasManyParameters","modelName","queryParameters","params","reflection","primaryKeyColumnName","primaryKeyMethodName","_loadHasManyReflection","_readHasOneReflection","_loadHasOneReflection"],"sources":["../src/model-recipes-model-loader.js"],"sourcesContent":["import BaseModel from \"./base-model\"\nimport Collection from \"./collection\"\nimport {digg, digs} from \"diggerize\"\nimport * as inflection from \"inflection\"\n\nexport default class ApiMakerModelRecipesModelLoader {\n constructor ({modelRecipe, modelRecipesLoader}) {\n if (!modelRecipe) throw new Error(\"No 'modelRecipe' was given\")\n\n this.modelRecipesLoader = modelRecipesLoader\n this.modelRecipe = modelRecipe\n }\n\n createClass () {\n const {modelRecipe} = digs(this, \"modelRecipe\")\n const {\n attributes,\n collection_commands: collectionCommands,\n member_commands: memberCommands,\n model_class_data: modelClassData,\n relationships\n } = digs(\n modelRecipe,\n \"attributes\",\n \"collection_commands\",\n \"member_commands\",\n \"model_class_data\",\n \"relationships\"\n )\n const {name: modelClassName} = digs(modelClassData, \"name\")\n const ModelClass = class ApiMakerModel extends BaseModel { }\n\n Object.defineProperty(ModelClass, \"name\", {writable: false, value: modelClassName})\n\n ModelClass.prototype.constructor.modelClassData = () => modelClassData\n\n this.addAttributeMethodsToModelClass(ModelClass, attributes)\n this.addRelationshipsToModelClass(ModelClass, modelClassData, relationships)\n this.addQueryCommandsToModelClass(ModelClass, collectionCommands)\n this.addMemberCommandsToModelClass(ModelClass, memberCommands)\n\n return ModelClass\n }\n\n addAttributeMethodsToModelClass (ModelClass, attributes) {\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName]\n const {name} = digs(attribute, \"name\")\n const methodName = inflection.camelize(name, true)\n const hasMethodName = inflection.camelize(`has_${name}`, true)\n\n ModelClass.prototype[methodName] = function () {\n return this.readAttributeUnderscore(attributeName)\n }\n\n ModelClass.prototype[hasMethodName] = function () {\n const value = this[methodName]()\n\n return this._isPresent(value)\n }\n }\n }\n\n addQueryCommandsToModelClass (ModelClass, collectionCommands) {\n for (const collectionCommandName in collectionCommands) {\n const methodName = inflection.camelize(collectionCommandName, true)\n\n ModelClass[methodName] = function (args, commandArgs = {}) {\n return this._callCollectionCommand(\n {\n args,\n command: collectionCommandName,\n collectionName: digg(this.modelClassData(), \"collectionName\"),\n type: \"collection\"\n },\n commandArgs\n )\n }\n }\n }\n\n addMemberCommandsToModelClass (ModelClass, memberCommands) {\n for (const memberCommandName in memberCommands) {\n const methodName = inflection.camelize(memberCommandName, true)\n\n ModelClass.prototype[methodName] = function (args, commandArgs = {}) {\n return this._callMemberCommand(\n {\n args,\n command: memberCommandName,\n primaryKey: this.primaryKey(),\n collectionName: this.modelClassData().collectionName,\n type: \"member\"\n },\n commandArgs\n )\n }\n }\n }\n\n addRelationshipsToModelClass (ModelClass, modelClassData, relationships) {\n const {modelRecipesLoader} = digs(this, \"modelRecipesLoader\")\n\n for (const relationshipName in relationships) {\n const relationship = relationships[relationshipName]\n const {\n active_record: {\n name: activeRecordName,\n primary_key: activeRecordPrimaryKey\n },\n class_name: className,\n foreign_key: foreignKey,\n klass: {primary_key: klassPrimaryKey},\n options: {as: optionsAs, primary_key: optionsPrimaryKey, through: optionsThrough},\n resource_name: resourceName,\n type\n } = digs(\n relationship,\n \"active_record\",\n \"class_name\",\n \"foreign_key\",\n \"klass\",\n \"options\",\n \"resource_name\",\n \"type\"\n )\n const loadMethodName = inflection.camelize(`load_${relationshipName}`, true)\n const modelMethodName = inflection.camelize(relationshipName, true)\n\n if (type == \"belongs_to\") {\n this.defineBelongsToGetMethod({ModelClass, modelMethodName, relationshipName})\n this.defineBelongsToLoadMethod({\n foreignKey,\n klassPrimaryKey,\n loadMethodName,\n ModelClass,\n modelRecipesLoader,\n optionsPrimaryKey,\n relationshipName,\n resourceName\n })\n } else if (type == \"has_many\") {\n this.defineHasManyGetMethod({\n activeRecordName,\n className,\n foreignKey,\n ModelClass,\n modelMethodName,\n modelRecipesLoader,\n optionsAs,\n optionsPrimaryKey,\n optionsThrough,\n relationshipName,\n resourceName\n })\n this.defineHasManyLoadMethod({foreignKey, loadMethodName, ModelClass, modelClassData, modelRecipesLoader, relationshipName, resourceName})\n } else if (type == \"has_one\") {\n this.defineHasOneGetMethd({ModelClass, modelMethodName, relationshipName})\n this.defineHasOneLoadMethod({\n activeRecordPrimaryKey,\n foreignKey,\n loadMethodName,\n ModelClass,\n modelClassData,\n modelRecipesLoader,\n optionsThrough,\n relationshipName,\n resourceName\n })\n } else {\n throw new Error(`Unknown relationship type: ${type}`)\n }\n }\n }\n\n defineBelongsToGetMethod ({ModelClass, modelMethodName, relationshipName}) {\n ModelClass.prototype[modelMethodName] = function () {\n return this._readBelongsToReflection({reflectionName: relationshipName})\n }\n }\n\n defineBelongsToLoadMethod ({foreignKey, klassPrimaryKey, ModelClass, modelRecipesLoader, loadMethodName, optionsPrimaryKey, relationshipName, resourceName}) {\n ModelClass.prototype[loadMethodName] = function () {\n const foreignKeyMethodName = inflection.camelize(foreignKey, true)\n\n if (!(foreignKeyMethodName in this)) throw new Error(`Foreign key method wasn't defined: ${foreignKeyMethodName}`)\n\n const id = this[foreignKeyMethodName]()\n const modelClass = modelRecipesLoader.getModelClass(resourceName)\n const ransack = {}\n const ransackIdSearchKey = `${optionsPrimaryKey || klassPrimaryKey}_eq`\n\n ransack[ransackIdSearchKey] = id\n\n return this._loadBelongsToReflection(\n {reflectionName: relationshipName, model: this, modelClass},\n {ransack}\n )\n }\n }\n\n defineHasManyGetMethod ({\n activeRecordName,\n className,\n foreignKey,\n ModelClass,\n modelMethodName,\n modelRecipesLoader,\n optionsAs,\n optionsPrimaryKey,\n optionsThrough,\n relationshipName,\n resourceName\n }) {\n ModelClass.prototype[modelMethodName] = function () {\n const id = this.primaryKey()\n const modelClass = modelRecipesLoader.getModelClass(resourceName)\n const ransack = {}\n\n ransack[`${foreignKey}_eq`] = id\n\n const hasManyParameters = {\n reflectionName: relationshipName,\n model: this,\n modelName: className,\n modelClass\n }\n\n let queryParameters\n\n if (optionsThrough) {\n queryParameters = {\n params: {\n through: {\n model: activeRecordName,\n id: this.primaryKey(),\n reflection: relationshipName\n }\n }\n }\n } else {\n const ransack = {}\n const primaryKeyColumnName = optionsPrimaryKey || digg(ModelClass.modelClassData(), \"primaryKey\")\n const primaryKeyMethodName = inflection.camelize(primaryKeyColumnName, true)\n\n if (!(primaryKeyMethodName in this)) throw new Error(`No such primary key method: ${primaryKeyMethodName}`)\n\n ransack[`${foreignKey}_eq`] = this[primaryKeyMethodName]()\n\n if (optionsAs) {\n ransack[`${optionsAs}_type_eq`] = activeRecordName\n }\n\n queryParameters = {ransack}\n }\n\n return new Collection(hasManyParameters, queryParameters)\n }\n }\n\n defineHasManyLoadMethod ({foreignKey, loadMethodName, ModelClass, modelClassData, modelRecipesLoader, optionsThrough, relationshipName, resourceName}) {\n ModelClass.prototype[loadMethodName] = function () {\n const id = this.primaryKey()\n const modelClass = modelRecipesLoader.getModelClass(resourceName)\n\n if (optionsThrough) {\n const modelClassName = digg(modelClassData, \"className\")\n\n return this._loadHasManyReflection(\n {\n reflectionName: relationshipName,\n model: this,\n modelClass\n },\n {\n params: {\n through: {\n model: modelClassName,\n id,\n reflection: relationshipName\n }\n }\n }\n )\n } else {\n const ransack = {}\n\n ransack[`${foreignKey}_eq`] = id\n\n return this._loadHasManyReflection(\n {\n reflectionName: relationshipName,\n model: this,\n modelClass\n },\n {ransack}\n )\n }\n }\n }\n\n defineHasOneGetMethd ({ModelClass, modelMethodName, relationshipName}) {\n ModelClass.prototype[modelMethodName] = function () {\n return this._readHasOneReflection({reflectionName: relationshipName})\n }\n }\n\n defineHasOneLoadMethod ({\n activeRecordPrimaryKey,\n foreignKey,\n loadMethodName,\n ModelClass,\n modelClassData,\n modelRecipesLoader,\n optionsThrough,\n relationshipName,\n resourceName\n }) {\n ModelClass.prototype[loadMethodName] = function () {\n const primaryKeyMethodName = inflection.camelize(activeRecordPrimaryKey, true)\n\n if (!(primaryKeyMethodName in this)) throw new Error(`Primary key method wasn't defined: ${primaryKeyMethodName}`)\n\n const id = this[primaryKeyMethodName]()\n const modelClass = modelRecipesLoader.getModelClass(resourceName)\n\n if (optionsThrough) {\n const modelClassName = digg(modelClassData, \"className\")\n\n return this._loadHasOneReflection(\n {reflectionName: relationshipName, model: this, modelClass},\n {params: {through: {model: modelClassName, id, reflection: relationshipName}}}\n )\n } else {\n const ransack = {}\n\n ransack[`${foreignKey}_eq`] = id\n\n return this._loadHasOneReflection(\n {\n reflectionName: relationshipName,\n model: this,\n modelClass\n },\n {ransack}\n )\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -37,4 +37,4 @@ export default class ModelsResponseReader {
|
|
|
37
37
|
return models;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=
|
|
40
|
+
//# sourceMappingURL=models-response-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models-response-reader.js","names":["inflection","modelClassRequire","Preloaded","ModelsResponseReader","first","response","collection","reader","models","constructor","args","preloaded","modelType","data","modelClassName","classify","ModelClass","collectionName","modelClassData","modelId","modelData","Error","model","isNewRecord","_readPreloadedRelationships","push"],"sources":["../src/models-response-reader.js"],"sourcesContent":["import * as inflection from \"inflection\"\nimport modelClassRequire from \"./model-class-require\"\nimport Preloaded from \"./preloaded\"\n\nexport default class ModelsResponseReader {\n static first (response) {\n return ModelsResponseReader.collection(response)[0]\n }\n\n static collection (response) {\n const reader = new ModelsResponseReader({response})\n return reader.models()\n }\n\n constructor (args) {\n this.collection = args.collection\n this.response = args.response\n }\n\n models () {\n const preloaded = new Preloaded(this.response)\n const models = []\n\n for (const modelType in this.response.data) {\n const modelClassName = inflection.classify(modelType)\n const ModelClass = modelClassRequire(modelClassName)\n const collectionName = ModelClass.modelClassData().collectionName\n\n for (const modelId of this.response.data[modelType]) {\n const modelData = this.response.preloaded[collectionName][modelId]\n\n if (!modelData)\n throw new Error(`Couldn't find model data for ${collectionName}(${modelId})`)\n\n const model = new ModelClass({\n collection: this.collection,\n data: modelData,\n isNewRecord: false\n })\n\n model._readPreloadedRelationships(preloaded)\n models.push(model)\n }\n }\n\n return models\n }\n}\n"],"mappings":"AAAA,OAAO,KAAKA,UAAU,MAAM,YAAY;AACxC,OAAOC,iBAAiB,MAAM,uBAAuB;AACrD,OAAOC,SAAS,MAAM,aAAa;AAEnC,eAAe,MAAMC,oBAAoB,CAAC;EACxC,OAAOC,KAAKA,CAAEC,QAAQ,EAAE;IACtB,OAAOF,oBAAoB,CAACG,UAAU,CAACD,QAAQ,CAAC,CAAC,CAAC,CAAC;EACrD;EAEA,OAAOC,UAAUA,CAAED,QAAQ,EAAE;IAC3B,MAAME,MAAM,GAAG,IAAIJ,oBAAoB,CAAC;MAACE;IAAQ,CAAC,CAAC;IACnD,OAAOE,MAAM,CAACC,MAAM,CAAC,CAAC;EACxB;EAEAC,WAAWA,CAAEC,IAAI,EAAE;IACjB,IAAI,CAACJ,UAAU,GAAGI,IAAI,CAACJ,UAAU;IACjC,IAAI,CAACD,QAAQ,GAAGK,IAAI,CAACL,QAAQ;EAC/B;EAEAG,MAAMA,CAAA,EAAI;IACR,MAAMG,SAAS,GAAG,IAAIT,SAAS,CAAC,IAAI,CAACG,QAAQ,CAAC;IAC9C,MAAMG,MAAM,GAAG,EAAE;IAEjB,KAAK,MAAMI,SAAS,IAAI,IAAI,CAACP,QAAQ,CAACQ,IAAI,EAAE;MAC1C,MAAMC,cAAc,GAAGd,UAAU,CAACe,QAAQ,CAACH,SAAS,CAAC;MACrD,MAAMI,UAAU,GAAGf,iBAAiB,CAACa,cAAc,CAAC;MACpD,MAAMG,cAAc,GAAGD,UAAU,CAACE,cAAc,CAAC,CAAC,CAACD,cAAc;MAEjE,KAAK,MAAME,OAAO,IAAI,IAAI,CAACd,QAAQ,CAACQ,IAAI,CAACD,SAAS,CAAC,EAAE;QACnD,MAAMQ,SAAS,GAAG,IAAI,CAACf,QAAQ,CAACM,SAAS,CAACM,cAAc,CAAC,CAACE,OAAO,CAAC;QAElE,IAAI,CAACC,SAAS,EACZ,MAAM,IAAIC,KAAK,CAAC,gCAAgCJ,cAAc,IAAIE,OAAO,GAAG,CAAC;QAE/E,MAAMG,KAAK,GAAG,IAAIN,UAAU,CAAC;UAC3BV,UAAU,EAAE,IAAI,CAACA,UAAU;UAC3BO,IAAI,EAAEO,SAAS;UACfG,WAAW,EAAE;QACf,CAAC,CAAC;QAEFD,KAAK,CAACE,2BAA2B,CAACb,SAAS,CAAC;QAC5CH,MAAM,CAACiB,IAAI,CAACH,KAAK,CAAC;MACpB;IACF;IAEA,OAAOd,MAAM;EACf;AACF","ignoreList":[]}
|
package/build/models.js
CHANGED
|
@@ -5,4 +5,4 @@ const loader = new ModelRecipesLoader({
|
|
|
5
5
|
});
|
|
6
6
|
const result = loader.load();
|
|
7
7
|
export default result;
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","names":["modelRecipes","ModelRecipesLoader","loader","recipes","result","load"],"sources":["../src/models.js"],"sourcesContent":["import modelRecipes from \"model-recipes.json\"\nimport ModelRecipesLoader from \"./model-recipes-loader\"\n\nconst loader = new ModelRecipesLoader({recipes: modelRecipes})\nconst result = loader.load()\n\nexport default result\n"],"mappings":"AAAA,OAAOA,YAAY,MAAM,oBAAoB;AAC7C,OAAOC,kBAAkB,MAAM,wBAAwB;AAEvD,MAAMC,MAAM,GAAG,IAAID,kBAAkB,CAAC;EAACE,OAAO,EAAEH;AAAY,CAAC,CAAC;AAC9D,MAAMI,MAAM,GAAGF,MAAM,CAACG,IAAI,CAAC,CAAC;AAE5B,eAAeD,MAAM","ignoreList":[]}
|
package/build/money-formatter.js
CHANGED
|
@@ -75,4 +75,4 @@ export default class MoneyFormatter {
|
|
|
75
75
|
return `${this.currency.code} `;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
//# sourceMappingURL=
|
|
78
|
+
//# sourceMappingURL=money-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"money-formatter.js","names":["I18nOnSteroids","Money","formatNumber","replaceall","MoneyFormatter","fromMoney","money","args","format","toString","stringToFloat","moneyString","unformatted","getCurrent","t","float","parseFloat","amountFromMoney","amount","fractional","Error","JSON","stringify","currencyFromMoney","currencyString","currency","id","iso_code","code","moneyCurrency","toUpperCase","isMoney","value","Object","keys","length","constructor","toFixed","decimalDigits","formatOptions","prefix","decimal","integerSeparator","decimals","decimal_digits","excludeCurrency"],"sources":["../src/money-formatter.js"],"sourcesContent":["import I18nOnSteroids from \"i18n-on-steroids\"\nimport Money from \"js-money\"\nimport formatNumber from \"format-number\"\nimport replaceall from \"replaceall\"\n\nexport default class MoneyFormatter {\n static fromMoney (money, args = {}) {\n return new MoneyFormatter(money, args)\n }\n\n static format (money, args = {}) {\n return MoneyFormatter.fromMoney(money, args).toString()\n }\n\n static stringToFloat (moneyString) {\n let unformatted = replaceall(I18nOnSteroids.getCurrent().t(\"number.currency.format.delimiter\"), \"\", moneyString)\n\n unformatted = replaceall(I18nOnSteroids.getCurrent().t(\"number.currency.format.separator\"), \".\", unformatted)\n const float = parseFloat(unformatted)\n\n return float\n }\n\n static amountFromMoney (money) {\n if (\"amount\" in money) {\n return parseFloat(money.amount)\n } else if (\"fractional\" in money) {\n return parseFloat(money.fractional)\n }\n\n throw new Error(`Couldn't figure out amount from: ${JSON.stringify(money, null, 2)}`)\n }\n\n static currencyFromMoney (money) {\n let currencyString\n\n if (typeof money.currency == \"string\") {\n currencyString = money.currency\n } else if (typeof money.currency.id == \"string\") {\n currencyString = money.currency.id\n } else if (typeof money.currency.iso_code == \"string\") {\n currencyString = money.currency.iso_code\n } else if (typeof money.currency.code == \"string\") {\n currencyString = money.currency.code\n } else {\n throw new Error(`Couldn't figure out currency from: ${JSON.stringify(money, null, 2)}`)\n }\n\n const moneyCurrency = Money[currencyString.toUpperCase()]\n\n if (!moneyCurrency) {\n throw new Error(`Could not find currency ${JSON.stringify(money, null, 2)}`)\n }\n\n return moneyCurrency\n }\n\n static isMoney(value) {\n if (value instanceof Money) return true\n\n if (typeof value == \"object\" && value && Object.keys(value).length == 2 && \"amount\" in value && \"currency\" in value)\n return true\n\n return false\n }\n\n constructor (money, args = {}) {\n this.args = args\n this.money = money\n this.amount = MoneyFormatter.amountFromMoney(money)\n this.currency = MoneyFormatter.currencyFromMoney(money)\n }\n\n toString () {\n const amount = (this.amount / 100).toFixed(this.decimalDigits())\n const formatOptions = {\n prefix: this.prefix(),\n decimal: I18nOnSteroids.getCurrent().t(\"number.currency.format.separator\"),\n integerSeparator: I18nOnSteroids.getCurrent().t(\"number.currency.format.delimiter\")\n }\n\n return formatNumber(formatOptions)(amount)\n }\n\n decimalDigits () {\n if (this.args.decimals !== null) {\n return this.args.decimals\n }\n\n return this.currency.decimal_digits\n }\n\n prefix () {\n if (this.args.excludeCurrency) {\n return \"\"\n }\n\n return `${this.currency.code} `\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export default class NotLoadedError extends Error {}
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=not-loaded-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-loaded-error.js","names":["NotLoadedError","Error"],"sources":["../src/not-loaded-error.js"],"sourcesContent":["export default class NotLoadedError extends Error {}\n"],"mappings":"AAAA,eAAe,MAAMA,cAAc,SAASC,KAAK,CAAC","ignoreList":[]}
|
package/build/params.js
CHANGED
|
@@ -57,4 +57,4 @@ export default class Params {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
//# sourceMappingURL=
|
|
60
|
+
//# sourceMappingURL=params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params.js","names":["config","formSerialize","Incorporator","qs","urlEncode","Params","parse","globalThis","location","search","substr","change","given","incorporator","objects","replaceArrayIfExists","merge","withParams","params","newParams","stringify","encoder","newPath","pathname","changeParams","opts","appHistory","getHistory","AppHistory","push","serializeForm","form","hash","empty","setUndefined","Array","isArray","length","undefined","map","givenI","Object","keys","newGiven","key"],"sources":["../src/params.js"],"sourcesContent":["import config from \"./config\"\nimport formSerialize from \"form-serialize\"\nimport Incorporator from \"incorporator\"\nimport qs from \"qs\"\nimport urlEncode from \"./url-encode\"\n\nexport default class Params {\n static parse() {\n return qs.parse(globalThis.location.search.substr(1))\n }\n\n static change(given) {\n const incorporator = new Incorporator({objects: [Params.parse(), given]})\n\n incorporator.replaceArrayIfExists(true)\n\n return incorporator.merge()\n }\n\n static withParams(params) {\n const newParams = qs.stringify(params, {encoder: urlEncode})\n const newPath = `${location.pathname}?${newParams}`\n\n return newPath\n }\n\n static changeParams(given, opts = {}) {\n const params = Params.change(given)\n const newParams = qs.stringify(params, {encoder: urlEncode})\n const newPath = `${location.pathname}?${newParams}`\n const appHistory = opts.appHistory || config.getHistory() || AppHistory\n\n appHistory.push(newPath)\n }\n\n static serializeForm(form) {\n const hash = formSerialize(form, {empty: true, hash: true})\n return Params.setUndefined(hash)\n }\n\n // This is used to set all empty values to 'undefined' which makes qs removed those elements from the query string\n static setUndefined(given) {\n if (Array.isArray(given)) {\n if (given.length == 0)\n return undefined\n\n return given.map((givenI) => Params.setUndefined(givenI))\n } else if (typeof given === \"object\") {\n if (Object.keys(given).length == 0)\n return undefined\n\n const newGiven = {}\n for (const key in given) {\n newGiven[key] = Params.setUndefined(given[key])\n }\n\n return newGiven\n } else if (given === \"\") {\n return undefined\n } else {\n return given\n }\n }\n}\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,UAAU;AAC7B,OAAOC,aAAa,MAAM,gBAAgB;AAC1C,OAAOC,YAAY,MAAM,cAAc;AACvC,OAAOC,EAAE,MAAM,IAAI;AACnB,OAAOC,SAAS,MAAM,cAAc;AAEpC,eAAe,MAAMC,MAAM,CAAC;EAC1B,OAAOC,KAAKA,CAAA,EAAG;IACb,OAAOH,EAAE,CAACG,KAAK,CAACC,UAAU,CAACC,QAAQ,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;EACvD;EAEA,OAAOC,MAAMA,CAACC,KAAK,EAAE;IACnB,MAAMC,YAAY,GAAG,IAAIX,YAAY,CAAC;MAACY,OAAO,EAAE,CAACT,MAAM,CAACC,KAAK,CAAC,CAAC,EAAEM,KAAK;IAAC,CAAC,CAAC;IAEzEC,YAAY,CAACE,oBAAoB,CAAC,IAAI,CAAC;IAEvC,OAAOF,YAAY,CAACG,KAAK,CAAC,CAAC;EAC7B;EAEA,OAAOC,UAAUA,CAACC,MAAM,EAAE;IACxB,MAAMC,SAAS,GAAGhB,EAAE,CAACiB,SAAS,CAACF,MAAM,EAAE;MAACG,OAAO,EAAEjB;IAAS,CAAC,CAAC;IAC5D,MAAMkB,OAAO,GAAG,GAAGd,QAAQ,CAACe,QAAQ,IAAIJ,SAAS,EAAE;IAEnD,OAAOG,OAAO;EAChB;EAEA,OAAOE,YAAYA,CAACZ,KAAK,EAAEa,IAAI,GAAG,CAAC,CAAC,EAAE;IACpC,MAAMP,MAAM,GAAGb,MAAM,CAACM,MAAM,CAACC,KAAK,CAAC;IACnC,MAAMO,SAAS,GAAGhB,EAAE,CAACiB,SAAS,CAACF,MAAM,EAAE;MAACG,OAAO,EAAEjB;IAAS,CAAC,CAAC;IAC5D,MAAMkB,OAAO,GAAG,GAAGd,QAAQ,CAACe,QAAQ,IAAIJ,SAAS,EAAE;IACnD,MAAMO,UAAU,GAAGD,IAAI,CAACC,UAAU,IAAI1B,MAAM,CAAC2B,UAAU,CAAC,CAAC,IAAIC,UAAU;IAEvEF,UAAU,CAACG,IAAI,CAACP,OAAO,CAAC;EAC1B;EAEA,OAAOQ,aAAaA,CAACC,IAAI,EAAE;IACzB,MAAMC,IAAI,GAAG/B,aAAa,CAAC8B,IAAI,EAAE;MAACE,KAAK,EAAE,IAAI;MAAED,IAAI,EAAE;IAAI,CAAC,CAAC;IAC3D,OAAO3B,MAAM,CAAC6B,YAAY,CAACF,IAAI,CAAC;EAClC;;EAEA;EACA,OAAOE,YAAYA,CAACtB,KAAK,EAAE;IACzB,IAAIuB,KAAK,CAACC,OAAO,CAACxB,KAAK,CAAC,EAAE;MACxB,IAAIA,KAAK,CAACyB,MAAM,IAAI,CAAC,EACnB,OAAOC,SAAS;MAElB,OAAO1B,KAAK,CAAC2B,GAAG,CAAEC,MAAM,IAAKnC,MAAM,CAAC6B,YAAY,CAACM,MAAM,CAAC,CAAC;IAC3D,CAAC,MAAM,IAAI,OAAO5B,KAAK,KAAK,QAAQ,EAAE;MACpC,IAAI6B,MAAM,CAACC,IAAI,CAAC9B,KAAK,CAAC,CAACyB,MAAM,IAAI,CAAC,EAChC,OAAOC,SAAS;MAElB,MAAMK,QAAQ,GAAG,CAAC,CAAC;MACnB,KAAK,MAAMC,GAAG,IAAIhC,KAAK,EAAE;QACvB+B,QAAQ,CAACC,GAAG,CAAC,GAAGvC,MAAM,CAAC6B,YAAY,CAACtB,KAAK,CAACgC,GAAG,CAAC,CAAC;MACjD;MAEA,OAAOD,QAAQ;IACjB,CAAC,MAAM,IAAI/B,KAAK,KAAK,EAAE,EAAE;MACvB,OAAO0B,SAAS;IAClB,CAAC,MAAM;MACL,OAAO1B,KAAK;IACd;EACF;AACF","ignoreList":[]}
|
package/build/preloaded.js
CHANGED
|
@@ -35,4 +35,4 @@ export default class ApiMakerPreloaded {
|
|
|
35
35
|
return this.preloaded[type][id];
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=preloaded.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preloaded.js","names":["inflection","modelClassRequire","ApiMakerPreloaded","constructor","response","loadPreloadedModels","preloaded","preloadedType","modelClassName","classify","ModelClass","preloadedId","preloadedData","model","data","isNewRecord","modelType","modelId","_readPreloadedRelationships","getModel","type","id","Error"],"sources":["../src/preloaded.js"],"sourcesContent":["import * as inflection from \"inflection\"\nimport modelClassRequire from \"./model-class-require\"\n\nexport default class ApiMakerPreloaded {\n constructor (response) {\n this.response = response\n this.loadPreloadedModels()\n }\n\n loadPreloadedModels () {\n this.preloaded = {}\n\n for (const preloadedType in this.response.preloaded) {\n const modelClassName = inflection.classify(preloadedType)\n const ModelClass = modelClassRequire(modelClassName)\n\n for (const preloadedId in this.response.preloaded[preloadedType]) {\n const preloadedData = this.response.preloaded[preloadedType][preloadedId]\n const model = new ModelClass({data: preloadedData, isNewRecord: false})\n\n if (!this.preloaded[preloadedType]) {\n this.preloaded[preloadedType] = {}\n }\n\n this.preloaded[preloadedType][preloadedId] = model\n }\n }\n\n for (const modelType in this.preloaded) {\n for (const modelId in this.preloaded[modelType]) {\n this.preloaded[modelType][modelId]._readPreloadedRelationships(this)\n }\n }\n }\n\n getModel (type, id) {\n if (!this.preloaded[type] || !this.preloaded[type][id]) {\n throw new Error(`Could not find a ${type} by that ID: ${id}`)\n }\n\n return this.preloaded[type][id]\n }\n}\n"],"mappings":"AAAA,OAAO,KAAKA,UAAU,MAAM,YAAY;AACxC,OAAOC,iBAAiB,MAAM,uBAAuB;AAErD,eAAe,MAAMC,iBAAiB,CAAC;EACrCC,WAAWA,CAAEC,QAAQ,EAAE;IACrB,IAAI,CAACA,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,mBAAmB,CAAC,CAAC;EAC5B;EAEAA,mBAAmBA,CAAA,EAAI;IACrB,IAAI,CAACC,SAAS,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAMC,aAAa,IAAI,IAAI,CAACH,QAAQ,CAACE,SAAS,EAAE;MACnD,MAAME,cAAc,GAAGR,UAAU,CAACS,QAAQ,CAACF,aAAa,CAAC;MACzD,MAAMG,UAAU,GAAGT,iBAAiB,CAACO,cAAc,CAAC;MAEpD,KAAK,MAAMG,WAAW,IAAI,IAAI,CAACP,QAAQ,CAACE,SAAS,CAACC,aAAa,CAAC,EAAE;QAChE,MAAMK,aAAa,GAAG,IAAI,CAACR,QAAQ,CAACE,SAAS,CAACC,aAAa,CAAC,CAACI,WAAW,CAAC;QACzE,MAAME,KAAK,GAAG,IAAIH,UAAU,CAAC;UAACI,IAAI,EAAEF,aAAa;UAAEG,WAAW,EAAE;QAAK,CAAC,CAAC;QAEvE,IAAI,CAAC,IAAI,CAACT,SAAS,CAACC,aAAa,CAAC,EAAE;UAClC,IAAI,CAACD,SAAS,CAACC,aAAa,CAAC,GAAG,CAAC,CAAC;QACpC;QAEA,IAAI,CAACD,SAAS,CAACC,aAAa,CAAC,CAACI,WAAW,CAAC,GAAGE,KAAK;MACpD;IACF;IAEA,KAAK,MAAMG,SAAS,IAAI,IAAI,CAACV,SAAS,EAAE;MACtC,KAAK,MAAMW,OAAO,IAAI,IAAI,CAACX,SAAS,CAACU,SAAS,CAAC,EAAE;QAC/C,IAAI,CAACV,SAAS,CAACU,SAAS,CAAC,CAACC,OAAO,CAAC,CAACC,2BAA2B,CAAC,IAAI,CAAC;MACtE;IACF;EACF;EAEAC,QAAQA,CAAEC,IAAI,EAAEC,EAAE,EAAE;IAClB,IAAI,CAAC,IAAI,CAACf,SAAS,CAACc,IAAI,CAAC,IAAI,CAAC,IAAI,CAACd,SAAS,CAACc,IAAI,CAAC,CAACC,EAAE,CAAC,EAAE;MACtD,MAAM,IAAIC,KAAK,CAAC,oBAAoBF,IAAI,gBAAgBC,EAAE,EAAE,CAAC;IAC/D;IAEA,OAAO,IAAI,CAACf,SAAS,CAACc,IAAI,CAAC,CAACC,EAAE,CAAC;EACjC;AACF","ignoreList":[]}
|
package/build/resize-observer.js
CHANGED
|
@@ -8,4 +8,4 @@ const ApiMakerResizeObserver = memo(({
|
|
|
8
8
|
return null;
|
|
9
9
|
});
|
|
10
10
|
export default ApiMakerResizeObserver;
|
|
11
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=resize-observer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resize-observer.js","names":["memo","useResizeObserver","ApiMakerResizeObserver","element","onResize"],"sources":["../src/resize-observer.jsx"],"sourcesContent":["import memo from \"set-state-compare/src/memo\"\nimport useResizeObserver from \"./use-resize-observer\"\n\nconst ApiMakerResizeObserver = memo(({element, onResize}) => {\n useResizeObserver(element, onResize)\n\n return null\n})\n\nexport default ApiMakerResizeObserver\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,4BAA4B;AAC7C,OAAOC,iBAAiB,MAAM,uBAAuB;AAErD,MAAMC,sBAAsB,GAAGF,IAAI,CAAC,CAAC;EAACG,OAAO;EAAEC;AAAQ,CAAC,KAAK;EAC3DH,iBAAiB,CAACE,OAAO,EAAEC,QAAQ,CAAC;EAEpC,OAAO,IAAI;AACb,CAAC,CAAC;AAEF,eAAeF,sBAAsB","ignoreList":[]}
|
package/build/result.js
CHANGED
|
@@ -10,4 +10,4 @@ export default class ApiMakerResult {
|
|
|
10
10
|
totalCount = () => this.data.response.meta.totalCount;
|
|
11
11
|
totalPages = () => this.data.response.meta.totalPages;
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=
|
|
13
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","names":["ApiMakerResult","constructor","data","count","response","meta","currentPage","models","modelClass","collection","perPage","totalCount","totalPages"],"sources":["../src/result.js"],"sourcesContent":["export default class ApiMakerResult {\n constructor (data) {\n this.data = data\n }\n\n count = () => this.data.response.meta.count\n currentPage = () => this.data.response.meta.currentPage\n models = () => this.data.models\n modelClass = () => this.data.collection.modelClass()\n perPage = () => this.data.response.meta.perPage\n totalCount = () => this.data.response.meta.totalCount\n totalPages = () => this.data.response.meta.totalPages\n}\n"],"mappings":"AAAA,eAAe,MAAMA,cAAc,CAAC;EAClCC,WAAWA,CAAEC,IAAI,EAAE;IACjB,IAAI,CAACA,IAAI,GAAGA,IAAI;EAClB;EAEAC,KAAK,GAAGA,CAAA,KAAM,IAAI,CAACD,IAAI,CAACE,QAAQ,CAACC,IAAI,CAACF,KAAK;EAC3CG,WAAW,GAAGA,CAAA,KAAM,IAAI,CAACJ,IAAI,CAACE,QAAQ,CAACC,IAAI,CAACC,WAAW;EACvDC,MAAM,GAAGA,CAAA,KAAM,IAAI,CAACL,IAAI,CAACK,MAAM;EAC/BC,UAAU,GAAGA,CAAA,KAAM,IAAI,CAACN,IAAI,CAACO,UAAU,CAACD,UAAU,CAAC,CAAC;EACpDE,OAAO,GAAGA,CAAA,KAAM,IAAI,CAACR,IAAI,CAACE,QAAQ,CAACC,IAAI,CAACK,OAAO;EAC/CC,UAAU,GAAGA,CAAA,KAAM,IAAI,CAACT,IAAI,CAACE,QAAQ,CAACC,IAAI,CAACM,UAAU;EACrDC,UAAU,GAAGA,CAAA,KAAM,IAAI,CAACV,IAAI,CAACE,QAAQ,CAACC,IAAI,CAACO,UAAU;AACvD","ignoreList":[]}
|
package/build/router/route.js
CHANGED
|
@@ -267,4 +267,4 @@ const Route = memo(shapeComponent(class Route extends BaseComponent {
|
|
|
267
267
|
}));
|
|
268
268
|
export { RequireComponentContext, RouteContext, Switch, useParams };
|
|
269
269
|
export default Route;
|
|
270
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwibWVtbyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0Iiwic2hhcGVDb21wb25lbnQiLCJTd2l0Y2giLCJDdXJyZW50U3dpdGNoQ29udGV4dCIsInVzZUkxOG4iLCJDdXJyZW50UGF0aENvbnRleHQiLCJQYXJhbXNDb250ZXh0IiwiUmVxdWlyZUNvbXBvbmVudENvbnRleHQiLCJSb3V0ZUNvbnRleHQiLCJ1c2VQYXJhbXMiLCJSb3V0ZSIsImRlZmF1bHRQcm9wcyIsImV4YWN0IiwiZmFsbGJhY2siLCJpbmNsdWRlSW5QYXRoIiwicHJvcFR5cGVzIiwiY2hpbGRyZW4iLCJub2RlIiwiY29tcG9uZW50Iiwic3RyaW5nIiwiY29tcG9uZW50UGF0aCIsImJvb2wiLCJpc1JlcXVpcmVkIiwib25NYXRjaCIsImZ1bmMiLCJwYXRoIiwib25lT2ZUeXBlIiwiaW5zdGFuY2VPZiIsIlJlZ0V4cCIsIm1hdGNoIiwibmV3UGFyYW1zIiwicGF0aFBhcnRzIiwic2V0dXAiLCJ0IiwibmFtZXNwYWNlIiwicHJvcHMiLCJwYXRoc01hdGNoZWQiLCJzd2l0Y2hHcm91cCIsImdpdmVuUm91dGUiLCJwYXRoU2hvd24iLCJzIiwiZGVidWciLCJsb2ciLCJyZXF1aXJlQ29tcG9uZW50IiwiY3VycmVudFBhcmFtcyIsImN1cnJlbnRQYXRoIiwicm91dGVQYXJ0cyIsInNwbGl0IiwibmV3Um91dGVQYXJ0cyIsInNsaWNlIiwibGVuZ3RoIiwiY29uY2F0IiwidXNlU3RhdGVzIiwiQ29tcG9uZW50IiwiY29tcG9uZW50Tm90Rm91bmQiLCJtYXRjaGVzIiwibG9hZE1hdGNoZXMiLCJoYXNTd2l0Y2hNYXRjaCIsImxvYWRDb21wb25lbnQiLCJwYXRoSWQiLCJwIiwidHQiLCJwYXJhbXMiLCJjb21wb25lbnRQYXRoUGFydHMiLCJKU09OIiwic3RyaW5naWZ5IiwicGF0aFBhcnRJbmRleCIsInBhdGhQYXJ0IiwidHJhbnNsYXRlZFBhdGhQYXJ0IiwiZGVmYXVsdFZhbHVlIiwicm91dGVQYXJ0IiwiZGVjb2RlVVJJQ29tcG9uZW50Iiwic3RhcnRzV2l0aCIsInBhcmFtTmFtZSIsInB1c2giLCJtYXRjaElkIiwiT2JqZWN0IiwiYXNzaWduIiwic2V0SW5zdGFuY2UiLCJzZXRTdGF0ZSIsInNldFBhdGhNYXRjaGVkIiwiYWN0dWFsQ29tcG9uZW50UGF0aCIsImpvaW4iLCJjb21wb25lbnRJbXBvcnQiLCJyb3V0ZURlZmluaXRpb24iLCJkZWZhdWx0IiwiZXJyb3IiLCJjb25zb2xlIiwiY2FsbGJhY2tBcmdzIiwiYXJncyIsIkFycmF5IiwiaXNBcnJheSIsInJlbmRlciIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIlByb3ZpZGVyIiwidmFsdWUiLCJuYW1lIiwic2luZ2xlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvdXRlci9yb3V0ZS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCB7Y3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBwcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5pbXBvcnQgU3dpdGNoLCB7Q3VycmVudFN3aXRjaENvbnRleHR9IGZyb20gXCIuL3N3aXRjaFwiXG5pbXBvcnQgdXNlSTE4biBmcm9tIFwiaTE4bi1vbi1zdGVyb2lkcy9zcmMvdXNlLWkxOG5cIlxuXG5jb25zdCBDdXJyZW50UGF0aENvbnRleHQgPSBjcmVhdGVDb250ZXh0KFtdKVxuY29uc3QgUGFyYW1zQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe30pXG5jb25zdCBSZXF1aXJlQ29tcG9uZW50Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQobnVsbClcbmNvbnN0IFJvdXRlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQobnVsbClcbmNvbnN0IHVzZVBhcmFtcyA9ICgpID0+IHVzZUNvbnRleHQoUGFyYW1zQ29udGV4dClcblxuY29uc3QgUm91dGUgPSBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIFJvdXRlIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZXhhY3Q6IGZhbHNlLFxuICAgIGZhbGxiYWNrOiBmYWxzZSxcbiAgICBpbmNsdWRlSW5QYXRoOiB0cnVlXG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgICBjb21wb25lbnQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY29tcG9uZW50UGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBleGFjdDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBmYWxsYmFjazogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBpbmNsdWRlSW5QYXRoOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIG9uTWF0Y2g6IFByb3BUeXBlcy5mdW5jLFxuICAgIHBhdGg6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5pbnN0YW5jZU9mKFJlZ0V4cCldKVxuICB9KVxuXG4gIG1hdGNoID0gbnVsbFxuICBuZXdQYXJhbXMgPSBudWxsXG4gIHBhdGhQYXJ0cyA9IG51bGxcblxuICBzZXR1cCgpIHtcbiAgICBjb25zdCB7dH0gPSB1c2VJMThuKHtuYW1lc3BhY2U6IFwianMuYXBpX21ha2VyLnJvdXRlci5yb3V0ZVwifSlcbiAgICBjb25zdCB7cGF0aH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge3BhdGhzTWF0Y2hlZCwgc3dpdGNoR3JvdXB9ID0gdXNlQ29udGV4dChDdXJyZW50U3dpdGNoQ29udGV4dClcbiAgICBjb25zdCBnaXZlblJvdXRlID0gdXNlQ29udGV4dChSb3V0ZUNvbnRleHQpXG4gICAgY29uc3Qge3BhdGhTaG93bn0gPSBzd2l0Y2hHcm91cC5zXG5cbiAgICB0aGlzLmRlYnVnID0gZmFsc2VcbiAgICB0aGlzLmxvZygoKSA9PiAoe2dpdmVuUm91dGV9KSlcbiAgICB0aGlzLnQgPSB0XG5cbiAgICB0aGlzLnJlcXVpcmVDb21wb25lbnQgPSB1c2VDb250ZXh0KFJlcXVpcmVDb21wb25lbnRDb250ZXh0KVxuICAgIHRoaXMuY3VycmVudFBhcmFtcyA9IHVzZUNvbnRleHQoUGFyYW1zQ29udGV4dClcbiAgICB0aGlzLmN1cnJlbnRQYXRoID0gdXNlQ29udGV4dChDdXJyZW50UGF0aENvbnRleHQpXG4gICAgdGhpcy5zd2l0Y2hHcm91cCA9IHN3aXRjaEdyb3VwXG4gICAgdGhpcy5yb3V0ZVBhcnRzID0gdXNlTWVtbygoKSA9PiBnaXZlblJvdXRlPy5zcGxpdChcIi9cIiksIFtwYXRoLCBnaXZlblJvdXRlXSlcbiAgICB0aGlzLnBhdGhQYXJ0cyA9IHVzZU1lbW8oKCkgPT4gcGF0aD8uc3BsaXQoXCIvXCIpLCBbcGF0aF0pXG5cbiAgICB0aGlzLm5ld1JvdXRlUGFydHMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICBpZiAoZ2l2ZW5Sb3V0ZSA9PSBcIlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gW11cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm91dGVQYXJ0c1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlUGFydHMuc2xpY2UodGhpcy5wYXRoUGFydHMubGVuZ3RoLCB0aGlzLnJvdXRlUGFydHMubGVuZ3RoKVxuICAgICAgfSxcbiAgICAgIFtnaXZlblJvdXRlXS5jb25jYXQodGhpcy5wYXRoUGFydHMpXG4gICAgKVxuXG4gICAgdGhpcy51c2VTdGF0ZXMoe0NvbXBvbmVudDogbnVsbCwgY29tcG9uZW50Tm90Rm91bmQ6IG51bGwsIG1hdGNoZXM6IGZhbHNlfSlcblxuICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkTWF0Y2hlcygpXG4gICAgfSwgW2dpdmVuUm91dGUsIHBhdGgsIHBhdGhzTWF0Y2hlZF0pXG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmhhc1N3aXRjaE1hdGNoKCkgJiYgIXRoaXMucy5Db21wb25lbnQgJiYgdGhpcy5zLm1hdGNoZXMpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25NYXRjaCkge1xuICAgICAgICAgIHRoaXMucHJvcHMub25NYXRjaCgpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMucHJvcHMuY2hpbGRyZW4gJiYgKHRoaXMucHJvcHMucGF0aCB8fCB0aGlzLnByb3BzLmNvbXBvbmVudCB8fCB0aGlzLnByb3BzLmNvbXBvbmVudFBhdGgpKSB7XG4gICAgICAgICAgdGhpcy5sb2FkQ29tcG9uZW50KClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIFtwYXRoLCBwYXRoU2hvd24sIHRoaXMucy5tYXRjaGVzXSlcbiAgfVxuXG4gIGhhc1N3aXRjaE1hdGNoID0gKCkgPT4gdGhpcy5zd2l0Y2hHcm91cC5zLnBhdGhTaG93biAmJiB0aGlzLnN3aXRjaEdyb3VwLnMucGF0aFNob3duID09IHRoaXMucGF0aElkKClcblxuICBwYXRoSWQoKSB7XG4gICAgY29uc3Qge2ZhbGxiYWNrfSA9IHRoaXMucFxuICAgIGNvbnN0IHtwYXRofSA9IHRoaXMucHJvcHNcbiAgICBsZXQgcGF0aElkXG5cbiAgICBpZiAoZmFsbGJhY2spIHtcbiAgICAgIHBhdGhJZCA9IFwiW0ZBTExCQUNLXVwiXG4gICAgfSBlbHNlIGlmICghcGF0aCkge1xuICAgICAgcGF0aElkID0gXCJbUEFUSC1FTVBUWV1cIlxuICAgIH0gZWxzZSB7XG4gICAgICBwYXRoSWQgPSBwYXRoXG4gICAgfVxuXG4gICAgcmV0dXJuIHBhdGhJZFxuICB9XG5cbiAgbG9hZE1hdGNoZXMoKSB7XG4gICAgY29uc3Qge25ld1JvdXRlUGFydHMsIHR9ID0gdGhpcy50dFxuICAgIGNvbnN0IHtjb21wb25lbnQsIHBhdGh9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHtleGFjdCwgaW5jbHVkZUluUGF0aCwgZmFsbGJhY2t9ID0gdGhpcy5wXG5cbiAgICBsZXQgbWF0Y2hlcyA9IHRydWVcbiAgICBjb25zdCBwYXJhbXMgPSB7fVxuICAgIGNvbnN0IGNvbXBvbmVudFBhdGhQYXJ0cyA9IFsuLi50aGlzLmN1cnJlbnRQYXRoXVxuXG4gICAgdGhpcy5sb2coKCkgPT4gW3RoaXMucHJvcHMucGF0aCwgXCJTdGFydCBnZW5lcmF0aW5nIGNvbXBvbmVudCBwYXRoc1wiLCBKU09OLnN0cmluZ2lmeShjb21wb25lbnRQYXRoUGFydHMpXSlcblxuICAgIGZvciAoY29uc3QgcGF0aFBhcnRJbmRleCBpbiB0aGlzLnBhdGhQYXJ0cykge1xuICAgICAgY29uc3QgcGF0aFBhcnQgPSB0aGlzLnBhdGhQYXJ0c1twYXRoUGFydEluZGV4XVxuICAgICAgY29uc3QgdHJhbnNsYXRlZFBhdGhQYXJ0ID0gdChgcm91dGVzLiR7cGF0aFBhcnR9YCwge2RlZmF1bHRWYWx1ZTogcGF0aFBhcnR9KVxuXG4gICAgICBpZiAoIShwYXRoUGFydEluZGV4IGluIHRoaXMucm91dGVQYXJ0cykpIHtcbiAgICAgICAgdGhpcy5sb2coKCkgPT4gYE5vIG1hdGNoIGZvcjogJHtwYXRoUGFydEluZGV4fWApXG4gICAgICAgIG1hdGNoZXMgPSBmYWxzZVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjb25zdCByb3V0ZVBhcnQgPSBkZWNvZGVVUklDb21wb25lbnQodGhpcy5yb3V0ZVBhcnRzW3BhdGhQYXJ0SW5kZXhdKVxuXG4gICAgICBpZiAocGF0aFBhcnQuc3RhcnRzV2l0aChcIjpcIikgJiYgcm91dGVQYXJ0KSB7XG4gICAgICAgIGNvbnN0IHBhcmFtTmFtZSA9IHBhdGhQYXJ0LnNsaWNlKDEsIHBhdGhQYXJ0Lmxlbmd0aClcblxuICAgICAgICBwYXJhbXNbcGFyYW1OYW1lXSA9IHJvdXRlUGFydFxuICAgICAgfSBlbHNlIGlmICh0cmFuc2xhdGVkUGF0aFBhcnQgIT0gcm91dGVQYXJ0KSB7XG4gICAgICAgIG1hdGNoZXMgPSBmYWxzZVxuICAgICAgICBicmVha1xuICAgICAgfSBlbHNlIGlmICghY29tcG9uZW50ICYmIGluY2x1ZGVJblBhdGgpIHtcbiAgICAgICAgY29tcG9uZW50UGF0aFBhcnRzLnB1c2gocGF0aFBhcnQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV4YWN0ICYmIG5ld1JvdXRlUGFydHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5sb2coKCkgPT4gW1wiRXhhY3QgYW5kIG1vcmUgcm91dGUgcGFydHNcIiwge25ld1JvdXRlUGFydHMsIHBhdGhQYXJ0czogdGhpcy5wYXRoUGFydHMsIHJvdXRlUGFydHM6IHRoaXMucm91dGVQYXJ0c31dKVxuICAgICAgbWF0Y2hlcyA9IGZhbHNlXG4gICAgfSBlbHNlIGlmIChtYXRjaGVzICYmIHBhdGgpIHtcbiAgICAgIG1hdGNoZXMgPSB0cnVlXG4gICAgfSBlbHNlIGlmICh0aGlzLnJvdXRlUGFydHMubGVuZ3RoID09IDApIHtcbiAgICAgIG1hdGNoZXMgPSB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hJZCA9IHRoaXMucGF0aElkKClcblxuICAgIGlmICghbWF0Y2hlcyAmJiBmYWxsYmFjaykge1xuICAgICAgbWF0Y2hlcyA9IHRydWVcbiAgICB9XG5cbiAgICB0aGlzLmxvZygoKSA9PiBbdGhpcy5wcm9wcy5wYXRoLCBcIkVuZCBnZW5lcmF0aW5nIGNvbXBvbmVudCBwYXRoc1wiLCBKU09OLnN0cmluZ2lmeShjb21wb25lbnRQYXRoUGFydHMpLCB7bWF0Y2hlc31dKVxuXG4gICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgIGlmIChjb21wb25lbnQgJiYgaW5jbHVkZUluUGF0aCkge1xuICAgICAgICBjb21wb25lbnRQYXRoUGFydHMucHVzaChjb21wb25lbnQpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld1BhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY3VycmVudFBhcmFtcywgcGFyYW1zKVxuXG4gICAgICB0aGlzLnNldEluc3RhbmNlKHtjb21wb25lbnRQYXRoUGFydHMsIG1hdGNoOiB7cGFyYW1zfSwgbmV3UGFyYW1zfSlcbiAgICAgIHRoaXMuc2V0U3RhdGUoe21hdGNoZXN9KVxuICAgICAgdGhpcy5zd2l0Y2hHcm91cD8uc2V0UGF0aE1hdGNoZWQobWF0Y2hJZCwgdHJ1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRJbnN0YW5jZSh7Y29tcG9uZW50UGF0aFBhcnRzOiBudWxsLCBtYXRjaDogbnVsbCwgbmV3UGFyYW1zOiBudWxsfSlcbiAgICAgIHRoaXMuc2V0U3RhdGUoe21hdGNoZXN9KVxuICAgICAgdGhpcy5zd2l0Y2hHcm91cD8uc2V0UGF0aE1hdGNoZWQobWF0Y2hJZCwgZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZENvbXBvbmVudCgpIHtcbiAgICBjb25zdCBhY3R1YWxDb21wb25lbnRQYXRoID0gdGhpcy5wcm9wcy5jb21wb25lbnRQYXRoIHx8IHRoaXMudHQuY29tcG9uZW50UGF0aFBhcnRzLmpvaW4oXCIvXCIpXG4gICAgbGV0IENvbXBvbmVudFxuXG4gICAgdGhpcy5sb2coKCkgPT4gW1wibG9hZENvbXBvbmVudFwiLCB7Y29tcG9uZW50UGF0aDogdGhpcy5wcm9wcy5jb21wb25lbnRQYXRoLCBjb21wb25lbnRQYXRoUGFydHM6IHRoaXMuY29tcG9uZW50UGF0aFBhcnRzLCBhY3R1YWxDb21wb25lbnRQYXRofV0pXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgY29tcG9uZW50SW1wb3J0ID0gYXdhaXQgdGhpcy50dC5yZXF1aXJlQ29tcG9uZW50KHtyb3V0ZURlZmluaXRpb246IHtjb21wb25lbnQ6IGFjdHVhbENvbXBvbmVudFBhdGh9fSlcblxuICAgICAgQ29tcG9uZW50ID0gY29tcG9uZW50SW1wb3J0LmRlZmF1bHRcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgQ291bGRuJ3QgZmluZCBjb21wb25lbnQ6ICR7YWN0dWFsQ29tcG9uZW50UGF0aH1gKVxuXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoe0NvbXBvbmVudCwgY29tcG9uZW50Tm90Rm91bmQ6ICFDb21wb25lbnR9KVxuICB9XG5cbiAgbG9nKGNhbGxiYWNrQXJncykge1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBsZXQgYXJncyA9IGNhbGxiYWNrQXJncygpXG5cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShhcmdzKSkgYXJncyA9IFthcmdzXVxuXG4gICAgICBjb25zb2xlLmxvZyguLi5hcmdzKVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7Y29tcG9uZW50UGF0aFBhcnRzLCBtYXRjaCwgbmV3UGFyYW1zLCBuZXdSb3V0ZVBhcnRzfSA9IHRoaXMudHRcbiAgICBjb25zdCB7Y2hpbGRyZW4sIGNvbXBvbmVudCwgcGF0aH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge0NvbXBvbmVudCwgY29tcG9uZW50Tm90Rm91bmQsIG1hdGNoZXN9ID0gdGhpcy5zXG5cbiAgICBpZiAoIW1hdGNoZXMgfHwgIXRoaXMuaGFzU3dpdGNoTWF0Y2goKSkge1xuICAgICAgLy8gUm91dGUgaXNuJ3QgbWF0Y2hpbmcgYW5kIHNob3VsZG4ndCBiZSByZW5kZXJlZCBhdCBhbGwuXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGlmICghQ29tcG9uZW50ICYmICFjaGlsZHJlbiAmJiAhY29tcG9uZW50Tm90Rm91bmQpIHtcbiAgICAgIC8vIFJvdXRlIGlzIG1hdGNoaW5nIGJ1dCBoYXNuJ3QgYmVlbiBsb2FkZWQgeWV0LlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICBMb2FkaW5nIHtjb21wb25lbnQgfHwgdGhpcy5wcm9wcy5jb21wb25lbnRQYXRoIHx8IGNvbXBvbmVudFBhdGhQYXJ0cy5qb2luKFwiL1wiKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKCFDb21wb25lbnQgJiYgIWNoaWxkcmVuICYmIGNvbXBvbmVudE5vdEZvdW5kKSB7XG4gICAgICAvLyBEb24ndCByZW5kZXIgYW55dGhpbmcgaWYgdGhlIGNvbXBvbmVudCBjb3VsZG4ndCBiZSBmb3VuZC5cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDdXJyZW50UGF0aENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbXBvbmVudFBhdGhQYXJ0c30+XG4gICAgICAgIDxSb3V0ZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25ld1JvdXRlUGFydHMuam9pbihcIi9cIil9PlxuICAgICAgICAgIDxQYXJhbXNDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtuZXdQYXJhbXN9PlxuICAgICAgICAgICAgPFN3aXRjaCBuYW1lPXtgcm91dGUtZ3JvdXAtJHtwYXRofWB9IHNpbmdsZT17ZmFsc2V9PlxuICAgICAgICAgICAgICB7Q29tcG9uZW50ICYmIDxDb21wb25lbnQgbWF0Y2g9e21hdGNofSAvPn1cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9Td2l0Y2g+XG4gICAgICAgICAgPC9QYXJhbXNDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICA8L1JvdXRlQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgIDwvQ3VycmVudFBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICAgIClcbiAgfVxufSkpXG5cbmV4cG9ydCB7UmVxdWlyZUNvbXBvbmVudENvbnRleHQsIFJvdXRlQ29udGV4dCwgU3dpdGNoLCB1c2VQYXJhbXN9XG5leHBvcnQgZGVmYXVsdCBSb3V0ZVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLFNBQVFDLGFBQWEsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLFFBQU8sT0FBTztBQUN4RCxPQUFPQyxJQUFJLE1BQU0sNEJBQTRCO0FBQzdDLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsU0FBUUMsY0FBYyxRQUFPLHVDQUF1QztBQUNwRSxPQUFPQyxNQUFNLElBQUdDLG9CQUFvQixRQUFPLFVBQVU7QUFDckQsT0FBT0MsT0FBTyxNQUFNLCtCQUErQjtBQUVuRCxNQUFNQyxrQkFBa0IsZ0JBQUdWLGFBQWEsQ0FBQyxFQUFFLENBQUM7QUFDNUMsTUFBTVcsYUFBYSxnQkFBR1gsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLE1BQU1ZLHVCQUF1QixnQkFBR1osYUFBYSxDQUFDLElBQUksQ0FBQztBQUNuRCxNQUFNYSxZQUFZLGdCQUFHYixhQUFhLENBQUMsSUFBSSxDQUFDO0FBQ3hDLE1BQU1jLFNBQVMsR0FBR0EsQ0FBQSxLQUFNYixVQUFVLENBQUNVLGFBQWEsQ0FBQztBQUVqRCxNQUFNSSxLQUFLLEdBQUdaLElBQUksQ0FBQ0csY0FBYyxDQUFDLE1BQU1TLEtBQUssU0FBU2hCLGFBQWEsQ0FBQztFQUNsRSxPQUFPaUIsWUFBWSxHQUFHO0lBQ3BCQyxLQUFLLEVBQUUsS0FBSztJQUNaQyxRQUFRLEVBQUUsS0FBSztJQUNmQyxhQUFhLEVBQUU7RUFDakIsQ0FBQztFQUVELE9BQU9DLFNBQVMsR0FBR2YsY0FBYyxDQUFDO0lBQ2hDZ0IsUUFBUSxFQUFFakIsU0FBUyxDQUFDa0IsSUFBSTtJQUN4QkMsU0FBUyxFQUFFbkIsU0FBUyxDQUFDb0IsTUFBTTtJQUMzQkMsYUFBYSxF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UUFBUTtNQUFFRSxTQUFTO01BQUVPO0lBQUksQ0FBQyxHQUFHLElBQUksQ0FBQ1UsS0FBSztJQUM5QyxNQUFNO01BQUNrQixTQUFTO01BQUVDLGlCQUFpQjtNQUFFQztJQUFPLENBQUMsR0FBRyxJQUFJLENBQUNmLENBQUM7SUFFdEQsSUFBSSxDQUFDZSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUNFLGNBQWMsQ0FBQyxDQUFDLEVBQUU7TUFDdEM7TUFDQSxPQUFPLElBQUk7SUFDYjtJQUVBLElBQUksQ0FBQ0osU0FBUyxJQUFJLENBQUNyQyxRQUFRLElBQUksQ0FBQ3NDLGlCQUFpQixFQUFFO01BQ2pEO01BQ0Esb0JBQ0V1QyxLQUFBLENBQUFDLGFBQUEsY0FBSyxVQUNLLEVBQUM1RSxTQUFTLElBQUksSUFBSSxDQUFDaUIsS0FBSyxDQUFDZixhQUFhLElBQUkyQyxrQkFBa0IsQ0FBQ21CLElBQUksQ0FBQyxHQUFHLENBQzFFLENBQUM7SUFFVjtJQUVBLElBQUksQ0FBQzdCLFNBQVMsSUFBSSxDQUFDckMsUUFBUSxJQUFJc0MsaUJBQWlCLEVBQUU7TUFDaEQ7TUFDQSxPQUFPLElBQUk7SUFDYjtJQUVBLG9CQUNFdUMsS0FBQSxDQUFBQyxhQUFBLENBQUN6RixrQkFBa0IsQ0FBQzBGLFFBQVE7TUFBQ0MsS0FBSyxFQUFFakM7SUFBbUIsZ0JBQ3JEOEIsS0FBQSxDQUFBQyxhQUFBLENBQUN0RixZQUFZLENBQUN1RixRQUFRO01BQUNDLEtBQUssRUFBRWhELGFBQWEsQ0FBQ2tDLElBQUksQ0FBQyxHQUFHO0lBQUUsZ0JBQ3BEVyxLQUFBLENBQUFDLGFBQUEsQ0FBQ3hGLGFBQWEsQ0FBQ3lGLFFBQVE7TUFBQ0MsS0FBSyxFQUFFbEU7SUFBVSxnQkFDdkMrRCxLQUFBLENBQUFDLGFBQUEsQ0FBQzVGLE1BQU07TUFBQytGLElBQUksRUFBRSxlQUFleEUsSUFBSSxFQUFHO01BQUN5RSxNQUFNLEVBQUU7SUFBTSxHQUNoRDdDLFNBQVMsaUJBQUl3QyxLQUFBLENBQUFDLGFBQUEsQ0FBQ3pDLFNBQVM7TUFBQ3hCLEtBQUssRUFBRUE7SUFBTSxDQUFFLENBQUMsRUFDeENiLFFBQ0ssQ0FDYyxDQUNILENBQ0ksQ0FBQztFQUVsQztBQUNGLENBQUMsQ0FBQyxDQUFDO0FBRUgsU0FBUVQsdUJBQXVCLEVBQUVDLFlBQVksRUFBRU4sTUFBTSxFQUFFTyxTQUFTO0FBQ2hFLGVBQWVDLEtBQUsiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
270
|
+
//# sourceMappingURL=route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.js","names":["BaseComponent","createContext","useContext","useMemo","memo","PropTypes","propTypesExact","shapeComponent","Switch","CurrentSwitchContext","useI18n","CurrentPathContext","ParamsContext","RequireComponentContext","RouteContext","useParams","Route","defaultProps","exact","fallback","includeInPath","propTypes","children","node","component","string","componentPath","bool","isRequired","onMatch","func","path","oneOfType","instanceOf","RegExp","match","newParams","pathParts","setup","t","namespace","props","pathsMatched","switchGroup","givenRoute","pathShown","s","debug","log","requireComponent","currentParams","currentPath","routeParts","split","newRouteParts","slice","length","concat","useStates","Component","componentNotFound","matches","loadMatches","hasSwitchMatch","loadComponent","pathId","p","tt","params","componentPathParts","JSON","stringify","pathPartIndex","pathPart","translatedPathPart","defaultValue","routePart","decodeURIComponent","startsWith","paramName","push","matchId","Object","assign","setInstance","setState","setPathMatched","actualComponentPath","join","componentImport","routeDefinition","default","error","console","callbackArgs","args","Array","isArray","render","React","createElement","Provider","value","name","single"],"sources":["../../src/router/route.jsx"],"sourcesContent":["import BaseComponent from \"../base-component\"\nimport {createContext, useContext, useMemo} from \"react\"\nimport memo from \"set-state-compare/src/memo\"\nimport PropTypes from \"prop-types\"\nimport propTypesExact from \"prop-types-exact\"\nimport {shapeComponent} from \"set-state-compare/src/shape-component\"\nimport Switch, {CurrentSwitchContext} from \"./switch\"\nimport useI18n from \"i18n-on-steroids/src/use-i18n\"\n\nconst CurrentPathContext = createContext([])\nconst ParamsContext = createContext({})\nconst RequireComponentContext = createContext(null)\nconst RouteContext = createContext(null)\nconst useParams = () => useContext(ParamsContext)\n\nconst Route = memo(shapeComponent(class Route extends BaseComponent {\n static defaultProps = {\n exact: false,\n fallback: false,\n includeInPath: true\n }\n\n static propTypes = propTypesExact({\n children: PropTypes.node,\n component: PropTypes.string,\n componentPath: PropTypes.string,\n exact: PropTypes.bool.isRequired,\n fallback: PropTypes.bool.isRequired,\n includeInPath: PropTypes.bool.isRequired,\n onMatch: PropTypes.func,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(RegExp)])\n })\n\n match = null\n newParams = null\n pathParts = null\n\n setup() {\n const {t} = useI18n({namespace: \"js.api_maker.router.route\"})\n const {path} = this.props\n const {pathsMatched, switchGroup} = useContext(CurrentSwitchContext)\n const givenRoute = useContext(RouteContext)\n const {pathShown} = switchGroup.s\n\n this.debug = false\n this.log(() => ({givenRoute}))\n this.t = t\n\n this.requireComponent = useContext(RequireComponentContext)\n this.currentParams = useContext(ParamsContext)\n this.currentPath = useContext(CurrentPathContext)\n this.switchGroup = switchGroup\n this.routeParts = useMemo(() => givenRoute?.split(\"/\"), [path, givenRoute])\n this.pathParts = useMemo(() => path?.split(\"/\"), [path])\n\n this.newRouteParts = useMemo(\n () => {\n if (!path) {\n if (givenRoute == \"\") {\n return []\n } else {\n return this.routeParts\n }\n }\n\n return this.routeParts.slice(this.pathParts.length, this.routeParts.length)\n },\n [givenRoute].concat(this.pathParts)\n )\n\n this.useStates({Component: null, componentNotFound: null, matches: false})\n\n useMemo(() => {\n this.loadMatches()\n }, [givenRoute, path, pathsMatched])\n\n useMemo(() => {\n if (this.hasSwitchMatch() && !this.s.Component && this.s.matches) {\n if (this.props.onMatch) {\n this.props.onMatch()\n }\n\n if (!this.props.children && (this.props.path || this.props.component || this.props.componentPath)) {\n this.loadComponent()\n }\n }\n }, [path, pathShown, this.s.matches])\n }\n\n hasSwitchMatch = () => this.switchGroup.s.pathShown && this.switchGroup.s.pathShown == this.pathId()\n\n pathId() {\n const {fallback} = this.p\n const {path} = this.props\n let pathId\n\n if (fallback) {\n pathId = \"[FALLBACK]\"\n } else if (!path) {\n pathId = \"[PATH-EMPTY]\"\n } else {\n pathId = path\n }\n\n return pathId\n }\n\n loadMatches() {\n const {newRouteParts, t} = this.tt\n const {component, path} = this.props\n const {exact, includeInPath, fallback} = this.p\n\n let matches = true\n const params = {}\n const componentPathParts = [...this.currentPath]\n\n this.log(() => [this.props.path, \"Start generating component paths\", JSON.stringify(componentPathParts)])\n\n for (const pathPartIndex in this.pathParts) {\n const pathPart = this.pathParts[pathPartIndex]\n const translatedPathPart = t(`routes.${pathPart}`, {defaultValue: pathPart})\n\n if (!(pathPartIndex in this.routeParts)) {\n this.log(() => `No match for: ${pathPartIndex}`)\n matches = false\n break\n }\n\n const routePart = decodeURIComponent(this.routeParts[pathPartIndex])\n\n if (pathPart.startsWith(\":\") && routePart) {\n const paramName = pathPart.slice(1, pathPart.length)\n\n params[paramName] = routePart\n } else if (translatedPathPart != routePart) {\n matches = false\n break\n } else if (!component && includeInPath) {\n componentPathParts.push(pathPart)\n }\n }\n\n if (exact && newRouteParts.length > 0) {\n this.log(() => [\"Exact and more route parts\", {newRouteParts, pathParts: this.pathParts, routeParts: this.routeParts}])\n matches = false\n } else if (matches && path) {\n matches = true\n } else if (this.routeParts.length == 0) {\n matches = true\n }\n\n const matchId = this.pathId()\n\n if (!matches && fallback) {\n matches = true\n }\n\n this.log(() => [this.props.path, \"End generating component paths\", JSON.stringify(componentPathParts), {matches}])\n\n if (matches) {\n if (component && includeInPath) {\n componentPathParts.push(component)\n }\n\n const newParams = Object.assign({}, this.currentParams, params)\n\n this.setInstance({componentPathParts, match: {params}, newParams})\n this.setState({matches})\n this.switchGroup?.setPathMatched(matchId, true)\n } else {\n this.setInstance({componentPathParts: null, match: null, newParams: null})\n this.setState({matches})\n this.switchGroup?.setPathMatched(matchId, false)\n }\n }\n\n async loadComponent() {\n const actualComponentPath = this.props.componentPath || this.tt.componentPathParts.join(\"/\")\n let Component\n\n this.log(() => [\"loadComponent\", {componentPath: this.props.componentPath, componentPathParts: this.componentPathParts, actualComponentPath}])\n\n try {\n const componentImport = await this.tt.requireComponent({routeDefinition: {component: actualComponentPath}})\n\n Component = componentImport.default\n } catch (error) {\n console.error(`Couldn't find component: ${actualComponentPath}`)\n\n throw error\n }\n\n this.setState({Component, componentNotFound: !Component})\n }\n\n log(callbackArgs) {\n if (this.debug) {\n let args = callbackArgs()\n\n if (!Array.isArray(args)) args = [args]\n\n console.log(...args)\n }\n }\n\n render() {\n const {componentPathParts, match, newParams, newRouteParts} = this.tt\n const {children, component, path} = this.props\n const {Component, componentNotFound, matches} = this.s\n\n if (!matches || !this.hasSwitchMatch()) {\n // Route isn't matching and shouldn't be rendered at all.\n return null\n }\n\n if (!Component && !children && !componentNotFound) {\n // Route is matching but hasn't been loaded yet.\n return (\n <div>\n Loading {component || this.props.componentPath || componentPathParts.join(\"/\")}\n </div>\n )\n }\n\n if (!Component && !children && componentNotFound) {\n // Don't render anything if the component couldn't be found.\n return null\n }\n\n return (\n <CurrentPathContext.Provider value={componentPathParts}>\n <RouteContext.Provider value={newRouteParts.join(\"/\")}>\n <ParamsContext.Provider value={newParams}>\n <Switch name={`route-group-${path}`} single={false}>\n {Component && <Component match={match} />}\n {children}\n </Switch>\n </ParamsContext.Provider>\n </RouteContext.Provider>\n </CurrentPathContext.Provider>\n )\n }\n}))\n\nexport {RequireComponentContext, RouteContext, Switch, useParams}\nexport default Route\n"],"mappings":"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","ignoreList":[]}
|
package/build/router/switch.js
CHANGED
|
@@ -69,4 +69,4 @@ const Switch = memo(shapeComponent(class Switch extends BaseComponent {
|
|
|
69
69
|
}));
|
|
70
70
|
export { CurrentSwitchContext };
|
|
71
71
|
export default Switch;
|
|
72
|
-
//# sourceMappingURL=
|
|
72
|
+
//# sourceMappingURL=switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.js","names":["BaseComponent","createContext","memo","PropTypes","propTypesExact","shapeComponent","CurrentSwitchContext","Switch","defaultProps","name","single","propTypes","children","node","string","bool","pathsMatchedKeys","setup","useStates","lastUpdate","Date","pathShown","undefined","pathsMatched","render","s","React","createElement","Provider","value","switchGroup","props","pathMatched","tt","isPathMatched","setPathMatched","path","matched","Error","includes","push","newPathsMatched","setState","Math","random","getTime"],"sources":["../../src/router/switch.jsx"],"sourcesContent":["import BaseComponent from \"../base-component\"\nimport {createContext} from \"react\"\nimport memo from \"set-state-compare/src/memo\"\nimport PropTypes from \"prop-types\"\nimport propTypesExact from \"prop-types-exact\"\nimport {shapeComponent} from \"set-state-compare/src/shape-component\"\n\nconst CurrentSwitchContext = createContext([])\n\nconst Switch = memo(shapeComponent(class Switch extends BaseComponent {\n static defaultProps = {\n name: \"[no name]\",\n single: true\n }\n\n static propTypes = propTypesExact({\n children: PropTypes.node,\n name: PropTypes.string,\n single: PropTypes.bool\n })\n\n pathsMatchedKeys = []\n\n setup() {\n this.useStates({\n lastUpdate: new Date(),\n pathShown: undefined,\n pathsMatched: {}\n })\n }\n\n render() {\n const {pathShown, pathsMatched} = this.s\n\n return (\n <CurrentSwitchContext.Provider value={{pathShown, pathsMatched, switchGroup: this}}>\n {this.props.children}\n </CurrentSwitchContext.Provider>\n )\n }\n\n pathShown(pathsMatched) {\n for (const pathMatched of this.tt.pathsMatchedKeys) {\n const isPathMatched = pathsMatched[pathMatched]\n\n if (isPathMatched) {\n return pathMatched\n }\n }\n }\n\n setPathMatched(path, matched) {\n const {pathsMatchedKeys} = this.tt\n const {pathsMatched} = this.s\n\n if (!path) throw new Error(\"No 'path' given\")\n if (pathsMatched[path] == matched) return\n\n if (!pathsMatchedKeys.includes(path)) {\n pathsMatchedKeys.push(path)\n }\n\n const newPathsMatched = {...this.s.pathsMatched}\n\n newPathsMatched[path] = matched\n\n this.setState({\n lastUpdate: Math.random() + new Date().getTime(),\n pathShown: this.pathShown(newPathsMatched),\n pathsMatched: newPathsMatched\n })\n }\n}))\n\nexport {CurrentSwitchContext}\nexport default Switch\n"],"mappings":"AAAA,OAAOA,aAAa,MAAM,mBAAmB;AAC7C,SAAQC,aAAa,QAAO,OAAO;AACnC,OAAOC,IAAI,MAAM,4BAA4B;AAC7C,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,SAAQC,cAAc,QAAO,uCAAuC;AAEpE,MAAMC,oBAAoB,gBAAGL,aAAa,CAAC,EAAE,CAAC;AAE9C,MAAMM,MAAM,GAAGL,IAAI,CAACG,cAAc,CAAC,MAAME,MAAM,SAASP,aAAa,CAAC;EACpE,OAAOQ,YAAY,GAAG;IACpBC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV,CAAC;EAED,OAAOC,SAAS,GAAGP,cAAc,CAAC;IAChCQ,QAAQ,EAAET,SAAS,CAACU,IAAI;IACxBJ,IAAI,EAAEN,SAAS,CAACW,MAAM;IACtBJ,MAAM,EAAEP,SAAS,CAACY;EACpB,CAAC,CAAC;EAEFC,gBAAgB,GAAG,EAAE;EAErBC,KAAKA,CAAA,EAAG;IACN,IAAI,CAACC,SAAS,CAAC;MACbC,UAAU,EAAE,IAAIC,IAAI,CAAC,CAAC;MACtBC,SAAS,EAAEC,SAAS;MACpBC,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC;EACJ;EAEAC,MAAMA,CAAA,EAAG;IACP,MAAM;MAACH,SAAS;MAAEE;IAAY,CAAC,GAAG,IAAI,CAACE,CAAC;IAExC,oBACEC,KAAA,CAAAC,aAAA,CAACrB,oBAAoB,CAACsB,QAAQ;MAACC,KAAK,EAAE;QAACR,SAAS;QAAEE,YAAY;QAAEO,WAAW,EAAE;MAAI;IAAE,GAChF,IAAI,CAACC,KAAK,CAACnB,QACiB,CAAC;EAEpC;EAEAS,SAASA,CAACE,YAAY,EAAE;IACtB,KAAK,MAAMS,WAAW,IAAI,IAAI,CAACC,EAAE,CAACjB,gBAAgB,EAAE;MAClD,MAAMkB,aAAa,GAAGX,YAAY,CAACS,WAAW,CAAC;MAE/C,IAAIE,aAAa,EAAE;QACjB,OAAOF,WAAW;MACpB;IACF;EACF;EAEAG,cAAcA,CAACC,IAAI,EAAEC,OAAO,EAAE;IAC5B,MAAM;MAACrB;IAAgB,CAAC,GAAG,IAAI,CAACiB,EAAE;IAClC,MAAM;MAACV;IAAY,CAAC,GAAG,IAAI,CAACE,CAAC;IAE7B,IAAI,CAACW,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,iBAAiB,CAAC;IAC7C,IAAIf,YAAY,CAACa,IAAI,CAAC,IAAIC,OAAO,EAAE;IAEnC,IAAI,CAACrB,gBAAgB,CAACuB,QAAQ,CAACH,IAAI,CAAC,EAAE;MACpCpB,gBAAgB,CAACwB,IAAI,CAACJ,IAAI,CAAC;IAC7B;IAEA,MAAMK,eAAe,GAAG;MAAC,GAAG,IAAI,CAAChB,CAAC,CAACF;IAAY,CAAC;IAEhDkB,eAAe,CAACL,IAAI,CAAC,GAAGC,OAAO;IAE/B,IAAI,CAACK,QAAQ,CAAC;MACZvB,UAAU,EAAEwB,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,IAAIxB,IAAI,CAAC,CAAC,CAACyB,OAAO,CAAC,CAAC;MAChDxB,SAAS,EAAE,IAAI,CAACA,SAAS,CAACoB,eAAe,CAAC;MAC1ClB,YAAY,EAAEkB;IAChB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC,CAAC;AAEH,SAAQnC,oBAAoB;AAC5B,eAAeC,MAAM","ignoreList":[]}
|
package/build/router.js
CHANGED
|
@@ -54,4 +54,4 @@ export default /*#__PURE__*/memo(shapeComponent(class ApiMakerRouter extends Bas
|
|
|
54
54
|
}));
|
|
55
55
|
}
|
|
56
56
|
}));
|
|
57
|
-
//# sourceMappingURL=
|
|
57
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","names":["BaseComponent","PropTypes","propTypesExact","React","memo","shapeComponent","Suspense","usePath","useRouter","ApiMakerRouter","propTypes","history","object","notFoundComponent","elementType","requireComponent","func","isRequired","routeDefinitions","routes","render","path","props","match","matchingRoute","NotFoundComponent","createElement","fallback","Component","routeDefinition","parsedRouteDefinition"],"sources":["../src/router.jsx"],"sourcesContent":["import BaseComponent from \"./base-component\"\nimport PropTypes from \"prop-types\"\nimport propTypesExact from \"prop-types-exact\"\nimport React, {memo} from \"react\"\nimport {shapeComponent} from \"set-state-compare/src/shape-component\"\nimport {Suspense} from \"react\"\nimport usePath from \"on-location-changed/src/use-path\"\nimport useRouter from \"./use-router\"\n\nexport default memo(shapeComponent(class ApiMakerRouter extends BaseComponent {\n static propTypes = propTypesExact({\n history: PropTypes.object,\n notFoundComponent: PropTypes.elementType,\n requireComponent: PropTypes.func.isRequired,\n routeDefinitions: PropTypes.object,\n routes: PropTypes.object\n })\n\n render() {\n const path = usePath()\n const {notFoundComponent, requireComponent, routeDefinitions, routes} = this.props\n const {match} = useRouter({path, routes, routeDefinitions})\n const {matchingRoute} = match\n\n if (!matchingRoute) {\n if (notFoundComponent) {\n const NotFoundComponent = notFoundComponent\n\n return (\n <Suspense fallback={<div />}>\n <NotFoundComponent match={match} />\n </Suspense>\n )\n } else {\n return null\n }\n }\n\n const Component = requireComponent({routeDefinition: matchingRoute.parsedRouteDefinition.routeDefinition})\n\n return (\n <Suspense fallback={<div />}>\n <Component match={match} />\n </Suspense>\n )\n }\n}))\n"],"mappings":"AAAA,OAAOA,aAAa,MAAM,kBAAkB;AAC5C,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,KAAK,IAAGC,IAAI,QAAO,OAAO;AACjC,SAAQC,cAAc,QAAO,uCAAuC;AACpE,SAAQC,QAAQ,QAAO,OAAO;AAC9B,OAAOC,OAAO,MAAM,kCAAkC;AACtD,OAAOC,SAAS,MAAM,cAAc;AAEpC,4BAAeJ,IAAI,CAACC,cAAc,CAAC,MAAMI,cAAc,SAAST,aAAa,CAAC;EAC5E,OAAOU,SAAS,GAAGR,cAAc,CAAC;IAChCS,OAAO,EAAEV,SAAS,CAACW,MAAM;IACzBC,iBAAiB,EAAEZ,SAAS,CAACa,WAAW;IACxCC,gBAAgB,EAAEd,SAAS,CAACe,IAAI,CAACC,UAAU;IAC3CC,gBAAgB,EAAEjB,SAAS,CAACW,MAAM;IAClCO,MAAM,EAAElB,SAAS,CAACW;EACpB,CAAC,CAAC;EAEFQ,MAAMA,CAAA,EAAG;IACP,MAAMC,IAAI,GAAGd,OAAO,CAAC,CAAC;IACtB,MAAM;MAACM,iBAAiB;MAAEE,gBAAgB;MAAEG,gBAAgB;MAAEC;IAAM,CAAC,GAAG,IAAI,CAACG,KAAK;IAClF,MAAM;MAACC;IAAK,CAAC,GAAGf,SAAS,CAAC;MAACa,IAAI;MAAEF,MAAM;MAAED;IAAgB,CAAC,CAAC;IAC3D,MAAM;MAACM;IAAa,CAAC,GAAGD,KAAK;IAE7B,IAAI,CAACC,aAAa,EAAE;MAClB,IAAIX,iBAAiB,EAAE;QACrB,MAAMY,iBAAiB,GAAGZ,iBAAiB;QAE3C,oBACEV,KAAA,CAAAuB,aAAA,CAACpB,QAAQ;UAACqB,QAAQ,eAAExB,KAAA,CAAAuB,aAAA,YAAM;QAAE,gBAC1BvB,KAAA,CAAAuB,aAAA,CAACD,iBAAiB;UAACF,KAAK,EAAEA;QAAM,CAAE,CAC1B,CAAC;MAEf,CAAC,MAAM;QACL,OAAO,IAAI;MACb;IACF;IAEA,MAAMK,SAAS,GAAGb,gBAAgB,CAAC;MAACc,eAAe,EAAEL,aAAa,CAACM,qBAAqB,CAACD;IAAe,CAAC,CAAC;IAE1G,oBACE1B,KAAA,CAAAuB,aAAA,CAACpB,QAAQ;MAACqB,QAAQ,eAAExB,KAAA,CAAAuB,aAAA,YAAM;IAAE,gBAC1BvB,KAAA,CAAAuB,aAAA,CAACE,SAAS;MAACL,KAAK,EAAEA;IAAM,CAAE,CAClB,CAAC;EAEf;AACF,CAAC,CAAC,CAAC","ignoreList":[]}
|