@sealcode/sealgen 0.8.43 → 0.8.44
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/.eslintrc.js +1 -1
- package/.mocharc.js +10 -0
- package/.nyc_output/00b15432-2e8d-4b16-9dd6-7e23314363c9.json +1 -0
- package/.nyc_output/0190dc00-d309-48d0-a5db-e9484e3c7334.json +1 -0
- package/.nyc_output/04bfea78-9274-4d35-b7e4-d0bf42636911.json +1 -0
- package/.nyc_output/0d4efe84-14e0-4bf0-bf22-b95472fe2be4.json +1 -0
- package/.nyc_output/1faea508-9cb4-46f4-b7ad-94a816e1ee7d.json +1 -0
- package/.nyc_output/2b2df469-dc31-48c9-ab34-68a74266e2c2.json +1 -0
- package/.nyc_output/32b5e63b-c8f8-4d9d-a09b-d97656c0e3f6.json +1 -0
- package/.nyc_output/442ce939-4f43-496b-a8a9-2f1fb9cfa619.json +1 -0
- package/.nyc_output/4573bb03-90d4-4408-ba15-b6835c618b33.json +1 -0
- package/.nyc_output/468fbd9c-6a27-4e33-8423-dbaec01e62a9.json +1 -0
- package/.nyc_output/51894388-b88d-4f0b-8d5b-4a1dd71cf668.json +1 -0
- package/.nyc_output/56263b22-3ed5-4ce2-9bbb-f2c9575cdeee.json +1 -0
- package/.nyc_output/6934a9dd-6431-48aa-93f1-4eeef0095773.json +1 -0
- package/.nyc_output/70979008-f285-481b-bb09-ca48a1376f81.json +1 -0
- package/.nyc_output/817c9485-a0ef-486d-8dee-906456fe77fb.json +1 -0
- package/.nyc_output/9f725153-f783-4948-81d3-c4cc792738bf.json +1 -0
- package/.nyc_output/cd4d852c-f8fc-4cb1-807b-7d053a0ef8fc.json +1 -0
- package/.nyc_output/ec3011f0-8180-492e-8d85-4d92484ccb44.json +1 -0
- package/.nyc_output/f78b831a-65ca-497d-9f9e-001a3efa6f54.json +1 -0
- package/.nyc_output/processinfo/00b15432-2e8d-4b16-9dd6-7e23314363c9.json +1 -0
- package/.nyc_output/processinfo/0190dc00-d309-48d0-a5db-e9484e3c7334.json +1 -0
- package/.nyc_output/processinfo/04bfea78-9274-4d35-b7e4-d0bf42636911.json +1 -0
- package/.nyc_output/processinfo/0d4efe84-14e0-4bf0-bf22-b95472fe2be4.json +1 -0
- package/.nyc_output/processinfo/1faea508-9cb4-46f4-b7ad-94a816e1ee7d.json +1 -0
- package/.nyc_output/processinfo/2b2df469-dc31-48c9-ab34-68a74266e2c2.json +1 -0
- package/.nyc_output/processinfo/32b5e63b-c8f8-4d9d-a09b-d97656c0e3f6.json +1 -0
- package/.nyc_output/processinfo/442ce939-4f43-496b-a8a9-2f1fb9cfa619.json +1 -0
- package/.nyc_output/processinfo/4573bb03-90d4-4408-ba15-b6835c618b33.json +1 -0
- package/.nyc_output/processinfo/468fbd9c-6a27-4e33-8423-dbaec01e62a9.json +1 -0
- package/.nyc_output/processinfo/51894388-b88d-4f0b-8d5b-4a1dd71cf668.json +1 -0
- package/.nyc_output/processinfo/56263b22-3ed5-4ce2-9bbb-f2c9575cdeee.json +1 -0
- package/.nyc_output/processinfo/6934a9dd-6431-48aa-93f1-4eeef0095773.json +1 -0
- package/.nyc_output/processinfo/70979008-f285-481b-bb09-ca48a1376f81.json +1 -0
- package/.nyc_output/processinfo/817c9485-a0ef-486d-8dee-906456fe77fb.json +1 -0
- package/.nyc_output/processinfo/9f725153-f783-4948-81d3-c4cc792738bf.json +1 -0
- package/.nyc_output/processinfo/cd4d852c-f8fc-4cb1-807b-7d053a0ef8fc.json +1 -0
- package/.nyc_output/processinfo/ec3011f0-8180-492e-8d85-4d92484ccb44.json +1 -0
- package/.nyc_output/processinfo/f78b831a-65ca-497d-9f9e-001a3efa6f54.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/.nycrc +6 -0
- package/.prettierrc +20 -13
- package/.xunit +45 -1
- package/@types/add-route.d.ts +3 -1
- package/@types/add-route.test.d.ts +1 -0
- package/@types/build.d.ts +3 -1
- package/@types/example.test.d.ts +0 -0
- package/@types/forms/fields/boolean.test.d.ts +1 -0
- package/@types/forms/fields/email.test.d.ts +1 -0
- package/@types/forms/fields/enum-multiple.test.d.ts +1 -0
- package/@types/forms/fields/enum.test.d.ts +1 -0
- package/@types/forms/fields/number.test.d.ts +1 -0
- package/@types/forms/fields/pick-from-list.test.d.ts +1 -0
- package/@types/forms/fields/regexp.test.d.ts +1 -0
- package/@types/forms/form.test.d.ts +6 -0
- package/@types/forms/multiform.test.d.ts +1 -0
- package/@types/mount.d.ts +1 -1
- package/@types/page/mountable-with-fields.d.ts +1 -1
- package/@types/test_utils/locator_is_visible.d.ts +2 -0
- package/@types/utils/assert-throws.d.ts +1 -0
- package/@types/utils/browser-creator.d.ts +1 -0
- package/@types/utils/utils.d.ts +1 -0
- package/coverage/clover.xml +2208 -47
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +79 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +231 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +170 -0
- package/coverage/lcov-report/src/add-collection.ts.html +173 -0
- package/coverage/lcov-report/src/add-route.test.ts.html +254 -0
- package/coverage/lcov-report/src/add-route.ts.html +338 -0
- package/coverage/lcov-report/src/build.ts.html +359 -0
- package/coverage/lcov-report/src/cli.ts.html +188 -0
- package/coverage/lcov-report/src/components/components.ts.html +86 -0
- package/coverage/lcov-report/src/components/index.html +141 -0
- package/coverage/lcov-report/src/components/tabs.ts.html +365 -0
- package/coverage/lcov-report/src/components/toggle-modal.ts.html +236 -0
- package/coverage/lcov-report/src/example.test.ts.html +89 -0
- package/coverage/lcov-report/src/find-scss-includes.ts.html +176 -0
- package/coverage/lcov-report/src/forms/controls/array.ts.html +758 -0
- package/coverage/lcov-report/src/forms/controls/autocomplete.ts.html +179 -0
- package/coverage/lcov-report/src/forms/controls/big-radio-group.ts.html +224 -0
- package/coverage/lcov-report/src/forms/controls/checkbox-group.ts.html +293 -0
- package/coverage/lcov-report/src/forms/controls/checkbox.ts.html +182 -0
- package/coverage/lcov-report/src/forms/controls/checkboxed-list-input.ts.html +230 -0
- package/coverage/lcov-report/src/forms/controls/collapsible-checkbox-group.ts.html +164 -0
- package/coverage/lcov-report/src/forms/controls/collapsible-field-group.ts.html +362 -0
- package/coverage/lcov-report/src/forms/controls/controls.ts.html +170 -0
- package/coverage/lcov-report/src/forms/controls/derived-frame.ts.html +353 -0
- package/coverage/lcov-report/src/forms/controls/derived.ts.html +404 -0
- package/coverage/lcov-report/src/forms/controls/dropdown.ts.html +341 -0
- package/coverage/lcov-report/src/forms/controls/editable-collection-subset.ts.html +371 -0
- package/coverage/lcov-report/src/forms/controls/field-group.ts.html +287 -0
- package/coverage/lcov-report/src/forms/controls/file.ts.html +221 -0
- package/coverage/lcov-report/src/forms/controls/form-control.ts.html +152 -0
- package/coverage/lcov-report/src/forms/controls/form-field-control.ts.html +146 -0
- package/coverage/lcov-report/src/forms/controls/form-header.ts.html +137 -0
- package/coverage/lcov-report/src/forms/controls/form-paragraph.ts.html +113 -0
- package/coverage/lcov-report/src/forms/controls/frame.ts.html +158 -0
- package/coverage/lcov-report/src/forms/controls/hidden-input.ts.html +146 -0
- package/coverage/lcov-report/src/forms/controls/html.ts.html +194 -0
- package/coverage/lcov-report/src/forms/controls/index.html +561 -0
- package/coverage/lcov-report/src/forms/controls/multiple-files.ts.html +848 -0
- package/coverage/lcov-report/src/forms/controls/multiple-photos.ts.html +212 -0
- package/coverage/lcov-report/src/forms/controls/number.ts.html +194 -0
- package/coverage/lcov-report/src/forms/controls/photo.ts.html +302 -0
- package/coverage/lcov-report/src/forms/controls/radio.ts.html +209 -0
- package/coverage/lcov-report/src/forms/controls/reverse-single-reference.ts.html +230 -0
- package/coverage/lcov-report/src/forms/controls/simple-input.ts.html +524 -0
- package/coverage/lcov-report/src/forms/controls/textarea.ts.html +260 -0
- package/coverage/lcov-report/src/forms/controls/tickable.ts.html +461 -0
- package/coverage/lcov-report/src/forms/fields/boolean.test.ts.html +188 -0
- package/coverage/lcov-report/src/forms/fields/boolean.ts.html +269 -0
- package/coverage/lcov-report/src/forms/fields/checkboxed-list.ts.html +278 -0
- package/coverage/lcov-report/src/forms/fields/collection-field.ts.html +266 -0
- package/coverage/lcov-report/src/forms/fields/email.test.ts.html +152 -0
- package/coverage/lcov-report/src/forms/fields/email.ts.html +140 -0
- package/coverage/lcov-report/src/forms/fields/enum-multiple.test.ts.html +173 -0
- package/coverage/lcov-report/src/forms/fields/enum-multiple.ts.html +266 -0
- package/coverage/lcov-report/src/forms/fields/enum.test.ts.html +155 -0
- package/coverage/lcov-report/src/forms/fields/enum.ts.html +248 -0
- package/coverage/lcov-report/src/forms/fields/existing-sealious-value.ts.html +146 -0
- package/coverage/lcov-report/src/forms/fields/field.ts.html +596 -0
- package/coverage/lcov-report/src/forms/fields/file.ts.html +347 -0
- package/coverage/lcov-report/src/forms/fields/index.html +456 -0
- package/coverage/lcov-report/src/forms/fields/multiple-files.ts.html +140 -0
- package/coverage/lcov-report/src/forms/fields/number.test.ts.html +182 -0
- package/coverage/lcov-report/src/forms/fields/number.ts.html +290 -0
- package/coverage/lcov-report/src/forms/fields/pick-from-list.test.ts.html +137 -0
- package/coverage/lcov-report/src/forms/fields/pick-from-list.ts.html +236 -0
- package/coverage/lcov-report/src/forms/fields/proxy-field.ts.html +152 -0
- package/coverage/lcov-report/src/forms/fields/regexp.test.ts.html +155 -0
- package/coverage/lcov-report/src/forms/fields/regexp.ts.html +239 -0
- package/coverage/lcov-report/src/forms/fields/reverse-single-reference.ts.html +140 -0
- package/coverage/lcov-report/src/forms/fields/simple-form-field.ts.html +170 -0
- package/coverage/lcov-report/src/forms/fields/structured-array.ts.html +161 -0
- package/coverage/lcov-report/src/forms/form.test.ts.html +1133 -0
- package/coverage/lcov-report/src/forms/form.ts.html +962 -0
- package/coverage/lcov-report/src/forms/index.html +156 -0
- package/coverage/lcov-report/src/forms/multiform.test.ts.html +1700 -0
- package/coverage/lcov-report/src/forms/multiform.ts.html +788 -0
- package/coverage/lcov-report/src/generate-collections.ts.html +311 -0
- package/coverage/lcov-report/src/generate-routes.ts.html +440 -0
- package/coverage/lcov-report/src/index.html +321 -0
- package/coverage/lcov-report/src/index.ts.html +152 -0
- package/coverage/lcov-report/src/make-env.ts.html +125 -0
- package/coverage/lcov-report/src/make-hidden-inputs.ts.html +152 -0
- package/coverage/lcov-report/src/mount.ts.html +335 -0
- package/coverage/lcov-report/src/page/access-control.ts.html +134 -0
- package/coverage/lcov-report/src/page/index.html +186 -0
- package/coverage/lcov-report/src/page/list.ts.html +800 -0
- package/coverage/lcov-report/src/page/mountable-with-fields.ts.html +554 -0
- package/coverage/lcov-report/src/page/mountable.ts.html +119 -0
- package/coverage/lcov-report/src/page/page.ts.html +218 -0
- package/coverage/lcov-report/src/page/props-parser.ts.html +194 -0
- package/coverage/lcov-report/src/run.ts.html +80 -0
- package/coverage/lcov-report/src/sanitize.ts.html +107 -0
- package/coverage/lcov-report/src/templates/collection.ts.html +113 -0
- package/coverage/lcov-report/src/templates/form.ts.html +260 -0
- package/coverage/lcov-report/src/templates/index.html +216 -0
- package/coverage/lcov-report/src/templates/list.ts.html +305 -0
- package/coverage/lcov-report/src/templates/multiform.ts.html +254 -0
- package/coverage/lcov-report/src/templates/page.ts.html +155 -0
- package/coverage/lcov-report/src/templates/post.ts.html +143 -0
- package/coverage/lcov-report/src/templates/redirect.ts.html +146 -0
- package/coverage/lcov-report/src/templates/route-test.ts.html +161 -0
- package/coverage/lcov-report/src/test_utils/index.html +111 -0
- package/coverage/lcov-report/src/test_utils/locator_is_visible.ts.html +131 -0
- package/coverage/lcov-report/src/utils/assert-throws.ts.html +134 -0
- package/coverage/lcov-report/src/utils/browser-creator.js.html +110 -0
- package/coverage/lcov-report/src/utils/escape-url-params.ts.html +122 -0
- package/coverage/lcov-report/src/utils/exec.ts.html +170 -0
- package/coverage/lcov-report/src/utils/format-external-url.ts.html +119 -0
- package/coverage/lcov-report/src/utils/import-path.ts.html +155 -0
- package/coverage/lcov-report/src/utils/index.html +366 -0
- package/coverage/lcov-report/src/utils/input-wrapper.ts.html +143 -0
- package/coverage/lcov-report/src/utils/list-collections.ts.html +128 -0
- package/coverage/lcov-report/src/utils/make-slug.ts.html +95 -0
- package/coverage/lcov-report/src/utils/natural-numbers.ts.html +95 -0
- package/coverage/lcov-report/src/utils/prettier.ts.html +119 -0
- package/coverage/lcov-report/src/utils/question.ts.html +149 -0
- package/coverage/lcov-report/src/utils/render-attributes.ts.html +131 -0
- package/coverage/lcov-report/src/utils/sleep.ts.html +89 -0
- package/coverage/lcov-report/src/utils/translate.ts.html +119 -0
- package/coverage/lcov-report/src/utils/url-with-new-params.ts.html +107 -0
- package/coverage/lcov-report/src/utils/utils.ts.html +122 -0
- package/coverage/lcov-report/src/utils/walk.ts.html +140 -0
- package/coverage/lcov.info +4697 -0
- package/lib/add-route.js +3 -3
- package/lib/add-route.js.map +1 -1
- package/lib/add-route.test.js +55 -0
- package/lib/add-route.test.js.map +1 -0
- package/lib/build.js +3 -2
- package/lib/build.js.map +1 -1
- package/lib/cli.js +1 -1
- package/lib/cli.js.map +1 -1
- package/lib/example.test.js +4 -0
- package/lib/example.test.js.map +1 -0
- package/lib/forms/fields/boolean.test.js +37 -0
- package/lib/forms/fields/boolean.test.js.map +1 -0
- package/lib/forms/fields/email.test.js +25 -0
- package/lib/forms/fields/email.test.js.map +1 -0
- package/lib/forms/fields/enum-multiple.test.js +32 -0
- package/lib/forms/fields/enum-multiple.test.js.map +1 -0
- package/lib/forms/fields/enum.test.js +26 -0
- package/lib/forms/fields/enum.test.js.map +1 -0
- package/lib/forms/fields/number.js +0 -1
- package/lib/forms/fields/number.js.map +1 -1
- package/lib/forms/fields/number.test.js +35 -0
- package/lib/forms/fields/number.test.js.map +1 -0
- package/lib/forms/fields/pick-from-list.test.js +22 -0
- package/lib/forms/fields/pick-from-list.test.js.map +1 -0
- package/lib/forms/fields/regexp.test.js +26 -0
- package/lib/forms/fields/regexp.test.js.map +1 -0
- package/lib/forms/form.test.js +275 -0
- package/lib/forms/form.test.js.map +1 -0
- package/lib/forms/multiform.js +11 -2
- package/lib/forms/multiform.js.map +1 -1
- package/lib/forms/multiform.test.js +431 -0
- package/lib/forms/multiform.test.js.map +1 -0
- package/lib/mount.js +37 -2
- package/lib/mount.js.map +1 -1
- package/lib/test_utils/locator_is_visible.js +15 -0
- package/lib/test_utils/locator_is_visible.js.map +1 -0
- package/lib/utils/assert-throws.js +24 -0
- package/lib/utils/assert-throws.js.map +1 -0
- package/lib/utils/browser-creator.js +14 -0
- package/lib/utils/browser-creator.js.map +1 -0
- package/lib/utils/exec.js.map +1 -1
- package/lib/utils/question.js.map +1 -1
- package/lib/utils/utils.js +3 -1
- package/lib/utils/utils.js.map +1 -1
- package/mocha_root_hooks.js +6 -0
- package/package.json +16 -8
- package/src/add-route.test.ts +58 -0
- package/src/add-route.ts +6 -5
- package/src/build.ts +6 -3
- package/src/cli.ts +2 -2
- package/src/forms/fields/boolean.test.ts +36 -0
- package/src/forms/fields/email.test.ts +24 -0
- package/src/forms/fields/enum-multiple.test.ts +31 -0
- package/src/forms/fields/enum.test.ts +25 -0
- package/src/forms/fields/number.test.ts +34 -0
- package/src/forms/fields/number.ts +0 -1
- package/src/forms/fields/pick-from-list.test.ts +19 -0
- package/src/forms/fields/regexp.test.ts +25 -0
- package/src/forms/form.test.ts +351 -0
- package/src/forms/multiform.test.ts +540 -0
- package/src/forms/multiform.ts +12 -2
- package/src/mount.ts +42 -8
- package/src/page/mountable-with-fields.ts +1 -1
- package/src/test_utils/locator_is_visible.ts +17 -0
- package/src/utils/assert-throws.ts +18 -0
- package/src/utils/browser-creator.js +10 -0
- package/src/utils/exec.ts +8 -2
- package/src/utils/question.ts +4 -1
- package/src/utils/utils.ts +1 -0
- package/tsconfig.json +2 -2
- package/.nyc_output/1c5dff80-7861-427a-b1bb-d0686211f098.json +0 -1
- package/.nyc_output/a38a0d08-1f1f-4973-b5e2-efc434c1593d.json +0 -1
- package/.nyc_output/processinfo/1c5dff80-7861-427a-b1bb-d0686211f098.json +0 -1
- package/.nyc_output/processinfo/a38a0d08-1f1f-4973-b5e2-efc434c1593d.json +0 -1
- package/src/tests/manual/multiform.ts +0 -112
- package/test.js +0 -68
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"/home/kuba/projects/sealcode/sealgen/src/add-route.test.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/add-route.test.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":13},"end":{"line":6,"column":26}},"4":{"start":{"line":7,"column":24},"end":{"line":7,"column":48}},"5":{"start":{"line":8,"column":15},"end":{"line":8,"column":30}},"6":{"start":{"line":9,"column":16},"end":{"line":9,"column":49}},"7":{"start":{"line":10,"column":20},"end":{"line":10,"column":57}},"8":{"start":{"line":11,"column":19},"end":{"line":11,"column":55}},"9":{"start":{"line":12,"column":18},"end":{"line":12,"column":56}},"10":{"start":{"line":13,"column":0},"end":{"line":54,"column":3}},"11":{"start":{"line":14,"column":19},"end":{"line":14,"column":20}},"12":{"start":{"line":15,"column":21},"end":{"line":15,"column":44}},"13":{"start":{"line":16,"column":27},"end":{"line":16,"column":47}},"14":{"start":{"line":17,"column":4},"end":{"line":24,"column":7}},"15":{"start":{"line":18,"column":8},"end":{"line":19,"column":51}},"16":{"start":{"line":19,"column":12},"end":{"line":19,"column":51}},"17":{"start":{"line":20,"column":8},"end":{"line":23,"column":11}},"18":{"start":{"line":25,"column":4},"end":{"line":53,"column":7}},"19":{"start":{"line":26,"column":8},"end":{"line":26,"column":29}},"20":{"start":{"line":27,"column":8},"end":{"line":27,"column":53}},"21":{"start":{"line":28,"column":8},"end":{"line":28,"column":177}},"22":{"start":{"line":29,"column":8},"end":{"line":29,"column":64}},"23":{"start":{"line":30,"column":8},"end":{"line":30,"column":141}},"24":{"start":{"line":31,"column":8},"end":{"line":31,"column":63}},"25":{"start":{"line":32,"column":8},"end":{"line":32,"column":126}},"26":{"start":{"line":33,"column":8},"end":{"line":33,"column":113}},"27":{"start":{"line":34,"column":21},"end":{"line":34,"column":47}},"28":{"start":{"line":35,"column":8},"end":{"line":35,"column":100}},"29":{"start":{"line":36,"column":8},"end":{"line":36,"column":80}},"30":{"start":{"line":37,"column":20},"end":{"line":37,"column":76}},"31":{"start":{"line":38,"column":24},"end":{"line":40,"column":10}},"32":{"start":{"line":41,"column":8},"end":{"line":42,"column":52}},"33":{"start":{"line":42,"column":12},"end":{"line":42,"column":52}},"34":{"start":{"line":43,"column":8},"end":{"line":43,"column":33}},"35":{"start":{"line":44,"column":8},"end":{"line":49,"column":11}},"36":{"start":{"line":50,"column":20},"end":{"line":50,"column":77}},"37":{"start":{"line":51,"column":8},"end":{"line":52,"column":87}},"38":{"start":{"line":52,"column":12},"end":{"line":52,"column":87}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":27},"end":{"line":13,"column":28}},"loc":{"start":{"line":13,"column":33},"end":{"line":54,"column":1}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":17,"column":14},"end":{"line":17,"column":15}},"loc":{"start":{"line":17,"column":32},"end":{"line":24,"column":5}},"line":17},"3":{"name":"(anonymous_3)","decl":{"start":{"line":25,"column":39},"end":{"line":25,"column":40}},"loc":{"start":{"line":25,"column":57},"end":{"line":53,"column":5}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":18,"column":8},"end":{"line":19,"column":51}},"type":"if","locations":[{"start":{"line":18,"column":8},"end":{"line":19,"column":51}},{"start":{"line":18,"column":8},"end":{"line":19,"column":51}}],"line":18},"4":{"loc":{"start":{"line":41,"column":8},"end":{"line":42,"column":52}},"type":"if","locations":[{"start":{"line":41,"column":8},"end":{"line":42,"column":52}},{"start":{"line":41,"column":8},"end":{"line":42,"column":52}}],"line":41},"5":{"loc":{"start":{"line":51,"column":8},"end":{"line":52,"column":87}},"type":"if","locations":[{"start":{"line":51,"column":8},"end":{"line":52,"column":87}},{"start":{"line":51,"column":8},"end":{"line":52,"column":87}}],"line":51}},"s":{"0":1,"1":3,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":0,"34":1,"35":1,"36":1,"37":1,"38":0},"f":{"0":3,"1":1,"2":1,"3":1},"b":{"0":[1,1,1],"1":[0,3],"2":[3,3],"3":[1,0],"4":[0,1],"5":[0,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/add-route.test.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/add-route.test.ts"],"names":[],"mappings":";;;;;AAAA,2BAAoC;AACpC,iDAA4C;AAC5C,+BAAiC;AACjC,kDAA0B;AAC1B,0DAAiC;AACjC,wDAA+B;AAE/B,MAAM,SAAS,GAAG,gBAAS,CAAC,oBAAI,CAAC,CAAC;AAElC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC/B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,QAAQ,GAAG,uBAAuB,CAAC;IACzC,MAAM,cAAc,GAAG,oBAAoB,CAAC;IAC5C,SAAS,CAAC,KAAK;QACd,IAAI,QAAQ,IAAI,CAAC;YAAE,MAAM,SAAS,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;QAC1D,MAAM,OAAO,CAAC,GAAG,CAAC;YACjB,aAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACjD,SAAS,CAAC,gBAAgB,cAAc,EAAE,CAAC;SAC3C,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK;QACvC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,SAAS,CACd,kEAAkE,QAAQ,UAAU,QAAQ,2DAA2D,CACvJ,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,MAAM,SAAS,CACd,MAAM,QAAQ,qGAAqG,CACnH,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,MAAM,SAAS,CACd,MAAM,QAAQ,sFAAsF,CACpG,CAAC;QACF,OAAO,CAAC,GAAG,CACV,2FAA2F,CAC3F,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,kBAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,CAAC,iBAAiB,IAAI,iBAAiB,cAAc,sBAAsB,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrE,IAAI,SAAS,GAAG,qBAAK,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,qBAAqB,CAAC,EAAE;YACjE,GAAG;SACH,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,GAAG,IAAI,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACxE,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC;QACzB,MAAM,mBAAQ,CAAC;YACd,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI;SACb,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5D,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;YACpB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { promises as fs } from \"fs\";\nimport { exec, spawn } from \"child_process\";\nimport { promisify } from \"util\";\nimport axios from \"axios\";\nimport waitPort from \"wait-port\";\nimport getPort from \"get-port\";\n\nconst execAsync = promisify(exec);\n\ndescribe(\"add route test\", () => {\n\tlet node_pid = 0;\n\tconst app_path = \"/tmp/sealious-minimal\";\n\tconst container_name = \"sealgen-test-mongo\";\n\tafterEach(async function () {\n\t\tif (node_pid != 0) await execAsync(`kill -9 ${node_pid}`);\n\t\tawait Promise.all([\n\t\t\tfs.rm(app_path, { recursive: true, force: true }),\n\t\t\texecAsync(`docker rm -f ${container_name}`),\n\t\t]);\n\t});\n\n\tit(\"creates minimal sealious app\", async function () {\n\t\tthis.timeout(250000);\n\t\tconsole.log(\"\\tcloning sealious-minimal...\");\n\t\tawait execAsync(\n\t\t\t`git clone https://hub.sealcode.org/source/sealious-minimal.git ${app_path} && cd ${app_path} && git checkout f48991a0a8b426e0d2f4a4b448fdd41d643b0dae`\n\t\t);\n\t\tconsole.log(\"\\tinstalling dependencies and sealgen...\");\n\t\tawait execAsync(\n\t\t\t`cd ${app_path} && npm ci && rm -rf node_modules/@sealcode/sealgen && ln -s $OLDPWD node_modules/@sealcode/sealgen`\n\t\t);\n\t\tconsole.log(\"\\trunning add-route and building app...\");\n\t\tawait execAsync(\n\t\t\t`cd ${app_path} && npx sealgen add-route --url=/sample --action=Sample --mode=page && npm run build`\n\t\t);\n\t\tconsole.log(\n\t\t\t\"\\tstarting the database...(if timeouts here, run 'docker pull mongo:4.4-bionic' to solve)\"\n\t\t);\n\t\tconst port = await getPort();\n\t\tawait execAsync(`docker run -p ${port}:27017 --name ${container_name} -d mongo:4.4-bionic`);\n\t\tconsole.log(\"\\trunning app and making request to the generated url...\");\n\t\tconst env = { ...process.env, SEALIOUS_MONGO_PORT: port.toString() };\n\t\tlet app_start = spawn(`node`, [`${app_path}/dist/back/index.js`], {\n\t\t\tenv,\n\t\t});\n\t\tif (app_start.pid == undefined) throw new Error(\"node failed to start\");\n\t\tnode_pid = app_start.pid;\n\t\tawait waitPort({\n\t\t\thost: \"localhost\",\n\t\t\tport: 8080,\n\t\t\toutput: \"silent\",\n\t\t\ttimeout: 6000,\n\t\t});\n\t\tconst res = await axios.get(\"http://localhost:8080/sample\");\n\t\tif (res.status != 200)\n\t\t\tthrow new Error(\"url generated by add-route exists but doesnt return 200\");\n\t});\n});\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"10ae54f7ce5561a9389c7824ef491c94073053ce"},"/home/kuba/projects/sealcode/sealgen/src/example.test.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/example.test.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":3,"column":3}},"1":{"start":{"line":2,"column":4},"end":{"line":2,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":23},"end":{"line":1,"column":24}},"loc":{"start":{"line":1,"column":29},"end":{"line":3,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":2,"column":21},"end":{"line":2,"column":22}},"loc":{"start":{"line":2,"column":27},"end":{"line":2,"column":30}},"line":2}},"branchMap":{},"s":{"0":1,"1":1},"f":{"0":1,"1":1},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/example.test.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/example.test.ts"],"names":[],"mappings":"AAAA,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC","sourcesContent":["describe(\"empty test\", () => {\n\tit(\"empty test\", () => {});\n});\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"07c22fb09f2874c32bebe1585f6347d3876fc4e3"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/boolean.test.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/boolean.test.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":17},"end":{"line":6,"column":51}},"4":{"start":{"line":7,"column":16},"end":{"line":7,"column":38}},"5":{"start":{"line":8,"column":0},"end":{"line":36,"column":3}},"6":{"start":{"line":9,"column":16},"end":{"line":9,"column":18}},"7":{"start":{"line":10,"column":4},"end":{"line":17,"column":7}},"8":{"start":{"line":11,"column":25},"end":{"line":11,"column":57}},"9":{"start":{"line":12,"column":29},"end":{"line":12,"column":62}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":91}},"11":{"start":{"line":14,"column":8},"end":{"line":14,"column":93}},"12":{"start":{"line":15,"column":8},"end":{"line":15,"column":95}},"13":{"start":{"line":16,"column":8},"end":{"line":16,"column":96}},"14":{"start":{"line":18,"column":4},"end":{"line":35,"column":7}},"15":{"start":{"line":19,"column":22},"end":{"line":19,"column":54}},"16":{"start":{"line":20,"column":30},"end":{"line":20,"column":58}},"17":{"start":{"line":21,"column":30},"end":{"line":21,"column":58}},"18":{"start":{"line":22,"column":40},"end":{"line":22,"column":70}},"19":{"start":{"line":23,"column":35},"end":{"line":23,"column":68}},"20":{"start":{"line":24,"column":32},"end":{"line":24,"column":58}},"21":{"start":{"line":25,"column":8},"end":{"line":25,"column":67}},"22":{"start":{"line":26,"column":8},"end":{"line":26,"column":71}},"23":{"start":{"line":27,"column":8},"end":{"line":27,"column":67}},"24":{"start":{"line":28,"column":8},"end":{"line":28,"column":72}},"25":{"start":{"line":29,"column":8},"end":{"line":29,"column":77}},"26":{"start":{"line":30,"column":8},"end":{"line":30,"column":81}},"27":{"start":{"line":31,"column":8},"end":{"line":31,"column":72}},"28":{"start":{"line":32,"column":8},"end":{"line":32,"column":77}},"29":{"start":{"line":33,"column":8},"end":{"line":33,"column":70}},"30":{"start":{"line":34,"column":8},"end":{"line":34,"column":86}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":26},"end":{"line":8,"column":27}},"loc":{"start":{"line":8,"column":32},"end":{"line":36,"column":1}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":27},"end":{"line":10,"column":28}},"loc":{"start":{"line":10,"column":39},"end":{"line":17,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":25},"end":{"line":18,"column":26}},"loc":{"start":{"line":18,"column":37},"end":{"line":35,"column":5}},"line":18}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1},"f":{"0":1,"1":1,"2":1,"3":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/boolean.test.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/boolean.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,uCAAqC;AAErC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC9B,MAAM,GAAG,GAAG,EAAS,CAAC;IAEtB,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,QAAQ,GAAG,IAAI,cAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,cAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE/C,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzE,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3E,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7E,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,cAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAW,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAW,CAAC,CAAC;QAC1D,MAAM,uBAAuB,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/D,MAAM,kBAAkB,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAEnD,gBAAM,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,gBAAM,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACrD,gBAAM,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,gBAAM,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACtD,gBAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3D,gBAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC/D,gBAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtD,gBAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC3D,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import assert from \"assert\";\nimport { Fields } from \"../../index\";\n\ndescribe(\"boolean field\", () => {\n\tconst ctx = {} as any;\n\n\tit(\"validation logic\", async () => {\n\t\tconst required = new Fields.Boolean(true);\n\t\tconst not_required = new Fields.Boolean(false);\n\n\t\tassert.strictEqual((await required.isValueValid(ctx, true)).valid, true);\n\t\tassert.strictEqual((await required.isValueValid(ctx, false)).valid, false);\n\t\tassert.strictEqual((await not_required.isValueValid(ctx, true)).valid, true);\n\t\tassert.strictEqual((await not_required.isValueValid(ctx, false)).valid, true);\n\t});\n\n\tit(\"parse function\", async () => {\n\t\tconst field = new Fields.Boolean(true);\n\t\tconst true_response = await field.parse(ctx, true as any);\n\t\tconst null_response = await field.parse(ctx, null as any);\n\t\tconst true_as_string_response = await field.parse(ctx, \"true\");\n\t\tconst undefined_response = await field.parse(ctx, undefined);\n\t\tconst number_response = await field.parse(ctx, 42);\n\n\t\tassert.strictEqual(true_response.parsable, true);\n\t\tassert.strictEqual(true_response.parsed_value, true);\n\t\tassert.strictEqual(null_response.parsable, true);\n\t\tassert.strictEqual(null_response.parsed_value, false);\n\t\tassert.strictEqual(true_as_string_response.parsable, true);\n\t\tassert.strictEqual(true_as_string_response.parsed_value, true);\n\t\tassert.strictEqual(undefined_response.parsable, true);\n\t\tassert.strictEqual(undefined_response.parsed_value, false);\n\t\tassert.strictEqual(number_response.parsable, false);\n\t\tassert.strictEqual(number_response.error, \"Please enter a boolean\");\n\t});\n});\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"232481cda677f877a5990b27b742c0d062091d8f"},"/home/kuba/projects/sealcode/sealgen/src/index.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/index.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":8,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"2":{"start":{"line":3,"column":26},"end":{"line":3,"column":33}},"3":{"start":{"line":4,"column":4},"end":{"line":4,"column":89}},"4":{"start":{"line":4,"column":71},"end":{"line":4,"column":83}},"5":{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},"6":{"start":{"line":6,"column":26},"end":{"line":6,"column":33}},"7":{"start":{"line":7,"column":4},"end":{"line":7,"column":17}},"8":{"start":{"line":9,"column":25},"end":{"line":13,"column":2}},"9":{"start":{"line":10,"column":4},"end":{"line":10,"column":72}},"10":{"start":{"line":12,"column":4},"end":{"line":12,"column":21}},"11":{"start":{"line":14,"column":19},"end":{"line":20,"column":1}},"12":{"start":{"line":15,"column":4},"end":{"line":15,"column":42}},"13":{"start":{"line":15,"column":31},"end":{"line":15,"column":42}},"14":{"start":{"line":16,"column":17},"end":{"line":16,"column":19}},"15":{"start":{"line":17,"column":4},"end":{"line":17,"column":141}},"16":{"start":{"line":17,"column":21},"end":{"line":17,"column":141}},"17":{"start":{"line":17,"column":40},"end":{"line":17,"column":141}},"18":{"start":{"line":17,"column":109},"end":{"line":17,"column":141}},"19":{"start":{"line":18,"column":4},"end":{"line":18,"column":36}},"20":{"start":{"line":19,"column":4},"end":{"line":19,"column":18}},"21":{"start":{"line":21,"column":19},"end":{"line":23,"column":1}},"22":{"start":{"line":22,"column":4},"end":{"line":22,"column":126}},"23":{"start":{"line":22,"column":21},"end":{"line":22,"column":126}},"24":{"start":{"line":22,"column":95},"end":{"line":22,"column":126}},"25":{"start":{"line":24,"column":0},"end":{"line":24,"column":62}},"26":{"start":{"line":25,"column":0},"end":{"line":25,"column":83}},"27":{"start":{"line":26,"column":0},"end":{"line":26,"column":70}},"28":{"start":{"line":27,"column":0},"end":{"line":27,"column":63}},"29":{"start":{"line":28,"column":0},"end":{"line":28,"column":51}},"30":{"start":{"line":29,"column":0},"end":{"line":29,"column":46}},"31":{"start":{"line":30,"column":0},"end":{"line":30,"column":47}},"32":{"start":{"line":31,"column":0},"end":{"line":31,"column":54}},"33":{"start":{"line":32,"column":0},"end":{"line":32,"column":48}},"34":{"start":{"line":33,"column":0},"end":{"line":33,"column":46}},"35":{"start":{"line":34,"column":0},"end":{"line":34,"column":52}},"36":{"start":{"line":35,"column":0},"end":{"line":35,"column":55}},"37":{"start":{"line":36,"column":0},"end":{"line":36,"column":52}},"38":{"start":{"line":37,"column":0},"end":{"line":37,"column":70}},"39":{"start":{"line":38,"column":0},"end":{"line":38,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":74},"end":{"line":2,"column":75}},"loc":{"start":{"line":2,"column":96},"end":{"line":5,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":58},"end":{"line":4,"column":59}},"loc":{"start":{"line":4,"column":69},"end":{"line":4,"column":85}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":5,"column":6},"end":{"line":5,"column":7}},"loc":{"start":{"line":5,"column":28},"end":{"line":8,"column":1}},"line":5},"3":{"name":"(anonymous_3)","decl":{"start":{"line":9,"column":80},"end":{"line":9,"column":81}},"loc":{"start":{"line":9,"column":95},"end":{"line":11,"column":1}},"line":9},"4":{"name":"(anonymous_4)","decl":{"start":{"line":11,"column":5},"end":{"line":11,"column":6}},"loc":{"start":{"line":11,"column":20},"end":{"line":13,"column":1}},"line":11},"5":{"name":"(anonymous_5)","decl":{"start":{"line":14,"column":50},"end":{"line":14,"column":51}},"loc":{"start":{"line":14,"column":65},"end":{"line":20,"column":1}},"line":14},"6":{"name":"(anonymous_6)","decl":{"start":{"line":21,"column":50},"end":{"line":21,"column":51}},"loc":{"start":{"line":21,"column":71},"end":{"line":23,"column":1}},"line":21}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":8,"column":3}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":57},"end":{"line":8,"column":2}}],"line":2},"1":{"loc":{"start":{"line":2,"column":57},"end":{"line":8,"column":2}},"type":"cond-expr","locations":[{"start":{"line":2,"column":74},"end":{"line":5,"column":1}},{"start":{"line":5,"column":6},"end":{"line":8,"column":1}}],"line":2},"2":{"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"type":"if","locations":[{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},{"start":{"line":3,"column":4},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},"type":"if","locations":[{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},{"start":{"line":6,"column":4},"end":{"line":6,"column":33}}],"line":6},"4":{"loc":{"start":{"line":9,"column":25},"end":{"line":13,"column":2}},"type":"binary-expr","locations":[{"start":{"line":9,"column":26},"end":{"line":9,"column":30}},{"start":{"line":9,"column":34},"end":{"line":9,"column":57}},{"start":{"line":9,"column":63},"end":{"line":13,"column":1}}],"line":9},"5":{"loc":{"start":{"line":9,"column":63},"end":{"line":13,"column":1}},"type":"cond-expr","locations":[{"start":{"line":9,"column":80},"end":{"line":11,"column":1}},{"start":{"line":11,"column":5},"end":{"line":13,"column":1}}],"line":9},"6":{"loc":{"start":{"line":14,"column":19},"end":{"line":20,"column":1}},"type":"binary-expr","locations":[{"start":{"line":14,"column":20},"end":{"line":14,"column":24}},{"start":{"line":14,"column":28},"end":{"line":14,"column":45}},{"start":{"line":14,"column":50},"end":{"line":20,"column":1}}],"line":14},"7":{"loc":{"start":{"line":15,"column":4},"end":{"line":15,"column":42}},"type":"if","locations":[{"start":{"line":15,"column":4},"end":{"line":15,"column":42}},{"start":{"line":15,"column":4},"end":{"line":15,"column":42}}],"line":15},"8":{"loc":{"start":{"line":15,"column":8},"end":{"line":15,"column":29}},"type":"binary-expr","locations":[{"start":{"line":15,"column":8},"end":{"line":15,"column":11}},{"start":{"line":15,"column":15},"end":{"line":15,"column":29}}],"line":15},"9":{"loc":{"start":{"line":17,"column":4},"end":{"line":17,"column":141}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":17,"column":141}},{"start":{"line":17,"column":4},"end":{"line":17,"column":141}}],"line":17},"10":{"loc":{"start":{"line":17,"column":40},"end":{"line":17,"column":141}},"type":"if","locations":[{"start":{"line":17,"column":40},"end":{"line":17,"column":141}},{"start":{"line":17,"column":40},"end":{"line":17,"column":141}}],"line":17},"11":{"loc":{"start":{"line":17,"column":44},"end":{"line":17,"column":107}},"type":"binary-expr","locations":[{"start":{"line":17,"column":44},"end":{"line":17,"column":59}},{"start":{"line":17,"column":63},"end":{"line":17,"column":107}}],"line":17},"12":{"loc":{"start":{"line":21,"column":19},"end":{"line":23,"column":1}},"type":"binary-expr","locations":[{"start":{"line":21,"column":20},"end":{"line":21,"column":24}},{"start":{"line":21,"column":28},"end":{"line":21,"column":45}},{"start":{"line":21,"column":50},"end":{"line":23,"column":1}}],"line":21},"13":{"loc":{"start":{"line":22,"column":21},"end":{"line":22,"column":126}},"type":"if","locations":[{"start":{"line":22,"column":21},"end":{"line":22,"column":126}},{"start":{"line":22,"column":21},"end":{"line":22,"column":126}}],"line":22},"14":{"loc":{"start":{"line":22,"column":25},"end":{"line":22,"column":93}},"type":"binary-expr","locations":[{"start":{"line":22,"column":25},"end":{"line":22,"column":40}},{"start":{"line":22,"column":44},"end":{"line":22,"column":93}}],"line":22}},"s":{"0":1,"1":24,"2":24,"3":24,"4":19,"5":0,"6":0,"7":0,"8":1,"9":0,"10":0,"11":1,"12":4,"13":4,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":1,"22":9,"23":24,"24":24,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1},"f":{"0":24,"1":19,"2":0,"3":0,"4":0,"5":4,"6":9},"b":{"0":[1,1,1],"1":[1,0],"2":[24,0],"3":[0,0],"4":[1,1,1],"5":[1,0],"6":[1,1,1],"7":[4,0],"8":[4,4],"9":[0,0],"10":[0,0],"11":[0,0],"12":[1,1,1],"13":[24,0],"14":[24,24]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/index.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWA,sEAAsD;AACtD,+DAA+C;AAC/C,mDAAiC;AACjC,8CAA4B;AAC5B,+CAA6B;AAC7B,sDAAoC;AACpC,gDAA8B;AAC9B,8CAA4B;AAC5B,oDAAkC;AAClC,uDAAuC;AACvC,oDAAkC;AAClC,sEAAsD;AACtD,0CAAwB","sourcesContent":["import Sealious, { App } from \"sealious\";\nimport { FormDataValue } from \"./forms/form\";\n\ndeclare module \"koa\" {\n\tinterface BaseContext {\n\t\t$context: Sealious.Context;\n\t\t$app: App;\n\t\t$body: Record<string, FormDataValue>;\n\t}\n}\n\nexport * as Controls from \"./forms/controls/controls\";\nexport * as Fields from \"./forms/fields/field\";\nexport * from \"./page/mountable\";\nexport * from \"./page/page\";\nexport * from \"./forms/form\";\nexport * from \"./page/props-parser\";\nexport * from \"./utils/utils\";\nexport * from \"./page/list\";\nexport * from \"./utils/translate\";\nexport * as sanitize from \"./sanitize\";\nexport * from \"./forms/multiform\";\nexport * as Components from \"./components/components\";\nexport * from \"./mount\";\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"602a62722b082a08fbbc03399bed4f13994e937c"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/controls.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/controls.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":8,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"2":{"start":{"line":3,"column":26},"end":{"line":3,"column":33}},"3":{"start":{"line":4,"column":4},"end":{"line":4,"column":89}},"4":{"start":{"line":4,"column":71},"end":{"line":4,"column":83}},"5":{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},"6":{"start":{"line":6,"column":26},"end":{"line":6,"column":33}},"7":{"start":{"line":7,"column":4},"end":{"line":7,"column":17}},"8":{"start":{"line":9,"column":19},"end":{"line":11,"column":1}},"9":{"start":{"line":10,"column":4},"end":{"line":10,"column":126}},"10":{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},"11":{"start":{"line":10,"column":95},"end":{"line":10,"column":126}},"12":{"start":{"line":12,"column":0},"end":{"line":12,"column":62}},"13":{"start":{"line":13,"column":0},"end":{"line":13,"column":281}},"14":{"start":{"line":14,"column":21},"end":{"line":14,"column":46}},"15":{"start":{"line":15,"column":0},"end":{"line":15,"column":125}},"16":{"start":{"line":15,"column":85},"end":{"line":15,"column":119}},"17":{"start":{"line":16,"column":27},"end":{"line":16,"column":58}},"18":{"start":{"line":17,"column":0},"end":{"line":17,"column":141}},"19":{"start":{"line":17,"column":90},"end":{"line":17,"column":135}},"20":{"start":{"line":18,"column":35},"end":{"line":18,"column":74}},"21":{"start":{"line":19,"column":0},"end":{"line":19,"column":165}},"22":{"start":{"line":19,"column":98},"end":{"line":19,"column":159}},"23":{"start":{"line":20,"column":14},"end":{"line":20,"column":32}},"24":{"start":{"line":21,"column":0},"end":{"line":21,"column":106}},"25":{"start":{"line":21,"column":79},"end":{"line":21,"column":100}},"26":{"start":{"line":22,"column":30},"end":{"line":22,"column":64}},"27":{"start":{"line":23,"column":0},"end":{"line":23,"column":150}},"28":{"start":{"line":23,"column":93},"end":{"line":23,"column":144}},"29":{"start":{"line":24,"column":0},"end":{"line":24,"column":45}},"30":{"start":{"line":25,"column":21},"end":{"line":25,"column":46}},"31":{"start":{"line":26,"column":0},"end":{"line":26,"column":125}},"32":{"start":{"line":26,"column":85},"end":{"line":26,"column":119}},"33":{"start":{"line":27,"column":20},"end":{"line":27,"column":44}},"34":{"start":{"line":28,"column":0},"end":{"line":28,"column":122}},"35":{"start":{"line":28,"column":84},"end":{"line":28,"column":116}},"36":{"start":{"line":29,"column":23},"end":{"line":29,"column":50}},"37":{"start":{"line":30,"column":0},"end":{"line":30,"column":131}},"38":{"start":{"line":30,"column":87},"end":{"line":30,"column":125}},"39":{"start":{"line":31,"column":13},"end":{"line":31,"column":30}},"40":{"start":{"line":32,"column":0},"end":{"line":32,"column":103}},"41":{"start":{"line":32,"column":78},"end":{"line":32,"column":97}},"42":{"start":{"line":33,"column":21},"end":{"line":33,"column":46}},"43":{"start":{"line":34,"column":0},"end":{"line":34,"column":125}},"44":{"start":{"line":34,"column":85},"end":{"line":34,"column":119}},"45":{"start":{"line":35,"column":17},"end":{"line":35,"column":38}},"46":{"start":{"line":36,"column":0},"end":{"line":36,"column":115}},"47":{"start":{"line":36,"column":82},"end":{"line":36,"column":109}},"48":{"start":{"line":37,"column":20},"end":{"line":37,"column":44}},"49":{"start":{"line":38,"column":0},"end":{"line":38,"column":122}},"50":{"start":{"line":38,"column":84},"end":{"line":38,"column":116}},"51":{"start":{"line":39,"column":0},"end":{"line":39,"column":44}},"52":{"start":{"line":40,"column":0},"end":{"line":40,"column":50}},"53":{"start":{"line":41,"column":0},"end":{"line":41,"column":45}},"54":{"start":{"line":42,"column":0},"end":{"line":42,"column":45}},"55":{"start":{"line":43,"column":0},"end":{"line":43,"column":42}},"56":{"start":{"line":44,"column":0},"end":{"line":44,"column":52}},"57":{"start":{"line":45,"column":0},"end":{"line":45,"column":51}},"58":{"start":{"line":46,"column":0},"end":{"line":46,"column":60}},"59":{"start":{"line":47,"column":0},"end":{"line":47,"column":63}},"60":{"start":{"line":48,"column":0},"end":{"line":48,"column":49}},"61":{"start":{"line":49,"column":0},"end":{"line":49,"column":41}},"62":{"start":{"line":50,"column":0},"end":{"line":50,"column":42}},"63":{"start":{"line":51,"column":0},"end":{"line":51,"column":51}},"64":{"start":{"line":52,"column":0},"end":{"line":52,"column":43}},"65":{"start":{"line":53,"column":0},"end":{"line":53,"column":52}},"66":{"start":{"line":55,"column":0},"end":{"line":55,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":74},"end":{"line":2,"column":75}},"loc":{"start":{"line":2,"column":96},"end":{"line":5,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":58},"end":{"line":4,"column":59}},"loc":{"start":{"line":4,"column":69},"end":{"line":4,"column":85}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":5,"column":6},"end":{"line":5,"column":7}},"loc":{"start":{"line":5,"column":28},"end":{"line":8,"column":1}},"line":5},"3":{"name":"(anonymous_3)","decl":{"start":{"line":9,"column":50},"end":{"line":9,"column":51}},"loc":{"start":{"line":9,"column":71},"end":{"line":11,"column":1}},"line":9},"4":{"name":"(anonymous_4)","decl":{"start":{"line":15,"column":71},"end":{"line":15,"column":72}},"loc":{"start":{"line":15,"column":83},"end":{"line":15,"column":121}},"line":15},"5":{"name":"(anonymous_5)","decl":{"start":{"line":17,"column":76},"end":{"line":17,"column":77}},"loc":{"start":{"line":17,"column":88},"end":{"line":17,"column":137}},"line":17},"6":{"name":"(anonymous_6)","decl":{"start":{"line":19,"column":84},"end":{"line":19,"column":85}},"loc":{"start":{"line":19,"column":96},"end":{"line":19,"column":161}},"line":19},"7":{"name":"(anonymous_7)","decl":{"start":{"line":21,"column":65},"end":{"line":21,"column":66}},"loc":{"start":{"line":21,"column":77},"end":{"line":21,"column":102}},"line":21},"8":{"name":"(anonymous_8)","decl":{"start":{"line":23,"column":79},"end":{"line":23,"column":80}},"loc":{"start":{"line":23,"column":91},"end":{"line":23,"column":146}},"line":23},"9":{"name":"(anonymous_9)","decl":{"start":{"line":26,"column":71},"end":{"line":26,"column":72}},"loc":{"start":{"line":26,"column":83},"end":{"line":26,"column":121}},"line":26},"10":{"name":"(anonymous_10)","decl":{"start":{"line":28,"column":70},"end":{"line":28,"column":71}},"loc":{"start":{"line":28,"column":82},"end":{"line":28,"column":118}},"line":28},"11":{"name":"(anonymous_11)","decl":{"start":{"line":30,"column":73},"end":{"line":30,"column":74}},"loc":{"start":{"line":30,"column":85},"end":{"line":30,"column":127}},"line":30},"12":{"name":"(anonymous_12)","decl":{"start":{"line":32,"column":64},"end":{"line":32,"column":65}},"loc":{"start":{"line":32,"column":76},"end":{"line":32,"column":99}},"line":32},"13":{"name":"(anonymous_13)","decl":{"start":{"line":34,"column":71},"end":{"line":34,"column":72}},"loc":{"start":{"line":34,"column":83},"end":{"line":34,"column":121}},"line":34},"14":{"name":"(anonymous_14)","decl":{"start":{"line":36,"column":68},"end":{"line":36,"column":69}},"loc":{"start":{"line":36,"column":80},"end":{"line":36,"column":111}},"line":36},"15":{"name":"(anonymous_15)","decl":{"start":{"line":38,"column":70},"end":{"line":38,"column":71}},"loc":{"start":{"line":38,"column":82},"end":{"line":38,"column":118}},"line":38}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":8,"column":3}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":57},"end":{"line":8,"column":2}}],"line":2},"1":{"loc":{"start":{"line":2,"column":57},"end":{"line":8,"column":2}},"type":"cond-expr","locations":[{"start":{"line":2,"column":74},"end":{"line":5,"column":1}},{"start":{"line":5,"column":6},"end":{"line":8,"column":1}}],"line":2},"2":{"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"type":"if","locations":[{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},{"start":{"line":3,"column":4},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},"type":"if","locations":[{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},{"start":{"line":6,"column":4},"end":{"line":6,"column":33}}],"line":6},"4":{"loc":{"start":{"line":9,"column":19},"end":{"line":11,"column":1}},"type":"binary-expr","locations":[{"start":{"line":9,"column":20},"end":{"line":9,"column":24}},{"start":{"line":9,"column":28},"end":{"line":9,"column":45}},{"start":{"line":9,"column":50},"end":{"line":11,"column":1}}],"line":9},"5":{"loc":{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},"type":"if","locations":[{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},{"start":{"line":10,"column":21},"end":{"line":10,"column":126}}],"line":10},"6":{"loc":{"start":{"line":10,"column":25},"end":{"line":10,"column":93}},"type":"binary-expr","locations":[{"start":{"line":10,"column":25},"end":{"line":10,"column":40}},{"start":{"line":10,"column":44},"end":{"line":10,"column":93}}],"line":10}},"s":{"0":1,"1":20,"2":20,"3":20,"4":0,"5":0,"6":0,"7":0,"8":1,"9":17,"10":20,"11":20,"12":1,"13":1,"14":1,"15":1,"16":4,"17":1,"18":1,"19":5,"20":1,"21":1,"22":0,"23":1,"24":1,"25":0,"26":1,"27":1,"28":0,"29":1,"30":1,"31":1,"32":19,"33":1,"34":1,"35":2,"36":1,"37":1,"38":0,"39":1,"40":1,"41":0,"42":1,"43":1,"44":0,"45":1,"46":1,"47":0,"48":1,"49":1,"50":0,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1},"f":{"0":20,"1":0,"2":0,"3":17,"4":4,"5":5,"6":0,"7":0,"8":0,"9":19,"10":2,"11":0,"12":0,"13":0,"14":0,"15":0},"b":{"0":[1,1,1],"1":[1,0],"2":[20,0],"3":[0,0],"4":[1,1,1],"5":[20,0],"6":[20,20]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/controls.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/controls.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,2EAAwE;AAA/D,sIAAA,wBAAwB,OAAA;AACjC,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,6CAA2B;AAC3B,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,4CAA0B;AAC1B,kDAAgC;AAChC,6CAA2B;AAC3B,6CAA2B;AAC3B,0CAAwB;AACxB,oDAAkC;AAClC,mDAAiC;AACjC,4DAA0C;AAC1C,+DAA6C;AAC7C,iDAA+B;AAC/B,yCAAuB;AACvB,0CAAwB;AACxB,mDAAiC;AACjC,2CAAyB;AACzB,oDAAkC;AAClC,8CAA8C;AAC9C,0CAAwB","sourcesContent":["export { FormControl } from \"./form-control\";\nexport { FormFieldControl } from \"./form-field-control\";\nexport { EditableCollectionSubset } from \"./editable-collection-subset\";\nexport { Frame } from \"./frame\";\nexport { CheckboxedListInput } from \"./checkboxed-list-input\";\nexport * from \"./dropdown\";\nexport { SimpleInput } from \"./simple-input\";\nexport { FormHeader } from \"./form-header\";\nexport { FormParagraph } from \"./form-paragraph\";\nexport { HTML } from \"./html\";\nexport { HiddenInput } from \"./hidden-input\";\nexport { Textarea } from \"./textarea\";\nexport { FieldGroup } from \"./field-group\";\nexport * from \"./derived\";\nexport * from \"./derived-frame\";\nexport * from \"./tickable\";\nexport * from \"./checkbox\";\nexport * from \"./radio\";\nexport * from \"./big-radio-group\";\nexport * from \"./checkbox-group\";\nexport * from \"./collapsible-field-group\";\nexport * from \"./collapsible-checkbox-group\";\nexport * from \"./autocomplete\";\nexport * from \"./file\";\nexport * from \"./photo\";\nexport * from \"./multiple-files\";\nexport * from \"./number\";\nexport * from \"./multiple-photos\";\n// export * from \"./reverse-single-reference\";\nexport * from \"./array\";\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"535a781accf92d9fdce51eaef9bbe6dc060905c1"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-control.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-control.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":58}},"2":{"start":{"line":6,"column":8},"end":{"line":6,"column":23}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":25}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":33}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":51}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":31}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":33}},"8":{"start":{"line":14,"column":0},"end":{"line":14,"column":48}},"9":{"start":{"line":18,"column":0},"end":{"line":18,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":75},"end":{"line":12,"column":5}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":18},"end":{"line":16,"column":21}},"line":16}},"branchMap":{},"s":{"0":1,"1":1,"2":42,"3":42,"4":42,"5":42,"6":42,"7":42,"8":1,"9":1},"f":{"0":42,"1":7},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-control.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-control.ts"],"names":[],"mappings":";;;AAKA,MAAa,kBAAkB;IAC9B,YACQ,GAAY,EACZ,IAAmC,EACnC,QAAuB,EACvB,iBAAyB,EACzB,OAAe,EACf,QAAiB;QALjB,QAAG,GAAH,GAAG,CAAS;QACZ,SAAI,GAAJ,IAAI,CAA+B;QACnC,aAAQ,GAAR,QAAQ,CAAe;QACvB,sBAAiB,GAAjB,iBAAiB,CAAQ;QACzB,YAAO,GAAP,OAAO,CAAQ;QACf,aAAQ,GAAR,QAAQ,CAAS;IACtB,CAAC;CACJ;AATD,gDASC;AAED,MAAsB,WAAW;IAMhC,KAAK,CAAC,MAAc,IAAG,CAAC;CACxB;AAPD,kCAOC","sourcesContent":["import Router from \"@koa/router\";\nimport { Context } from \"koa\";\nimport { FlatTemplatable } from \"tempstream\";\nimport { FormDataValue, FormMessage } from \"../form\";\n\nexport class FormControlContext {\n\tconstructor(\n\t\tpublic ctx: Context,\n\t\tpublic data: Record<string, FormDataValue>,\n\t\tpublic messages: FormMessage[],\n\t\tpublic field_name_prefix: string,\n\t\tpublic form_id: string,\n\t\tpublic validate: boolean\n\t) {}\n}\n\nexport abstract class FormControl {\n\tabstract render(\n\t\tfctx: FormControlContext\n\t): FlatTemplatable | Promise<FlatTemplatable>;\n\tabstract role: \"input\" | \"decoration\" | \"messages\" | \"submit\";\n\n\tmount(router: Router) {}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c3bd50bd0335786503d28ecff387e7b7dc9e9660"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-field-control.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-field-control.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"2":{"start":{"line":4,"column":23},"end":{"line":4,"column":48}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":16}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":29}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":28}},"6":{"start":{"line":12,"column":0},"end":{"line":12,"column":44}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":24},"end":{"line":10,"column":5}},"line":6}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":19,"4":19,"5":19,"6":1},"f":{"0":19},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-field-control.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-field-control.ts"],"names":[],"mappings":";;;AAIA,iDAAiE;AAQjE,MAAsB,gBAAiB,SAAQ,0BAAW;IAEzD,YAAmB,MAAmB;QACrC,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAa;QADtC,SAAI,GAAU,OAAO,CAAC;IAGtB,CAAC;CAKD;AATD,4CASC","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable } from \"tempstream\";\nimport { FormField } from \"../fields/field\";\nimport { FieldValueType, FormDataValue } from \"../form\";\nimport { FormControl, FormControlContext } from \"./form-control\";\n\nexport type FormFieldsToTypes<FormFields extends readonly FormField[]> = {\n\t[Index in keyof FormFields]: FormFields[Index] extends FormField\n\t\t? FieldValueType<FormFields[Index]>\n\t\t: never;\n};\n\nexport abstract class FormFieldControl extends FormControl {\n\trole = <const>\"input\";\n\tconstructor(public fields: FormField[]) {\n\t\tsuper();\n\t}\n\n\tabstract render(\n\t\tfctx: FormControlContext\n\t): FlatTemplatable | Promise<FlatTemplatable>;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"647a27222515a4c9ed59dc535f86bfcc56fb7062"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/editable-collection-subset.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/editable-collection-subset.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":42}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":44}},"4":{"start":{"line":6,"column":19},"end":{"line":6,"column":40}},"5":{"start":{"line":16,"column":8},"end":{"line":16,"column":23}},"6":{"start":{"line":17,"column":8},"end":{"line":17,"column":27}},"7":{"start":{"line":18,"column":8},"end":{"line":18,"column":37}},"8":{"start":{"line":19,"column":8},"end":{"line":19,"column":35}},"9":{"start":{"line":20,"column":8},"end":{"line":20,"column":39}},"10":{"start":{"line":21,"column":8},"end":{"line":21,"column":28}},"11":{"start":{"line":24,"column":35},"end":{"line":24,"column":81}},"12":{"start":{"line":25,"column":8},"end":{"line":68,"column":10}},"13":{"start":{"line":27,"column":78},"end":{"line":54,"column":10}},"14":{"start":{"line":28,"column":33},"end":{"line":28,"column":63}},"15":{"start":{"line":29,"column":47},"end":{"line":54,"column":9}},"16":{"start":{"line":58,"column":79},"end":{"line":60,"column":102}},"17":{"start":{"line":59,"column":33},"end":{"line":59,"column":64}},"18":{"start":{"line":60,"column":36},"end":{"line":60,"column":101}},"19":{"start":{"line":71,"column":0},"end":{"line":71,"column":60}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":59},"end":{"line":22,"column":5}},"line":15},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":23},"end":{"line":69,"column":5}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":27,"column":65},"end":{"line":27,"column":66}},"loc":{"start":{"line":27,"column":78},"end":{"line":54,"column":10}},"line":27},"3":{"name":"(anonymous_3)","decl":{"start":{"line":28,"column":20},"end":{"line":28,"column":21}},"loc":{"start":{"line":28,"column":33},"end":{"line":28,"column":63}},"line":28},"4":{"name":"(anonymous_4)","decl":{"start":{"line":29,"column":17},"end":{"line":29,"column":18}},"loc":{"start":{"line":29,"column":47},"end":{"line":54,"column":9}},"line":29},"5":{"name":"(anonymous_5)","decl":{"start":{"line":58,"column":66},"end":{"line":58,"column":67}},"loc":{"start":{"line":58,"column":79},"end":{"line":60,"column":102}},"line":58},"6":{"name":"(anonymous_6)","decl":{"start":{"line":59,"column":20},"end":{"line":59,"column":21}},"loc":{"start":{"line":59,"column":33},"end":{"line":59,"column":64}},"line":59},"7":{"name":"(anonymous_7)","decl":{"start":{"line":60,"column":17},"end":{"line":60,"column":18}},"loc":{"start":{"line":60,"column":36},"end":{"line":60,"column":101}},"line":60}},"branchMap":{"0":{"loc":{"start":{"line":28,"column":34},"end":{"line":28,"column":46}},"type":"binary-expr","locations":[{"start":{"line":28,"column":34},"end":{"line":28,"column":40}},{"start":{"line":28,"column":44},"end":{"line":28,"column":46}}],"line":28},"1":{"loc":{"start":{"line":48,"column":14},"end":{"line":50,"column":16}},"type":"cond-expr","locations":[{"start":{"line":49,"column":14},"end":{"line":49,"column":41}},{"start":{"line":50,"column":14},"end":{"line":50,"column":16}}],"line":48},"2":{"loc":{"start":{"line":59,"column":35},"end":{"line":59,"column":47}},"type":"binary-expr","locations":[{"start":{"line":59,"column":35},"end":{"line":59,"column":41}},{"start":{"line":59,"column":45},"end":{"line":59,"column":47}}],"line":59},"3":{"loc":{"start":{"line":65,"column":7},"end":{"line":65,"column":60}},"type":"cond-expr","locations":[{"start":{"line":65,"column":26},"end":{"line":65,"column":55}},{"start":{"line":65,"column":58},"end":{"line":65,"column":60}}],"line":65}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/editable-collection-subset.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/editable-collection-subset.ts"],"names":[],"mappings":";;;AAAA,2CAAyD;AACzD,6CAA2C;AAE3C,yCAA8C;AAG9C;;;;;;GAMG;AACH,MAAa,wBAAyB,SAAQ,2BAAgB;IAC7D,YACQ,KAA+B,EAC/B,UAAkB,EAClB,SAAkB,EAClB,WAAoB;QAE3B,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QALR,UAAK,GAAL,KAAK,CAA0B;QAC/B,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAS;QAClB,gBAAW,GAAX,WAAW,CAAS;QA6E5B,SAAI,GAAU,OAAO,CAAC;IA1EtB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwB;QACpC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CACnD,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,CACT,CAAC;QAEF,OAAO,uBAAU,CAAA,UAAU,CAAC;;MAExB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAC3D,CAAC,OAAO,EAAE,EAAE,CACX,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aACrB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CACnB,CAAC,MAAM,IAAK,EAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC5C;aACA,GAAG,CACH,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;;;;qBAIjB,IAAI,CAAC,GAAG,CAAC,IAAI;;mBAEf,IAAI;;;oBAGH,IAAI,CAAC,KAAK,CAAC,IAAI;qBACd,oBAAS,CAAC,KAAK,CAAC;;;;oBAIjB,IAAI,CAAC,UAAU;;;;;cAKrB,IAAI,CAAC,SAAS;YACf,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,GAAG;YAC7B,CAAC,CAAC,EAAE;;;;SAIR,CACD,CACH;;iCAE4B,IAAI,CAAC,GAAG,CAAC,IAAI;oBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI;OAC5B,OAAO,CAAC,OAAO,CAChB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CACpC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAClB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aACrB,MAAM,CACN,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CACX,CAAC,CAAC,MAAM,IAAK,EAAe,CAAC,CAAC,QAAQ,CACrC,KAAK,CACL,CACF;aACA,GAAG,CACH,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CACjB,kBAAkB,oBAAS,CAC1B,KAAK,CACL,KAAK,IAAI,WAAW,CACtB,CACF;;iCAE2B,IAAI,CAAC,UAAU;;;OAGzC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE;;;SAGnD,CAAC;IACT,CAAC;CAED;AAnFD,4DAmFC","sourcesContent":["import { FlatTemplatable, tempstream } from \"tempstream\";\nimport { attribute } from \"../../sanitize\";\nimport { PickFromListField } from \"../fields/field\";\nimport { FormFieldControl } from \"./controls\";\nimport { FormControlContext } from \"./form-control\";\n\n/**\n * This control has own forms in it so if you want to use it you\n * probably shouldn't use `await super.render(ctx, data, path)` in\n * render method of you from implementation and you should write\n * your own implementation of this method. See forms that uses\n * this control for reference.\n */\nexport class EditableCollectionSubset extends FormFieldControl {\n\tconstructor(\n\t\tpublic field: PickFromListField<false>,\n\t\tpublic actionname: string,\n\t\tpublic listLabel?: string,\n\t\tpublic selectLabel?: string\n\t) {\n\t\tsuper([field]);\n\t}\n\n\tasync render(fctx: FormControlContext): Promise<FlatTemplatable> {\n\t\tconst { parsed: values } = await this.field.getValue(\n\t\t\tfctx.ctx,\n\t\t\tfctx.data\n\t\t);\n\n\t\treturn tempstream/* HTML */ `<div>\n\t\t\t<ul>\n\t\t\t\t${Promise.resolve(this.field.generateOptions(fctx.ctx)).then(\n\t\t\t\t\t(options) =>\n\t\t\t\t\t\tObject.entries(options)\n\t\t\t\t\t\t\t.filter(([value]) =>\n\t\t\t\t\t\t\t\t(values || ([] as string[])).includes(value)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t([value, text]) => /* HTML */ `\n\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<form\n\t\t\t\t\t\t\t\t\t\t\tmethod=\"POST\"\n\t\t\t\t\t\t\t\t\t\t\taction=\"${fctx.ctx.path}\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<span>${text}</span>\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"${this.field.name}\"\n\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"${attribute(value)}\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"${this.actionname}\"\n\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"list\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\t\t\t\t${this.listLabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t? `value=\"${this.listLabel}\"`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\"}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t)\n\t\t\t\t)}\n\t\t\t</ul>\n\t\t\t<form method=\"POST\" action=\"${fctx.ctx.path}\">\n\t\t\t\t<select name=\"${this.field.name}\">\n\t\t\t\t\t${Promise.resolve(\n\t\t\t\t\t\tthis.field.generateOptions(fctx.ctx)\n\t\t\t\t\t).then((options) =>\n\t\t\t\t\t\tObject.entries(options)\n\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t([value]) =>\n\t\t\t\t\t\t\t\t\t!(values || ([] as string[])).includes(\n\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t([value, text]) =>\n\t\t\t\t\t\t\t\t\t`<option value=\"${attribute(\n\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t)}\">${text}</option>`\n\t\t\t\t\t\t\t)\n\t\t\t\t\t)}\n\t\t\t\t</select>\n\t\t\t\t<input type=\"hidden\" name=\"${this.actionname}\" value=\"select\" />\n\t\t\t\t<input\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t${this.selectLabel ? `value=\"${this.selectLabel}\"` : \"\"}\n\t\t\t\t/>\n\t\t\t</form>\n\t\t</div>`;\n\t}\n\trole = <const>\"input\";\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"74b1cefef23e135d831c82754ebbfff88c2f7f0d"},"/home/kuba/projects/sealcode/sealgen/src/sanitize.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/sanitize.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":27}},"2":{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},"3":{"start":{"line":6,"column":8},"end":{"line":6,"column":29}},"4":{"start":{"line":8,"column":4},"end":{"line":11,"column":34}},"5":{"start":{"line":13,"column":0},"end":{"line":13,"column":30}}},"fnMap":{"0":{"name":"attribute","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":18}},"loc":{"start":{"line":4,"column":24},"end":{"line":12,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},"type":"if","locations":[{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},{"start":{"line":5,"column":4},"end":{"line":7,"column":5}}],"line":5},"1":{"loc":{"start":{"line":8,"column":12},"end":{"line":8,"column":21}},"type":"binary-expr","locations":[{"start":{"line":8,"column":12},"end":{"line":8,"column":15}},{"start":{"line":8,"column":19},"end":{"line":8,"column":21}}],"line":8}},"s":{"0":1,"1":1,"2":306,"3":0,"4":306,"5":1},"f":{"0":306},"b":{"0":[0,306],"1":[306,27]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/sanitize.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/sanitize.ts"],"names":[],"mappings":";;;AAAA,SAAgB,SAAS,CAAC,GAAoB;IAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC5B,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;KACrB;IACD,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;SAChB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;SACtB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AARD,8BAQC","sourcesContent":["export function attribute(raw: string | number): string {\n\tif (typeof raw !== \"string\") {\n\t\traw = raw.toString();\n\t}\n\treturn (raw || \"\")\n\t\t.replaceAll(\"<\", \"<\")\n\t\t.replace('\"', \""\")\n\t\t.replaceAll(\"'\", \"'\");\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"abb0df60b44b017ef7591a83cb83ca181c259489"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/frame.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/frame.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":23}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":40}},"3":{"start":{"line":16,"column":8},"end":{"line":16,"column":16}},"4":{"start":{"line":17,"column":8},"end":{"line":17,"column":23}},"5":{"start":{"line":18,"column":8},"end":{"line":18,"column":33}},"6":{"start":{"line":21,"column":8},"end":{"line":25,"column":19}},"7":{"start":{"line":28,"column":0},"end":{"line":28,"column":22}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":21},"end":{"line":19,"column":5}},"line":15},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":13},"end":{"line":26,"column":5}},"line":20}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":1},"f":{"0":0,"1":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/frame.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/frame.ts"],"names":[],"mappings":";;;AACA,yCAAyC;AAEzC;;;;;;;;GAQG;AACH,MAAa,KAAM,SAAQ,sBAAW;IACrC,YAAmB,GAAW;QAC7B,KAAK,EAAE,CAAC;QADU,QAAG,GAAH,GAAG,CAAQ;QAW9B,SAAI,GAAU,YAAY,CAAC;IAT3B,CAAC;IAED,MAAM;QACL,OAAO,UAAU,CAAC;;;UAGV,IAAI,CAAC,GAAG;kBACA,CAAC;IAClB,CAAC;CAED;AAbD,sBAaC","sourcesContent":["import { FlatTemplatable, Templatable } from \"tempstream\";\nimport { FormControl } from \"./controls\";\n\n/**\n * This class will render `turbo-frame` tag so that u can\n * embed other route inside your form. This will require\n * to add value to `data: FormData` (inside your master form\n * render function) with key `Frame.FRAME_PATH_KEY`. Value\n * needs to be url to route that you want to embed. If you\n * this value wont be provided frame will redner empty string.\n * See `src/back/routes/profile/[id].form.ts` for an example.\n */\nexport class Frame extends FormControl {\n\tconstructor(public src: string) {\n\t\tsuper();\n\t}\n\n\trender(): FlatTemplatable | Promise<FlatTemplatable> {\n\t\treturn /* HTML */ `<turbo-frame\n\t\t\tid=\"contrahents\"\n\t\t\tloading=\"lazy\"\n\t\t\tsrc=\"${this.src}\"\n\t\t></turbo-frame>`;\n\t}\n\trole = <const>\"decoration\";\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e7ac6c4850fc9a8105ce1e2e39e18be84a283307"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/checkboxed-list-input.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/checkboxed-list-input.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":37}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":42}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":60}},"5":{"start":{"line":7,"column":19},"end":{"line":7,"column":40}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":23}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":27}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":31}},"9":{"start":{"line":15,"column":41},"end":{"line":15,"column":87}},"10":{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},"11":{"start":{"line":17,"column":12},"end":{"line":17,"column":72}},"12":{"start":{"line":19,"column":37},"end":{"line":22,"column":10}},"13":{"start":{"line":23,"column":35},"end":{"line":23,"column":45}},"14":{"start":{"line":24,"column":8},"end":{"line":35,"column":19}},"15":{"start":{"line":25,"column":61},"end":{"line":34,"column":8}},"16":{"start":{"line":38,"column":0},"end":{"line":38,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":56},"end":{"line":13,"column":5}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":23},"end":{"line":36,"column":5}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":25,"column":42},"end":{"line":25,"column":43}},"loc":{"start":{"line":25,"column":61},"end":{"line":34,"column":8}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":23},"end":{"line":9,"column":54}},"type":"default-arg","locations":[{"start":{"line":9,"column":33},"end":{"line":9,"column":54}}],"line":9},"1":{"loc":{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},"type":"if","locations":[{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},{"start":{"line":16,"column":8},"end":{"line":18,"column":9}}],"line":16},"2":{"loc":{"start":{"line":24,"column":53},"end":{"line":35,"column":16}},"type":"cond-expr","locations":[{"start":{"line":25,"column":14},"end":{"line":34,"column":9}},{"start":{"line":35,"column":14},"end":{"line":35,"column":16}}],"line":24},"3":{"loc":{"start":{"line":31,"column":10},"end":{"line":31,"column":55}},"type":"cond-expr","locations":[{"start":{"line":31,"column":41},"end":{"line":31,"column":50}},{"start":{"line":31,"column":53},"end":{"line":31,"column":55}}],"line":31}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":1},"f":{"0":0,"1":0,"2":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/checkboxed-list-input.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/checkboxed-list-input.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAEzD,2CAAwC;AACxC,6DAA2E;AAG3E,yCAA8C;AAG9C,MAAa,mBAAoB,SAAQ,2BAAgB;IACxD,YACQ,KAAkC,EAClC,UAA6B,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;QAEzD,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAHR,UAAK,GAAL,KAAK,CAA6B;QAClC,YAAO,GAAP,OAAO,CAA2C;IAG1D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwB;QACpC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CACzD,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,CACT,CAAC;QACF,IAAI,CAAC,kBAAE,CAAC,YAAY,EAAE,0BAAU,CAAC,KAAK,CAAC,0BAAU,CAAC,MAAM,CAAC,CAAC,EAAE;YAC3D,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC5D;QACD,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;SAC9B,CAAC,CAAC;QAEH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEtC,OAAO,uBAAU,CAAA,UAAU,CAAC,GAAG,SAAS;YACvC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAC9C,4BAAY,CACX,CAAC,IAAI,EAAE,gCAAgB,CAAC,QAAQ,CAAC,CAAC;YAClC,UAAU,CAAC;;;cAGH,IAAI,IAAI,KAAK;gBACX,IAAI,IAAI,KAAK;UACnB,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;qBAElC,IAAI,IAAI,KAAK,KAAK,IAAI;OACpC,CACD,CACA;YACH,CAAC,CAAC,EAAE,EAAE,CAAC;IACT,CAAC;CACD;AAxCD,kDAwCC","sourcesContent":["import { is, predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { tempstream } from \"tempstream\";\nimport { getRequiredClass, inputWrapper } from \"../../utils/input-wrapper\";\nimport { ChekboxedListField } from \"../fields/field\";\nimport { FormDataValue } from \"../form\";\nimport { FormFieldControl } from \"./controls\";\nimport { FormControlContext } from \"./form-control\";\n\nexport class CheckboxedListInput extends FormFieldControl {\n\tconstructor(\n\t\tpublic field: ChekboxedListField<boolean>,\n\t\tpublic options: { label: string } = { label: field.name }\n\t) {\n\t\tsuper([field]);\n\t}\n\n\tasync render(fctx: FormControlContext) {\n\t\tconst { parsed: pickedValues } = await this.field.getValue(\n\t\t\tfctx.ctx,\n\t\t\tfctx.data\n\t\t);\n\t\tif (!is(pickedValues, predicates.array(predicates.string))) {\n\t\t\tthrow new Error(\"picked values is not an array of strings\");\n\t\t}\n\t\tconst [options, isVisible] = await Promise.all([\n\t\t\tthis.field.generateOptions(fctx.ctx),\n\t\t\tthis.field.isVisible(fctx.ctx),\n\t\t]);\n\n\t\tconst { name, required } = this.field;\n\n\t\treturn tempstream/* HTML */ `${isVisible\n\t\t\t? Object.entries(options).map(([value, text]) =>\n\t\t\t\t\tinputWrapper(\n\t\t\t\t\t\t[name, getRequiredClass(required)],\n\t\t\t\t\t\t/* HTML */ `\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\tid=\"${name}.${value}\"\n\t\t\t\t\t\t\t\tname=\"${name}.${value}\"\n\t\t\t\t\t\t\t\t${pickedValues.includes(value) ? \"checked\" : \"\"}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<label for=\"${name}.${value}\">${text}</label>\n\t\t\t\t\t\t`\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: \"\"}`;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"056aba0443324f3a18d072db23e3d69e39a56ad3"},"/home/kuba/projects/sealcode/sealgen/src/utils/input-wrapper.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/input-wrapper.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":57}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":40}},"4":{"start":{"line":8,"column":0},"end":{"line":8,"column":44}},"5":{"start":{"line":10,"column":4},"end":{"line":10,"column":71}},"6":{"start":{"line":10,"column":32},"end":{"line":10,"column":59}},"7":{"start":{"line":13,"column":4},"end":{"line":17,"column":9}},"8":{"start":{"line":19,"column":0},"end":{"line":19,"column":36}}},"fnMap":{"0":{"name":"getRequiredClass","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":25}},"loc":{"start":{"line":5,"column":38},"end":{"line":7,"column":1}},"line":5},"1":{"name":"getModifierClasses","decl":{"start":{"line":9,"column":9},"end":{"line":9,"column":27}},"loc":{"start":{"line":9,"column":39},"end":{"line":11,"column":1}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":25},"end":{"line":10,"column":26}},"loc":{"start":{"line":10,"column":32},"end":{"line":10,"column":59}},"line":10},"3":{"name":"inputWrapper","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":21}},"loc":{"start":{"line":12,"column":40},"end":{"line":18,"column":1}},"line":12}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":11},"end":{"line":6,"column":39}},"type":"cond-expr","locations":[{"start":{"line":6,"column":24},"end":{"line":6,"column":34}},{"start":{"line":6,"column":37},"end":{"line":6,"column":39}}],"line":6}},"s":{"0":1,"1":1,"2":1,"3":42,"4":1,"5":42,"6":126,"7":42,"8":1},"f":{"0":42,"1":42,"2":126,"3":42},"b":{"0":[42,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/input-wrapper.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/input-wrapper.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAEzD,SAAgB,gBAAgB,CAAC,UAAmB;IACnD,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AACrC,CAAC;AAFD,4CAEC;AAED,SAAS,kBAAkB,CAAC,SAAmB;IAC9C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,YAAY,CAC3B,SAAmB,EACnB,KAAsB;IAEtB,OAAO,uBAAU,CAAA,UAAU,CAAC;0CACa,kBAAkB,CAAC,SAAS,CAAC;;IAEnE,KAAK;QACD,CAAC;AACT,CAAC;AATD,oCASC","sourcesContent":["import { Readable } from \"stream\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\n\nexport function getRequiredClass(isRequired: boolean): string {\n\treturn isRequired ? \"required\" : \"\";\n}\n\nfunction getModifierClasses(modifiers: string[]) {\n\treturn modifiers.map((m) => \"form-input__wrapper--\" + m).join(\" \");\n}\n\nexport function inputWrapper(\n\tmodifiers: string[],\n\tinput: FlatTemplatable\n): Readable {\n\treturn tempstream/* HTML */ `<div\n\t\tclass=\"form-input form-input__wrapper ${getModifierClasses(modifiers)}\"\n\t>\n\t\t${input}\n\t</div>`;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"38d7743e26f60802af741c429379f5f8b21c8870"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/dropdown.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/dropdown.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":53}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":44}},"4":{"start":{"line":6,"column":23},"end":{"line":6,"column":48}},"5":{"start":{"line":13,"column":8},"end":{"line":13,"column":30}},"6":{"start":{"line":14,"column":8},"end":{"line":14,"column":27}},"7":{"start":{"line":15,"column":8},"end":{"line":15,"column":49}},"8":{"start":{"line":16,"column":8},"end":{"line":16,"column":31}},"9":{"start":{"line":19,"column":8},"end":{"line":19,"column":42}},"10":{"start":{"line":22,"column":25},"end":{"line":22,"column":61}},"11":{"start":{"line":23,"column":8},"end":{"line":36,"column":10}},"12":{"start":{"line":39,"column":41},"end":{"line":39,"column":77}},"13":{"start":{"line":40,"column":8},"end":{"line":44,"column":13}},"14":{"start":{"line":43,"column":69},"end":{"line":43,"column":221}},"15":{"start":{"line":43,"column":103},"end":{"line":43,"column":220}},"16":{"start":{"line":47,"column":0},"end":{"line":47,"column":44}},"17":{"start":{"line":54,"column":8},"end":{"line":54,"column":67}},"18":{"start":{"line":54,"column":30},"end":{"line":54,"column":56}},"19":{"start":{"line":55,"column":8},"end":{"line":55,"column":27}},"20":{"start":{"line":56,"column":8},"end":{"line":56,"column":31}},"21":{"start":{"line":59,"column":0},"end":{"line":59,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":12,"column":7},"end":{"line":17,"column":5}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":31},"end":{"line":20,"column":5}},"line":18},"2":{"name":"(anonymous_2)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":35},"end":{"line":37,"column":5}},"line":21},"3":{"name":"(anonymous_3)","decl":{"start":{"line":38,"column":4},"end":{"line":38,"column":5}},"loc":{"start":{"line":38,"column":49},"end":{"line":45,"column":5}},"line":38},"4":{"name":"(anonymous_4)","decl":{"start":{"line":43,"column":56},"end":{"line":43,"column":57}},"loc":{"start":{"line":43,"column":69},"end":{"line":43,"column":221}},"line":43},"5":{"name":"(anonymous_5)","decl":{"start":{"line":43,"column":81},"end":{"line":43,"column":82}},"loc":{"start":{"line":43,"column":103},"end":{"line":43,"column":220}},"line":43},"6":{"name":"(anonymous_6)","decl":{"start":{"line":49,"column":4},"end":{"line":49,"column":5}},"loc":{"start":{"line":53,"column":7},"end":{"line":57,"column":5}},"line":53},"7":{"name":"(anonymous_7)","decl":{"start":{"line":54,"column":21},"end":{"line":54,"column":22}},"loc":{"start":{"line":54,"column":30},"end":{"line":54,"column":56}},"line":54}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":41},"end":{"line":12,"column":5}},"type":"default-arg","locations":[{"start":{"line":8,"column":51},"end":{"line":12,"column":5}}],"line":8},"1":{"loc":{"start":{"line":26,"column":20},"end":{"line":34,"column":24}},"type":"cond-expr","locations":[{"start":{"line":27,"column":22},"end":{"line":33,"column":21}},{"start":{"line":34,"column":22},"end":{"line":34,"column":24}}],"line":26},"2":{"loc":{"start":{"line":30,"column":29},"end":{"line":30,"column":52}},"type":"binary-expr","locations":[{"start":{"line":30,"column":29},"end":{"line":30,"column":46}},{"start":{"line":30,"column":50},"end":{"line":30,"column":52}}],"line":30},"3":{"loc":{"start":{"line":43,"column":153},"end":{"line":43,"column":200}},"type":"cond-expr","locations":[{"start":{"line":43,"column":185},"end":{"line":43,"column":195}},{"start":{"line":43,"column":198},"end":{"line":43,"column":200}}],"line":43},"4":{"loc":{"start":{"line":43,"column":154},"end":{"line":43,"column":165}},"type":"binary-expr","locations":[{"start":{"line":43,"column":154},"end":{"line":43,"column":159}},{"start":{"line":43,"column":163},"end":{"line":43,"column":165}}],"line":43},"5":{"loc":{"start":{"line":49,"column":23},"end":{"line":53,"column":5}},"type":"default-arg","locations":[{"start":{"line":49,"column":33},"end":{"line":53,"column":5}}],"line":49}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":1,"17":0,"18":0,"19":0,"20":0,"21":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/dropdown.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/dropdown.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AACzD,6CAA2C;AAI3C,iDAA6C;AAU7C,MAAa,gBAAiB,SAAQ,0BAA0B;IAC/D,YACQ,KAAwC,EACxC,gBAA6D,EAC7D,UAA2B;QACjC,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;KAClB;QAED,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QARf,UAAK,GAAL,KAAK,CAAmC;QACxC,qBAAgB,GAAhB,gBAAgB,CAA6C;QAC7D,YAAO,GAAP,OAAO,CAIb;IAGF,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAY;QACjC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,kBAAkB,CACvB,IAAwB;QAExB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtD,OAAO;YACN,GAAG,QAAQ;YACX,GAAG,MAAM,CAAC,WAAW,CAAC;gBACrB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;oBAC1B,CAAC,CAAC;wBACA;4BACC,UAAU;4BACV,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;gCACxB,sBAAsB;yBACvB;qBACA;oBACH,CAAC,CAAC,EAAE,CAAC;aACN,CAAC;SACF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,GAAY,EACZ,cAAsB,EACtB,IAAmC;QAEnC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtE,OAAO,UAAU,CAAC,uBAAU,CAAA,WAAW,cAAc;KAClD;QACD,4EAA4E;QAC5E,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3D,OAAO,CAAC,GAAG,CACV,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CACpB,kBAAkB,oBAAS,CAAC,KAAK,CAAC,KACjC,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAC9C,IAAI,KAAK,WAAW,CACrB,CAEH;YACS,CAAC;IACZ,CAAC;CACD;AAzDD,4CAyDC;AAED,MAAa,QAAS,SAAQ,gBAAgB;IAC7C,YACQ,KAAiC,EACjC,UAA2B;QACjC,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;KAClB;QAED,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAPpD,UAAK,GAAL,KAAK,CAA4B;QACjC,YAAO,GAAP,OAAO,CAIb;IAGF,CAAC;CACD;AAXD,4BAWC","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { attribute } from \"../../sanitize\";\nimport { FormField, PickFromListField } from \"../fields/field\";\nimport { FormDataValue } from \"../form\";\nimport { FormControlContext } from \"./form-control\";\nimport { SimpleInput } from \"./simple-input\";\n\nexport type DropdownOptions = {\n\tlabel: string;\n\tautosubmit?: boolean;\n\tautocomplete?: boolean;\n};\n\nexport type DropdownOption = { value: string; label: string };\n\nexport class FreeformDropdown extends SimpleInput<string | null> {\n\tconstructor(\n\t\tpublic field: FormField<boolean, string | null>,\n\t\tpublic _generateOptions: (ctx: Context) => Promise<DropdownOption[]>,\n\t\tpublic options: DropdownOptions = {\n\t\t\tlabel: field.name,\n\t\t\tautosubmit: false,\n\t\t\tautocomplete: true,\n\t\t}\n\t) {\n\t\tsuper(field, options);\n\t}\n\n\tasync generateOptions(ctx: Context): Promise<DropdownOption[]> {\n\t\treturn this._generateOptions(ctx);\n\t}\n\n\tasync getInputAttributes(\n\t\tfctx: FormControlContext\n\t): Promise<Record<string, string | boolean>> {\n\t\tconst original = await super.getInputAttributes(fctx);\n\t\treturn {\n\t\t\t...original,\n\t\t\t...Object.fromEntries([\n\t\t\t\t...(this.options.autosubmit\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\"onchange\",\n\t\t\t\t\t\t\t\t(original.onchange || \"\") +\n\t\t\t\t\t\t\t\t\t\";this.form.submit();\",\n\t\t\t\t\t\t\t],\n\t\t\t\t\t ]\n\t\t\t\t\t: []),\n\t\t\t]),\n\t\t};\n\t}\n\n\tasync renderInput(\n\t\tctx: Context,\n\t\tattributes_str: string,\n\t\tdata: Record<string, FormDataValue>\n\t): Promise<FlatTemplatable> {\n\t\tconst { parsed: picked_value } = await this.field.getValue(ctx, data);\n\t\treturn /* HTML */ tempstream`<select ${attributes_str}>\n\t\t\t${\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\tPromise.resolve(this.generateOptions(ctx)).then((options) =>\n\t\t\t\t\toptions.map(\n\t\t\t\t\t\t({ value, label }) =>\n\t\t\t\t\t\t\t`<option value=\"${attribute(value)}\" ${\n\t\t\t\t\t\t\t\t(value || \"\") == picked_value ? \"selected\" : \"\"\n\t\t\t\t\t\t\t}>${label}</option>`\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t}\n\t\t</select>`;\n\t}\n}\n\nexport class Dropdown extends FreeformDropdown {\n\tconstructor(\n\t\tpublic field: PickFromListField<boolean>,\n\t\tpublic options: DropdownOptions = {\n\t\t\tlabel: field.name,\n\t\t\tautosubmit: false,\n\t\t\tautocomplete: true,\n\t\t}\n\t) {\n\t\tsuper(field, (ctx) => field.generateOptions(ctx), options);\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"865a0c5dd964f52f0519cc9475111965a35b68c9"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/simple-input.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/simple-input.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":24},"end":{"line":5,"column":60}},"4":{"start":{"line":6,"column":28},"end":{"line":6,"column":68}},"5":{"start":{"line":7,"column":19},"end":{"line":7,"column":40}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":23}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":27}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":37}},"9":{"start":{"line":15,"column":8},"end":{"line":15,"column":18}},"10":{"start":{"line":18,"column":8},"end":{"line":18,"column":43}},"11":{"start":{"line":21,"column":8},"end":{"line":23,"column":30}},"12":{"start":{"line":26,"column":8},"end":{"line":26,"column":50}},"13":{"start":{"line":29,"column":8},"end":{"line":31,"column":57}},"14":{"start":{"line":34,"column":25},"end":{"line":34,"column":55}},"15":{"start":{"line":35,"column":25},"end":{"line":35,"column":44}},"16":{"start":{"line":36,"column":39},"end":{"line":36,"column":85}},"17":{"start":{"line":37,"column":8},"end":{"line":55,"column":11}},"18":{"start":{"line":58,"column":8},"end":{"line":60,"column":17}},"19":{"start":{"line":63,"column":8},"end":{"line":63,"column":45}},"20":{"start":{"line":66,"column":19},"end":{"line":66,"column":31}},"21":{"start":{"line":67,"column":22},"end":{"line":67,"column":37}},"22":{"start":{"line":68,"column":21},"end":{"line":68,"column":35}},"23":{"start":{"line":69,"column":35},"end":{"line":69,"column":81}},"24":{"start":{"line":70,"column":8},"end":{"line":78,"column":6}},"25":{"start":{"line":81,"column":0},"end":{"line":81,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":32},"end":{"line":13,"column":5}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":32},"end":{"line":16,"column":5}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":17,"column":4},"end":{"line":17,"column":5}},"loc":{"start":{"line":17,"column":14},"end":{"line":19,"column":5}},"line":17},"3":{"name":"(anonymous_3)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":15},"end":{"line":24,"column":5}},"line":20},"4":{"name":"(anonymous_4)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":12},"end":{"line":27,"column":5}},"line":25},"5":{"name":"(anonymous_5)","decl":{"start":{"line":28,"column":4},"end":{"line":28,"column":5}},"loc":{"start":{"line":28,"column":21},"end":{"line":32,"column":5}},"line":28},"6":{"name":"(anonymous_6)","decl":{"start":{"line":33,"column":4},"end":{"line":33,"column":5}},"loc":{"start":{"line":33,"column":35},"end":{"line":56,"column":5}},"line":33},"7":{"name":"(anonymous_7)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":23},"end":{"line":61,"column":5}},"line":57},"8":{"name":"(anonymous_8)","decl":{"start":{"line":62,"column":4},"end":{"line":62,"column":5}},"loc":{"start":{"line":62,"column":51},"end":{"line":64,"column":5}},"line":62},"9":{"name":"(anonymous_9)","decl":{"start":{"line":65,"column":4},"end":{"line":65,"column":5}},"loc":{"start":{"line":65,"column":23},"end":{"line":79,"column":5}},"line":65}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":23},"end":{"line":12,"column":36}},"type":"binary-expr","locations":[{"start":{"line":12,"column":23},"end":{"line":12,"column":30}},{"start":{"line":12,"column":34},"end":{"line":12,"column":36}}],"line":12},"1":{"loc":{"start":{"line":18,"column":15},"end":{"line":18,"column":42}},"type":"binary-expr","locations":[{"start":{"line":18,"column":15},"end":{"line":18,"column":32}},{"start":{"line":18,"column":36},"end":{"line":18,"column":42}}],"line":18},"2":{"loc":{"start":{"line":21,"column":15},"end":{"line":23,"column":29}},"type":"cond-expr","locations":[{"start":{"line":22,"column":14},"end":{"line":22,"column":32}},{"start":{"line":23,"column":14},"end":{"line":23,"column":29}}],"line":21},"3":{"loc":{"start":{"line":26,"column":15},"end":{"line":26,"column":49}},"type":"binary-expr","locations":[{"start":{"line":26,"column":15},"end":{"line":26,"column":30}},{"start":{"line":26,"column":34},"end":{"line":26,"column":49}}],"line":26},"4":{"loc":{"start":{"line":29,"column":15},"end":{"line":31,"column":56}},"type":"cond-expr","locations":[{"start":{"line":30,"column":14},"end":{"line":30,"column":16}},{"start":{"line":31,"column":14},"end":{"line":31,"column":56}}],"line":29},"5":{"loc":{"start":{"line":31,"column":14},"end":{"line":31,"column":56}},"type":"binary-expr","locations":[{"start":{"line":31,"column":14},"end":{"line":31,"column":38}},{"start":{"line":31,"column":42},"end":{"line":31,"column":56}}],"line":31},"6":{"loc":{"start":{"line":34,"column":25},"end":{"line":34,"column":55}},"type":"binary-expr","locations":[{"start":{"line":34,"column":25},"end":{"line":34,"column":46}},{"start":{"line":34,"column":50},"end":{"line":34,"column":55}}],"line":34},"7":{"loc":{"start":{"line":43,"column":16},"end":{"line":47,"column":28}},"type":"cond-expr","locations":[{"start":{"line":44,"column":22},"end":{"line":44,"column":36}},{"start":{"line":45,"column":22},"end":{"line":47,"column":28}}],"line":43},"8":{"loc":{"start":{"line":43,"column":16},"end":{"line":43,"column":29}},"type":"binary-expr","locations":[{"start":{"line":43,"column":16},"end":{"line":43,"column":22}},{"start":{"line":43,"column":26},"end":{"line":43,"column":29}}],"line":43},"9":{"loc":{"start":{"line":45,"column":22},"end":{"line":47,"column":28}},"type":"cond-expr","locations":[{"start":{"line":46,"column":26},"end":{"line":46,"column":50}},{"start":{"line":47,"column":26},"end":{"line":47,"column":28}}],"line":45},"10":{"loc":{"start":{"line":45,"column":22},"end":{"line":45,"column":61}},"type":"binary-expr","locations":[{"start":{"line":45,"column":22},"end":{"line":45,"column":42}},{"start":{"line":45,"column":46},"end":{"line":45,"column":61}}],"line":45},"11":{"loc":{"start":{"line":46,"column":26},"end":{"line":46,"column":50}},"type":"binary-expr","locations":[{"start":{"line":46,"column":26},"end":{"line":46,"column":44}},{"start":{"line":46,"column":48},"end":{"line":46,"column":50}}],"line":46},"12":{"loc":{"start":{"line":49,"column":16},"end":{"line":49,"column":60}},"type":"cond-expr","locations":[{"start":{"line":49,"column":31},"end":{"line":49,"column":55}},{"start":{"line":49,"column":58},"end":{"line":49,"column":60}}],"line":49},"13":{"loc":{"start":{"line":51,"column":16},"end":{"line":51,"column":52}},"type":"cond-expr","locations":[{"start":{"line":51,"column":27},"end":{"line":51,"column":47}},{"start":{"line":51,"column":50},"end":{"line":51,"column":52}}],"line":51},"14":{"loc":{"start":{"line":52,"column":16},"end":{"line":52,"column":52}},"type":"cond-expr","locations":[{"start":{"line":52,"column":27},"end":{"line":52,"column":47}},{"start":{"line":52,"column":50},"end":{"line":52,"column":52}}],"line":52},"15":{"loc":{"start":{"line":53,"column":16},"end":{"line":53,"column":75}},"type":"cond-expr","locations":[{"start":{"line":53,"column":45},"end":{"line":53,"column":70}},{"start":{"line":53,"column":73},"end":{"line":53,"column":75}}],"line":53},"16":{"loc":{"start":{"line":54,"column":16},"end":{"line":54,"column":70}},"type":"cond-expr","locations":[{"start":{"line":54,"column":36},"end":{"line":54,"column":65}},{"start":{"line":54,"column":68},"end":{"line":54,"column":70}}],"line":54},"17":{"loc":{"start":{"line":58,"column":15},"end":{"line":60,"column":16}},"type":"cond-expr","locations":[{"start":{"line":59,"column":25},"end":{"line":59,"column":77}},{"start":{"line":60,"column":14},"end":{"line":60,"column":16}}],"line":58},"18":{"loc":{"start":{"line":71,"column":6},"end":{"line":71,"column":56}},"type":"cond-expr","locations":[{"start":{"line":71,"column":14},"end":{"line":71,"column":51}},{"start":{"line":71,"column":54},"end":{"line":71,"column":56}}],"line":71},"19":{"loc":{"start":{"line":75,"column":6},"end":{"line":77,"column":16}},"type":"cond-expr","locations":[{"start":{"line":76,"column":14},"end":{"line":76,"column":58}},{"start":{"line":77,"column":14},"end":{"line":77,"column":16}}],"line":75},"20":{"loc":{"start":{"line":75,"column":6},"end":{"line":75,"column":58}},"type":"binary-expr","locations":[{"start":{"line":75,"column":6},"end":{"line":75,"column":12}},{"start":{"line":75,"column":16},"end":{"line":75,"column":41}},{"start":{"line":75,"column":45},"end":{"line":75,"column":58}}],"line":75}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":19,"7":19,"8":19,"9":42,"10":126,"11":42,"12":84,"13":42,"14":42,"15":42,"16":42,"17":42,"18":42,"19":42,"20":42,"21":42,"22":42,"23":42,"24":42,"25":1},"f":{"0":19,"1":42,"2":126,"3":42,"4":84,"5":42,"6":42,"7":42,"8":42,"9":42},"b":{"0":[19,2],"1":[126,21],"2":[35,7],"3":[84,84],"4":[0,42],"5":[42,42],"6":[42,42],"7":[3,39],"8":[42,6],"9":[39,0],"10":[39,39],"11":[39,27],"12":[42,0],"13":[0,42],"14":[42,0],"15":[42,0],"16":[0,42],"17":[0,42],"18":[42,0],"19":[10,32],"20":[42,42,42]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/simple-input.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/simple-input.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AACzD,6DAA2E;AAC3E,qEAAiE;AAGjE,yCAA8C;AA6B9C,MAAa,WAGX,SAAQ,2BAAgB;IAEzB,YACQ,KAAsC,EAC7C,OAAiB;QAEjB,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAHR,UAAK,GAAL,KAAK,CAAiC;QAI7C,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,QAAQ,CACb,IAAa,EACb,KAAoC;QAEpC,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;IACpC,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS;YACrC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;YACpB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,cAAc;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,EAAE;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,kBAAkB,CACvB,IAAwB;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACrC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CACvD,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,CACT,CAAC;QACF,OAAO,MAAM,CAAC,WAAW,CAAC;YAClB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACvD;gBACN,OAAO;gBACP,CAAC,KAAK,IAAI,GAAG;oBACZ,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAChB,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;wBACzC,CAAC,CAAG,MAAc,EAAE,QAAQ,EAAa,IAAI,EAAE;wBAC/C,CAAC,CAAC,EAAE;aACL;YACD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,CAAU;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;YACzB,CAAC,CAAC,UAAU,CAAC,wBAAwB,IAAI,CAAC,OAAO,CAAC,MAAM,SAAS;YACjE,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,IAAa,EACb,cAAsB,EACtB,KAAoC;QAEpC,OAAO,UAAU,cAAc,KAAK,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,MAAM,CACX,IAAwB;QAExB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE5B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CACnD,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,CACT,CAAC;QACF,OAAO,4BAAY,CAClB,CAAC,EAAE,EAAE,IAAI,EAAE,gCAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EACjD,uBAAU,CAAA,UAAU,CAAC;MAClB,KAAK,CAAC,CAAC,CAAC,eAAe,EAAE,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE;MAClD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;MACxC,IAAI,CAAC,WAAW,CACjB,IAAI,CAAC,GAAG,EACR,oCAAgB,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EACrD,IAAI,CAAC,IAAI,CACT;MACC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;MACxB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ;YACrD,CAAC,CAAC,6BAA6B,OAAO,QAAQ;YAC9C,CAAC,CAAC,EAAE;IACL,CACD,CAAC;IACH,CAAC;CACD;AAhHD,kCAgHC","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { getRequiredClass, inputWrapper } from \"../../utils/input-wrapper\";\nimport { renderAttributes } from \"../../utils/render-attributes\";\nimport { FormField } from \"../fields/field\";\nimport { FormDataValue } from \"../form\";\nimport { FormFieldControl } from \"./controls\";\nimport { FormControlContext } from \"./form-control\";\n\nexport type SimpleInputOptions = {\n\tid?: string;\n\tlabel?: string;\n\tautocomplete?: boolean;\n\thide_errors?: boolean;\n\ttype?:\n\t\t| \"color\"\n\t\t| \"date\"\n\t\t| \"email\"\n\t\t| \"file\"\n\t\t| \"month\"\n\t\t| \"number\"\n\t\t| \"password\"\n\t\t| \"search\"\n\t\t| \"tel\"\n\t\t| \"text\"\n\t\t| \"time\"\n\t\t| \"url\"\n\t\t| \"week\";\n\tvalue?: string;\n\tplaceholder?: string;\n\treadonly?: boolean;\n\tstep?: number;\n\tsuffix?: string;\n};\n\nexport class SimpleInput<\n\tParsedValue,\n\tOptions extends SimpleInputOptions = SimpleInputOptions\n> extends FormFieldControl {\n\toptions: SimpleInputOptions;\n\tconstructor(\n\t\tpublic field: FormField<boolean, ParsedValue>,\n\t\toptions?: Options\n\t) {\n\t\tsuper([field]);\n\t\tthis.options = options || {};\n\t}\n\n\tasync preInput(\n\t\t_ctx: Context,\n\t\t_data: Record<string, FormDataValue>\n\t): Promise<FlatTemplatable> {\n\t\treturn \"\";\n\t}\n\n\tgetType(): string {\n\t\treturn this.options.type || \"text\";\n\t}\n\n\tgetLabel(): string {\n\t\treturn this.options.label != undefined\n\t\t\t? this.options.label\n\t\t\t: this.field.name;\n\t}\n\n\tgetID(): string {\n\t\treturn this.options.id || this.field.name;\n\t}\n\n\tgetPlaceholder(): string {\n\t\treturn this.options.placeholder === \"\"\n\t\t\t? \"\"\n\t\t\t: this.options.placeholder || this.getType();\n\t}\n\n\tasync getInputAttributes(\n\t\tfctx: FormControlContext\n\t): Promise<Record<string, string | boolean>> {\n\t\tconst readonly = this.options.readonly || false;\n\t\tconst required = this.field.required;\n\t\tconst { parsed, raw, valid } = await this.field.getValue(\n\t\t\tfctx.ctx,\n\t\t\tfctx.data\n\t\t);\n\t\treturn Object.fromEntries([\n\t\t\t<const>[\"id\", this.getID()],\n\t\t\t<const>[\"type\", this.getType()],\n\t\t\t<const>[\"name\", `${fctx.field_name_prefix}${this.field.name}`],\n\t\t\t<const>[\n\t\t\t\t\"value\",\n\t\t\t\t!valid && raw\n\t\t\t\t\t? raw.toString()\n\t\t\t\t\t: parsed !== undefined && parsed !== null\n\t\t\t\t\t? ((parsed as any)?.toString() as string) || \"\"\n\t\t\t\t\t: \"\",\n\t\t\t],\n\t\t\t...(fctx.form_id ? [[\"form\", fctx.form_id]] : []),\n\t\t\t<const>[\"placeholder\", this.getPlaceholder()],\n\t\t\t...(readonly ? [[\"readonly\", true]] : []),\n\t\t\t...(required ? [[\"required\", true]] : []),\n\t\t\t...(!this.options.autocomplete ? [[\"autocomplete\", \"off\"]] : []),\n\t\t\t...(this.options.step ? [[\"step\", this.options.step]] : []),\n\t\t]);\n\t}\n\n\tasync postInput(_: Context): Promise<FlatTemplatable> {\n\t\treturn this.options.suffix\n\t\t\t? /* HTML */ `<span class=\"suffix\">${this.options.suffix}</span>`\n\t\t\t: \"\";\n\t}\n\n\tasync renderInput(\n\t\t_ctx: Context,\n\t\tattributes_str: string,\n\t\t_data: Record<string, FormDataValue>\n\t): Promise<FlatTemplatable> {\n\t\treturn `<input ${attributes_str} />`;\n\t}\n\n\tasync render<Fields extends Record<string, FormField>>(\n\t\tfctx: FormControlContext\n\t): Promise<FlatTemplatable> {\n\t\tconst id = this.getID();\n\t\tconst label = this.getLabel();\n\t\tconst type = this.getType();\n\n\t\tconst { valid, message } = await this.field.getValue(\n\t\t\tfctx.ctx,\n\t\t\tfctx.data\n\t\t);\n\t\treturn inputWrapper(\n\t\t\t[id, type, getRequiredClass(this.field.required)],\n\t\t\ttempstream/* HTML */ `\n\t\t\t\t${label ? `<label for=\"${id}\">${label}</label>` : \"\"}\n\t\t\t\t${await this.preInput(fctx.ctx, fctx.data)}\n\t\t\t\t${this.renderInput(\n\t\t\t\t\tfctx.ctx,\n\t\t\t\t\trenderAttributes(await this.getInputAttributes(fctx)),\n\t\t\t\t\tfctx.data\n\t\t\t\t)}\n\t\t\t\t${this.postInput(fctx.ctx)}\n\t\t\t\t${~valid && !this.options.hide_errors && fctx.validate\n\t\t\t\t\t? `<div class=\"input__error\">${message}</div>`\n\t\t\t\t\t: \"\"}\n\t\t\t`\n\t\t);\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7fcb9eacbfb92351485bd24bd1a5cc77cfa9b542"},"/home/kuba/projects/sealcode/sealgen/src/utils/render-attributes.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/render-attributes.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":41}},"3":{"start":{"line":6,"column":4},"end":{"line":20,"column":19}},"4":{"start":{"line":8,"column":8},"end":{"line":18,"column":9}},"5":{"start":{"line":9,"column":12},"end":{"line":14,"column":13}},"6":{"start":{"line":10,"column":16},"end":{"line":10,"column":27}},"7":{"start":{"line":13,"column":16},"end":{"line":13,"column":26}},"8":{"start":{"line":17,"column":12},"end":{"line":17,"column":61}},"9":{"start":{"line":22,"column":0},"end":{"line":22,"column":44}}},"fnMap":{"0":{"name":"renderAttributes","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":25}},"loc":{"start":{"line":5,"column":33},"end":{"line":21,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":13},"end":{"line":7,"column":14}},"loc":{"start":{"line":7,"column":31},"end":{"line":19,"column":5}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":8},"end":{"line":18,"column":9}},"type":"if","locations":[{"start":{"line":8,"column":8},"end":{"line":18,"column":9}},{"start":{"line":8,"column":8},"end":{"line":18,"column":9}}],"line":8},"1":{"loc":{"start":{"line":9,"column":12},"end":{"line":14,"column":13}},"type":"if","locations":[{"start":{"line":9,"column":12},"end":{"line":14,"column":13}},{"start":{"line":9,"column":12},"end":{"line":14,"column":13}}],"line":9}},"s":{"0":1,"1":1,"2":1,"3":42,"4":336,"5":42,"6":42,"7":0,"8":294,"9":1},"f":{"0":42,"1":336},"b":{"0":[42,294],"1":[42,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/render-attributes.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/render-attributes.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AAExC,SAAgB,gBAAgB,CAAC,KAAuC;IACvE,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACrB,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;YAC/B,IAAI,KAAK,EAAE;gBACV,OAAO,GAAG,CAAC;aACX;iBAAM;gBACN,OAAO,EAAE,CAAC;aACV;SACD;aAAM;YACN,OAAO,GAAG,GAAG,KAAK,oBAAS,CAAC,KAAK,CAAC,GAAG,CAAC;SACtC;IACF,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,CAAC;AAdD,4CAcC","sourcesContent":["import { attribute } from \"../sanitize\";\n\nexport function renderAttributes(attrs: Record<string, string | boolean>) {\n\treturn Object.entries(attrs)\n\t\t.map(([key, value]) => {\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\tif (value) {\n\t\t\t\t\treturn key;\n\t\t\t\t} else {\n\t\t\t\t\treturn \"\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn `${key}=\"${attribute(value)}\"`;\n\t\t\t}\n\t\t})\n\t\t.join(\" \");\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d60ded8670020f9dd534c1c3e5692970f2e98a9f"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-header.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-header.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":40}},"3":{"start":{"line":6,"column":46},"end":{"line":6,"column":50}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":16}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":25}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":35}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":33}},"8":{"start":{"line":13,"column":23},"end":{"line":13,"column":49}},"9":{"start":{"line":14,"column":8},"end":{"line":14,"column":53}},"10":{"start":{"line":17,"column":0},"end":{"line":17,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":52},"end":{"line":11,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":34},"end":{"line":6,"column":35}},"loc":{"start":{"line":6,"column":46},"end":{"line":6,"column":50}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":23},"end":{"line":15,"column":5}},"line":12}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":22},"end":{"line":6,"column":50}},"type":"default-arg","locations":[{"start":{"line":6,"column":34},"end":{"line":6,"column":50}}],"line":6},"1":{"loc":{"start":{"line":14,"column":15},"end":{"line":14,"column":52}},"type":"cond-expr","locations":[{"start":{"line":14,"column":24},"end":{"line":14,"column":47}},{"start":{"line":14,"column":50},"end":{"line":14,"column":52}}],"line":14}},"s":{"0":1,"1":1,"2":1,"3":7,"4":2,"5":2,"6":2,"7":2,"8":7,"9":7,"10":1},"f":{"0":2,"1":7,"2":7},"b":{"0":[2],"1":[7,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-header.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-header.ts"],"names":[],"mappings":";;;AACA,yCAAyC;AAGzC,MAAa,UAAW,SAAQ,sBAAW;IAE1C,YACQ,IAAY,EACZ,YAEiB,KAAK,IAAI,EAAE,CAAC,IAAI;QAExC,KAAK,EAAE,CAAC;QALD,SAAI,GAAJ,IAAI,CAAQ;QACZ,cAAS,GAAT,SAAS,CAEwB;QALzC,SAAI,GAAU,YAAY,CAAC;IAQ3B,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,IAAwB;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;CACD;AAdD,gCAcC","sourcesContent":["import { Context } from \"koa\";\nimport { FormControl } from \"./controls\";\nimport { FormControlContext } from \"./form-control\";\n\nexport class FormHeader extends FormControl {\n\trole = <const>\"decoration\";\n\tconstructor(\n\t\tpublic text: string,\n\t\tpublic isVisible: (\n\t\t\tfctx: FormControlContext\n\t\t) => Promise<boolean> = async () => true\n\t) {\n\t\tsuper();\n\t}\n\tasync render(fctx: FormControlContext) {\n\t\tconst isVsbl = await this.isVisible(fctx);\n\t\treturn isVsbl ? `<h2>${this.text}</h2>` : \"\";\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6dde43d047451b9b77909da849d09b6d07fecd99"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-paragraph.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-paragraph.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":40}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":16}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":25}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":33}},"6":{"start":{"line":12,"column":8},"end":{"line":12,"column":37}},"7":{"start":{"line":15,"column":0},"end":{"line":15,"column":38}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":22},"end":{"line":10,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":13},"end":{"line":13,"column":5}},"line":11}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":1},"f":{"0":0,"1":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-paragraph.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/form-paragraph.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAEzC,MAAa,aAAc,SAAQ,sBAAW;IAE7C,YAAmB,IAAY;QAC9B,KAAK,EAAE,CAAC;QADU,SAAI,GAAJ,IAAI,CAAQ;QAD/B,SAAI,GAAU,YAAY,CAAC;IAG3B,CAAC;IACD,MAAM;QACL,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IAC9B,CAAC;CACD;AARD,sCAQC","sourcesContent":["import { FormControl } from \"./controls\";\n\nexport class FormParagraph extends FormControl {\n\trole = <const>\"decoration\";\n\tconstructor(public text: string) {\n\t\tsuper();\n\t}\n\trender() {\n\t\treturn `<p>${this.text}</p>`;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"59d2584fcdb1bf24c9ac37e2f1f4ac407b27e8d9"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/html.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/html.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":22}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":40}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":16}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":33}},"5":{"start":{"line":9,"column":8},"end":{"line":15,"column":9}},"6":{"start":{"line":10,"column":12},"end":{"line":10,"column":41}},"7":{"start":{"line":11,"column":12},"end":{"line":11,"column":50}},"8":{"start":{"line":14,"column":12},"end":{"line":14,"column":45}},"9":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"10":{"start":{"line":19,"column":12},"end":{"line":19,"column":33}},"11":{"start":{"line":21,"column":8},"end":{"line":23,"column":28}},"12":{"start":{"line":26,"column":0},"end":{"line":26,"column":20}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":57},"end":{"line":16,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":4},"end":{"line":17,"column":5}},"loc":{"start":{"line":17,"column":23},"end":{"line":24,"column":5}},"line":17}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":9,"column":8},"end":{"line":15,"column":9}},{"start":{"line":9,"column":8},"end":{"line":15,"column":9}}],"line":9},"1":{"loc":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"type":"if","locations":[{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},{"start":{"line":18,"column":8},"end":{"line":20,"column":9}}],"line":18},"2":{"loc":{"start":{"line":21,"column":15},"end":{"line":23,"column":27}},"type":"cond-expr","locations":[{"start":{"line":22,"column":14},"end":{"line":22,"column":33}},{"start":{"line":23,"column":14},"end":{"line":23,"column":27}}],"line":21}},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":1},"f":{"0":0,"1":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/html.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/html.ts"],"names":[],"mappings":";;;AAGA,yCAAyC;AAOzC,MAAa,IAAK,SAAQ,sBAAW;IAMpC,YACC,gBAAoD,EACpD,qBAAkD;QAElD,KAAK,EAAE,CAAC;QATT,SAAI,GAAW,YAAwC,CAAC;QAUvD,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YAC1B,IAAI,CAAC,IAAI,GAAG,gBAA2C,CAAC;YACxD,IAAI,CAAC,QAAQ,GAAG,qBAAiC,CAAC;SAClD;aAAM;YACN,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;SACjC;IACF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwB;QACpC,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACtC,OAAO,IAAI,CAAC,QAAQ,CAAC;SACrB;QACD,OAAO,OAAO,IAAI,CAAC,QAAQ,IAAI,UAAU;YACxC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClB,CAAC;CACD;AA3BD,oBA2BC","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable } from \"tempstream\";\nimport { FormDataValue, FormMessage } from \"../form\";\nimport { FormControl } from \"./controls\";\nimport { FormControlContext } from \"./form-control\";\n\ntype Renderer =\n\t| ((fctx: FormControlContext) => FlatTemplatable)\n\t| FlatTemplatable;\n\nexport class HTML extends FormControl {\n\trole = (<const>\"decoration\") as \"decoration\" | \"submit\";\n\tpublic renderer: Renderer;\n\n\tconstructor(role: \"decoration\" | \"submit\", renderer: Renderer);\n\tconstructor(renderer: Renderer);\n\tconstructor(\n\t\trole_or_renderer: \"decoration\" | \"submit\" | Renderer,\n\t\trenderer_or_undefined?: Renderer | FlatTemplatable\n\t) {\n\t\tsuper();\n\t\tif (arguments.length == 2) {\n\t\t\tthis.role = role_or_renderer as \"decoration\" | \"submit\";\n\t\t\tthis.renderer = renderer_or_undefined as Renderer;\n\t\t} else {\n\t\t\tthis.renderer = role_or_renderer;\n\t\t}\n\t}\n\n\tasync render(fctx: FormControlContext): Promise<FlatTemplatable> {\n\t\tif (typeof this.renderer === \"string\") {\n\t\t\treturn this.renderer;\n\t\t}\n\t\treturn typeof this.renderer == \"function\"\n\t\t\t? this.renderer(fctx)\n\t\t\t: this.renderer;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"928c06c197f3386b06efd7703cbd22b589217d08"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/hidden-input.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/hidden-input.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":44}},"4":{"start":{"line":6,"column":29},"end":{"line":6,"column":60}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":23}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":27}},"7":{"start":{"line":13,"column":24},"end":{"line":13,"column":70}},"8":{"start":{"line":14,"column":8},"end":{"line":14,"column":168}},"9":{"start":{"line":17,"column":0},"end":{"line":17,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":23},"end":{"line":11,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":23},"end":{"line":15,"column":5}},"line":12}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":118},"end":{"line":14,"column":127}},"type":"binary-expr","locations":[{"start":{"line":14,"column":118},"end":{"line":14,"column":121}},{"start":{"line":14,"column":125},"end":{"line":14,"column":127}}],"line":14}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":1},"f":{"0":0,"1":0},"b":{"0":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/hidden-input.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/hidden-input.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AACzD,6CAA2C;AAI3C,6DAAwD;AAExD,MAAa,WAAY,SAAQ,qCAAgB;IAChD,YAAmB,KAAgB;QAClC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QADG,UAAK,GAAL,KAAK,CAAW;IAEnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwB;QACpC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,uBAAU,CAAA,8BAChB,IAAI,CAAC,KAAK,CAAC,IACZ,YAAY,oBAAS,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,WAC5C,IAAI,CAAC,OACN,IAAI,CAAC;IACN,CAAC;CACD;AAbD,kCAaC","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { attribute } from \"../../sanitize\";\nimport { FormField } from \"../fields/field\";\nimport { FormDataValue } from \"../form\";\nimport { FormControlContext } from \"./form-control\";\nimport { FormFieldControl } from \"./form-field-control\";\n\nexport class HiddenInput extends FormFieldControl {\n\tconstructor(public field: FormField) {\n\t\tsuper([field]);\n\t}\n\n\tasync render(fctx: FormControlContext): Promise<FlatTemplatable> {\n\t\tconst { raw } = await this.field.getValue(fctx.ctx, fctx.data);\n\t\treturn tempstream`<input type=\"hidden\" name=\"${\n\t\t\tthis.field.name\n\t\t}\" value=\"${attribute((raw || \"\").toString())}\" form=\"${\n\t\t\tfctx.form_id\n\t\t}\">`;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"01f0275b4fe31403fcc2a296264f7019ff35f33d"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/textarea.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/textarea.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"2":{"start":{"line":4,"column":23},"end":{"line":4,"column":48}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":30}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":27}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":31}},"6":{"start":{"line":12,"column":8},"end":{"line":16,"column":17}},"7":{"start":{"line":19,"column":26},"end":{"line":19,"column":62}},"8":{"start":{"line":20,"column":24},"end":{"line":20,"column":48}},"9":{"start":{"line":21,"column":8},"end":{"line":23,"column":9}},"10":{"start":{"line":22,"column":12},"end":{"line":22,"column":154}},"11":{"start":{"line":24,"column":8},"end":{"line":29,"column":10}},"12":{"start":{"line":32,"column":34},"end":{"line":32,"column":70}},"13":{"start":{"line":33,"column":8},"end":{"line":33,"column":72}},"14":{"start":{"line":36,"column":0},"end":{"line":36,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":37},"end":{"line":10,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":24},"end":{"line":17,"column":5}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":35},"end":{"line":30,"column":5}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":4},"end":{"line":31,"column":5}},"loc":{"start":{"line":31,"column":45},"end":{"line":34,"column":5}},"line":31}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":23},"end":{"line":6,"column":35}},"type":"default-arg","locations":[{"start":{"line":6,"column":33},"end":{"line":6,"column":35}}],"line":6},"1":{"loc":{"start":{"line":12,"column":15},"end":{"line":16,"column":16}},"type":"cond-expr","locations":[{"start":{"line":13,"column":25},"end":{"line":15,"column":12}},{"start":{"line":16,"column":14},"end":{"line":16,"column":16}}],"line":12},"2":{"loc":{"start":{"line":20,"column":24},"end":{"line":20,"column":48}},"type":"binary-expr","locations":[{"start":{"line":20,"column":24},"end":{"line":20,"column":42}},{"start":{"line":20,"column":46},"end":{"line":20,"column":48}}],"line":20},"3":{"loc":{"start":{"line":21,"column":8},"end":{"line":23,"column":9}},"type":"if","locations":[{"start":{"line":21,"column":8},"end":{"line":23,"column":9}},{"start":{"line":21,"column":8},"end":{"line":23,"column":9}}],"line":21},"4":{"loc":{"start":{"line":22,"column":110},"end":{"line":22,"column":132}},"type":"binary-expr","locations":[{"start":{"line":22,"column":110},"end":{"line":22,"column":127}},{"start":{"line":22,"column":131},"end":{"line":22,"column":132}}],"line":22},"5":{"loc":{"start":{"line":26,"column":18},"end":{"line":26,"column":74}},"type":"cond-expr","locations":[{"start":{"line":26,"column":38},"end":{"line":26,"column":66}},{"start":{"line":26,"column":69},"end":{"line":26,"column":74}}],"line":26},"6":{"loc":{"start":{"line":27,"column":18},"end":{"line":27,"column":74}},"type":"cond-expr","locations":[{"start":{"line":27,"column":38},"end":{"line":27,"column":66}},{"start":{"line":27,"column":69},"end":{"line":27,"column":74}}],"line":27}},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/textarea.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/textarea.ts"],"names":[],"mappings":";;;AAIA,iDAAiE;AAEjE,MAAa,QAAmC,SAAQ,0BAEvD;IACA,YACQ,KAAwC,EACxC,UAMH,EAAE;QAEN,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QATf,UAAK,GAAL,KAAK,CAAmC;QACxC,YAAO,GAAP,OAAO,CAMR;IAGP,CAAC;IAED,iBAAiB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW;YAC9B,CAAC,CAAC,UAAU,CAAC;OACT,IAAI,CAAC,OAAO,CAAC,WAAW;YACnB;YACT,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,KAAK,CAAC,kBAAkB,CACvB,IAAwB;QAExB,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAGrD,CAAC;QACF,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC1B,SAAS,IAAI,mFACZ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAClC,UAAU,CAAC;SACX;QACD,OAAO;YACN,GAAG,QAAQ;YACX,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK;YAC9D,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK;YAC9D,SAAS;SACT,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,GAAY,EACZ,UAAkB,EAClB,IAAmC;QAEnC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/D,OAAO,UAAU,CAAC,aAAa,UAAU,IAAI,KAAK,aAAa,CAAC;IACjE,CAAC;CACD;AArDD,4BAqDC","sourcesContent":["import { Context } from \"koa\";\nimport { FormField } from \"../fields/field\";\nimport { FormDataValue } from \"../form\";\nimport { FormControlContext } from \"./form-control\";\nimport { SimpleInput, SimpleInputOptions } from \"./simple-input\";\n\nexport class Textarea<Required extends boolean> extends SimpleInput<\n\tstring | null\n> {\n\tconstructor(\n\t\tpublic field: FormField<boolean, string | null>,\n\t\tpublic options: SimpleInputOptions & {\n\t\t\tlabel?: string;\n\t\t\trows?: number;\n\t\t\tcols?: number;\n\t\t\tdescription?: string;\n\t\t\tautogrow?: boolean;\n\t\t} = {}\n\t) {\n\t\tsuper(field, options);\n\t}\n\n\trenderDescription() {\n\t\treturn this.options.description\n\t\t\t? /* HTML */ `<div class=\"form-input__description\">\n\t\t\t\t\t${this.options.description}\n\t\t\t </div>`\n\t\t\t: \"\";\n\t}\n\n\tasync getInputAttributes(\n\t\tfctx: FormControlContext\n\t): Promise<Record<string, string | boolean>> {\n\t\tconst original = (await super.getInputAttributes(fctx)) as Record<\n\t\t\tstring,\n\t\t\tstring | boolean\n\t\t>;\n\t\tlet onkeydown = original.onkeydown || \"\";\n\t\tif (this.options.autogrow) {\n\t\t\tonkeydown += `;this.style.height = '5px';this.style.height = Math.max((this.scrollHeight)+32, ${\n\t\t\t\t((this.options.rows || 2) + 1) * 16\n\t\t\t} )+'px';`;\n\t\t}\n\t\treturn {\n\t\t\t...original,\n\t\t\trows: this.options.rows ? this.options.rows.toString() : false,\n\t\t\tcols: this.options.cols ? this.options.cols.toString() : false,\n\t\t\tonkeydown,\n\t\t};\n\t}\n\n\tasync renderInput(\n\t\tctx: Context,\n\t\tattributes: string,\n\t\tdata: Record<string, FormDataValue>\n\t) {\n\t\tconst { parsed: value } = await this.field.getValue(ctx, data);\n\t\treturn /* HTML */ `<textarea ${attributes}>${value}</textarea>`;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"28e445c7cc335d98e6648cf876650198b3b85ecd"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/field-group.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/field-group.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":29},"end":{"line":5,"column":60}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":18}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":33}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":31}},"7":{"start":{"line":13,"column":8},"end":{"line":13,"column":18}},"8":{"start":{"line":16,"column":8},"end":{"line":16,"column":18}},"9":{"start":{"line":19,"column":8},"end":{"line":19,"column":18}},"10":{"start":{"line":22,"column":8},"end":{"line":22,"column":18}},"11":{"start":{"line":25,"column":8},"end":{"line":25,"column":18}},"12":{"start":{"line":28,"column":8},"end":{"line":28,"column":44}},"13":{"start":{"line":31,"column":35},"end":{"line":31,"column":47}},"14":{"start":{"line":32,"column":8},"end":{"line":53,"column":4}},"15":{"start":{"line":49,"column":38},"end":{"line":49,"column":58}},"16":{"start":{"line":56,"column":0},"end":{"line":56,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":40},"end":{"line":11,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":15},"end":{"line":14,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":24},"end":{"line":17,"column":5}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":16},"end":{"line":20,"column":5}},"line":18},"4":{"name":"(anonymous_4)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":16},"end":{"line":23,"column":5}},"line":21},"5":{"name":"(anonymous_5)","decl":{"start":{"line":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":17},"end":{"line":26,"column":5}},"line":24},"6":{"name":"(anonymous_6)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":25},"end":{"line":29,"column":5}},"line":27},"7":{"name":"(anonymous_7)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":23},"end":{"line":54,"column":5}},"line":30},"8":{"name":"(anonymous_8)","decl":{"start":{"line":49,"column":25},"end":{"line":49,"column":26}},"loc":{"start":{"line":49,"column":38},"end":{"line":49,"column":58}},"line":49}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":26},"end":{"line":7,"column":38}},"type":"default-arg","locations":[{"start":{"line":7,"column":36},"end":{"line":7,"column":38}}],"line":7},"1":{"loc":{"start":{"line":34,"column":26},"end":{"line":34,"column":39}},"type":"binary-expr","locations":[{"start":{"line":34,"column":26},"end":{"line":34,"column":33}},{"start":{"line":34,"column":37},"end":{"line":34,"column":39}}],"line":34},"2":{"loc":{"start":{"line":35,"column":6},"end":{"line":37,"column":16}},"type":"cond-expr","locations":[{"start":{"line":36,"column":14},"end":{"line":36,"column":48}},{"start":{"line":37,"column":14},"end":{"line":37,"column":16}}],"line":35},"3":{"loc":{"start":{"line":42,"column":7},"end":{"line":44,"column":16}},"type":"cond-expr","locations":[{"start":{"line":43,"column":14},"end":{"line":43,"column":68}},{"start":{"line":44,"column":14},"end":{"line":44,"column":16}}],"line":42}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/field-group.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/field-group.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAGzD,6DAAwD;AAExD,MAAa,UAAW,SAAQ,qCAAgB;IAC/C,YACQ,QAAuB,EACvB,UAIH,EAAE;QAEN,KAAK,CAAC,EAAE,CAAC,CAAC;QAPH,aAAQ,GAAR,QAAQ,CAAe;QACvB,YAAO,GAAP,OAAO,CAIR;IAGP,CAAC;IAED,QAAQ;QACP,OAAO,EAAE,CAAC;IACX,CAAC;IAED,iBAAiB;QAChB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,SAAS;QACR,OAAO,EAAE,CAAC;IACX,CAAC;IAED,SAAS;QACR,OAAO,EAAE,CAAC;IACX,CAAC;IAED,UAAU;QACT,OAAO,EAAE,CAAC;IACX,CAAC;IAED,kBAAkB;QACjB,OAAO,4BAA4B,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwB;QACpC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAExC,OAAO,uBAAU,CAAA,UAAU,CAAC;;yBAEL,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;MAC5C,IAAI,CAAC,OAAO,CAAC,WAAW;YACzB,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG;YACpC,CAAC,CAAC,EAAE;;MAEH,IAAI,CAAC,iBAAiB,EAAE;;OAEvB,IAAI,CAAC,QAAQ,EAAE;OACf,KAAK;YACN,CAAC,CAAC,UAAU,IAAI,CAAC,kBAAkB,EAAE,IAAI,KAAK,UAAU;YACxD,CAAC,CAAC,EAAE;OACH,IAAI,CAAC,SAAS,EAAE;;MAEjB,IAAI,CAAC,SAAS,EAAE;;OAEf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;MAErD,IAAI,CAAC,UAAU,EAAE;;GAEpB,CAAC;IACH,CAAC;CACD;AA9DD,gCA8DC","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { FormDataValue, FormMessage } from \"../form\";\nimport { FormControl, FormControlContext } from \"./form-control\";\nimport { FormFieldControl } from \"./form-field-control\";\n\nexport class FieldGroup extends FormFieldControl {\n\tconstructor(\n\t\tpublic controls: FormControl[],\n\t\tpublic options: {\n\t\t\tlabel?: string;\n\t\t\tclasses?: string[];\n\t\t\tcontainerID?: string;\n\t\t} = {}\n\t) {\n\t\tsuper([]);\n\t}\n\n\tpreLabel(): FlatTemplatable {\n\t\treturn \"\";\n\t}\n\n\tpreLabelContainer(): FlatTemplatable {\n\t\treturn \"\";\n\t}\n\n\tpostLabel(): FlatTemplatable {\n\t\treturn \"\";\n\t}\n\n\tpreFields(): FlatTemplatable {\n\t\treturn \"\";\n\t}\n\n\tpostFields(): FlatTemplatable {\n\t\treturn \"\";\n\t}\n\n\tgetGroupLabelProps(): FlatTemplatable {\n\t\treturn `class=\"field-group__label\"`;\n\t}\n\n\tasync render(fctx: FormControlContext): Promise<FlatTemplatable> {\n\t\tconst { label, classes } = this.options;\n\n\t\treturn tempstream/* HTML */ `\n\t\t\t<div\n\t\t\t\tclass=\"field-group ${(classes || []).join(\" \")}\"\n\t\t\t\t${this.options.containerID\n\t\t\t\t\t? `id=\"${this.options.containerID}\"`\n\t\t\t\t\t: \"\"}\n\t\t\t>\n\t\t\t\t${this.preLabelContainer()}\n\t\t\t\t<div class=\"field-group__label-container\">\n\t\t\t\t\t${this.preLabel()}\n\t\t\t\t\t${label\n\t\t\t\t\t\t? `<label ${this.getGroupLabelProps()}>${label}</label>`\n\t\t\t\t\t\t: \"\"}\n\t\t\t\t\t${this.postLabel()}\n\t\t\t\t</div>\n\t\t\t\t${this.preFields()}\n\t\t\t\t<div class=\"field-group__fields\">\n\t\t\t\t\t${this.controls.map((control) => control.render(fctx))}\n\t\t\t\t</div>\n\t\t\t\t${this.postFields()}\n\t\t\t</div>\n\t\t`;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"25916bdf8970a2eb707131361da24e1042ee6cba"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/derived.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/derived.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":34}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":42}},"4":{"start":{"line":6,"column":23},"end":{"line":6,"column":48}},"5":{"start":{"line":8,"column":58},"end":{"line":8,"column":60}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":16}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":29}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":31}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":35}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":33}},"11":{"start":{"line":16,"column":27},"end":{"line":16,"column":57}},"12":{"start":{"line":16,"column":50},"end":{"line":16,"column":56}},"13":{"start":{"line":17,"column":23},"end":{"line":17,"column":112}},"14":{"start":{"line":17,"column":86},"end":{"line":17,"column":110}},"15":{"start":{"line":18,"column":8},"end":{"line":18,"column":22}},"16":{"start":{"line":22,"column":19},"end":{"line":22,"column":46}},"17":{"start":{"line":23,"column":23},"end":{"line":23,"column":43}},"18":{"start":{"line":24,"column":43},"end":{"line":25,"column":65}},"19":{"start":{"line":24,"column":76},"end":{"line":25,"column":65}},"20":{"start":{"line":26,"column":8},"end":{"line":77,"column":10}},"21":{"start":{"line":32,"column":16},"end":{"line":36,"column":45}},"22":{"start":{"line":45,"column":51},"end":{"line":45,"column":61}},"23":{"start":{"line":70,"column":49},"end":{"line":70,"column":59}},"24":{"start":{"line":80,"column":0},"end":{"line":80,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":63},"end":{"line":14,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":45},"end":{"line":8,"column":46}},"loc":{"start":{"line":8,"column":58},"end":{"line":8,"column":60}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":33},"end":{"line":19,"column":5}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":43},"end":{"line":16,"column":44}},"loc":{"start":{"line":16,"column":50},"end":{"line":16,"column":56}},"line":16},"4":{"name":"(anonymous_4)","decl":{"start":{"line":17,"column":75},"end":{"line":17,"column":76}},"loc":{"start":{"line":17,"column":86},"end":{"line":17,"column":110}},"line":17},"5":{"name":"(anonymous_5)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":23},"end":{"line":78,"column":5}},"line":20},"6":{"name":"(anonymous_6)","decl":{"start":{"line":24,"column":43},"end":{"line":24,"column":44}},"loc":{"start":{"line":24,"column":76},"end":{"line":25,"column":65}},"line":24},"7":{"name":"(anonymous_7)","decl":{"start":{"line":31,"column":21},"end":{"line":31,"column":22}},"loc":{"start":{"line":31,"column":39},"end":{"line":37,"column":13}},"line":31},"8":{"name":"(anonymous_8)","decl":{"start":{"line":45,"column":40},"end":{"line":45,"column":41}},"loc":{"start":{"line":45,"column":51},"end":{"line":45,"column":61}},"line":45},"9":{"name":"(anonymous_9)","decl":{"start":{"line":70,"column":38},"end":{"line":70,"column":39}},"loc":{"start":{"line":70,"column":49},"end":{"line":70,"column":59}},"line":70}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":33},"end":{"line":8,"column":61}},"type":"default-arg","locations":[{"start":{"line":8,"column":45},"end":{"line":8,"column":61}}],"line":8},"1":{"loc":{"start":{"line":24,"column":44},"end":{"line":24,"column":71}},"type":"default-arg","locations":[{"start":{"line":24,"column":58},"end":{"line":24,"column":71}}],"line":24},"2":{"loc":{"start":{"line":30,"column":27},"end":{"line":30,"column":47}},"type":"binary-expr","locations":[{"start":{"line":30,"column":28},"end":{"line":30,"column":40}},{"start":{"line":30,"column":45},"end":{"line":30,"column":47}}],"line":30},"3":{"loc":{"start":{"line":32,"column":36},"end":{"line":36,"column":42}},"type":"cond-expr","locations":[{"start":{"line":33,"column":22},"end":{"line":33,"column":43}},{"start":{"line":34,"column":22},"end":{"line":36,"column":42}}],"line":32},"4":{"loc":{"start":{"line":34,"column":22},"end":{"line":36,"column":42}},"type":"cond-expr","locations":[{"start":{"line":35,"column":26},"end":{"line":35,"column":54}},{"start":{"line":36,"column":26},"end":{"line":36,"column":42}}],"line":34}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"b":{"0":[0],"1":[0],"2":[0,0],"3":[0,0],"4":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/derived.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/derived.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,2CAAyD;AAGzD,iDAAiE;AAEjE,MAAa,OAEX,SAAQ,0BAAW;IAGpB,YACQ,MAAmB,EACnB,OAGsB,EACtB,YAEgB,KAAK,IAAI,EAAE,CAAC,CAAC,EAAa,CAAA;QAEjD,KAAK,EAAE,CAAC;QATD,WAAM,GAAN,MAAM,CAAa;QACnB,YAAO,GAAP,OAAO,CAGe;QACtB,cAAS,GAAT,SAAS,CAEiC;QAVlD,SAAI,GAAU,YAAY,CAAC;IAa3B,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,IAAwB;QAExB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAC1C,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CACxB,CACD,CAAC;QACF,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwB;QACpC,qEAAqE;QACrE,MAAM,EAAE,GAAG,GAAG,GAAG,mBAAU,EAAE,CAAC;QAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEpC,MAAM,0BAA0B,GAAG,CAAC,WAAW,GAAG,aAAa,EAAE,EAAE,CAClE,UAAU,WAAW;yCACiB,EAAE,sBAAsB,CAAC;QAEhE,OAAO,uBAAU,CAAA,UAAU,CAAC;;;sBAGR,GAAG;YACpB,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;iBAClC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACrB,OAAO,IAAI,GAAG,MACb,OAAO,KAAK,KAAK,QAAQ;oBACxB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;oBACvB,CAAC,CAAC,OAAO,KAAK,IAAI,QAAQ;wBAC1B,CAAC,CAAC,GAAG,GAAI,KAAgB,CAAC,QAAQ,EAAE,GAAG,GAAG;wBAC1C,CAAC,CAAE,KAAgB,CAAC,QAAQ,EAC9B,EAAE,CAAC;YACJ,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC;YACX,GAAG;;;sBAGc,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;;;SAGpC,IAAI,CAAC,SAAS,CACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC;;;;;;;;;;;;;;;;;;;;;WAqBG,0BAA0B,EAAE;;;;OAIhC,IAAI,CAAC,SAAS,CACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC;;QAEE,0BAA0B,CAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CACjD;;;;cAIO,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,MAAM,CAAC;SAC1C,CAAC;IACT,CAAC;CACD;AArGD,0BAqGC","sourcesContent":["import { randomUUID } from \"crypto\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { FormField } from \"../fields/field\";\nimport { FormDataValue } from \"../form\";\nimport { FormControl, FormControlContext } from \"./form-control\";\n\nexport class Derived<\n\tConsts extends Record<string, unknown | undefined>\n> extends FormControl {\n\trole = <const>\"decoration\";\n\n\tconstructor(\n\t\tpublic fields: FormField[],\n\t\tpublic _render: (\n\t\t\tvalues: Record<string, string>,\n\t\t\tconsts: Consts\n\t\t) => Promise<FlatTemplatable>,\n\t\tpublic getConsts: (\n\t\t\tfctx: FormControlContext\n\t\t) => Promise<Consts> = async () => ({} as Consts)\n\t) {\n\t\tsuper();\n\t}\n\n\tasync getBackendValues(\n\t\tfctx: FormControlContext\n\t): Promise<Record<string, FormDataValue>> {\n\t\tconst fieldnames = this.fields.map((f) => f.name);\n\t\tconst result = Object.fromEntries(\n\t\t\tObject.entries(fctx.data).filter(([key]) =>\n\t\t\t\tfieldnames.includes(key)\n\t\t\t)\n\t\t);\n\t\treturn result;\n\t}\n\n\tasync render(fctx: FormControlContext): Promise<FlatTemplatable> {\n\t\t// the A makes it always a valid id, as it cannot start with a number\n\t\tconst id = \"A\" + randomUUID();\n\n\t\tconst consts = this.getConsts(fctx);\n\n\t\tconst frontend_side_refresh_code = (values_code = \"getValues()\") =>\n\t\t\t`render(${values_code}, consts)\n.then(result=>document.querySelector(\"#${id}\").innerHTML=result)`;\n\n\t\treturn tempstream/* HTML */ `<div>\n\t\t\t<script>\n\t\t\t\t(function () {\n\t\t\t\t\tconst consts = ${\"{\" +\n\t\t\t\t\tObject.entries((await consts) || {})\n\t\t\t\t\t\t.map(([key, value]) => {\n\t\t\t\t\t\t\treturn `\"${key}\": ${\n\t\t\t\t\t\t\t\ttypeof value === \"object\"\n\t\t\t\t\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t\t\t\t\t: typeof value == \"string\"\n\t\t\t\t\t\t\t\t\t? '\"' + (value as string).toString() + '\"'\n\t\t\t\t\t\t\t\t\t: (value as string).toString()\n\t\t\t\t\t\t\t}`;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join(\",\") +\n\t\t\t\t\t\"}\"};\n\t\t\t\t\tconst form_container =\n\t\t\t\t\t\tdocument.currentScript.closest(\".form-container\");\n\t\t\t\t\tconst render = ${this._render.toString()};\n\t\t\t\t\tfunction getValues() {\n\t\t\t\t\t\treturn Object.fromEntries(\n\t\t\t\t\t\t\t${JSON.stringify(\n\t\t\t\t\t\t\t\tthis.fields.map((field) => field.name)\n\t\t\t\t\t\t\t)}.map((field_name) => {\n\t\t\t\t\t\t\t\tlet input = form_container.querySelector(\n\t\t\t\t\t\t\t\t\t\\`input[name=\"\\${field_name}\"]\\`\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif (!input) {\n\t\t\t\t\t\t\t\t\treturn [field_name, \"\"];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (input.type === \"radio\") {\n\t\t\t\t\t\t\t\t\tinput = form_container.querySelector(\n\t\t\t\t\t\t\t\t\t\t\\`input[name=\"\\${field_name}\"]:checked\\`\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn [field_name, input.value];\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tfunction setupWatcher(field_name) {\n\t\t\t\t\t\tform_container\n\t\t\t\t\t\t\t.querySelectorAll(\\`input[name=\"\\${field_name}\"]\\`)\n\t\t\t\t\t\t\t.forEach((input) => {\n\t\t\t\t\t\t\t\tinput.addEventListener(\"change\", () => {\n\t\t\t\t\t\t\t\t\t${frontend_side_refresh_code()};\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t${JSON.stringify(\n\t\t\t\t\t\tthis.fields.map((field) => field.name)\n\t\t\t\t\t)}.forEach(setupWatcher);\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t${frontend_side_refresh_code(\n\t\t\t\t\t\t\tJSON.stringify(await this.getBackendValues(fctx))\n\t\t\t\t\t\t)};\n\t\t\t\t\t}, 0);\n\t\t\t\t})();\n\t\t\t</script>\n\t\t\t<div id=\"${id}\">${this._render({}, await consts)}</div>\n\t\t</div>`;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a5df51dfb107fe9c00e650293d20c7898ca67eb7"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/derived-frame.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/derived-frame.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":30}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":42}},"4":{"start":{"line":6,"column":20},"end":{"line":6,"column":52}},"5":{"start":{"line":7,"column":18},"end":{"line":7,"column":38}},"6":{"start":{"line":8,"column":23},"end":{"line":8,"column":48}},"7":{"start":{"line":13,"column":8},"end":{"line":26,"column":12}},"8":{"start":{"line":13,"column":59},"end":{"line":21,"column":19}},"9":{"start":{"line":19,"column":35},"end":{"line":19,"column":52}},"10":{"start":{"line":21,"column":38},"end":{"line":26,"column":9}},"11":{"start":{"line":27,"column":8},"end":{"line":27,"column":37}},"12":{"start":{"line":28,"column":8},"end":{"line":28,"column":57}},"13":{"start":{"line":29,"column":8},"end":{"line":29,"column":33}},"14":{"start":{"line":32,"column":8},"end":{"line":37,"column":18}},"15":{"start":{"line":40,"column":8},"end":{"line":51,"column":11}},"16":{"start":{"line":41,"column":26},"end":{"line":41,"column":35}},"17":{"start":{"line":42,"column":12},"end":{"line":49,"column":13}},"18":{"start":{"line":47,"column":16},"end":{"line":47,"column":88}},"19":{"start":{"line":48,"column":16},"end":{"line":48,"column":23}},"20":{"start":{"line":50,"column":12},"end":{"line":50,"column":245}},"21":{"start":{"line":52,"column":8},"end":{"line":52,"column":15}},"22":{"start":{"line":55,"column":0},"end":{"line":55,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":12,"column":55},"end":{"line":30,"column":5}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":22},"end":{"line":13,"column":23}},"loc":{"start":{"line":13,"column":59},"end":{"line":21,"column":19}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":19,"column":17},"end":{"line":19,"column":18}},"loc":{"start":{"line":19,"column":35},"end":{"line":19,"column":52}},"line":19},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":21},"end":{"line":21,"column":22}},"loc":{"start":{"line":21,"column":38},"end":{"line":26,"column":9}},"line":21},"4":{"name":"(anonymous_4)","decl":{"start":{"line":31,"column":4},"end":{"line":31,"column":5}},"loc":{"start":{"line":31,"column":46},"end":{"line":38,"column":5}},"line":31},"5":{"name":"(anonymous_5)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":18},"end":{"line":53,"column":5}},"line":39},"6":{"name":"(anonymous_6)","decl":{"start":{"line":40,"column":34},"end":{"line":40,"column":35}},"loc":{"start":{"line":40,"column":49},"end":{"line":51,"column":9}},"line":40}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":4},"end":{"line":12,"column":53}},"type":"default-arg","locations":[{"start":{"line":12,"column":15},"end":{"line":12,"column":53}}],"line":12},"1":{"loc":{"start":{"line":17,"column":16},"end":{"line":17,"column":28}},"type":"binary-expr","locations":[{"start":{"line":17,"column":16},"end":{"line":17,"column":22}},{"start":{"line":17,"column":26},"end":{"line":17,"column":28}}],"line":17},"2":{"loc":{"start":{"line":36,"column":5},"end":{"line":36,"column":18}},"type":"binary-expr","locations":[{"start":{"line":36,"column":5},"end":{"line":36,"column":12}},{"start":{"line":36,"column":16},"end":{"line":36,"column":18}}],"line":36},"3":{"loc":{"start":{"line":42,"column":12},"end":{"line":49,"column":13}},"type":"if","locations":[{"start":{"line":42,"column":12},"end":{"line":49,"column":13}},{"start":{"line":42,"column":12},"end":{"line":49,"column":13}}],"line":42},"4":{"loc":{"start":{"line":50,"column":190},"end":{"line":50,"column":230}},"type":"cond-expr","locations":[{"start":{"line":50,"column":218},"end":{"line":50,"column":222}},{"start":{"line":50,"column":225},"end":{"line":50,"column":230}}],"line":50}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/derived-frame.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/derived-frame.ts"],"names":[],"mappings":";;;AACA,2DAA+D;AAG/D,2CAAyD;AACzD,qDAAiD;AAEjD,uCAAoC;AACpC,iDAAoD;AAEpD,MAAa,YAAa,SAAQ,iBAIhC;IACD,YACQ,UAAkB,EACzB,MAAmB,EACZ,oBAGsB;IAC7B,mCAAmC;IAC5B,WAAW,GAAG,GAAG,oBAAQ,CAAC,UAAU,CAAC;QAE5C,KAAK,CACJ,MAAM,EACN,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC;UAC9B,MAAM,CAAC,QAAQ;aACZ,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC;YAC1C,GAAG,MAAM;YACT,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;SACjB,CAAC;aACA,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;aACxC,IAAI,CAAC,GAAG,CAAC;mBACI,EAChB,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,QAAQ;YACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC,CACF,CAAC;QA1BK,eAAU,GAAV,UAAU,CAAQ;QAElB,yBAAoB,GAApB,oBAAoB,CAGE;QAEtB,aAAQ,GAAR,QAAQ,CAA6B;IAoB7C,CAAC;IAED,0BAA0B,CAAC,IAAa,EAAE,OAAwB;QACjE,OAAO,uBAAU,CAAA,UAAU,CAAC;SACrB,IAAI,CAAC,QAAQ;;;KAGjB,OAAO,IAAI,EAAE;iBACD,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAc;QACnB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YACxB,IACC,CAAC,wBAAQ,CACR;gBACC,iBAAiB,EAAE,0BAAU,CAAC,MAAM;gBACpC,OAAO,EAAE,0BAAU,CAAC,MAAM;gBAC1B,QAAQ,EAAE,0BAAU,CAAC,MAAM;aAC3B,EACD,KAAK,CACL,EACA;gBACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,0BAA0B,CACzC,GAAG,EACH,sBAAsB,CACtB,CAAC;gBACF,OAAO;aACP;YACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,0BAA0B,CACzC,GAAG,EACH,MAAM,IAAI,CAAC,oBAAoB,CAC9B,IAAI,iCAAkB,CACrB,GAAG,EACH,GAAG,CAAC,KAAK,EACT,EAAE,EACF,KAAK,CAAC,iBAAiB,EACvB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CACxC,EACD,GAAG,CAAC,KAAK,CACT,CACD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO;IACR,CAAC;CACD;AAhFD,oCAgFC","sourcesContent":["import Router from \"@koa/router\";\nimport { hasShape, predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { ParsedUrlQuery } from \"querystring\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { makeSlug } from \"../../utils/make-slug\";\nimport { FormField } from \"../fields/field\";\nimport { Derived } from \"./derived\";\nimport { FormControlContext } from \"./form-control\";\n\nexport class DerivedFrame extends Derived<{\n\tframe_id: string;\n\tform_id: string;\n\tfield_name_prefix: string;\n}> {\n\tconstructor(\n\t\tpublic frame_name: string,\n\t\tfields: FormField[],\n\t\tpublic generateFrameContent: (\n\t\t\tctx: FormControlContext,\n\t\t\targs: ParsedUrlQuery\n\t\t) => Promise<FlatTemplatable>,\n\t\t// \"a\" is to make it a valid DOM id\n\t\tpublic frame_id = \"a\" + makeSlug(frame_name)\n\t) {\n\t\tsuper(\n\t\t\tfields,\n\t\t\tasync (values, consts) => /* HTML */ `<turbo-frame\n\t\t\t\tid=\"${consts.frame_id}\"\n\t\t\t\tsrc=\"./${consts.frame_id}?${Object.entries({\n\t\t\t\t\t...consts,\n\t\t\t\t\t...(values || {}),\n\t\t\t\t})\n\t\t\t\t\t.map(([key, value]) => `${key}=${value}`)\n\t\t\t\t\t.join(\"&\")}\"\n\t\t\t></turbo-frame>`,\n\t\t\tasync (fctx) => ({\n\t\t\t\tform_id: fctx.form_id,\n\t\t\t\tfield_name_prefix: fctx.field_name_prefix,\n\t\t\t\tframe_id,\n\t\t\t\tvalidate: fctx.validate,\n\t\t\t})\n\t\t);\n\t}\n\n\trenderBackendResponseFrame(_ctx: Context, content: FlatTemplatable) {\n\t\treturn tempstream/* HTML */ `<turbo-frame\n\t\t\tid=\"${this.frame_id}\"\n\t\t\ttarget=\"_top\"\n\t\t>\n\t\t\t${content || \"\"}\n\t\t</turbo-frame>`;\n\t}\n\n\tmount(router: Router) {\n\t\trouter.get(this.frame_id, async (ctx) => {\n\t\t\tconst query = ctx.query;\n\t\t\tif (\n\t\t\t\t!hasShape(\n\t\t\t\t\t{\n\t\t\t\t\t\tfield_name_prefix: predicates.string,\n\t\t\t\t\t\tform_id: predicates.string,\n\t\t\t\t\t\tvalidate: predicates.string,\n\t\t\t\t\t},\n\t\t\t\t\tquery\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tctx.body = this.renderBackendResponseFrame(\n\t\t\t\t\tctx,\n\t\t\t\t\t\"Missing query params\"\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tctx.body = this.renderBackendResponseFrame(\n\t\t\t\tctx,\n\t\t\t\tawait this.generateFrameContent(\n\t\t\t\t\tnew FormControlContext(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tctx.query,\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tquery.field_name_prefix,\n\t\t\t\t\t\tquery.form_id,\n\t\t\t\t\t\tquery.validate === \"true\" ? true : false\n\t\t\t\t\t),\n\t\t\t\t\tctx.query\n\t\t\t\t)\n\t\t\t);\n\t\t});\n\t\treturn;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d6eae5a42b236ebce1b96034aa515967682aa443"},"/home/kuba/projects/sealcode/sealgen/src/utils/make-slug.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/make-slug.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"2":{"start":{"line":5,"column":4},"end":{"line":7,"column":32}},"3":{"start":{"line":9,"column":0},"end":{"line":9,"column":28}}},"fnMap":{"0":{"name":"makeSlug","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":17}},"loc":{"start":{"line":4,"column":21},"end":{"line":8,"column":1}},"line":4}},"branchMap":{},"s":{"0":1,"1":1,"2":0,"3":1},"f":{"0":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/make-slug.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/make-slug.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CAAC,CAAS;IACjC,OAAO,CAAC;SACN,UAAU,CAAC,8BAA8B,EAAE,GAAG,CAAC;SAC/C,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC;AAJD,4BAIC","sourcesContent":["export function makeSlug(t: string) {\n\treturn t\n\t\t.replaceAll(/\\P{General_Category=Letter}/g, \"-\")\n\t\t.replaceAll(/-+/g, \"-\");\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8afb95b78633f8107d933cedf8e9b0a15616148e"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/tickable.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/tickable.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":44}},"3":{"start":{"line":5,"column":24},"end":{"line":5,"column":60}},"4":{"start":{"line":6,"column":19},"end":{"line":6,"column":40}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":23}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":27}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":31}},"8":{"start":{"line":14,"column":27},"end":{"line":14,"column":67}},"9":{"start":{"line":15,"column":8},"end":{"line":16,"column":69}},"10":{"start":{"line":19,"column":8},"end":{"line":25,"column":10}},"11":{"start":{"line":29,"column":43},"end":{"line":29,"column":89}},"12":{"start":{"line":30,"column":22},"end":{"line":30,"column":73}},"13":{"start":{"line":31,"column":19},"end":{"line":31,"column":64}},"14":{"start":{"line":32,"column":22},"end":{"line":34,"column":29}},"15":{"start":{"line":36,"column":25},"end":{"line":36,"column":55}},"16":{"start":{"line":37,"column":25},"end":{"line":37,"column":44}},"17":{"start":{"line":38,"column":8},"end":{"line":75,"column":6}},"18":{"start":{"line":78,"column":0},"end":{"line":78,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":37},"end":{"line":12,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":34},"end":{"line":17,"column":5}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":40},"end":{"line":26,"column":5}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":23},"end":{"line":76,"column":5}},"line":27}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":23},"end":{"line":8,"column":35}},"type":"default-arg","locations":[{"start":{"line":8,"column":33},"end":{"line":8,"column":35}}],"line":8},"1":{"loc":{"start":{"line":15,"column":16},"end":{"line":16,"column":67}},"type":"binary-expr","locations":[{"start":{"line":15,"column":16},"end":{"line":15,"column":31}},{"start":{"line":16,"column":12},"end":{"line":16,"column":67}}],"line":15},"2":{"loc":{"start":{"line":16,"column":31},"end":{"line":16,"column":66}},"type":"cond-expr","locations":[{"start":{"line":16,"column":44},"end":{"line":16,"column":61}},{"start":{"line":16,"column":64},"end":{"line":16,"column":66}}],"line":16},"3":{"loc":{"start":{"line":24,"column":16},"end":{"line":24,"column":67}},"type":"cond-expr","locations":[{"start":{"line":24,"column":51},"end":{"line":24,"column":62}},{"start":{"line":24,"column":65},"end":{"line":24,"column":67}}],"line":24},"4":{"loc":{"start":{"line":32,"column":22},"end":{"line":34,"column":29}},"type":"cond-expr","locations":[{"start":{"line":33,"column":14},"end":{"line":33,"column":32}},{"start":{"line":34,"column":14},"end":{"line":34,"column":29}}],"line":32},"5":{"loc":{"start":{"line":36,"column":25},"end":{"line":36,"column":55}},"type":"binary-expr","locations":[{"start":{"line":36,"column":25},"end":{"line":36,"column":46}},{"start":{"line":36,"column":50},"end":{"line":36,"column":55}}],"line":36},"6":{"loc":{"start":{"line":43,"column":38},"end":{"line":44,"column":27}},"type":"binary-expr","locations":[{"start":{"line":43,"column":38},"end":{"line":43,"column":55}},{"start":{"line":44,"column":12},"end":{"line":44,"column":27}}],"line":43},"7":{"loc":{"start":{"line":45,"column":7},"end":{"line":45,"column":60}},"type":"cond-expr","locations":[{"start":{"line":45,"column":15},"end":{"line":45,"column":55}},{"start":{"line":45,"column":58},"end":{"line":45,"column":60}}],"line":45},"8":{"loc":{"start":{"line":46,"column":7},"end":{"line":46,"column":51}},"type":"cond-expr","locations":[{"start":{"line":46,"column":22},"end":{"line":46,"column":46}},{"start":{"line":46,"column":49},"end":{"line":46,"column":51}}],"line":46},"9":{"loc":{"start":{"line":47,"column":7},"end":{"line":49,"column":16}},"type":"cond-expr","locations":[{"start":{"line":48,"column":14},"end":{"line":48,"column":23}},{"start":{"line":49,"column":14},"end":{"line":49,"column":16}}],"line":47},"10":{"loc":{"start":{"line":50,"column":7},"end":{"line":50,"column":33}},"type":"cond-expr","locations":[{"start":{"line":50,"column":18},"end":{"line":50,"column":28}},{"start":{"line":50,"column":31},"end":{"line":50,"column":33}}],"line":50},"11":{"loc":{"start":{"line":51,"column":7},"end":{"line":51,"column":33}},"type":"cond-expr","locations":[{"start":{"line":51,"column":18},"end":{"line":51,"column":28}},{"start":{"line":51,"column":31},"end":{"line":51,"column":33}}],"line":51},"12":{"loc":{"start":{"line":72,"column":6},"end":{"line":74,"column":16}},"type":"cond-expr","locations":[{"start":{"line":73,"column":14},"end":{"line":73,"column":58}},{"start":{"line":74,"column":14},"end":{"line":74,"column":16}}],"line":72},"13":{"loc":{"start":{"line":72,"column":6},"end":{"line":72,"column":58}},"type":"binary-expr","locations":[{"start":{"line":72,"column":6},"end":{"line":72,"column":12}},{"start":{"line":72,"column":16},"end":{"line":72,"column":41}},{"start":{"line":72,"column":45},"end":{"line":72,"column":58}}],"line":72}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/tickable.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/tickable.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable } from \"tempstream\";\nimport { attribute } from \"../../sanitize\";\nimport { getRequiredClass, inputWrapper } from \"../../utils/input-wrapper\";\nimport { FormField } from \"../fields/field\";\nimport { FormDataValue } from \"../form\";\nimport { FormFieldControl } from \"./controls\";\nimport { FormControlContext } from \"./form-control\";\n\nexport type TickableOptions = {\n\tid?: string;\n\tname?: string;\n\tlabel?: string;\n\thide_errors?: boolean;\n\treadonly?: boolean;\n};\n\nexport abstract class Tickable<T extends unknown> extends FormFieldControl {\n\tconstructor(\n\t\tpublic field: FormField<boolean, T>,\n\t\tpublic options: TickableOptions = {}\n\t) {\n\t\tsuper([field]);\n\t}\n\n\tpublic type: \"checkbox\" | \"radio\";\n\n\tabstract getValueAttribute(\n\t\tctx: Context,\n\t\tdata: Record<string, FormDataValue>,\n\t\tvalue: T\n\t): string;\n\n\tabstract isChecked(\n\t\tctx: Context,\n\t\tdata: Record<string, FormDataValue>,\n\t\tvalue: T\n\t): boolean;\n\n\tmakeInputID(\n\t\tctx: Context,\n\t\tdata: Record<string, FormDataValue>,\n\t\tvalue: T\n\t): string {\n\t\tconst value_attr = this.getValueAttribute(ctx, data, value);\n\t\treturn (\n\t\t\tthis.options.id ||\n\t\t\tthis.field.name + (value_attr ? \"--\" + value_attr : \"\")\n\t\t);\n\t}\n\n\tgetWrapperClasses(\n\t\tctx: Context,\n\t\tdata: Record<string, FormDataValue>,\n\t\tvalue: T\n\t): string[] {\n\t\treturn [\n\t\t\tthis.makeInputID(ctx, data, value),\n\t\t\tthis.type,\n\t\t\tthis.field.name.replaceAll(/\\W/g, \"-\"),\n\t\t\tgetRequiredClass(this.field.required),\n\t\t\t...(this.isChecked(ctx, data, value) ? [\"checked\"] : []),\n\t\t];\n\t}\n\n\tasync render<Fields extends Record<string, FormField>>(\n\t\tfctx: FormControlContext\n\t): Promise<FlatTemplatable> {\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\tconst { parsed, valid, message } = await this.field.getValue(\n\t\t\tfctx.ctx,\n\t\t\tfctx.data\n\t\t);\n\t\tconst value = this.getValueAttribute(fctx.ctx, fctx.data, parsed);\n\t\tconst id = this.makeInputID(fctx.ctx, fctx.data, parsed);\n\t\tconst label =\n\t\t\tthis.options.label != undefined\n\t\t\t\t? this.options.label\n\t\t\t\t: this.field.name;\n\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\tconst readonly = this.options.readonly || false;\n\t\tconst required = this.field.required;\n\n\t\treturn inputWrapper(\n\t\t\tthis.getWrapperClasses(fctx.ctx, fctx.data, parsed),\n\n\t\t\t/* HTML */ `\n\t\t\t\t<input\n\t\t\t\t\tid=\"${id}\"\n\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\tname=\"${fctx.field_name_prefix}${this.options.name ||\n\t\t\t\t\tthis.field.name}\"\n\t\t\t\t\t${value ? `value=\"${attribute(value)}\"` : \"\"}\n\t\t\t\t\t${fctx.form_id ? `form=\"${fctx.form_id}\"` : \"\"}\n\t\t\t\t\t${this.isChecked(fctx.ctx, fctx.data, parsed)\n\t\t\t\t\t\t? \"checked\"\n\t\t\t\t\t\t: \"\"}\n\t\t\t\t\t${readonly ? \"readonly\" : \"\"}\n\t\t\t\t\t${required ? \"required\" : \"\"}\n\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\tonchange=\"this.closest('.form-container').querySelectorAll('.form-input__wrapper--${this\n\t\t\t\t\t\t.field\n\t\t\t\t\t\t.name}').forEach(e=>e.setAttribute('data-checked','false'));\n\t\t\t\tthis.closest('.form-input__wrapper').setAttribute('data-checked',this.checked);\"\n\t\t\t\t/>\n\n\t\t\t\t<label for=\"${id}\">${label}</label>\n\t\t\t\t<script>\n\t\t\t\t\t(function () {\n\t\t\t\t\t\tlet wrapper = document.currentScript.closest(\n\t\t\t\t\t\t\t\".form-input__wrapper\"\n\t\t\t\t\t\t);\n\t\t\t\t\t\twrapper.setAttribute(\n\t\t\t\t\t\t\t\"data-checked\",\n\t\t\t\t\t\t\twrapper.querySelector(\"input\").checked.toString()\n\t\t\t\t\t\t);\n\t\t\t\t\t})();\n\t\t\t\t</script>\n\n\t\t\t\t${~valid && !this.options.hide_errors && fctx.validate\n\t\t\t\t\t? `<div class=\"input__error\">${message}</div>`\n\t\t\t\t\t: \"\"}\n\t\t\t`\n\t\t);\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d00253ce2b8a6eb55fce3dcb8b8438d78c12de68"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/checkbox.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/checkbox.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":54}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":40}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":28}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":31}},"5":{"start":{"line":11,"column":8},"end":{"line":11,"column":21}},"6":{"start":{"line":14,"column":8},"end":{"line":14,"column":18}},"7":{"start":{"line":17,"column":0},"end":{"line":17,"column":28}},"8":{"start":{"line":20,"column":8},"end":{"line":20,"column":30}},"9":{"start":{"line":21,"column":8},"end":{"line":21,"column":27}},"10":{"start":{"line":22,"column":8},"end":{"line":22,"column":27}},"11":{"start":{"line":25,"column":8},"end":{"line":25,"column":26}},"12":{"start":{"line":28,"column":0},"end":{"line":28,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":18},"end":{"line":9,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":34},"end":{"line":12,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":24},"end":{"line":15,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":5}},"loc":{"start":{"line":19,"column":39},"end":{"line":23,"column":5}},"line":19},"4":{"name":"(anonymous_4)","decl":{"start":{"line":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":24},"end":{"line":26,"column":5}},"line":24}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":1,"8":0,"9":0,"10":0,"11":0,"12":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/checkbox.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/checkbox.ts"],"names":[],"mappings":";;;AAEA,yCAAuD;AAGvD,MAAa,QAAS,SAAQ,mBAAiB;IAA/C;;QACC,SAAI,GAAU,UAAU,CAAC;IAa1B,CAAC;IAXA,SAAS,CACR,IAAa,EACb,KAAoC,EACpC,KAAc;QAEd,OAAO,KAAK,CAAC;IACd,CAAC;IAED,iBAAiB;QAChB,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AAdD,4BAcC;AAED,MAAa,iBAAkB,SAAQ,QAAQ;IAC9C,YACQ,KAAkC,EACzC,OAAwB,EACjB,KAAa;QAEpB,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAJf,UAAK,GAAL,KAAK,CAA6B;QAElC,UAAK,GAAL,KAAK,CAAQ;IAGrB,CAAC;IAED,iBAAiB;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;CACD;AAZD,8CAYC","sourcesContent":["import { Context } from \"koa\";\nimport { FormDataValue } from \"../form\";\nimport { Tickable, TickableOptions } from \"./tickable\";\nimport { FormField } from \"../fields/field\";\n\nexport class Checkbox extends Tickable<boolean> {\n\ttype = <const>\"checkbox\";\n\n\tisChecked(\n\t\t_ctx: Context,\n\t\t_data: Record<string, FormDataValue>,\n\t\tvalue: boolean\n\t): boolean {\n\t\treturn value;\n\t}\n\n\tgetValueAttribute(): string {\n\t\treturn \"\";\n\t}\n}\n\nexport class CheckboxWithValue extends Checkbox {\n\tconstructor(\n\t\tpublic field: FormField<boolean, boolean>,\n\t\toptions: TickableOptions,\n\t\tpublic value: string\n\t) {\n\t\tsuper(field, options);\n\t}\n\n\tgetValueAttribute(): string {\n\t\treturn this.value;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"748ab5ea9b079ad44b34482190bdba0ddbcd9636"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/radio.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/radio.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":23}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":40}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":30}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":27}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":27}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":28}},"7":{"start":{"line":13,"column":8},"end":{"line":13,"column":73}},"8":{"start":{"line":16,"column":8},"end":{"line":16,"column":26}},"9":{"start":{"line":19,"column":8},"end":{"line":22,"column":10}},"10":{"start":{"line":25,"column":8},"end":{"line":25,"column":36}},"11":{"start":{"line":28,"column":0},"end":{"line":28,"column":22}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":39},"end":{"line":11,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":18},"end":{"line":14,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":24},"end":{"line":17,"column":5}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":40},"end":{"line":23,"column":5}},"line":18},"4":{"name":"(anonymous_4)","decl":{"start":{"line":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":34},"end":{"line":26,"column":5}},"line":24}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/radio.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/radio.ts"],"names":[],"mappings":";;;AAGA,yCAAsC;AAEtC,MAAa,KAAM,SAAQ,mBAAgB;IAG1C,YACQ,KAAiC,EACjC,KAAa,EACpB,OAA2B;QAE3B,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAJf,UAAK,GAAL,KAAK,CAA4B;QACjC,UAAK,GAAL,KAAK,CAAQ;QAJrB,SAAI,GAAU,OAAO,CAAC;IAQtB,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;IAED,iBAAiB;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,iBAAiB,CAChB,GAAY,EACZ,IAAmC,EACnC,KAAa;QAEb,OAAO;YACN,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC;SACjC,CAAC;IACH,CAAC;IAED,SAAS,CACR,IAAa,EACb,KAAoC,EACpC,KAAa;QAEb,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;IAC7B,CAAC;CACD;AArCD,sBAqCC","sourcesContent":["import { Context } from \"koa\";\nimport { FormField } from \"../fields/field\";\nimport { FormDataValue } from \"../form\";\nimport { Tickable } from \"./tickable\";\n\nexport class Radio extends Tickable<string> {\n\ttype = <const>\"radio\";\n\n\tconstructor(\n\t\tpublic field: FormField<boolean, string>,\n\t\tpublic value: string,\n\t\toptions: { label?: string }\n\t) {\n\t\tsuper(field, options);\n\t}\n\n\tmakeInputID(): string {\n\t\treturn this.field.name + \"-\" + this.value.replaceAll(/\\W/g, \"-\");\n\t}\n\n\tgetValueAttribute(): string {\n\t\treturn this.value;\n\t}\n\n\tgetWrapperClasses(\n\t\tctx: Context,\n\t\tdata: Record<string, FormDataValue>,\n\t\tvalue: string\n\t): string[] {\n\t\treturn [\n\t\t\t...super.getWrapperClasses(ctx, data, value),\n\t\t\tthis.value.replaceAll(/\\W/g, \"-\"),\n\t\t];\n\t}\n\n\tisChecked(\n\t\t_ctx: Context,\n\t\t_data: Record<string, FormDataValue>,\n\t\tvalue: string\n\t): boolean {\n\t\treturn this.value === value;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6173980336668fd87820224c07e58756c3cce013"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/big-radio-group.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/big-radio-group.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":29},"end":{"line":5,"column":60}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":23}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":27}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":31}},"7":{"start":{"line":13,"column":39},"end":{"line":13,"column":85}},"8":{"start":{"line":14,"column":8},"end":{"line":34,"column":10}},"9":{"start":{"line":16,"column":23},"end":{"line":16,"column":56}},"10":{"start":{"line":17,"column":12},"end":{"line":32,"column":13}},"11":{"start":{"line":37,"column":0},"end":{"line":37,"column":38}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":32},"end":{"line":11,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":23},"end":{"line":35,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":38},"end":{"line":15,"column":39}},"loc":{"start":{"line":15,"column":66},"end":{"line":33,"column":9}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":8},"end":{"line":23,"column":50}},"type":"cond-expr","locations":[{"start":{"line":23,"column":23},"end":{"line":23,"column":45}},{"start":{"line":23,"column":48},"end":{"line":23,"column":50}}],"line":23},"1":{"loc":{"start":{"line":24,"column":8},"end":{"line":24,"column":45}},"type":"cond-expr","locations":[{"start":{"line":24,"column":30},"end":{"line":24,"column":40}},{"start":{"line":24,"column":43},"end":{"line":24,"column":45}}],"line":24},"2":{"loc":{"start":{"line":25,"column":8},"end":{"line":25,"column":45}},"type":"cond-expr","locations":[{"start":{"line":25,"column":31},"end":{"line":25,"column":40}},{"start":{"line":25,"column":43},"end":{"line":25,"column":45}}],"line":25},"3":{"loc":{"start":{"line":28,"column":8},"end":{"line":30,"column":29}},"type":"cond-expr","locations":[{"start":{"line":29,"column":18},"end":{"line":29,"column":35}},{"start":{"line":30,"column":18},"end":{"line":30,"column":29}}],"line":28}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":1},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/big-radio-group.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/big-radio-group.ts"],"names":[],"mappings":";;;AAAA,2CAAyD;AAGzD,6DAAwD;AAExD,MAAa,aAAc,SAAQ,qCAAgB;IAClD,YACQ,KAAgB,EAChB,OAON;QAED,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAVR,UAAK,GAAL,KAAK,CAAW;QAChB,YAAO,GAAP,OAAO,CAOb;IAGF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwB;QACpC,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CACvD,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,CACT,CAAC;QACF,OAAO,uBAAU,CAAA,UAAU,CAAC;KACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;YAC7D,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;YAC7C,OAAO,uBAAU,CAAA,UAAU,CAAC;;cAElB,IAAI,CAAC,KAAK,CAAC,IAAI;eACd,GAAG;YACN,EAAE;;QAEN,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;QAC1C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QACrC,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;;QAGrC,OAAO,WAAW,IAAI,UAAU;gBACjC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;gBACnB,CAAC,CAAC,WAAW;0CACsB,EAAE;YAChC,CAAC;QACV,CAAC,CAAC;SACI,CAAC;IACT,CAAC;CACD;AA1CD,sCA0CC","sourcesContent":["import { FlatTemplatable, tempstream } from \"tempstream\";\nimport { FormField } from \"../fields/field\";\nimport { FormControlContext } from \"./form-control\";\nimport { FormFieldControl } from \"./form-field-control\";\n\nexport class BigRadioGroup extends FormFieldControl {\n\tconstructor(\n\t\tpublic field: FormField,\n\t\tpublic options: Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\tdescription:\n\t\t\t\t\t| FlatTemplatable\n\t\t\t\t\t| ((fctx: FormControlContext) => FlatTemplatable);\n\t\t\t}\n\t\t>\n\t) {\n\t\tsuper([field]);\n\t}\n\n\tasync render(fctx: FormControlContext): Promise<FlatTemplatable> {\n\t\tconst { raw: current_value } = await this.field.getValue(\n\t\t\tfctx.ctx,\n\t\t\tfctx.data\n\t\t);\n\t\treturn tempstream/* HTML */ `<div class=\"bigradios\">\n\t\t\t${Object.entries(this.options).map(([key, { description }]) => {\n\t\t\t\tconst id = `${this.field.name}-radio-${key}`;\n\t\t\t\treturn tempstream/* HTML */ `<input\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tname=\"${this.field.name}\"\n\t\t\t\t\t\tvalue=\"${key}\"\n\t\t\t\t\t\tid=\"${id}\"\n\t\t\t\t\t\tstyle=\"display: none\"\n\t\t\t\t\t\t${fctx.form_id ? `form=${fctx.form_id}` : \"\"}\n\t\t\t\t\t\t${this.field.required ? \"required\" : \"\"}\n\t\t\t\t\t\t${key == current_value ? \"checked\" : \"\"}\n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"bigradio\">\n\t\t\t\t\t\t${typeof description == \"function\"\n\t\t\t\t\t\t\t? description(fctx)\n\t\t\t\t\t\t\t: description}\n\t\t\t\t\t\t<label class=\"bigradio__cta\" for=\"${id}\">Wybierz</label>\n\t\t\t\t\t</div>`;\n\t\t\t})}\n\t\t</div>`;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"24d6418f558271a6d2f8050a79cc49eb70205bd6"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/checkbox-group.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/checkbox-group.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":4,"column":22},"end":{"line":4,"column":54}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":40}},"4":{"start":{"line":6,"column":19},"end":{"line":6,"column":40}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":23}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":27}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":31}},"8":{"start":{"line":14,"column":8},"end":{"line":20,"column":24}},"9":{"start":{"line":23,"column":35},"end":{"line":23,"column":81}},"10":{"start":{"line":24,"column":27},"end":{"line":28,"column":19}},"11":{"start":{"line":24,"column":62},"end":{"line":28,"column":18}},"12":{"start":{"line":27,"column":24},"end":{"line":27,"column":25}},"13":{"start":{"line":29,"column":8},"end":{"line":29,"column":48}},"14":{"start":{"line":32,"column":0},"end":{"line":32,"column":38}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":37},"end":{"line":12,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":32},"end":{"line":21,"column":5}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":22,"column":4},"end":{"line":22,"column":5}},"loc":{"start":{"line":22,"column":23},"end":{"line":30,"column":5}},"line":22},"3":{"name":"(anonymous_3)","decl":{"start":{"line":24,"column":50},"end":{"line":24,"column":51}},"loc":{"start":{"line":24,"column":62},"end":{"line":28,"column":18}},"line":24},"4":{"name":"(anonymous_4)","decl":{"start":{"line":27,"column":17},"end":{"line":27,"column":18}},"loc":{"start":{"line":27,"column":24},"end":{"line":27,"column":25}},"line":27}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":23},"end":{"line":8,"column":35}},"type":"default-arg","locations":[{"start":{"line":8,"column":33},"end":{"line":8,"column":35}}],"line":8},"1":{"loc":{"start":{"line":17,"column":20},"end":{"line":17,"column":46}},"type":"binary-expr","locations":[{"start":{"line":17,"column":20},"end":{"line":17,"column":40}},{"start":{"line":17,"column":44},"end":{"line":17,"column":46}}],"line":17},"2":{"loc":{"start":{"line":26,"column":20},"end":{"line":27,"column":26}},"type":"binary-expr","locations":[{"start":{"line":26,"column":20},"end":{"line":26,"column":52}},{"start":{"line":27,"column":17},"end":{"line":27,"column":25}}],"line":26}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0],"1":[0,0],"2":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/checkbox-group.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/checkbox-group.ts"],"names":[],"mappings":";;;AAGA,uDAAuD;AAEvD,yCAA+C;AAC/C,yCAA0D;AAa1D,MAAa,aAEX,SAAQ,2BAAgB;IACzB,YACQ,KAAoD,EACpD,UAAmB,EAAa;QAEvC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAHR,UAAK,GAAL,KAAK,CAA+C;QACpD,YAAO,GAAP,OAAO,CAAyB;IAGxC,CAAC;IAED,SAAS,CACR,IAAwB,EACxB,UAA+B;QAE/B,OAAO,IAAI,qBAAU,CAAC,UAAU,EAAE;YACjC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,OAAO,EAAE;gBACR,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC/B,yBAAyB;aACzB;SACD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CACX,IAAwB;QAExB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CACnD,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,CACT,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CACxC,CAAC,MAAM,EAAE,EAAE,CACV,IAAI,4BAAiB,CACpB,IAAI,4BAAc,CACjB,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,IAAI,EACf,KAAK,EACL,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CACvB,EACD;YACC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM;YACnC,KAAK,EAAE,CACN,IAAI,CAAC,OAAO,CAAC,mBAAmB;gBAChC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAClB,CAAC,MAAM,CAAC;SACT,EACD,MAAM,CACN,CACF,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACzC,CAAC;CACD;AAnDD,sCAmDC","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable } from \"tempstream\";\nimport { EnumMultipleField, FormField } from \"../fields/field\";\nimport { ProxyFormField } from \"../fields/proxy-field\";\nimport { FormDataValue, FormMessage } from \"../form\";\nimport { CheckboxWithValue } from \"./checkbox\";\nimport { FieldGroup, FormFieldControl } from \"./controls\";\nimport { FormControlContext } from \"./form-control\";\n\nexport type DefaultCheckboxOptions = {\n\tid?: string;\n\tlabel?: string;\n\thide_errors?: boolean;\n\treadonly?: boolean;\n\tname?: string;\n\tcheckboxNameToLabel?: (name: string) => string;\n\tclasses?: string[];\n};\n\nexport class CheckboxGroup<\n\tOptions extends DefaultCheckboxOptions = DefaultCheckboxOptions\n> extends FormFieldControl {\n\tconstructor(\n\t\tpublic field: EnumMultipleField<readonly string[], boolean>,\n\t\tpublic options: Options = {} as Options\n\t) {\n\t\tsuper([field]);\n\t}\n\n\twrapGroup(\n\t\tfctx: FormControlContext,\n\t\tcheckboxes: CheckboxWithValue[]\n\t): Promise<FlatTemplatable> {\n\t\treturn new FieldGroup(checkboxes, {\n\t\t\tlabel: this.options.label,\n\t\t\tclasses: [\n\t\t\t\t...(this.options.classes || []),\n\t\t\t\t\"field-group--checkboxes\",\n\t\t\t],\n\t\t}).render(fctx);\n\t}\n\n\tasync render<Fields extends Record<string, FormField>>(\n\t\tfctx: FormControlContext\n\t): Promise<FlatTemplatable> {\n\t\tconst { parsed: values } = await this.field.getValue(\n\t\t\tfctx.ctx,\n\t\t\tfctx.data\n\t\t);\n\t\tconst checkboxes = this.field.options.map(\n\t\t\t(option) =>\n\t\t\t\tnew CheckboxWithValue(\n\t\t\t\t\tnew ProxyFormField(\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tthis.field.name,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tvalues.includes(option)\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: this.field.name + \"__\" + option,\n\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\tthis.options.checkboxNameToLabel ||\n\t\t\t\t\t\t\t((s: string) => s)\n\t\t\t\t\t\t)(option),\n\t\t\t\t\t},\n\t\t\t\t\toption\n\t\t\t\t)\n\t\t);\n\t\treturn this.wrapGroup(fctx, checkboxes);\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"819ca0af6e0dd8fc20cb63e2134a7e6a0aa032eb"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/proxy-field.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/proxy-field.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":32}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":24}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":25}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":39}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":41}},"7":{"start":{"line":13,"column":8},"end":{"line":13,"column":32}},"8":{"start":{"line":16,"column":8},"end":{"line":20,"column":10}},"9":{"start":{"line":23,"column":0},"end":{"line":23,"column":40}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":59},"end":{"line":11,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":20},"end":{"line":14,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":18},"end":{"line":21,"column":5}},"line":15}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":1},"f":{"0":0,"1":0,"2":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/proxy-field.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/proxy-field.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEpC,MAAa,cAAkB,SAAQ,iBAAqB;IAC3D,YACC,QAAiB,EACV,IAAY,EACZ,WAAc,EACd,YAAe;QAEtB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJT,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAG;QACd,iBAAY,GAAZ,YAAY,CAAG;IAGvB,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACV,OAAc;YACb,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC;IACH,CAAC;CACD;AArBD,wCAqBC","sourcesContent":["import { FormField } from \"./field\";\n\nexport class ProxyFormField<T> extends FormField<boolean, T> {\n\tconstructor(\n\t\trequired: boolean,\n\t\tpublic name: string,\n\t\tpublic empty_value: T,\n\t\tpublic parsed_value: T\n\t) {\n\t\tsuper(required);\n\t}\n\n\tgetEmptyValue() {\n\t\treturn this.empty_value;\n\t}\n\n\tasync parse() {\n\t\treturn <const>{\n\t\t\tparsable: true,\n\t\t\terror: null,\n\t\t\tparsed_value: this.parsed_value,\n\t\t};\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6bb710239d6e15238d5e9b447907936b49021dec"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/field.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/field.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":8,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"2":{"start":{"line":3,"column":26},"end":{"line":3,"column":33}},"3":{"start":{"line":4,"column":4},"end":{"line":4,"column":89}},"4":{"start":{"line":4,"column":71},"end":{"line":4,"column":83}},"5":{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},"6":{"start":{"line":6,"column":26},"end":{"line":6,"column":33}},"7":{"start":{"line":7,"column":4},"end":{"line":7,"column":17}},"8":{"start":{"line":9,"column":19},"end":{"line":11,"column":1}},"9":{"start":{"line":10,"column":4},"end":{"line":10,"column":126}},"10":{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},"11":{"start":{"line":10,"column":95},"end":{"line":10,"column":126}},"12":{"start":{"line":12,"column":0},"end":{"line":12,"column":62}},"13":{"start":{"line":13,"column":0},"end":{"line":13,"column":51}},"14":{"start":{"line":14,"column":24},"end":{"line":14,"column":58}},"15":{"start":{"line":15,"column":20},"end":{"line":15,"column":52}},"16":{"start":{"line":17,"column":4},"end":{"line":17,"column":97}},"17":{"start":{"line":17,"column":72},"end":{"line":17,"column":94}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":38}},"19":{"start":{"line":22,"column":8},"end":{"line":22,"column":33}},"20":{"start":{"line":23,"column":8},"end":{"line":23,"column":60}},"21":{"start":{"line":24,"column":8},"end":{"line":24,"column":44}},"22":{"start":{"line":24,"column":38},"end":{"line":24,"column":43}},"23":{"start":{"line":27,"column":8},"end":{"line":27,"column":30}},"24":{"start":{"line":30,"column":8},"end":{"line":36,"column":9}},"25":{"start":{"line":32,"column":12},"end":{"line":35,"column":14}},"26":{"start":{"line":37,"column":8},"end":{"line":37,"column":45}},"27":{"start":{"line":40,"column":8},"end":{"line":40,"column":44}},"28":{"start":{"line":43,"column":8},"end":{"line":51,"column":9}},"29":{"start":{"line":45,"column":12},"end":{"line":50,"column":14}},"30":{"start":{"line":52,"column":20},"end":{"line":52,"column":46}},"31":{"start":{"line":53,"column":64},"end":{"line":53,"column":90}},"32":{"start":{"line":54,"column":8},"end":{"line":61,"column":9}},"33":{"start":{"line":55,"column":12},"end":{"line":60,"column":14}},"34":{"start":{"line":62,"column":35},"end":{"line":62,"column":74}},"35":{"start":{"line":63,"column":8},"end":{"line":68,"column":10}},"36":{"start":{"line":71,"column":8},"end":{"line":71,"column":30}},"37":{"start":{"line":72,"column":8},"end":{"line":72,"column":20}},"38":{"start":{"line":76,"column":27},"end":{"line":76,"column":57}},"39":{"start":{"line":77,"column":8},"end":{"line":77,"column":22}},"40":{"start":{"line":80,"column":0},"end":{"line":80,"column":30}},"41":{"start":{"line":81,"column":0},"end":{"line":81,"column":54}},"42":{"start":{"line":82,"column":0},"end":{"line":82,"column":52}},"43":{"start":{"line":83,"column":0},"end":{"line":83,"column":53}},"44":{"start":{"line":84,"column":0},"end":{"line":84,"column":43}},"45":{"start":{"line":85,"column":0},"end":{"line":85,"column":51}},"46":{"start":{"line":86,"column":0},"end":{"line":86,"column":43}},"47":{"start":{"line":87,"column":0},"end":{"line":87,"column":42}},"48":{"start":{"line":88,"column":0},"end":{"line":88,"column":41}},"49":{"start":{"line":89,"column":0},"end":{"line":89,"column":44}},"50":{"start":{"line":90,"column":0},"end":{"line":90,"column":50}},"51":{"start":{"line":91,"column":0},"end":{"line":91,"column":60}},"52":{"start":{"line":92,"column":0},"end":{"line":92,"column":41}},"53":{"start":{"line":93,"column":0},"end":{"line":93,"column":51}},"54":{"start":{"line":94,"column":0},"end":{"line":94,"column":61}},"55":{"start":{"line":95,"column":0},"end":{"line":95,"column":53}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":74},"end":{"line":2,"column":75}},"loc":{"start":{"line":2,"column":96},"end":{"line":5,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":58},"end":{"line":4,"column":59}},"loc":{"start":{"line":4,"column":69},"end":{"line":4,"column":85}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":5,"column":6},"end":{"line":5,"column":7}},"loc":{"start":{"line":5,"column":28},"end":{"line":8,"column":1}},"line":5},"3":{"name":"(anonymous_3)","decl":{"start":{"line":9,"column":50},"end":{"line":9,"column":51}},"loc":{"start":{"line":9,"column":71},"end":{"line":11,"column":1}},"line":9},"4":{"name":"fieldsToShape","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":22}},"loc":{"start":{"line":16,"column":28},"end":{"line":18,"column":1}},"line":16},"5":{"name":"(anonymous_5)","decl":{"start":{"line":17,"column":54},"end":{"line":17,"column":55}},"loc":{"start":{"line":17,"column":72},"end":{"line":17,"column":94}},"line":17},"6":{"name":"(anonymous_6)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":26},"end":{"line":25,"column":5}},"line":21},"7":{"name":"(anonymous_7)","decl":{"start":{"line":24,"column":27},"end":{"line":24,"column":28}},"loc":{"start":{"line":24,"column":38},"end":{"line":24,"column":43}},"line":24},"8":{"name":"(anonymous_8)","decl":{"start":{"line":26,"column":4},"end":{"line":26,"column":5}},"loc":{"start":{"line":26,"column":26},"end":{"line":28,"column":5}},"line":26},"9":{"name":"(anonymous_9)","decl":{"start":{"line":29,"column":4},"end":{"line":29,"column":5}},"loc":{"start":{"line":29,"column":32},"end":{"line":38,"column":5}},"line":29},"10":{"name":"(anonymous_10)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":35},"end":{"line":41,"column":5}},"line":39},"11":{"name":"(anonymous_11)","decl":{"start":{"line":42,"column":4},"end":{"line":42,"column":5}},"loc":{"start":{"line":42,"column":41},"end":{"line":69,"column":5}},"line":42},"12":{"name":"(anonymous_12)","decl":{"start":{"line":70,"column":4},"end":{"line":70,"column":5}},"loc":{"start":{"line":70,"column":23},"end":{"line":73,"column":5}},"line":70},"13":{"name":"(anonymous_13)","decl":{"start":{"line":75,"column":4},"end":{"line":75,"column":5}},"loc":{"start":{"line":75,"column":38},"end":{"line":78,"column":5}},"line":75}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":8,"column":3}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":57},"end":{"line":8,"column":2}}],"line":2},"1":{"loc":{"start":{"line":2,"column":57},"end":{"line":8,"column":2}},"type":"cond-expr","locations":[{"start":{"line":2,"column":74},"end":{"line":5,"column":1}},{"start":{"line":5,"column":6},"end":{"line":8,"column":1}}],"line":2},"2":{"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"type":"if","locations":[{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},{"start":{"line":3,"column":4},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},"type":"if","locations":[{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},{"start":{"line":6,"column":4},"end":{"line":6,"column":33}}],"line":6},"4":{"loc":{"start":{"line":9,"column":19},"end":{"line":11,"column":1}},"type":"binary-expr","locations":[{"start":{"line":9,"column":20},"end":{"line":9,"column":24}},{"start":{"line":9,"column":28},"end":{"line":9,"column":45}},{"start":{"line":9,"column":50},"end":{"line":11,"column":1}}],"line":9},"5":{"loc":{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},"type":"if","locations":[{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},{"start":{"line":10,"column":21},"end":{"line":10,"column":126}}],"line":10},"6":{"loc":{"start":{"line":10,"column":25},"end":{"line":10,"column":93}},"type":"binary-expr","locations":[{"start":{"line":10,"column":25},"end":{"line":10,"column":40}},{"start":{"line":10,"column":44},"end":{"line":10,"column":93}}],"line":10},"7":{"loc":{"start":{"line":30,"column":8},"end":{"line":36,"column":9}},"type":"if","locations":[{"start":{"line":30,"column":8},"end":{"line":36,"column":9}},{"start":{"line":30,"column":8},"end":{"line":36,"column":9}}],"line":30},"8":{"loc":{"start":{"line":30,"column":12},"end":{"line":31,"column":67}},"type":"binary-expr","locations":[{"start":{"line":30,"column":12},"end":{"line":30,"column":25}},{"start":{"line":31,"column":13},"end":{"line":31,"column":25}},{"start":{"line":31,"column":29},"end":{"line":31,"column":43}},{"start":{"line":31,"column":47},"end":{"line":31,"column":66}}],"line":30},"9":{"loc":{"start":{"line":43,"column":8},"end":{"line":51,"column":9}},"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":51,"column":9}},{"start":{"line":43,"column":8},"end":{"line":51,"column":9}}],"line":43},"10":{"loc":{"start":{"line":43,"column":24},"end":{"line":43,"column":45}},"type":"binary-expr","locations":[{"start":{"line":43,"column":24},"end":{"line":43,"column":39}},{"start":{"line":43,"column":43},"end":{"line":43,"column":45}}],"line":43},"11":{"loc":{"start":{"line":54,"column":8},"end":{"line":61,"column":9}},"type":"if","locations":[{"start":{"line":54,"column":8},"end":{"line":61,"column":9}},{"start":{"line":54,"column":8},"end":{"line":61,"column":9}}],"line":54},"12":{"loc":{"start":{"line":59,"column":25},"end":{"line":59,"column":47}},"type":"binary-expr","locations":[{"start":{"line":59,"column":25},"end":{"line":59,"column":36}},{"start":{"line":59,"column":40},"end":{"line":59,"column":47}}],"line":59}},"s":{"0":1,"1":15,"2":15,"3":15,"4":23,"5":0,"6":0,"7":0,"8":1,"9":15,"10":15,"11":15,"12":1,"13":1,"14":1,"15":1,"16":0,"17":0,"18":1,"19":23,"20":23,"21":23,"22":0,"23":19,"24":50,"25":7,"26":43,"27":25,"28":98,"29":48,"30":50,"31":50,"32":50,"33":0,"34":50,"35":50,"36":0,"37":0,"38":0,"39":0,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1},"f":{"0":15,"1":23,"2":0,"3":15,"4":0,"5":0,"6":23,"7":0,"8":19,"9":50,"10":25,"11":98,"12":0,"13":0},"b":{"0":[1,1,1],"1":[1,0],"2":[15,0],"3":[0,0],"4":[1,1,1],"5":[15,0],"6":[15,15],"7":[7,43],"8":[50,50,43,43],"9":[48,50],"10":[98,0],"11":[0,50],"12":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/field.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/field.ts"],"names":[],"mappings":"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","sourcesContent":["import { Predicate, predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { t } from \"../../utils/translate\";\nimport { FormDataValue } from \"../form\";\n\nexport type FormFieldValidationResponse = { valid: boolean; message: string };\n\nexport type FormFieldValidationFn<ValueType> = (\n\tctx: Context,\n\tvalue: ValueType,\n\tfield: FormField<boolean, ValueType>\n) => Promise<FormFieldValidationResponse>;\n\nexport type FieldParsedValue<T> = T extends FormField<infer R> ? R : never;\n\nexport type GetPredicate<F extends FormField> = F extends FormField<true>\n\t? F[\"predicate\"]\n\t: F[\"predicate\"] | typeof predicates.undefined;\n\n// for quickly testing GetPredicate conditonally applying the undefined predicate:\n// const f = new SimpleFormField(true);\n// type p = GetPredicate<typeof f>;\n// const f2 = new SimpleFormField(false);\n// type p2 = GetPredicate<typeof f2>;\n\nexport type FieldsToShape<T extends Record<string, FormField>> = {\n\t[property in keyof T]: GetPredicate<T[property]>;\n};\n\nexport function fieldsToShape<Fields extends Record<string, FormField>>(\n\tobj: Fields\n): FieldsToShape<Fields> {\n\treturn Object.fromEntries(\n\t\tObject.entries(obj).map(([key, value]) => [key, value.predicate])\n\t) as FieldsToShape<Fields>;\n}\n\nexport type FieldParseResult<T> =\n\t| {\n\t\t\tparsable: true;\n\t\t\terror: null;\n\t\t\tparsed_value: T;\n\t }\n\t| {\n\t\t\tparsable: false;\n\t\t\terror: string;\n\t\t\tparsed_value: null;\n\t };\n\nexport abstract class FormField<\n\tRequired extends boolean = boolean,\n\tParsedValue extends unknown = unknown\n> {\n\tname: string;\n\tconstructor(public readonly required: Required) {}\n\tpredicate: Predicate = predicates.unknown;\n\tmapToFilter: (parsed: ParsedValue) => unknown = (value) => value;\n\n\tasync init(fieldname: string): Promise<void> {\n\t\tthis.name = fieldname;\n\t}\n\n\tpublic async _validate(\n\t\tctx: Context,\n\t\tvalue: ParsedValue\n\t): Promise<FormFieldValidationResponse> {\n\t\tif (\n\t\t\tthis.required &&\n\t\t\t(value === \"\" || value === null || value === undefined)\n\t\t) {\n\t\t\treturn {\n\t\t\t\tvalid: false,\n\n\t\t\t\tmessage: t(\n\t\t\t\t\tctx,\n\t\t\t\t\t\"field_is_required\",\n\t\t\t\t\t[],\n\t\t\t\t\t\"This field is required\"\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t\treturn this.isValueValid(ctx, value);\n\t}\n\n\tpublic abstract getEmptyValue(): ParsedValue;\n\n\tpublic async isValueValid(\n\t\tctx: Context,\n\t\tvalue: ParsedValue\n\t): Promise<FormFieldValidationResponse> {\n\t\treturn { valid: true, message: \"\" };\n\t}\n\n\tabstract parse(\n\t\tctx: Context,\n\t\traw_value: FormDataValue\n\t): Promise<FieldParseResult<ParsedValue>>;\n\n\tasync getValue(\n\t\tctx: Context,\n\t\tall_form_values: Record<string, FormDataValue>\n\t): Promise<{\n\t\tvalid: boolean;\n\t\tmessage: string;\n\t\tparsed: ParsedValue;\n\t\traw: FormDataValue;\n\t}> {\n\t\tif (Object.keys(all_form_values || {}).length === 0) {\n\t\t\t// don't validate on virgin form\n\t\t\treturn {\n\t\t\t\tparsed: this.getEmptyValue(),\n\t\t\t\tvalid: true,\n\t\t\t\tmessage: \"\",\n\t\t\t\traw: \"\",\n\t\t\t};\n\t\t}\n\t\tconst raw = all_form_values[this.name];\n\t\tconst {\n\t\t\tparsable,\n\t\t\tparsed_value,\n\t\t\terror: parse_error,\n\t\t} = await this.parse(ctx, raw);\n\t\tif (!parsable) {\n\t\t\treturn {\n\t\t\t\tvalid: false,\n\t\t\t\tparsed: this.getEmptyValue(),\n\t\t\t\traw,\n\t\t\t\tmessage: parse_error || \"Error\",\n\t\t\t};\n\t\t}\n\t\tconst { valid, message } = await this._validate(\n\t\t\tctx,\n\t\t\tparsed_value as ParsedValue\n\t\t);\n\t\treturn {\n\t\t\tparsed: parsed_value as ParsedValue,\n\t\t\tvalid,\n\t\t\tmessage,\n\t\t\traw: all_form_values[this.name],\n\t\t};\n\t}\n\n\tsetMapToFilter(fn: (parsed: ParsedValue) => unknown) {\n\t\tthis.mapToFilter = fn;\n\t\treturn this;\n\t}\n\n\t//return undefined here to delete a value\n\tasync getDatabaseValue(\n\t\tctx: Context,\n\t\tdata: Record<string, FormDataValue>\n\t): Promise<unknown> {\n\t\tconst { parsed } = await this.getValue(ctx, data);\n\t\treturn parsed;\n\t}\n}\n\nexport * from \"./simple-form-field\";\nexport * from \"./checkboxed-list\";\nexport * from \"./collection-field\";\nexport * from \"./number\";\nexport * from \"./pick-from-list\";\nexport * from \"./regexp\";\nexport * from \"./email\";\nexport * from \"./enum\";\nexport * from \"./boolean\";\nexport * from \"./enum-multiple\";\nexport * from \"./existing-sealious-value\";\nexport * from \"./file\";\nexport * from \"./multiple-files\";\nexport * from \"./reverse-single-reference\";\nexport * from \"./structured-array\";\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"037dce481a4a6071108cadb5f6ac19b3ef1259b4"},"/home/kuba/projects/sealcode/sealgen/src/utils/translate.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/translate.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":19}},"2":{"start":{"line":5,"column":4},"end":{"line":7,"column":4}},"3":{"start":{"line":9,"column":0},"end":{"line":9,"column":14}}},"fnMap":{"0":{"name":"t","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":10}},"loc":{"start":{"line":4,"column":49},"end":{"line":8,"column":1}},"line":4}},"branchMap":{},"s":{"0":1,"1":1,"2":7,"3":1},"f":{"0":7},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/translate.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/translate.ts"],"names":[],"mappings":";;;AAGA,SAAgB,CAAC,CAChB,GAAY,EACZ,GAAW,EACX,KAAY,EACZ,mBAAgC;IAEhC,OAAO,UAAU,CAAC,0BAA0B,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;KAC/D,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,mBAAmB,CAAC;GACrD,CAAC;AACJ,CAAC;AATD,cASC","sourcesContent":["import { Context } from \"koa\";\nimport { Translation } from \"sealious\";\n\nexport function t(\n\tctx: Context,\n\tkey: string,\n\tprops: any[],\n\tdefault_translation: Translation\n) {\n\treturn /* HTML */ `<span translation-key=\"${key.replace('\"', '\\\\\"')}\"\n\t\t>${ctx.$app.getString(key, props, default_translation)}</span\n\t>`;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"057c3954d04e227866bf8ecfffde1d78841c6639"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/simple-form-field.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/simple-form-field.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"3":{"start":{"line":5,"column":24},"end":{"line":5,"column":58}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":24}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":59}},"6":{"start":{"line":12,"column":8},"end":{"line":16,"column":10}},"7":{"start":{"line":19,"column":8},"end":{"line":19,"column":18}},"8":{"start":{"line":22,"column":0},"end":{"line":22,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":26},"end":{"line":10,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":30},"end":{"line":17,"column":5}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":20},"end":{"line":20,"column":5}},"line":18}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":27},"end":{"line":13,"column":42}},"type":"binary-expr","locations":[{"start":{"line":13,"column":27},"end":{"line":13,"column":36}},{"start":{"line":13,"column":40},"end":{"line":13,"column":42}}],"line":13}},"s":{"0":1,"1":1,"2":1,"3":1,"4":4,"5":4,"6":32,"7":42,"8":1},"f":{"0":4,"1":32,"2":42},"b":{"0":[32,7]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/simple-form-field.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/simple-form-field.ts"],"names":[],"mappings":";;;AAAA,mCAAsD;AAGtD,2DAAqD;AAErD,MAAa,eAA0C,SAAQ,iBAG9D;IAkBA,YAAY,QAAkB;QAC7B,KAAK,CAAC,QAAQ,CAAC,CAAC;QAPjB,cAAS,GAAG,0BAAU,CAAC,MAAM,CAAC;IAQ9B,CAAC;IAnBD,KAAK,CAAC,KAAK,CACV,CAAU,EACV,SAAwB;QAExB,OAAO;YACN,YAAY,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC1C,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;SACX,CAAC;IACH,CAAC;IAIM,aAAa;QACnB,OAAO,EAAE,CAAC;IACX,CAAC;CAKD;AAxBD,0CAwBC","sourcesContent":["import { FieldParseResult, FormField } from \"./field\";\nimport { FormDataValue } from \"../form\";\nimport { Context } from \"koa\";\nimport { predicates } from \"@sealcode/ts-predicates\";\n\nexport class SimpleFormField<Required extends boolean> extends FormField<\n\tRequired,\n\tstring | null\n> {\n\tasync parse(\n\t\t_: Context,\n\t\traw_value: FormDataValue\n\t): Promise<FieldParseResult<string>> {\n\t\treturn {\n\t\t\tparsed_value: (raw_value || \"\").toString(),\n\t\t\tparsable: true,\n\t\t\terror: null,\n\t\t};\n\t}\n\n\tpredicate = predicates.string;\n\n\tpublic getEmptyValue(): string {\n\t\treturn \"\";\n\t}\n\n\tconstructor(required: Required) {\n\t\tsuper(required);\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0e2f6e01f176f58626dbc20a7b10a3c57cb160e5"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/checkboxed-list.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/checkboxed-list.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":36}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":34}},"4":{"start":{"line":7,"column":61},"end":{"line":7,"column":82}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":24}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":33}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":47}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":35}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":93}},"10":{"start":{"line":15,"column":8},"end":{"line":17,"column":9}},"11":{"start":{"line":16,"column":12},"end":{"line":16,"column":66}},"12":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"13":{"start":{"line":19,"column":12},"end":{"line":19,"column":66}},"14":{"start":{"line":21,"column":8},"end":{"line":21,"column":44}},"15":{"start":{"line":24,"column":8},"end":{"line":37,"column":9}},"16":{"start":{"line":25,"column":12},"end":{"line":29,"column":14}},"17":{"start":{"line":27,"column":97},"end":{"line":27,"column":111}},"18":{"start":{"line":32,"column":12},"end":{"line":36,"column":14}},"19":{"start":{"line":40,"column":8},"end":{"line":40,"column":18}},"20":{"start":{"line":43,"column":0},"end":{"line":43,"column":48}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":84},"end":{"line":13,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":55},"end":{"line":7,"column":56}},"loc":{"start":{"line":7,"column":61},"end":{"line":7,"column":82}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":33},"end":{"line":22,"column":5}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":30},"end":{"line":38,"column":5}},"line":23},"4":{"name":"(anonymous_4)","decl":{"start":{"line":27,"column":82},"end":{"line":27,"column":83}},"loc":{"start":{"line":27,"column":97},"end":{"line":27,"column":111}},"line":27},"5":{"name":"(anonymous_5)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":20},"end":{"line":41,"column":5}},"line":39}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":43},"end":{"line":7,"column":82}},"type":"default-arg","locations":[{"start":{"line":7,"column":55},"end":{"line":7,"column":82}}],"line":7},"1":{"loc":{"start":{"line":15,"column":8},"end":{"line":17,"column":9}},"type":"if","locations":[{"start":{"line":15,"column":8},"end":{"line":17,"column":9}},{"start":{"line":15,"column":8},"end":{"line":17,"column":9}}],"line":15},"2":{"loc":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"type":"if","locations":[{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},{"start":{"line":18,"column":8},"end":{"line":20,"column":9}}],"line":18},"3":{"loc":{"start":{"line":24,"column":8},"end":{"line":37,"column":9}},"type":"if","locations":[{"start":{"line":24,"column":8},"end":{"line":37,"column":9}},{"start":{"line":24,"column":8},"end":{"line":37,"column":9}}],"line":24}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/checkboxed-list.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/checkboxed-list.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAGzD,mCAIiB;AAEjB,MAAa,kBAA6C,SAAQ,iBAGjE;IACA,YACQ,QAAkB,EAClB,eAEuD,EACvD,YAAgD,GAAG,EAAE,CAC3D,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAEtB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAPT,aAAQ,GAAR,QAAQ,CAAU;QAClB,oBAAe,GAAf,eAAe,CAEwC;QACvD,cAAS,GAAT,SAAS,CACM;QAKvB,cAAS,GAAG,0BAAU,CAAC,KAAK,CAAC,0BAAU,CAAC,MAAM,CAAC,CAAC,CAAC,+BAA+B;IAFhF,CAAC;IAIM,KAAK,CAAC,YAAY,CACxB,CAAU,EACV,KAAc;QAEd,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;YACjC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;SACtD;QACD,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,IAAI,CAAC,EAAE;YAC/B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;SACtD;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CACV,CAAU,EACV,SAAwB;QAExB,IAAI,kBAAE,CAAC,SAAS,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;YACrC,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,MAAM,CAAC,WAAW,CAC/B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAC/B,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAC7B,CACuB;gBACzB,KAAK,EAAE,IAAI;aACX,CAAC;SACF;aAAM;YACN,OAAO;gBACN,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,oBAAoB;aAC3B,CAAC;SACF;IACF,CAAC;IAEM,aAAa;QACnB,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AAxDD,gDAwDC","sourcesContent":["import { is, predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { FormDataValue } from \"../form\";\nimport {\n\tFieldParseResult,\n\tFormField,\n\tFormFieldValidationResponse,\n} from \"./field\";\n\nexport class ChekboxedListField<Required extends boolean> extends FormField<\n\tRequired,\n\tRecord<string, \"on\">\n> {\n\tconstructor(\n\t\tpublic required: Required,\n\t\tpublic generateOptions: (\n\t\t\tctx: Context\n\t\t) => Promise<Record<string, string> | { [i: string]: string }>,\n\t\tpublic isVisible: (ctx: Context) => Promise<boolean> = () =>\n\t\t\tPromise.resolve(true)\n\t) {\n\t\tsuper(required);\n\t}\n\n\tpredicate = predicates.array(predicates.string); // TODO: this is probably wrong\n\n\tpublic async isValueValid(\n\t\t_: Context,\n\t\tvalue: unknown\n\t): Promise<FormFieldValidationResponse> {\n\t\tif (is(value, predicates.string)) {\n\t\t\treturn { valid: false, message: \"you need an array\" };\n\t\t}\n\t\tif (is(value, predicates.null)) {\n\t\t\treturn { valid: false, message: \"you need an array\" };\n\t\t}\n\t\treturn { valid: true, message: \"\" };\n\t}\n\n\tasync parse(\n\t\t_: Context,\n\t\traw_value: FormDataValue\n\t): Promise<FieldParseResult<Record<string, \"on\">>> {\n\t\tif (is(raw_value, predicates.object)) {\n\t\t\treturn {\n\t\t\t\tparsable: true,\n\t\t\t\tparsed_value: Object.fromEntries(\n\t\t\t\t\tObject.entries(raw_value).filter(\n\t\t\t\t\t\t([, value]) => value === \"on\"\n\t\t\t\t\t)\n\t\t\t\t) as Record<string, \"on\">,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tparsed_value: null,\n\t\t\t\tparsable: false,\n\t\t\t\terror: \"Expected an object\",\n\t\t\t};\n\t\t}\n\t}\n\n\tpublic getEmptyValue(): Record<string, \"on\"> {\n\t\treturn {};\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a251d49075cc53cd0057daeb50a3bfa3c2ccee7e"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/collection-field.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/collection-field.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":34}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":24}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":43}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":60}},"7":{"start":{"line":13,"column":8},"end":{"line":15,"column":9}},"8":{"start":{"line":14,"column":12},"end":{"line":14,"column":71}},"9":{"start":{"line":16,"column":31},"end":{"line":16,"column":87}},"10":{"start":{"line":17,"column":30},"end":{"line":17,"column":100}},"11":{"start":{"line":18,"column":8},"end":{"line":22,"column":10}},"12":{"start":{"line":25,"column":34},"end":{"line":25,"column":107}},"13":{"start":{"line":26,"column":8},"end":{"line":26,"column":75}},"14":{"start":{"line":29,"column":8},"end":{"line":29,"column":18}},"15":{"start":{"line":32,"column":0},"end":{"line":32,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":41},"end":{"line":11,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":32},"end":{"line":23,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":35},"end":{"line":27,"column":5}},"line":24},"3":{"name":"(anonymous_3)","decl":{"start":{"line":28,"column":4},"end":{"line":28,"column":5}},"loc":{"start":{"line":28,"column":20},"end":{"line":30,"column":5}},"line":28}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":13,"column":8},"end":{"line":15,"column":9}},{"start":{"line":13,"column":8},"end":{"line":15,"column":9}}],"line":13},"1":{"loc":{"start":{"line":26,"column":33},"end":{"line":26,"column":72}},"type":"binary-expr","locations":[{"start":{"line":26,"column":33},"end":{"line":26,"column":39}},{"start":{"line":26,"column":44},"end":{"line":26,"column":71}}],"line":26},"2":{"loc":{"start":{"line":26,"column":44},"end":{"line":26,"column":71}},"type":"cond-expr","locations":[{"start":{"line":26,"column":53},"end":{"line":26,"column":66}},{"start":{"line":26,"column":69},"end":{"line":26,"column":71}}],"line":26}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/collection-field.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/collection-field.ts"],"names":[],"mappings":";;;AAAA,2DAAqD;AAKrD,mCAIiB;AAEjB,MAAa,eAGX,SAAQ,iBAA0C;IACnD,YAAY,QAAkB,EAAS,aAAgB;QACtD,KAAK,CAAC,QAAQ,CAAC,CAAC;QADsB,kBAAa,GAAb,aAAa,CAAG;QAIvD,cAAS,GAAG,0BAAU,CAAC,OAAO,CAAC;IAF/B,CAAC;IAID,KAAK,CAAC,KAAK,CACV,GAAY,EACZ,SAAwB;QAExB,IAAI,SAAS,KAAK,SAAS,EAAE;YAC5B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC3D;QACD,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CACrD,GAAG,CAAC,QAAQ,EACZ,SAAS,CACT,CAAyC,CAAC;QAC3C,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CACpD,GAAG,CAAC,QAAQ,EACZ,aAAa,EACb,IAAI,EACJ,EAAE,CACF,CAAyC,CAAC;QAC3C,OAAO;YACN,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,YAAY;SACZ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,YAAY,CACxB,GAAY,EACZ,KAAqB;QAErB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAC5D,GAAG,CAAC,QAAQ,EACZ,KAAK,EACL,SAAS,EACT,IAAI,CACJ,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACpE,CAAC;IAEM,aAAa;QACnB,OAAO,EAAqD,CAAC;IAC9D,CAAC;CACD;AAlDD,0CAkDC","sourcesContent":["import { predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { Depromisify, Field, FieldOutput } from \"sealious\";\nimport { FormDataValue } from \"../form\";\n\nimport {\n\tFieldParseResult,\n\tFormField,\n\tFormFieldValidationResponse,\n} from \"./field\";\n\nexport class CollectionField<\n\tF extends Field,\n\tRequired extends boolean\n> extends FormField<Required, FieldOutput<F> | null> {\n\tconstructor(required: Required, public sealiousField: F) {\n\t\tsuper(required);\n\t}\n\n\tpredicate = predicates.unknown;\n\n\tasync parse(\n\t\tctx: Context,\n\t\traw_value: FormDataValue\n\t): Promise<FieldParseResult<FieldOutput<F> | null>> {\n\t\tif (raw_value === undefined) {\n\t\t\treturn { parsable: true, parsed_value: null, error: null };\n\t\t}\n\t\tconst encoded_value = (await this.sealiousField.encode(\n\t\t\tctx.$context,\n\t\t\traw_value\n\t\t)) as Depromisify<ReturnType<F[\"encode\"]>>;\n\t\tconst parsed_value = (await this.sealiousField.decode(\n\t\t\tctx.$context,\n\t\t\tencoded_value,\n\t\t\tnull,\n\t\t\t{}\n\t\t)) as Depromisify<ReturnType<F[\"encode\"]>>;\n\t\treturn {\n\t\t\tparsable: true,\n\t\t\terror: null,\n\t\t\tparsed_value,\n\t\t};\n\t}\n\n\tpublic async isValueValid(\n\t\tctx: Context,\n\t\tvalue: FieldOutput<F>\n\t): Promise<FormFieldValidationResponse> {\n\t\tconst { valid, reason } = await this.sealiousField.checkValue(\n\t\t\tctx.$context,\n\t\t\tvalue,\n\t\t\tundefined,\n\t\t\tnull\n\t\t);\n\t\treturn { valid, message: reason || (!valid ? \"Wrong value\" : \"\") };\n\t}\n\n\tpublic getEmptyValue(): Depromisify<ReturnType<F[\"decode\"]>> {\n\t\treturn \"\" as unknown as Depromisify<ReturnType<F[\"decode\"]>>;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ae6d7588e4e83caa4943e832650c4ca97a5f8686"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/number.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/number.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":34}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":24}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":43}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":31}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":59}},"8":{"start":{"line":14,"column":8},"end":{"line":20,"column":9}},"9":{"start":{"line":19,"column":12},"end":{"line":19,"column":48}},"10":{"start":{"line":21,"column":8},"end":{"line":21,"column":69}},"11":{"start":{"line":24,"column":8},"end":{"line":42,"column":9}},"12":{"start":{"line":28,"column":12},"end":{"line":34,"column":14}},"13":{"start":{"line":37,"column":12},"end":{"line":41,"column":14}},"14":{"start":{"line":45,"column":8},"end":{"line":45,"column":34}},"15":{"start":{"line":48,"column":0},"end":{"line":48,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":55},"end":{"line":12,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":33},"end":{"line":22,"column":5}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":26},"end":{"line":43,"column":5}},"line":23},"3":{"name":"(anonymous_3)","decl":{"start":{"line":44,"column":4},"end":{"line":44,"column":5}},"loc":{"start":{"line":44,"column":20},"end":{"line":46,"column":5}},"line":44}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":41},"end":{"line":7,"column":53}},"type":"default-arg","locations":[{"start":{"line":7,"column":51},"end":{"line":7,"column":53}}],"line":7},"1":{"loc":{"start":{"line":14,"column":8},"end":{"line":20,"column":9}},"type":"if","locations":[{"start":{"line":14,"column":8},"end":{"line":20,"column":9}},{"start":{"line":14,"column":8},"end":{"line":20,"column":9}}],"line":14},"2":{"loc":{"start":{"line":14,"column":12},"end":{"line":18,"column":112}},"type":"binary-expr","locations":[{"start":{"line":14,"column":13},"end":{"line":14,"column":73}},{"start":{"line":15,"column":12},"end":{"line":15,"column":37}},{"start":{"line":16,"column":12},"end":{"line":16,"column":56}},{"start":{"line":17,"column":12},"end":{"line":17,"column":72}},{"start":{"line":18,"column":14},"end":{"line":18,"column":77}},{"start":{"line":18,"column":81},"end":{"line":18,"column":92}},{"start":{"line":18,"column":97},"end":{"line":18,"column":111}}],"line":14},"3":{"loc":{"start":{"line":24,"column":8},"end":{"line":42,"column":9}},"type":"if","locations":[{"start":{"line":24,"column":8},"end":{"line":42,"column":9}},{"start":{"line":24,"column":8},"end":{"line":42,"column":9}}],"line":24},"4":{"loc":{"start":{"line":24,"column":12},"end":{"line":27,"column":72}},"type":"binary-expr","locations":[{"start":{"line":24,"column":13},"end":{"line":24,"column":73}},{"start":{"line":25,"column":12},"end":{"line":25,"column":37}},{"start":{"line":26,"column":12},"end":{"line":26,"column":56}},{"start":{"line":27,"column":12},"end":{"line":27,"column":72}}],"line":24},"5":{"loc":{"start":{"line":30,"column":30},"end":{"line":32,"column":50}},"type":"cond-expr","locations":[{"start":{"line":31,"column":22},"end":{"line":31,"column":98}},{"start":{"line":32,"column":22},"end":{"line":32,"column":50}}],"line":30}},"s":{"0":1,"1":1,"2":1,"3":1,"4":6,"5":6,"6":6,"7":6,"8":4,"9":3,"10":1,"11":4,"12":3,"13":1,"14":0,"15":1},"f":{"0":6,"1":4,"2":4,"3":0},"b":{"0":[5],"1":[3,1],"2":[4,3,1,3,2,2,1],"3":[3,1],"4":[4,2,1,3],"5":[1,2]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/number.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/number.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAGzD,mCAAsD;AAEtD,MAAa,WAGX,SAAQ,iBAA0C;IACnD,YACC,QAAkB,EACX,aAA2B,EAC3B,UAIF,EAAE;QAEP,KAAK,CAAC,QAAQ,CAAC,CAAC;QAPT,kBAAa,GAAb,aAAa,CAAc;QAC3B,YAAO,GAAP,OAAO,CAIP;QAKR,cAAS,GAAG,0BAAU,CAAC,MAAM,CAAC;IAF9B,CAAC;IAIM,KAAK,CAAC,YAAY,CAAC,CAAU,EAAE,KAAc;QACnD,IACC,CAAC,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC;YAC5B,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzB,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC9C,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC;YAC5B,CAAC,CAAC,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EACnE;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;SACpC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,KAAK,CACV,CAAU,EACV,KAAoB;QAEpB,IACC,CAAC,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC;YAC5B,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzB,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC9C,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC,EAC3B;YACD,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;oBACvC,CAAC,CAAC,UAAU,CACV,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CACnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAC1B,CACA;oBACH,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC/B,KAAK,EAAE,IAAI;aACX,CAAC;SACF;aAAM;YACN,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,uBAAuB;aAC9B,CAAC;SACF;IACF,CAAC;IAEM,aAAa;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;CACD;AAhED,kCAgEC","sourcesContent":["import { is, predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { FormDataValue } from \"../form\";\nimport { FieldParseResult, FormField } from \"./field\";\n\nexport class NumberField<\n\tDefaultValue extends number | null = number,\n\tRequired extends boolean = boolean\n> extends FormField<Required, number | DefaultValue> {\n\tconstructor(\n\t\trequired: Required,\n\t\tpublic default_value: DefaultValue,\n\t\tpublic options: Partial<{\n\t\t\tmax: number;\n\t\t\tmin: number;\n\t\t\tdecimalDigits: number;\n\t\t}> = {}\n\t) {\n\t\tsuper(required);\n\t}\n\n\tpredicate = predicates.number;\n\n\tpublic async isValueValid(_: Context, value: unknown) {\n\t\tif (\n\t\t\t(is(value, predicates.string) &&\n\t\t\t\t!isNaN(parseFloat(value)) &&\n\t\t\t\tparseFloat(value).toString() == value.trim()) ||\n\t\t\tis(value, predicates.number) ||\n\t\t\t((is(value, predicates.undefined) || value == \"\") && !this.required)\n\t\t) {\n\t\t\treturn { valid: true, message: \"\" };\n\t\t}\n\t\treturn { valid: false, message: \"Proszę wprowadzić liczbę\" };\n\t}\n\n\tasync parse(\n\t\t_: Context,\n\t\tvalue: FormDataValue\n\t): Promise<FieldParseResult<number>> {\n\t\tif (\n\t\t\t(is(value, predicates.string) &&\n\t\t\t\t!isNaN(parseFloat(value)) &&\n\t\t\t\tparseFloat(value).toString() == value.trim()) ||\n\t\t\tis(value, predicates.number)\n\t\t) {\n\t\t\treturn {\n\t\t\t\tparsable: true,\n\t\t\t\tparsed_value: this.options.decimalDigits\n\t\t\t\t\t? parseFloat(\n\t\t\t\t\t\t\tparseFloat(value.toString()).toFixed(\n\t\t\t\t\t\t\t\tthis.options.decimalDigits\n\t\t\t\t\t\t\t)\n\t\t\t\t\t )\n\t\t\t\t\t: parseFloat(value.toString()),\n\t\t\t\terror: null,\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tparsable: false,\n\t\t\t\tparsed_value: null,\n\t\t\t\terror: \"Please enter a number\",\n\t\t\t};\n\t\t}\n\t}\n\n\tpublic getEmptyValue(): DefaultValue {\n\t\treturn this.default_value;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"233b11289c69c52042ffdc5c7b55760a8fec52eb"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/pick-from-list.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/pick-from-list.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":35}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":28},"end":{"line":5,"column":58}},"4":{"start":{"line":7,"column":88},"end":{"line":7,"column":120}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":24}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":33}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":47}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":49}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":59}},"10":{"start":{"line":15,"column":8},"end":{"line":15,"column":55}},"11":{"start":{"line":18,"column":24},"end":{"line":18,"column":55}},"12":{"start":{"line":19,"column":8},"end":{"line":21,"column":9}},"13":{"start":{"line":20,"column":12},"end":{"line":20,"column":61}},"14":{"start":{"line":22,"column":8},"end":{"line":27,"column":9}},"15":{"start":{"line":22,"column":49},"end":{"line":22,"column":56}},"16":{"start":{"line":23,"column":12},"end":{"line":26,"column":14}},"17":{"start":{"line":28,"column":8},"end":{"line":28,"column":44}},"18":{"start":{"line":31,"column":8},"end":{"line":31,"column":18}},"19":{"start":{"line":34,"column":0},"end":{"line":34,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":122},"end":{"line":13,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":62},"end":{"line":7,"column":63}},"loc":{"start":{"line":7,"column":88},"end":{"line":7,"column":120}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":29},"end":{"line":16,"column":5}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":4},"end":{"line":17,"column":5}},"loc":{"start":{"line":17,"column":34},"end":{"line":29,"column":5}},"line":17},"4":{"name":"(anonymous_4)","decl":{"start":{"line":22,"column":42},"end":{"line":22,"column":43}},"loc":{"start":{"line":22,"column":49},"end":{"line":22,"column":56}},"line":22},"5":{"name":"(anonymous_5)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":20},"end":{"line":32,"column":5}},"line":30}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":43},"end":{"line":7,"column":120}},"type":"default-arg","locations":[{"start":{"line":7,"column":62},"end":{"line":7,"column":120}}],"line":7},"1":{"loc":{"start":{"line":19,"column":8},"end":{"line":21,"column":9}},"type":"if","locations":[{"start":{"line":19,"column":8},"end":{"line":21,"column":9}},{"start":{"line":19,"column":8},"end":{"line":21,"column":9}}],"line":19},"2":{"loc":{"start":{"line":22,"column":8},"end":{"line":27,"column":9}},"type":"if","locations":[{"start":{"line":22,"column":8},"end":{"line":27,"column":9}},{"start":{"line":22,"column":8},"end":{"line":27,"column":9}}],"line":22},"3":{"loc":{"start":{"line":22,"column":12},"end":{"line":22,"column":73}},"type":"binary-expr","locations":[{"start":{"line":22,"column":12},"end":{"line":22,"column":25}},{"start":{"line":22,"column":29},"end":{"line":22,"column":73}}],"line":22}},"s":{"0":1,"1":1,"2":1,"3":1,"4":3,"5":1,"6":1,"7":1,"8":1,"9":1,"10":3,"11":3,"12":3,"13":1,"14":2,"15":4,"16":1,"17":1,"18":0,"19":1},"f":{"0":1,"1":3,"2":3,"3":3,"4":4,"5":0},"b":{"0":[1],"1":[1,2],"2":[1,1],"3":[2,2]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/pick-from-list.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/pick-from-list.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAIzD,2DAAsD;AAEtD,MAAa,iBAEX,SAAQ,mCAAyB;IAClC,YACQ,QAAkB,EAClB,eAA4D,EAC5D,mBAIqC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CACpE,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC;QAEjC,KAAK,CAAC,QAAQ,CAAC,CAAC;QATT,aAAQ,GAAR,QAAQ,CAAU;QAClB,oBAAe,GAAf,eAAe,CAA6C;QAC5D,qBAAgB,GAAhB,gBAAgB,CAKU;QAKlC,cAAS,GAAG,0BAAU,CAAC,MAAM,CAAC;IAF9B,CAAC;IAIM,YAAY,CAClB,GAAY,EACZ,KAAa;QAEb,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,GAAY,EACZ,KAAc;QAEd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;YAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;SACjD;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAClE,OAAO;gBACN,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,IAAI,KAAK,6BAA6B;aAC/C,CAAC;SACF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAEM,aAAa;QACnB,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AA7CD,8CA6CC","sourcesContent":["import { is, predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { DropdownOption } from \"../controls/dropdown\";\nimport { FormFieldValidationResponse } from \"./field\";\nimport { SimpleFormField } from \"./simple-form-field\";\n\nexport class PickFromListField<\n\tRequired extends boolean\n> extends SimpleFormField<Required> {\n\tconstructor(\n\t\tpublic required: Required,\n\t\tpublic generateOptions: (ctx: Context) => Promise<DropdownOption[]>,\n\t\tpublic customValidation: (\n\t\t\tctx: Context,\n\t\t\tvalue: unknown,\n\t\t\tinstance: PickFromListField<Required>\n\t\t) => Promise<FormFieldValidationResponse> = (ctx, value, instance) =>\n\t\t\tinstance.valueInList(ctx, value)\n\t) {\n\t\tsuper(required);\n\t}\n\n\tpredicate = predicates.string;\n\n\tpublic isValueValid(\n\t\tctx: Context,\n\t\tvalue: string\n\t): Promise<FormFieldValidationResponse> {\n\t\treturn this.customValidation(ctx, value, this);\n\t}\n\n\tasync valueInList(\n\t\tctx: Context,\n\t\tvalue: unknown\n\t): Promise<FormFieldValidationResponse> {\n\t\tconst options = await this.generateOptions(ctx);\n\t\tif (!is(value, predicates.string)) {\n\t\t\treturn { valid: false, message: \"not a string\" };\n\t\t}\n\t\tif (this.required && !options.map((o) => o.value).includes(value)) {\n\t\t\treturn {\n\t\t\t\tvalid: false,\n\t\t\t\tmessage: `\"${value}\" is not one of the options`,\n\t\t\t};\n\t\t}\n\t\treturn { valid: true, message: \"\" };\n\t}\n\n\tpublic getEmptyValue(): string {\n\t\treturn \"\";\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a1faf9ab6c4368e57185f912c8cbc38204a69f73"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/regexp.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/regexp.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":34}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":24}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":29}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":43}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":43}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":59}},"9":{"start":{"line":15,"column":8},"end":{"line":17,"column":9}},"10":{"start":{"line":16,"column":12},"end":{"line":16,"column":66}},"11":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"12":{"start":{"line":19,"column":12},"end":{"line":19,"column":48}},"13":{"start":{"line":21,"column":8},"end":{"line":21,"column":61}},"14":{"start":{"line":24,"column":8},"end":{"line":37,"column":9}},"15":{"start":{"line":25,"column":12},"end":{"line":29,"column":14}},"16":{"start":{"line":32,"column":12},"end":{"line":36,"column":14}},"17":{"start":{"line":40,"column":8},"end":{"line":40,"column":40}},"18":{"start":{"line":43,"column":0},"end":{"line":43,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":69},"end":{"line":13,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":33},"end":{"line":22,"column":5}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":26},"end":{"line":38,"column":5}},"line":23},"3":{"name":"(anonymous_3)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":20},"end":{"line":41,"column":5}},"line":39}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":49},"end":{"line":7,"column":67}},"type":"default-arg","locations":[{"start":{"line":7,"column":65},"end":{"line":7,"column":67}}],"line":7},"1":{"loc":{"start":{"line":15,"column":8},"end":{"line":17,"column":9}},"type":"if","locations":[{"start":{"line":15,"column":8},"end":{"line":17,"column":9}},{"start":{"line":15,"column":8},"end":{"line":17,"column":9}}],"line":15},"2":{"loc":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"type":"if","locations":[{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},{"start":{"line":18,"column":8},"end":{"line":20,"column":9}}],"line":18},"3":{"loc":{"start":{"line":24,"column":8},"end":{"line":37,"column":9}},"type":"if","locations":[{"start":{"line":24,"column":8},"end":{"line":37,"column":9}},{"start":{"line":24,"column":8},"end":{"line":37,"column":9}}],"line":24},"4":{"loc":{"start":{"line":40,"column":15},"end":{"line":40,"column":39}},"type":"binary-expr","locations":[{"start":{"line":40,"column":15},"end":{"line":40,"column":33}},{"start":{"line":40,"column":37},"end":{"line":40,"column":39}}],"line":40}},"s":{"0":1,"1":1,"2":1,"3":1,"4":6,"5":6,"6":6,"7":6,"8":6,"9":23,"10":1,"11":22,"12":11,"13":11,"14":22,"15":20,"16":2,"17":6,"18":1},"f":{"0":6,"1":23,"2":22,"3":6},"b":{"0":[2],"1":[1,22],"2":[11,11],"3":[20,2],"4":[6,6]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/regexp.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/regexp.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAGzD,mCAAsD;AAEtD,MAAa,WAAsC,SAAQ,iBAAmB;IAC7E,YACC,QAAkB,EACX,MAAc,EACd,aAAqB,EACrB,gBAAwB,EAAE;QAEjC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJT,WAAM,GAAN,MAAM,CAAQ;QACd,kBAAa,GAAb,aAAa,CAAQ;QACrB,kBAAa,GAAb,aAAa,CAAa;QAKlC,cAAS,GAAG,0BAAU,CAAC,MAAM,CAAC;IAF9B,CAAC;IAIM,KAAK,CAAC,YAAY,CACxB,CAAU,EACV,KAAc;QAEd,IAAI,CAAC,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;YAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;SACtD;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;SACpC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK,CACV,CAAU,EACV,KAAoB;QAEpB,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;YACjC,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,KAAK;gBACnB,KAAK,EAAE,IAAI;aACX,CAAC;SACF;aAAM;YACN,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,uBAAuB;aAC9B,CAAC;SACF;IACF,CAAC;IAEM,aAAa;QACnB,OAAO,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACjC,CAAC;CACD;AA/CD,kCA+CC","sourcesContent":["import { is, predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { FormDataValue } from \"../form\";\nimport { FieldParseResult, FormField } from \"./field\";\n\nexport class RegExpField<Required extends boolean> extends FormField<Required> {\n\tconstructor(\n\t\trequired: Required,\n\t\tpublic regexp: RegExp,\n\t\tpublic error_message: string,\n\t\tpublic default_value: string = \"\"\n\t) {\n\t\tsuper(required);\n\t}\n\n\tpredicate = predicates.string;\n\n\tpublic async isValueValid(\n\t\t_: Context,\n\t\tvalue: unknown\n\t): Promise<{ valid: boolean; message: string }> {\n\t\tif (!is(value, predicates.string)) {\n\t\t\treturn { valid: false, message: \"expected a string\" };\n\t\t}\n\t\tif (this.regexp.exec(value)) {\n\t\t\treturn { valid: true, message: \"\" };\n\t\t}\n\t\treturn { valid: false, message: this.error_message };\n\t}\n\n\tasync parse(\n\t\t_: Context,\n\t\tvalue: FormDataValue\n\t): Promise<FieldParseResult<string>> {\n\t\tif (is(value, predicates.string)) {\n\t\t\treturn {\n\t\t\t\tparsable: true,\n\t\t\t\tparsed_value: value,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tparsable: false,\n\t\t\t\tparsed_value: null,\n\t\t\t\terror: \"Please enter a string\",\n\t\t\t};\n\t\t}\n\t}\n\n\tpublic getEmptyValue(): string {\n\t\treturn this.default_value || \"\";\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"33403ac0bdcb6ebb1eebcc7a9a03c77c8bf673e6"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/email.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/email.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":36}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":206}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":43}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":43}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":59}},"8":{"start":{"line":14,"column":0},"end":{"line":14,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":101},"end":{"line":12,"column":5}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":26},"end":{"line":7,"column":79}},"type":"default-arg","locations":[{"start":{"line":7,"column":42},"end":{"line":7,"column":79}}],"line":7},"1":{"loc":{"start":{"line":7,"column":81},"end":{"line":7,"column":99}},"type":"default-arg","locations":[{"start":{"line":7,"column":97},"end":{"line":7,"column":99}}],"line":7}},"s":{"0":1,"1":1,"2":1,"3":1,"4":4,"5":4,"6":4,"7":4,"8":1},"f":{"0":4},"b":{"0":[4],"1":[4]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/email.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/email.ts"],"names":[],"mappings":";;;AAAA,2DAAqD;AACrD,qCAAuC;AAEvC,MAAa,UAEX,SAAQ,oBAAqB;IAE9B,YACC,QAAkB,EACX,gBAAgB,qCAAqC,EACrD,gBAAgB,EAAE;QAEzB,KAAK,CACJ,QAAQ,EACR,sJAAsJ,EACtJ,aAAa,EACb,aAAa,CACb,CAAC;QARK,kBAAa,GAAb,aAAa,CAAwC;QACrD,kBAAa,GAAb,aAAa,CAAK;QAJ1B,cAAS,GAAG,0BAAU,CAAC,MAAM,CAAC;IAY9B,CAAC;CACD;AAhBD,gCAgBC","sourcesContent":["import { predicates } from \"@sealcode/ts-predicates\";\nimport { RegExpField } from \"./regexp\";\n\nexport class EmailField<\n\tRequired extends boolean\n> extends RegExpField<Required> {\n\tpredicate = predicates.string;\n\tconstructor(\n\t\trequired: Required,\n\t\tpublic error_message = \"Please enter a proper email address\",\n\t\tpublic default_value = \"\"\n\t) {\n\t\tsuper(\n\t\t\trequired,\n\t\t\t/^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n\t\t\terror_message,\n\t\t\tdefault_value\n\t\t);\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fe06c0d01cc2d0050d0a0faf5171172931dbba86"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":27}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":34}},"4":{"start":{"line":7,"column":64},"end":{"line":7,"column":82}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":24}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":31}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":43}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":71}},"9":{"start":{"line":14,"column":8},"end":{"line":16,"column":9}},"10":{"start":{"line":15,"column":12},"end":{"line":15,"column":66}},"11":{"start":{"line":17,"column":8},"end":{"line":19,"column":9}},"12":{"start":{"line":18,"column":12},"end":{"line":18,"column":48}},"13":{"start":{"line":20,"column":8},"end":{"line":20,"column":75}},"14":{"start":{"line":23,"column":8},"end":{"line":36,"column":9}},"15":{"start":{"line":24,"column":12},"end":{"line":28,"column":14}},"16":{"start":{"line":31,"column":12},"end":{"line":35,"column":14}},"17":{"start":{"line":39,"column":8},"end":{"line":39,"column":18}},"18":{"start":{"line":42,"column":0},"end":{"line":42,"column":30}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":84},"end":{"line":12,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":51},"end":{"line":7,"column":52}},"loc":{"start":{"line":7,"column":64},"end":{"line":7,"column":82}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":33},"end":{"line":21,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":22,"column":4},"end":{"line":22,"column":5}},"loc":{"start":{"line":22,"column":26},"end":{"line":37,"column":5}},"line":22},"4":{"name":"(anonymous_4)","decl":{"start":{"line":38,"column":4},"end":{"line":38,"column":5}},"loc":{"start":{"line":38,"column":20},"end":{"line":40,"column":5}},"line":38}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":35},"end":{"line":7,"column":82}},"type":"default-arg","locations":[{"start":{"line":7,"column":51},"end":{"line":7,"column":82}}],"line":7},"1":{"loc":{"start":{"line":14,"column":8},"end":{"line":16,"column":9}},"type":"if","locations":[{"start":{"line":14,"column":8},"end":{"line":16,"column":9}},{"start":{"line":14,"column":8},"end":{"line":16,"column":9}}],"line":14},"2":{"loc":{"start":{"line":17,"column":8},"end":{"line":19,"column":9}},"type":"if","locations":[{"start":{"line":17,"column":8},"end":{"line":19,"column":9}},{"start":{"line":17,"column":8},"end":{"line":19,"column":9}}],"line":17},"3":{"loc":{"start":{"line":23,"column":8},"end":{"line":36,"column":9}},"type":"if","locations":[{"start":{"line":23,"column":8},"end":{"line":36,"column":9}},{"start":{"line":23,"column":8},"end":{"line":36,"column":9}}],"line":23}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":2,"6":2,"7":2,"8":2,"9":3,"10":1,"11":2,"12":1,"13":1,"14":2,"15":1,"16":1,"17":0,"18":1},"f":{"0":2,"1":1,"2":3,"3":2,"4":0},"b":{"0":[2],"1":[1,2],"2":[1,1],"3":[1,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAGzD,mCAAsD;AAEtD,MAAa,SAGX,SAAQ,iBAA2B;IACpC,YACC,QAAkB,EACX,OAAgB,EAChB,gBAA8C,CAAC,OAAO,EAAE,EAAE,CAChE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAEnB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJT,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CACD;QAKpB,cAAS,GAAG,0BAAU,CAAC,IAAI,CAAU,IAAI,CAAC,OAAO,CAAC,CAAC;IAFnD,CAAC;IAIM,KAAK,CAAC,YAAY,CACxB,CAAU,EACV,KAAc;QAEd,IAAI,CAAC,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;YAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;SACtD;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACjC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;SACpC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,KAAK,CACV,CAAU,EACV,KAAoB;QAEpB,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;YACjC,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,KAAK;gBACnB,KAAK,EAAE,IAAI;aACX,CAAC;SACF;aAAM;YACN,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,uBAAuB;aAC9B,CAAC;SACF;IACF,CAAC;IAEM,aAAa;QACnB,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AAlDD,8BAkDC","sourcesContent":["import { is, predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { FormDataValue } from \"../form\";\nimport { FieldParseResult, FormField } from \"./field\";\n\nexport class EnumField<\n\tOptions extends readonly string[],\n\tRequired extends boolean\n> extends FormField<Required, string> {\n\tconstructor(\n\t\trequired: Required,\n\t\tpublic options: Options,\n\t\tpublic error_message: (options: Options) => string = (options) =>\n\t\t\toptions.join(\", \")\n\t) {\n\t\tsuper(required);\n\t}\n\n\tpredicate = predicates.enum<Options>(this.options);\n\n\tpublic async isValueValid(\n\t\t_: Context,\n\t\tvalue: unknown\n\t): Promise<{ valid: boolean; message: string }> {\n\t\tif (!is(value, predicates.string)) {\n\t\t\treturn { valid: false, message: \"expected a string\" };\n\t\t}\n\t\tif (this.options.includes(value)) {\n\t\t\treturn { valid: true, message: \"\" };\n\t\t}\n\t\treturn { valid: false, message: this.error_message(this.options) };\n\t}\n\n\tasync parse(\n\t\t_: Context,\n\t\tvalue: FormDataValue\n\t): Promise<FieldParseResult<string>> {\n\t\tif (is(value, predicates.string)) {\n\t\t\treturn {\n\t\t\t\tparsable: true,\n\t\t\t\tparsed_value: value,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tparsable: false,\n\t\t\t\tparsed_value: null,\n\t\t\t\terror: \"Please enter a string\",\n\t\t\t};\n\t\t}\n\t}\n\n\tpublic getEmptyValue(): string {\n\t\treturn \"\";\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d1dd03249fcbd68a4a78db7c3a361c703bd96ef3"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/boolean.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/boolean.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":34}},"4":{"start":{"line":6,"column":15},"end":{"line":6,"column":41}},"5":{"start":{"line":7,"column":14},"end":{"line":7,"column":41}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":24}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":43}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":60}},"9":{"start":{"line":15,"column":8},"end":{"line":17,"column":9}},"10":{"start":{"line":16,"column":12},"end":{"line":16,"column":65}},"11":{"start":{"line":18,"column":8},"end":{"line":18,"column":44}},"12":{"start":{"line":21,"column":8},"end":{"line":48,"column":9}},"13":{"start":{"line":22,"column":12},"end":{"line":22,"column":72}},"14":{"start":{"line":24,"column":13},"end":{"line":48,"column":9}},"15":{"start":{"line":26,"column":12},"end":{"line":30,"column":14}},"16":{"start":{"line":32,"column":13},"end":{"line":48,"column":9}},"17":{"start":{"line":33,"column":12},"end":{"line":37,"column":14}},"18":{"start":{"line":39,"column":13},"end":{"line":48,"column":9}},"19":{"start":{"line":40,"column":12},"end":{"line":40,"column":72}},"20":{"start":{"line":43,"column":12},"end":{"line":47,"column":14}},"21":{"start":{"line":51,"column":8},"end":{"line":51,"column":21}},"22":{"start":{"line":54,"column":0},"end":{"line":54,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":46},"end":{"line":13,"column":5}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":33},"end":{"line":19,"column":5}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":26},"end":{"line":49,"column":5}},"line":20},"3":{"name":"(anonymous_3)","decl":{"start":{"line":50,"column":4},"end":{"line":50,"column":5}},"loc":{"start":{"line":50,"column":20},"end":{"line":52,"column":5}},"line":50}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":26},"end":{"line":9,"column":44}},"type":"default-arg","locations":[{"start":{"line":9,"column":42},"end":{"line":9,"column":44}}],"line":9},"1":{"loc":{"start":{"line":15,"column":8},"end":{"line":17,"column":9}},"type":"if","locations":[{"start":{"line":15,"column":8},"end":{"line":17,"column":9}},{"start":{"line":15,"column":8},"end":{"line":17,"column":9}}],"line":15},"2":{"loc":{"start":{"line":15,"column":12},"end":{"line":15,"column":35}},"type":"binary-expr","locations":[{"start":{"line":15,"column":12},"end":{"line":15,"column":25}},{"start":{"line":15,"column":29},"end":{"line":15,"column":35}}],"line":15},"3":{"loc":{"start":{"line":21,"column":8},"end":{"line":48,"column":9}},"type":"if","locations":[{"start":{"line":21,"column":8},"end":{"line":48,"column":9}},{"start":{"line":21,"column":8},"end":{"line":48,"column":9}}],"line":21},"4":{"loc":{"start":{"line":24,"column":13},"end":{"line":48,"column":9}},"type":"if","locations":[{"start":{"line":24,"column":13},"end":{"line":48,"column":9}},{"start":{"line":24,"column":13},"end":{"line":48,"column":9}}],"line":24},"5":{"loc":{"start":{"line":24,"column":17},"end":{"line":25,"column":49}},"type":"binary-expr","locations":[{"start":{"line":24,"column":17},"end":{"line":24,"column":77}},{"start":{"line":25,"column":12},"end":{"line":25,"column":49}}],"line":24},"6":{"loc":{"start":{"line":32,"column":13},"end":{"line":48,"column":9}},"type":"if","locations":[{"start":{"line":32,"column":13},"end":{"line":48,"column":9}},{"start":{"line":32,"column":13},"end":{"line":48,"column":9}}],"line":32},"7":{"loc":{"start":{"line":39,"column":13},"end":{"line":48,"column":9}},"type":"if","locations":[{"start":{"line":39,"column":13},"end":{"line":48,"column":9}},{"start":{"line":39,"column":13},"end":{"line":48,"column":9}}],"line":39}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":3,"7":3,"8":3,"9":4,"10":1,"11":3,"12":5,"13":1,"14":4,"15":1,"16":3,"17":1,"18":2,"19":1,"20":1,"21":0,"22":1},"f":{"0":3,"1":4,"2":5,"3":0},"b":{"0":[3],"1":[1,3],"2":[4,2],"3":[1,4],"4":[1,3],"5":[4,1],"6":[1,2],"7":[1,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/boolean.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/boolean.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAGzD,mCAAsD;AAEtD,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC1C,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAE1C,MAAa,OAAkC,SAAQ,iBAGtD;IAEA,YAAY,QAAkB,EAAS,gBAAwB,EAAE;QAChE,KAAK,CAAC,QAAQ,CAAC,CAAC;QADsB,kBAAa,GAAb,aAAa,CAAa;QADjE,cAAS,GAAG,0BAAU,CAAC,OAAO,CAAC;IAG/B,CAAC;IAEM,KAAK,CAAC,YAAY,CACxB,CAAU,EACV,KAAc;QAEd,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE;YAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;SACrD;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CACV,CAAU,EACV,KAAoB;QAEpB,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,OAAO,CAAC,EAAE;YAClC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC5D;aAAM,IACN,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC;YAC5B,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpC;YACD,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpC,KAAK,EAAE,IAAI;aACX,CAAC;SACF;aAAM,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,SAAS,CAAC,EAAE;YAC3C,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,KAAK;gBACnB,KAAK,EAAE,IAAI;aACX,CAAC;SACF;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE;YAC1B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC5D;aAAM;YACN,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,wBAAwB;aAC/B,CAAC;SACF;IACF,CAAC;IAEM,aAAa;QACnB,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAtDD,0BAsDC","sourcesContent":["import { is, predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { FormDataValue } from \"../form\";\nimport { FieldParseResult, FormField } from \"./field\";\n\nconst truthy = [\"true\", \"on\", \"yes\", \"1\"];\nconst falsy = [\"false\", \"off\", \"no\", \"0\"];\n\nexport class Boolean<Required extends boolean> extends FormField<\n\tRequired,\n\tboolean\n> {\n\tpredicate = predicates.boolean;\n\tconstructor(required: Required, public error_message: string = \"\") {\n\t\tsuper(required);\n\t}\n\n\tpublic async isValueValid(\n\t\t_: Context,\n\t\tvalue: boolean\n\t): Promise<{ valid: boolean; message: string }> {\n\t\tif (this.required && !value) {\n\t\t\treturn { valid: false, message: this.error_message };\n\t\t}\n\t\treturn { valid: true, message: \"\" };\n\t}\n\n\tasync parse(\n\t\t_: Context,\n\t\tvalue: FormDataValue\n\t): Promise<FieldParseResult<boolean>> {\n\t\tif (is(value, predicates.boolean)) {\n\t\t\treturn { parsable: true, parsed_value: value, error: null };\n\t\t} else if (\n\t\t\tis(value, predicates.string) &&\n\t\t\t[...truthy, ...falsy].includes(value)\n\t\t) {\n\t\t\treturn {\n\t\t\t\tparsable: true,\n\t\t\t\tparsed_value: truthy.includes(value),\n\t\t\t\terror: null,\n\t\t\t};\n\t\t} else if (is(value, predicates.undefined)) {\n\t\t\treturn {\n\t\t\t\tparsable: true,\n\t\t\t\tparsed_value: false,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t} else if (value === null) {\n\t\t\treturn { parsable: true, parsed_value: false, error: null };\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tparsable: false,\n\t\t\t\tparsed_value: null,\n\t\t\t\terror: \"Please enter a boolean\",\n\t\t\t};\n\t\t}\n\t}\n\n\tpublic getEmptyValue(): boolean {\n\t\treturn false;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"12fd581b58f33ec0258de9715c7baf0377e89594"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum-multiple.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum-multiple.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":35}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":34}},"4":{"start":{"line":7,"column":64},"end":{"line":7,"column":82}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":24}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":31}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":43}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":71}},"9":{"start":{"line":14,"column":8},"end":{"line":21,"column":9}},"10":{"start":{"line":15,"column":12},"end":{"line":17,"column":13}},"11":{"start":{"line":16,"column":16},"end":{"line":16,"column":70}},"12":{"start":{"line":18,"column":12},"end":{"line":20,"column":13}},"13":{"start":{"line":19,"column":16},"end":{"line":19,"column":66}},"14":{"start":{"line":22,"column":8},"end":{"line":22,"column":44}},"15":{"start":{"line":25,"column":8},"end":{"line":44,"column":9}},"16":{"start":{"line":26,"column":12},"end":{"line":26,"column":74}},"17":{"start":{"line":28,"column":13},"end":{"line":44,"column":9}},"18":{"start":{"line":29,"column":12},"end":{"line":33,"column":14}},"19":{"start":{"line":35,"column":13},"end":{"line":44,"column":9}},"20":{"start":{"line":36,"column":12},"end":{"line":36,"column":69}},"21":{"start":{"line":39,"column":12},"end":{"line":43,"column":14}},"22":{"start":{"line":47,"column":8},"end":{"line":47,"column":18}},"23":{"start":{"line":50,"column":0},"end":{"line":50,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":84},"end":{"line":12,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":51},"end":{"line":7,"column":52}},"loc":{"start":{"line":7,"column":64},"end":{"line":7,"column":82}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":34},"end":{"line":23,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":26},"end":{"line":45,"column":5}},"line":24},"4":{"name":"(anonymous_4)","decl":{"start":{"line":46,"column":4},"end":{"line":46,"column":5}},"loc":{"start":{"line":46,"column":20},"end":{"line":48,"column":5}},"line":46}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":35},"end":{"line":7,"column":82}},"type":"default-arg","locations":[{"start":{"line":7,"column":51},"end":{"line":7,"column":82}}],"line":7},"1":{"loc":{"start":{"line":15,"column":12},"end":{"line":17,"column":13}},"type":"if","locations":[{"start":{"line":15,"column":12},"end":{"line":17,"column":13}},{"start":{"line":15,"column":12},"end":{"line":17,"column":13}}],"line":15},"2":{"loc":{"start":{"line":18,"column":12},"end":{"line":20,"column":13}},"type":"if","locations":[{"start":{"line":18,"column":12},"end":{"line":20,"column":13}},{"start":{"line":18,"column":12},"end":{"line":20,"column":13}}],"line":18},"3":{"loc":{"start":{"line":25,"column":8},"end":{"line":44,"column":9}},"type":"if","locations":[{"start":{"line":25,"column":8},"end":{"line":44,"column":9}},{"start":{"line":25,"column":8},"end":{"line":44,"column":9}}],"line":25},"4":{"loc":{"start":{"line":28,"column":13},"end":{"line":44,"column":9}},"type":"if","locations":[{"start":{"line":28,"column":13},"end":{"line":44,"column":9}},{"start":{"line":28,"column":13},"end":{"line":44,"column":9}}],"line":28},"5":{"loc":{"start":{"line":35,"column":13},"end":{"line":44,"column":9}},"type":"if","locations":[{"start":{"line":35,"column":13},"end":{"line":44,"column":9}},{"start":{"line":35,"column":13},"end":{"line":44,"column":9}}],"line":35}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":2,"6":2,"7":2,"8":2,"9":3,"10":4,"11":1,"12":3,"13":1,"14":1,"15":4,"16":1,"17":3,"18":1,"19":2,"20":1,"21":1,"22":0,"23":1},"f":{"0":2,"1":0,"2":3,"3":4,"4":0},"b":{"0":[2],"1":[1,3],"2":[1,2],"3":[1,3],"4":[1,2],"5":[1,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum-multiple.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum-multiple.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAGzD,mCAAsD;AAEtD,MAAa,iBAGX,SAAQ,iBAA6B;IACtC,YACC,QAAkB,EACX,OAAgB,EAChB,gBAA8C,CAAC,OAAO,EAAE,EAAE,CAChE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAEnB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJT,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CACD;QAKpB,cAAS,GAAG,0BAAU,CAAC,IAAI,CAAU,IAAI,CAAC,OAAO,CAAC,CAAC;IAFnD,CAAC;IAIM,KAAK,CAAC,YAAY,CACxB,CAAU,EACV,MAAgB;QAEhB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC3B,IAAI,CAAC,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;gBAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;aACtD;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;aAClD;SACD;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CACV,CAAU,EACV,KAAoB;QAEpB,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;YACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC9D;aAAM,IAAI,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,KAAK,CAAC,0BAAU,CAAC,MAAM,CAAC,CAAC,EAAE;YAC1D,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,KAAK;gBACnB,KAAK,EAAE,IAAI;aACX,CAAC;SACF;aAAM,IAAI,KAAK,IAAI,IAAI,EAAE;YACzB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACzD;aAAM;YACN,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,gCAAgC;aACvC,CAAC;SACF;IACF,CAAC;IAEM,aAAa;QACnB,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AAxDD,8CAwDC","sourcesContent":["import { is, predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { FormDataValue } from \"../form\";\nimport { FieldParseResult, FormField } from \"./field\";\n\nexport class EnumMultipleField<\n\tOptions extends readonly string[],\n\tRequired extends boolean\n> extends FormField<Required, string[]> {\n\tconstructor(\n\t\trequired: Required,\n\t\tpublic options: Options,\n\t\tpublic error_message: (options: Options) => string = (options) =>\n\t\t\toptions.join(\", \")\n\t) {\n\t\tsuper(required);\n\t}\n\n\tpredicate = predicates.enum<Options>(this.options);\n\n\tpublic async isValueValid(\n\t\t_: Context,\n\t\tvalues: string[]\n\t): Promise<{ valid: boolean; message: string }> {\n\t\tfor (const value of values) {\n\t\t\tif (!is(value, predicates.string)) {\n\t\t\t\treturn { valid: false, message: \"expected a string\" };\n\t\t\t}\n\t\t\tif (!this.options.includes(value)) {\n\t\t\t\treturn { valid: false, message: \"invalid value\" };\n\t\t\t}\n\t\t}\n\t\treturn { valid: true, message: \"\" };\n\t}\n\n\tasync parse(\n\t\t_: Context,\n\t\tvalue: FormDataValue\n\t): Promise<FieldParseResult<string[]>> {\n\t\tif (is(value, predicates.string)) {\n\t\t\treturn { parsable: true, parsed_value: [value], error: null };\n\t\t} else if (is(value, predicates.array(predicates.string))) {\n\t\t\treturn {\n\t\t\t\tparsable: true,\n\t\t\t\tparsed_value: value,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t} else if (value == null) {\n\t\t\treturn { parsable: true, parsed_value: [], error: null };\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tparsable: false,\n\t\t\t\tparsed_value: null,\n\t\t\t\terror: \"Please enter a list of strings\",\n\t\t\t};\n\t\t}\n\t}\n\n\tpublic getEmptyValue(): string[] {\n\t\treturn [];\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2578defcb4ec02589753088873431be882bdda9b"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/existing-sealious-value.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/existing-sealious-value.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":39}},"2":{"start":{"line":4,"column":25},"end":{"line":4,"column":52}},"3":{"start":{"line":7,"column":8},"end":{"line":13,"column":11}},"4":{"start":{"line":8,"column":30},"end":{"line":8,"column":79}},"5":{"start":{"line":9,"column":12},"end":{"line":12,"column":16}},"6":{"start":{"line":10,"column":30},"end":{"line":10,"column":50}},"7":{"start":{"line":11,"column":16},"end":{"line":11,"column":38}},"8":{"start":{"line":16,"column":8},"end":{"line":16,"column":18}},"9":{"start":{"line":19,"column":0},"end":{"line":19,"column":54}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":33},"end":{"line":14,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":24},"end":{"line":7,"column":25}},"loc":{"start":{"line":7,"column":39},"end":{"line":13,"column":9}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":48},"end":{"line":9,"column":49}},"loc":{"start":{"line":9,"column":58},"end":{"line":12,"column":13}},"line":9},"3":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":20},"end":{"line":17,"column":5}},"line":15}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/existing-sealious-value.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/existing-sealious-value.ts"],"names":[],"mappings":";;;AACA,qDAAqD;AAErD,MAAa,qBAEX,SAAQ,kCAA2B;IACpC,YAAY,QAAkB,EAAE,KAAY;QAC3C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YACpE,OAAO,MAAM,CAAC,WAAW,CACxB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACvB,CAAC,CAAC,CACF,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,aAAa;QACZ,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AAlBD,sDAkBC","sourcesContent":["import { Field } from \"sealious\";\nimport { PickFromListField } from \"./pick-from-list\";\n\nexport class ExistingSealiousValue<\n\tRequired extends boolean\n> extends PickFromListField<Required> {\n\tconstructor(required: Required, field: Field) {\n\t\tsuper(required, async (ctx) => {\n\t\t\tconst { items } = await field.collection.list(ctx.$context).fetch();\n\t\t\treturn Object.fromEntries(\n\t\t\t\titems.map((item) => {\n\t\t\t\t\tconst value = item.get(field.name);\n\t\t\t\t\treturn [value, value];\n\t\t\t\t})\n\t\t\t);\n\t\t});\n\t}\n\n\tgetEmptyValue() {\n\t\treturn \"\";\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9b50b6a28873adfe650619fa3f709661d078e670"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/file.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/file.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":22}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":38}},"4":{"start":{"line":6,"column":16},"end":{"line":6,"column":34}},"5":{"start":{"line":10,"column":8},"end":{"line":45,"column":9}},"6":{"start":{"line":17,"column":25},"end":{"line":17,"column":77}},"7":{"start":{"line":18,"column":12},"end":{"line":22,"column":14}},"8":{"start":{"line":24,"column":13},"end":{"line":45,"column":9}},"9":{"start":{"line":25,"column":12},"end":{"line":29,"column":14}},"10":{"start":{"line":32,"column":29},"end":{"line":36,"column":22}},"11":{"start":{"line":37,"column":29},"end":{"line":39,"column":22}},"12":{"start":{"line":40,"column":12},"end":{"line":44,"column":14}},"13":{"start":{"line":46,"column":8},"end":{"line":46,"column":22}},"14":{"start":{"line":49,"column":27},"end":{"line":49,"column":57}},"15":{"start":{"line":50,"column":8},"end":{"line":50,"column":39}},"16":{"start":{"line":53,"column":8},"end":{"line":53,"column":40}},"17":{"start":{"line":56,"column":0},"end":{"line":56,"column":20}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":32},"end":{"line":47,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":48,"column":4},"end":{"line":48,"column":5}},"loc":{"start":{"line":48,"column":38},"end":{"line":51,"column":5}},"line":48},"2":{"name":"(anonymous_2)","decl":{"start":{"line":52,"column":4},"end":{"line":52,"column":5}},"loc":{"start":{"line":52,"column":20},"end":{"line":54,"column":5}},"line":52}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":45,"column":9}},"type":"if","locations":[{"start":{"line":10,"column":8},"end":{"line":45,"column":9}},{"start":{"line":10,"column":8},"end":{"line":45,"column":9}}],"line":10},"1":{"loc":{"start":{"line":10,"column":12},"end":{"line":16,"column":29}},"type":"binary-expr","locations":[{"start":{"line":10,"column":12},"end":{"line":10,"column":48}},{"start":{"line":11,"column":13},"end":{"line":11,"column":77}},{"start":{"line":12,"column":16},"end":{"line":15,"column":29}},{"start":{"line":16,"column":16},"end":{"line":16,"column":28}}],"line":10},"2":{"loc":{"start":{"line":24,"column":13},"end":{"line":45,"column":9}},"type":"if","locations":[{"start":{"line":24,"column":13},"end":{"line":45,"column":9}},{"start":{"line":24,"column":13},"end":{"line":45,"column":9}}],"line":24},"3":{"loc":{"start":{"line":32,"column":29},"end":{"line":36,"column":22}},"type":"cond-expr","locations":[{"start":{"line":35,"column":18},"end":{"line":35,"column":74}},{"start":{"line":36,"column":18},"end":{"line":36,"column":22}}],"line":32},"4":{"loc":{"start":{"line":32,"column":29},"end":{"line":34,"column":32}},"type":"binary-expr","locations":[{"start":{"line":32,"column":29},"end":{"line":32,"column":112}},{"start":{"line":33,"column":16},"end":{"line":33,"column":143}},{"start":{"line":34,"column":16},"end":{"line":34,"column":32}}],"line":32},"5":{"loc":{"start":{"line":37,"column":29},"end":{"line":39,"column":22}},"type":"cond-expr","locations":[{"start":{"line":38,"column":18},"end":{"line":38,"column":34}},{"start":{"line":39,"column":18},"end":{"line":39,"column":22}}],"line":37},"6":{"loc":{"start":{"line":37,"column":29},"end":{"line":37,"column":193}},"type":"binary-expr","locations":[{"start":{"line":37,"column":29},"end":{"line":37,"column":146}},{"start":{"line":37,"column":150},"end":{"line":37,"column":193}}],"line":37},"7":{"loc":{"start":{"line":50,"column":15},"end":{"line":50,"column":38}},"type":"binary-expr","locations":[{"start":{"line":50,"column":15},"end":{"line":50,"column":25}},{"start":{"line":50,"column":29},"end":{"line":50,"column":38}}],"line":50}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":1},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0,0,0],"2":[0,0],"3":[0,0],"4":[0,0,0],"5":[0,0],"6":[0,0],"7":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/file.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/file.ts"],"names":[],"mappings":";;;AAAA,2DAMiC;AAEjC,uCAAgD;AAEhD,mCAAsD;AAOtD,MAAa,IAA+B,SAAQ,iBAGnD;IACA,KAAK,CAAC,KAAK,CACV,GAAY,EACZ,SAAwB;QAExB,IAAI,MAAM,CAAC;QACX,IACC,SAAS,YAAY,eAAY;YACjC,CAAC,kBAAE,CAAC,SAAS,EAAE,0BAAU,CAAC,MAAM,CAAC;gBAChC,wBAAQ,CACP;oBACC,QAAQ,EAAE,0BAAU,CAAC,MAAM;oBAC3B,EAAE,EAAE,0BAAU,CAAC,MAAM;iBACrB,EACD,SAAS,CACT;gBACD,SAAS,CAAC,EAAE,CAAC,EACb;YACD,MAAM,IAAI,GAAG,MAAM,eAAY,CAAC,MAAM,CACrC,GAAG,CAAC,IAAI,EACR,SAAS,CAAC,EAAY,CACtB,CAAC;YACF,MAAM,GAAG;gBACR,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;gBACtC,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAY;aACtB,CAAC;SACF;aAAM,IAAI,CAAC,kBAAE,CAAC,SAAS,EAAE,0BAAU,CAAC,MAAM,CAAC,EAAE;YAC7C,MAAM,GAAG;gBACR,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,wEAAwE;gBAC/E,QAAQ,EAAE,KAAc;aACxB,CAAC;SACF;aAAM;YACN,MAAM,QAAQ,GACb,8BAAc,CAAC,SAAS,EAAE,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC;gBACnD,wBAAQ,CACP,EAAE,EAAE,EAAE,0BAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,0BAAU,CAAC,MAAM,EAAE,EACtD,SAAS,CAAC,GAAG,CACb;gBACD,SAAS,CAAC,GAAG,CAAC,EAAE;gBACf,CAAC,CAAC,MAAM,eAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,QAAQ,GACb,8BAAc,CACb,SAAS,EACT,KAAK,EACL,0BAAU,CAAC,KAAK,CAAC,0BAAU,CAAC,MAAM,CAAC,CACnC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,eAAY;gBAC5C,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,GAAG;gBACR,QAAQ,EAAE,IAAY;gBACtB,KAAK,EAAE,IAAI;gBACX,YAAY,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;aAC9C,CAAC;SACF;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAY,EAAE,IAAmC;QACvE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC;IAChC,CAAC;IAED,aAAa;QACZ,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC;CACD;AAvED,oBAuEC","sourcesContent":["import {\n\thasField,\n\thasFieldOfType,\n\thasShape,\n\tis,\n\tpredicates,\n} from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { File as SealiousFile } from \"sealious\";\nimport { FormDataValue } from \"../form\";\nimport { FieldParseResult, FormField } from \"./field\";\n\nexport type FileContainer = {\n\told: SealiousFile | null;\n\tnew: SealiousFile | null;\n};\n\nexport class File<Required extends boolean> extends FormField<\n\tRequired,\n\tFileContainer\n> {\n\tasync parse(\n\t\tctx: Context,\n\t\traw_value: FormDataValue\n\t): Promise<FieldParseResult<FileContainer>> {\n\t\tlet result;\n\t\tif (\n\t\t\traw_value instanceof SealiousFile ||\n\t\t\t(is(raw_value, predicates.object) &&\n\t\t\t\thasShape(\n\t\t\t\t\t{\n\t\t\t\t\t\tfilename: predicates.string,\n\t\t\t\t\t\tid: predicates.string,\n\t\t\t\t\t},\n\t\t\t\t\traw_value\n\t\t\t\t) &&\n\t\t\t\traw_value.id)\n\t\t) {\n\t\t\tconst file = await SealiousFile.fromID(\n\t\t\t\tctx.$app,\n\t\t\t\traw_value.id as string\n\t\t\t);\n\t\t\tresult = {\n\t\t\t\tparsed_value: { old: file, new: null },\n\t\t\t\terror: null,\n\t\t\t\tparsable: true as true,\n\t\t\t};\n\t\t} else if (!is(raw_value, predicates.object)) {\n\t\t\tresult = {\n\t\t\t\tparsed_value: null,\n\t\t\t\terror: \"Expected a field with old.id:string, old.filename:string and new?:File\",\n\t\t\t\tparsable: false as false,\n\t\t\t};\n\t\t} else {\n\t\t\tconst old_file =\n\t\t\t\thasFieldOfType(raw_value, \"old\", predicates.object) &&\n\t\t\t\thasShape(\n\t\t\t\t\t{ id: predicates.string, filename: predicates.string },\n\t\t\t\t\traw_value.old\n\t\t\t\t) &&\n\t\t\t\traw_value.old.id\n\t\t\t\t\t? await SealiousFile.fromID(ctx.$app, raw_value.old.id)\n\t\t\t\t\t: null;\n\t\t\tconst new_file =\n\t\t\t\thasFieldOfType(\n\t\t\t\t\traw_value,\n\t\t\t\t\t\"new\",\n\t\t\t\t\tpredicates.array(predicates.object)\n\t\t\t\t) && raw_value.new[0] instanceof SealiousFile\n\t\t\t\t\t? raw_value.new[0]\n\t\t\t\t\t: null;\n\t\t\tresult = {\n\t\t\t\tparsable: true as true,\n\t\t\t\terror: null,\n\t\t\t\tparsed_value: { old: old_file, new: new_file },\n\t\t\t};\n\t\t}\n\t\treturn result;\n\t}\n\n\tasync getDatabaseValue(ctx: Context, data: Record<string, FormDataValue>) {\n\t\tconst { parsed } = await this.getValue(ctx, data);\n\t\treturn parsed.new || undefined;\n\t}\n\n\tgetEmptyValue() {\n\t\treturn { old: null, new: null };\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"13bb3fedcc189c356b0c5148628287a35d8802ce"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/multiple-files.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/multiple-files.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":21}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":49}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":35}},"6":{"start":{"line":12,"column":8},"end":{"line":12,"column":25}},"7":{"start":{"line":15,"column":8},"end":{"line":15,"column":72}},"8":{"start":{"line":18,"column":0},"end":{"line":18,"column":38}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":45},"end":{"line":10,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":20},"end":{"line":13,"column":5}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":18},"end":{"line":16,"column":5}},"line":14}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":0,"8":1},"f":{"0":0,"1":0,"2":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/multiple-files.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/multiple-files.ts"],"names":[],"mappings":";;;AAEA,mCAAoC;AAEpC,MAAa,aAAc,SAAQ,iBAAgB;IAClD,YACQ,gBAA2D,EAC3D,SAAqD;QAE5D,KAAK,CAAC,KAAK,CAAC,CAAC;QAHN,qBAAgB,GAAhB,gBAAgB,CAA2C;QAC3D,cAAS,GAAT,SAAS,CAA4C;IAG7D,CAAC;IAED,aAAa;QACZ,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,KAAK;QACV,OAAc,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,uDAAuD;IAChI,CAAC;CACD;AAfD,sCAeC","sourcesContent":["import { Context } from \"koa\";\nimport { FieldTypes as SealiousFieldTypes } from \"sealious\";\nimport { FormField } from \"./field\";\n\nexport class MultipleFiles extends FormField<false> {\n\tconstructor(\n\t\tpublic collection_field: SealiousFieldTypes.ReverseSingleReference,\n\t\tpublic getItemId: (ctx: Context) => Promise<string> | string\n\t) {\n\t\tsuper(false);\n\t}\n\n\tgetEmptyValue() {\n\t\treturn undefined;\n\t}\n\n\tasync parse() {\n\t\treturn <const>{ parsed_value: undefined, parsable: true, error: null }; // the control is supposed to do the heavy lifting here\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c02d3af82d64079a7d3d810d74c3e98f50747a0d"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/reverse-single-reference.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/reverse-single-reference.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":40}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":24}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":45}},"5":{"start":{"line":11,"column":8},"end":{"line":11,"column":72}},"6":{"start":{"line":14,"column":8},"end":{"line":14,"column":18}},"7":{"start":{"line":17,"column":0},"end":{"line":17,"column":56}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":42},"end":{"line":9,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":32},"end":{"line":12,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":20},"end":{"line":15,"column":5}},"line":13}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":1},"f":{"0":0,"1":0,"2":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/reverse-single-reference.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/reverse-single-reference.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAIpC,MAAa,sBAAuB,SAAQ,iBAAS;IACpD,YACC,QAAiB,EACV,cAAqD;QAE5D,KAAK,CAAC,QAAQ,CAAC,CAAC;QAFT,mBAAc,GAAd,cAAc,CAAuC;IAG7D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAY,EAAE,SAAkB;QAC3C,OAAO,EAAE,QAAQ,EAAS,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACxE,CAAC;IAED,aAAa;QACZ,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AAfD,wDAeC","sourcesContent":["import { FormField } from \"./field\";\nimport { FieldTypes as SealiousFields } from \"sealious\";\nimport { Context } from \"koa\";\n\nexport class ReverseSingleReference extends FormField {\n\tconstructor(\n\t\trequired: boolean,\n\t\tpublic sealious_field: SealiousFields.ReverseSingleReference\n\t) {\n\t\tsuper(required);\n\t}\n\n\tasync parse(ctx: Context, raw_value: unknown) {\n\t\treturn { parsable: <const>true, error: null, parsed_value: raw_value };\n\t}\n\n\tgetEmptyValue() {\n\t\treturn [];\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5bb5b2b14a203d24c58e9de15610a5de052b9d4e"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/structured-array.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/structured-array.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":38}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":20}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":45}},"5":{"start":{"line":11,"column":8},"end":{"line":15,"column":10}},"6":{"start":{"line":18,"column":8},"end":{"line":18,"column":18}},"7":{"start":{"line":21,"column":0},"end":{"line":21,"column":52}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":32},"end":{"line":9,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":32},"end":{"line":16,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":17,"column":4},"end":{"line":17,"column":5}},"loc":{"start":{"line":17,"column":20},"end":{"line":19,"column":5}},"line":17}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":26},"end":{"line":14,"column":37}},"type":"binary-expr","locations":[{"start":{"line":14,"column":26},"end":{"line":14,"column":31}},{"start":{"line":14,"column":35},"end":{"line":14,"column":37}}],"line":14}},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":1},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/structured-array.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/structured-array.ts"],"names":[],"mappings":";;;AAGA,mCAAoC;AAEpC,MAAa,oBAEX,SAAQ,iBAGT;IACA,YAAmB,cAAkD;QACpE,KAAK,CAAC,IAAI,CAAC,CAAC;QADM,mBAAc,GAAd,cAAc,CAAoC;IAErE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAgB,EAAE,KAAoB;QACjD,OAAO;YACN,QAAQ,EAAS,IAAI;YACrB,KAAK,EAAE,IAAI;YACX,YAAY,EAAG,KAAgC,IAAI,EAAE;SACrD,CAAC;IACH,CAAC;IAED,aAAa;QACZ,OAAO,EAA0D,CAAC;IACnE,CAAC;CACD;AArBD,oDAqBC","sourcesContent":["import { Context } from \"koa\";\nimport { Field, FieldsetInput, FieldsetOutput, FieldTypes } from \"sealious\";\nimport { FormDataValue } from \"../form\";\nimport { FormField } from \"./field\";\n\nexport class StructuredArrayField<\n\tFields extends Record<string, Field>\n> extends FormField<\n\ttrue,\n\tFieldTypes.ArrayStorageInput<FieldsetOutput<Fields>>\n> {\n\tconstructor(public sealious_field: FieldTypes.StructuredArray<Fields>) {\n\t\tsuper(true);\n\t}\n\n\tasync parse(context: Context, value: FormDataValue) {\n\t\treturn {\n\t\t\tparsable: <const>true,\n\t\t\terror: null,\n\t\t\tparsed_value: (value as FieldsetOutput<Fields>) || [],\n\t\t};\n\t}\n\n\tgetEmptyValue() {\n\t\treturn [] as FieldTypes.ArrayStorageInput<FieldsetOutput<Fields>>;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"760335e5f65918526b596e01932dd4bb63e00639"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/collapsible-field-group.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/collapsible-field-group.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":39}},"2":{"start":{"line":4,"column":22},"end":{"line":4,"column":46}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":34}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":18}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":33}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":31}},"7":{"start":{"line":11,"column":8},"end":{"line":13,"column":9}},"8":{"start":{"line":12,"column":12},"end":{"line":12,"column":63}},"9":{"start":{"line":14,"column":8},"end":{"line":14,"column":60}},"10":{"start":{"line":17,"column":8},"end":{"line":17,"column":72}},"11":{"start":{"line":20,"column":8},"end":{"line":61,"column":7}},"12":{"start":{"line":64,"column":8},"end":{"line":78,"column":12}},"13":{"start":{"line":81,"column":0},"end":{"line":81,"column":54}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":40},"end":{"line":15,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":25},"end":{"line":18,"column":5}},"line":16},"2":{"name":"(anonymous_2)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":5}},"loc":{"start":{"line":19,"column":24},"end":{"line":62,"column":5}},"line":19},"3":{"name":"(anonymous_3)","decl":{"start":{"line":63,"column":4},"end":{"line":63,"column":5}},"loc":{"start":{"line":63,"column":16},"end":{"line":79,"column":5}},"line":63}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":26},"end":{"line":7,"column":38}},"type":"default-arg","locations":[{"start":{"line":7,"column":36},"end":{"line":7,"column":38}}],"line":7},"1":{"loc":{"start":{"line":11,"column":8},"end":{"line":13,"column":9}},"type":"if","locations":[{"start":{"line":11,"column":8},"end":{"line":13,"column":9}},{"start":{"line":11,"column":8},"end":{"line":13,"column":9}}],"line":11},"2":{"loc":{"start":{"line":60,"column":6},"end":{"line":60,"column":47}},"type":"cond-expr","locations":[{"start":{"line":60,"column":33},"end":{"line":60,"column":42}},{"start":{"line":60,"column":45},"end":{"line":60,"column":47}}],"line":60},"3":{"loc":{"start":{"line":71,"column":6},"end":{"line":71,"column":42}},"type":"binary-expr","locations":[{"start":{"line":71,"column":6},"end":{"line":71,"column":31}},{"start":{"line":71,"column":35},"end":{"line":71,"column":42}}],"line":71},"4":{"loc":{"start":{"line":76,"column":6},"end":{"line":76,"column":43}},"type":"binary-expr","locations":[{"start":{"line":76,"column":6},"end":{"line":76,"column":33}},{"start":{"line":76,"column":37},"end":{"line":76,"column":43}}],"line":76}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/collapsible-field-group.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/collapsible-field-group.ts"],"names":[],"mappings":";;;AACA,+CAA2C;AAC3C,mCAAoC;AAYpC,MAAa,qBAAsB,SAAQ,wBAAU;IAEpD,YACQ,QAAuB,EACvB,UAAwC,EAAE;QAEjD,KAAK,CAAC,EAAE,CAAC,CAAC;QAHH,aAAQ,GAAR,QAAQ,CAAe;QACvB,YAAO,GAAP,OAAO,CAAmC;QAGjD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,SAAS,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,GAAG,mBAAU,EAAE,CAAC,CAAC,0DAA0D;SACrG;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC;IACrD,CAAC;IAED,kBAAkB;QACjB,OAAO,KAAK,CAAC,kBAAkB,EAAE,GAAG,SAAS,IAAI,CAAC,UAAU,GAAG,CAAC;IACjE,CAAC;IAED,iBAAiB;QAChB,OAAO,UAAU,CAAC;YACR,IAAI,CAAC,UAAU;;;;YAIf,IAAI,CAAC,UAAU;;;;YAIf,IAAI,CAAC,UAAU;;;;YAIf,IAAI,CAAC,UAAU;;;;;;YAMf,IAAI,CAAC,UAAU;;;;;;YAMf,IAAI,CAAC,UAAU;;;;;;YAMf,IAAI,CAAC,UAAU;;;;;;;;UAQjB,IAAI,CAAC,UAAU;MACnB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;MACzC,CAAC;IACN,CAAC;IAED,SAAS;QACR,OAAO,UAAU,CAAC;;UAEV,IAAI,CAAC,UAAU;;;;;MAKnB,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO;;;;;MAKpC,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,MAAM;;WAEhC,CAAC;IACX,CAAC;CACD;AA/ED,sDA+EC","sourcesContent":["import { FlatTemplatable } from \"tempstream\";\nimport { FieldGroup } from \"./field-group\";\nimport { randomUUID } from \"crypto\";\nimport { FormControl } from \"./form-control\";\n\ntype CollapsibleFieldGroupOptions = {\n\tlabel?: string;\n\tclasses?: string[];\n\topenOnStart?: boolean;\n\ttextWhenOpen?: string;\n\ttextWhenClosed?: string;\n\tgroupID?: string;\n};\n\nexport class CollapsibleFieldGroup extends FieldGroup {\n\tpublic collapseID: string;\n\tconstructor(\n\t\tpublic controls: FormControl[],\n\t\tpublic options: CollapsibleFieldGroupOptions = {}\n\t) {\n\t\tsuper([]);\n\t\tif (this.options.groupID == undefined) {\n\t\t\tthis.options.groupID = \"A\" + randomUUID(); // \"A\" is needed as ids always have to start with a letter\n\t\t}\n\t\tthis.collapseID = this.options.groupID + \"collapse\";\n\t}\n\n\tgetGroupLabelProps() {\n\t\treturn super.getGroupLabelProps() + ` for=\"${this.collapseID}\"`;\n\t}\n\n\tpreLabelContainer(): FlatTemplatable {\n\t\treturn /* HTML */ `<style>\n\t\t\t\tinput#${this.collapseID} {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\tinput#${this.collapseID} ~ .field-group__fields {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\tinput#${this.collapseID}:checked ~ .field-group__fields {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t}\n\n\t\t\t\tinput#${this.collapseID}\n\t\t\t\t\t~ .field-group__label-container\n\t\t\t\t\t.field-group__collapse-label-text--open {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\tinput#${this.collapseID}:checked\n\t\t\t\t\t~ .field-group__label-container\n\t\t\t\t\t.field-group__collapse-label-text--open {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t}\n\n\t\t\t\tinput#${this.collapseID}\n\t\t\t\t\t~ .field-group__label-container\n\t\t\t\t\t.field-group__collapse-label-text--closed {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t}\n\n\t\t\t\tinput#${this.collapseID}:checked\n\t\t\t\t\t~ .field-group__label-container\n\t\t\t\t\t.field-group__collapse-label-text--closed {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<input\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tid=\"${this.collapseID}\"\n\t\t\t\t${this.options.openOnStart ? \"checked\" : \"\"}\n\t\t\t/>`;\n\t}\n\n\tpostLabel(): FlatTemplatable {\n\t\treturn /* HTML */ `<label\n\t\t\tclass=\"field-group__collapse-label\"\n\t\t\tfor=\"${this.collapseID}\"\n\t\t>\n\t\t\t<span\n\t\t\t\tclass=\"field-group__collapse-label-text field-group__collapse-label-text--open\"\n\t\t\t>\n\t\t\t\t${this.options.textWhenOpen || \"close\"}\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tclass=\"field-group__collapse-label-text field-group__collapse-label-text--closed\"\n\t\t\t>\n\t\t\t\t${this.options.textWhenClosed || \"open\"}\n\t\t\t</span>\n\t\t</label>`;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a181e2d3b4324e13d1b0a7c603f29e1b20b41f04"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/collapsible-checkbox-group.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/collapsible-checkbox-group.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":42}},"2":{"start":{"line":4,"column":25},"end":{"line":4,"column":52}},"3":{"start":{"line":5,"column":34},"end":{"line":5,"column":70}},"4":{"start":{"line":8,"column":8},"end":{"line":13,"column":24}},"5":{"start":{"line":16,"column":0},"end":{"line":16,"column":60}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":32},"end":{"line":14,"column":5}},"line":7}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":1},"f":{"0":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/collapsible-checkbox-group.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/collapsible-checkbox-group.ts"],"names":[],"mappings":";;;AAKA,qDAAyE;AACzE,uEAAkE;AAGlE,MAAa,wBAAyB,SAAQ,8BAM7C;IACA,SAAS,CACR,IAAwB,EACxB,UAA+B;QAE/B,OAAO,IAAI,+CAAqB,CAAC,UAAU,EAAE;YAC5C,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YACvC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;YAC3C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;SAC7B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;CACD;AAlBD,4DAkBC","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable } from \"tempstream\";\nimport { FormDataValue, FormMessage } from \"../form\";\nimport { CheckboxWithValue } from \"./checkbox\";\nimport { FieldGroup, FormFieldControl } from \"./controls\";\nimport { CheckboxGroup, DefaultCheckboxOptions } from \"./checkbox-group\";\nimport { CollapsibleFieldGroup } from \"./collapsible-field-group\";\nimport { FormControlContext } from \"./form-control\";\n\nexport class CollapsibleCheckboxGroup extends CheckboxGroup<\n\tDefaultCheckboxOptions & {\n\t\ttextWhenOpen?: string;\n\t\ttextWhenClosed?: string;\n\t\tgroupID?: string;\n\t}\n> {\n\twrapGroup(\n\t\tfctx: FormControlContext,\n\t\tcheckboxes: CheckboxWithValue[]\n\t): Promise<FlatTemplatable> {\n\t\treturn new CollapsibleFieldGroup(checkboxes, {\n\t\t\tlabel: this.options.label,\n\t\t\ttextWhenOpen: this.options.textWhenOpen,\n\t\t\ttextWhenClosed: this.options.textWhenClosed,\n\t\t\tgroupID: this.options.groupID,\n\t\t}).render(fctx);\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"28225edd51e98e2598b7ecae2d9ff6cede39ed61"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/autocomplete.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/autocomplete.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":30}},"2":{"start":{"line":4,"column":23},"end":{"line":4,"column":48}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":21}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":27}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":31}},"6":{"start":{"line":12,"column":8},"end":{"line":12,"column":38}},"7":{"start":{"line":15,"column":8},"end":{"line":18,"column":10}},"8":{"start":{"line":21,"column":8},"end":{"line":23,"column":15}},"9":{"start":{"line":22,"column":75},"end":{"line":22,"column":102}},"10":{"start":{"line":26,"column":0},"end":{"line":26,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":32},"end":{"line":10,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":16},"end":{"line":13,"column":5}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":35},"end":{"line":19,"column":5}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":25},"end":{"line":24,"column":5}},"line":20},"4":{"name":"(anonymous_4)","decl":{"start":{"line":22,"column":49},"end":{"line":22,"column":50}},"loc":{"start":{"line":22,"column":75},"end":{"line":22,"column":102}},"line":22}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/autocomplete.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/autocomplete.ts"],"names":[],"mappings":";;;AAIA,iDAA6C;AAE7C,MAAa,YAAa,SAAQ,0BAA0B;IAC3D,YACQ,KAAiC,EACjC,OAA8D;QAErE,KAAK,CAAC,KAAK,CAAC,CAAC;QAHN,UAAK,GAAL,KAAK,CAA4B;QACjC,YAAO,GAAP,OAAO,CAAuD;IAGtE,CAAC;IAED,SAAS;QACR,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAwB;QAChD,OAAO;YACN,GAAG,CAAC,MAAM,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE;SACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAY;QAC3B,OAAO,UAAU,CAAC,iBAAiB,IAAI,CAAC,SAAS,EAAE;KAChD,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAC5C,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,KAAK,WAAW,CACrD;cACU,CAAC;IACd,CAAC;CACD;AA1BD,oCA0BC","sourcesContent":["import { Context } from \"koa\";\nimport { PickFromListField } from \"../fields/pick-from-list\";\nimport { FormDataValue } from \"../form\";\nimport { FormControlContext } from \"./form-control\";\nimport { SimpleInput } from \"./simple-input\";\n\nexport class Autocomplete extends SimpleInput<string | null> {\n\tconstructor(\n\t\tpublic field: PickFromListField<boolean>,\n\t\tpublic options: { id?: string; label?: string; placeholder?: string }\n\t) {\n\t\tsuper(field);\n\t}\n\n\tgetListID(): string {\n\t\treturn this.getID() + \"_list\";\n\t}\n\n\tasync getInputAttributes(fctx: FormControlContext) {\n\t\treturn {\n\t\t\t...(await super.getInputAttributes(fctx)),\n\t\t\tlist: this.getListID(),\n\t\t};\n\t}\n\n\tasync postInput(ctx: Context) {\n\t\treturn /* HTML */ `<datalist id=\"${this.getListID()}\">\n\t\t\t${(await this.field.generateOptions(ctx)).map(\n\t\t\t\t({ value }) => /* HTML */ `<option>${value}</option>`\n\t\t\t)}\n\t\t</datalist>`;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5365ad3e5faab5219f7e16853a5b83b96cafb70d"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/file.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/file.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":22}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":23},"end":{"line":5,"column":48}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":22}},"5":{"start":{"line":11,"column":8},"end":{"line":11,"column":41}},"6":{"start":{"line":14,"column":27},"end":{"line":14,"column":63}},"7":{"start":{"line":15,"column":8},"end":{"line":25,"column":7}},"8":{"start":{"line":28,"column":25},"end":{"line":28,"column":61}},"9":{"start":{"line":29,"column":27},"end":{"line":29,"column":73}},"10":{"start":{"line":30,"column":8},"end":{"line":35,"column":10}},"11":{"start":{"line":38,"column":0},"end":{"line":38,"column":20}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":14},"end":{"line":9,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":45},"end":{"line":12,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":30},"end":{"line":26,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":35},"end":{"line":36,"column":5}},"line":27}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":15},"end":{"line":11,"column":40}},"type":"binary-expr","locations":[{"start":{"line":11,"column":15},"end":{"line":11,"column":34}},{"start":{"line":11,"column":38},"end":{"line":11,"column":40}}],"line":11},"1":{"loc":{"start":{"line":19,"column":13},"end":{"line":19,"column":33}},"type":"binary-expr","locations":[{"start":{"line":19,"column":13},"end":{"line":19,"column":27}},{"start":{"line":19,"column":31},"end":{"line":19,"column":33}}],"line":19},"2":{"loc":{"start":{"line":24,"column":13},"end":{"line":24,"column":39}},"type":"binary-expr","locations":[{"start":{"line":24,"column":13},"end":{"line":24,"column":33}},{"start":{"line":24,"column":37},"end":{"line":24,"column":39}}],"line":24},"3":{"loc":{"start":{"line":33,"column":22},"end":{"line":33,"column":54}},"type":"binary-expr","locations":[{"start":{"line":33,"column":22},"end":{"line":33,"column":39}},{"start":{"line":33,"column":43},"end":{"line":33,"column":54}}],"line":33}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/file.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/file.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAIzD,iDAA6C;AAE7C,MAAa,IAAK,SAAQ,0BAA0B;IACnD,OAAO;QACN,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,iBAAiB,CACtB,IAAa,EACb,SAAoD;QAEpD,OAAO,SAAS,EAAE,QAAQ,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAY,EAAE,IAAmC;QAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,uBAAU,CAAA,UAAU,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;;;YAG5D,IAAI,CAAC,KAAK,CAAC,IAAI;aACd,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE;;;;YAIrB,IAAI,CAAC,KAAK,CAAC,IAAI;aACd,MAAM,CAAC,GAAG,EAAE,QAAQ,IAAI,EAAE;MACjC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,kBAAkB,CACvB,IAAwB;QAExB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO;YACN,GAAG,QAAQ;YACX,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO;YAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG;YAC1C,KAAK,EAAE,KAAK;SACZ,CAAC;IACH,CAAC;CACD;AAvCD,oBAuCC","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { FileContainer } from \"../fields/file\";\nimport { FormDataValue } from \"../form\";\nimport { FormControlContext } from \"./form-control\";\nimport { SimpleInput } from \"./simple-input\";\n\nexport class File extends SimpleInput<FileContainer> {\n\tgetType() {\n\t\treturn \"file\";\n\t}\n\n\tasync renderFilePreview(\n\t\t_ctx: Context,\n\t\tfile_data: { id?: string; filename?: string } | null\n\t): Promise<FlatTemplatable> {\n\t\treturn file_data?.filename || \"\";\n\t}\n\n\tasync preInput(ctx: Context, data: Record<string, FormDataValue>) {\n\t\tconst { parsed } = await this.field.getValue(ctx, data);\n\t\treturn tempstream/* HTML */ `${this.renderFilePreview(ctx, parsed.old)}\n\t\t\t<input\n\t\t\t\ttype=\"hidden\"\n\t\t\t\tname=\"${this.field.name}[old][id]\"\n\t\t\t\tvalue=\"${parsed.old?.id || \"\"}\"\n\t\t\t/>\n\t\t\t<input\n\t\t\t\ttype=\"hidden\"\n\t\t\t\tname=\"${this.field.name}[old][filename]\"\n\t\t\t\tvalue=\"${parsed.old?.filename || \"\"}\"\n\t\t\t/>`;\n\t}\n\n\tasync getInputAttributes(\n\t\tfctx: FormControlContext\n\t): Promise<Record<string, string | boolean>> {\n\t\tconst original = await super.getInputAttributes(fctx);\n\t\tconst { parsed } = await this.field.getValue(fctx.ctx, fctx.data);\n\t\treturn {\n\t\t\t...original,\n\t\t\tname: this.field.name + \"[new]\",\n\t\t\trequired: original.required && !parsed.old,\n\t\t\tvalue: false,\n\t\t};\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c6890ebe33621f32b4ab4fcde4b565e0a8347012"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/photo.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/photo.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":23}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":15},"end":{"line":5,"column":32}},"4":{"start":{"line":6,"column":19},"end":{"line":6,"column":38}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":30}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":27}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":39}},"8":{"start":{"line":14,"column":8},"end":{"line":14,"column":66}},"9":{"start":{"line":17,"column":27},"end":{"line":17,"column":41}},"10":{"start":{"line":18,"column":32},"end":{"line":18,"column":67}},"11":{"start":{"line":19,"column":8},"end":{"line":21,"column":9}},"12":{"start":{"line":20,"column":12},"end":{"line":20,"column":35}},"13":{"start":{"line":22,"column":23},"end":{"line":22,"column":32}},"14":{"start":{"line":23,"column":8},"end":{"line":25,"column":9}},"15":{"start":{"line":24,"column":12},"end":{"line":24,"column":35}},"16":{"start":{"line":26,"column":21},"end":{"line":26,"column":63}},"17":{"start":{"line":27,"column":8},"end":{"line":34,"column":10}},"18":{"start":{"line":37,"column":26},"end":{"line":37,"column":62}},"19":{"start":{"line":38,"column":27},"end":{"line":38,"column":73}},"20":{"start":{"line":39,"column":8},"end":{"line":57,"column":10}},"21":{"start":{"line":60,"column":0},"end":{"line":60,"column":22}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":45},"end":{"line":12,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":24},"end":{"line":15,"column":5}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":44},"end":{"line":35,"column":5}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":36,"column":4},"end":{"line":36,"column":5}},"loc":{"start":{"line":36,"column":35},"end":{"line":58,"column":5}},"line":36}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":8},"end":{"line":21,"column":9}},"type":"if","locations":[{"start":{"line":19,"column":8},"end":{"line":21,"column":9}},{"start":{"line":19,"column":8},"end":{"line":21,"column":9}}],"line":19},"1":{"loc":{"start":{"line":23,"column":8},"end":{"line":25,"column":9}},"type":"if","locations":[{"start":{"line":23,"column":8},"end":{"line":25,"column":9}},{"start":{"line":23,"column":8},"end":{"line":25,"column":9}}],"line":23},"2":{"loc":{"start":{"line":42,"column":23},"end":{"line":42,"column":46}},"type":"binary-expr","locations":[{"start":{"line":42,"column":23},"end":{"line":42,"column":40}},{"start":{"line":42,"column":44},"end":{"line":42,"column":46}}],"line":42}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/photo.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/photo.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AACzD,iCAA8B;AAC9B,uCAAgD;AAMhD,MAAa,KAAM,SAAQ,WAAI;IAC9B,YACQ,KAAwC,EACxC,WAAqC,EAC5C,OAA4B;QAE5B,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAJf,UAAK,GAAL,KAAK,CAAmC;QACxC,gBAAW,GAAX,WAAW,CAA0B;IAI7C,CAAC;IAED,KAAK,CAAC,WAAW;QAChB,OAAO,kDAAkD,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,iBAAiB,CACtB,GAAY,EACZ,SAAoD;QAEpD,MAAM,UAAU,GAAG,cAAc,CAAC;QAClC,MAAM,eAAe,GAAG,eAAe,UAAU,UAAU,CAAC;QAC5D,IAAI,CAAC,SAAS,EAAE;YACf,OAAO,eAAe,CAAC;SACvB;QACD,MAAM,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,EAAE,EAAE;YACR,OAAO,eAAe,CAAC;SACvB;QACD,MAAM,IAAI,GAAG,MAAM,eAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,uBAAU,CAAA,UAAU,CAAC,eAAe,UAAU;KAClD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACxB,WAAW,EAAE,CAAC,GAAG,CAAC;YAClB,UAAU,EAAE,OAAO;YACnB,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,SAAS,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE;SACnC,CAAC;SACI,CAAC;IACT,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAwB;QAChD,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAGrD,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO;YACN,GAAG,QAAQ;YACX,MAAM,EAAE,SAAS;YACjB,QAAQ,EACP,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACzB,GAAG;gBACH;;;;;;;;4EAQwE,MAAM,IAAI,CAAC,WAAW,EAAE;;EAElG;qBACI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;qBACrB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;SACvB,CAAC;IACH,CAAC;CACD;AAhED,sBAgEC","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { File } from \"./file\";\nimport { File as SealiousFile } from \"sealious\";\nimport { FileContainer, FormField } from \"../fields/field\";\nimport { SimpleInputOptions } from \"./simple-input\";\nimport KoaResponsiveImageRouter from \"koa-responsive-image-router\";\nimport { FormControlContext } from \"./form-control\";\n\nexport class Photo extends File {\n\tconstructor(\n\t\tpublic field: FormField<boolean, FileContainer>,\n\t\tpublic imageRouter: KoaResponsiveImageRouter,\n\t\toptions?: SimpleInputOptions\n\t) {\n\t\tsuper(field, options);\n\t}\n\n\tasync getImgStyle() {\n\t\treturn \"width: 100px; height: 100px; object-fit: contain\";\n\t}\n\n\tasync renderFilePreview(\n\t\tctx: Context,\n\t\tfile_data: { id?: string; filename?: string } | null\n\t): Promise<FlatTemplatable> {\n\t\tconst class_name = \"file_preview\";\n\t\tconst empty_container = `<div class=\"${class_name}\"></div>`;\n\t\tif (!file_data) {\n\t\t\treturn empty_container;\n\t\t}\n\t\tconst { id } = file_data;\n\t\tif (!id) {\n\t\t\treturn empty_container;\n\t\t}\n\t\tconst file = await SealiousFile.fromID(ctx.$app, id);\n\t\treturn tempstream/* HTML */ `<div class=\"${class_name}\">\n\t\t\t${this.imageRouter.image({\n\t\t\t\tresolutions: [100],\n\t\t\t\tsizes_attr: \"100px\",\n\t\t\t\tpath: file.getDataPath(),\n\t\t\t\timg_style: await this.getImgStyle(),\n\t\t\t})}\n\t\t</div>`;\n\t}\n\n\tasync getInputAttributes(fctx: FormControlContext) {\n\t\tconst original = (await super.getInputAttributes(fctx)) as Record<\n\t\t\tstring,\n\t\t\tstring | boolean\n\t\t>;\n\t\tconst { parsed } = await this.field.getValue(fctx.ctx, fctx.data);\n\t\treturn {\n\t\t\t...original,\n\t\t\taccept: \"image/*\",\n\t\t\tonchange:\n\t\t\t\t(original.onchange || \"\") +\n\t\t\t\t\";\" +\n\t\t\t\t`\n const file = this.files[0];\n const preview_container = this.parentElement.querySelector(\".file_preview\");\n const target = this;\n if (file) {\n\t const fileReader = new FileReader();\n\t fileReader.readAsDataURL(file);\n\t fileReader.addEventListener(\"load\", function () {\n preview_container.innerHTML = \\`<img src=\"\\${this.result}\" style=\"${await this.getImgStyle()}\" />\\`;\n }); \n}`\n\t\t\t\t\t.replaceAll(\"\\n\", \" \")\n\t\t\t\t\t.replaceAll(`\"`, \"'\"),\n\t\t};\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"21f4610d5dc231b48781b6a3ad2c645e821a87ea"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/multiple-files.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/multiple-files.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":38}},"3":{"start":{"line":5,"column":24},"end":{"line":5,"column":60}},"4":{"start":{"line":6,"column":21},"end":{"line":6,"column":42}},"5":{"start":{"line":7,"column":29},"end":{"line":7,"column":60}},"6":{"start":{"line":8,"column":24},"end":{"line":8,"column":58}},"7":{"start":{"line":9,"column":28},"end":{"line":9,"column":68}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":23}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":27}},"10":{"start":{"line":14,"column":8},"end":{"line":14,"column":77}},"11":{"start":{"line":14,"column":59},"end":{"line":14,"column":61}},"12":{"start":{"line":17,"column":8},"end":{"line":17,"column":18}},"13":{"start":{"line":20,"column":8},"end":{"line":22,"column":11}},"14":{"start":{"line":21,"column":12},"end":{"line":21,"column":81}},"15":{"start":{"line":23,"column":8},"end":{"line":26,"column":11}},"16":{"start":{"line":24,"column":12},"end":{"line":24,"column":75}},"17":{"start":{"line":25,"column":12},"end":{"line":25,"column":81}},"18":{"start":{"line":27,"column":8},"end":{"line":38,"column":11}},"19":{"start":{"line":28,"column":24},"end":{"line":28,"column":39}},"20":{"start":{"line":29,"column":12},"end":{"line":32,"column":13}},"21":{"start":{"line":30,"column":16},"end":{"line":30,"column":43}},"22":{"start":{"line":31,"column":16},"end":{"line":31,"column":23}},"23":{"start":{"line":33,"column":12},"end":{"line":35,"column":13}},"24":{"start":{"line":34,"column":16},"end":{"line":34,"column":32}},"25":{"start":{"line":36,"column":12},"end":{"line":36,"column":87}},"26":{"start":{"line":36,"column":50},"end":{"line":36,"column":84}},"27":{"start":{"line":37,"column":12},"end":{"line":37,"column":81}},"28":{"start":{"line":41,"column":8},"end":{"line":41,"column":126}},"29":{"start":{"line":44,"column":27},"end":{"line":44,"column":46}},"30":{"start":{"line":45,"column":8},"end":{"line":47,"column":9}},"31":{"start":{"line":46,"column":12},"end":{"line":46,"column":71}},"32":{"start":{"line":48,"column":21},"end":{"line":52,"column":9}},"33":{"start":{"line":53,"column":8},"end":{"line":53,"column":114}},"34":{"start":{"line":56,"column":8},"end":{"line":56,"column":42}},"35":{"start":{"line":60,"column":8},"end":{"line":60,"column":62}},"36":{"start":{"line":63,"column":8},"end":{"line":69,"column":18}},"37":{"start":{"line":72,"column":8},"end":{"line":72,"column":46}},"38":{"start":{"line":75,"column":23},"end":{"line":75,"column":118}},"39":{"start":{"line":76,"column":8},"end":{"line":76,"column":22}},"40":{"start":{"line":79,"column":8},"end":{"line":83,"column":9}},"41":{"start":{"line":80,"column":12},"end":{"line":82,"column":13}},"42":{"start":{"line":81,"column":16},"end":{"line":81,"column":29}},"43":{"start":{"line":84,"column":8},"end":{"line":84,"column":20}},"44":{"start":{"line":87,"column":31},"end":{"line":87,"column":50}},"45":{"start":{"line":88,"column":8},"end":{"line":90,"column":9}},"46":{"start":{"line":89,"column":12},"end":{"line":89,"column":24}},"47":{"start":{"line":91,"column":8},"end":{"line":91,"column":99}},"48":{"start":{"line":94,"column":8},"end":{"line":94,"column":46}},"49":{"start":{"line":97,"column":8},"end":{"line":106,"column":9}},"50":{"start":{"line":109,"column":8},"end":{"line":119,"column":11}},"51":{"start":{"line":122,"column":24},"end":{"line":122,"column":55}},"52":{"start":{"line":123,"column":35},"end":{"line":127,"column":20}},"53":{"start":{"line":128,"column":8},"end":{"line":130,"column":30}},"54":{"start":{"line":130,"column":27},"end":{"line":130,"column":28}},"55":{"start":{"line":133,"column":8},"end":{"line":133,"column":63}},"56":{"start":{"line":136,"column":22},"end":{"line":141,"column":43}},"57":{"start":{"line":137,"column":30},"end":{"line":137,"column":34}},"58":{"start":{"line":138,"column":33},"end":{"line":141,"column":9}},"59":{"start":{"line":141,"column":32},"end":{"line":141,"column":42}},"60":{"start":{"line":142,"column":8},"end":{"line":160,"column":6}},"61":{"start":{"line":145,"column":35},"end":{"line":145,"column":66}},"62":{"start":{"line":163,"column":0},"end":{"line":163,"column":38}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":32},"end":{"line":15,"column":5}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":46},"end":{"line":14,"column":47}},"loc":{"start":{"line":14,"column":59},"end":{"line":14,"column":61}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":24},"end":{"line":18,"column":5}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":5}},"loc":{"start":{"line":19,"column":18},"end":{"line":39,"column":5}},"line":19},"4":{"name":"(anonymous_4)","decl":{"start":{"line":20,"column":47},"end":{"line":20,"column":48}},"loc":{"start":{"line":20,"column":62},"end":{"line":22,"column":9}},"line":20},"5":{"name":"(anonymous_5)","decl":{"start":{"line":23,"column":74},"end":{"line":23,"column":75}},"loc":{"start":{"line":23,"column":89},"end":{"line":26,"column":9}},"line":23},"6":{"name":"(anonymous_6)","decl":{"start":{"line":27,"column":57},"end":{"line":27,"column":58}},"loc":{"start":{"line":27,"column":72},"end":{"line":38,"column":9}},"line":27},"7":{"name":"(anonymous_7)","decl":{"start":{"line":36,"column":40},"end":{"line":36,"column":41}},"loc":{"start":{"line":36,"column":50},"end":{"line":36,"column":84}},"line":36},"8":{"name":"(anonymous_8)","decl":{"start":{"line":40,"column":4},"end":{"line":40,"column":5}},"loc":{"start":{"line":40,"column":51},"end":{"line":42,"column":5}},"line":40},"9":{"name":"(anonymous_9)","decl":{"start":{"line":43,"column":4},"end":{"line":43,"column":5}},"loc":{"start":{"line":43,"column":40},"end":{"line":54,"column":5}},"line":43},"10":{"name":"(anonymous_10)","decl":{"start":{"line":55,"column":4},"end":{"line":55,"column":5}},"loc":{"start":{"line":55,"column":26},"end":{"line":57,"column":5}},"line":55},"11":{"name":"(anonymous_11)","decl":{"start":{"line":58,"column":4},"end":{"line":58,"column":5}},"loc":{"start":{"line":58,"column":17},"end":{"line":61,"column":5}},"line":58},"12":{"name":"(anonymous_12)","decl":{"start":{"line":62,"column":4},"end":{"line":62,"column":5}},"loc":{"start":{"line":62,"column":30},"end":{"line":70,"column":5}},"line":62},"13":{"name":"(anonymous_13)","decl":{"start":{"line":71,"column":4},"end":{"line":71,"column":5}},"loc":{"start":{"line":71,"column":17},"end":{"line":73,"column":5}},"line":71},"14":{"name":"(anonymous_14)","decl":{"start":{"line":74,"column":4},"end":{"line":74,"column":5}},"loc":{"start":{"line":74,"column":31},"end":{"line":77,"column":5}},"line":74},"15":{"name":"(anonymous_15)","decl":{"start":{"line":78,"column":4},"end":{"line":78,"column":5}},"loc":{"start":{"line":78,"column":19},"end":{"line":85,"column":5}},"line":78},"16":{"name":"(anonymous_16)","decl":{"start":{"line":86,"column":4},"end":{"line":86,"column":5}},"loc":{"start":{"line":86,"column":36},"end":{"line":92,"column":5}},"line":86},"17":{"name":"(anonymous_17)","decl":{"start":{"line":93,"column":4},"end":{"line":93,"column":5}},"loc":{"start":{"line":93,"column":49},"end":{"line":95,"column":5}},"line":93},"18":{"name":"(anonymous_18)","decl":{"start":{"line":96,"column":4},"end":{"line":96,"column":5}},"loc":{"start":{"line":96,"column":41},"end":{"line":107,"column":5}},"line":96},"19":{"name":"(anonymous_19)","decl":{"start":{"line":108,"column":4},"end":{"line":108,"column":5}},"loc":{"start":{"line":108,"column":37},"end":{"line":120,"column":5}},"line":108},"20":{"name":"(anonymous_20)","decl":{"start":{"line":121,"column":4},"end":{"line":121,"column":5}},"loc":{"start":{"line":121,"column":28},"end":{"line":131,"column":5}},"line":121},"21":{"name":"(anonymous_21)","decl":{"start":{"line":130,"column":20},"end":{"line":130,"column":21}},"loc":{"start":{"line":130,"column":27},"end":{"line":130,"column":28}},"line":130},"22":{"name":"(anonymous_22)","decl":{"start":{"line":132,"column":4},"end":{"line":132,"column":5}},"loc":{"start":{"line":132,"column":25},"end":{"line":134,"column":5}},"line":132},"23":{"name":"(anonymous_23)","decl":{"start":{"line":135,"column":4},"end":{"line":135,"column":5}},"loc":{"start":{"line":135,"column":34},"end":{"line":161,"column":5}},"line":135},"24":{"name":"(anonymous_24)","decl":{"start":{"line":137,"column":20},"end":{"line":137,"column":21}},"loc":{"start":{"line":137,"column":30},"end":{"line":137,"column":34}},"line":137},"25":{"name":"(anonymous_25)","decl":{"start":{"line":138,"column":17},"end":{"line":138,"column":18}},"loc":{"start":{"line":138,"column":33},"end":{"line":141,"column":9}},"line":138},"26":{"name":"(anonymous_26)","decl":{"start":{"line":141,"column":20},"end":{"line":141,"column":21}},"loc":{"start":{"line":141,"column":32},"end":{"line":141,"column":42}},"line":141},"27":{"name":"(anonymous_27)","decl":{"start":{"line":145,"column":17},"end":{"line":145,"column":18}},"loc":{"start":{"line":145,"column":35},"end":{"line":145,"column":66}},"line":145}},"branchMap":{"0":{"loc":{"start":{"line":29,"column":12},"end":{"line":32,"column":13}},"type":"if","locations":[{"start":{"line":29,"column":12},"end":{"line":32,"column":13}},{"start":{"line":29,"column":12},"end":{"line":32,"column":13}}],"line":29},"1":{"loc":{"start":{"line":29,"column":16},"end":{"line":29,"column":87}},"type":"binary-expr","locations":[{"start":{"line":29,"column":16},"end":{"line":29,"column":22}},{"start":{"line":29,"column":26},"end":{"line":29,"column":87}}],"line":29},"2":{"loc":{"start":{"line":33,"column":12},"end":{"line":35,"column":13}},"type":"if","locations":[{"start":{"line":33,"column":12},"end":{"line":35,"column":13}},{"start":{"line":33,"column":12},"end":{"line":35,"column":13}}],"line":33},"3":{"loc":{"start":{"line":45,"column":8},"end":{"line":47,"column":9}},"type":"if","locations":[{"start":{"line":45,"column":8},"end":{"line":47,"column":9}},{"start":{"line":45,"column":8},"end":{"line":47,"column":9}}],"line":45},"4":{"loc":{"start":{"line":64,"column":5},"end":{"line":64,"column":59}},"type":"cond-expr","locations":[{"start":{"line":64,"column":15},"end":{"line":64,"column":17}},{"start":{"line":64,"column":20},"end":{"line":64,"column":59}}],"line":64},"5":{"loc":{"start":{"line":68,"column":5},"end":{"line":68,"column":18}},"type":"binary-expr","locations":[{"start":{"line":68,"column":5},"end":{"line":68,"column":12}},{"start":{"line":68,"column":16},"end":{"line":68,"column":18}}],"line":68},"6":{"loc":{"start":{"line":80,"column":12},"end":{"line":82,"column":13}},"type":"if","locations":[{"start":{"line":80,"column":12},"end":{"line":82,"column":13}},{"start":{"line":80,"column":12},"end":{"line":82,"column":13}}],"line":80},"7":{"loc":{"start":{"line":88,"column":8},"end":{"line":90,"column":9}},"type":"if","locations":[{"start":{"line":88,"column":8},"end":{"line":90,"column":9}},{"start":{"line":88,"column":8},"end":{"line":90,"column":9}}],"line":88},"8":{"loc":{"start":{"line":94,"column":15},"end":{"line":94,"column":45}},"type":"binary-expr","locations":[{"start":{"line":94,"column":15},"end":{"line":94,"column":28}},{"start":{"line":94,"column":32},"end":{"line":94,"column":45}}],"line":94},"9":{"loc":{"start":{"line":143,"column":13},"end":{"line":143,"column":50}},"type":"binary-expr","locations":[{"start":{"line":143,"column":13},"end":{"line":143,"column":31}},{"start":{"line":143,"column":35},"end":{"line":143,"column":50}}],"line":143},"10":{"loc":{"start":{"line":156,"column":15},"end":{"line":156,"column":51}},"type":"binary-expr","locations":[{"start":{"line":156,"column":15},"end":{"line":156,"column":39}},{"start":{"line":156,"column":43},"end":{"line":156,"column":51}}],"line":156}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/multiple-files.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/multiple-files.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from \"@koa/router\";\nimport {\n\tCollection,\n\tCollectionItem,\n\tFile as SealiousFile,\n\tField as SealiousField,\n} from \"sealious\";\nimport { Context } from \"koa\";\nimport { inputWrapper } from \"../../utils/input-wrapper\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { MultipleFiles as MultipleFilesField } from \"../fields/multiple-files\";\nimport { FormFieldControl } from \"./form-field-control\";\nimport { is, predicates } from \"@sealcode/ts-predicates\";\nimport { renderAttributes } from \"../../utils/render-attributes\";\nimport { FormControlContext } from \"./form-control\";\n\nexport type MultipleFilesOptions = {\n\tlabel?: string;\n\tuploadLabel?: string;\n\tgetAdditionalFields: (\n\t\tctx: Context,\n\t\tfile: SealiousFile\n\t) => Promise<Record<string, unknown>>;\n};\n\nexport class MultipleFiles extends FormFieldControl {\n\tpublic options: MultipleFilesOptions;\n\tconstructor(\n\t\tpublic field: MultipleFilesField,\n\t\toptions?: Partial<MultipleFilesOptions>\n\t) {\n\t\tsuper([field]);\n\t\tthis.options = { getAdditionalFields: async () => ({}), ...options };\n\t}\n\n\tgetClassModifiers(): string[] {\n\t\treturn [];\n\t}\n\n\tmount(router: Router) {\n\t\trouter.get(this.getFrameRelativeURL(), async (ctx) => {\n\t\t\tctx.body = this.renderFrame(\n\t\t\t\tctx,\n\t\t\t\tawait this.renderFrameContent(ctx)\n\t\t\t);\n\t\t});\n\n\t\trouter.post(\n\t\t\tthis.getFrameRelativeURL() + \"/delete/:file_item_id\",\n\t\t\tasync (ctx) => {\n\t\t\t\tawait this.deleteFileAssociation(ctx, ctx.params.file_item_id);\n\t\t\t\tctx.body = this.renderFrame(\n\t\t\t\t\tctx,\n\t\t\t\t\tawait this.renderFrameContent(ctx)\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\n\t\trouter.post(this.getFrameRelativeURL() + \"/add\", async (ctx) => {\n\t\t\tlet files = ctx.$body.files as SealiousFile | SealiousFile[];\n\t\t\tif (!files || !is(files, predicates.object)) {\n\t\t\t\tctx.body = \"Missing files\";\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!Array.isArray(files)) {\n\t\t\t\tfiles = [files];\n\t\t\t}\n\t\t\tawait Promise.all(\n\t\t\t\tfiles.map((file) =>\n\t\t\t\t\tthis.addFileAssociation(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tfile as unknown as SealiousFile\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t\tctx.body = this.renderFrame(\n\t\t\t\tctx,\n\t\t\t\tawait this.renderFrameContent(ctx)\n\t\t\t);\n\t\t});\n\t}\n\n\tasync deleteFileAssociation(ctx: Context, file_item_id: string) {\n\t\tawait ctx.$app.collections[\n\t\t\tthis.field.collection_field.referencing_collection\n\t\t].removeByID(ctx.$context, file_item_id);\n\t}\n\n\tasync addFileAssociation(ctx: Context, file: SealiousFile) {\n\t\tconst file_field = this.getFileField();\n\t\tif (!file_field) {\n\t\t\tthrow new Error(\"No file field in referencing collection\");\n\t\t}\n\t\tconst body = {\n\t\t\t...(await this.options.getAdditionalFields(ctx, file)),\n\t\t\t[this.field.collection_field.referencing_field]:\n\t\t\t\tawait this.field.getItemId(ctx),\n\t\t\t[file_field.name]: file,\n\t\t};\n\t\tawait ctx.$app.collections[\n\t\t\tthis.field.collection_field.referencing_collection\n\t\t].create(ctx.$context, body);\n\t}\n\n\tgetFrameRelativeURL() {\n\t\treturn `${this.field.name}_files`;\n\t}\n\n\tgetFrameID(): string {\n\t\t// the \"A\" is necessary here\n\t\treturn `A${this.field.name}__multiple-fields-control`;\n\t}\n\n\trenderFrame(ctx: Context, content?: FlatTemplatable) {\n\t\treturn tempstream/* HTML */ `<turbo-frame\n\t\t\t${content ? \"\" : `src=\"./${this.getFrameRelativeURL()}\"`}\n\t\t\tid=\"${this.getFrameID()}\"\n\t\t\ttarget=\"_top\"\n\t\t>\n\t\t\t${content || \"\"}\n\t\t</turbo-frame>`;\n\t}\n\n\trender(\n\t\tfctx: FormControlContext\n\t): FlatTemplatable | Promise<FlatTemplatable> {\n\t\treturn this.renderFrame(fctx.ctx, \"\");\n\t}\n\n\tgetReferencingCollection() {\n\t\tconst result =\n\t\t\tthis.field.collection_field.app.collections[\n\t\t\t\tthis.field.collection_field.referencing_collection\n\t\t\t];\n\t\treturn result;\n\t}\n\n\tgetFileField(): SealiousField | null {\n\t\tfor (const [_, field] of Object.entries(\n\t\t\tthis.getReferencingCollection().fields\n\t\t)) {\n\t\t\tif (field.handles_large_data) {\n\t\t\t\treturn field;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tasync extractFileFromItem(\n\t\titem: CollectionItem\n\t): Promise<SealiousFile | null> {\n\t\tconst sealious_field = this.getFileField();\n\t\tif (!sealious_field) {\n\t\t\treturn null;\n\t\t}\n\t\treturn await SealiousFile.fromID(\n\t\t\t(item.collection as Collection).app,\n\t\t\titem.get(sealious_field.name).id\n\t\t);\n\t}\n\n\tasync renderFileItemPreview(\n\t\t_fileItem: CollectionItem,\n\t\tfile: SealiousFile\n\t): Promise<FlatTemplatable> {\n\t\treturn file.filename || \"no filename\";\n\t}\n\n\tasync renderFileItem(\n\t\tfileItem: CollectionItem,\n\t\tfile: SealiousFile\n\t): Promise<FlatTemplatable> {\n\t\treturn tempstream/* HTML */ `<li class=\"file-list-item\">\n\t\t\t<a\n\t\t\t\tclass=\"file-list-item__preview\"\n\t\t\t\thref=\"${file.getURL()}\"\n\t\t\t\tdata-turbo=\"false\"\n\t\t\t>\n\t\t\t\t${this.renderFileItemPreview(fileItem, file)}\n\t\t\t</a>\n\t\t\t${this.renderFileRemoveButton(fileItem)}\n\t\t</li>`;\n\t}\n\n\trenderFileRemoveButton(fileItem: CollectionItem): FlatTemplatable {\n\t\treturn /* HTML */ ` <form\n\t\t\tdata-turbo-frame=\"${this.getFrameID()}\"\n\t\t\taction=\"${this.getFrameRelativeURL()}/delete/${fileItem.id}\"\n\t\t\tmethod=\"POST\"\n\t\t>\n\t\t\t<input\n\t\t\t\ttype=\"submit\"\n\t\t\t\tvalue=\"X\"\n\t\t\t\tclass=\"file-list-action file-list-item__button file-list-item__button--delete\"\n\t\t\t/>\n\t\t</form>`;\n\t}\n\n\tasync getFileItems(ctx: Context) {\n\t\tconst item_id = await this.field.getItemId(ctx);\n\t\tconst {\n\t\t\titems: [item],\n\t\t} = await this.field.collection_field.collection\n\t\t\t.list(ctx.$context)\n\t\t\t.ids([item_id])\n\t\t\t.attach({ [this.field.collection_field.name]: true })\n\t\t\t.fetch();\n\t\treturn item\n\t\t\t.getAttachments(this.field.collection_field.name)\n\t\t\t.filter((f) => f);\n\t}\n\n\tgetInputAttributes() {\n\t\treturn { type: \"file\", name: \"files\", multiple: true };\n\t}\n\n\tasync renderFrameContent(ctx: Context): Promise<FlatTemplatable> {\n\t\tconst files = (\n\t\t\tawait Promise.all(\n\t\t\t\t(\n\t\t\t\t\tawait this.getFileItems(ctx)\n\t\t\t\t)\n\t\t\t\t\t.filter((item) => item) // filter out undefineds\n\t\t\t\t\t.map(async (item) => [\n\t\t\t\t\t\titem,\n\t\t\t\t\t\tawait this.extractFileFromItem(item),\n\t\t\t\t\t])\n\t\t\t)\n\t\t).filter(([_, f]) => f !== null) as [CollectionItem, SealiousFile][];\n\n\t\treturn inputWrapper(\n\t\t\t[\"multiple-files\", this.field.name, ...this.getClassModifiers()],\n\t\t\ttempstream/* HTML */ `\n\t\t\t\t<label>${this.options.label || this.field.name}</label>\n\t\t\t\t<ul class=\"multiple-files__list\">\n\t\t\t\t\t${files.map(([item, file]) =>\n\t\t\t\t\t\tthis.renderFileItem(item, file)\n\t\t\t\t\t)}\n\t\t\t\t</ul>\n\t\t\t\t<form\n\t\t\t\t\taction=\"${this.getFrameRelativeURL()}/add\"\n\t\t\t\t\tmethod=\"POST\"\n\t\t\t\t\tenctype=\"multipart/form-data\"\n\t\t\t\t\tdata-turbo-frame=\"${this.getFrameID()}\"\n\t\t\t\t>\n\t\t\t\t\t<input ${renderAttributes(this.getInputAttributes())} />\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tvalue=\"${this.options.uploadLabel || \"Upload\"}\"\n\t\t\t\t\t\tclass=\"file-list-action\"\n\t\t\t\t\t/>\n\t\t\t\t</form>\n\t\t\t`\n\t\t);\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d406b859158359a6f4bbaa052fbe98f74e2d5a9b"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/number.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/number.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":24}},"2":{"start":{"line":4,"column":23},"end":{"line":4,"column":48}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":30}},"4":{"start":{"line":10,"column":8},"end":{"line":10,"column":24}},"5":{"start":{"line":13,"column":25},"end":{"line":13,"column":61}},"6":{"start":{"line":14,"column":8},"end":{"line":25,"column":10}},"7":{"start":{"line":28,"column":0},"end":{"line":28,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":32},"end":{"line":8,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":14},"end":{"line":11,"column":5}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":35},"end":{"line":26,"column":5}},"line":12}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":20},"end":{"line":19,"column":24}},"type":"cond-expr","locations":[{"start":{"line":18,"column":22},"end":{"line":18,"column":55}},{"start":{"line":19,"column":22},"end":{"line":19,"column":24}}],"line":17},"1":{"loc":{"start":{"line":20,"column":20},"end":{"line":22,"column":24}},"type":"cond-expr","locations":[{"start":{"line":21,"column":22},"end":{"line":21,"column":55}},{"start":{"line":22,"column":22},"end":{"line":22,"column":24}}],"line":20},"2":{"loc":{"start":{"line":23,"column":20},"end":{"line":23,"column":74}},"type":"cond-expr","locations":[{"start":{"line":23,"column":40},"end":{"line":23,"column":69}},{"start":{"line":23,"column":72},"end":{"line":23,"column":74}}],"line":23}},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":1},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/number.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/number.ts"],"names":[],"mappings":";;;AAKA,iDAAiE;AAIjE,MAAa,MAAO,SAAQ,0BAA0B;IAGrD,YAAY,KAAkB,EAAE,OAAsB;QACrD,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO;QACN,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,kBAAkB,CACvB,IAAwB;QAExB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtD,OAAO;YACN,GAAG,QAAQ;YACX,GAAG,MAAM,CAAC,WAAW,CAAC;gBACrB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;oBACzB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACnC,CAAC,CAAC,EAAE,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;oBACzB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACnC,CAAC,CAAC,EAAE,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3D,CAAC;SACF,CAAC;IACH,CAAC;CACD;AA5BD,wBA4BC","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable } from \"tempstream\";\nimport { FormField, NumberField } from \"../fields/field\";\nimport { FormDataValue } from \"../form\";\nimport { FormControlContext } from \"./form-control\";\nimport { SimpleInput, SimpleInputOptions } from \"./simple-input\";\n\nexport type NumberOptions = SimpleInputOptions & Partial<{ step: number }>;\n\nexport class Number extends SimpleInput<number | null> {\n\tfield: NumberField;\n\toptions: NumberOptions;\n\tconstructor(field: NumberField, options: NumberOptions) {\n\t\tsuper(field, options);\n\t}\n\n\tgetType() {\n\t\treturn \"number\";\n\t}\n\n\tasync getInputAttributes(\n\t\tfctx: FormControlContext\n\t): Promise<Record<string, string | boolean>> {\n\t\tconst original = await super.getInputAttributes(fctx);\n\t\treturn {\n\t\t\t...original,\n\t\t\t...Object.fromEntries([\n\t\t\t\t...(this.field.options.min\n\t\t\t\t\t? [[\"min\", this.field.options.min]]\n\t\t\t\t\t: []),\n\t\t\t\t...(this.field.options.max\n\t\t\t\t\t? [[\"max\", this.field.options.max]]\n\t\t\t\t\t: []),\n\t\t\t\t...(this.options.step ? [[\"step\", this.options.step]] : []),\n\t\t\t]),\n\t\t};\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"624efe21837f22867398d0eb28dfb8672c9841b8"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/multiple-photos.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/multiple-photos.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":32}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":25},"end":{"line":5,"column":52}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":30}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":27}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":39}},"7":{"start":{"line":13,"column":8},"end":{"line":13,"column":42}},"8":{"start":{"line":16,"column":8},"end":{"line":16,"column":68}},"9":{"start":{"line":19,"column":21},"end":{"line":19,"column":39}},"10":{"start":{"line":20,"column":8},"end":{"line":22,"column":9}},"11":{"start":{"line":21,"column":12},"end":{"line":21,"column":34}},"12":{"start":{"line":23,"column":8},"end":{"line":33,"column":9}},"13":{"start":{"line":36,"column":0},"end":{"line":36,"column":40}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":45},"end":{"line":11,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":24},"end":{"line":14,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":25},"end":{"line":17,"column":5}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":41},"end":{"line":34,"column":5}},"line":18}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":8},"end":{"line":22,"column":9}},"type":"if","locations":[{"start":{"line":20,"column":8},"end":{"line":22,"column":9}},{"start":{"line":20,"column":8},"end":{"line":22,"column":9}}],"line":20},"1":{"loc":{"start":{"line":31,"column":29},"end":{"line":31,"column":59}},"type":"binary-expr","locations":[{"start":{"line":31,"column":29},"end":{"line":31,"column":42}},{"start":{"line":31,"column":46},"end":{"line":31,"column":59}}],"line":31}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0],"1":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/multiple-photos.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/multiple-photos.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AACzD,qDAAuE;AAIvE,MAAa,cAAe,SAAQ,8BAAa;IAChD,YACQ,KAAyB,EACzB,WAAqC,EAC5C,OAAuC;QAEvC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAJf,UAAK,GAAL,KAAK,CAAoB;QACzB,gBAAW,GAAX,WAAW,CAA0B;IAI7C,CAAC;IAED,iBAAiB;QAChB,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACnC,CAAC;IAED,kBAAkB;QACjB,OAAO,EAAE,GAAG,KAAK,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,cAAc,CACnB,QAAwB,EACxB,IAAkB;QAElB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE;YACV,OAAO,cAAc,CAAC;SACtB;QACD,OAAO,uBAAU,CAAA,UAAU,CAAC;cAChB,IAAI,CAAC,MAAM,EAAE;MACrB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACxB,IAAI;YACJ,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YACvB,UAAU,EAAE,OAAO;SACnB,CAAC;;6BAEuB,IAAI,CAAC,QAAQ,IAAI,aAAa;KACtD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;QAClC,CAAC;IACR,CAAC;CACD;AArCD,wCAqCC","sourcesContent":["import { File as SealiousFile, CollectionItem } from \"sealious\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { MultipleFiles, MultipleFilesOptions } from \"./multiple-files\";\nimport { MultipleFiles as MultipleFilesField } from \"../fields/multiple-files\";\nimport KoaResponsiveImageRouter from \"koa-responsive-image-router\";\n\nexport class MultiplePhotos extends MultipleFiles {\n\tconstructor(\n\t\tpublic field: MultipleFilesField,\n\t\tpublic imageRouter: KoaResponsiveImageRouter,\n\t\toptions?: Partial<MultipleFilesOptions>\n\t) {\n\t\tsuper(field, options);\n\t}\n\n\tgetClassModifiers() {\n\t\treturn [\"multiple-files--photos\"];\n\t}\n\n\tgetInputAttributes() {\n\t\treturn { ...super.getInputAttributes(), accept: \"image/*\" };\n\t}\n\n\tasync renderFileItem(\n\t\tfileItem: CollectionItem,\n\t\tfile: SealiousFile\n\t): Promise<FlatTemplatable> {\n\t\tconst path = file.getDataPath();\n\t\tif (!path) {\n\t\t\treturn \"missing file\";\n\t\t}\n\t\treturn tempstream/* HTML */ `<li>\n\t\t\t<a href=\"${file.getURL()}\" data-turbo=\"false\">\n\t\t\t\t${this.imageRouter.image({\n\t\t\t\t\tpath,\n\t\t\t\t\tresolutions: [150, 300],\n\t\t\t\t\tsizes_attr: \"150px\",\n\t\t\t\t})}\n\t\t\t</a>\n\t\t\t<span class=\"filename\"> ${file.filename || \"no filename\"}</span>\n\t\t\t${this.renderFileRemoveButton(fileItem)}\n\t\t</li>`;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0a27c489ba510f9b3fcfdc891744d8174f2884d9"},"/home/kuba/projects/sealcode/sealgen/src/forms/controls/array.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/array.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":58}},"4":{"start":{"line":7,"column":24},"end":{"line":7,"column":58}},"5":{"start":{"line":8,"column":13},"end":{"line":8,"column":43}},"6":{"start":{"line":9,"column":21},"end":{"line":9,"column":42}},"7":{"start":{"line":10,"column":12},"end":{"line":10,"column":28}},"8":{"start":{"line":11,"column":29},"end":{"line":11,"column":60}},"9":{"start":{"line":13,"column":4},"end":{"line":13,"column":56}},"10":{"start":{"line":15,"column":0},"end":{"line":15,"column":40}},"11":{"start":{"line":18,"column":8},"end":{"line":18,"column":23}},"12":{"start":{"line":19,"column":8},"end":{"line":19,"column":27}},"13":{"start":{"line":20,"column":8},"end":{"line":20,"column":43}},"14":{"start":{"line":23,"column":8},"end":{"line":23,"column":48}},"15":{"start":{"line":26,"column":8},"end":{"line":26,"column":43}},"16":{"start":{"line":29,"column":8},"end":{"line":29,"column":115}},"17":{"start":{"line":32,"column":8},"end":{"line":32,"column":18}},"18":{"start":{"line":35,"column":23},"end":{"line":35,"column":27}},"19":{"start":{"line":36,"column":8},"end":{"line":36,"column":53}},"20":{"start":{"line":39,"column":21},"end":{"line":46,"column":9}},"21":{"start":{"line":47,"column":8},"end":{"line":75,"column":9}},"22":{"start":{"line":48,"column":54},"end":{"line":48,"column":61}},"23":{"start":{"line":49,"column":26},"end":{"line":49,"column":55}},"24":{"start":{"line":50,"column":12},"end":{"line":53,"column":13}},"25":{"start":{"line":51,"column":16},"end":{"line":51,"column":83}},"26":{"start":{"line":52,"column":16},"end":{"line":52,"column":26}},"27":{"start":{"line":54,"column":12},"end":{"line":54,"column":82}},"28":{"start":{"line":55,"column":34},"end":{"line":63,"column":15}},"29":{"start":{"line":55,"column":128},"end":{"line":60,"column":7}},"30":{"start":{"line":60,"column":22},"end":{"line":63,"column":13}},"31":{"start":{"line":64,"column":12},"end":{"line":71,"column":17}},"32":{"start":{"line":74,"column":12},"end":{"line":74,"column":40}},"33":{"start":{"line":78,"column":8},"end":{"line":88,"column":10}},"34":{"start":{"line":79,"column":41},"end":{"line":79,"column":99}},"35":{"start":{"line":91,"column":8},"end":{"line":91,"column":67}},"36":{"start":{"line":94,"column":22},"end":{"line":94,"column":58}},"37":{"start":{"line":95,"column":8},"end":{"line":107,"column":18}},"38":{"start":{"line":97,"column":32},"end":{"line":97,"column":74}},"39":{"start":{"line":110,"column":8},"end":{"line":110,"column":63}},"40":{"start":{"line":113,"column":8},"end":{"line":113,"column":29}},"41":{"start":{"line":116,"column":8},"end":{"line":116,"column":54}},"42":{"start":{"line":117,"column":8},"end":{"line":144,"column":11}},"43":{"start":{"line":118,"column":26},"end":{"line":118,"column":43}},"44":{"start":{"line":119,"column":12},"end":{"line":121,"column":13}},"45":{"start":{"line":120,"column":16},"end":{"line":120,"column":63}},"46":{"start":{"line":122,"column":25},"end":{"line":122,"column":122}},"47":{"start":{"line":123,"column":12},"end":{"line":125,"column":13}},"48":{"start":{"line":124,"column":16},"end":{"line":124,"column":56}},"49":{"start":{"line":126,"column":31},"end":{"line":126,"column":73}},"50":{"start":{"line":127,"column":12},"end":{"line":127,"column":48}},"51":{"start":{"line":128,"column":12},"end":{"line":132,"column":13}},"52":{"start":{"line":131,"column":16},"end":{"line":131,"column":79}},"53":{"start":{"line":133,"column":12},"end":{"line":136,"column":15}},"54":{"start":{"line":137,"column":12},"end":{"line":140,"column":15}},"55":{"start":{"line":141,"column":12},"end":{"line":141,"column":42}},"56":{"start":{"line":142,"column":12},"end":{"line":142,"column":69}},"57":{"start":{"line":143,"column":12},"end":{"line":143,"column":95}},"58":{"start":{"line":147,"column":0},"end":{"line":147,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"UnboundControl","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":23}},"loc":{"start":{"line":12,"column":68},"end":{"line":14,"column":1}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":17,"column":4},"end":{"line":17,"column":5}},"loc":{"start":{"line":17,"column":38},"end":{"line":21,"column":5}},"line":17},"3":{"name":"(anonymous_3)","decl":{"start":{"line":22,"column":4},"end":{"line":22,"column":5}},"loc":{"start":{"line":22,"column":17},"end":{"line":24,"column":5}},"line":22},"4":{"name":"(anonymous_4)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":21},"end":{"line":27,"column":5}},"line":25},"5":{"name":"(anonymous_5)","decl":{"start":{"line":28,"column":4},"end":{"line":28,"column":5}},"loc":{"start":{"line":28,"column":34},"end":{"line":30,"column":5}},"line":28},"6":{"name":"(anonymous_6)","decl":{"start":{"line":31,"column":4},"end":{"line":31,"column":5}},"loc":{"start":{"line":31,"column":31},"end":{"line":33,"column":5}},"line":31},"7":{"name":"(anonymous_7)","decl":{"start":{"line":34,"column":4},"end":{"line":34,"column":5}},"loc":{"start":{"line":34,"column":30},"end":{"line":37,"column":5}},"line":34},"8":{"name":"(anonymous_8)","decl":{"start":{"line":38,"column":4},"end":{"line":38,"column":5}},"loc":{"start":{"line":38,"column":64},"end":{"line":76,"column":5}},"line":38},"9":{"name":"(anonymous_9)","decl":{"start":{"line":55,"column":68},"end":{"line":55,"column":69}},"loc":{"start":{"line":55,"column":128},"end":{"line":60,"column":7}},"line":55},"10":{"name":"(anonymous_10)","decl":{"start":{"line":60,"column":9},"end":{"line":60,"column":10}},"loc":{"start":{"line":60,"column":22},"end":{"line":63,"column":13}},"line":60},"11":{"name":"(anonymous_11)","decl":{"start":{"line":77,"column":4},"end":{"line":77,"column":5}},"loc":{"start":{"line":77,"column":48},"end":{"line":89,"column":5}},"line":77},"12":{"name":"(anonymous_12)","decl":{"start":{"line":79,"column":28},"end":{"line":79,"column":29}},"loc":{"start":{"line":79,"column":41},"end":{"line":79,"column":99}},"line":79},"13":{"name":"(anonymous_13)","decl":{"start":{"line":90,"column":4},"end":{"line":90,"column":5}},"loc":{"start":{"line":90,"column":36},"end":{"line":92,"column":5}},"line":90},"14":{"name":"(anonymous_14)","decl":{"start":{"line":93,"column":4},"end":{"line":93,"column":5}},"loc":{"start":{"line":93,"column":44},"end":{"line":108,"column":5}},"line":93},"15":{"name":"(anonymous_15)","decl":{"start":{"line":97,"column":15},"end":{"line":97,"column":16}},"loc":{"start":{"line":97,"column":32},"end":{"line":97,"column":74}},"line":97},"16":{"name":"(anonymous_16)","decl":{"start":{"line":109,"column":4},"end":{"line":109,"column":5}},"loc":{"start":{"line":109,"column":17},"end":{"line":111,"column":5}},"line":109},"17":{"name":"(anonymous_17)","decl":{"start":{"line":112,"column":4},"end":{"line":112,"column":5}},"loc":{"start":{"line":112,"column":31},"end":{"line":114,"column":5}},"line":112},"18":{"name":"(anonymous_18)","decl":{"start":{"line":115,"column":4},"end":{"line":115,"column":5}},"loc":{"start":{"line":115,"column":18},"end":{"line":145,"column":5}},"line":115},"19":{"name":"(anonymous_19)","decl":{"start":{"line":117,"column":41},"end":{"line":117,"column":42}},"loc":{"start":{"line":117,"column":56},"end":{"line":144,"column":9}},"line":117}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":29,"column":38},"end":{"line":29,"column":66}},"type":"cond-expr","locations":[{"start":{"line":29,"column":58},"end":{"line":29,"column":61}},{"start":{"line":29,"column":64},"end":{"line":29,"column":66}}],"line":29},"4":{"loc":{"start":{"line":29,"column":38},"end":{"line":29,"column":55}},"type":"binary-expr","locations":[{"start":{"line":29,"column":38},"end":{"line":29,"column":45}},{"start":{"line":29,"column":49},"end":{"line":29,"column":55}}],"line":29},"5":{"loc":{"start":{"line":47,"column":8},"end":{"line":75,"column":9}},"type":"if","locations":[{"start":{"line":47,"column":8},"end":{"line":75,"column":9}},{"start":{"line":47,"column":8},"end":{"line":75,"column":9}}],"line":47},"6":{"loc":{"start":{"line":50,"column":12},"end":{"line":53,"column":13}},"type":"if","locations":[{"start":{"line":50,"column":12},"end":{"line":53,"column":13}},{"start":{"line":50,"column":12},"end":{"line":53,"column":13}}],"line":50},"7":{"loc":{"start":{"line":58,"column":14},"end":{"line":58,"column":38}},"type":"binary-expr","locations":[{"start":{"line":58,"column":14},"end":{"line":58,"column":32}},{"start":{"line":58,"column":36},"end":{"line":58,"column":38}}],"line":58},"8":{"loc":{"start":{"line":119,"column":12},"end":{"line":121,"column":13}},"type":"if","locations":[{"start":{"line":119,"column":12},"end":{"line":121,"column":13}},{"start":{"line":119,"column":12},"end":{"line":121,"column":13}}],"line":119},"9":{"loc":{"start":{"line":123,"column":12},"end":{"line":125,"column":13}},"type":"if","locations":[{"start":{"line":123,"column":12},"end":{"line":125,"column":13}},{"start":{"line":123,"column":12},"end":{"line":125,"column":13}}],"line":123},"10":{"loc":{"start":{"line":126,"column":31},"end":{"line":126,"column":73}},"type":"binary-expr","locations":[{"start":{"line":126,"column":31},"end":{"line":126,"column":57}},{"start":{"line":126,"column":61},"end":{"line":126,"column":73}}],"line":126},"11":{"loc":{"start":{"line":128,"column":12},"end":{"line":132,"column":13}},"type":"if","locations":[{"start":{"line":128,"column":12},"end":{"line":132,"column":13}},{"start":{"line":128,"column":12},"end":{"line":132,"column":13}}],"line":128},"12":{"loc":{"start":{"line":135,"column":22},"end":{"line":135,"column":43}},"type":"binary-expr","locations":[{"start":{"line":135,"column":22},"end":{"line":135,"column":37}},{"start":{"line":135,"column":41},"end":{"line":135,"column":43}}],"line":135},"13":{"loc":{"start":{"line":139,"column":22},"end":{"line":139,"column":43}},"type":"binary-expr","locations":[{"start":{"line":139,"column":22},"end":{"line":139,"column":37}},{"start":{"line":139,"column":41},"end":{"line":139,"column":43}}],"line":139}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":0,"10":1,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":1},"f":{"0":1,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/controls/array.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/controls/array.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from \"@koa/router\";\nimport { hasShape, predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport qs from \"qs\";\nimport { Field, FieldsetOutput } from \"sealious\";\nimport { tempstream } from \"tempstream\";\nimport { Controls, Fields } from \"../..\";\nimport { FormField, StructuredArrayField } from \"../fields/field\";\nimport { FormDataValue } from \"../form\";\nimport { FormControl } from \"./controls\";\nimport { FormControlContext } from \"./form-control\";\nimport { FormFieldControl } from \"./form-field-control\";\n\nexport type UnboundControlStorage<\n\tF extends { new (...args: any): FormFieldControl } = {\n\t\tnew (...args: any): FormFieldControl;\n\t}\n> = [F, string, ConstructorParameters<F>];\n\nexport function UnboundControl<\n\tF extends { new (...args: any): FormFieldControl }\n>(\n\tcontrolClass: F,\n\tarbitrary_field_name: string,\n\tparams: ConstructorParameters<F>[\"1\"]\n): UnboundControlStorage {\n\treturn [controlClass, arbitrary_field_name, params];\n}\n\nexport class StructuredArray<\n\tSubfields extends Record<string, Field>\n> extends FormFieldControl {\n\tconstructor(\n\t\tpublic field: StructuredArrayField<Subfields>,\n\t\tpublic item_controls: Array<FormControl | UnboundControlStorage>\n\t) {\n\t\tsuper([field]);\n\t}\n\n\tgetFrameID() {\n\t\treturn `array-frame-${this.field.name}`;\n\t}\n\n\tgetInnerFormID() {\n\t\treturn this.getFrameID() + \"-form\";\n\t}\n\n\tgetActionURL(form_id?: string, action?: Record<string, unknown>) {\n\t\treturn `${this.getFrameID()}${\n\t\t\tform_id || action ? \"?\" : \"\"\n\t\t}${qs.stringify({ form_id, action })}`;\n\t}\n\n\tasync getDefaultItemBody() {\n\t\treturn {};\n\t}\n\n\tmakeSubfield(_field_name: string): FormField {\n\t\tconst fields = this;\n\t\treturn new Fields.SimpleFormField(false);\n\t}\n\n\tasync renderItemControl(\n\t\tctx: Context,\n\t\tform_id: string,\n\t\tcontrol: FormControl | UnboundControlStorage,\n\t\titem: FieldsetOutput<Subfields>,\n\t\tindex: number\n\t) {\n\t\tconst fctx = {\n\t\t\tctx,\n\t\t\tdata: {},\n\t\t\tmessages: [],\n\t\t\tfield_name_prefix: \"\",\n\t\t\tform_id,\n\t\t\tvalidate: false,\n\t\t};\n\t\tif (Array.isArray(control)) {\n\t\t\tconst [constructor, field_name, params] = control;\n\t\t\tconst field = this.makeSubfield(field_name);\n\t\t\tif (!field) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`makeSubfield returned null for field ${field_name}`\n\t\t\t\t);\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t\tawait field.init(\n\t\t\t\t`${this.field.name}[data][${index}][${field_name}]`\n\t\t\t);\n\t\t\tconst hidden_shadow = new Controls.Derived(\n\t\t\t\t[field],\n\t\t\t\tasync (\n\t\t\t\t\tvalues,\n\t\t\t\t\t{ inner_form_id, field_name }\n\t\t\t\t) => /* HTML */ `<input\n\t\t\t\t\tname=\"${field_name}\"\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tvalue=\"${values[field_name] || \"\"}\"\n\t\t\t\t\tform=\"${inner_form_id}\"\n\t\t\t\t/>`,\n\t\t\t\tasync () => ({\n\t\t\t\t\tinner_form_id: this.getInnerFormID(),\n\t\t\t\t\tfield_name: field.name,\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn tempstream`${new constructor(field, params).render({\n\t\t\t\t...fctx,\n\t\t\t\tdata: { [field.name]: item[field_name] as FormDataValue },\n\t\t\t})}${hidden_shadow.render({\n\t\t\t\t...fctx,\n\t\t\t\tdata: { [field.name]: item[field_name] as FormDataValue },\n\t\t\t\tform_id: this.getInnerFormID(),\n\t\t\t})}`;\n\t\t} else {\n\t\t\treturn control.render(fctx);\n\t\t}\n\t}\n\n\tasync renderItem(\n\t\tctx: Context,\n\t\tform_id: string,\n\t\titem: FieldsetOutput<Subfields>,\n\t\tindex: number\n\t) {\n\t\treturn tempstream/* HTML */ `<div>\n\t\t\t${this.item_controls.map((control) =>\n\t\t\t\tthis.renderItemControl(ctx, form_id, control, item, index)\n\t\t\t)}\n\t\t\t<input\n\t\t\t\ttype=\"submit\"\n\t\t\t\tvalue=\"remove\"\n\t\t\t\tform=\"${this.getInnerFormID()}\"\n\t\t\t\tformaction=\"${this.getActionURL(form_id, {\n\t\t\t\t\tremove: index,\n\t\t\t\t})}\"\n\t\t\t/>\n\t\t</div>`;\n\t}\n\n\tasync getItems(ctx: Context, raw_values: Record<string, FormDataValue>) {\n\t\treturn (await this.field.getValue(ctx, raw_values)).parsed as Promise<\n\t\t\tFieldsetOutput<Subfields>[]\n\t\t>;\n\t}\n\n\tasync _render(\n\t\tctx: Context,\n\t\tform_id: string,\n\t\traw_values: Record<string, FormDataValue>\n\t) {\n\t\tconst items = await this.getItems(ctx, raw_values);\n\n\t\treturn tempstream/* HTML */ `<turbo-frame id=\"${this.getFrameID()}\">\n\t\t\tReverse Single Reference\n\t\t\t${items.map((item, index) =>\n\t\t\t\tthis.renderItem(ctx, form_id, item, index)\n\t\t\t)}\n\t\t\t<form id=\"${this.getInnerFormID()}\" method=\"POST\"></form>\n\t\t\t<input\n\t\t\t\ttype=\"submit\"\n\t\t\t\tvalue=\"add\"\n\t\t\t\tform=\"${this.getInnerFormID()}\"\n\t\t\t\tformaction=\"${this.getActionURL(form_id, {\n\t\t\t\t\tinsert: { index: items.length, value: {} },\n\t\t\t\t})}\"\n\t\t\t/>\n\t\t</turbo-frame>`;\n\t}\n\n\trender(fctx: FormControlContext) {\n\t\treturn this._render(fctx.ctx, fctx.form_id, fctx.data);\n\t}\n\n\tasync getTargetItemID(ctx: Context): Promise<string> {\n\t\treturn ctx.params.id;\n\t}\n\n\tmount(router: Router) {\n\t\tconsole.log(\"mounting!\", this.getActionURL());\n\t\trouter.post(this.getActionURL(), async (ctx) => {\n\t\t\tlet form_id = ctx.query.form_id;\n\t\t\tif (typeof form_id != \"string\") {\n\t\t\t\tthrow new Error(\"Missing form_id query param\");\n\t\t\t}\n\n\t\t\tconst item = await this.field.sealious_field.collection.getByID(\n\t\t\t\tctx.$context,\n\t\t\t\tawait this.getTargetItemID(ctx)\n\t\t\t);\n\n\t\t\tif (!hasShape({ action: predicates.object }, ctx.$body)) {\n\t\t\t\tthrow new Error(\"Missing action param\");\n\t\t\t}\n\n\t\t\tconst field_data = ctx.$body[this.field.name] || { data: [] };\n\t\t\tconsole.log({ action: field_data });\n\t\t\tif (\n\t\t\t\t!hasShape(\n\t\t\t\t\t{\n\t\t\t\t\t\tdata: predicates.array(\n\t\t\t\t\t\t\tthis.field.sealious_field.value_predicate\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tfield_data\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"missing data atribute in action description\");\n\t\t\t}\n\t\t\titem.set(this.field.name, {\n\t\t\t\t...ctx.$body.action,\n\t\t\t\tdata: field_data.data || [],\n\t\t\t});\n\t\t\tconsole.log(\"ACTION\", {\n\t\t\t\t...ctx.$body.action,\n\t\t\t\tdata: field_data.data || [],\n\t\t\t});\n\t\t\tawait item.save(ctx.$context);\n\t\t\tconsole.log(await item.getDecodedBody(ctx.$context, {}));\n\t\t\tctx.body = this._render(\n\t\t\t\tctx,\n\t\t\t\tform_id,\n\t\t\t\tawait item.getDecodedBody(ctx.$context, {})\n\t\t\t);\n\t\t});\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6d74957aa0df4558e75884df089df738aa3eee79"},"/home/kuba/projects/sealcode/sealgen/src/page/mountable.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/page/mountable.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":27}},"2":{"start":{"line":8,"column":0},"end":{"line":8,"column":30}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":11},"end":{"line":6,"column":14}},"line":6}},"branchMap":{},"s":{"0":1,"1":1,"2":1},"f":{"0":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/page/mountable.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/page/mountable.ts"],"names":[],"mappings":";;;AAIA,MAAsB,SAAS;IAC9B,gEAAgE;IAChE,IAAI,KAAU,CAAC;CAMf;AARD,8BAQC","sourcesContent":["import Router from \"@koa/router\";\n\nimport { Context } from \"koa\";\n\nexport abstract class Mountable {\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tinit(): void {}\n\tabstract mount(router: Router, path: string): void;\n\n\tabstract canAccess(\n\t\tctx: Context\n\t): Promise<{ canAccess: boolean; message: string }>;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"78c6b0e9db55a81df6daf3c64bc21f0842f8d33d"},"/home/kuba/projects/sealcode/sealgen/src/page/page.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/page/page.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":22}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":12},"end":{"line":5,"column":25}},"4":{"start":{"line":6,"column":32},"end":{"line":6,"column":66}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":28}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":52}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":27}},"8":{"start":{"line":14,"column":8},"end":{"line":16,"column":11}},"9":{"start":{"line":15,"column":12},"end":{"line":15,"column":46}},"10":{"start":{"line":20,"column":8},"end":{"line":20,"column":48}},"11":{"start":{"line":23,"column":8},"end":{"line":23,"column":80}},"12":{"start":{"line":26,"column":8},"end":{"line":26,"column":50}},"13":{"start":{"line":29,"column":0},"end":{"line":29,"column":20}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":18},"end":{"line":12,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":24},"end":{"line":17,"column":5}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":25},"end":{"line":14,"column":26}},"loc":{"start":{"line":14,"column":40},"end":{"line":16,"column":9}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":5}},"loc":{"start":{"line":19,"column":23},"end":{"line":21,"column":5}},"line":19},"4":{"name":"(anonymous_4)","decl":{"start":{"line":22,"column":4},"end":{"line":22,"column":5}},"loc":{"start":{"line":22,"column":32},"end":{"line":24,"column":5}},"line":22},"5":{"name":"(anonymous_5)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":32},"end":{"line":27,"column":5}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":15},"end":{"line":26,"column":49}},"type":"binary-expr","locations":[{"start":{"line":26,"column":15},"end":{"line":26,"column":43}},{"start":{"line":26,"column":47},"end":{"line":26,"column":49}}],"line":26}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/page/page.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/page/page.ts"],"names":[],"mappings":";;;AAGA,2CAAyD;AACzD,0BAAoC;AAEpC,mEAIiC;AAGjC,MAAsB,IAEpB,SAAQ,2CAAsB;IAFhC;;QAGC,gBAAW,GACV,IAAI,kBAAc,EAAE,CAAC;QACtB,aAAQ,GAAG,EAAE,CAAC;IA2Bf,CAAC;IAzBA,KAAK,CAAC,MAAc,EAAE,IAAY;QACjC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC9B,GAAG,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,SAAS,CAAC,CAAU;QACzB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,CAAU,EACV,KAAuB;QAEvB,OAAO,uBAAU,CAAA,UAAU,CAAC,QAAQ,KAAK,CAAC,OAAO,QAAQ,CAAC;IAC3D,CAAC;IAID,KAAK,CAAC,gBAAgB,CACrB,GAAY;QAEZ,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;CACD;AAhCD,oBAgCC","sourcesContent":["import Router from \"@koa/router\";\nimport { Context } from \"koa\";\n\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { AllQueryParams } from \"..\";\nimport { FormDataValue } from \"../forms/form\";\nimport {\n\tFields,\n\tMountableWithFields,\n\tPageErrorMessage,\n} from \"./mountable-with-fields\";\nimport { PagePropsParser } from \"./props-parser\";\n\nexport abstract class Page<\n\tF extends Fields = Record<string, never>\n> extends MountableWithFields<F> {\n\tpropsParser: PagePropsParser<Record<keyof Fields, unknown>> =\n\t\tnew AllQueryParams();\n\tcontrols = [];\n\n\tmount(router: Router, path: string): void {\n\t\trouter.get(path, async (ctx) => {\n\t\t\tctx.body = await this.render(ctx);\n\t\t});\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tasync canAccess(_: Context) {\n\t\treturn { canAccess: true, message: \"\" };\n\t}\n\n\tasync renderError(\n\t\t_: Context,\n\t\terror: PageErrorMessage\n\t): Promise<FlatTemplatable> {\n\t\treturn tempstream/* HTML */ `<div>${error.message}</div>`;\n\t}\n\n\tpublic abstract render(ctx: Context): Promise<FlatTemplatable>;\n\n\tasync extractRawValues(\n\t\tctx: Context\n\t): Promise<Record<string, FormDataValue>> {\n\t\treturn this.propsParser.decode(ctx) || {};\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1b47bd689eb79a53f16ccb1f5cf27e68237ab4a1"},"/home/kuba/projects/sealcode/sealgen/src/page/mountable-with-fields.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/page/mountable-with-fields.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":37}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":23},"end":{"line":5,"column":64}},"4":{"start":{"line":6,"column":20},"end":{"line":6,"column":42}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":16}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":37}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":26}},"8":{"start":{"line":12,"column":8},"end":{"line":13,"column":29}},"9":{"start":{"line":13,"column":12},"end":{"line":13,"column":29}},"10":{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},"11":{"start":{"line":17,"column":12},"end":{"line":17,"column":29}},"12":{"start":{"line":21,"column":8},"end":{"line":21,"column":128}},"13":{"start":{"line":25,"column":8},"end":{"line":28,"column":10}},"14":{"start":{"line":31,"column":29},"end":{"line":31,"column":31}},"15":{"start":{"line":32,"column":20},"end":{"line":32,"column":24}},"16":{"start":{"line":33,"column":30},"end":{"line":33,"column":32}},"17":{"start":{"line":34,"column":8},"end":{"line":43,"column":12}},"18":{"start":{"line":35,"column":37},"end":{"line":35,"column":61}},"19":{"start":{"line":37,"column":26},"end":{"line":37,"column":42}},"20":{"start":{"line":38,"column":65},"end":{"line":38,"column":98}},"21":{"start":{"line":39,"column":12},"end":{"line":42,"column":13}},"22":{"start":{"line":40,"column":16},"end":{"line":40,"column":30}},"23":{"start":{"line":41,"column":16},"end":{"line":41,"column":56}},"24":{"start":{"line":44,"column":37},"end":{"line":44,"column":75}},"25":{"start":{"line":45,"column":8},"end":{"line":51,"column":9}},"26":{"start":{"line":46,"column":12},"end":{"line":49,"column":15}},"27":{"start":{"line":50,"column":12},"end":{"line":50,"column":26}},"28":{"start":{"line":52,"column":8},"end":{"line":52,"column":54}},"29":{"start":{"line":55,"column":8},"end":{"line":55,"column":108}},"30":{"start":{"line":55,"column":84},"end":{"line":55,"column":104}},"31":{"start":{"line":58,"column":8},"end":{"line":58,"column":29}},"32":{"start":{"line":61,"column":8},"end":{"line":63,"column":10}},"33":{"start":{"line":62,"column":36},"end":{"line":62,"column":115}},"34":{"start":{"line":66,"column":27},"end":{"line":66,"column":59}},"35":{"start":{"line":67,"column":23},"end":{"line":67,"column":25}},"36":{"start":{"line":68,"column":25},"end":{"line":71,"column":10}},"37":{"start":{"line":69,"column":31},"end":{"line":69,"column":68}},"38":{"start":{"line":70,"column":12},"end":{"line":70,"column":33}},"39":{"start":{"line":72,"column":8},"end":{"line":72,"column":36}},"40":{"start":{"line":73,"column":8},"end":{"line":73,"column":22}},"41":{"start":{"line":76,"column":27},"end":{"line":76,"column":59}},"42":{"start":{"line":77,"column":23},"end":{"line":77,"column":25}},"43":{"start":{"line":78,"column":25},"end":{"line":83,"column":10}},"44":{"start":{"line":79,"column":29},"end":{"line":79,"column":74}},"45":{"start":{"line":80,"column":12},"end":{"line":82,"column":13}},"46":{"start":{"line":81,"column":16},"end":{"line":81,"column":39}},"47":{"start":{"line":84,"column":8},"end":{"line":84,"column":36}},"48":{"start":{"line":85,"column":8},"end":{"line":85,"column":22}},"49":{"start":{"line":88,"column":0},"end":{"line":88,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":18},"end":{"line":14,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":11},"end":{"line":19,"column":5}},"line":15},"2":{"name":"(anonymous_2)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":117},"end":{"line":22,"column":5}},"line":20},"3":{"name":"(anonymous_3)","decl":{"start":{"line":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":36},"end":{"line":29,"column":5}},"line":24},"4":{"name":"(anonymous_4)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":32},"end":{"line":53,"column":5}},"line":30},"5":{"name":"(anonymous_5)","decl":{"start":{"line":35,"column":20},"end":{"line":35,"column":21}},"loc":{"start":{"line":35,"column":37},"end":{"line":35,"column":61}},"line":35},"6":{"name":"(anonymous_6)","decl":{"start":{"line":36,"column":17},"end":{"line":36,"column":18}},"loc":{"start":{"line":36,"column":34},"end":{"line":43,"column":9}},"line":36},"7":{"name":"(anonymous_7)","decl":{"start":{"line":54,"column":4},"end":{"line":54,"column":5}},"loc":{"start":{"line":54,"column":25},"end":{"line":56,"column":5}},"line":54},"8":{"name":"(anonymous_8)","decl":{"start":{"line":55,"column":71},"end":{"line":55,"column":72}},"loc":{"start":{"line":55,"column":84},"end":{"line":55,"column":104}},"line":55},"9":{"name":"(anonymous_9)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":32},"end":{"line":59,"column":5}},"line":57},"10":{"name":"(anonymous_10)","decl":{"start":{"line":60,"column":4},"end":{"line":60,"column":5}},"loc":{"start":{"line":60,"column":28},"end":{"line":64,"column":5}},"line":60},"11":{"name":"(anonymous_11)","decl":{"start":{"line":62,"column":23},"end":{"line":62,"column":24}},"loc":{"start":{"line":62,"column":36},"end":{"line":62,"column":115}},"line":62},"12":{"name":"(anonymous_12)","decl":{"start":{"line":65,"column":4},"end":{"line":65,"column":5}},"loc":{"start":{"line":65,"column":31},"end":{"line":74,"column":5}},"line":65},"13":{"name":"(anonymous_13)","decl":{"start":{"line":68,"column":57},"end":{"line":68,"column":58}},"loc":{"start":{"line":68,"column":81},"end":{"line":71,"column":9}},"line":68},"14":{"name":"(anonymous_14)","decl":{"start":{"line":75,"column":4},"end":{"line":75,"column":5}},"loc":{"start":{"line":75,"column":33},"end":{"line":86,"column":5}},"line":75},"15":{"name":"(anonymous_15)","decl":{"start":{"line":78,"column":57},"end":{"line":78,"column":58}},"loc":{"start":{"line":78,"column":81},"end":{"line":83,"column":9}},"line":78}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":8},"end":{"line":13,"column":29}},"type":"if","locations":[{"start":{"line":12,"column":8},"end":{"line":13,"column":29}},{"start":{"line":12,"column":8},"end":{"line":13,"column":29}}],"line":12},"1":{"loc":{"start":{"line":20,"column":48},"end":{"line":20,"column":91}},"type":"default-arg","locations":[{"start":{"line":20,"column":68},"end":{"line":20,"column":91}}],"line":20},"2":{"loc":{"start":{"line":20,"column":93},"end":{"line":20,"column":115}},"type":"default-arg","locations":[{"start":{"line":20,"column":103},"end":{"line":20,"column":115}}],"line":20},"3":{"loc":{"start":{"line":39,"column":12},"end":{"line":42,"column":13}},"type":"if","locations":[{"start":{"line":39,"column":12},"end":{"line":42,"column":13}},{"start":{"line":39,"column":12},"end":{"line":42,"column":13}}],"line":39},"4":{"loc":{"start":{"line":45,"column":8},"end":{"line":51,"column":9}},"type":"if","locations":[{"start":{"line":45,"column":8},"end":{"line":51,"column":9}},{"start":{"line":45,"column":8},"end":{"line":51,"column":9}}],"line":45},"5":{"loc":{"start":{"line":80,"column":12},"end":{"line":82,"column":13}},"type":"if","locations":[{"start":{"line":80,"column":12},"end":{"line":82,"column":13}},{"start":{"line":80,"column":12},"end":{"line":82,"column":13}}],"line":80}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":25,"6":25,"7":25,"8":25,"9":25,"10":25,"11":19,"12":42,"13":14,"14":16,"15":16,"16":16,"17":16,"18":14,"19":14,"20":14,"21":14,"22":4,"23":4,"24":16,"25":16,"26":1,"27":1,"28":16,"29":42,"30":49,"31":2,"32":62,"33":16,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":1},"f":{"0":25,"1":25,"2":42,"3":14,"4":16,"5":14,"6":14,"7":42,"8":49,"9":2,"10":62,"11":16,"12":0,"13":0,"14":0,"15":0},"b":{"0":[25,0],"1":[42],"2":[42],"3":[4,10],"4":[1,15],"5":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/page/mountable-with-fields.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/page/mountable-with-fields.ts"],"names":[],"mappings":"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","sourcesContent":["import { ShapeToType } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport {\n\tFormControl,\n\tFormControlContext,\n} from \"../forms/controls/form-control\";\nimport { FieldsToShape, FormField } from \"../forms/fields/field\";\nimport { FormData, FormDataValue, FormMessage } from \"../forms/form\";\nimport { Mountable } from \"./mountable\";\n\nexport type PageErrorMessage = { type: \"access\" | \"internal\"; message: string };\n\nexport type Fields = Record<string, FormField<boolean, any>>;\n\nexport abstract class MountableWithFields<\n\tF extends Fields = Fields\n> extends Mountable {\n\tfields: F;\n\tfield_names_prefix = \"\"; // useful for multiform, where many forms are merged into one and field assignment is made using the prefix\n\tform_id = \"\"; // all fields within this mountable will be tied to form of this id\n\tabstract controls: FormControl[];\n\n\tconstructor() {\n\t\tsuper();\n\t\tif (!this.fields) this.fields = {} as F;\n\t}\n\n\tinit(): void {\n\t\tfor (const [name, field] of Object.entries(this.fields)) {\n\t\t\tfield.init(name);\n\t\t}\n\t}\n\n\tmakeFormControlContext(\n\t\tctx: Context,\n\t\tdata: FormData,\n\t\tvalidate: boolean,\n\t\tfield_name_prefix = this.field_names_prefix,\n\t\tform_id = this.form_id\n\t) {\n\t\treturn new FormControlContext(\n\t\t\tctx,\n\t\t\tdata.raw_values,\n\t\t\tdata.messages,\n\t\t\tfield_name_prefix,\n\t\t\tform_id,\n\t\t\tvalidate\n\t\t);\n\t}\n\n\t// this one is meant to be overwritten\n\tasync validateValues(\n\t\tctx: Context,\n\t\tdata: Record<string, FormDataValue>\n\t): Promise<{ valid: boolean; error: string }> {\n\t\treturn {\n\t\t\tvalid: true,\n\t\t\terror: \"\",\n\t\t};\n\t}\n\n\tasync validate(\n\t\tctx: Context,\n\t\tvalues: Record<string, FormDataValue>\n\t): Promise<{\n\t\tvalid: boolean;\n\t\tfield_errors: Partial<Record<keyof Fields, string>>;\n\t\tform_messages: FormMessage[];\n\t}> {\n\t\tconst field_errors = {} as Record<keyof Fields, string>;\n\t\tlet valid = true;\n\t\tconst form_messages = [] as FormMessage[];\n\t\tawait Promise.all(\n\t\t\tObject.entries(values)\n\t\t\t\t.filter(([fieldname]) => fieldname in this.fields)\n\t\t\t\t.map(async ([key]: [keyof F, FormDataValue]) => {\n\t\t\t\t\tconst field = this.fields[key];\n\t\t\t\t\tconst { valid: fieldvalid, message: fieldmessage } =\n\t\t\t\t\t\tawait field.getValue(ctx, values);\n\t\t\t\t\tif (!fieldvalid) {\n\t\t\t\t\t\tvalid = false;\n\t\t\t\t\t\tfield_errors[field.name] = fieldmessage;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t);\n\t\tconst formValidationResult = await this.validateValues(ctx, values);\n\t\tif (!formValidationResult.valid) {\n\t\t\tform_messages.push({\n\t\t\t\ttype: \"error\",\n\t\t\t\ttext: formValidationResult.error,\n\t\t\t});\n\t\t\tvalid = false;\n\t\t}\n\t\treturn { valid, field_errors, form_messages };\n\t}\n\n\tpublic renderControls(fctx: FormControlContext): FlatTemplatable {\n\t\treturn tempstream/* HTML */ `${this.controls.map((control) =>\n\t\t\tcontrol.render(fctx)\n\t\t)}`;\n\t}\n\n\tasync renderError(\n\t\t_: Context,\n\t\terror: PageErrorMessage\n\t): Promise<FlatTemplatable> {\n\t\treturn error.message;\n\t}\n\n\tpublic renderMessages(\n\t\t_: Context,\n\t\tdata: FormData<keyof Fields>\n\t): FlatTemplatable {\n\t\treturn tempstream/* HTML */ `<div class=\"form-messages\">\n\t\t\t${data.messages.map(\n\t\t\t\t(message) =>\n\t\t\t\t\t`<div class=\"form-message form-message--${message.type}\">${message.text}</div>`\n\t\t\t)}\n\t\t</div>`;\n\t}\n\n\tabstract extractRawValues(\n\t\tctx: Context\n\t): Promise<Record<string, FormDataValue>>;\n\n\tasync getParsedValues(\n\t\tctx: Context\n\t): Promise<ShapeToType<FieldsToShape<F>>> {\n\t\tconst raw_values = await this.extractRawValues(ctx);\n\t\tconst result: Record<string, unknown> = {};\n\t\tconst promises = Object.entries(this.fields).map(\n\t\t\tasync ([key, field]) => {\n\t\t\t\tconst { parsed } = await field.getValue(ctx, raw_values);\n\t\t\t\tresult[key] = parsed;\n\t\t\t}\n\t\t);\n\t\tawait Promise.all(promises);\n\t\treturn result as ShapeToType<FieldsToShape<F>>;\n\t}\n\n\tasync getDatabaseValues(\n\t\tctx: Context\n\t): Promise<ShapeToType<FieldsToShape<F>>> {\n\t\tconst raw_values = await this.extractRawValues(ctx);\n\t\tconst result: Record<string, unknown> = {};\n\t\tconst promises = Object.entries(this.fields).map(\n\t\t\tasync ([key, field]) => {\n\t\t\t\tconst db_value = await field.getDatabaseValue(ctx, raw_values);\n\t\t\t\tif (db_value !== undefined) {\n\t\t\t\t\tresult[key] = db_value;\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tawait Promise.all(promises);\n\t\treturn result as ShapeToType<FieldsToShape<F>>;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2887dfe145fab5ea81b9b9fa91f3dd436d3f62e5"},"/home/kuba/projects/sealcode/sealgen/src/forms/form.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/form.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":22}},"4":{"start":{"line":7,"column":17},"end":{"line":7,"column":34}},"5":{"start":{"line":8,"column":17},"end":{"line":8,"column":56}},"6":{"start":{"line":9,"column":21},"end":{"line":9,"column":42}},"7":{"start":{"line":10,"column":24},"end":{"line":10,"column":58}},"8":{"start":{"line":11,"column":32},"end":{"line":11,"column":72}},"9":{"start":{"line":14,"column":8},"end":{"line":14,"column":28}},"10":{"start":{"line":15,"column":8},"end":{"line":15,"column":44}},"11":{"start":{"line":16,"column":8},"end":{"line":16,"column":41}},"12":{"start":{"line":17,"column":8},"end":{"line":17,"column":27}},"13":{"start":{"line":18,"column":8},"end":{"line":18,"column":29}},"14":{"start":{"line":19,"column":8},"end":{"line":19,"column":45}},"15":{"start":{"line":24,"column":8},"end":{"line":24,"column":48}},"16":{"start":{"line":27,"column":8},"end":{"line":27,"column":80}},"17":{"start":{"line":30,"column":8},"end":{"line":35,"column":6}},"18":{"start":{"line":38,"column":8},"end":{"line":48,"column":10}},"19":{"start":{"line":40,"column":38},"end":{"line":40,"column":64}},"20":{"start":{"line":44,"column":37},"end":{"line":44,"column":61}},"21":{"start":{"line":52,"column":8},"end":{"line":52,"column":18}},"22":{"start":{"line":55,"column":8},"end":{"line":55,"column":281}},"23":{"start":{"line":55,"column":188},"end":{"line":55,"column":205}},"24":{"start":{"line":58,"column":8},"end":{"line":58,"column":24}},"25":{"start":{"line":61,"column":25},"end":{"line":63,"column":66}},"26":{"start":{"line":64,"column":8},"end":{"line":71,"column":10}},"27":{"start":{"line":74,"column":28},"end":{"line":74,"column":55}},"28":{"start":{"line":75,"column":8},"end":{"line":78,"column":9}},"29":{"start":{"line":77,"column":12},"end":{"line":77,"column":42}},"30":{"start":{"line":79,"column":25},"end":{"line":79,"column":65}},"31":{"start":{"line":80,"column":8},"end":{"line":86,"column":10}},"32":{"start":{"line":89,"column":25},"end":{"line":91,"column":9}},"33":{"start":{"line":92,"column":8},"end":{"line":99,"column":10}},"34":{"start":{"line":102,"column":8},"end":{"line":102,"column":42}},"35":{"start":{"line":105,"column":27},"end":{"line":105,"column":59}},"36":{"start":{"line":106,"column":55},"end":{"line":106,"column":91}},"37":{"start":{"line":107,"column":8},"end":{"line":109,"column":9}},"38":{"start":{"line":108,"column":12},"end":{"line":108,"column":74}},"39":{"start":{"line":110,"column":8},"end":{"line":139,"column":9}},"40":{"start":{"line":111,"column":12},"end":{"line":111,"column":29}},"41":{"start":{"line":112,"column":27},"end":{"line":115,"column":14}},"42":{"start":{"line":116,"column":12},"end":{"line":119,"column":23}},"43":{"start":{"line":123,"column":12},"end":{"line":123,"column":41}},"44":{"start":{"line":124,"column":28},"end":{"line":129,"column":37}},"45":{"start":{"line":130,"column":12},"end":{"line":138,"column":18}},"46":{"start":{"line":142,"column":8},"end":{"line":153,"column":11}},"47":{"start":{"line":143,"column":27},"end":{"line":143,"column":52}},"48":{"start":{"line":144,"column":12},"end":{"line":151,"column":13}},"49":{"start":{"line":145,"column":16},"end":{"line":148,"column":19}},"50":{"start":{"line":149,"column":16},"end":{"line":149,"column":33}},"51":{"start":{"line":150,"column":16},"end":{"line":150,"column":23}},"52":{"start":{"line":152,"column":12},"end":{"line":152,"column":25}},"53":{"start":{"line":154,"column":8},"end":{"line":160,"column":11}},"54":{"start":{"line":155,"column":12},"end":{"line":155,"column":30}},"55":{"start":{"line":156,"column":12},"end":{"line":159,"column":45}},"56":{"start":{"line":161,"column":8},"end":{"line":171,"column":11}},"57":{"start":{"line":162,"column":29},"end":{"line":162,"column":55}},"58":{"start":{"line":163,"column":12},"end":{"line":170,"column":13}},"59":{"start":{"line":164,"column":16},"end":{"line":164,"column":33}},"60":{"start":{"line":165,"column":16},"end":{"line":165,"column":44}},"61":{"start":{"line":167,"column":17},"end":{"line":170,"column":13}},"62":{"start":{"line":168,"column":16},"end":{"line":168,"column":33}},"63":{"start":{"line":169,"column":16},"end":{"line":169,"column":43}},"64":{"start":{"line":172,"column":26},"end":{"line":172,"column":48}},"65":{"start":{"line":173,"column":8},"end":{"line":175,"column":9}},"66":{"start":{"line":174,"column":12},"end":{"line":174,"column":37}},"67":{"start":{"line":176,"column":8},"end":{"line":176,"column":73}},"68":{"start":{"line":179,"column":8},"end":{"line":179,"column":25}},"69":{"start":{"line":182,"column":0},"end":{"line":182,"column":20}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":18},"end":{"line":20,"column":5}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":23,"column":7},"end":{"line":25,"column":5}},"line":23},"3":{"name":"(anonymous_3)","decl":{"start":{"line":26,"column":4},"end":{"line":26,"column":5}},"loc":{"start":{"line":26,"column":32},"end":{"line":28,"column":5}},"line":26},"4":{"name":"(anonymous_4)","decl":{"start":{"line":29,"column":4},"end":{"line":29,"column":5}},"loc":{"start":{"line":29,"column":23},"end":{"line":36,"column":5}},"line":29},"5":{"name":"(anonymous_5)","decl":{"start":{"line":37,"column":4},"end":{"line":37,"column":5}},"loc":{"start":{"line":37,"column":47},"end":{"line":49,"column":5}},"line":37},"6":{"name":"(anonymous_6)","decl":{"start":{"line":40,"column":25},"end":{"line":40,"column":26}},"loc":{"start":{"line":40,"column":38},"end":{"line":40,"column":64}},"line":40},"7":{"name":"(anonymous_7)","decl":{"start":{"line":44,"column":24},"end":{"line":44,"column":25}},"loc":{"start":{"line":44,"column":37},"end":{"line":44,"column":61}},"line":44},"8":{"name":"(anonymous_8)","decl":{"start":{"line":51,"column":4},"end":{"line":51,"column":5}},"loc":{"start":{"line":51,"column":32},"end":{"line":53,"column":5}},"line":51},"9":{"name":"(anonymous_9)","decl":{"start":{"line":54,"column":4},"end":{"line":54,"column":5}},"loc":{"start":{"line":54,"column":25},"end":{"line":56,"column":5}},"line":54},"10":{"name":"(anonymous_10)","decl":{"start":{"line":55,"column":175},"end":{"line":55,"column":176}},"loc":{"start":{"line":55,"column":188},"end":{"line":55,"column":205}},"line":55},"11":{"name":"(anonymous_11)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":23},"end":{"line":59,"column":5}},"line":57},"12":{"name":"(anonymous_12)","decl":{"start":{"line":60,"column":4},"end":{"line":60,"column":5}},"loc":{"start":{"line":60,"column":61},"end":{"line":72,"column":5}},"line":60},"13":{"name":"(anonymous_13)","decl":{"start":{"line":73,"column":4},"end":{"line":73,"column":5}},"loc":{"start":{"line":73,"column":36},"end":{"line":87,"column":5}},"line":73},"14":{"name":"(anonymous_14)","decl":{"start":{"line":88,"column":4},"end":{"line":88,"column":5}},"loc":{"start":{"line":88,"column":46},"end":{"line":100,"column":5}},"line":88},"15":{"name":"(anonymous_15)","decl":{"start":{"line":101,"column":4},"end":{"line":101,"column":5}},"loc":{"start":{"line":101,"column":37},"end":{"line":103,"column":5}},"line":101},"16":{"name":"(anonymous_16)","decl":{"start":{"line":104,"column":4},"end":{"line":104,"column":5}},"loc":{"start":{"line":104,"column":26},"end":{"line":140,"column":5}},"line":104},"17":{"name":"(anonymous_17)","decl":{"start":{"line":141,"column":4},"end":{"line":141,"column":5}},"loc":{"start":{"line":141,"column":24},"end":{"line":177,"column":5}},"line":141},"18":{"name":"(anonymous_18)","decl":{"start":{"line":142,"column":25},"end":{"line":142,"column":26}},"loc":{"start":{"line":142,"column":46},"end":{"line":153,"column":9}},"line":142},"19":{"name":"(anonymous_19)","decl":{"start":{"line":154,"column":25},"end":{"line":154,"column":26}},"loc":{"start":{"line":154,"column":40},"end":{"line":160,"column":9}},"line":154},"20":{"name":"(anonymous_20)","decl":{"start":{"line":161,"column":26},"end":{"line":161,"column":27}},"loc":{"start":{"line":161,"column":41},"end":{"line":171,"column":9}},"line":161},"21":{"name":"(anonymous_21)","decl":{"start":{"line":178,"column":4},"end":{"line":178,"column":5}},"loc":{"start":{"line":178,"column":32},"end":{"line":180,"column":5}},"line":178}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":34,"column":5},"end":{"line":34,"column":49}},"type":"cond-expr","locations":[{"start":{"line":34,"column":20},"end":{"line":34,"column":44}},{"start":{"line":34,"column":47},"end":{"line":34,"column":49}}],"line":34},"4":{"loc":{"start":{"line":40,"column":5},"end":{"line":42,"column":16}},"type":"cond-expr","locations":[{"start":{"line":41,"column":14},"end":{"line":41,"column":44}},{"start":{"line":42,"column":14},"end":{"line":42,"column":16}}],"line":40},"5":{"loc":{"start":{"line":44,"column":5},"end":{"line":46,"column":37}},"type":"cond-expr","locations":[{"start":{"line":45,"column":14},"end":{"line":45,"column":16}},{"start":{"line":46,"column":14},"end":{"line":46,"column":37}}],"line":44},"6":{"loc":{"start":{"line":55,"column":211},"end":{"line":55,"column":252}},"type":"cond-expr","locations":[{"start":{"line":55,"column":227},"end":{"line":55,"column":229}},{"start":{"line":55,"column":232},"end":{"line":55,"column":252}}],"line":55},"7":{"loc":{"start":{"line":61,"column":25},"end":{"line":63,"column":66}},"type":"cond-expr","locations":[{"start":{"line":62,"column":14},"end":{"line":62,"column":27}},{"start":{"line":63,"column":14},"end":{"line":63,"column":66}}],"line":61},"8":{"loc":{"start":{"line":69,"column":15},"end":{"line":69,"column":42}},"type":"binary-expr","locations":[{"start":{"line":69,"column":15},"end":{"line":69,"column":34}},{"start":{"line":69,"column":38},"end":{"line":69,"column":42}}],"line":69},"9":{"loc":{"start":{"line":75,"column":8},"end":{"line":78,"column":9}},"type":"if","locations":[{"start":{"line":75,"column":8},"end":{"line":78,"column":9}},{"start":{"line":75,"column":8},"end":{"line":78,"column":9}}],"line":75},"10":{"loc":{"start":{"line":75,"column":12},"end":{"line":76,"column":91}},"type":"binary-expr","locations":[{"start":{"line":75,"column":12},"end":{"line":75,"column":72}},{"start":{"line":76,"column":12},"end":{"line":76,"column":91}}],"line":75},"11":{"loc":{"start":{"line":85,"column":15},"end":{"line":85,"column":42}},"type":"binary-expr","locations":[{"start":{"line":85,"column":15},"end":{"line":85,"column":34}},{"start":{"line":85,"column":38},"end":{"line":85,"column":42}}],"line":85},"12":{"loc":{"start":{"line":97,"column":15},"end":{"line":97,"column":43}},"type":"binary-expr","locations":[{"start":{"line":97,"column":15},"end":{"line":97,"column":34}},{"start":{"line":97,"column":38},"end":{"line":97,"column":43}}],"line":97},"13":{"loc":{"start":{"line":107,"column":8},"end":{"line":109,"column":9}},"type":"if","locations":[{"start":{"line":107,"column":8},"end":{"line":109,"column":9}},{"start":{"line":107,"column":8},"end":{"line":109,"column":9}}],"line":107},"14":{"loc":{"start":{"line":124,"column":28},"end":{"line":129,"column":37}},"type":"cond-expr","locations":[{"start":{"line":126,"column":18},"end":{"line":126,"column":28}},{"start":{"line":127,"column":18},"end":{"line":129,"column":37}}],"line":124},"15":{"loc":{"start":{"line":124,"column":28},"end":{"line":125,"column":95}},"type":"binary-expr","locations":[{"start":{"line":124,"column":28},"end":{"line":124,"column":84}},{"start":{"line":125,"column":16},"end":{"line":125,"column":95}}],"line":124},"16":{"loc":{"start":{"line":127,"column":18},"end":{"line":129,"column":37}},"type":"cond-expr","locations":[{"start":{"line":128,"column":22},"end":{"line":128,"column":23}},{"start":{"line":129,"column":22},"end":{"line":129,"column":37}}],"line":127},"17":{"loc":{"start":{"line":144,"column":12},"end":{"line":151,"column":13}},"type":"if","locations":[{"start":{"line":144,"column":12},"end":{"line":151,"column":13}},{"start":{"line":144,"column":12},"end":{"line":151,"column":13}}],"line":144},"18":{"loc":{"start":{"line":159,"column":15},"end":{"line":159,"column":43}},"type":"binary-expr","locations":[{"start":{"line":159,"column":15},"end":{"line":159,"column":34}},{"start":{"line":159,"column":38},"end":{"line":159,"column":43}}],"line":159},"19":{"loc":{"start":{"line":163,"column":12},"end":{"line":170,"column":13}},"type":"if","locations":[{"start":{"line":163,"column":12},"end":{"line":170,"column":13}},{"start":{"line":163,"column":12},"end":{"line":170,"column":13}}],"line":163},"20":{"loc":{"start":{"line":167,"column":17},"end":{"line":170,"column":13}},"type":"if","locations":[{"start":{"line":167,"column":17},"end":{"line":170,"column":13}},{"start":{"line":167,"column":17},"end":{"line":170,"column":13}}],"line":167}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":19,"10":19,"11":19,"12":19,"13":19,"14":19,"15":42,"16":0,"17":11,"18":42,"19":49,"20":49,"21":11,"22":11,"23":11,"24":11,"25":5,"26":5,"27":0,"28":0,"29":0,"30":0,"31":0,"32":11,"33":11,"34":11,"35":16,"36":16,"37":16,"38":5,"39":11,"40":11,"41":11,"42":11,"43":0,"44":0,"45":0,"46":7,"47":11,"48":11,"49":0,"50":0,"51":0,"52":11,"53":7,"54":5,"55":5,"56":7,"57":6,"58":6,"59":6,"60":6,"61":0,"62":0,"63":0,"64":7,"65":7,"66":7,"67":7,"68":17,"69":1},"f":{"0":1,"1":19,"2":42,"3":0,"4":11,"5":42,"6":49,"7":49,"8":11,"9":11,"10":11,"11":11,"12":5,"13":0,"14":11,"15":11,"16":16,"17":7,"18":11,"19":5,"20":6,"21":17},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[11,0],"4":[42,0],"5":[0,42],"6":[11,0],"7":[1,4],"8":[5,5],"9":[0,0],"10":[0,0],"11":[0,0],"12":[11,11],"13":[5,11],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,11],"18":[5,5],"19":[6,0],"20":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/form.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/form.ts"],"names":[],"mappings":";;;;;;AACA,mCAAoC;AAEpC,yDAAiC;AACjC,2CAAyD;AACzD,2DAKiC;AAEjC,yEAIuC;AA6BvC,MAAsB,IAGpB,SAAQ,2CAAsB;IAHhC;;QAIC,0BAAqB,GAAG,MAAM,CAAC;QAC/B,qBAAgB,GAAG,QAAQ,CAAC;QAC5B,WAAM,GAAG,IAAI,CAAC;QACd,aAAQ,GAAG,IAAI,CAAC;QAChB,YAAO,GAAG,mBAAU,EAAE,CAAC;IAgPxB,CAAC;IA9OA,KAAK,CAAC,SAAS;IACd,6DAA6D;IAC7D,CAAU;QAEV,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,CAAU,EACV,KAAuB;QAEvB,OAAO,uBAAU,CAAA,UAAU,CAAC,QAAQ,KAAK,CAAC,OAAO,QAAQ,CAAC;IAC3D,CAAC;IAED,gBAAgB;QACf,OAAO,UAAU,CAAC;;YAER,IAAI,CAAC,gBAAgB;iBAChB,IAAI,CAAC,MAAM;KACvB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE;KAC5C,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACX,GAAY,EACZ,IAAc,EACd,iBAA0B;QAE1B,OAAO,uBAAU,CAAA,UAAU,CAAC;KACzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;KACzB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;YAChC,CAAC,CAAC,EAAE;KACH,IAAI,CAAC,cAAc,CACpB,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,iBAAiB,CAAC,CACzD;KACC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;YAC1D,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE;KACxB,IAAI,CAAC,gBAAgB,EAAE;SACnB,CAAC;IACT,CAAC;IAED,6DAA6D;IACtD,KAAK,CAAC,eAAe,CAAC,IAAa;QACzC,OAAO,EAAE,CAAC;IACX,CAAC;IAEM,eAAe,CAAC,GAAY;QAClC,OAAO,uBAAU,CAAA,yDAChB,IAAI,CAAC,OACN,aAAa,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,CACjE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAC9B,KACA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBACtB,4BAA4B,CAAC;IAC9B,CAAC;IAEM,gBAAgB;QACtB,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,eAAe,CAC3B,GAAY,EACZ,aAA4B,EAC5B,aAAoD;QAEpD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM;YACpC,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,CAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;QAC/D,OAAO;YACN,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CACzB,GAAG,EACH;gBACC,UAAU,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;gBAC5C,QAAQ;aACR,EACD,mBAAmB,IAAI,IAAI,CAC3B;YACD,QAAQ;SACR,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CACnB,GAAY,EACZ,IAAc,EACd,KAAc;QAEd,IAAI,aAAa,GAAG,2BAA2B,CAAC;QAChD,IACC,kBAAE,CAAC,KAAK,EAAE,0BAAU,CAAC,MAAM,CAAC;YAC5B,wBAAQ,CAAC,EAAE,OAAO,EAAE,0BAAU,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,EAC9C;YACD,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;SAC9B;QACD,MAAM,QAAQ,GAAG,CAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QACjE,OAAO;YACN,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CACzB,GAAG,EACH;gBACC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ;aACR,EACD,mBAAmB,IAAI,IAAI,CAC3B;SACD,CAAC;IACH,CAAC;IAOM,KAAK,CAAC,SAAS,CACrB,GAAY,EACZ,IAAc,EACd,aAA2B;QAE3B,MAAM,QAAQ,GAAG;YACT,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE;SAC5D,CAAC;QACF,OAAO;YACN,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CACzB,GAAG,EACH;gBACC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ;aACR,EACD,mBAAmB,IAAI,KAAK,CAC5B;YACD,QAAQ;SACR,CAAC;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,GAAY;QACvC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAY;QAC5B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CACjE,GAAG,EACH,UAAU,CACV,CAAC;QACF,IAAI,CAAC,KAAK,EAAE;YACX,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;SAC9D;QACD,IAAI;YACH,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACvC,UAAU;gBACV,QAAQ,EAAE,EAAE;aACZ,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CACpB,GAAG,EACH;gBACC,UAAU,EAAE,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;gBACjD,QAAQ,EAAE,EAAE;aACZ,EACD,MAAM,CACN,CAAC;SACF;QAAC,OAAO,CAAU,EAAE;YACpB,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7B,MAAM,OAAO,GACZ,kBAAE,CAAC,CAAC,EAAE,0BAAU,CAAC,MAAM,CAAC;gBACxB,8BAAc,CAAC,CAAC,EAAE,SAAS,EAAE,0BAAU,CAAC,MAAM,CAAC;gBAC9C,CAAC,CAAC,CAAC,EAAE,OAAO;gBACZ,CAAC,CAAC,kBAAE,CAAC,CAAC,EAAE,0BAAU,CAAC,MAAM,CAAC;oBAC1B,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,eAAe,CAAC;YAEpB,OAAO,IAAI,CAAC,OAAO,CAClB,GAAG,EACH;gBACC,UAAU;gBACV,QAAQ,EAAE;oBACT;wBACC,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,OAAO;qBACb;iBACD;aACD,EACD,CAAC,CACD,CAAC;SACF;IACF,CAAC;IAEM,KAAK,CAAC,MAAc,EAAE,IAAY;QACxC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACtB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;oBAChC,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,MAAM,CAAC,OAAO;iBACvB,CAAC,CAAC;gBACH,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;gBACjB,OAAO;aACP;YACD,MAAM,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC9B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC;YAClB,GAAG,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAC3B,GAAG,EACH;gBACC,UAAU,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;gBAC5C,QAAQ,EAAE,EAAE;aACZ,EACD,mBAAmB,IAAI,KAAK,CAC5B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,QAAQ,CAAC,MAAM,IAAI,MAAM,EAAE;gBAC9B,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;gBACjB,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC;aAC5B;iBAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,UAAU,EAAE;gBACzC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;gBACjB,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aAC3B;QACF,CAAC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,gBAAM,EAAE,CAAC,CAAC,uEAAuE;QACvG,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACzB;QAED,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,GAAY;QAEZ,OAAO,GAAG,CAAC,KAAK,CAAC;IAClB,CAAC;CACD;AAxPD,oBAwPC","sourcesContent":["import { Context } from \"koa\";\nimport { randomUUID } from \"crypto\";\nimport { File as SealiousFile } from \"sealious\";\nimport Router from \"@koa/router\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport {\n\thasFieldOfType,\n\thasShape,\n\tis,\n\tpredicates,\n} from \"@sealcode/ts-predicates\";\nimport { FormField } from \"./fields/field\";\nimport {\n\tFields,\n\tMountableWithFields,\n\tPageErrorMessage,\n} from \"../page/mountable-with-fields\";\n\nexport type FormDataPrimitive = string | string[] | number | undefined;\nexport type FormDataValue =\n\t| FormDataPrimitive\n\t| Record<string, FormDataPrimitive>\n\t| SealiousFile;\n\nexport type FieldValueType<F extends FormField> = F extends FormField<infer R>\n\t? R\n\t: never;\n\nexport type FormFieldsToValues<\n\tF extends Record<string, FormField<boolean, keyof F>>\n> = {\n\t[Property in keyof F]: FieldValueType<F[Property]>;\n};\n\nexport type FormMessage = { type: \"info\" | \"success\" | \"error\"; text: string };\n\nexport type FormData<Fieldnames extends string = string> = {\n\traw_values: Record<Fieldnames, FormDataValue>;\n\tmessages: FormMessage[];\n};\n\nexport type FormReaction =\n\t| { action: \"stay\"; content: FlatTemplatable; messages?: FormMessage[] }\n\t| { action: \"redirect\"; url: string; messages?: FormMessage[] };\n\nexport abstract class Form<\n\tF extends Fields,\n\tSubmitResult extends any\n> extends MountableWithFields<F> {\n\tdefaultSuccessMessage = \"Done\";\n\tsubmitButtonText = \"Wyślij\";\n\taction = \"./\";\n\tuseTurbo = true;\n\tform_id = randomUUID();\n\n\tasync canAccess(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t_: Context\n\t): Promise<{ canAccess: boolean; message: string }> {\n\t\treturn { canAccess: true, message: \"\" };\n\t}\n\n\tasync renderError(\n\t\t_: Context,\n\t\terror: PageErrorMessage\n\t): Promise<FlatTemplatable> {\n\t\treturn tempstream/* HTML */ `<div>${error.message}</div>`;\n\t}\n\n\tmakeSubmitButton(): FlatTemplatable {\n\t\treturn /* HTML */ `<input\n\t\t\ttype=\"submit\"\n\t\t\tvalue=\"${this.submitButtonText}\"\n\t\t\tformaction=\"${this.action}\"\n\t\t\t${this.form_id ? `form=\"${this.form_id}\"` : \"\"}\n\t\t/>`;\n\t}\n\n\tasync render(\n\t\tctx: Context,\n\t\tdata: FormData,\n\t\tshow_field_errors: boolean\n\t): Promise<FlatTemplatable> {\n\t\treturn tempstream/* HTML */ `<div class=\"form-container\">\n\t\t\t${this.makeOpenFormTag(ctx)}\n\t\t\t${!this.controls.some((control) => control.role == \"messages\")\n\t\t\t\t? this.renderMessages(ctx, data)\n\t\t\t\t: \"\"}\n\t\t\t${this.renderControls(\n\t\t\t\tthis.makeFormControlContext(ctx, data, show_field_errors)\n\t\t\t)}\n\t\t\t${this.controls.some((control) => control.role == \"submit\")\n\t\t\t\t? \"\"\n\t\t\t\t: this.makeSubmitButton()}\n\t\t\t${this.makeCloseFormTag()}\n\t\t</div>`;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tpublic async makeFormClasses(_ctx: Context): Promise<string[]> {\n\t\treturn [];\n\t}\n\n\tpublic makeOpenFormTag(ctx: Context): FlatTemplatable {\n\t\treturn tempstream`<form enctype=\"multipart/form-data\" method=\"POST\" id=\"${\n\t\t\tthis.form_id\n\t\t}\" action=\"${this.action}\" class=\"${this.makeFormClasses(ctx).then(\n\t\t\t(classes) => classes.join(\" \")\n\t\t)}\" ${\n\t\t\tthis.useTurbo ? \"\" : `data-turbo=\"false\"`\n\t\t}></form><div class=\"form\">`;\n\t}\n\n\tpublic makeCloseFormTag(): FlatTemplatable {\n\t\treturn `</div>`;\n\t}\n\n\tpublic async onValuesInvalid(\n\t\tctx: Context,\n\t\tform_messages: FormMessage[],\n\t\t_field_errors: Partial<Record<keyof Fields, string>>\n\t): Promise<FormReaction> {\n\t\tconst messages = form_messages.length\n\t\t\t? form_messages\n\t\t\t: [<const>{ type: \"error\", text: \"Some fields are invalid\" }];\n\t\treturn {\n\t\t\taction: \"stay\",\n\t\t\tcontent: await this.render(\n\t\t\t\tctx,\n\t\t\t\t{\n\t\t\t\t\traw_values: await this.extractRawValues(ctx),\n\t\t\t\t\tmessages,\n\t\t\t\t},\n\t\t\t\t\"show_field_errors\" && true\n\t\t\t),\n\t\t\tmessages,\n\t\t};\n\t}\n\n\tpublic async onError(\n\t\tctx: Context,\n\t\tdata: FormData,\n\t\terror: unknown\n\t): Promise<FormReaction> {\n\t\tlet error_message = \"Unknown error has occured\";\n\t\tif (\n\t\t\tis(error, predicates.object) &&\n\t\t\thasShape({ message: predicates.string }, error)\n\t\t) {\n\t\t\terror_message = error.message;\n\t\t}\n\t\tconst messages = [<const>{ type: \"error\", text: error_message }];\n\t\treturn {\n\t\t\taction: \"stay\",\n\t\t\tcontent: await this.render(\n\t\t\t\tctx,\n\t\t\t\t{\n\t\t\t\t\traw_values: data.raw_values,\n\t\t\t\t\tmessages,\n\t\t\t\t},\n\t\t\t\t\"show_field_errors\" && true\n\t\t\t),\n\t\t};\n\t}\n\n\tpublic abstract onSubmit(\n\t\tctx: Context,\n\t\tdata: FormData\n\t): SubmitResult | Promise<SubmitResult>;\n\n\tpublic async onSuccess(\n\t\tctx: Context,\n\t\tdata: FormData,\n\t\t_submitResult: SubmitResult\n\t): Promise<FormReaction> {\n\t\tconst messages = [\n\t\t\t<const>{ type: \"success\", text: this.defaultSuccessMessage },\n\t\t];\n\t\treturn {\n\t\t\taction: \"stay\",\n\t\t\tcontent: await this.render(\n\t\t\t\tctx,\n\t\t\t\t{\n\t\t\t\t\traw_values: data.raw_values,\n\t\t\t\t\tmessages,\n\t\t\t\t},\n\t\t\t\t\"show_field_errors\" && false\n\t\t\t),\n\t\t\tmessages,\n\t\t};\n\t}\n\n\tasync getRawValuesOnSuccess(ctx: Context) {\n\t\treturn this.extractRawValues(ctx);\n\t}\n\n\tasync handlePost(ctx: Context): Promise<FormReaction> {\n\t\tconst raw_values = await this.extractRawValues(ctx);\n\t\tconst { valid, form_messages, field_errors } = await this.validate(\n\t\t\tctx,\n\t\t\traw_values\n\t\t);\n\t\tif (!valid) {\n\t\t\treturn this.onValuesInvalid(ctx, form_messages, field_errors);\n\t\t}\n\t\ttry {\n\t\t\tctx.status = 303;\n\t\t\tconst result = await this.onSubmit(ctx, {\n\t\t\t\traw_values,\n\t\t\t\tmessages: [],\n\t\t\t});\n\t\t\treturn this.onSuccess(\n\t\t\t\tctx,\n\t\t\t\t{\n\t\t\t\t\traw_values: await this.getRawValuesOnSuccess(ctx),\n\t\t\t\t\tmessages: [],\n\t\t\t\t},\n\t\t\t\tresult\n\t\t\t);\n\t\t} catch (e: unknown) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.dir(e, { depth: 5 });\n\t\t\tconst message =\n\t\t\t\tis(e, predicates.object) &&\n\t\t\t\thasFieldOfType(e, \"message\", predicates.string)\n\t\t\t\t\t? e?.message\n\t\t\t\t\t: is(e, predicates.string)\n\t\t\t\t\t? e\n\t\t\t\t\t: \"Wystąpił błąd\";\n\n\t\t\treturn this.onError(\n\t\t\t\tctx,\n\t\t\t\t{\n\t\t\t\t\traw_values,\n\t\t\t\t\tmessages: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\ttext: message,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\te\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic mount(router: Router, path: string): void {\n\t\trouter.use(path, async (ctx, next) => {\n\t\t\tconst result = await this.canAccess(ctx);\n\t\t\tif (!result.canAccess) {\n\t\t\t\tctx.body = this.renderError(ctx, {\n\t\t\t\t\ttype: \"access\",\n\t\t\t\t\tmessage: result.message,\n\t\t\t\t});\n\t\t\t\tctx.status = 403;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait next();\n\t\t});\n\t\trouter.get(path, async (ctx) => {\n\t\t\tctx.type = \"html\";\n\t\t\tctx.body = await this.render(\n\t\t\t\tctx,\n\t\t\t\t{\n\t\t\t\t\traw_values: await this.extractRawValues(ctx),\n\t\t\t\t\tmessages: [],\n\t\t\t\t},\n\t\t\t\t\"show_field_errors\" && false\n\t\t\t);\n\t\t});\n\t\trouter.post(path, async (ctx) => {\n\t\t\tconst reaction = await this.handlePost(ctx);\n\t\t\tif (reaction.action == \"stay\") {\n\t\t\t\tctx.status = 422;\n\t\t\t\tctx.body = reaction.content;\n\t\t\t} else if (reaction.action == \"redirect\") {\n\t\t\t\tctx.status = 303;\n\t\t\t\tctx.redirect(reaction.url);\n\t\t\t}\n\t\t});\n\t\tconst subrouter = new Router(); // for use with other subroutes that individual controls might register\n\t\tfor (const control of this.controls) {\n\t\t\tcontrol.mount(subrouter);\n\t\t}\n\n\t\trouter.use(path, subrouter.routes(), subrouter.allowedMethods());\n\t}\n\n\tasync extractRawValues(\n\t\tctx: Context\n\t): Promise<Record<string, FormDataValue>> {\n\t\treturn ctx.$body;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b356ab9ea79282901c6bd212ade19f1921f73843"},"/home/kuba/projects/sealcode/sealgen/src/page/props-parser.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/page/props-parser.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":58}},"4":{"start":{"line":7,"column":16},"end":{"line":7,"column":49}},"5":{"start":{"line":13,"column":23},"end":{"line":13,"column":25}},"6":{"start":{"line":14,"column":8},"end":{"line":14,"column":71}},"7":{"start":{"line":15,"column":8},"end":{"line":15,"column":22}},"8":{"start":{"line":18,"column":0},"end":{"line":18,"column":42}},"9":{"start":{"line":21,"column":8},"end":{"line":21,"column":25}},"10":{"start":{"line":24,"column":8},"end":{"line":24,"column":21}},"11":{"start":{"line":27,"column":8},"end":{"line":27,"column":25}},"12":{"start":{"line":30,"column":0},"end":{"line":30,"column":40}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":34},"end":{"line":16,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":16},"end":{"line":22,"column":5}},"line":20},"3":{"name":"(anonymous_3)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":18},"end":{"line":25,"column":5}},"line":23},"4":{"name":"(anonymous_4)","decl":{"start":{"line":26,"column":4},"end":{"line":26,"column":5}},"loc":{"start":{"line":26,"column":32},"end":{"line":28,"column":5}},"line":26}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":1,"9":0,"10":0,"11":0,"12":1},"f":{"0":1,"1":0,"2":0,"3":0,"4":0},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/page/props-parser.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/page/props-parser.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAM1B,+EAA+E;AAC/E,8EAA8E;AAC9E,qDAAqD;AAErD,MAAsB,eAAe;IAKpC,aAAa,CAAC,GAAY,EAAE,SAA6B;QACxD,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,eAAK,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC;IACf,CAAC;CACD;AAVD,0CAUC;AAED,MAAa,cAEX,SAAQ,eAA0B;IACnC,MAAM,CAAC,GAAY;QAClB,OAAO,GAAG,CAAC,KAAK,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAgB;QACtB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,SAAiB;QACjC,OAAO,SAAS,CAAC;IAClB,CAAC;CACD;AAdD,wCAcC","sourcesContent":["import { Context } from \"koa\";\nimport merge from \"merge\";\nimport { FormData, FormDataValue } from \"..\";\nimport { BasePageProps } from \"./list\";\n\nexport type EncodedProps = Record<string, unknown>;\n\n// page props parser is only tasked with getting the raw props from *somewhere*\n// and being able to put new values back to that somewhere. Parsing to numbers\n// or any other exotic types is done by fields logic.\n\nexport abstract class PagePropsParser<PropsType> {\n\tabstract decode(ctx: Context): Record<string, FormDataValue>;\n\tabstract encode(props: Record<string, FormData>): EncodedProps;\n\tabstract getHTMLInputName(prop_name: string): string;\n\n\toverwriteProp(ctx: Context, new_props: Partial<PropsType>): EncodedProps {\n\t\tconst result = {};\n\t\tmerge.recursive(result, this.decode(ctx), new_props);\n\t\treturn result;\n\t}\n}\n\nexport class AllQueryParams<\n\tPropsType extends BasePageProps\n> extends PagePropsParser<PropsType> {\n\tdecode(ctx: Context): Record<string, FormDataValue> {\n\t\treturn ctx.query;\n\t}\n\n\tencode(props: PropsType): Record<string, unknown> {\n\t\treturn props;\n\t}\n\n\tgetHTMLInputName(prop_name: string): string {\n\t\treturn prop_name;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0a2ca60089190adeeaf7104d6ef698bf1c3f2482"},"/home/kuba/projects/sealcode/sealgen/src/utils/utils.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/utils.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":8,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"2":{"start":{"line":3,"column":26},"end":{"line":3,"column":33}},"3":{"start":{"line":4,"column":4},"end":{"line":4,"column":89}},"4":{"start":{"line":4,"column":71},"end":{"line":4,"column":83}},"5":{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},"6":{"start":{"line":6,"column":26},"end":{"line":6,"column":33}},"7":{"start":{"line":7,"column":4},"end":{"line":7,"column":17}},"8":{"start":{"line":9,"column":19},"end":{"line":11,"column":1}},"9":{"start":{"line":10,"column":4},"end":{"line":10,"column":126}},"10":{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},"11":{"start":{"line":10,"column":95},"end":{"line":10,"column":126}},"12":{"start":{"line":12,"column":0},"end":{"line":12,"column":62}},"13":{"start":{"line":13,"column":0},"end":{"line":13,"column":209}},"14":{"start":{"line":14,"column":14},"end":{"line":14,"column":32}},"15":{"start":{"line":15,"column":0},"end":{"line":15,"column":106}},"16":{"start":{"line":15,"column":79},"end":{"line":15,"column":100}},"17":{"start":{"line":16,"column":24},"end":{"line":16,"column":52}},"18":{"start":{"line":17,"column":0},"end":{"line":17,"column":134}},"19":{"start":{"line":17,"column":88},"end":{"line":17,"column":128}},"20":{"start":{"line":18,"column":28},"end":{"line":18,"column":60}},"21":{"start":{"line":19,"column":0},"end":{"line":19,"column":142}},"22":{"start":{"line":19,"column":90},"end":{"line":19,"column":136}},"23":{"start":{"line":20,"column":13},"end":{"line":20,"column":30}},"24":{"start":{"line":21,"column":0},"end":{"line":21,"column":103}},"25":{"start":{"line":21,"column":78},"end":{"line":21,"column":97}},"26":{"start":{"line":22,"column":20},"end":{"line":22,"column":44}},"27":{"start":{"line":23,"column":0},"end":{"line":23,"column":122}},"28":{"start":{"line":23,"column":84},"end":{"line":23,"column":116}},"29":{"start":{"line":24,"column":0},"end":{"line":24,"column":132}},"30":{"start":{"line":24,"column":89},"end":{"line":24,"column":126}},"31":{"start":{"line":25,"column":25},"end":{"line":25,"column":54}},"32":{"start":{"line":26,"column":0},"end":{"line":26,"column":137}},"33":{"start":{"line":26,"column":89},"end":{"line":26,"column":131}},"34":{"start":{"line":27,"column":13},"end":{"line":27,"column":30}},"35":{"start":{"line":28,"column":0},"end":{"line":28,"column":109}},"36":{"start":{"line":28,"column":81},"end":{"line":28,"column":103}},"37":{"start":{"line":29,"column":22},"end":{"line":29,"column":48}},"38":{"start":{"line":30,"column":0},"end":{"line":30,"column":138}},"39":{"start":{"line":30,"column":91},"end":{"line":30,"column":132}},"40":{"start":{"line":31,"column":0},"end":{"line":31,"column":46}},"41":{"start":{"line":32,"column":0},"end":{"line":32,"column":54}},"42":{"start":{"line":33,"column":0},"end":{"line":33,"column":56}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":74},"end":{"line":2,"column":75}},"loc":{"start":{"line":2,"column":96},"end":{"line":5,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":58},"end":{"line":4,"column":59}},"loc":{"start":{"line":4,"column":69},"end":{"line":4,"column":85}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":5,"column":6},"end":{"line":5,"column":7}},"loc":{"start":{"line":5,"column":28},"end":{"line":8,"column":1}},"line":5},"3":{"name":"(anonymous_3)","decl":{"start":{"line":9,"column":50},"end":{"line":9,"column":51}},"loc":{"start":{"line":9,"column":71},"end":{"line":11,"column":1}},"line":9},"4":{"name":"(anonymous_4)","decl":{"start":{"line":15,"column":65},"end":{"line":15,"column":66}},"loc":{"start":{"line":15,"column":77},"end":{"line":15,"column":102}},"line":15},"5":{"name":"(anonymous_5)","decl":{"start":{"line":17,"column":74},"end":{"line":17,"column":75}},"loc":{"start":{"line":17,"column":86},"end":{"line":17,"column":130}},"line":17},"6":{"name":"(anonymous_6)","decl":{"start":{"line":19,"column":76},"end":{"line":19,"column":77}},"loc":{"start":{"line":19,"column":88},"end":{"line":19,"column":138}},"line":19},"7":{"name":"(anonymous_7)","decl":{"start":{"line":21,"column":64},"end":{"line":21,"column":65}},"loc":{"start":{"line":21,"column":76},"end":{"line":21,"column":99}},"line":21},"8":{"name":"(anonymous_8)","decl":{"start":{"line":23,"column":70},"end":{"line":23,"column":71}},"loc":{"start":{"line":23,"column":82},"end":{"line":23,"column":118}},"line":23},"9":{"name":"(anonymous_9)","decl":{"start":{"line":24,"column":75},"end":{"line":24,"column":76}},"loc":{"start":{"line":24,"column":87},"end":{"line":24,"column":128}},"line":24},"10":{"name":"(anonymous_10)","decl":{"start":{"line":26,"column":75},"end":{"line":26,"column":76}},"loc":{"start":{"line":26,"column":87},"end":{"line":26,"column":133}},"line":26},"11":{"name":"(anonymous_11)","decl":{"start":{"line":28,"column":67},"end":{"line":28,"column":68}},"loc":{"start":{"line":28,"column":79},"end":{"line":28,"column":105}},"line":28},"12":{"name":"(anonymous_12)","decl":{"start":{"line":30,"column":77},"end":{"line":30,"column":78}},"loc":{"start":{"line":30,"column":89},"end":{"line":30,"column":134}},"line":30}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":8,"column":3}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":57},"end":{"line":8,"column":2}}],"line":2},"1":{"loc":{"start":{"line":2,"column":57},"end":{"line":8,"column":2}},"type":"cond-expr","locations":[{"start":{"line":2,"column":74},"end":{"line":5,"column":1}},{"start":{"line":5,"column":6},"end":{"line":8,"column":1}}],"line":2},"2":{"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"type":"if","locations":[{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},{"start":{"line":3,"column":4},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},"type":"if","locations":[{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},{"start":{"line":6,"column":4},"end":{"line":6,"column":33}}],"line":6},"4":{"loc":{"start":{"line":9,"column":19},"end":{"line":11,"column":1}},"type":"binary-expr","locations":[{"start":{"line":9,"column":20},"end":{"line":9,"column":24}},{"start":{"line":9,"column":28},"end":{"line":9,"column":45}},{"start":{"line":9,"column":50},"end":{"line":11,"column":1}}],"line":9},"5":{"loc":{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},"type":"if","locations":[{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},{"start":{"line":10,"column":21},"end":{"line":10,"column":126}}],"line":10},"6":{"loc":{"start":{"line":10,"column":25},"end":{"line":10,"column":93}},"type":"binary-expr","locations":[{"start":{"line":10,"column":25},"end":{"line":10,"column":40}},{"start":{"line":10,"column":44},"end":{"line":10,"column":93}}],"line":10}},"s":{"0":1,"1":3,"2":3,"3":3,"4":0,"5":0,"6":0,"7":0,"8":1,"9":3,"10":3,"11":3,"12":1,"13":1,"14":1,"15":1,"16":0,"17":1,"18":1,"19":0,"20":1,"21":1,"22":0,"23":1,"24":1,"25":0,"26":1,"27":1,"28":0,"29":1,"30":0,"31":1,"32":1,"33":0,"34":1,"35":1,"36":0,"37":1,"38":1,"39":11,"40":1,"41":1,"42":1},"f":{"0":3,"1":0,"2":0,"3":3,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":11},"b":{"0":[1,1,1],"1":[1,0],"2":[3,0],"3":[0,0],"4":[1,1,1],"5":[3,0],"6":[3,3]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/utils.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAGA,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,6DAAyD;AAAhD,uHAAA,gBAAgB,OAAA;AACzB,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,6CAA4D;AAAnD,yGAAA,UAAU,OAAA;AAAE,8GAAA,eAAe,OAAA;AACpC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,+BAAiC;AAAxB,+FAAA,OAAO,OAAA;AAChB,iDAAoD;AAA3C,kHAAA,iBAAiB,OAAA;AAC1B,8CAA4B;AAC5B,sDAAoC;AACpC,wDAAsC","sourcesContent":["export type Awaited<T> = T extends Promise<infer U> ? U : T;\nexport type UnwrapArray<T> = T extends Array<infer U> ? U : T;\n\nexport { sleep } from \"./sleep\";\nexport { naturalNumbers } from \"./natural-numbers\";\nexport { UrlWithNewParams } from \"./url-with-new-params\";\nexport { exec } from \"./exec\";\nexport { importPath, curryImportPath } from \"./import-path\";\nexport { listCollections } from \"./list-collections\";\nexport { walkDir } from \"./walk\";\nexport { assertThrowsAsync } from \"./assert-throws\";\nexport * from \"./make-slug\";\nexport * from \"./render-attributes\";\nexport * from \"./format-external-url\";\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ea211cda3fda6f2a64e0cc72ddaa06c5de2fbd8c"},"/home/kuba/projects/sealcode/sealgen/src/utils/sleep.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/sleep.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":23}},"2":{"start":{"line":5,"column":4},"end":{"line":5,"column":63}},"3":{"start":{"line":5,"column":36},"end":{"line":5,"column":61}},"4":{"start":{"line":7,"column":0},"end":{"line":7,"column":22}}},"fnMap":{"0":{"name":"sleep","decl":{"start":{"line":4,"column":15},"end":{"line":4,"column":20}},"loc":{"start":{"line":4,"column":27},"end":{"line":6,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":23},"end":{"line":5,"column":24}},"loc":{"start":{"line":5,"column":36},"end":{"line":5,"column":61}},"line":5}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1},"f":{"0":1,"1":1},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/sleep.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/sleep.ts"],"names":[],"mappings":";;;AAAO,KAAK,UAAU,KAAK,CAAC,IAAY;IACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAFD,sBAEC","sourcesContent":["export async function sleep(time: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, time));\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"51196fce2c244784388c355e0c8e1028fc9c6eb7"},"/home/kuba/projects/sealcode/sealgen/src/utils/natural-numbers.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/natural-numbers.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":32}},"2":{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":20}},"4":{"start":{"line":6,"column":8},"end":{"line":6,"column":16}},"5":{"start":{"line":9,"column":0},"end":{"line":9,"column":40}}},"fnMap":{"0":{"name":"naturalNumbers","decl":{"start":{"line":4,"column":10},"end":{"line":4,"column":24}},"loc":{"start":{"line":4,"column":35},"end":{"line":8,"column":1}},"line":4}},"branchMap":{},"s":{"0":1,"1":1,"2":0,"3":0,"4":0,"5":1},"f":{"0":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/natural-numbers.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/natural-numbers.ts"],"names":[],"mappings":";;;AAAA,QAAe,CAAC,CAAC,cAAc,CAAC,GAAW,EAAE,GAAW;IACvD,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,CAAC,CAAC;KACR;AACF,CAAC;AAJD,wCAIC","sourcesContent":["export function* naturalNumbers(min: number, max: number) {\n\tfor (let i = min; i <= max; i++) {\n\t\tyield i;\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"99edecf4a069e5342a1fd9adc64ea2b31bcb6619"},"/home/kuba/projects/sealcode/sealgen/src/utils/url-with-new-params.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/url-with-new-params.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":34}},"4":{"start":{"line":7,"column":13},"end":{"line":7,"column":43}},"5":{"start":{"line":9,"column":4},"end":{"line":9,"column":65}},"6":{"start":{"line":11,"column":0},"end":{"line":11,"column":44}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"UrlWithNewParams","decl":{"start":{"line":8,"column":9},"end":{"line":8,"column":25}},"loc":{"start":{"line":8,"column":45},"end":{"line":10,"column":1}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":1},"f":{"0":1,"1":0},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/url-with-new-params.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/url-with-new-params.ts"],"names":[],"mappings":";;;;;;AACA,4CAAoB;AAEpB,SAAgB,gBAAgB,CAC/B,GAAY,EACZ,YAAqC;IAErC,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,YAAE,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;AACpD,CAAC;AALD,4CAKC","sourcesContent":["import { Context } from \"koa\";\nimport qs from \"qs\";\n\nexport function UrlWithNewParams(\n\tctx: Context,\n\tquery_params: Record<string, unknown>\n): string {\n\treturn `${ctx.path}?${qs.stringify(query_params)}`;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d01ebe3b13046eb2c9691b46a2b56528c538c2d0"},"/home/kuba/projects/sealcode/sealgen/src/utils/exec.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/exec.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":22}},"2":{"start":{"line":5,"column":24},"end":{"line":5,"column":48}},"3":{"start":{"line":7,"column":4},"end":{"line":23,"column":7}},"4":{"start":{"line":8,"column":21},"end":{"line":8,"column":23}},"5":{"start":{"line":9,"column":21},"end":{"line":9,"column":23}},"6":{"start":{"line":10,"column":24},"end":{"line":10,"column":60}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":73}},"8":{"start":{"line":11,"column":45},"end":{"line":11,"column":70}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":73}},"10":{"start":{"line":12,"column":45},"end":{"line":12,"column":70}},"11":{"start":{"line":13,"column":8},"end":{"line":22,"column":11}},"12":{"start":{"line":14,"column":12},"end":{"line":21,"column":13}},"13":{"start":{"line":15,"column":16},"end":{"line":15,"column":54}},"14":{"start":{"line":18,"column":16},"end":{"line":18,"column":60}},"15":{"start":{"line":19,"column":16},"end":{"line":19,"column":38}},"16":{"start":{"line":20,"column":16},"end":{"line":20,"column":53}},"17":{"start":{"line":25,"column":0},"end":{"line":25,"column":20}}},"fnMap":{"0":{"name":"exec","decl":{"start":{"line":6,"column":15},"end":{"line":6,"column":19}},"loc":{"start":{"line":6,"column":35},"end":{"line":24,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":23},"end":{"line":7,"column":24}},"loc":{"start":{"line":7,"column":44},"end":{"line":23,"column":5}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":11,"column":34},"end":{"line":11,"column":35}},"loc":{"start":{"line":11,"column":45},"end":{"line":11,"column":70}},"line":11},"3":{"name":"(anonymous_3)","decl":{"start":{"line":12,"column":34},"end":{"line":12,"column":35}},"loc":{"start":{"line":12,"column":45},"end":{"line":12,"column":70}},"line":12},"4":{"name":"(anonymous_4)","decl":{"start":{"line":13,"column":28},"end":{"line":13,"column":29}},"loc":{"start":{"line":13,"column":42},"end":{"line":22,"column":9}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":12},"end":{"line":21,"column":13}},"type":"if","locations":[{"start":{"line":14,"column":12},"end":{"line":21,"column":13}},{"start":{"line":14,"column":12},"end":{"line":21,"column":13}}],"line":14}},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/exec.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/exec.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,iDAAsC;AAE/B,KAAK,UAAU,IAAI,CACzB,OAAe,EACf,IAAc;IAEd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,qBAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,MAAM,CAAC,EAAE,CAChB,MAAM,EACN,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAC7C,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,EAAE,CAChB,MAAM,EACN,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAC7C,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,QAAQ,KAAK,CAAC,EAAE;gBACnB,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;aACtC;iBAAM;gBACN,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACtB,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;aACrC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AA1BD,oBA0BC","sourcesContent":["/* eslint-disable no-console */\nimport { spawn } from \"child_process\";\n\nexport async function exec(\n\tprogram: string,\n\targs: string[]\n): Promise<{ stderr: string; stdout: string; exitCode: number }> {\n\treturn new Promise((resolve, reject) => {\n\t\tlet stdout = \"\";\n\t\tlet stderr = \"\";\n\t\tconst process = spawn(program, args);\n\t\tprocess.stdout.on(\n\t\t\t\"data\",\n\t\t\t(data: Buffer) => (stdout += data.toString())\n\t\t);\n\t\tprocess.stderr.on(\n\t\t\t\"data\",\n\t\t\t(data: Buffer) => (stderr += data.toString())\n\t\t);\n\t\tprocess.on(\"close\", (exitCode) => {\n\t\t\tif (exitCode === 0) {\n\t\t\t\tresolve({ stdout, stderr, exitCode });\n\t\t\t} else {\n\t\t\t\tconsole.error([program, ...args].join(\" \"));\n\t\t\t\tconsole.error(stderr);\n\t\t\t\treject({ stdout, stderr, exitCode });\n\t\t\t}\n\t\t});\n\t});\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"13522219e28a723aca60138bfa4113e7d8078ed1"},"/home/kuba/projects/sealcode/sealgen/src/utils/import-path.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/import-path.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":54}},"4":{"start":{"line":7,"column":15},"end":{"line":7,"column":30}},"5":{"start":{"line":8,"column":17},"end":{"line":8,"column":51}},"6":{"start":{"line":9,"column":22},"end":{"line":9,"column":53}},"7":{"start":{"line":11,"column":17},"end":{"line":11,"column":156}},"8":{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":31}},"10":{"start":{"line":15,"column":4},"end":{"line":15,"column":18}},"11":{"start":{"line":17,"column":0},"end":{"line":17,"column":32}},"12":{"start":{"line":19,"column":4},"end":{"line":21,"column":6}},"13":{"start":{"line":20,"column":8},"end":{"line":20,"column":68}},"14":{"start":{"line":23,"column":0},"end":{"line":23,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"importPath","decl":{"start":{"line":10,"column":9},"end":{"line":10,"column":19}},"loc":{"start":{"line":10,"column":62},"end":{"line":16,"column":1}},"line":10},"2":{"name":"curryImportPath","decl":{"start":{"line":18,"column":9},"end":{"line":18,"column":24}},"loc":{"start":{"line":18,"column":46},"end":{"line":22,"column":1}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":19,"column":11},"end":{"line":19,"column":12}},"loc":{"start":{"line":19,"column":42},"end":{"line":21,"column":5}},"line":19}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},{"start":{"line":12,"column":4},"end":{"line":14,"column":5}}],"line":12}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":0,"8":0,"9":0,"10":0,"11":1,"12":0,"13":0,"14":1},"f":{"0":1,"1":0,"2":0,"3":0},"b":{"0":[1,1,1],"1":[1,0],"2":[1,1],"3":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/import-path.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/import-path.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAyC;AACzC,oDAA6B;AAC7B,MAAM,aAAa,GAAG,gBAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAE7C,SAAgB,UAAU,CACzB,mBAA2B,EAC3B,mBAA2B;IAE3B,IAAI,MAAM,GAAG,eAAQ,CACpB,cAAO,CAAC,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,EACnD,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAC9D,CAAC;IACF,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;QACrB,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;KACvB;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAZD,gCAYC;AAED,SAAgB,eAAe,CAC9B,mBAA2B;IAE3B,OAAO,UAAU,mBAA2B;QAC3C,OAAO,UAAU,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IAC7D,CAAC,CAAC;AACH,CAAC;AAND,0CAMC","sourcesContent":["import { relative, dirname } from \"path\";\nimport _locreq from \"locreq\";\nconst target_locreq = _locreq(process.cwd());\n\nexport function importPath(\n\tproject_module_path: string,\n\tproject_target_path: string\n): string {\n\tlet result = relative(\n\t\tdirname(target_locreq.resolve(project_module_path)),\n\t\ttarget_locreq.resolve(project_target_path).replace(/.ts$/, \"\")\n\t);\n\tif (result[0] != \".\") {\n\t\tresult = \"./\" + result;\n\t}\n\treturn result;\n}\n\nexport function curryImportPath(\n\tproject_module_path: string\n): (project_target_path: string) => string {\n\treturn function (project_target_path: string) {\n\t\treturn importPath(project_module_path, project_target_path);\n\t};\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7516763b721fad3b1201aa77563f8bede51e787a"},"/home/kuba/projects/sealcode/sealgen/src/utils/list-collections.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/list-collections.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":33}},"4":{"start":{"line":7,"column":17},"end":{"line":7,"column":51}},"5":{"start":{"line":8,"column":15},"end":{"line":8,"column":32}},"6":{"start":{"line":9,"column":22},"end":{"line":9,"column":53}},"7":{"start":{"line":11,"column":18},"end":{"line":11,"column":85}},"8":{"start":{"line":12,"column":4},"end":{"line":17,"column":33}},"9":{"start":{"line":13,"column":23},"end":{"line":15,"column":37}},"10":{"start":{"line":16,"column":20},"end":{"line":16,"column":65}},"11":{"start":{"line":17,"column":23},"end":{"line":17,"column":31}},"12":{"start":{"line":19,"column":0},"end":{"line":19,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"listCollections","decl":{"start":{"line":10,"column":15},"end":{"line":10,"column":30}},"loc":{"start":{"line":10,"column":33},"end":{"line":18,"column":1}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":16},"end":{"line":13,"column":17}},"loc":{"start":{"line":13,"column":23},"end":{"line":15,"column":37}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":13},"end":{"line":16,"column":14}},"loc":{"start":{"line":16,"column":20},"end":{"line":16,"column":65}},"line":16},"4":{"name":"(anonymous_4)","decl":{"start":{"line":17,"column":16},"end":{"line":17,"column":17}},"loc":{"start":{"line":17,"column":23},"end":{"line":17,"column":31}},"line":17}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":13,"column":23},"end":{"line":15,"column":37}},"type":"binary-expr","locations":[{"start":{"line":13,"column":23},"end":{"line":13,"column":40}},{"start":{"line":14,"column":8},"end":{"line":14,"column":31}},{"start":{"line":15,"column":8},"end":{"line":15,"column":37}}],"line":13},"4":{"loc":{"start":{"line":16,"column":20},"end":{"line":16,"column":65}},"type":"binary-expr","locations":[{"start":{"line":16,"column":20},"end":{"line":16,"column":59}},{"start":{"line":16,"column":63},"end":{"line":16,"column":65}}],"line":16}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":0,"8":0,"9":0,"10":0,"11":0,"12":1},"f":{"0":1,"1":0,"2":0,"3":0,"4":0},"b":{"0":[1,1,1],"1":[1,0],"2":[1,1],"3":[0,0,0],"4":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/list-collections.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/list-collections.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA6B;AAC7B,iCAAiC;AACjC,MAAM,aAAa,GAAG,gBAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAEtC,KAAK,UAAU,eAAe;IACpC,MAAM,KAAK,GAAG,MAAM,cAAO,CAAC,aAAa,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAC3E,OAAO,KAAK;SACV,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACvB,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAC9B;SACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACzD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3B,CAAC;AAXD,0CAWC","sourcesContent":["import _locreq from \"locreq\";\nimport { walkDir } from \"./walk\";\nconst target_locreq = _locreq(process.cwd());\n\nexport async function listCollections(): Promise<string[]> {\n\tconst files = await walkDir(target_locreq.resolve(\"src/back/collections\"));\n\treturn files\n\t\t.filter(\n\t\t\t(f) =>\n\t\t\t\tf.endsWith(\".ts\") &&\n\t\t\t\t!f.endsWith(\".test.ts\") &&\n\t\t\t\t!f.endsWith(\"collections.ts\")\n\t\t)\n\t\t.map((f) => f.replace(/.ts$/, \"\").split(\"/\").at(-1) || \"\")\n\t\t.filter((e) => e !== \"\");\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1b3d8b3d8ba157a31f08c527e5f4432a8fe23eab"},"/home/kuba/projects/sealcode/sealgen/src/utils/walk.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/walk.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":13},"end":{"line":4,"column":26}},"3":{"start":{"line":5,"column":15},"end":{"line":5,"column":30}},"4":{"start":{"line":7,"column":20},"end":{"line":7,"column":52}},"5":{"start":{"line":8,"column":14},"end":{"line":8,"column":16}},"6":{"start":{"line":9,"column":4},"end":{"line":20,"column":5}},"7":{"start":{"line":10,"column":25},"end":{"line":10,"column":51}},"8":{"start":{"line":12,"column":21},"end":{"line":12,"column":55}},"9":{"start":{"line":13,"column":8},"end":{"line":19,"column":9}},"10":{"start":{"line":15,"column":12},"end":{"line":15,"column":57}},"11":{"start":{"line":18,"column":12},"end":{"line":18,"column":37}},"12":{"start":{"line":21,"column":4},"end":{"line":21,"column":15}},"13":{"start":{"line":23,"column":0},"end":{"line":23,"column":26}}},"fnMap":{"0":{"name":"walkDir","decl":{"start":{"line":6,"column":15},"end":{"line":6,"column":22}},"loc":{"start":{"line":6,"column":28},"end":{"line":22,"column":1}},"line":6}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":8},"end":{"line":19,"column":9}},"type":"if","locations":[{"start":{"line":13,"column":8},"end":{"line":19,"column":9}},{"start":{"line":13,"column":8},"end":{"line":19,"column":9}}],"line":13}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":1},"f":{"0":0},"b":{"0":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/walk.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/walk.ts"],"names":[],"mappings":";;;AAAA,2BAAoC;AACpC,+BAA+B;AAExB,KAAK,UAAU,OAAO,CAAC,GAAW;IACxC,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,GAAa,EAAE,CAAC;IACvB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC5B,MAAM,QAAQ,GAAG,cAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,4CAA4C;QAC5C,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB,4CAA4C;YAC5C,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC7C;aAAM;YACN,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,QAAQ,CAAC,CAAC;SACzB;KACD;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAhBD,0BAgBC","sourcesContent":["import { promises as fs } from \"fs\";\nimport { resolve } from \"path\";\n\nexport async function walkDir(dir: string): Promise<string[]> {\n\tconst entries = await fs.readdir(dir);\n\tlet ret: string[] = [];\n\tfor (const entry of entries) {\n\t\tconst fullpath = resolve(dir, entry);\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst info = await fs.stat(fullpath);\n\n\t\tif (info.isDirectory()) {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tret = [...ret, ...(await walkDir(fullpath))];\n\t\t} else {\n\t\t\tret = [...ret, fullpath];\n\t\t}\n\t}\n\treturn ret;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"57013d3ffbf9e4a338b91c3ccded08689d47e0f0"},"/home/kuba/projects/sealcode/sealgen/src/utils/assert-throws.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/assert-throws.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":35}},"4":{"start":{"line":7,"column":17},"end":{"line":7,"column":51}},"5":{"start":{"line":9,"column":16},"end":{"line":9,"column":20}},"6":{"start":{"line":10,"column":4},"end":{"line":21,"column":5}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":19}},"8":{"start":{"line":14,"column":8},"end":{"line":14,"column":18}},"9":{"start":{"line":17,"column":8},"end":{"line":17,"column":72}},"10":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"11":{"start":{"line":19,"column":12},"end":{"line":19,"column":39}},"12":{"start":{"line":23,"column":0},"end":{"line":23,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"assertThrowsAsync","decl":{"start":{"line":8,"column":15},"end":{"line":8,"column":32}},"loc":{"start":{"line":8,"column":52},"end":{"line":22,"column":1}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"type":"if","locations":[{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},{"start":{"line":18,"column":8},"end":{"line":20,"column":9}}],"line":18}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":11,"6":11,"7":11,"8":9,"9":11,"10":9,"11":0,"12":1},"f":{"0":1,"1":11},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1],"3":[0,9]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/assert-throws.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/assert-throws.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAErB,KAAK,UAAU,iBAAiB,CACtC,EAA0B,EAC1B,aAAoD;IAEpD,IAAI,KAAK,GAAY,IAAI,CAAC;IAC1B,IAAI;QACH,MAAM,EAAE,EAAE,CAAC;KACX;IAAC,OAAO,CAAU,EAAE;QACpB,KAAK,GAAG,CAAC,CAAC;KACV;YAAS;QACT,gBAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACtD,IAAI,aAAa,EAAE;YAClB,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;KACD;AACF,CAAC;AAfD,8CAeC","sourcesContent":["import assert from \"assert\";\n\nexport async function assertThrowsAsync(\n\tfn: () => Promise<unknown>,\n\terror_handler?: (e: unknown) => Promise<void> | void\n): Promise<void> {\n\tlet error: unknown = null;\n\ttry {\n\t\tawait fn();\n\t} catch (e: unknown) {\n\t\terror = e;\n\t} finally {\n\t\tassert.notStrictEqual(error, null, \"It didn't throw\");\n\t\tif (error_handler) {\n\t\t\tawait error_handler(error);\n\t\t}\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"cf32950b4c1bb61cd4a45b1e665838edaf522df2"},"/home/kuba/projects/sealcode/sealgen/src/utils/format-external-url.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/format-external-url.ts","statementMap":{"0":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"1":{"start":{"line":5,"column":0},"end":{"line":5,"column":35}},"2":{"start":{"line":7,"column":20},"end":{"line":7,"column":30}},"3":{"start":{"line":8,"column":4},"end":{"line":11,"column":5}},"4":{"start":{"line":10,"column":8},"end":{"line":10,"column":35}},"5":{"start":{"line":12,"column":4},"end":{"line":12,"column":19}},"6":{"start":{"line":14,"column":0},"end":{"line":14,"column":46}}},"fnMap":{"0":{"name":"formatExternalURL","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":26}},"loc":{"start":{"line":6,"column":32},"end":{"line":13,"column":1}},"line":6}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":4},"end":{"line":11,"column":5}},"type":"if","locations":[{"start":{"line":8,"column":4},"end":{"line":11,"column":5}},{"start":{"line":8,"column":4},"end":{"line":11,"column":5}}],"line":8},"1":{"loc":{"start":{"line":8,"column":8},"end":{"line":9,"column":53}},"type":"binary-expr","locations":[{"start":{"line":8,"column":8},"end":{"line":8,"column":53}},{"start":{"line":9,"column":8},"end":{"line":9,"column":53}}],"line":8}},"s":{"0":1,"1":1,"2":0,"3":0,"4":0,"5":0,"6":1},"f":{"0":0},"b":{"0":[0,0],"1":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/format-external-url.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/format-external-url.ts"],"names":[],"mappings":";AAAA,6EAA6E;AAC7E,yDAAyD;;;AAEzD,SAAgB,iBAAiB,CAAC,GAAW;IAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IACC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAC7C,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAC5C;QACD,OAAO,UAAU,OAAO,EAAE,CAAC;KAC3B;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AATD,8CASC","sourcesContent":["// this is not an ultra-safe parser. It's meant to help parse urls that users\n// have entered in a simple input file withour validation\n\nexport function formatExternalURL(url: string) {\n\tconst trimmed = url.trim();\n\tif (\n\t\t!trimmed.toLowerCase().startsWith(\"https://\") ||\n\t\t!trimmed.toLowerCase().startsWith(\"https://\")\n\t) {\n\t\treturn `http://${trimmed}`;\n\t}\n\treturn trimmed;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1b486b80e338f93b44f4a30b36ac612690acafd3"},"/home/kuba/projects/sealcode/sealgen/src/page/list.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/page/list.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":115}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":25},"end":{"line":5,"column":52}},"4":{"start":{"line":6,"column":15},"end":{"line":6,"column":32}},"5":{"start":{"line":7,"column":16},"end":{"line":7,"column":48}},"6":{"start":{"line":8,"column":16},"end":{"line":8,"column":41}},"7":{"start":{"line":9,"column":29},"end":{"line":9,"column":61}},"8":{"start":{"line":10,"column":0},"end":{"line":10,"column":32}},"9":{"start":{"line":11,"column":0},"end":{"line":14,"column":2}},"10":{"start":{"line":17,"column":8},"end":{"line":17,"column":28}},"11":{"start":{"line":18,"column":8},"end":{"line":18,"column":31}},"12":{"start":{"line":19,"column":8},"end":{"line":19,"column":33}},"13":{"start":{"line":22,"column":8},"end":{"line":22,"column":21}},"14":{"start":{"line":23,"column":8},"end":{"line":25,"column":9}},"15":{"start":{"line":24,"column":12},"end":{"line":24,"column":34}},"16":{"start":{"line":28,"column":8},"end":{"line":28,"column":63}},"17":{"start":{"line":31,"column":23},"end":{"line":31,"column":55}},"18":{"start":{"line":32,"column":33},"end":{"line":32,"column":77}},"19":{"start":{"line":33,"column":41},"end":{"line":33,"column":93}},"20":{"start":{"line":34,"column":8},"end":{"line":34,"column":38}},"21":{"start":{"line":37,"column":8},"end":{"line":39,"column":9}},"22":{"start":{"line":38,"column":12},"end":{"line":38,"column":54}},"23":{"start":{"line":40,"column":39},"end":{"line":40,"column":74}},"24":{"start":{"line":41,"column":30},"end":{"line":41,"column":76}},"25":{"start":{"line":42,"column":8},"end":{"line":44,"column":110}},"26":{"start":{"line":44,"column":45},"end":{"line":44,"column":106}},"27":{"start":{"line":44,"column":72},"end":{"line":44,"column":105}},"28":{"start":{"line":47,"column":23},"end":{"line":47,"column":55}},"29":{"start":{"line":48,"column":8},"end":{"line":50,"column":65}},"30":{"start":{"line":53,"column":39},"end":{"line":53,"column":74}},"31":{"start":{"line":54,"column":26},"end":{"line":54,"column":77}},"32":{"start":{"line":55,"column":8},"end":{"line":79,"column":13}},"33":{"start":{"line":62,"column":77},"end":{"line":71,"column":15}},"34":{"start":{"line":82,"column":8},"end":{"line":89,"column":5}},"35":{"start":{"line":92,"column":23},"end":{"line":92,"column":25}},"36":{"start":{"line":93,"column":27},"end":{"line":93,"column":59}},"37":{"start":{"line":94,"column":8},"end":{"line":98,"column":9}},"38":{"start":{"line":96,"column":31},"end":{"line":96,"column":68}},"39":{"start":{"line":97,"column":12},"end":{"line":97,"column":58}},"40":{"start":{"line":99,"column":8},"end":{"line":99,"column":22}},"41":{"start":{"line":102,"column":23},"end":{"line":102,"column":55}},"42":{"start":{"line":103,"column":8},"end":{"line":112,"column":11}},"43":{"start":{"line":106,"column":59},"end":{"line":106,"column":65}},"44":{"start":{"line":110,"column":12},"end":{"line":110,"column":113}},"45":{"start":{"line":115,"column":0},"end":{"line":115,"column":28}},"46":{"start":{"line":118,"column":8},"end":{"line":118,"column":16}},"47":{"start":{"line":119,"column":8},"end":{"line":119,"column":37}},"48":{"start":{"line":120,"column":8},"end":{"line":120,"column":80}},"49":{"start":{"line":123,"column":8},"end":{"line":123,"column":28}},"50":{"start":{"line":126,"column":22},"end":{"line":126,"column":77}},"51":{"start":{"line":127,"column":8},"end":{"line":127,"column":41}},"52":{"start":{"line":128,"column":26},"end":{"line":128,"column":45}},"53":{"start":{"line":129,"column":8},"end":{"line":129,"column":54}},"54":{"start":{"line":132,"column":24},"end":{"line":132,"column":55}},"55":{"start":{"line":133,"column":8},"end":{"line":137,"column":9}},"56":{"start":{"line":134,"column":12},"end":{"line":136,"column":13}},"57":{"start":{"line":135,"column":16},"end":{"line":135,"column":36}},"58":{"start":{"line":138,"column":8},"end":{"line":140,"column":9}},"59":{"start":{"line":139,"column":12},"end":{"line":139,"column":33}},"60":{"start":{"line":143,"column":8},"end":{"line":143,"column":71}},"61":{"start":{"line":146,"column":22},"end":{"line":146,"column":47}},"62":{"start":{"line":147,"column":8},"end":{"line":147,"column":41}},"63":{"start":{"line":148,"column":26},"end":{"line":150,"column":20}},"64":{"start":{"line":151,"column":8},"end":{"line":151,"column":21}},"65":{"start":{"line":154,"column":8},"end":{"line":154,"column":39}},"66":{"start":{"line":157,"column":0},"end":{"line":157,"column":52}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":18},"end":{"line":20,"column":5}},"line":16},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":11},"end":{"line":26,"column":5}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":36},"end":{"line":29,"column":5}},"line":27},"3":{"name":"(anonymous_3)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":35},"end":{"line":35,"column":5}},"line":30},"4":{"name":"(anonymous_4)","decl":{"start":{"line":36,"column":4},"end":{"line":36,"column":5}},"loc":{"start":{"line":36,"column":42},"end":{"line":45,"column":5}},"line":36},"5":{"name":"(anonymous_5)","decl":{"start":{"line":44,"column":34},"end":{"line":44,"column":35}},"loc":{"start":{"line":44,"column":45},"end":{"line":44,"column":106}},"line":44},"6":{"name":"(anonymous_6)","decl":{"start":{"line":44,"column":55},"end":{"line":44,"column":56}},"loc":{"start":{"line":44,"column":72},"end":{"line":44,"column":105}},"line":44},"7":{"name":"(anonymous_7)","decl":{"start":{"line":46,"column":4},"end":{"line":46,"column":5}},"loc":{"start":{"line":46,"column":22},"end":{"line":51,"column":5}},"line":46},"8":{"name":"(anonymous_8)","decl":{"start":{"line":52,"column":4},"end":{"line":52,"column":5}},"loc":{"start":{"line":52,"column":40},"end":{"line":80,"column":5}},"line":52},"9":{"name":"(anonymous_9)","decl":{"start":{"line":62,"column":59},"end":{"line":62,"column":60}},"loc":{"start":{"line":62,"column":77},"end":{"line":71,"column":15}},"line":62},"10":{"name":"(anonymous_10)","decl":{"start":{"line":81,"column":4},"end":{"line":81,"column":5}},"loc":{"start":{"line":81,"column":38},"end":{"line":90,"column":5}},"line":81},"11":{"name":"(anonymous_11)","decl":{"start":{"line":91,"column":4},"end":{"line":91,"column":5}},"loc":{"start":{"line":91,"column":31},"end":{"line":100,"column":5}},"line":91},"12":{"name":"(anonymous_12)","decl":{"start":{"line":101,"column":4},"end":{"line":101,"column":5}},"loc":{"start":{"line":101,"column":29},"end":{"line":113,"column":5}},"line":101},"13":{"name":"(anonymous_13)","decl":{"start":{"line":106,"column":52},"end":{"line":106,"column":53}},"loc":{"start":{"line":106,"column":59},"end":{"line":106,"column":65}},"line":106},"14":{"name":"(anonymous_14)","decl":{"start":{"line":108,"column":29},"end":{"line":108,"column":30}},"loc":{"start":{"line":108,"column":42},"end":{"line":111,"column":9}},"line":108},"15":{"name":"(anonymous_15)","decl":{"start":{"line":117,"column":4},"end":{"line":117,"column":5}},"loc":{"start":{"line":117,"column":28},"end":{"line":121,"column":5}},"line":117},"16":{"name":"(anonymous_16)","decl":{"start":{"line":122,"column":4},"end":{"line":122,"column":5}},"loc":{"start":{"line":122,"column":33},"end":{"line":124,"column":5}},"line":122},"17":{"name":"(anonymous_17)","decl":{"start":{"line":125,"column":4},"end":{"line":125,"column":5}},"loc":{"start":{"line":125,"column":43},"end":{"line":130,"column":5}},"line":125},"18":{"name":"(anonymous_18)","decl":{"start":{"line":131,"column":4},"end":{"line":131,"column":5}},"loc":{"start":{"line":131,"column":31},"end":{"line":141,"column":5}},"line":131},"19":{"name":"(anonymous_19)","decl":{"start":{"line":142,"column":4},"end":{"line":142,"column":5}},"loc":{"start":{"line":142,"column":25},"end":{"line":144,"column":5}},"line":142},"20":{"name":"(anonymous_20)","decl":{"start":{"line":145,"column":4},"end":{"line":145,"column":5}},"loc":{"start":{"line":145,"column":44},"end":{"line":152,"column":5}},"line":145},"21":{"name":"(anonymous_21)","decl":{"start":{"line":153,"column":4},"end":{"line":153,"column":5}},"loc":{"start":{"line":153,"column":37},"end":{"line":155,"column":5}},"line":153}},"branchMap":{"0":{"loc":{"start":{"line":37,"column":8},"end":{"line":39,"column":9}},"type":"if","locations":[{"start":{"line":37,"column":8},"end":{"line":39,"column":9}},{"start":{"line":37,"column":8},"end":{"line":39,"column":9}}],"line":37},"1":{"loc":{"start":{"line":42,"column":43},"end":{"line":44,"column":27}},"type":"cond-expr","locations":[{"start":{"line":43,"column":14},"end":{"line":43,"column":36}},{"start":{"line":44,"column":14},"end":{"line":44,"column":27}}],"line":42},"2":{"loc":{"start":{"line":56,"column":5},"end":{"line":56,"column":69}},"type":"cond-expr","locations":[{"start":{"line":56,"column":16},"end":{"line":56,"column":64}},{"start":{"line":56,"column":67},"end":{"line":56,"column":69}}],"line":56},"3":{"loc":{"start":{"line":57,"column":5},"end":{"line":59,"column":16}},"type":"cond-expr","locations":[{"start":{"line":58,"column":14},"end":{"line":58,"column":71}},{"start":{"line":59,"column":14},"end":{"line":59,"column":16}}],"line":57},"4":{"loc":{"start":{"line":68,"column":8},"end":{"line":68,"column":36}},"type":"cond-expr","locations":[{"start":{"line":68,"column":21},"end":{"line":68,"column":31}},{"start":{"line":68,"column":34},"end":{"line":68,"column":36}}],"line":68},"5":{"loc":{"start":{"line":73,"column":5},"end":{"line":75,"column":16}},"type":"cond-expr","locations":[{"start":{"line":74,"column":14},"end":{"line":74,"column":69}},{"start":{"line":75,"column":14},"end":{"line":75,"column":16}}],"line":73},"6":{"loc":{"start":{"line":76,"column":5},"end":{"line":78,"column":16}},"type":"cond-expr","locations":[{"start":{"line":77,"column":14},"end":{"line":77,"column":70}},{"start":{"line":78,"column":14},"end":{"line":78,"column":16}}],"line":76},"7":{"loc":{"start":{"line":134,"column":12},"end":{"line":136,"column":13}},"type":"if","locations":[{"start":{"line":134,"column":12},"end":{"line":136,"column":13}},{"start":{"line":134,"column":12},"end":{"line":136,"column":13}}],"line":134},"8":{"loc":{"start":{"line":134,"column":16},"end":{"line":134,"column":64}},"type":"binary-expr","locations":[{"start":{"line":134,"column":16},"end":{"line":134,"column":42}},{"start":{"line":134,"column":46},"end":{"line":134,"column":64}}],"line":134},"9":{"loc":{"start":{"line":138,"column":8},"end":{"line":140,"column":9}},"type":"if","locations":[{"start":{"line":138,"column":8},"end":{"line":140,"column":9}},{"start":{"line":138,"column":8},"end":{"line":140,"column":9}}],"line":138}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":1,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/page/list.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/page/list.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context } from \"koa\";\nimport {\n\tCollection,\n\tCollectionItem,\n\tItemList,\n\tContext as SealiousContext,\n\tCollectionInput,\n} from \"sealious\";\n\nimport { Templatable, tempstream, FlatTemplatable } from \"tempstream\";\nimport { peopleWhoCan } from \"./access-control\";\nimport { Page } from \"./page\";\nimport { ShapeToType } from \"@sealcode/ts-predicates\";\nimport { FormControl } from \"../forms/controls/controls\";\nimport { FormField, NumberField } from \"../forms/fields/field\";\nimport { naturalNumbers, UrlWithNewParams } from \"../utils/utils\";\nimport { FormDataValue } from \"..\";\nimport { makeHiddenInputs } from \"../make-hidden-inputs\";\n\nexport const BasePagePropsShape = <const>{};\nexport type BasePageProps = ShapeToType<typeof BasePagePropsShape>;\n\nexport const BaseListPageFields = <const>{\n\tpage: new NumberField(false, 1),\n\titemsPerPage: new NumberField(false, 12),\n};\n\nexport abstract class ListPage<\n\tItemType,\n\tF extends typeof BaseListPageFields\n> extends Page<F> {\n\tabstract getItems(\n\t\tctx: Context,\n\t\tpage: number,\n\t\titemsPerPage: number,\n\t\tvalues: Record<string, FormDataValue>\n\t): Promise<ItemType[]>;\n\n\tabstract getTotalPages(\n\t\tctx: Context,\n\t\titemsPerPage: number,\n\t\tvalues: Record<string, FormDataValue>\n\t): Promise<number>;\n\n\tabstract renderItem(\n\t\tctx: Context,\n\t\titem: ItemType,\n\t\tindex: number\n\t): Promise<FlatTemplatable>;\n\n\tfilterFields: Record<string, FormField> = {};\n\tfilterControls: FormControl[] = [];\n\n\tinit(): void {\n\t\tsuper.init();\n\t\tfor (const [fieldname, field] of Object.entries(this.filterFields)) {\n\t\t\tfield.init(fieldname);\n\t\t}\n\t}\n\n\trenderListContainer(_: Context, content: Templatable): FlatTemplatable {\n\t\treturn tempstream`<div>${content}</div>`;\n\t}\n\n\tasync getPaginationConfig(ctx: Context) {\n\t\tconst values = await this.extractRawValues(ctx);\n\t\tconst { parsed: page } = await this.fields.page.getValue(ctx, values);\n\t\tconst { parsed: itemsPerPage } =\n\t\t\tawait this.fields.itemsPerPage.getValue(ctx, values);\n\t\treturn { page, itemsPerPage };\n\t}\n\n\tasync renderItems(\n\t\tctx: Context,\n\t\tvalues?: Record<string, FormDataValue>,\n\t\titems?: ItemType[]\n\t): Promise<FlatTemplatable> {\n\t\tif (!values) {\n\t\t\tvalues = await this.extractRawValues(ctx);\n\t\t}\n\t\tconst { itemsPerPage, page } = await this.getPaginationConfig(ctx);\n\t\tconst items_promise = this.getItems(ctx, page, itemsPerPage, values);\n\t\treturn tempstream`${(items\n\t\t\t? Promise.resolve(items)\n\t\t\t: items_promise\n\t\t).then((items) =>\n\t\t\titems.map((item, index) => this.renderItem(ctx, item, index))\n\t\t)}`;\n\t}\n\n\tasync render(ctx: Context): Promise<FlatTemplatable> {\n\t\tconst values = await this.extractRawValues(ctx);\n\n\t\treturn tempstream`${this.renderPagination(ctx, values)}\n\t\t\t ${this.renderFilters(ctx)}\n${this.renderListContainer(ctx, this.renderItems(ctx, values))}`;\n\t}\n\n\tasync renderPagination(\n\t\tctx: Context,\n\t\tvalues: Record<string, FormDataValue>\n\t): Promise<FlatTemplatable> {\n\t\tconst { itemsPerPage, page } = await this.getPaginationConfig(ctx);\n\t\tconst totalIems = await this.getTotalPages(ctx, itemsPerPage, values);\n\n\t\treturn tempstream/* HTML */ `<center>\n\t\t\t${page > 1 ? this.renderPageButton(ctx, 1, \"Pierwsza strona\") : \"\"}\n\t\t\t${page > 1\n\t\t\t\t? this.renderPageButton(ctx, page - 1, \"Poprzednia strona\")\n\t\t\t\t: \"\"}\n\n\t\t\t<select onchange=\"if (this.value) Turbo.visit(this.value)\">\n\t\t\t\t${Array.from(naturalNumbers(1, totalIems)).map(\n\t\t\t\t\t(n) => /* HTML */ `<option\n\t\t\t\t\t\tvalue=\"${UrlWithNewParams(\n\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\t//eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\t\t\t\tthis.propsParser.overwriteProp(ctx, {\n\t\t\t\t\t\t\t\tpage: n,\n\t\t\t\t\t\t\t} as Partial<Record<string, unknown>>)\n\t\t\t\t\t\t)}\"\n\t\t\t\t\t\t${page === n ? \"selected\" : \"\"}\n\t\t\t\t\t>\n\t\t\t\t\t\t${n}\n\t\t\t\t\t</option>`\n\t\t\t\t)}\n\t\t\t</select>\n\t\t\t${page < totalIems\n\t\t\t\t? this.renderPageButton(ctx, page + 1, \"Następna strona\")\n\t\t\t\t: \"\"}\n\t\t\t${page < totalIems\n\t\t\t\t? this.renderPageButton(ctx, totalIems, \"Ostatnia strona\")\n\t\t\t\t: \"\"}\n\t\t</center>`;\n\t}\n\n\tprivate renderPageButton(ctx: Context, page: number, text: string) {\n\t\treturn /* HTML */ `<a\n\t\t\thref=\"${UrlWithNewParams(\n\t\t\t\tctx,\n\t\t\t\t//eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\tthis.propsParser.overwriteProp(ctx, {\n\t\t\t\t\tpage,\n\t\t\t\t} as Partial<Record<string, unknown>>)\n\t\t\t)}\"\n\t\t\t>${text}</a\n\t\t>`;\n\t}\n\n\tasync getFilterValues(ctx: Context): Promise<Record<string, unknown>> {\n\t\tconst filter = {} as Record<string, unknown>;\n\t\tconst raw_values = await this.extractRawValues(ctx);\n\t\tfor (const [fieldname, field] of Object.entries(this.filterFields)) {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tconst { parsed } = await field.getValue(ctx, raw_values);\n\t\t\tfilter[fieldname] = field.mapToFilter(parsed);\n\t\t}\n\t\treturn filter;\n\t}\n\n\tasync renderFilters(ctx: Context): Promise<FlatTemplatable> {\n\t\tconst values = await this.extractRawValues(ctx);\n\t\treturn tempstream/* HTML */ `<form method=\"GET\">\n\t\t\t${makeHiddenInputs(ctx, this.fields, values, [\n\t\t\t\t\"page\",\n\t\t\t\t...Object.values(this.filterFields).map((f) => f.name),\n\t\t\t])}\n\t\t\t${this.filterControls.map((control) => {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\treturn control.render(\n\t\t\t\t\tthis.makeFormControlContext(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\t{ raw_values: values, messages: [] },\n\t\t\t\t\t\tfalse\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})}\n\t\t</form>`;\n\t}\n}\n\nexport abstract class SealiousItemListPage<\n\tC extends Collection,\n\tF extends typeof BaseListPageFields\n> extends ListPage<CollectionItem<C>, F> {\n\tconstructor(public collection: C) {\n\t\tsuper();\n\t}\n\n\tasync getContextForList(ctx: Context): Promise<SealiousContext> {\n\t\treturn ctx.$context;\n\t}\n\n\tasync getTotalPages(ctx: Context, itemsPerPage: number): Promise<number> {\n\t\tconst query = this.collection.list(await this.getContextForList(ctx));\n\t\tawait this.addFilter(ctx, query);\n\t\tconst { items } = await query.fetch();\n\t\treturn Math.ceil(items.length / itemsPerPage);\n\t}\n\n\tprotected async addFilter(ctx: Context, list: ItemList<C>): Promise<void> {\n\t\tconst filters = await this.getFilterValues(ctx);\n\n\t\tfor (const key in filters) {\n\t\t\tif (filters[key] === undefined || filters[key] == \"\") {\n\t\t\t\tdelete filters[key];\n\t\t\t}\n\t\t}\n\t\tif (Object.keys(filters).length) {\n\t\t\tlist.filter(filters as Partial<CollectionInput<C>>);\n\t\t}\n\t}\n\n\tasync makeQuery(ctx: Context): Promise<ItemList<C>> {\n\t\treturn this.collection.list(await this.getContextForList(ctx));\n\t}\n\n\tasync getItems(\n\t\tctx: Context,\n\t\tpage: number,\n\t\titemsPerPage: number\n\t): Promise<CollectionItem<C>[]> {\n\t\tconst query = await this.makeQuery(ctx);\n\t\tawait this.addFilter(ctx, query);\n\t\tconst { items } = await query\n\t\t\t.paginate({ items: itemsPerPage, page })\n\t\t\t.fetch();\n\t\treturn items;\n\t}\n\n\tasync renderItem(\n\t\t_: Context,\n\t\titem: CollectionItem<C>,\n\t\tindex: number\n\t): Promise<FlatTemplatable> {\n\t\treturn `<div>${item.id}</div>`;\n\t}\n\n\tcanAccess = peopleWhoCan(\"list\", this.collection);\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9606545aa028be1a31bc2052b93e2f97b04f2e99"},"/home/kuba/projects/sealcode/sealgen/src/page/access-control.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/page/access-control.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":30}},"2":{"start":{"line":5,"column":4},"end":{"line":17,"column":6}},"3":{"start":{"line":6,"column":23},"end":{"line":6,"column":51}},"4":{"start":{"line":7,"column":23},"end":{"line":7,"column":55}},"5":{"start":{"line":8,"column":8},"end":{"line":11,"column":9}},"6":{"start":{"line":9,"column":12},"end":{"line":9,"column":29}},"7":{"start":{"line":10,"column":12},"end":{"line":10,"column":64}},"8":{"start":{"line":12,"column":8},"end":{"line":15,"column":9}},"9":{"start":{"line":13,"column":12},"end":{"line":13,"column":29}},"10":{"start":{"line":14,"column":12},"end":{"line":14,"column":64}},"11":{"start":{"line":16,"column":8},"end":{"line":16,"column":48}},"12":{"start":{"line":19,"column":0},"end":{"line":19,"column":36}}},"fnMap":{"0":{"name":"peopleWhoCan","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":21}},"loc":{"start":{"line":4,"column":42},"end":{"line":18,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":11},"end":{"line":5,"column":12}},"loc":{"start":{"line":5,"column":32},"end":{"line":17,"column":5}},"line":5}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":8},"end":{"line":11,"column":9}},"type":"if","locations":[{"start":{"line":8,"column":8},"end":{"line":11,"column":9}},{"start":{"line":8,"column":8},"end":{"line":11,"column":9}}],"line":8},"1":{"loc":{"start":{"line":12,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":12,"column":8},"end":{"line":15,"column":9}},{"start":{"line":12,"column":8},"end":{"line":15,"column":9}}],"line":12}},"s":{"0":1,"1":1,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":1},"f":{"0":0,"1":0},"b":{"0":[0,0],"1":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/page/access-control.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/page/access-control.ts"],"names":[],"mappings":";;;AAGA,SAAgB,YAAY,CAAC,MAAkB,EAAE,UAAsB;IACtE,OAAO,KAAK,WAAW,GAAY;QAClC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE;YACZ,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;YACjB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;SACpD;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACpB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;YACjB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;SACpD;QACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzC,CAAC,CAAC;AACH,CAAC;AAdD,oCAcC","sourcesContent":["import { Context } from \"koa\";\nimport { ActionName, Collection } from \"sealious\";\n\nexport function peopleWhoCan(action: ActionName, collection: Collection) {\n\treturn async function (ctx: Context) {\n\t\tconst policy = collection.getPolicy(action);\n\t\tconst result = await policy.check(ctx.$context);\n\t\tif (!result) {\n\t\t\tctx.status = 403;\n\t\t\treturn { canAccess: false, message: \"Not allowed\" };\n\t\t}\n\t\tif (!result.allowed) {\n\t\t\tctx.status = 403;\n\t\t\treturn { canAccess: false, message: result.reason };\n\t\t}\n\t\treturn { canAccess: true, message: \"\" };\n\t};\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c9681f3d3137891bbad3e07a9a0044977a74c958"},"/home/kuba/projects/sealcode/sealgen/src/make-hidden-inputs.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/make-hidden-inputs.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":40}},"4":{"start":{"line":7,"column":4},"end":{"line":15,"column":10}},"5":{"start":{"line":8,"column":27},"end":{"line":8,"column":56}},"6":{"start":{"line":9,"column":31},"end":{"line":15,"column":6}},"7":{"start":{"line":14,"column":21},"end":{"line":14,"column":70}},"8":{"start":{"line":17,"column":0},"end":{"line":17,"column":44}}},"fnMap":{"0":{"name":"makeHiddenInputs","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":63},"end":{"line":16,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":16},"end":{"line":8,"column":17}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":56}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":13},"end":{"line":9,"column":14}},"loc":{"start":{"line":9,"column":31},"end":{"line":15,"column":6}},"line":9},"3":{"name":"(anonymous_3)","decl":{"start":{"line":14,"column":14},"end":{"line":14,"column":15}},"loc":{"start":{"line":14,"column":21},"end":{"line":14,"column":70}},"line":14}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":42},"end":{"line":14,"column":69}},"type":"binary-expr","locations":[{"start":{"line":14,"column":42},"end":{"line":14,"column":63}},{"start":{"line":14,"column":67},"end":{"line":14,"column":69}}],"line":14}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":0,"8":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/make-hidden-inputs.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/make-hidden-inputs.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAGzD,yCAAuC;AAEvC,SAAgB,gBAAgB,CAC/B,GAAY,EACZ,MAAiC,EACjC,MAAqC,EACrC,cAAwB;IAExB,OAAO,uBAAU,CAAA,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACxC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAChD,GAAG,CACH,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,uBAAU,CAAA,UAAU,CAAC;;YAE9B,GAAG;aACF,KAAK;SACZ,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;SACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;MACnD,CACH,EAAE,CAAC;AACN,CAAC;AAjBD,4CAiBC","sourcesContent":["import { Context } from \"koa\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { FormDataValue } from \".\";\nimport { FormField } from \"./forms/fields/field\";\nimport { attribute } from \"./sanitize\";\n\nexport function makeHiddenInputs(\n\tctx: Context,\n\tfields: Record<string, FormField>,\n\tvalues: Record<string, FormDataValue>,\n\tfields_to_skip: string[]\n): FlatTemplatable {\n\treturn tempstream`${Object.entries(fields)\n\t\t.filter(([key]) => !fields_to_skip.includes(key))\n\t\t.map(\n\t\t\t([key, field]) => tempstream/* HTML */ `<input\n\t\t\t\ttype=\"hidden\"\n\t\t\t\tname=\"${key}\"\n\t\t\t\tvalue=\"${field\n\t\t\t\t\t.getValue(ctx, values)\n\t\t\t\t\t.then((r) => attribute(JSON.stringify(r.raw) || \"\"))}\"\n\t\t\t/>`\n\t\t)}`;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"aa0fdb8aa0095a8742b64efef0a62cc86093bfda"},"/home/kuba/projects/sealcode/sealgen/src/forms/multiform.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/multiform.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":27}},"2":{"start":{"line":4,"column":24},"end":{"line":4,"column":58}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":42}},"4":{"start":{"line":6,"column":32},"end":{"line":6,"column":72}},"5":{"start":{"line":7,"column":19},"end":{"line":7,"column":41}},"6":{"start":{"line":8,"column":31},"end":{"line":8,"column":36}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":28}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":27}},"9":{"start":{"line":15,"column":8},"end":{"line":15,"column":21}},"10":{"start":{"line":16,"column":8},"end":{"line":35,"column":9}},"11":{"start":{"line":17,"column":12},"end":{"line":19,"column":13}},"12":{"start":{"line":18,"column":16},"end":{"line":18,"column":107}},"13":{"start":{"line":20,"column":12},"end":{"line":20,"column":49}},"14":{"start":{"line":20,"column":41},"end":{"line":20,"column":48}},"15":{"start":{"line":21,"column":12},"end":{"line":21,"column":51}},"16":{"start":{"line":21,"column":42},"end":{"line":21,"column":50}},"17":{"start":{"line":22,"column":12},"end":{"line":22,"column":67}},"18":{"start":{"line":23,"column":12},"end":{"line":23,"column":37}},"19":{"start":{"line":24,"column":12},"end":{"line":24,"column":37}},"20":{"start":{"line":25,"column":12},"end":{"line":25,"column":24}},"21":{"start":{"line":26,"column":12},"end":{"line":26,"column":94}},"22":{"start":{"line":26,"column":55},"end":{"line":26,"column":93}},"23":{"start":{"line":27,"column":37},"end":{"line":27,"column":70}},"24":{"start":{"line":28,"column":12},"end":{"line":34,"column":8}},"25":{"start":{"line":28,"column":53},"end":{"line":34,"column":7}},"26":{"start":{"line":36,"column":8},"end":{"line":42,"column":9}},"27":{"start":{"line":37,"column":12},"end":{"line":41,"column":13}},"28":{"start":{"line":38,"column":16},"end":{"line":40,"column":17}},"29":{"start":{"line":39,"column":20},"end":{"line":39,"column":112}},"30":{"start":{"line":45,"column":8},"end":{"line":45,"column":31}},"31":{"start":{"line":48,"column":8},"end":{"line":51,"column":10}},"32":{"start":{"line":55,"column":32},"end":{"line":55,"column":58}},"33":{"start":{"line":56,"column":8},"end":{"line":58,"column":9}},"34":{"start":{"line":57,"column":12},"end":{"line":57,"column":67}},"35":{"start":{"line":59,"column":32},"end":{"line":61,"column":40}},"36":{"start":{"line":62,"column":8},"end":{"line":62,"column":31}},"37":{"start":{"line":65,"column":21},"end":{"line":65,"column":46}},"38":{"start":{"line":66,"column":23},"end":{"line":66,"column":48}},"39":{"start":{"line":67,"column":8},"end":{"line":69,"column":9}},"40":{"start":{"line":68,"column":12},"end":{"line":68,"column":34}},"41":{"start":{"line":70,"column":8},"end":{"line":73,"column":30}},"42":{"start":{"line":76,"column":23},"end":{"line":81,"column":11}},"43":{"start":{"line":77,"column":31},"end":{"line":77,"column":85}},"44":{"start":{"line":78,"column":35},"end":{"line":81,"column":9}},"45":{"start":{"line":82,"column":8},"end":{"line":82,"column":22}},"46":{"start":{"line":85,"column":8},"end":{"line":110,"column":31}},"47":{"start":{"line":98,"column":34},"end":{"line":98,"column":77}},"48":{"start":{"line":99,"column":12},"end":{"line":107,"column":21}},"49":{"start":{"line":115,"column":8},"end":{"line":143,"column":13}},"50":{"start":{"line":146,"column":8},"end":{"line":149,"column":11}},"51":{"start":{"line":147,"column":12},"end":{"line":147,"column":30}},"52":{"start":{"line":148,"column":12},"end":{"line":148,"column":61}},"53":{"start":{"line":150,"column":8},"end":{"line":174,"column":9}},"54":{"start":{"line":151,"column":12},"end":{"line":173,"column":15}},"55":{"start":{"line":152,"column":31},"end":{"line":152,"column":56}},"56":{"start":{"line":153,"column":16},"end":{"line":160,"column":17}},"57":{"start":{"line":154,"column":20},"end":{"line":157,"column":23}},"58":{"start":{"line":158,"column":20},"end":{"line":158,"column":37}},"59":{"start":{"line":159,"column":20},"end":{"line":159,"column":27}},"60":{"start":{"line":161,"column":33},"end":{"line":161,"column":59}},"61":{"start":{"line":162,"column":16},"end":{"line":172,"column":17}},"62":{"start":{"line":163,"column":20},"end":{"line":163,"column":37}},"63":{"start":{"line":164,"column":41},"end":{"line":164,"column":57}},"64":{"start":{"line":165,"column":20},"end":{"line":167,"column":29}},"65":{"start":{"line":169,"column":21},"end":{"line":172,"column":17}},"66":{"start":{"line":170,"column":20},"end":{"line":170,"column":37}},"67":{"start":{"line":171,"column":20},"end":{"line":171,"column":47}},"68":{"start":{"line":177,"column":0},"end":{"line":177,"column":30}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":18},"end":{"line":13,"column":5}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":11},"end":{"line":43,"column":5}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":20,"column":35},"end":{"line":20,"column":36}},"loc":{"start":{"line":20,"column":41},"end":{"line":20,"column":48}},"line":20},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":36},"end":{"line":21,"column":37}},"loc":{"start":{"line":21,"column":42},"end":{"line":21,"column":50}},"line":21},"4":{"name":"(anonymous_4)","decl":{"start":{"line":26,"column":36},"end":{"line":26,"column":37}},"loc":{"start":{"line":26,"column":55},"end":{"line":26,"column":93}},"line":26},"5":{"name":"(anonymous_5)","decl":{"start":{"line":28,"column":36},"end":{"line":28,"column":37}},"loc":{"start":{"line":28,"column":53},"end":{"line":34,"column":7}},"line":28},"6":{"name":"(anonymous_6)","decl":{"start":{"line":44,"column":4},"end":{"line":44,"column":5}},"loc":{"start":{"line":44,"column":32},"end":{"line":46,"column":5}},"line":44},"7":{"name":"(anonymous_7)","decl":{"start":{"line":47,"column":4},"end":{"line":47,"column":5}},"loc":{"start":{"line":47,"column":22},"end":{"line":52,"column":5}},"line":47},"8":{"name":"(anonymous_8)","decl":{"start":{"line":54,"column":4},"end":{"line":54,"column":5}},"loc":{"start":{"line":54,"column":29},"end":{"line":63,"column":5}},"line":54},"9":{"name":"(anonymous_9)","decl":{"start":{"line":64,"column":4},"end":{"line":64,"column":5}},"loc":{"start":{"line":64,"column":63},"end":{"line":74,"column":5}},"line":64},"10":{"name":"(anonymous_10)","decl":{"start":{"line":75,"column":4},"end":{"line":75,"column":5}},"loc":{"start":{"line":75,"column":50},"end":{"line":83,"column":5}},"line":75},"11":{"name":"(anonymous_11)","decl":{"start":{"line":77,"column":20},"end":{"line":77,"column":21}},"loc":{"start":{"line":77,"column":31},"end":{"line":77,"column":85}},"line":77},"12":{"name":"(anonymous_12)","decl":{"start":{"line":78,"column":17},"end":{"line":78,"column":18}},"loc":{"start":{"line":78,"column":35},"end":{"line":81,"column":9}},"line":78},"13":{"name":"(anonymous_13)","decl":{"start":{"line":84,"column":4},"end":{"line":84,"column":5}},"loc":{"start":{"line":84,"column":74},"end":{"line":111,"column":5}},"line":84},"14":{"name":"(anonymous_14)","decl":{"start":{"line":97,"column":40},"end":{"line":97,"column":41}},"loc":{"start":{"line":97,"column":57},"end":{"line":108,"column":9}},"line":97},"15":{"name":"(anonymous_15)","decl":{"start":{"line":112,"column":4},"end":{"line":112,"column":5}},"loc":{"start":{"line":112,"column":23},"end":{"line":144,"column":5}},"line":112},"16":{"name":"(anonymous_16)","decl":{"start":{"line":145,"column":4},"end":{"line":145,"column":5}},"loc":{"start":{"line":145,"column":24},"end":{"line":175,"column":5}},"line":145},"17":{"name":"(anonymous_17)","decl":{"start":{"line":146,"column":25},"end":{"line":146,"column":26}},"loc":{"start":{"line":146,"column":40},"end":{"line":149,"column":9}},"line":146},"18":{"name":"(anonymous_18)","decl":{"start":{"line":151,"column":70},"end":{"line":151,"column":71}},"loc":{"start":{"line":151,"column":85},"end":{"line":173,"column":13}},"line":151}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":12},"end":{"line":19,"column":13}},"type":"if","locations":[{"start":{"line":17,"column":12},"end":{"line":19,"column":13}},{"start":{"line":17,"column":12},"end":{"line":19,"column":13}}],"line":17},"1":{"loc":{"start":{"line":33,"column":6},"end":{"line":33,"column":50}},"type":"cond-expr","locations":[{"start":{"line":33,"column":21},"end":{"line":33,"column":45}},{"start":{"line":33,"column":48},"end":{"line":33,"column":50}}],"line":33},"2":{"loc":{"start":{"line":38,"column":16},"end":{"line":40,"column":17}},"type":"if","locations":[{"start":{"line":38,"column":16},"end":{"line":40,"column":17}},{"start":{"line":38,"column":16},"end":{"line":40,"column":17}}],"line":38},"3":{"loc":{"start":{"line":45,"column":15},"end":{"line":45,"column":30}},"type":"binary-expr","locations":[{"start":{"line":45,"column":15},"end":{"line":45,"column":24}},{"start":{"line":45,"column":28},"end":{"line":45,"column":30}}],"line":45},"4":{"loc":{"start":{"line":56,"column":8},"end":{"line":58,"column":9}},"type":"if","locations":[{"start":{"line":56,"column":8},"end":{"line":58,"column":9}},{"start":{"line":56,"column":8},"end":{"line":58,"column":9}}],"line":56},"5":{"loc":{"start":{"line":59,"column":32},"end":{"line":61,"column":40}},"type":"cond-expr","locations":[{"start":{"line":60,"column":14},"end":{"line":60,"column":62}},{"start":{"line":61,"column":14},"end":{"line":61,"column":40}}],"line":59},"6":{"loc":{"start":{"line":59,"column":32},"end":{"line":59,"column":78}},"type":"binary-expr","locations":[{"start":{"line":59,"column":32},"end":{"line":59,"column":47}},{"start":{"line":59,"column":51},"end":{"line":59,"column":78}}],"line":59},"7":{"loc":{"start":{"line":67,"column":8},"end":{"line":69,"column":9}},"type":"if","locations":[{"start":{"line":67,"column":8},"end":{"line":69,"column":9}},{"start":{"line":67,"column":8},"end":{"line":69,"column":9}}],"line":67},"8":{"loc":{"start":{"line":84,"column":32},"end":{"line":84,"column":53}},"type":"default-arg","locations":[{"start":{"line":84,"column":51},"end":{"line":84,"column":53}}],"line":84},"9":{"loc":{"start":{"line":104,"column":8},"end":{"line":105,"column":69}},"type":"binary-expr","locations":[{"start":{"line":104,"column":8},"end":{"line":104,"column":35}},{"start":{"line":105,"column":16},"end":{"line":105,"column":69}}],"line":104},"10":{"loc":{"start":{"line":151,"column":32},"end":{"line":151,"column":61}},"type":"cond-expr","locations":[{"start":{"line":151,"column":53},"end":{"line":151,"column":55}},{"start":{"line":151,"column":58},"end":{"line":151,"column":61}}],"line":151},"11":{"loc":{"start":{"line":153,"column":16},"end":{"line":160,"column":17}},"type":"if","locations":[{"start":{"line":153,"column":16},"end":{"line":160,"column":17}},{"start":{"line":153,"column":16},"end":{"line":160,"column":17}}],"line":153},"12":{"loc":{"start":{"line":162,"column":16},"end":{"line":172,"column":17}},"type":"if","locations":[{"start":{"line":162,"column":16},"end":{"line":172,"column":17}},{"start":{"line":162,"column":16},"end":{"line":172,"column":17}}],"line":162},"13":{"loc":{"start":{"line":169,"column":21},"end":{"line":172,"column":17}},"type":"if","locations":[{"start":{"line":169,"column":21},"end":{"line":172,"column":17}},{"start":{"line":169,"column":21},"end":{"line":172,"column":17}}],"line":169}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":6,"8":6,"9":6,"10":6,"11":12,"12":0,"13":12,"14":31,"15":12,"16":31,"17":12,"18":12,"19":12,"20":12,"21":12,"22":20,"23":12,"24":12,"25":31,"26":6,"27":12,"28":12,"29":0,"30":41,"31":22,"32":20,"33":20,"34":0,"35":20,"36":20,"37":26,"38":26,"39":26,"40":5,"41":21,"42":41,"43":37,"44":20,"45":41,"46":20,"47":36,"48":36,"49":20,"50":6,"51":10,"52":10,"53":6,"54":12,"55":12,"56":12,"57":2,"58":2,"59":2,"60":10,"61":10,"62":10,"63":10,"64":10,"65":0,"66":0,"67":0,"68":1},"f":{"0":6,"1":6,"2":31,"3":31,"4":20,"5":31,"6":41,"7":22,"8":20,"9":26,"10":41,"11":37,"12":20,"13":20,"14":36,"15":20,"16":6,"17":10,"18":12},"b":{"0":[0,12],"1":[31,0],"2":[0,12],"3":[41,0],"4":[0,20],"5":[4,16],"6":[20,4],"7":[5,21],"8":[0],"9":[36,26],"10":[12,0],"11":[2,10],"12":[10,0],"13":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/multiform.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/multiform.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from \"@koa/router\";\nimport { is, predicates } from \"@sealcode/ts-predicates\";\nimport { Context } from \"koa\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { Form, FormDataValue, FormMessage } from \"..\";\nimport { Fields, MountableWithFields } from \"../page/mountable-with-fields\";\nimport { attribute } from \"../sanitize\";\n\nconst FIELD_PREFIX_SEPARATOR = \"___\";\n\nexport class Multiform extends MountableWithFields {\n\tcontrols = [];\n\tpublic name: string;\n\tpublic forms: Record<string, Form<Fields, unknown>>;\n\n\tinit(): void {\n\t\tsuper.init();\n\t\tfor (const [key, form] of Object.entries(this.forms)) {\n\t\t\tif (key !== attribute(key)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Form name \"${key}\" is not url-safe. Try: \"${attribute(\n\t\t\t\t\t\tkey\n\t\t\t\t\t)}\"`\n\t\t\t\t);\n\t\t\t}\n\t\t\tform.makeOpenFormTag = () => `<div>`;\n\t\t\tform.makeCloseFormTag = () => `</div>`;\n\t\t\tform.field_names_prefix = key + FIELD_PREFIX_SEPARATOR;\n\t\t\tform.form_id = this.name;\n\t\t\tform.action = \"./\" + key;\n\t\t\tform.init();\n\t\t\tform.extractRawValues = async (context) =>\n\t\t\t\tthis.getSubformRawValues(context, key);\n\t\t\tconst submit_button_id = this.name + \"_\" + key + \"_submit\";\n\n\t\t\tform.makeSubmitButton = () => /* HTML */ `<input\n\t\t\t\ttype=\"submit\"\n\t\t\t\tvalue=\"${form.submitButtonText}\"\n\t\t\t\tformaction=\"${form.action}\"\n\t\t\t\tid=\"${submit_button_id}\"\n\t\t\t\t${form.form_id ? `form=\"${form.form_id}\"` : \"\"}\n\t\t\t/> `;\n\t\t}\n\t\tfor (const form of Object.values(this.forms)) {\n\t\t\tfor (const field of Object.values(form.fields)) {\n\t\t\t\tif (field.name.includes(FIELD_PREFIX_SEPARATOR)) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`A field name within multiform cannot contain '${FIELD_PREFIX_SEPARATOR}'`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tasync extractRawValues(\n\t\tctx: Context\n\t): Promise<Record<string, FormDataValue>> {\n\t\treturn ctx.$body || {};\n\t}\n\n\tasync canAccess(): Promise<{ canAccess: boolean; message: string }> {\n\t\treturn {\n\t\t\tcanAccess: true,\n\t\t\tmessage:\n\t\t\t\t\"this view includes multiple forms and each of them have their unique access rules\",\n\t\t};\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tgetSubformsToRender(\n\t\tctx: Context\n\t): Array<readonly [string, Form<any, unknown>]> {\n\t\tconst requested_frame = ctx.headers[\"turbo-frame\"];\n\t\tif (\n\t\t\t!is(\n\t\t\t\trequested_frame,\n\t\t\t\tpredicates.or(predicates.undefined, predicates.string)\n\t\t\t)\n\t\t) {\n\t\t\tthrow new Error(\"Wrong turbo-frame header value type\");\n\t\t}\n\t\tconst forms_to_render =\n\t\t\trequested_frame && this.forms[requested_frame]\n\t\t\t\t? [<const>[requested_frame, this.forms[requested_frame]]]\n\t\t\t\t: Object.entries(this.forms);\n\t\treturn forms_to_render;\n\t}\n\n\tasync renderSubform(\n\t\tctx: Context,\n\t\tsub_form_name: string,\n\t\tshow_field_errors: boolean\n\t): Promise<FlatTemplatable> {\n\t\tconst form = this.forms[sub_form_name];\n\t\tconst result = await form.canAccess(ctx);\n\t\tif (!result.canAccess) {\n\t\t\treturn result.message;\n\t\t}\n\t\treturn form.render(\n\t\t\tctx,\n\t\t\t{\n\t\t\t\traw_values: await this.getSubformRawValues(ctx, sub_form_name),\n\t\t\t\tmessages: [],\n\t\t\t},\n\t\t\tshow_field_errors\n\t\t);\n\t}\n\n\tasync getSubformRawValues(\n\t\tctx: Context,\n\t\tsub_form_name: string\n\t): Promise<Record<string, FormDataValue>> {\n\t\tconst result = Object.fromEntries(\n\t\t\tObject.entries(await this.extractRawValues(ctx))\n\t\t\t\t.filter(([key]) =>\n\t\t\t\t\tkey.startsWith(sub_form_name + FIELD_PREFIX_SEPARATOR)\n\t\t\t\t)\n\t\t\t\t.map(([key, value]) => [\n\t\t\t\t\tkey.slice((sub_form_name + FIELD_PREFIX_SEPARATOR).length),\n\t\t\t\t\tvalue,\n\t\t\t\t])\n\t\t);\n\t\treturn result;\n\t}\n\n\tasync render(\n\t\tctx: Context,\n\t\tmessages: FormMessage[],\n\t\tprerenderedForms: Record<string, FlatTemplatable | undefined> = {},\n\t\tshow_field_errors: boolean\n\t): Promise<FlatTemplatable> {\n\t\treturn tempstream/* HTML */ `${this.renderMessages(ctx, {\n\t\t\t\traw_values: {},\n\t\t\t\tmessages,\n\t\t\t})}\n\t\t\t<div class=\"forms\">\n\t\t\t\t<form\n\t\t\t\t\tid=\"${this.name}\"\n\t\t\t\t\tnovalidate\n\t\t\t\t\t${\n\t\t\t\t\t\t/* novalidate is here because all the subforms are actually one form and errors in one will prevent submitting all of the forms */ \"\"\n\t\t\t\t\t}\n\t\t\t\t\tmethod=\"POST\"\n\t\t\t\t></form>\n\t\t\t\t${this.getSubformsToRender(ctx).map(([form_name]) => {\n\t\t\t\t\tconst frame_form_id =\n\t\t\t\t\t\tthis.name + \"_\" + form_name + \"_frame_form\";\n\t\t\t\t\treturn tempstream/* HTML */ `<turbo-frame\n\t\t\t\t\t\tid=\"${form_name}\"\n\t\t\t\t\t\tcontains-subform\n\t\t\t\t\t\tsubform-id=\"${frame_form_id}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${prerenderedForms[form_name] ||\n\t\t\t\t\t\tthis.renderSubform(ctx, form_name, show_field_errors)}\n\t\t\t\t\t\t<form id=\"${frame_form_id}\" method=\"POST\"></form>\n\t\t\t\t\t</turbo-frame>`;\n\t\t\t\t})}\n\t\t\t</div>\n\t\t\t${this.makeBottomScript()}`;\n\t}\n\n\tmakeBottomScript(): string {\n\t\t// this script assigns each field to its corresponding form, instead of\n\t\t// the html-only version where all fields are attached to one meta-form\n\t\treturn /* HTML */ ` <script>\n\t\t\t(function () {\n\t\t\t\tif (!window.subform_handlers) {\n\t\t\t\t\twindow.subform_handlers = {};\n\t\t\t\t}\n\t\t\t\tif (window.subform_handlers[\"${this.name}\"]) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst handler = () => {\n\t\t\t\t\tdocument\n\t\t\t\t\t\t.querySelectorAll(\"turbo-frame[contains-subform]\")\n\t\t\t\t\t\t.forEach((frame) => {\n\t\t\t\t\t\t\tframe_form_id = frame.getAttribute(\"subform-id\");\n\t\t\t\t\t\t\tframe.querySelectorAll(\"input\").forEach((input) => {\n\t\t\t\t\t\t\t\tinput.setAttribute(\"form\", frame_form_id);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\twindow.subform_handlers[\"${this.name}\"] = handler;\n\t\t\t\tdocument.documentElement.addEventListener(\n\t\t\t\t\t\"turbo:load\",\n\t\t\t\t\thandler\n\t\t\t\t);\n\t\t\t\tdocument.documentElement.addEventListener(\n\t\t\t\t\t\"turbo:frame-render\",\n\t\t\t\t\thandler\n\t\t\t\t);\n\t\t\t})();\n\t\t</script>`;\n\t}\n\n\tmount(router: Router, path: string): void {\n\t\trouter.get(path, async (ctx) => {\n\t\t\tctx.type = \"html\";\n\t\t\tctx.body = await this.render(ctx, [], {}, false);\n\t\t});\n\n\t\tfor (const [key, form] of Object.entries(this.forms)) {\n\t\t\trouter.post(\n\t\t\t\tpath + (path.endsWith(\"/\") ? \"\" : \"/\") + key,\n\t\t\t\tasync (ctx) => {\n\t\t\t\t\tconst result = await form.canAccess(ctx);\n\t\t\t\t\tif (!result.canAccess) {\n\t\t\t\t\t\tctx.body = this.renderError(ctx, {\n\t\t\t\t\t\t\ttype: \"access\",\n\t\t\t\t\t\t\tmessage: result.message,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tctx.status = 403;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst reaction = await form.handlePost(ctx);\n\t\t\t\t\tif (reaction.action == \"stay\") {\n\t\t\t\t\t\tctx.status = 422;\n\t\t\t\t\t\tconst form_content = reaction.content;\n\t\t\t\t\t\tctx.body = this.render(\n\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\t[],\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t[key]: form_content,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (reaction.action == \"redirect\") {\n\t\t\t\t\t\tctx.status = 303;\n\t\t\t\t\t\tctx.redirect(reaction.url);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"90ba8486b1fce525cef1353c580c0fbf32777fc6"},"/home/kuba/projects/sealcode/sealgen/src/components/components.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/components/components.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":8,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"2":{"start":{"line":3,"column":26},"end":{"line":3,"column":33}},"3":{"start":{"line":4,"column":4},"end":{"line":4,"column":89}},"4":{"start":{"line":4,"column":71},"end":{"line":4,"column":83}},"5":{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},"6":{"start":{"line":6,"column":26},"end":{"line":6,"column":33}},"7":{"start":{"line":7,"column":4},"end":{"line":7,"column":17}},"8":{"start":{"line":9,"column":19},"end":{"line":11,"column":1}},"9":{"start":{"line":10,"column":4},"end":{"line":10,"column":126}},"10":{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},"11":{"start":{"line":10,"column":95},"end":{"line":10,"column":126}},"12":{"start":{"line":12,"column":0},"end":{"line":12,"column":62}},"13":{"start":{"line":13,"column":0},"end":{"line":13,"column":41}},"14":{"start":{"line":14,"column":0},"end":{"line":14,"column":49}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":74},"end":{"line":2,"column":75}},"loc":{"start":{"line":2,"column":96},"end":{"line":5,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":58},"end":{"line":4,"column":59}},"loc":{"start":{"line":4,"column":69},"end":{"line":4,"column":85}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":5,"column":6},"end":{"line":5,"column":7}},"loc":{"start":{"line":5,"column":28},"end":{"line":8,"column":1}},"line":5},"3":{"name":"(anonymous_3)","decl":{"start":{"line":9,"column":50},"end":{"line":9,"column":51}},"loc":{"start":{"line":9,"column":71},"end":{"line":11,"column":1}},"line":9}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":8,"column":3}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":57},"end":{"line":8,"column":2}}],"line":2},"1":{"loc":{"start":{"line":2,"column":57},"end":{"line":8,"column":2}},"type":"cond-expr","locations":[{"start":{"line":2,"column":74},"end":{"line":5,"column":1}},{"start":{"line":5,"column":6},"end":{"line":8,"column":1}}],"line":2},"2":{"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"type":"if","locations":[{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},{"start":{"line":3,"column":4},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},"type":"if","locations":[{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},{"start":{"line":6,"column":4},"end":{"line":6,"column":33}}],"line":6},"4":{"loc":{"start":{"line":9,"column":19},"end":{"line":11,"column":1}},"type":"binary-expr","locations":[{"start":{"line":9,"column":20},"end":{"line":9,"column":24}},{"start":{"line":9,"column":28},"end":{"line":9,"column":45}},{"start":{"line":9,"column":50},"end":{"line":11,"column":1}}],"line":9},"5":{"loc":{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},"type":"if","locations":[{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},{"start":{"line":10,"column":21},"end":{"line":10,"column":126}}],"line":10},"6":{"loc":{"start":{"line":10,"column":25},"end":{"line":10,"column":93}},"type":"binary-expr","locations":[{"start":{"line":10,"column":25},"end":{"line":10,"column":40}},{"start":{"line":10,"column":44},"end":{"line":10,"column":93}}],"line":10}},"s":{"0":1,"1":2,"2":2,"3":2,"4":0,"5":0,"6":0,"7":0,"8":1,"9":2,"10":2,"11":2,"12":1,"13":1,"14":1},"f":{"0":2,"1":0,"2":0,"3":2},"b":{"0":[1,1,1],"1":[1,0],"2":[2,0],"3":[0,0],"4":[1,1,1],"5":[2,0],"6":[2,2]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/components/components.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/components/components.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAuB;AACvB,iDAA+B","sourcesContent":["export * from \"./tabs\";\nexport * from \"./toggle-modal\";\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3f61032004b5530b30ca9a28bddd3be7d72b5853"},"/home/kuba/projects/sealcode/sealgen/src/components/tabs.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/components/tabs.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":22}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":35}},"4":{"start":{"line":8,"column":14},"end":{"line":53,"column":9}},"5":{"start":{"line":8,"column":46},"end":{"line":53,"column":9}},"6":{"start":{"line":55,"column":4},"end":{"line":89,"column":9}},"7":{"start":{"line":58,"column":19},"end":{"line":58,"column":40}},"8":{"start":{"line":59,"column":8},"end":{"line":69,"column":14}},"9":{"start":{"line":73,"column":19},"end":{"line":73,"column":36}},"10":{"start":{"line":74,"column":8},"end":{"line":88,"column":14}},"11":{"start":{"line":91,"column":0},"end":{"line":91,"column":20}}},"fnMap":{"0":{"name":"name_to_id","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":19}},"loc":{"start":{"line":5,"column":25},"end":{"line":7,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":14},"end":{"line":8,"column":15}},"loc":{"start":{"line":8,"column":46},"end":{"line":53,"column":9}},"line":8},"2":{"name":"tabs","decl":{"start":{"line":54,"column":9},"end":{"line":54,"column":13}},"loc":{"start":{"line":54,"column":104},"end":{"line":90,"column":1}},"line":54},"3":{"name":"(anonymous_3)","decl":{"start":{"line":57,"column":13},"end":{"line":57,"column":14}},"loc":{"start":{"line":57,"column":35},"end":{"line":70,"column":5}},"line":57},"4":{"name":"(anonymous_4)","decl":{"start":{"line":72,"column":28},"end":{"line":72,"column":29}},"loc":{"start":{"line":72,"column":50},"end":{"line":89,"column":5}},"line":72}},"branchMap":{"0":{"loc":{"start":{"line":54,"column":20},"end":{"line":54,"column":61}},"type":"default-arg","locations":[{"start":{"line":54,"column":41},"end":{"line":54,"column":61}}],"line":54},"1":{"loc":{"start":{"line":54,"column":63},"end":{"line":54,"column":81}},"type":"default-arg","locations":[{"start":{"line":54,"column":80},"end":{"line":54,"column":81}}],"line":54},"2":{"loc":{"start":{"line":54,"column":83},"end":{"line":54,"column":102}},"type":"default-arg","locations":[{"start":{"line":54,"column":101},"end":{"line":54,"column":102}}],"line":54},"3":{"loc":{"start":{"line":65,"column":7},"end":{"line":65,"column":47}},"type":"cond-expr","locations":[{"start":{"line":65,"column":33},"end":{"line":65,"column":42}},{"start":{"line":65,"column":45},"end":{"line":65,"column":47}}],"line":65}},"s":{"0":1,"1":1,"2":1,"3":0,"4":1,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0],"1":[0],"2":[0],"3":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/components/tabs.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/components/tabs.ts"],"names":[],"mappings":";;;AAAA,2CAAyD;AAEzD,SAAS,UAAU,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,eAAuB,EAAE,EAAE,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;iCAerB,eAAe;;;;;;;;;;;;;;;kCAed,eAAe;;;;;;;;;;iCAUhB,eAAe;;;;;SAKvC,CAAC;AAEV,SAAgB,IAAI,CACnB,IAAqC,EACrC,kBAAkB,GAAG,oBAAoB,EACzC,cAAc,GAAG,CAAC,EAClB,eAAe,GAAG,CAAC;IAEnB,OAAO,UAAU,CAAC,uBAAU,CAAA,GAAG,KAAK,CAAC,eAAe,CAAC;GACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACjB,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACzB,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QACjC,OAAO,UAAU,CAAC;;;WAGV,EAAE;yBACY,EAAE;;OAEpB,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;yCAEN,EAAE,UAAU,EAAE;OAChD,SAAS;aACH,CAAC;IACZ,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC;GACV,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE;QAC/C,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,UAAU,CAAC,uBAAU,CAAA;OACvB,KAAK;;2CAE+B,EAAE,KAAK,OAAO;;mBAEtC,EAAE,oBAAoB,EAAE;;;mBAGxB,EAAE,4BAA4B,EAAE;;;mBAGhC,EAAE,+BAA+B,EAAE;QAC9C,kBAAkB;;aAEb,CAAC;IACb,CAAC,CAAC,EAAE,CAAC;AACN,CAAC;AAzCD,oBAyCC","sourcesContent":["import { FlatTemplatable, tempstream } from \"tempstream\";\n\nfunction name_to_id(str: string) {\n\treturn str.replace(/\\W/g, \"-\");\n}\n\nconst style = (hide_tabs_width: number) => /* HTML */ `<style>\n\t.tab-label {\n\t\theight: 45px;\n\t\tline-height: 45px;\n\t\tpadding: 0 45px;\n\t\tdisplay: block;\n\t\tfloat: left;\n\t\tbox-sizing: border-box;\n\t\tborder-bottom: 3px solid transparent;\n\t\tcursor: pointer;\n\t\tfont-size: 18px;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t}\n\n\t@media screen and (max-width: ${hide_tabs_width}px) {\n\t\t.tab-label {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t.tab-label--mobile {\n\t\tline-height: unset;\n\t\tpadding-top: 30px;\n\t\tpadding-left: 0;\n\t\tpointer-events: none;\n\t\tpadding-bottom: 30px;\n\t\tcolor: $font-graphite;\n\t\tborder-bottom: 2px solid $font-primary;\n\t\tdisplay: none;\n\t\t@media screen and (max-width: ${hide_tabs_width}px) {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t.tab-content {\n\t\tpadding-top: 30px;\n\t\tclear: both;\n\t}\n\n\t@media screen and (max-width: ${hide_tabs_width}px) {\n\t\t.tab-content {\n\t\t\tdisplay: block !important;\n\t\t}\n\t}\n</style>`;\n\nexport function tabs(\n\ttabs: Record<string, FlatTemplatable>,\n\tselected_tab_style = \"font-weight: bold;\",\n\tselected_index = 0,\n\thide_tabs_width = 0\n): FlatTemplatable {\n\treturn /* HTML */ tempstream`${style(hide_tabs_width)}\n\t${Object.keys(tabs)\n\t\t.map((tab_title, index) => {\n\t\t\tconst id = name_to_id(tab_title);\n\t\t\treturn /* HTML */ `<input\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"tabs\"\n\t\t\t\t\tid=\"${id}\"\n\t\t\t\t\tclass=\"tab-radio--${id}\"\n\t\t\t\t\tstyle=\"display: none\"\n\t\t\t\t\t${selected_index == index ? \"checked\" : \"\"}\n\t\t\t\t/>\n\t\t\t\t<label class=\"tab-label tab-label--${id}\" for=\"${id}\">\n\t\t\t\t\t${tab_title}\n\t\t\t\t</label>`;\n\t\t})\n\t\t.join(\"\\n\")}\n\t${Object.entries(tabs).map(([title, content]) => {\n\t\tconst id = name_to_id(title);\n\t\treturn /* HTML */ tempstream`<div class=\"tab-label tab-label--mobile\">\n\t\t\t\t\t${title}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"tab-content tab-content--${id}\">${content}</div>\n\t\t\t\t<style>\n\t\t\t\t\t.tab-radio--${id} ~ .tab-content--${id} {\n\t\t\t\t\t\tdisplay:none;\n\t\t\t\t\t}\n\t\t\t\t\t.tab-radio--${id}:checked ~ .tab-content--${id} {\n\t\t\t\t\t\tdisplay:block;\n\t\t\t\t\t}\n\t\t\t\t\t.tab-radio--${id}:checked ~ label.tab-label--${id} {\n\t\t\t\t\t\t${selected_tab_style}\n\t\t\t\t\t}\n\t\t\t\t</style>`;\n\t})}`;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d87c83771fd5eb8d549c2a576a6f6fbec50b652e"},"/home/kuba/projects/sealcode/sealgen/src/components/toggle-modal.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/components/toggle-modal.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":41}},"4":{"start":{"line":7,"column":55},"end":{"line":7,"column":62}},"5":{"start":{"line":8,"column":15},"end":{"line":8,"column":37}},"6":{"start":{"line":9,"column":4},"end":{"line":47,"column":10}},"7":{"start":{"line":49,"column":0},"end":{"line":49,"column":34}}},"fnMap":{"0":{"name":"toggleModal","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":20}},"loc":{"start":{"line":6,"column":30},"end":{"line":48,"column":1}},"line":6}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":0,"6":0,"7":1},"f":{"0":0},"b":{},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/components/toggle-modal.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/components/toggle-modal.ts"],"names":[],"mappings":";;;AAAA,2CAAyD;AACzD,0CAA0C;AAE1C,SAAgB,WAAW,CAAC,OAM3B;IACA,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3D,MAAM,EAAE,GAAG,gBAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,uBAAU,CAAA,UAAU,CAAC;;;;;;;;;;;;;OAatB,EAAE;;;;OAIF,EAAE;;;;OAIF,EAAE;;;;;;;;;;;;;2CAakC,EAAE;gBAC7B,EAAE,WAAW,EAAE;wCACS,cAAc,CAAC,EAAE,CAAC;0CAChB,gBAAgB,CAAC,EAAE,CAAC;SACrD,CAAC;AACV,CAAC;AAhDD,kCAgDC","sourcesContent":["import { FlatTemplatable, tempstream } from \"tempstream\";\nimport { makeSlug } from \"../utils/utils\";\n\nexport function toggleModal(options: {\n\tname: string;\n\tcontentWrapped: (id: string) => FlatTemplatable | Promise<FlatTemplatable>;\n\tcontentUnwrapped: (\n\t\tid: string\n\t) => FlatTemplatable | Promise<FlatTemplatable>;\n}) {\n\tconst { contentWrapped, contentUnwrapped, name } = options;\n\tconst id = makeSlug(name);\n\treturn tempstream/* HTML */ `<style>\n\t\t\t.toggle-modal__wrapped {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t@media (max-width: 960px) {\n\t\t\t\t.toggle-modal__wrapped {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t}\n\t\t\t\t.toggle-modal__unwrapped {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t#${id} {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t#${id}:checked ~ .toggle-modal__wrapped {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t#${id}:checked ~ .toggle-modal__unwrapped {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\tposition: fixed;\n\t\t\t\t\theight: 100vh;\n\t\t\t\t\twidth: 100vw;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\tbackground-color: white;\n\t\t\t\t\tz-index: 99;\n\t\t\t\t\toverflow-y: scroll;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t\t<div class=\"toggle-modal toggle-modal--${id}\">\n\t\t\t<input id=\"${id}\" name=\"${id}\" type=\"checkbox\" autocomplete=\"off\" />\n\t\t\t<div class=\"toggle-modal__wrapped\">${contentWrapped(id)}</div>\n\t\t\t<div class=\"toggle-modal__unwrapped\">${contentUnwrapped(id)}</div>\n\t\t</div>`;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d8fa6c4b733b4b2e73cc8e779ebd5b57b74f1354"},"/home/kuba/projects/sealcode/sealgen/src/mount.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/mount.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":23}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":38}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":17}},"4":{"start":{"line":7,"column":4},"end":{"line":10,"column":5}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":34}},"6":{"start":{"line":11,"column":4},"end":{"line":11,"column":55}},"7":{"start":{"line":14,"column":20},"end":{"line":14,"column":62}},"8":{"start":{"line":15,"column":17},"end":{"line":49,"column":9}},"9":{"start":{"line":22,"column":16},"end":{"line":38,"column":18}},"10":{"start":{"line":26,"column":28},"end":{"line":33,"column":29}},"11":{"start":{"line":28,"column":32},"end":{"line":28,"column":49}},"12":{"start":{"line":32,"column":32},"end":{"line":32,"column":49}},"13":{"start":{"line":36,"column":38},"end":{"line":36,"column":39}},"14":{"start":{"line":40,"column":16},"end":{"line":40,"column":29}},"15":{"start":{"line":50,"column":4},"end":{"line":50,"column":33}},"16":{"start":{"line":51,"column":4},"end":{"line":51,"column":21}},"17":{"start":{"line":53,"column":4},"end":{"line":60,"column":7}},"18":{"start":{"line":54,"column":21},"end":{"line":54,"column":28}},"19":{"start":{"line":55,"column":8},"end":{"line":58,"column":9}},"20":{"start":{"line":56,"column":12},"end":{"line":56,"column":33}},"21":{"start":{"line":57,"column":12},"end":{"line":57,"column":40}},"22":{"start":{"line":59,"column":8},"end":{"line":59,"column":21}},"23":{"start":{"line":61,"column":4},"end":{"line":70,"column":7}},"24":{"start":{"line":62,"column":8},"end":{"line":62,"column":59}},"25":{"start":{"line":63,"column":30},"end":{"line":63,"column":60}},"26":{"start":{"line":64,"column":8},"end":{"line":68,"column":9}},"27":{"start":{"line":65,"column":12},"end":{"line":65,"column":29}},"28":{"start":{"line":66,"column":12},"end":{"line":66,"column":60}},"29":{"start":{"line":67,"column":12},"end":{"line":67,"column":19}},"30":{"start":{"line":69,"column":8},"end":{"line":69,"column":21}},"31":{"start":{"line":71,"column":4},"end":{"line":71,"column":37}},"32":{"start":{"line":73,"column":0},"end":{"line":73,"column":22}}},"fnMap":{"0":{"name":"handleHtmlPromise","decl":{"start":{"line":5,"column":15},"end":{"line":5,"column":32}},"loc":{"start":{"line":5,"column":44},"end":{"line":12,"column":1}},"line":5},"1":{"name":"mount","decl":{"start":{"line":13,"column":9},"end":{"line":13,"column":14}},"loc":{"start":{"line":13,"column":62},"end":{"line":72,"column":1}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":17,"column":12},"end":{"line":17,"column":13}},"loc":{"start":{"line":17,"column":33},"end":{"line":41,"column":13}},"line":17},"3":{"name":"(anonymous_3)","decl":{"start":{"line":25,"column":29},"end":{"line":25,"column":30}},"loc":{"start":{"line":25,"column":48},"end":{"line":34,"column":25}},"line":25},"4":{"name":"(anonymous_4)","decl":{"start":{"line":28,"column":39},"end":{"line":28,"column":40}},"loc":{"start":{"line":28,"column":45},"end":{"line":28,"column":48}},"line":28},"5":{"name":"(anonymous_5)","decl":{"start":{"line":32,"column":39},"end":{"line":32,"column":40}},"loc":{"start":{"line":32,"column":45},"end":{"line":32,"column":48}},"line":32},"6":{"name":"(anonymous_6)","decl":{"start":{"line":36,"column":31},"end":{"line":36,"column":32}},"loc":{"start":{"line":36,"column":38},"end":{"line":36,"column":39}},"line":36},"7":{"name":"(anonymous_7)","decl":{"start":{"line":53,"column":37},"end":{"line":53,"column":38}},"loc":{"start":{"line":53,"column":58},"end":{"line":60,"column":5}},"line":53},"8":{"name":"(anonymous_8)","decl":{"start":{"line":61,"column":24},"end":{"line":61,"column":25}},"loc":{"start":{"line":61,"column":45},"end":{"line":70,"column":5}},"line":61}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":4},"end":{"line":10,"column":5}},"type":"if","locations":[{"start":{"line":7,"column":4},"end":{"line":10,"column":5}},{"start":{"line":7,"column":4},"end":{"line":10,"column":5}}],"line":7},"1":{"loc":{"start":{"line":13,"column":39},"end":{"line":13,"column":60}},"type":"default-arg","locations":[{"start":{"line":13,"column":55},"end":{"line":13,"column":60}}],"line":13},"2":{"loc":{"start":{"line":14,"column":20},"end":{"line":14,"column":62}},"type":"cond-expr","locations":[{"start":{"line":14,"column":46},"end":{"line":14,"column":49}},{"start":{"line":14,"column":52},"end":{"line":14,"column":62}}],"line":14},"3":{"loc":{"start":{"line":15,"column":17},"end":{"line":49,"column":9}},"type":"cond-expr","locations":[{"start":{"line":16,"column":10},"end":{"line":44,"column":9}},{"start":{"line":45,"column":10},"end":{"line":49,"column":9}}],"line":15},"4":{"loc":{"start":{"line":26,"column":28},"end":{"line":33,"column":29}},"type":"if","locations":[{"start":{"line":26,"column":28},"end":{"line":33,"column":29}},{"start":{"line":26,"column":28},"end":{"line":33,"column":29}}],"line":26},"5":{"loc":{"start":{"line":55,"column":8},"end":{"line":58,"column":9}},"type":"if","locations":[{"start":{"line":55,"column":8},"end":{"line":58,"column":9}},{"start":{"line":55,"column":8},"end":{"line":58,"column":9}}],"line":55},"6":{"loc":{"start":{"line":64,"column":8},"end":{"line":68,"column":9}},"type":"if","locations":[{"start":{"line":64,"column":8},"end":{"line":68,"column":9}},{"start":{"line":64,"column":8},"end":{"line":68,"column":9}}],"line":64},"7":{"loc":{"start":{"line":66,"column":23},"end":{"line":66,"column":59}},"type":"binary-expr","locations":[{"start":{"line":66,"column":23},"end":{"line":66,"column":44}},{"start":{"line":66,"column":48},"end":{"line":66,"column":59}}],"line":66}},"s":{"0":1,"1":1,"2":1,"3":36,"4":36,"5":12,"6":36,"7":13,"8":13,"9":36,"10":36,"11":36,"12":0,"13":7,"14":36,"15":13,"16":13,"17":13,"18":17,"19":17,"20":0,"21":0,"22":17,"23":13,"24":36,"25":36,"26":36,"27":3,"28":3,"29":3,"30":33,"31":13,"32":1},"f":{"0":36,"1":13,"2":36,"3":36,"4":36,"5":0,"6":7,"7":17,"8":36},"b":{"0":[12,24],"1":[0],"2":[13,0],"3":[13,0],"4":[36,0],"5":[0,17],"6":[3,33],"7":[3,3]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/mount.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/mount.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from \"@koa/router\";\nimport Koa, { BaseContext, Context } from \"koa\";\nimport { Middlewares } from \"sealious\";\nimport { Mountable } from \"./page/mountable\";\n\nasync function handleHtmlPromise(ctx: Context, next: Koa.Next) {\n\tawait next();\n\tif (ctx.body instanceof Promise) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tctx.body = await ctx.body;\n\t}\n\tctx.set(\"content-type\", \"text/html;charset=utf-8\");\n}\n\nexport function mount(\n\trouter: Router,\n\turl: string | { rawURL: string },\n\tmountable: Mountable,\n\tuse_dummy_app = false\n): void {\n\tconst raw_url = typeof url === \"string\" ? url : url.rawURL;\n\tconst args = use_dummy_app\n\t\t? [\n\t\t\t\tasync (ctx: BaseContext, next: any) => {\n\t\t\t\t\t// this dummy is a temporary solution it's ilustrating the ways that\n\t\t\t\t\t// sealgen is coupled with sealious. Definitely room for improvement in this\n\t\t\t\t\t// regard\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\tctx.$app = {\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\t\tLogger: new Proxy(\n\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tget: (_target: any, prop: any) => {\n\t\t\t\t\t\t\t\t\tif (prop === \"info\") {\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\t\t\t\t\t\t\t\t\t\treturn () => {};\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\t\t\t\t\t\t\t\t\t\treturn () => {};\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t),\n\t\t\t\t\t\tgetString: (x: string) => x,\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t} as any;\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call\n\t\t\t\t\tawait next();\n\t\t\t\t},\n\t\t\t\tMiddlewares.parseBody(),\n\t\t\t\thandleHtmlPromise,\n\t\t ]\n\t\t: [\n\t\t\t\tMiddlewares.extractContext(),\n\t\t\t\tMiddlewares.parseBody(),\n\t\t\t\thandleHtmlPromise,\n\t\t ];\n\n\trouter.use(raw_url, ...args);\n\tmountable.init();\n\n\t// to automatically add trailing slashes:\n\trouter.get(raw_url.slice(0, -1), async (ctx, next) => {\n\t\tconst url2 = ctx.URL;\n\t\tif (!url2.pathname.endsWith(\"/\")) {\n\t\t\turl2.pathname += \"/\";\n\t\t\tctx.redirect(url2.pathname);\n\t\t}\n\t\tawait next();\n\t});\n\n\trouter.use(raw_url, async (ctx, next) => {\n\t\tctx.set(\"content-type\", \"text/html;charset=utf-8\");\n\t\tconst access_result = await mountable.canAccess(ctx);\n\t\tif (!access_result.canAccess) {\n\t\t\tctx.status = 403;\n\t\t\tctx.body = access_result.message || \"no access\";\n\t\t\treturn;\n\t\t}\n\t\tawait next();\n\t});\n\n\tmountable.mount(router, raw_url);\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"54e9c16eb0e4dd28d275f4e9227e3455eea7dc99"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/email.test.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/email.test.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":17},"end":{"line":6,"column":51}},"4":{"start":{"line":7,"column":16},"end":{"line":7,"column":38}},"5":{"start":{"line":8,"column":0},"end":{"line":24,"column":3}},"6":{"start":{"line":9,"column":16},"end":{"line":9,"column":18}},"7":{"start":{"line":10,"column":4},"end":{"line":14,"column":7}},"8":{"start":{"line":11,"column":22},"end":{"line":11,"column":57}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":98}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":97}},"11":{"start":{"line":15,"column":4},"end":{"line":23,"column":7}},"12":{"start":{"line":16,"column":22},"end":{"line":16,"column":57}},"13":{"start":{"line":17,"column":32},"end":{"line":17,"column":60}},"14":{"start":{"line":18,"column":32},"end":{"line":18,"column":58}},"15":{"start":{"line":19,"column":8},"end":{"line":19,"column":69}},"16":{"start":{"line":20,"column":8},"end":{"line":20,"column":73}},"17":{"start":{"line":21,"column":8},"end":{"line":21,"column":70}},"18":{"start":{"line":22,"column":8},"end":{"line":22,"column":85}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":24},"end":{"line":8,"column":25}},"loc":{"start":{"line":8,"column":30},"end":{"line":24,"column":1}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":27},"end":{"line":10,"column":28}},"loc":{"start":{"line":10,"column":39},"end":{"line":14,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":25},"end":{"line":15,"column":26}},"loc":{"start":{"line":15,"column":37},"end":{"line":23,"column":5}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"f":{"0":1,"1":1,"2":1,"3":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/email.test.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/email.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,uCAAqC;AAErC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC5B,MAAM,GAAG,GAAG,EAAS,CAAC;IAEtB,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,KAAK,GAAG,IAAI,cAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE1C,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChF,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,cAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAEnD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACvD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import assert from \"assert\";\nimport { Fields } from \"../../index\";\n\ndescribe(\"email field\", () => {\n\tconst ctx = {} as any;\n\n\tit(\"validation logic\", async () => {\n\t\tconst field = new Fields.EmailField(true);\n\n\t\tassert.strictEqual((await field.isValueValid(ctx, \"yes@an.email\")).valid, true);\n\t\tassert.strictEqual((await field.isValueValid(ctx, \"notanemail\")).valid, false);\n\t});\n\n\tit(\"parse function\", async () => {\n\t\tconst field = new Fields.EmailField(true);\n\t\tconst string_response = await field.parse(ctx, \"42\");\n\t\tconst number_response = await field.parse(ctx, 42);\n\n\t\tassert.strictEqual(string_response.parsable, true);\n\t\tassert.strictEqual(string_response.parsed_value, \"42\");\n\t\tassert.strictEqual(number_response.parsable, false);\n\t\tassert.strictEqual(number_response.error, \"Please enter a string\");\n\t});\n});\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7f2455a2dfda9dfef5d0dbff35a52246a924b699"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum-multiple.test.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum-multiple.test.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":17},"end":{"line":6,"column":51}},"4":{"start":{"line":7,"column":16},"end":{"line":7,"column":38}},"5":{"start":{"line":8,"column":0},"end":{"line":31,"column":3}},"6":{"start":{"line":9,"column":16},"end":{"line":9,"column":18}},"7":{"start":{"line":10,"column":4},"end":{"line":15,"column":7}},"8":{"start":{"line":11,"column":22},"end":{"line":11,"column":84}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":96}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":97}},"11":{"start":{"line":14,"column":8},"end":{"line":14,"column":89}},"12":{"start":{"line":16,"column":4},"end":{"line":30,"column":7}},"13":{"start":{"line":17,"column":22},"end":{"line":17,"column":68}},"14":{"start":{"line":18,"column":38},"end":{"line":18,"column":68}},"15":{"start":{"line":19,"column":32},"end":{"line":19,"column":58}},"16":{"start":{"line":20,"column":32},"end":{"line":20,"column":64}},"17":{"start":{"line":21,"column":30},"end":{"line":21,"column":58}},"18":{"start":{"line":22,"column":8},"end":{"line":22,"column":75}},"19":{"start":{"line":23,"column":8},"end":{"line":23,"column":79}},"20":{"start":{"line":24,"column":8},"end":{"line":24,"column":70}},"21":{"start":{"line":25,"column":8},"end":{"line":25,"column":94}},"22":{"start":{"line":26,"column":8},"end":{"line":26,"column":69}},"23":{"start":{"line":27,"column":8},"end":{"line":27,"column":77}},"24":{"start":{"line":28,"column":8},"end":{"line":28,"column":67}},"25":{"start":{"line":29,"column":8},"end":{"line":29,"column":67}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":32},"end":{"line":8,"column":33}},"loc":{"start":{"line":8,"column":38},"end":{"line":31,"column":1}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":27},"end":{"line":10,"column":28}},"loc":{"start":{"line":10,"column":39},"end":{"line":15,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":25},"end":{"line":16,"column":26}},"loc":{"start":{"line":16,"column":37},"end":{"line":30,"column":5}},"line":16}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1},"f":{"0":1,"1":1,"2":1,"3":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum-multiple.test.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum-multiple.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,uCAAqC;AAErC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACpC,MAAM,GAAG,GAAG,EAAS,CAAC;IAEtB,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,KAAK,GAAG,IAAI,cAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAErE,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9E,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/E,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,CAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,cAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,qBAAqB,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAW,CAAC,CAAC;QAE1D,gBAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzD,gBAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC;QAC5E,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,gBAAM,CAAC,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,gBAAM,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,gBAAM,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import assert from \"assert\";\nimport { Fields } from \"../../index\";\n\ndescribe(\"enum-multiple field\", () => {\n\tconst ctx = {} as any;\n\n\tit(\"validation logic\", async () => {\n\t\tconst field = new Fields.EnumMultipleField(true, [\"sa\", \"mp\", \"le\"]);\n\n\t\tassert.strictEqual((await field.isValueValid(ctx, [\"sa\", \"le\"])).valid, true);\n\t\tassert.strictEqual((await field.isValueValid(ctx, [\"notvalid\"])).valid, false);\n\t\tassert.strictEqual((await field.isValueValid(ctx, [42] as any)).valid, false);\n\t});\n\n\tit(\"parse function\", async () => {\n\t\tconst field = new Fields.EnumMultipleField(true, []);\n\t\tconst string_array_response = await field.parse(ctx, [\"42\"]);\n\t\tconst number_response = await field.parse(ctx, 42);\n\t\tconst string_response = await field.parse(ctx, \"sample\");\n\t\tconst null_response = await field.parse(ctx, null as any);\n\n\t\tassert.strictEqual(string_array_response.parsable, true);\n\t\tassert.deepEqual(string_array_response.parsed_value, [\"42\"]);\n\t\tassert.strictEqual(number_response.parsable, false);\n\t\tassert.strictEqual(number_response.error, \"Please enter a list of strings\");\n\t\tassert.strictEqual(string_response.parsable, true);\n\t\tassert.deepEqual(string_response.parsed_value, [\"sample\"]);\n\t\tassert.strictEqual(null_response.parsable, true);\n\t\tassert.deepEqual(null_response.parsed_value, []);\n\t});\n});\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f84e5f7acfb0bca77638b6371aecf1f1155d3483"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum.test.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum.test.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":17},"end":{"line":6,"column":51}},"4":{"start":{"line":7,"column":16},"end":{"line":7,"column":38}},"5":{"start":{"line":8,"column":0},"end":{"line":25,"column":3}},"6":{"start":{"line":9,"column":16},"end":{"line":9,"column":18}},"7":{"start":{"line":10,"column":4},"end":{"line":15,"column":7}},"8":{"start":{"line":11,"column":22},"end":{"line":11,"column":76}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":87}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":88}},"11":{"start":{"line":14,"column":8},"end":{"line":14,"column":95}},"12":{"start":{"line":16,"column":4},"end":{"line":24,"column":7}},"13":{"start":{"line":17,"column":22},"end":{"line":17,"column":60}},"14":{"start":{"line":18,"column":32},"end":{"line":18,"column":60}},"15":{"start":{"line":19,"column":32},"end":{"line":19,"column":58}},"16":{"start":{"line":20,"column":8},"end":{"line":20,"column":69}},"17":{"start":{"line":21,"column":8},"end":{"line":21,"column":73}},"18":{"start":{"line":22,"column":8},"end":{"line":22,"column":70}},"19":{"start":{"line":23,"column":8},"end":{"line":23,"column":85}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":23},"end":{"line":8,"column":24}},"loc":{"start":{"line":8,"column":29},"end":{"line":25,"column":1}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":27},"end":{"line":10,"column":28}},"loc":{"start":{"line":10,"column":39},"end":{"line":15,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":25},"end":{"line":16,"column":26}},"loc":{"start":{"line":16,"column":37},"end":{"line":24,"column":5}},"line":16}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1},"f":{"0":1,"1":1,"2":1,"3":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum.test.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/enum.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,uCAAqC;AAErC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC3B,MAAM,GAAG,GAAG,EAAS,CAAC;IAEtB,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,KAAK,GAAG,IAAI,cAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAE7D,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrE,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtE,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,cAAM,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAEnD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACvD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import assert from \"assert\";\nimport { Fields } from \"../../index\";\n\ndescribe(\"enum field\", () => {\n\tconst ctx = {} as any;\n\n\tit(\"validation logic\", async () => {\n\t\tconst field = new Fields.EnumField(true, [\"sa\", \"mp\", \"le\"]);\n\n\t\tassert.strictEqual((await field.isValueValid(ctx, 42)).valid, false);\n\t\tassert.strictEqual((await field.isValueValid(ctx, \"mp\")).valid, true);\n\t\tassert.strictEqual((await field.isValueValid(ctx, \"notvalid\")).valid, false);\n\t});\n\n\tit(\"parse function\", async () => {\n\t\tconst field = new Fields.EnumField(true, []);\n\t\tconst string_response = await field.parse(ctx, \"42\");\n\t\tconst number_response = await field.parse(ctx, 42);\n\n\t\tassert.strictEqual(string_response.parsable, true);\n\t\tassert.strictEqual(string_response.parsed_value, \"42\");\n\t\tassert.strictEqual(number_response.parsable, false);\n\t\tassert.strictEqual(number_response.error, \"Please enter a string\");\n\t});\n});\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"50dca9f9c07040be1a75d0b377fea01684bb3d84"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/number.test.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/number.test.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":17},"end":{"line":6,"column":51}},"4":{"start":{"line":7,"column":16},"end":{"line":7,"column":38}},"5":{"start":{"line":8,"column":0},"end":{"line":34,"column":3}},"6":{"start":{"line":9,"column":16},"end":{"line":9,"column":18}},"7":{"start":{"line":10,"column":4},"end":{"line":17,"column":7}},"8":{"start":{"line":11,"column":25},"end":{"line":11,"column":64}},"9":{"start":{"line":12,"column":29},"end":{"line":12,"column":69}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":89}},"11":{"start":{"line":14,"column":8},"end":{"line":14,"column":91}},"12":{"start":{"line":15,"column":8},"end":{"line":15,"column":98}},"13":{"start":{"line":16,"column":8},"end":{"line":16,"column":93}},"14":{"start":{"line":18,"column":4},"end":{"line":33,"column":7}},"15":{"start":{"line":19,"column":25},"end":{"line":19,"column":64}},"16":{"start":{"line":20,"column":31},"end":{"line":20,"column":92}},"17":{"start":{"line":21,"column":41},"end":{"line":21,"column":72}},"18":{"start":{"line":22,"column":32},"end":{"line":22,"column":61}},"19":{"start":{"line":23,"column":38},"end":{"line":23,"column":77}},"20":{"start":{"line":24,"column":40},"end":{"line":24,"column":77}},"21":{"start":{"line":25,"column":8},"end":{"line":25,"column":78}},"22":{"start":{"line":26,"column":8},"end":{"line":26,"column":80}},"23":{"start":{"line":27,"column":8},"end":{"line":27,"column":69}},"24":{"start":{"line":28,"column":8},"end":{"line":28,"column":71}},"25":{"start":{"line":29,"column":8},"end":{"line":29,"column":76}},"26":{"start":{"line":30,"column":8},"end":{"line":30,"column":91}},"27":{"start":{"line":31,"column":8},"end":{"line":31,"column":77}},"28":{"start":{"line":32,"column":8},"end":{"line":32,"column":81}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":25},"end":{"line":8,"column":26}},"loc":{"start":{"line":8,"column":31},"end":{"line":34,"column":1}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":27},"end":{"line":10,"column":28}},"loc":{"start":{"line":10,"column":39},"end":{"line":17,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":25},"end":{"line":18,"column":26}},"loc":{"start":{"line":18,"column":37},"end":{"line":33,"column":5}},"line":18}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1},"f":{"0":1,"1":1,"2":1,"3":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/number.test.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/number.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,uCAAqC;AAErC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC7B,MAAM,GAAG,GAAG,EAAS,CAAC;IAEtB,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,QAAQ,GAAG,IAAI,cAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,cAAM,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEtD,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvE,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzE,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChF,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,QAAQ,GAAG,IAAI,cAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,IAAI,cAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,wBAAwB,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,qBAAqB,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACtE,MAAM,uBAAuB,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEtE,gBAAM,CAAC,WAAW,CAAC,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5D,gBAAM,CAAC,WAAW,CAAC,wBAAwB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC9D,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACrD,gBAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC1D,gBAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QACzE,gBAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3D,gBAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import assert from \"assert\";\nimport { Fields } from \"../../index\";\n\ndescribe(\"number field\", () => {\n\tconst ctx = {} as any;\n\n\tit(\"validation logic\", async () => {\n\t\tconst required = new Fields.NumberField(true, 0);\n\t\tconst not_required = new Fields.NumberField(false, 0);\n\n\t\tassert.strictEqual((await required.isValueValid(ctx, 42)).valid, true);\n\t\tassert.strictEqual((await required.isValueValid(ctx, \"42\")).valid, true);\n\t\tassert.strictEqual((await required.isValueValid(ctx, \"notvalid\")).valid, false);\n\t\tassert.strictEqual((await not_required.isValueValid(ctx, \"\")).valid, true);\n\t});\n\n\tit(\"parse function\", async () => {\n\t\tconst required = new Fields.NumberField(true, 0);\n\t\tconst decimal_digits = new Fields.NumberField(true, 0, { decimalDigits: 1 });\n\t\tconst number_asstring_response = await required.parse(ctx, \"42\");\n\t\tconst number_response = await required.parse(ctx, 42);\n\t\tconst not_a_number_response = await required.parse(ctx, \"notanumber\");\n\t\tconst decimal_number_response = await decimal_digits.parse(ctx, 42.2);\n\n\t\tassert.strictEqual(number_asstring_response.parsable, true);\n\t\tassert.strictEqual(number_asstring_response.parsed_value, 42);\n\t\tassert.strictEqual(number_response.parsable, true);\n\t\tassert.strictEqual(number_response.parsed_value, 42);\n\t\tassert.strictEqual(not_a_number_response.parsable, false);\n\t\tassert.strictEqual(not_a_number_response.error, \"Please enter a number\");\n\t\tassert.strictEqual(decimal_number_response.parsable, true);\n\t\tassert.strictEqual(decimal_number_response.parsed_value, 42.2);\n\t});\n});\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"07fce1279255035a62169fa33078612d147e67f7"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/pick-from-list.test.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/pick-from-list.test.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":17},"end":{"line":6,"column":51}},"4":{"start":{"line":7,"column":16},"end":{"line":7,"column":38}},"5":{"start":{"line":8,"column":0},"end":{"line":21,"column":3}},"6":{"start":{"line":9,"column":16},"end":{"line":9,"column":18}},"7":{"start":{"line":10,"column":4},"end":{"line":20,"column":7}},"8":{"start":{"line":11,"column":22},"end":{"line":16,"column":10}},"9":{"start":{"line":12,"column":12},"end":{"line":15,"column":14}},"10":{"start":{"line":17,"column":8},"end":{"line":17,"column":87}},"11":{"start":{"line":18,"column":8},"end":{"line":18,"column":94}},"12":{"start":{"line":19,"column":8},"end":{"line":19,"column":95}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":33},"end":{"line":8,"column":34}},"loc":{"start":{"line":8,"column":39},"end":{"line":21,"column":1}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":27},"end":{"line":10,"column":28}},"loc":{"start":{"line":10,"column":39},"end":{"line":20,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":11,"column":65},"end":{"line":11,"column":66}},"loc":{"start":{"line":11,"column":77},"end":{"line":16,"column":9}},"line":11}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":3,"10":1,"11":1,"12":1},"f":{"0":1,"1":1,"2":1,"3":3},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/pick-from-list.test.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/pick-from-list.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,uCAAqC;AAErC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACrC,MAAM,GAAG,GAAG,EAAS,CAAC;IAEtB,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,KAAK,GAAG,IAAI,cAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAC3D,OAAO;gBACN,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBACtC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;aACxC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,EAAS,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5E,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5E,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import assert from \"assert\";\nimport { Fields } from \"../../index\";\n\ndescribe(\"pick-from-list field\", () => {\n\tconst ctx = {} as any;\n\n\tit(\"validation logic\", async () => {\n\t\tconst field = new Fields.PickFromListField(true, async () => {\n\t\t\treturn [\n\t\t\t\t{ value: \"samplev\", label: \"samplel\" },\n\t\t\t\t{ value: \"samplevv\", label: \"samplell\" },\n\t\t\t];\n\t\t});\n\n\t\tassert.strictEqual((await field.isValueValid(ctx, 42 as any)).valid, false);\n\t\tassert.strictEqual((await field.isValueValid(ctx, \"samplevv\")).valid, true);\n\t\tassert.strictEqual((await field.isValueValid(ctx, \"notvalid\")).valid, false);\n\t});\n});\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"25d6c7a6e8dceea8460f6c62d706be3ad67fbfb2"},"/home/kuba/projects/sealcode/sealgen/src/forms/fields/regexp.test.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/regexp.test.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":17},"end":{"line":6,"column":51}},"4":{"start":{"line":7,"column":16},"end":{"line":7,"column":38}},"5":{"start":{"line":8,"column":0},"end":{"line":25,"column":3}},"6":{"start":{"line":9,"column":16},"end":{"line":9,"column":18}},"7":{"start":{"line":10,"column":4},"end":{"line":15,"column":7}},"8":{"start":{"line":11,"column":22},"end":{"line":11,"column":73}},"9":{"start":{"line":12,"column":8},"end":{"line":12,"column":88}},"10":{"start":{"line":13,"column":8},"end":{"line":13,"column":95}},"11":{"start":{"line":14,"column":8},"end":{"line":14,"column":87}},"12":{"start":{"line":16,"column":4},"end":{"line":24,"column":7}},"13":{"start":{"line":17,"column":22},"end":{"line":17,"column":73}},"14":{"start":{"line":18,"column":32},"end":{"line":18,"column":60}},"15":{"start":{"line":19,"column":32},"end":{"line":19,"column":58}},"16":{"start":{"line":20,"column":8},"end":{"line":20,"column":69}},"17":{"start":{"line":21,"column":8},"end":{"line":21,"column":73}},"18":{"start":{"line":22,"column":8},"end":{"line":22,"column":70}},"19":{"start":{"line":23,"column":8},"end":{"line":23,"column":85}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":25},"end":{"line":8,"column":26}},"loc":{"start":{"line":8,"column":31},"end":{"line":25,"column":1}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":27},"end":{"line":10,"column":28}},"loc":{"start":{"line":10,"column":39},"end":{"line":15,"column":5}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":25},"end":{"line":16,"column":26}},"loc":{"start":{"line":16,"column":37},"end":{"line":24,"column":5}},"line":16}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1},"f":{"0":1,"1":1,"2":1,"3":1},"b":{"0":[1,1,1],"1":[0,1],"2":[1,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/fields/regexp.test.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/fields/regexp.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,uCAAqC;AAErC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC7B,MAAM,GAAG,GAAG,EAAS,CAAC;IAEtB,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,KAAK,GAAG,IAAI,cAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAE1D,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtE,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7E,gBAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,cAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAEnD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACvD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,gBAAM,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import assert from \"assert\";\nimport { Fields } from \"../../index\";\n\ndescribe(\"regexp field\", () => {\n\tconst ctx = {} as any;\n\n\tit(\"validation logic\", async () => {\n\t\tconst field = new Fields.RegExpField(true, /^4/, \"error\");\n\n\t\tassert.strictEqual((await field.isValueValid(ctx, \"42\")).valid, true);\n\t\tassert.strictEqual((await field.isValueValid(ctx, \"notvalid\")).valid, false);\n\t\tassert.strictEqual((await field.isValueValid(ctx, 42)).valid, false);\n\t});\n\n\tit(\"parse function\", async () => {\n\t\tconst field = new Fields.RegExpField(true, /^4/, \"error\");\n\t\tconst string_response = await field.parse(ctx, \"42\");\n\t\tconst number_response = await field.parse(ctx, 42);\n\n\t\tassert.strictEqual(string_response.parsable, true);\n\t\tassert.strictEqual(string_response.parsed_value, \"42\");\n\t\tassert.strictEqual(number_response.parsable, false);\n\t\tassert.strictEqual(number_response.error, \"Please enter a string\");\n\t});\n});\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9ceb9152393ffaab7252e553957252fbadb01400"},"/home/kuba/projects/sealcode/sealgen/src/forms/form.test.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/form.test.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":30}},"4":{"start":{"line":7,"column":17},"end":{"line":7,"column":56}},"5":{"start":{"line":8,"column":16},"end":{"line":8,"column":49}},"6":{"start":{"line":9,"column":14},"end":{"line":9,"column":45}},"7":{"start":{"line":10,"column":16},"end":{"line":10,"column":35}},"8":{"start":{"line":11,"column":16},"end":{"line":11,"column":35}},"9":{"start":{"line":12,"column":29},"end":{"line":12,"column":72}},"10":{"start":{"line":13,"column":26},"end":{"line":13,"column":61}},"11":{"start":{"line":14,"column":16},"end":{"line":14,"column":41}},"12":{"start":{"line":15,"column":15},"end":{"line":17,"column":1}},"13":{"start":{"line":19,"column":19},"end":{"line":34,"column":8}},"14":{"start":{"line":21,"column":12},"end":{"line":21,"column":32}},"15":{"start":{"line":22,"column":12},"end":{"line":22,"column":33}},"16":{"start":{"line":23,"column":12},"end":{"line":23,"column":45}},"17":{"start":{"line":24,"column":12},"end":{"line":29,"column":14}},"18":{"start":{"line":32,"column":12},"end":{"line":32,"column":19}},"19":{"start":{"line":35,"column":4},"end":{"line":36,"column":40}},"20":{"start":{"line":36,"column":8},"end":{"line":36,"column":40}},"21":{"start":{"line":37,"column":4},"end":{"line":37,"column":18}},"22":{"start":{"line":39,"column":0},"end":{"line":39,"column":36}},"23":{"start":{"line":40,"column":0},"end":{"line":274,"column":3}},"24":{"start":{"line":42,"column":4},"end":{"line":46,"column":7}},"25":{"start":{"line":43,"column":24},"end":{"line":43,"column":60}},"26":{"start":{"line":44,"column":24},"end":{"line":44,"column":50}},"27":{"start":{"line":45,"column":8},"end":{"line":45,"column":39}},"28":{"start":{"line":47,"column":4},"end":{"line":86,"column":7}},"29":{"start":{"line":49,"column":8},"end":{"line":56,"column":11}},"30":{"start":{"line":50,"column":24},"end":{"line":50,"column":43}},"31":{"start":{"line":51,"column":27},"end":{"line":51,"column":49}},"32":{"start":{"line":52,"column":12},"end":{"line":52,"column":61}},"33":{"start":{"line":53,"column":12},"end":{"line":53,"column":66}},"34":{"start":{"line":54,"column":12},"end":{"line":54,"column":38}},"35":{"start":{"line":55,"column":12},"end":{"line":55,"column":53}},"36":{"start":{"line":57,"column":8},"end":{"line":59,"column":11}},"37":{"start":{"line":58,"column":12},"end":{"line":58,"column":27}},"38":{"start":{"line":60,"column":8},"end":{"line":65,"column":11}},"39":{"start":{"line":61,"column":12},"end":{"line":61,"column":84}},"40":{"start":{"line":62,"column":12},"end":{"line":64,"column":15}},"41":{"start":{"line":63,"column":16},"end":{"line":63,"column":70}},"42":{"start":{"line":66,"column":8},"end":{"line":71,"column":11}},"43":{"start":{"line":67,"column":12},"end":{"line":67,"column":60}},"44":{"start":{"line":68,"column":12},"end":{"line":68,"column":71}},"45":{"start":{"line":69,"column":12},"end":{"line":69,"column":84}},"46":{"start":{"line":70,"column":12},"end":{"line":70,"column":49}},"47":{"start":{"line":72,"column":8},"end":{"line":85,"column":11}},"48":{"start":{"line":73,"column":30},"end":{"line":81,"column":14}},"49":{"start":{"line":77,"column":20},"end":{"line":78,"column":36}},"50":{"start":{"line":78,"column":24},"end":{"line":78,"column":36}},"51":{"start":{"line":79,"column":20},"end":{"line":79,"column":33}},"52":{"start":{"line":82,"column":12},"end":{"line":84,"column":13}},"53":{"start":{"line":83,"column":16},"end":{"line":83,"column":99}},"54":{"start":{"line":87,"column":4},"end":{"line":171,"column":7}},"55":{"start":{"line":89,"column":8},"end":{"line":91,"column":11}},"56":{"start":{"line":90,"column":12},"end":{"line":90,"column":27}},"57":{"start":{"line":92,"column":8},"end":{"line":104,"column":11}},"58":{"start":{"line":93,"column":24},"end":{"line":93,"column":43}},"59":{"start":{"line":94,"column":27},"end":{"line":94,"column":49}},"60":{"start":{"line":95,"column":12},"end":{"line":97,"column":22}},"61":{"start":{"line":96,"column":16},"end":{"line":96,"column":56}},"62":{"start":{"line":98,"column":12},"end":{"line":98,"column":66}},"63":{"start":{"line":99,"column":12},"end":{"line":99,"column":38}},"64":{"start":{"line":100,"column":29},"end":{"line":100,"column":69}},"65":{"start":{"line":101,"column":12},"end":{"line":103,"column":13}},"66":{"start":{"line":102,"column":16},"end":{"line":102,"column":97}},"67":{"start":{"line":105,"column":8},"end":{"line":134,"column":11}},"68":{"start":{"line":106,"column":24},"end":{"line":106,"column":43}},"69":{"start":{"line":107,"column":27},"end":{"line":107,"column":49}},"70":{"start":{"line":108,"column":12},"end":{"line":113,"column":15}},"71":{"start":{"line":109,"column":16},"end":{"line":111,"column":26}},"72":{"start":{"line":110,"column":20},"end":{"line":110,"column":61}},"73":{"start":{"line":112,"column":16},"end":{"line":112,"column":70}},"74":{"start":{"line":114,"column":12},"end":{"line":116,"column":15}},"75":{"start":{"line":115,"column":16},"end":{"line":115,"column":42}},"76":{"start":{"line":117,"column":12},"end":{"line":122,"column":15}},"77":{"start":{"line":118,"column":33},"end":{"line":118,"column":73}},"78":{"start":{"line":119,"column":16},"end":{"line":121,"column":17}},"79":{"start":{"line":120,"column":20},"end":{"line":120,"column":101}},"80":{"start":{"line":123,"column":12},"end":{"line":133,"column":15}},"81":{"start":{"line":124,"column":16},"end":{"line":132,"column":19}},"82":{"start":{"line":128,"column":24},"end":{"line":129,"column":40}},"83":{"start":{"line":129,"column":28},"end":{"line":129,"column":40}},"84":{"start":{"line":130,"column":24},"end":{"line":130,"column":37}},"85":{"start":{"line":135,"column":8},"end":{"line":149,"column":11}},"86":{"start":{"line":136,"column":24},"end":{"line":136,"column":43}},"87":{"start":{"line":137,"column":27},"end":{"line":137,"column":49}},"88":{"start":{"line":138,"column":12},"end":{"line":142,"column":22}},"89":{"start":{"line":139,"column":16},"end":{"line":141,"column":56}},"90":{"start":{"line":143,"column":12},"end":{"line":143,"column":66}},"91":{"start":{"line":144,"column":12},"end":{"line":144,"column":38}},"92":{"start":{"line":145,"column":29},"end":{"line":145,"column":69}},"93":{"start":{"line":146,"column":12},"end":{"line":148,"column":13}},"94":{"start":{"line":147,"column":16},"end":{"line":147,"column":97}},"95":{"start":{"line":150,"column":8},"end":{"line":170,"column":11}},"96":{"start":{"line":151,"column":24},"end":{"line":151,"column":43}},"97":{"start":{"line":152,"column":27},"end":{"line":152,"column":49}},"98":{"start":{"line":153,"column":12},"end":{"line":158,"column":15}},"99":{"start":{"line":154,"column":16},"end":{"line":156,"column":18}},"100":{"start":{"line":157,"column":16},"end":{"line":157,"column":29}},"101":{"start":{"line":159,"column":12},"end":{"line":163,"column":22}},"102":{"start":{"line":160,"column":16},"end":{"line":162,"column":56}},"103":{"start":{"line":164,"column":12},"end":{"line":164,"column":66}},"104":{"start":{"line":165,"column":12},"end":{"line":165,"column":38}},"105":{"start":{"line":166,"column":29},"end":{"line":166,"column":69}},"106":{"start":{"line":167,"column":12},"end":{"line":169,"column":13}},"107":{"start":{"line":168,"column":16},"end":{"line":168,"column":97}},"108":{"start":{"line":172,"column":4},"end":{"line":273,"column":7}},"109":{"start":{"line":173,"column":8},"end":{"line":224,"column":11}},"110":{"start":{"line":175,"column":12},"end":{"line":205,"column":15}},"111":{"start":{"line":176,"column":28},"end":{"line":176,"column":47}},"112":{"start":{"line":177,"column":31},"end":{"line":177,"column":53}},"113":{"start":{"line":178,"column":16},"end":{"line":201,"column":28}},"114":{"start":{"line":180,"column":24},"end":{"line":180,"column":44}},"115":{"start":{"line":181,"column":24},"end":{"line":181,"column":45}},"116":{"start":{"line":182,"column":24},"end":{"line":182,"column":57}},"117":{"start":{"line":183,"column":24},"end":{"line":188,"column":26}},"118":{"start":{"line":191,"column":24},"end":{"line":191,"column":31}},"119":{"start":{"line":194,"column":24},"end":{"line":198,"column":30}},"120":{"start":{"line":195,"column":28},"end":{"line":198,"column":30}},"121":{"start":{"line":199,"column":24},"end":{"line":199,"column":58}},"122":{"start":{"line":202,"column":16},"end":{"line":202,"column":70}},"123":{"start":{"line":203,"column":16},"end":{"line":203,"column":42}},"124":{"start":{"line":204,"column":16},"end":{"line":204,"column":57}},"125":{"start":{"line":206,"column":12},"end":{"line":208,"column":15}},"126":{"start":{"line":207,"column":16},"end":{"line":207,"column":31}},"127":{"start":{"line":209,"column":12},"end":{"line":215,"column":15}},"128":{"start":{"line":210,"column":16},"end":{"line":210,"column":64}},"129":{"start":{"line":211,"column":16},"end":{"line":211,"column":74}},"130":{"start":{"line":212,"column":16},"end":{"line":212,"column":75}},"131":{"start":{"line":213,"column":16},"end":{"line":214,"column":98}},"132":{"start":{"line":214,"column":20},"end":{"line":214,"column":98}},"133":{"start":{"line":216,"column":12},"end":{"line":223,"column":15}},"134":{"start":{"line":217,"column":16},"end":{"line":217,"column":64}},"135":{"start":{"line":218,"column":16},"end":{"line":218,"column":72}},"136":{"start":{"line":219,"column":16},"end":{"line":219,"column":75}},"137":{"start":{"line":220,"column":16},"end":{"line":222,"column":19}},"138":{"start":{"line":221,"column":20},"end":{"line":221,"column":85}},"139":{"start":{"line":225,"column":8},"end":{"line":272,"column":11}},"140":{"start":{"line":227,"column":12},"end":{"line":252,"column":15}},"141":{"start":{"line":228,"column":28},"end":{"line":228,"column":47}},"142":{"start":{"line":229,"column":31},"end":{"line":229,"column":53}},"143":{"start":{"line":230,"column":31},"end":{"line":232,"column":17}},"144":{"start":{"line":233,"column":16},"end":{"line":248,"column":28}},"145":{"start":{"line":235,"column":24},"end":{"line":235,"column":44}},"146":{"start":{"line":236,"column":24},"end":{"line":236,"column":45}},"147":{"start":{"line":237,"column":24},"end":{"line":237,"column":57}},"148":{"start":{"line":238,"column":24},"end":{"line":243,"column":26}},"149":{"start":{"line":246,"column":24},"end":{"line":246,"column":31}},"150":{"start":{"line":249,"column":16},"end":{"line":249,"column":70}},"151":{"start":{"line":250,"column":16},"end":{"line":250,"column":42}},"152":{"start":{"line":251,"column":16},"end":{"line":251,"column":57}},"153":{"start":{"line":253,"column":12},"end":{"line":255,"column":15}},"154":{"start":{"line":254,"column":16},"end":{"line":254,"column":31}},"155":{"start":{"line":256,"column":12},"end":{"line":261,"column":15}},"156":{"start":{"line":257,"column":16},"end":{"line":257,"column":60}},"157":{"start":{"line":258,"column":16},"end":{"line":258,"column":71}},"158":{"start":{"line":259,"column":16},"end":{"line":259,"column":75}},"159":{"start":{"line":260,"column":16},"end":{"line":260,"column":84}},"160":{"start":{"line":262,"column":12},"end":{"line":271,"column":15}},"161":{"start":{"line":263,"column":16},"end":{"line":263,"column":60}},"162":{"start":{"line":264,"column":16},"end":{"line":264,"column":73}},"163":{"start":{"line":265,"column":16},"end":{"line":265,"column":75}},"164":{"start":{"line":266,"column":16},"end":{"line":270,"column":19}},"165":{"start":{"line":267,"column":20},"end":{"line":269,"column":49}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"form_factory","decl":{"start":{"line":18,"column":9},"end":{"line":18,"column":21}},"loc":{"start":{"line":18,"column":36},"end":{"line":38,"column":1}},"line":18},"2":{"name":"(anonymous_2)","decl":{"start":{"line":20,"column":8},"end":{"line":20,"column":9}},"loc":{"start":{"line":20,"column":22},"end":{"line":30,"column":9}},"line":20},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":8},"end":{"line":31,"column":9}},"loc":{"start":{"line":31,"column":25},"end":{"line":33,"column":9}},"line":31},"4":{"name":"(anonymous_4)","decl":{"start":{"line":40,"column":22},"end":{"line":40,"column":23}},"loc":{"start":{"line":40,"column":28},"end":{"line":274,"column":1}},"line":40},"5":{"name":"(anonymous_5)","decl":{"start":{"line":42,"column":11},"end":{"line":42,"column":12}},"loc":{"start":{"line":42,"column":23},"end":{"line":46,"column":5}},"line":42},"6":{"name":"(anonymous_6)","decl":{"start":{"line":47,"column":28},"end":{"line":47,"column":29}},"loc":{"start":{"line":47,"column":40},"end":{"line":86,"column":5}},"line":47},"7":{"name":"(anonymous_7)","decl":{"start":{"line":49,"column":15},"end":{"line":49,"column":16}},"loc":{"start":{"line":49,"column":27},"end":{"line":56,"column":9}},"line":49},"8":{"name":"(anonymous_8)","decl":{"start":{"line":57,"column":14},"end":{"line":57,"column":15}},"loc":{"start":{"line":57,"column":26},"end":{"line":59,"column":9}},"line":57},"9":{"name":"(anonymous_9)","decl":{"start":{"line":60,"column":83},"end":{"line":60,"column":84}},"loc":{"start":{"line":60,"column":95},"end":{"line":65,"column":9}},"line":60},"10":{"name":"(anonymous_10)","decl":{"start":{"line":62,"column":44},"end":{"line":62,"column":45}},"loc":{"start":{"line":62,"column":56},"end":{"line":64,"column":13}},"line":62},"11":{"name":"(anonymous_11)","decl":{"start":{"line":66,"column":76},"end":{"line":66,"column":77}},"loc":{"start":{"line":66,"column":88},"end":{"line":71,"column":9}},"line":66},"12":{"name":"(anonymous_12)","decl":{"start":{"line":72,"column":93},"end":{"line":72,"column":94}},"loc":{"start":{"line":72,"column":105},"end":{"line":85,"column":9}},"line":72},"13":{"name":"(anonymous_13)","decl":{"start":{"line":76,"column":32},"end":{"line":76,"column":33}},"loc":{"start":{"line":76,"column":44},"end":{"line":80,"column":17}},"line":76},"14":{"name":"(anonymous_14)","decl":{"start":{"line":87,"column":32},"end":{"line":87,"column":33}},"loc":{"start":{"line":87,"column":44},"end":{"line":171,"column":5}},"line":87},"15":{"name":"(anonymous_15)","decl":{"start":{"line":89,"column":18},"end":{"line":89,"column":19}},"loc":{"start":{"line":89,"column":30},"end":{"line":91,"column":9}},"line":89},"16":{"name":"(anonymous_16)","decl":{"start":{"line":92,"column":71},"end":{"line":92,"column":72}},"loc":{"start":{"line":92,"column":83},"end":{"line":104,"column":9}},"line":92},"17":{"name":"(anonymous_17)","decl":{"start":{"line":95,"column":52},"end":{"line":95,"column":53}},"loc":{"start":{"line":95,"column":67},"end":{"line":97,"column":13}},"line":95},"18":{"name":"(anonymous_18)","decl":{"start":{"line":105,"column":65},"end":{"line":105,"column":66}},"loc":{"start":{"line":105,"column":77},"end":{"line":134,"column":9}},"line":105},"19":{"name":"(anonymous_19)","decl":{"start":{"line":108,"column":19},"end":{"line":108,"column":20}},"loc":{"start":{"line":108,"column":31},"end":{"line":113,"column":13}},"line":108},"20":{"name":"(anonymous_20)","decl":{"start":{"line":109,"column":56},"end":{"line":109,"column":57}},"loc":{"start":{"line":109,"column":71},"end":{"line":111,"column":17}},"line":109},"21":{"name":"(anonymous_21)","decl":{"start":{"line":114,"column":23},"end":{"line":114,"column":24}},"loc":{"start":{"line":114,"column":35},"end":{"line":116,"column":13}},"line":114},"22":{"name":"(anonymous_22)","decl":{"start":{"line":117,"column":51},"end":{"line":117,"column":52}},"loc":{"start":{"line":117,"column":63},"end":{"line":122,"column":13}},"line":117},"23":{"name":"(anonymous_23)","decl":{"start":{"line":123,"column":70},"end":{"line":123,"column":71}},"loc":{"start":{"line":123,"column":82},"end":{"line":133,"column":13}},"line":123},"24":{"name":"(anonymous_24)","decl":{"start":{"line":127,"column":36},"end":{"line":127,"column":37}},"loc":{"start":{"line":127,"column":48},"end":{"line":131,"column":21}},"line":127},"25":{"name":"(anonymous_25)","decl":{"start":{"line":135,"column":59},"end":{"line":135,"column":60}},"loc":{"start":{"line":135,"column":71},"end":{"line":149,"column":9}},"line":135},"26":{"name":"(anonymous_26)","decl":{"start":{"line":138,"column":52},"end":{"line":138,"column":53}},"loc":{"start":{"line":138,"column":67},"end":{"line":142,"column":13}},"line":138},"27":{"name":"(anonymous_27)","decl":{"start":{"line":150,"column":58},"end":{"line":150,"column":59}},"loc":{"start":{"line":150,"column":70},"end":{"line":170,"column":9}},"line":150},"28":{"name":"(anonymous_28)","decl":{"start":{"line":153,"column":23},"end":{"line":153,"column":24}},"loc":{"start":{"line":153,"column":44},"end":{"line":158,"column":13}},"line":153},"29":{"name":"(anonymous_29)","decl":{"start":{"line":159,"column":52},"end":{"line":159,"column":53}},"loc":{"start":{"line":159,"column":67},"end":{"line":163,"column":13}},"line":159},"30":{"name":"(anonymous_30)","decl":{"start":{"line":172,"column":31},"end":{"line":172,"column":32}},"loc":{"start":{"line":172,"column":43},"end":{"line":273,"column":5}},"line":172},"31":{"name":"(anonymous_31)","decl":{"start":{"line":173,"column":39},"end":{"line":173,"column":40}},"loc":{"start":{"line":173,"column":51},"end":{"line":224,"column":9}},"line":173},"32":{"name":"(anonymous_32)","decl":{"start":{"line":175,"column":19},"end":{"line":175,"column":20}},"loc":{"start":{"line":175,"column":31},"end":{"line":205,"column":13}},"line":175},"33":{"name":"(anonymous_33)","decl":{"start":{"line":179,"column":20},"end":{"line":179,"column":21}},"loc":{"start":{"line":179,"column":34},"end":{"line":189,"column":21}},"line":179},"34":{"name":"(anonymous_34)","decl":{"start":{"line":190,"column":20},"end":{"line":190,"column":21}},"loc":{"start":{"line":190,"column":37},"end":{"line":192,"column":21}},"line":190},"35":{"name":"(anonymous_35)","decl":{"start":{"line":193,"column":20},"end":{"line":193,"column":21}},"loc":{"start":{"line":193,"column":52},"end":{"line":200,"column":21}},"line":193},"36":{"name":"(anonymous_36)","decl":{"start":{"line":206,"column":18},"end":{"line":206,"column":19}},"loc":{"start":{"line":206,"column":30},"end":{"line":208,"column":13}},"line":206},"37":{"name":"(anonymous_37)","decl":{"start":{"line":209,"column":57},"end":{"line":209,"column":58}},"loc":{"start":{"line":209,"column":69},"end":{"line":215,"column":13}},"line":209},"38":{"name":"(anonymous_38)","decl":{"start":{"line":216,"column":59},"end":{"line":216,"column":60}},"loc":{"start":{"line":216,"column":71},"end":{"line":223,"column":13}},"line":216},"39":{"name":"(anonymous_39)","decl":{"start":{"line":220,"column":48},"end":{"line":220,"column":49}},"loc":{"start":{"line":220,"column":60},"end":{"line":222,"column":17}},"line":220},"40":{"name":"(anonymous_40)","decl":{"start":{"line":225,"column":54},"end":{"line":225,"column":55}},"loc":{"start":{"line":225,"column":66},"end":{"line":272,"column":9}},"line":225},"41":{"name":"(anonymous_41)","decl":{"start":{"line":227,"column":19},"end":{"line":227,"column":20}},"loc":{"start":{"line":227,"column":31},"end":{"line":252,"column":13}},"line":227},"42":{"name":"(anonymous_42)","decl":{"start":{"line":234,"column":20},"end":{"line":234,"column":21}},"loc":{"start":{"line":234,"column":34},"end":{"line":244,"column":21}},"line":234},"43":{"name":"(anonymous_43)","decl":{"start":{"line":245,"column":20},"end":{"line":245,"column":21}},"loc":{"start":{"line":245,"column":37},"end":{"line":247,"column":21}},"line":245},"44":{"name":"(anonymous_44)","decl":{"start":{"line":253,"column":18},"end":{"line":253,"column":19}},"loc":{"start":{"line":253,"column":30},"end":{"line":255,"column":13}},"line":253},"45":{"name":"(anonymous_45)","decl":{"start":{"line":256,"column":57},"end":{"line":256,"column":58}},"loc":{"start":{"line":256,"column":69},"end":{"line":261,"column":13}},"line":256},"46":{"name":"(anonymous_46)","decl":{"start":{"line":262,"column":62},"end":{"line":262,"column":63}},"loc":{"start":{"line":262,"column":74},"end":{"line":271,"column":13}},"line":262},"47":{"name":"(anonymous_47)","decl":{"start":{"line":266,"column":42},"end":{"line":266,"column":43}},"loc":{"start":{"line":266,"column":54},"end":{"line":270,"column":17}},"line":266}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":35,"column":4},"end":{"line":36,"column":40}},"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":36,"column":40}},{"start":{"line":35,"column":4},"end":{"line":36,"column":40}}],"line":35},"4":{"loc":{"start":{"line":77,"column":20},"end":{"line":78,"column":36}},"type":"if","locations":[{"start":{"line":77,"column":20},"end":{"line":78,"column":36}},{"start":{"line":77,"column":20},"end":{"line":78,"column":36}}],"line":77},"5":{"loc":{"start":{"line":82,"column":12},"end":{"line":84,"column":13}},"type":"if","locations":[{"start":{"line":82,"column":12},"end":{"line":84,"column":13}},{"start":{"line":82,"column":12},"end":{"line":84,"column":13}}],"line":82},"6":{"loc":{"start":{"line":101,"column":12},"end":{"line":103,"column":13}},"type":"if","locations":[{"start":{"line":101,"column":12},"end":{"line":103,"column":13}},{"start":{"line":101,"column":12},"end":{"line":103,"column":13}}],"line":101},"7":{"loc":{"start":{"line":119,"column":16},"end":{"line":121,"column":17}},"type":"if","locations":[{"start":{"line":119,"column":16},"end":{"line":121,"column":17}},{"start":{"line":119,"column":16},"end":{"line":121,"column":17}}],"line":119},"8":{"loc":{"start":{"line":128,"column":24},"end":{"line":129,"column":40}},"type":"if","locations":[{"start":{"line":128,"column":24},"end":{"line":129,"column":40}},{"start":{"line":128,"column":24},"end":{"line":129,"column":40}}],"line":128},"9":{"loc":{"start":{"line":139,"column":23},"end":{"line":141,"column":55}},"type":"cond-expr","locations":[{"start":{"line":140,"column":22},"end":{"line":140,"column":54}},{"start":{"line":141,"column":22},"end":{"line":141,"column":55}}],"line":139},"10":{"loc":{"start":{"line":139,"column":23},"end":{"line":139,"column":59}},"type":"binary-expr","locations":[{"start":{"line":139,"column":23},"end":{"line":139,"column":35}},{"start":{"line":139,"column":39},"end":{"line":139,"column":59}}],"line":139},"11":{"loc":{"start":{"line":146,"column":12},"end":{"line":148,"column":13}},"type":"if","locations":[{"start":{"line":146,"column":12},"end":{"line":148,"column":13}},{"start":{"line":146,"column":12},"end":{"line":148,"column":13}}],"line":146},"12":{"loc":{"start":{"line":160,"column":23},"end":{"line":162,"column":55}},"type":"cond-expr","locations":[{"start":{"line":161,"column":22},"end":{"line":161,"column":54}},{"start":{"line":162,"column":22},"end":{"line":162,"column":55}}],"line":160},"13":{"loc":{"start":{"line":160,"column":23},"end":{"line":160,"column":59}},"type":"binary-expr","locations":[{"start":{"line":160,"column":23},"end":{"line":160,"column":35}},{"start":{"line":160,"column":39},"end":{"line":160,"column":59}}],"line":160},"14":{"loc":{"start":{"line":167,"column":12},"end":{"line":169,"column":13}},"type":"if","locations":[{"start":{"line":167,"column":12},"end":{"line":169,"column":13}},{"start":{"line":167,"column":12},"end":{"line":169,"column":13}}],"line":167},"15":{"loc":{"start":{"line":194,"column":24},"end":{"line":198,"column":30}},"type":"if","locations":[{"start":{"line":194,"column":24},"end":{"line":198,"column":30}},{"start":{"line":194,"column":24},"end":{"line":198,"column":30}}],"line":194},"16":{"loc":{"start":{"line":213,"column":16},"end":{"line":214,"column":98}},"type":"if","locations":[{"start":{"line":213,"column":16},"end":{"line":214,"column":98}},{"start":{"line":213,"column":16},"end":{"line":214,"column":98}}],"line":213}},"s":{"0":1,"1":3,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":13,"14":13,"15":13,"16":13,"17":13,"18":5,"19":13,"20":10,"21":13,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":0,"52":1,"53":0,"54":1,"55":1,"56":5,"57":1,"58":1,"59":1,"60":1,"61":2,"62":1,"63":1,"64":1,"65":1,"66":0,"67":1,"68":1,"69":1,"70":1,"71":1,"72":2,"73":1,"74":1,"75":2,"76":1,"77":1,"78":1,"79":0,"80":1,"81":1,"82":1,"83":1,"84":0,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":0,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":2,"103":1,"104":1,"105":1,"106":1,"107":0,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":2,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":0,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1},"f":{"0":3,"1":13,"2":13,"3":5,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":5,"16":1,"17":2,"18":1,"19":1,"20":2,"21":2,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":2,"30":1,"31":1,"32":1,"33":1,"34":1,"35":2,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1},"b":{"0":[1,1,1],"1":[0,3],"2":[3,3],"3":[10,3],"4":[1,0],"5":[0,1],"6":[0,1],"7":[0,1],"8":[1,0],"9":[0,1],"10":[1,0],"11":[0,1],"12":[2,0],"13":[2,2],"14":[0,1],"15":[1,1],"16":[0,1]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/form.test.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/form.test.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from \"@koa/router\";\nimport axios from \"axios\";\nimport Koa, { BaseContext } from \"koa\";\nimport { Page } from \"playwright\";\nimport { Controls, Fields, Form, FormDataValue, Mountable } from \"../index\";\nimport { mount } from \"../mount\";\nimport { locator_is_visible } from \"../test_utils/locator_is_visible\";\nimport { getBrowser } from \"../utils/browser-creator\";\nimport { assertThrowsAsync } from \"../utils/utils\";\n\nconst fields = {\n\ttext: new Fields.SimpleFormField(true),\n};\n\nexport function form_factory(canAccessFun?: Mountable[\"canAccess\"]): Form<typeof fields, void> {\n\tconst result = new (class extends Form<typeof fields, void> {\n\t\tfields = fields;\n\t\tsubmitButtonText = \"Submit\";\n\t\tcontrols = [\n\t\t\tnew Controls.SimpleInput(fields.text, {\n\t\t\t\tlabel: \"This is a test:\",\n\t\t\t\ttype: \"password\",\n\t\t\t}),\n\t\t];\n\n\t\tasync onSubmit() {\n\t\t\treturn;\n\t\t}\n\t})();\n\tif (canAccessFun) result.canAccess = canAccessFun;\n\treturn result;\n}\n\ndescribe(\"form test\", () => {\n\tlet page: Page;\n\n\tbefore(async () => {\n\t\tconst browser = await getBrowser();\n\t\tconst context = await browser.newContext();\n\t\tpage = await context.newPage();\n\t});\n\n\tdescribe(\"basic tests\", async () => {\n\t\tlet server: ReturnType<Koa[\"listen\"]>;\n\n\t\tbefore(async () => {\n\t\t\tconst app = new Koa();\n\t\t\tconst router = new Router();\n\n\t\t\tmount(router, \"/\", form_factory(), true);\n\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\tserver = app.listen(8080);\n\t\t\tawait page.goto(\"http://localhost:8080\");\n\t\t});\n\n\t\tafter(async () => {\n\t\t\tserver.close();\n\t\t});\n\n\t\tit(\"does not allow to submit an empty form when there's a required field\", async () => {\n\t\t\tawait page.getByRole(\"button\", { name: \"Submit\", exact: true }).click();\n\t\t\tawait assertThrowsAsync(async () => {\n\t\t\t\treturn page.getByText(\"Done\").click({ timeout: 500 });\n\t\t\t});\n\t\t});\n\n\t\tit(\"allows to submit a form when all required fields have a value\", async () => {\n\t\t\tawait page.getByPlaceholder(\"password\").click();\n\t\t\tawait page.getByPlaceholder(\"password\").fill(\"testpasswd\");\n\t\t\tawait page.getByRole(\"button\", { name: \"Submit\", exact: true }).click();\n\t\t\tawait page.getByText(\"Done\").click();\n\t\t});\n\n\t\tit(\"does not allow submitting an empty form by circumventing HTML-based validation\", async () => {\n\t\t\tconst res_axios = await axios.post(\n\t\t\t\t\"http://localhost:8080\",\n\t\t\t\t{\n\t\t\t\t\ttext: \"\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tvalidateStatus: (status: number) => {\n\t\t\t\t\t\tif (status == 422) return true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t);\n\t\t\tif (!res_axios.data.includes(\"Some fields are invalid\")) {\n\t\t\t\tthrow new Error(\"when sending a empty request with axios, the error didnt appear\");\n\t\t\t}\n\t\t});\n\t});\n\n\tdescribe(\"canAccess tests\", async () => {\n\t\tlet server: ReturnType<Koa[\"listen\"]>;\n\n\t\tafterEach(async () => {\n\t\t\tserver.close();\n\t\t});\n\n\t\tit(\"allows visit when configured when canAccess returns true\", async () => {\n\t\t\tconst app = new Koa();\n\t\t\tconst router = new Router();\n\n\t\t\tmount(\n\t\t\t\trouter,\n\t\t\t\t\"/\",\n\t\t\t\tform_factory(\n\t\t\t\t\tasync (ctx: Koa.Context): Promise<{ canAccess: boolean; message: string }> => {\n\t\t\t\t\t\treturn { canAccess: true, message: \"\" };\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\tserver = app.listen(8080);\n\t\t\tconst response = await page.goto(\"http://localhost:8080\");\n\t\t\tif (response?.status() != 200) {\n\t\t\t\tthrow new Error(`Should return 200 status and it returns ${response?.status()}`);\n\t\t\t}\n\t\t});\n\n\t\tdescribe(\"declines access when canAccess returns false\", async () => {\n\t\t\tconst app = new Koa();\n\t\t\tconst router = new Router();\n\n\t\t\tbefore(async () => {\n\t\t\t\tmount(\n\t\t\t\t\trouter,\n\t\t\t\t\t\"/\",\n\t\t\t\t\tform_factory(\n\t\t\t\t\t\tasync (\n\t\t\t\t\t\t\tctx: Koa.Context\n\t\t\t\t\t\t): Promise<{ canAccess: boolean; message: string }> => {\n\t\t\t\t\t\t\treturn { canAccess: false, message: \"\" };\n\t\t\t\t\t\t}\n\t\t\t\t\t),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\t});\n\n\t\t\tbeforeEach(async () => {\n\t\t\t\tserver = app.listen(8080);\n\t\t\t});\n\n\t\t\tit(\"prevents the form from rendering\", async () => {\n\t\t\t\tconst response = await page.goto(\"http://localhost:8080\");\n\t\t\t\tif (response?.status() != 403) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Should return 403 status and it returns ${response?.status()}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tit(\"does not allow submitting of the form through axios\", async () => {\n\t\t\t\tawait axios.post(\n\t\t\t\t\t\"http://localhost:8080\",\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: \"sample\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalidateStatus: (status: number) => {\n\t\t\t\t\t\t\tif (status == 403) return true;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\n\t\tit(\"passes the context to canAccess (false case)\", async () => {\n\t\t\tconst app = new Koa();\n\t\t\tconst router = new Router();\n\n\t\t\tmount(\n\t\t\t\trouter,\n\t\t\t\t\"/\",\n\t\t\t\tform_factory(\n\t\t\t\t\tasync (ctx: Koa.Context): Promise<{ canAccess: boolean; message: string }> => {\n\t\t\t\t\t\treturn ctx.$context && ctx.$context.user_id\n\t\t\t\t\t\t\t? { canAccess: true, message: \"\" }\n\t\t\t\t\t\t\t: { canAccess: false, message: \"\" };\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\tserver = app.listen(8080);\n\t\t\tconst response = await page.goto(\"http://localhost:8080\");\n\t\t\tif (response?.status() != 403) {\n\t\t\t\tthrow new Error(`Should return 403 status and it returns ${response?.status()}`);\n\t\t\t}\n\t\t});\n\n\t\tit(\"passes the context to canAccess (true case)\", async () => {\n\t\t\tconst app = new Koa();\n\t\t\tconst router = new Router();\n\n\t\t\trouter.use(async (ctx: BaseContext, next: any) => {\n\t\t\t\tctx.$context = {\n\t\t\t\t\tuser_id: \"miguel\",\n\t\t\t\t} as any;\n\t\t\t\tawait next();\n\t\t\t});\n\t\t\tmount(\n\t\t\t\trouter,\n\t\t\t\t\"/\",\n\t\t\t\tform_factory(\n\t\t\t\t\tasync (ctx: Koa.Context): Promise<{ canAccess: boolean; message: string }> => {\n\t\t\t\t\t\treturn ctx.$context && ctx.$context.user_id\n\t\t\t\t\t\t\t? { canAccess: true, message: \"\" }\n\t\t\t\t\t\t\t: { canAccess: false, message: \"\" };\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\tserver = app.listen(8080);\n\t\t\tconst response = await page.goto(\"http://localhost:8080\");\n\t\t\tif (response?.status() != 200) {\n\t\t\t\tthrow new Error(`Should return 200 status and it returns ${response?.status()}`);\n\t\t\t}\n\t\t});\n\t});\n\n\tdescribe(\"validation e2e\", async () => {\n\t\tdescribe(\"validation message\", async () => {\n\t\t\tlet server: ReturnType<Koa[\"listen\"]>;\n\n\t\t\tbefore(async () => {\n\t\t\t\tconst app = new Koa();\n\t\t\t\tconst router = new Router();\n\n\t\t\t\tmount(\n\t\t\t\t\trouter,\n\t\t\t\t\t\"/\",\n\t\t\t\t\tnew (class extends Form<typeof fields, void> {\n\t\t\t\t\t\tfields = fields;\n\t\t\t\t\t\tsubmitButtonText = \"Submit\";\n\t\t\t\t\t\tcontrols = [\n\t\t\t\t\t\t\tnew Controls.SimpleInput(fields.text, {\n\t\t\t\t\t\t\t\tlabel: \"This is a test:\",\n\t\t\t\t\t\t\t\ttype: \"password\",\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t];\n\n\t\t\t\t\t\tasync onSubmit() {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tasync validateValues(\n\t\t\t\t\t\t\tctx: Koa.Context,\n\t\t\t\t\t\t\tdata: Record<string, FormDataValue>\n\t\t\t\t\t\t): Promise<{ valid: boolean; error: string }> {\n\t\t\t\t\t\t\tif (data.text === \"incorrect\")\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tvalid: false,\n\t\t\t\t\t\t\t\t\terror: \"Incorrect input\",\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn { valid: true, error: \"\" };\n\t\t\t\t\t\t}\n\t\t\t\t\t})(),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\n\t\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\t\tserver = app.listen(8080);\n\t\t\t\tawait page.goto(\"http://localhost:8080\");\n\t\t\t});\n\n\t\t\tafter(async () => {\n\t\t\t\tserver.close();\n\t\t\t});\n\n\t\t\tit(\"shows up when incorrect input is given\", async () => {\n\t\t\t\tawait page.getByPlaceholder(\"password\").click();\n\t\t\t\tawait page.getByPlaceholder(\"password\").fill(\"incorrect\");\n\t\t\t\tawait page.getByRole(\"button\", { name: \"Submit\" }).click();\n\t\t\t\tif (!(await locator_is_visible(page.getByText(\"Incorrect input\"))))\n\t\t\t\t\tthrow new Error(\"validation message doens't show up when input is incorrect\");\n\t\t\t});\n\n\t\t\tit(\"doesn't show when correct input is given\", async () => {\n\t\t\t\tawait page.getByPlaceholder(\"password\").click();\n\t\t\t\tawait page.getByPlaceholder(\"password\").fill(\"correct\");\n\t\t\t\tawait page.getByRole(\"button\", { name: \"Submit\" }).click();\n\t\t\t\tawait assertThrowsAsync(async () => {\n\t\t\t\t\treturn page.getByText(\"Incorrect input\").click({ timeout: 500 });\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\tdescribe(\"field specific validation message\", async () => {\n\t\t\tlet server: ReturnType<Koa[\"listen\"]>;\n\n\t\t\tbefore(async () => {\n\t\t\t\tconst app = new Koa();\n\t\t\t\tconst router = new Router();\n\t\t\t\tconst fields = {\n\t\t\t\t\ttext: new Fields.EmailField(true),\n\t\t\t\t};\n\n\t\t\t\tmount(\n\t\t\t\t\trouter,\n\t\t\t\t\t\"/\",\n\t\t\t\t\tnew (class extends Form<typeof fields, void> {\n\t\t\t\t\t\tfields = fields;\n\t\t\t\t\t\tsubmitButtonText = \"Submit\";\n\t\t\t\t\t\tcontrols = [\n\t\t\t\t\t\t\tnew Controls.SimpleInput(fields.text, {\n\t\t\t\t\t\t\t\tlabel: \"This is a test:\",\n\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t];\n\n\t\t\t\t\t\tasync onSubmit() {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t})(),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\n\t\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\t\tserver = app.listen(8080);\n\t\t\t\tawait page.goto(\"http://localhost:8080\");\n\t\t\t});\n\n\t\t\tafter(async () => {\n\t\t\t\tserver.close();\n\t\t\t});\n\n\t\t\tit(\"shows up when incorrect input is given\", async () => {\n\t\t\t\tawait page.getByPlaceholder(\"text\").click();\n\t\t\t\tawait page.getByPlaceholder(\"text\").fill(\"notanemail\");\n\t\t\t\tawait page.getByRole(\"button\", { name: \"Submit\" }).click();\n\t\t\t\tawait page.getByText(\"Please enter a proper email address\").click();\n\t\t\t});\n\n\t\t\tit(\"doesn't show up when correct input is given\", async () => {\n\t\t\t\tawait page.getByPlaceholder(\"text\").click();\n\t\t\t\tawait page.getByPlaceholder(\"text\").fill(\"yes@an.email\");\n\t\t\t\tawait page.getByRole(\"button\", { name: \"Submit\" }).click();\n\t\t\t\tassertThrowsAsync(async () => {\n\t\t\t\t\treturn page\n\t\t\t\t\t\t.getByText(\"Please enter a proper email address\")\n\t\t\t\t\t\t.click({ timeout: 500 });\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n});\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"98bdfad29366b310b868ff587d152daeb916306d"},"/home/kuba/projects/sealcode/sealgen/src/test_utils/locator_is_visible.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/test_utils/locator_is_visible.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":36}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":41}},"3":{"start":{"line":6,"column":17},"end":{"line":6,"column":22}},"4":{"start":{"line":7,"column":4},"end":{"line":11,"column":5}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":32}},"6":{"start":{"line":9,"column":8},"end":{"line":9,"column":22}},"7":{"start":{"line":10,"column":8},"end":{"line":10,"column":43}},"8":{"start":{"line":12,"column":4},"end":{"line":12,"column":18}},"9":{"start":{"line":14,"column":0},"end":{"line":14,"column":48}}},"fnMap":{"0":{"name":"locator_is_visible","decl":{"start":{"line":5,"column":15},"end":{"line":5,"column":33}},"loc":{"start":{"line":5,"column":58},"end":{"line":13,"column":1}},"line":5}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":43},"end":{"line":5,"column":56}},"type":"default-arg","locations":[{"start":{"line":5,"column":53},"end":{"line":5,"column":56}}],"line":5},"1":{"loc":{"start":{"line":7,"column":11},"end":{"line":7,"column":33}},"type":"binary-expr","locations":[{"start":{"line":7,"column":11},"end":{"line":7,"column":22}},{"start":{"line":7,"column":26},"end":{"line":7,"column":33}}],"line":7}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1},"f":{"0":1},"b":{"0":[1],"1":[2,2]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/test_utils/locator_is_visible.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/test_utils/locator_is_visible.ts"],"names":[],"mappings":";;;AAEA,0CAAuC;AAEhC,KAAK,UAAU,kBAAkB,CACvC,OAAgB,EAChB,OAAO,GAAG,GAAG;IAEb,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,OAAO,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE;QAC9B,MAAM,aAAK,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,IAAI,EAAE,CAAC;QACd,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;KACnC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAZD,gDAYC","sourcesContent":["/* eslint-disable no-await-in-loop */\nimport { Locator } from \"playwright\";\nimport { sleep } from \"../utils/sleep\";\n\nexport async function locator_is_visible(\n\tlocator: Locator,\n\ttimeout = 500\n): Promise<boolean> {\n\tlet exists = false;\n\twhile (timeout > 0 && !exists) {\n\t\tawait sleep(50);\n\t\ttimeout -= 50;\n\t\texists = await locator.isVisible();\n\t}\n\n\treturn exists;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0ed21dc7c22a70caf47a736271e56abdb3ca2f8d"},"/home/kuba/projects/sealcode/sealgen/src/utils/browser-creator.js":{"path":"/home/kuba/projects/sealcode/sealgen/src/utils/browser-creator.js","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":22},"end":{"line":5,"column":26}},"4":{"start":{"line":8,"column":4},"end":{"line":9,"column":56}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":56}},"6":{"start":{"line":11,"column":4},"end":{"line":11,"column":27}},"7":{"start":{"line":13,"column":0},"end":{"line":13,"column":32}}},"fnMap":{"0":{"name":"getBrowser","decl":{"start":{"line":7,"column":15},"end":{"line":7,"column":25}},"loc":{"start":{"line":7,"column":28},"end":{"line":12,"column":1}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":4},"end":{"line":9,"column":56}},"type":"if","locations":[{"start":{"line":8,"column":4},"end":{"line":9,"column":56}},{"start":{"line":8,"column":4},"end":{"line":9,"column":56}}],"line":8}},"s":{"0":1,"1":1,"2":1,"3":1,"4":11,"5":1,"6":11,"7":1},"f":{"0":11},"b":{"0":[1,10]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/utils/browser-creator.js","sources":["/home/kuba/projects/sealcode/sealgen/src/utils/browser-creator.js"],"names":[],"mappings":";;;AAAA,2CAAqC;AAErC,IAAI,eAAe,GAAG,IAAI,CAAC;AAE3B,6EAA6E;AACtE,KAAK,UAAU,UAAU;IAC/B,IAAI,CAAC,eAAe;QAAE,eAAe,GAAG,oBAAO,CAAC,MAAM,EAAE,CAAC;IACzD,+DAA+D;IAC/D,OAAO,eAAe,CAAC;AACxB,CAAC;AAJD,gCAIC","sourcesContent":["import { firefox } from \"playwright\";\n\nlet browser_promise = null;\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport async function getBrowser() {\n\tif (!browser_promise) browser_promise = firefox.launch();\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\treturn browser_promise;\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b0aeae423bf9ab7bd1544894b61fd34c3713a690"},"/home/kuba/projects/sealcode/sealgen/src/forms/multiform.test.ts":{"path":"/home/kuba/projects/sealcode/sealgen/src/forms/multiform.test.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":62}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":17},"end":{"line":6,"column":56}},"4":{"start":{"line":7,"column":14},"end":{"line":7,"column":45}},"5":{"start":{"line":8,"column":16},"end":{"line":8,"column":49}},"6":{"start":{"line":9,"column":15},"end":{"line":9,"column":42}},"7":{"start":{"line":10,"column":21},"end":{"line":10,"column":42}},"8":{"start":{"line":11,"column":12},"end":{"line":11,"column":25}},"9":{"start":{"line":12,"column":16},"end":{"line":12,"column":35}},"10":{"start":{"line":13,"column":20},"end":{"line":13,"column":42}},"11":{"start":{"line":14,"column":16},"end":{"line":14,"column":41}},"12":{"start":{"line":15,"column":20},"end":{"line":15,"column":42}},"13":{"start":{"line":16,"column":26},"end":{"line":16,"column":61}},"14":{"start":{"line":17,"column":16},"end":{"line":19,"column":1}},"15":{"start":{"line":20,"column":14},"end":{"line":30,"column":4}},"16":{"start":{"line":22,"column":8},"end":{"line":22,"column":28}},"17":{"start":{"line":23,"column":8},"end":{"line":23,"column":51}},"18":{"start":{"line":24,"column":8},"end":{"line":24,"column":108}},"19":{"start":{"line":25,"column":8},"end":{"line":25,"column":30}},"20":{"start":{"line":28,"column":8},"end":{"line":28,"column":15}},"21":{"start":{"line":31,"column":16},"end":{"line":33,"column":1}},"22":{"start":{"line":34,"column":14},"end":{"line":44,"column":4}},"23":{"start":{"line":36,"column":8},"end":{"line":36,"column":28}},"24":{"start":{"line":37,"column":8},"end":{"line":37,"column":51}},"25":{"start":{"line":38,"column":8},"end":{"line":38,"column":107}},"26":{"start":{"line":39,"column":8},"end":{"line":39,"column":30}},"27":{"start":{"line":42,"column":8},"end":{"line":42,"column":15}},"28":{"start":{"line":46,"column":4},"end":{"line":69,"column":9}},"29":{"start":{"line":48,"column":12},"end":{"line":48,"column":32}},"30":{"start":{"line":49,"column":12},"end":{"line":49,"column":41}},"31":{"start":{"line":50,"column":12},"end":{"line":53,"column":14}},"32":{"start":{"line":56,"column":12},"end":{"line":67,"column":13}},"33":{"start":{"line":73,"column":4},"end":{"line":85,"column":7}},"34":{"start":{"line":74,"column":24},"end":{"line":74,"column":60}},"35":{"start":{"line":75,"column":24},"end":{"line":77,"column":10}},"36":{"start":{"line":78,"column":8},"end":{"line":78,"column":39}},"37":{"start":{"line":79,"column":8},"end":{"line":79,"column":49}},"38":{"start":{"line":80,"column":8},"end":{"line":80,"column":47}},"39":{"start":{"line":81,"column":8},"end":{"line":81,"column":55}},"40":{"start":{"line":82,"column":8},"end":{"line":82,"column":46}},"41":{"start":{"line":83,"column":8},"end":{"line":83,"column":54}},"42":{"start":{"line":84,"column":8},"end":{"line":84,"column":67}},"43":{"start":{"line":86,"column":4},"end":{"line":91,"column":7}},"44":{"start":{"line":87,"column":8},"end":{"line":87,"column":52}},"45":{"start":{"line":88,"column":8},"end":{"line":90,"column":11}},"46":{"start":{"line":89,"column":12},"end":{"line":89,"column":73}},"47":{"start":{"line":92,"column":4},"end":{"line":94,"column":7}},"48":{"start":{"line":93,"column":8},"end":{"line":93,"column":76}},"49":{"start":{"line":99,"column":4},"end":{"line":99,"column":51}},"50":{"start":{"line":100,"column":20},"end":{"line":102,"column":6}},"51":{"start":{"line":103,"column":4},"end":{"line":103,"column":35}},"52":{"start":{"line":104,"column":4},"end":{"line":104,"column":45}},"53":{"start":{"line":105,"column":4},"end":{"line":105,"column":48}},"54":{"start":{"line":106,"column":4},"end":{"line":106,"column":58}},"55":{"start":{"line":107,"column":4},"end":{"line":107,"column":52}},"56":{"start":{"line":108,"column":4},"end":{"line":108,"column":57}},"57":{"start":{"line":109,"column":4},"end":{"line":109,"column":63}},"58":{"start":{"line":110,"column":4},"end":{"line":112,"column":7}},"59":{"start":{"line":111,"column":8},"end":{"line":111,"column":66}},"60":{"start":{"line":117,"column":4},"end":{"line":124,"column":7}},"61":{"start":{"line":118,"column":8},"end":{"line":118,"column":55}},"62":{"start":{"line":119,"column":24},"end":{"line":121,"column":10}},"63":{"start":{"line":122,"column":8},"end":{"line":122,"column":39}},"64":{"start":{"line":123,"column":8},"end":{"line":123,"column":49}},"65":{"start":{"line":125,"column":4},"end":{"line":130,"column":7}},"66":{"start":{"line":126,"column":8},"end":{"line":126,"column":52}},"67":{"start":{"line":127,"column":8},"end":{"line":127,"column":63}},"68":{"start":{"line":128,"column":8},"end":{"line":128,"column":67}},"69":{"start":{"line":129,"column":8},"end":{"line":129,"column":76}},"70":{"start":{"line":131,"column":4},"end":{"line":138,"column":7}},"71":{"start":{"line":132,"column":8},"end":{"line":132,"column":52}},"72":{"start":{"line":133,"column":8},"end":{"line":133,"column":65}},"73":{"start":{"line":134,"column":8},"end":{"line":134,"column":67}},"74":{"start":{"line":135,"column":8},"end":{"line":137,"column":11}},"75":{"start":{"line":136,"column":12},"end":{"line":136,"column":97}},"76":{"start":{"line":140,"column":0},"end":{"line":430,"column":3}},"77":{"start":{"line":141,"column":4},"end":{"line":175,"column":7}},"78":{"start":{"line":143,"column":8},"end":{"line":169,"column":11}},"79":{"start":{"line":144,"column":24},"end":{"line":144,"column":43}},"80":{"start":{"line":145,"column":27},"end":{"line":145,"column":49}},"81":{"start":{"line":146,"column":12},"end":{"line":166,"column":24}},"82":{"start":{"line":148,"column":20},"end":{"line":148,"column":40}},"83":{"start":{"line":149,"column":20},"end":{"line":149,"column":49}},"84":{"start":{"line":150,"column":20},"end":{"line":150,"column":50}},"85":{"start":{"line":153,"column":20},"end":{"line":164,"column":16}},"86":{"start":{"line":167,"column":12},"end":{"line":167,"column":66}},"87":{"start":{"line":168,"column":12},"end":{"line":168,"column":38}},"88":{"start":{"line":170,"column":8},"end":{"line":172,"column":11}},"89":{"start":{"line":171,"column":12},"end":{"line":171,"column":27}},"90":{"start":{"line":173,"column":8},"end":{"line":173,"column":69}},"91":{"start":{"line":173,"column":56},"end":{"line":173,"column":67}},"92":{"start":{"line":174,"column":8},"end":{"line":174,"column":71}},"93":{"start":{"line":174,"column":57},"end":{"line":174,"column":69}},"94":{"start":{"line":176,"column":4},"end":{"line":310,"column":7}},"95":{"start":{"line":179,"column":8},"end":{"line":216,"column":11}},"96":{"start":{"line":180,"column":12},"end":{"line":193,"column":15}},"97":{"start":{"line":181,"column":28},"end":{"line":181,"column":47}},"98":{"start":{"line":182,"column":31},"end":{"line":182,"column":53}},"99":{"start":{"line":183,"column":16},"end":{"line":187,"column":26}},"100":{"start":{"line":184,"column":20},"end":{"line":184,"column":60}},"101":{"start":{"line":186,"column":20},"end":{"line":186,"column":60}},"102":{"start":{"line":188,"column":16},"end":{"line":188,"column":70}},"103":{"start":{"line":189,"column":16},"end":{"line":189,"column":42}},"104":{"start":{"line":190,"column":32},"end":{"line":190,"column":68}},"105":{"start":{"line":191,"column":32},"end":{"line":191,"column":58}},"106":{"start":{"line":192,"column":16},"end":{"line":192,"column":47}},"107":{"start":{"line":194,"column":12},"end":{"line":196,"column":15}},"108":{"start":{"line":195,"column":16},"end":{"line":195,"column":31}},"109":{"start":{"line":197,"column":12},"end":{"line":204,"column":15}},"110":{"start":{"line":198,"column":33},"end":{"line":198,"column":73}},"111":{"start":{"line":199,"column":16},"end":{"line":201,"column":17}},"112":{"start":{"line":200,"column":20},"end":{"line":200,"column":101}},"113":{"start":{"line":202,"column":16},"end":{"line":202,"column":82}},"114":{"start":{"line":203,"column":16},"end":{"line":203,"column":82}},"115":{"start":{"line":205,"column":12},"end":{"line":215,"column":15}},"116":{"start":{"line":206,"column":16},"end":{"line":214,"column":19}},"117":{"start":{"line":210,"column":24},"end":{"line":211,"column":40}},"118":{"start":{"line":211,"column":28},"end":{"line":211,"column":40}},"119":{"start":{"line":212,"column":24},"end":{"line":212,"column":37}},"120":{"start":{"line":217,"column":8},"end":{"line":255,"column":11}},"121":{"start":{"line":218,"column":12},"end":{"line":231,"column":15}},"122":{"start":{"line":219,"column":28},"end":{"line":219,"column":47}},"123":{"start":{"line":220,"column":31},"end":{"line":220,"column":53}},"124":{"start":{"line":221,"column":16},"end":{"line":225,"column":26}},"125":{"start":{"line":222,"column":20},"end":{"line":222,"column":61}},"126":{"start":{"line":224,"column":20},"end":{"line":224,"column":61}},"127":{"start":{"line":226,"column":16},"end":{"line":226,"column":70}},"128":{"start":{"line":227,"column":16},"end":{"line":227,"column":42}},"129":{"start":{"line":228,"column":32},"end":{"line":228,"column":68}},"130":{"start":{"line":229,"column":32},"end":{"line":229,"column":58}},"131":{"start":{"line":230,"column":16},"end":{"line":230,"column":47}},"132":{"start":{"line":232,"column":12},"end":{"line":234,"column":15}},"133":{"start":{"line":233,"column":16},"end":{"line":233,"column":31}},"134":{"start":{"line":235,"column":12},"end":{"line":243,"column":15}},"135":{"start":{"line":236,"column":16},"end":{"line":236,"column":57}},"136":{"start":{"line":237,"column":16},"end":{"line":242,"column":19}},"137":{"start":{"line":238,"column":20},"end":{"line":241,"column":49}},"138":{"start":{"line":244,"column":12},"end":{"line":254,"column":15}},"139":{"start":{"line":245,"column":16},"end":{"line":253,"column":19}},"140":{"start":{"line":249,"column":24},"end":{"line":250,"column":40}},"141":{"start":{"line":250,"column":28},"end":{"line":250,"column":40}},"142":{"start":{"line":251,"column":24},"end":{"line":251,"column":37}},"143":{"start":{"line":256,"column":8},"end":{"line":309,"column":11}},"144":{"start":{"line":257,"column":12},"end":{"line":270,"column":15}},"145":{"start":{"line":258,"column":28},"end":{"line":258,"column":47}},"146":{"start":{"line":259,"column":31},"end":{"line":259,"column":53}},"147":{"start":{"line":260,"column":16},"end":{"line":264,"column":26}},"148":{"start":{"line":261,"column":20},"end":{"line":261,"column":60}},"149":{"start":{"line":263,"column":20},"end":{"line":263,"column":61}},"150":{"start":{"line":265,"column":16},"end":{"line":265,"column":70}},"151":{"start":{"line":266,"column":16},"end":{"line":266,"column":42}},"152":{"start":{"line":267,"column":32},"end":{"line":267,"column":68}},"153":{"start":{"line":268,"column":32},"end":{"line":268,"column":60}},"154":{"start":{"line":269,"column":16},"end":{"line":269,"column":47}},"155":{"start":{"line":271,"column":12},"end":{"line":273,"column":15}},"156":{"start":{"line":272,"column":16},"end":{"line":272,"column":31}},"157":{"start":{"line":274,"column":12},"end":{"line":277,"column":15}},"158":{"start":{"line":275,"column":16},"end":{"line":275,"column":57}},"159":{"start":{"line":276,"column":16},"end":{"line":276,"column":98}},"160":{"start":{"line":278,"column":12},"end":{"line":288,"column":15}},"161":{"start":{"line":279,"column":16},"end":{"line":287,"column":19}},"162":{"start":{"line":283,"column":24},"end":{"line":284,"column":40}},"163":{"start":{"line":284,"column":28},"end":{"line":284,"column":40}},"164":{"start":{"line":285,"column":24},"end":{"line":285,"column":37}},"165":{"start":{"line":289,"column":12},"end":{"line":297,"column":15}},"166":{"start":{"line":290,"column":16},"end":{"line":290,"column":57}},"167":{"start":{"line":291,"column":16},"end":{"line":296,"column":19}},"168":{"start":{"line":292,"column":20},"end":{"line":295,"column":49}},"169":{"start":{"line":298,"column":12},"end":{"line":308,"column":15}},"170":{"start":{"line":299,"column":16},"end":{"line":307,"column":19}},"171":{"start":{"line":303,"column":24},"end":{"line":304,"column":40}},"172":{"start":{"line":304,"column":28},"end":{"line":304,"column":40}},"173":{"start":{"line":305,"column":24},"end":{"line":305,"column":37}},"174":{"start":{"line":311,"column":4},"end":{"line":429,"column":7}},"175":{"start":{"line":312,"column":8},"end":{"line":372,"column":11}},"176":{"start":{"line":314,"column":12},"end":{"line":366,"column":15}},"177":{"start":{"line":315,"column":28},"end":{"line":315,"column":47}},"178":{"start":{"line":316,"column":31},"end":{"line":316,"column":53}},"179":{"start":{"line":317,"column":16},"end":{"line":363,"column":28}},"180":{"start":{"line":319,"column":24},"end":{"line":319,"column":44}},"181":{"start":{"line":320,"column":24},"end":{"line":320,"column":53}},"182":{"start":{"line":321,"column":24},"end":{"line":347,"column":26}},"183":{"start":{"line":324,"column":36},"end":{"line":324,"column":56}},"184":{"start":{"line":325,"column":36},"end":{"line":325,"column":58}},"185":{"start":{"line":326,"column":36},"end":{"line":326,"column":69}},"186":{"start":{"line":327,"column":36},"end":{"line":332,"column":38}},"187":{"start":{"line":335,"column":36},"end":{"line":335,"column":43}},"188":{"start":{"line":338,"column":36},"end":{"line":342,"column":42}},"189":{"start":{"line":339,"column":40},"end":{"line":342,"column":42}},"190":{"start":{"line":343,"column":36},"end":{"line":343,"column":70}},"191":{"start":{"line":350,"column":24},"end":{"line":361,"column":17}},"192":{"start":{"line":364,"column":16},"end":{"line":364,"column":70}},"193":{"start":{"line":365,"column":16},"end":{"line":365,"column":42}},"194":{"start":{"line":367,"column":12},"end":{"line":369,"column":15}},"195":{"start":{"line":368,"column":16},"end":{"line":368,"column":31}},"196":{"start":{"line":370,"column":12},"end":{"line":370,"column":82}},"197":{"start":{"line":370,"column":41},"end":{"line":370,"column":80}},"198":{"start":{"line":371,"column":12},"end":{"line":371,"column":84}},"199":{"start":{"line":371,"column":42},"end":{"line":371,"column":82}},"200":{"start":{"line":373,"column":8},"end":{"line":428,"column":11}},"201":{"start":{"line":375,"column":12},"end":{"line":422,"column":15}},"202":{"start":{"line":376,"column":28},"end":{"line":376,"column":47}},"203":{"start":{"line":377,"column":31},"end":{"line":377,"column":53}},"204":{"start":{"line":378,"column":31},"end":{"line":380,"column":17}},"205":{"start":{"line":381,"column":16},"end":{"line":419,"column":28}},"206":{"start":{"line":383,"column":24},"end":{"line":383,"column":44}},"207":{"start":{"line":384,"column":24},"end":{"line":384,"column":53}},"208":{"start":{"line":385,"column":24},"end":{"line":403,"column":26}},"209":{"start":{"line":388,"column":36},"end":{"line":388,"column":56}},"210":{"start":{"line":389,"column":36},"end":{"line":389,"column":57}},"211":{"start":{"line":390,"column":36},"end":{"line":390,"column":69}},"212":{"start":{"line":391,"column":36},"end":{"line":396,"column":38}},"213":{"start":{"line":399,"column":36},"end":{"line":399,"column":43}},"214":{"start":{"line":406,"column":24},"end":{"line":417,"column":17}},"215":{"start":{"line":420,"column":16},"end":{"line":420,"column":70}},"216":{"start":{"line":421,"column":16},"end":{"line":421,"column":42}},"217":{"start":{"line":423,"column":12},"end":{"line":425,"column":15}},"218":{"start":{"line":424,"column":16},"end":{"line":424,"column":31}},"219":{"start":{"line":426,"column":12},"end":{"line":426,"column":92}},"220":{"start":{"line":426,"column":47},"end":{"line":426,"column":90}},"221":{"start":{"line":427,"column":12},"end":{"line":427,"column":94}},"222":{"start":{"line":427,"column":48},"end":{"line":427,"column":92}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":56},"end":{"line":2,"column":57}},"loc":{"start":{"line":2,"column":71},"end":{"line":4,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":18},"end":{"line":26,"column":5}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":15},"end":{"line":29,"column":5}},"line":27},"3":{"name":"(anonymous_3)","decl":{"start":{"line":35,"column":4},"end":{"line":35,"column":5}},"loc":{"start":{"line":35,"column":18},"end":{"line":40,"column":5}},"line":35},"4":{"name":"(anonymous_4)","decl":{"start":{"line":41,"column":4},"end":{"line":41,"column":5}},"loc":{"start":{"line":41,"column":15},"end":{"line":43,"column":5}},"line":41},"5":{"name":"multiform_factory","decl":{"start":{"line":45,"column":9},"end":{"line":45,"column":26}},"loc":{"start":{"line":45,"column":57},"end":{"line":70,"column":1}},"line":45},"6":{"name":"(anonymous_6)","decl":{"start":{"line":47,"column":8},"end":{"line":47,"column":9}},"loc":{"start":{"line":47,"column":22},"end":{"line":54,"column":9}},"line":47},"7":{"name":"(anonymous_7)","decl":{"start":{"line":55,"column":8},"end":{"line":55,"column":9}},"loc":{"start":{"line":55,"column":30},"end":{"line":68,"column":9}},"line":55},"8":{"name":"tests","decl":{"start":{"line":71,"column":15},"end":{"line":71,"column":20}},"loc":{"start":{"line":71,"column":33},"end":{"line":95,"column":1}},"line":71},"9":{"name":"(anonymous_9)","decl":{"start":{"line":73,"column":11},"end":{"line":73,"column":12}},"loc":{"start":{"line":73,"column":23},"end":{"line":85,"column":5}},"line":73},"10":{"name":"(anonymous_10)","decl":{"start":{"line":86,"column":58},"end":{"line":86,"column":59}},"loc":{"start":{"line":86,"column":70},"end":{"line":91,"column":5}},"line":86},"11":{"name":"(anonymous_11)","decl":{"start":{"line":88,"column":40},"end":{"line":88,"column":41}},"loc":{"start":{"line":88,"column":52},"end":{"line":90,"column":9}},"line":88},"12":{"name":"(anonymous_12)","decl":{"start":{"line":92,"column":72},"end":{"line":92,"column":73}},"loc":{"start":{"line":92,"column":84},"end":{"line":94,"column":5}},"line":92},"13":{"name":"general_form_validation_e2e_tests","decl":{"start":{"line":96,"column":15},"end":{"line":96,"column":48}},"loc":{"start":{"line":96,"column":61},"end":{"line":113,"column":1}},"line":96},"14":{"name":"(anonymous_14)","decl":{"start":{"line":110,"column":30},"end":{"line":110,"column":31}},"loc":{"start":{"line":110,"column":42},"end":{"line":112,"column":5}},"line":110},"15":{"name":"individual_field_validation_e2e_tests","decl":{"start":{"line":114,"column":15},"end":{"line":114,"column":52}},"loc":{"start":{"line":114,"column":72},"end":{"line":139,"column":1}},"line":114},"16":{"name":"(anonymous_16)","decl":{"start":{"line":117,"column":11},"end":{"line":117,"column":12}},"loc":{"start":{"line":117,"column":23},"end":{"line":124,"column":5}},"line":117},"17":{"name":"(anonymous_17)","decl":{"start":{"line":125,"column":65},"end":{"line":125,"column":66}},"loc":{"start":{"line":125,"column":77},"end":{"line":130,"column":5}},"line":125},"18":{"name":"(anonymous_18)","decl":{"start":{"line":131,"column":70},"end":{"line":131,"column":71}},"loc":{"start":{"line":131,"column":82},"end":{"line":138,"column":5}},"line":131},"19":{"name":"(anonymous_19)","decl":{"start":{"line":135,"column":34},"end":{"line":135,"column":35}},"loc":{"start":{"line":135,"column":46},"end":{"line":137,"column":9}},"line":135},"20":{"name":"(anonymous_20)","decl":{"start":{"line":140,"column":27},"end":{"line":140,"column":28}},"loc":{"start":{"line":140,"column":33},"end":{"line":430,"column":1}},"line":140},"21":{"name":"(anonymous_21)","decl":{"start":{"line":141,"column":28},"end":{"line":141,"column":29}},"loc":{"start":{"line":141,"column":40},"end":{"line":175,"column":5}},"line":141},"22":{"name":"(anonymous_22)","decl":{"start":{"line":143,"column":15},"end":{"line":143,"column":16}},"loc":{"start":{"line":143,"column":27},"end":{"line":169,"column":9}},"line":143},"23":{"name":"(anonymous_23)","decl":{"start":{"line":147,"column":16},"end":{"line":147,"column":17}},"loc":{"start":{"line":147,"column":30},"end":{"line":151,"column":17}},"line":147},"24":{"name":"(anonymous_24)","decl":{"start":{"line":152,"column":16},"end":{"line":152,"column":17}},"loc":{"start":{"line":152,"column":88},"end":{"line":165,"column":17}},"line":152},"25":{"name":"(anonymous_25)","decl":{"start":{"line":170,"column":14},"end":{"line":170,"column":15}},"loc":{"start":{"line":170,"column":20},"end":{"line":172,"column":9}},"line":170},"26":{"name":"(anonymous_26)","decl":{"start":{"line":173,"column":44},"end":{"line":173,"column":45}},"loc":{"start":{"line":173,"column":56},"end":{"line":173,"column":67}},"line":173},"27":{"name":"(anonymous_27)","decl":{"start":{"line":174,"column":45},"end":{"line":174,"column":46}},"loc":{"start":{"line":174,"column":57},"end":{"line":174,"column":69}},"line":174},"28":{"name":"(anonymous_28)","decl":{"start":{"line":176,"column":26},"end":{"line":176,"column":27}},"loc":{"start":{"line":176,"column":38},"end":{"line":310,"column":5}},"line":176},"29":{"name":"(anonymous_29)","decl":{"start":{"line":179,"column":79},"end":{"line":179,"column":80}},"loc":{"start":{"line":179,"column":91},"end":{"line":216,"column":9}},"line":179},"30":{"name":"(anonymous_30)","decl":{"start":{"line":180,"column":19},"end":{"line":180,"column":20}},"loc":{"start":{"line":180,"column":31},"end":{"line":193,"column":13}},"line":180},"31":{"name":"(anonymous_31)","decl":{"start":{"line":183,"column":61},"end":{"line":183,"column":62}},"loc":{"start":{"line":183,"column":76},"end":{"line":185,"column":17}},"line":183},"32":{"name":"(anonymous_32)","decl":{"start":{"line":185,"column":19},"end":{"line":185,"column":20}},"loc":{"start":{"line":185,"column":34},"end":{"line":187,"column":17}},"line":185},"33":{"name":"(anonymous_33)","decl":{"start":{"line":194,"column":18},"end":{"line":194,"column":19}},"loc":{"start":{"line":194,"column":30},"end":{"line":196,"column":13}},"line":194},"34":{"name":"(anonymous_34)","decl":{"start":{"line":197,"column":42},"end":{"line":197,"column":43}},"loc":{"start":{"line":197,"column":54},"end":{"line":204,"column":13}},"line":197},"35":{"name":"(anonymous_35)","decl":{"start":{"line":205,"column":67},"end":{"line":205,"column":68}},"loc":{"start":{"line":205,"column":79},"end":{"line":215,"column":13}},"line":205},"36":{"name":"(anonymous_36)","decl":{"start":{"line":209,"column":36},"end":{"line":209,"column":37}},"loc":{"start":{"line":209,"column":48},"end":{"line":213,"column":21}},"line":209},"37":{"name":"(anonymous_37)","decl":{"start":{"line":217,"column":46},"end":{"line":217,"column":47}},"loc":{"start":{"line":217,"column":58},"end":{"line":255,"column":9}},"line":217},"38":{"name":"(anonymous_38)","decl":{"start":{"line":218,"column":19},"end":{"line":218,"column":20}},"loc":{"start":{"line":218,"column":31},"end":{"line":231,"column":13}},"line":218},"39":{"name":"(anonymous_39)","decl":{"start":{"line":221,"column":61},"end":{"line":221,"column":62}},"loc":{"start":{"line":221,"column":76},"end":{"line":223,"column":17}},"line":221},"40":{"name":"(anonymous_40)","decl":{"start":{"line":223,"column":19},"end":{"line":223,"column":20}},"loc":{"start":{"line":223,"column":34},"end":{"line":225,"column":17}},"line":223},"41":{"name":"(anonymous_41)","decl":{"start":{"line":232,"column":18},"end":{"line":232,"column":19}},"loc":{"start":{"line":232,"column":30},"end":{"line":234,"column":13}},"line":232},"42":{"name":"(anonymous_42)","decl":{"start":{"line":235,"column":50},"end":{"line":235,"column":51}},"loc":{"start":{"line":235,"column":62},"end":{"line":243,"column":13}},"line":235},"43":{"name":"(anonymous_43)","decl":{"start":{"line":237,"column":48},"end":{"line":237,"column":49}},"loc":{"start":{"line":237,"column":60},"end":{"line":242,"column":17}},"line":237},"44":{"name":"(anonymous_44)","decl":{"start":{"line":244,"column":68},"end":{"line":244,"column":69}},"loc":{"start":{"line":244,"column":80},"end":{"line":254,"column":13}},"line":244},"45":{"name":"(anonymous_45)","decl":{"start":{"line":248,"column":36},"end":{"line":248,"column":37}},"loc":{"start":{"line":248,"column":48},"end":{"line":252,"column":21}},"line":248},"46":{"name":"(anonymous_46)","decl":{"start":{"line":256,"column":64},"end":{"line":256,"column":65}},"loc":{"start":{"line":256,"column":76},"end":{"line":309,"column":9}},"line":256},"47":{"name":"(anonymous_47)","decl":{"start":{"line":257,"column":19},"end":{"line":257,"column":20}},"loc":{"start":{"line":257,"column":31},"end":{"line":270,"column":13}},"line":257},"48":{"name":"(anonymous_48)","decl":{"start":{"line":260,"column":61},"end":{"line":260,"column":62}},"loc":{"start":{"line":260,"column":76},"end":{"line":262,"column":17}},"line":260},"49":{"name":"(anonymous_49)","decl":{"start":{"line":262,"column":19},"end":{"line":262,"column":20}},"loc":{"start":{"line":262,"column":34},"end":{"line":264,"column":17}},"line":262},"50":{"name":"(anonymous_50)","decl":{"start":{"line":271,"column":18},"end":{"line":271,"column":19}},"loc":{"start":{"line":271,"column":30},"end":{"line":273,"column":13}},"line":271},"51":{"name":"(anonymous_51)","decl":{"start":{"line":274,"column":45},"end":{"line":274,"column":46}},"loc":{"start":{"line":274,"column":57},"end":{"line":277,"column":13}},"line":274},"52":{"name":"(anonymous_52)","decl":{"start":{"line":278,"column":77},"end":{"line":278,"column":78}},"loc":{"start":{"line":278,"column":89},"end":{"line":288,"column":13}},"line":278},"53":{"name":"(anonymous_53)","decl":{"start":{"line":282,"column":36},"end":{"line":282,"column":37}},"loc":{"start":{"line":282,"column":48},"end":{"line":286,"column":21}},"line":282},"54":{"name":"(anonymous_54)","decl":{"start":{"line":289,"column":53},"end":{"line":289,"column":54}},"loc":{"start":{"line":289,"column":65},"end":{"line":297,"column":13}},"line":289},"55":{"name":"(anonymous_55)","decl":{"start":{"line":291,"column":48},"end":{"line":291,"column":49}},"loc":{"start":{"line":291,"column":60},"end":{"line":296,"column":17}},"line":291},"56":{"name":"(anonymous_56)","decl":{"start":{"line":298,"column":77},"end":{"line":298,"column":78}},"loc":{"start":{"line":298,"column":89},"end":{"line":308,"column":13}},"line":298},"57":{"name":"(anonymous_57)","decl":{"start":{"line":302,"column":36},"end":{"line":302,"column":37}},"loc":{"start":{"line":302,"column":48},"end":{"line":306,"column":21}},"line":302},"58":{"name":"(anonymous_58)","decl":{"start":{"line":311,"column":31},"end":{"line":311,"column":32}},"loc":{"start":{"line":311,"column":43},"end":{"line":429,"column":5}},"line":311},"59":{"name":"(anonymous_59)","decl":{"start":{"line":312,"column":32},"end":{"line":312,"column":33}},"loc":{"start":{"line":312,"column":44},"end":{"line":372,"column":9}},"line":312},"60":{"name":"(anonymous_60)","decl":{"start":{"line":314,"column":19},"end":{"line":314,"column":20}},"loc":{"start":{"line":314,"column":31},"end":{"line":366,"column":13}},"line":314},"61":{"name":"(anonymous_61)","decl":{"start":{"line":318,"column":20},"end":{"line":318,"column":21}},"loc":{"start":{"line":318,"column":34},"end":{"line":348,"column":21}},"line":318},"62":{"name":"(anonymous_62)","decl":{"start":{"line":323,"column":32},"end":{"line":323,"column":33}},"loc":{"start":{"line":323,"column":46},"end":{"line":333,"column":33}},"line":323},"63":{"name":"(anonymous_63)","decl":{"start":{"line":334,"column":32},"end":{"line":334,"column":33}},"loc":{"start":{"line":334,"column":49},"end":{"line":336,"column":33}},"line":334},"64":{"name":"(anonymous_64)","decl":{"start":{"line":337,"column":32},"end":{"line":337,"column":33}},"loc":{"start":{"line":337,"column":64},"end":{"line":344,"column":33}},"line":337},"65":{"name":"(anonymous_65)","decl":{"start":{"line":349,"column":20},"end":{"line":349,"column":21}},"loc":{"start":{"line":349,"column":42},"end":{"line":362,"column":21}},"line":349},"66":{"name":"(anonymous_66)","decl":{"start":{"line":367,"column":18},"end":{"line":367,"column":19}},"loc":{"start":{"line":367,"column":30},"end":{"line":369,"column":13}},"line":367},"67":{"name":"(anonymous_67)","decl":{"start":{"line":370,"column":29},"end":{"line":370,"column":30}},"loc":{"start":{"line":370,"column":41},"end":{"line":370,"column":80}},"line":370},"68":{"name":"(anonymous_68)","decl":{"start":{"line":371,"column":30},"end":{"line":371,"column":31}},"loc":{"start":{"line":371,"column":42},"end":{"line":371,"column":82}},"line":371},"69":{"name":"(anonymous_69)","decl":{"start":{"line":373,"column":46},"end":{"line":373,"column":47}},"loc":{"start":{"line":373,"column":58},"end":{"line":428,"column":9}},"line":373},"70":{"name":"(anonymous_70)","decl":{"start":{"line":375,"column":19},"end":{"line":375,"column":20}},"loc":{"start":{"line":375,"column":31},"end":{"line":422,"column":13}},"line":375},"71":{"name":"(anonymous_71)","decl":{"start":{"line":382,"column":20},"end":{"line":382,"column":21}},"loc":{"start":{"line":382,"column":34},"end":{"line":404,"column":21}},"line":382},"72":{"name":"(anonymous_72)","decl":{"start":{"line":387,"column":32},"end":{"line":387,"column":33}},"loc":{"start":{"line":387,"column":46},"end":{"line":397,"column":33}},"line":387},"73":{"name":"(anonymous_73)","decl":{"start":{"line":398,"column":32},"end":{"line":398,"column":33}},"loc":{"start":{"line":398,"column":49},"end":{"line":400,"column":33}},"line":398},"74":{"name":"(anonymous_74)","decl":{"start":{"line":405,"column":20},"end":{"line":405,"column":21}},"loc":{"start":{"line":405,"column":42},"end":{"line":418,"column":21}},"line":405},"75":{"name":"(anonymous_75)","decl":{"start":{"line":423,"column":18},"end":{"line":423,"column":19}},"loc":{"start":{"line":423,"column":30},"end":{"line":425,"column":13}},"line":423},"76":{"name":"(anonymous_76)","decl":{"start":{"line":426,"column":35},"end":{"line":426,"column":36}},"loc":{"start":{"line":426,"column":47},"end":{"line":426,"column":90}},"line":426},"77":{"name":"(anonymous_77)","decl":{"start":{"line":427,"column":36},"end":{"line":427,"column":37}},"loc":{"start":{"line":427,"column":48},"end":{"line":427,"column":92}},"line":427}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":4,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":56},"end":{"line":4,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":11},"end":{"line":3,"column":61}},"type":"cond-expr","locations":[{"start":{"line":3,"column":37},"end":{"line":3,"column":40}},{"start":{"line":3,"column":43},"end":{"line":3,"column":61}}],"line":3},"2":{"loc":{"start":{"line":3,"column":12},"end":{"line":3,"column":33}},"type":"binary-expr","locations":[{"start":{"line":3,"column":12},"end":{"line":3,"column":15}},{"start":{"line":3,"column":19},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":152,"column":62},"end":{"line":152,"column":86}},"type":"default-arg","locations":[{"start":{"line":152,"column":82},"end":{"line":152,"column":86}}],"line":152},"4":{"loc":{"start":{"line":199,"column":16},"end":{"line":201,"column":17}},"type":"if","locations":[{"start":{"line":199,"column":16},"end":{"line":201,"column":17}},{"start":{"line":199,"column":16},"end":{"line":201,"column":17}}],"line":199},"5":{"loc":{"start":{"line":210,"column":24},"end":{"line":211,"column":40}},"type":"if","locations":[{"start":{"line":210,"column":24},"end":{"line":211,"column":40}},{"start":{"line":210,"column":24},"end":{"line":211,"column":40}}],"line":210},"6":{"loc":{"start":{"line":249,"column":24},"end":{"line":250,"column":40}},"type":"if","locations":[{"start":{"line":249,"column":24},"end":{"line":250,"column":40}},{"start":{"line":249,"column":24},"end":{"line":250,"column":40}}],"line":249},"7":{"loc":{"start":{"line":283,"column":24},"end":{"line":284,"column":40}},"type":"if","locations":[{"start":{"line":283,"column":24},"end":{"line":284,"column":40}},{"start":{"line":283,"column":24},"end":{"line":284,"column":40}}],"line":283},"8":{"loc":{"start":{"line":303,"column":24},"end":{"line":304,"column":40}},"type":"if","locations":[{"start":{"line":303,"column":24},"end":{"line":304,"column":40}},{"start":{"line":303,"column":24},"end":{"line":304,"column":40}}],"line":303},"9":{"loc":{"start":{"line":338,"column":36},"end":{"line":342,"column":42}},"type":"if","locations":[{"start":{"line":338,"column":36},"end":{"line":342,"column":42}},{"start":{"line":338,"column":36},"end":{"line":342,"column":42}}],"line":338}},"s":{"0":1,"1":3,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":2,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":0,"28":3,"29":3,"30":3,"31":3,"32":6,"33":2,"34":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"55":2,"56":2,"57":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":4,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":2,"101":2,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":0,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":0,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":2,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":0,"143":1,"144":1,"145":1,"146":1,"147":1,"148":3,"149":4,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":0,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":0,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1,"181":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":0,"188":0,"189":0,"190":0,"191":4,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":2,"214":6,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1},"f":{"0":3,"1":1,"2":2,"3":1,"4":0,"5":3,"6":3,"7":6,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1,"21":1,"22":1,"23":1,"24":4,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":2,"32":2,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":2,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":3,"49":4,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":0,"64":0,"65":4,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":2,"74":6,"75":1,"76":1,"77":1},"b":{"0":[1,1,1],"1":[0,3],"2":[3,3],"3":[0],"4":[0,1],"5":[1,0],"6":[1,0],"7":[1,0],"8":[1,0],"9":[0,0]},"inputSourceMap":{"version":3,"file":"/home/kuba/projects/sealcode/sealgen/src/forms/multiform.test.ts","sources":["/home/kuba/projects/sealcode/sealgen/src/forms/multiform.test.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from \"@koa/router\";\nimport Koa from \"koa\";\nimport axios from \"axios\";\nimport { Browser, firefox, Page } from \"playwright\";\nimport { expect } from \"@playwright/test\";\nimport { FlatTemplatable, tempstream } from \"tempstream\";\nimport { Controls, Fields, Form, Mountable } from \"..\";\nimport { mount } from \"../mount\";\nimport { FormDataValue, FormMessage } from \"./form\";\nimport { Multiform } from \"./multiform\";\nimport { assertThrowsAsync } from \"../utils/utils\";\nimport { form_factory } from \"./form.test\";\nimport { getBrowser } from \"../utils/browser-creator\";\n\nconst fields1 = {\n\temail: new Fields.SimpleFormField(true),\n};\n\nconst form1 = new (class extends Form<typeof fields1, void> {\n\tdefaultSuccessMessage = \"Form1 done!\";\n\tcontrols = [new Controls.FormHeader(\"form1\"), new Controls.SimpleInput(fields1.email)];\n\tfields = fields1;\n\tonSubmit() {\n\t\treturn;\n\t}\n})();\n\nconst fields2 = {\n\tname: new Fields.SimpleFormField(true),\n};\n\nconst form2 = new (class extends Form<Record<never, unknown>, void> {\n\tdefaultSuccessMessage = \"Form2 done!\";\n\tcontrols = [new Controls.FormHeader(\"form2\"), new Controls.SimpleInput(fields2.name)];\n\tfields = fields2;\n\tonSubmit() {\n\t\treturn;\n\t}\n})();\n\nfunction multiform_factory(\n\tcanAccessFun1?: Mountable[\"canAccess\"],\n\tcanAccessFun2?: Mountable[\"canAccess\"]\n): Multiform {\n\treturn new (class extends Multiform {\n\t\tname = \"multiform_test\";\n\t\tforms = {\n\t\t\tform1: form_factory(canAccessFun1),\n\t\t\tform2: form_factory(canAccessFun2),\n\t\t};\n\t\tasync render(...args: Parameters<Multiform[\"render\"]>): Promise<FlatTemplatable> {\n\t\t\treturn tempstream/* HTML */ `<!DOCTYPE html>\n\t\t\t\t<html>\n\t\t\t\t\t<head>\n\t\t\t\t\t\t<title>Multiform Test - Sealgen</title>\n\t\t\t\t\t\t<script type=\"module\">\n\t\t\t\t\t\t\timport hotwiredTurbo from \"https://cdn.skypack.dev/pin/@hotwired/turbo@v7.0.0-9XNv1By6uiqRlBzQLO2d/mode=imports,min/optimized/@hotwired/turbo.js\";\n\t\t\t\t\t\t</script>\n\t\t\t\t\t</head>\n\t\t\t\t\t<body>\n\t\t\t\t\t\t${super.render(...args)}\n\t\t\t\t\t</body>\n\t\t\t\t</html>`;\n\t\t}\n\t})();\n}\n\nasync function tests(js_enabled: boolean) {\n\tlet page: Page;\n\n\tbefore(async () => {\n\t\tconst browser = await getBrowser();\n\t\tconst context = await browser.newContext({\n\t\t\tjavaScriptEnabled: js_enabled,\n\t\t});\n\t\tpage = await context.newPage();\n\t\tawait page.goto(\"http://localhost:8080\");\n\t\tawait page.getByLabel(\"email\").click();\n\t\tawait page.getByLabel(\"email\").fill(\"sample1\");\n\t\tawait page.getByLabel(\"name\").click();\n\t\tawait page.getByLabel(\"name\").fill(\"sample2\");\n\t\tawait page.locator(\"#multiform_test_form1_submit\").click();\n\t});\n\n\tit(\"checking whether only one submit handler is run\", async () => {\n\t\tawait page.getByText(\"Form1 done!\").click();\n\t\tawait assertThrowsAsync(async () => {\n\t\t\treturn page.getByText(\"Form2 done!\").click({ timeout: 500 });\n\t\t});\n\t});\n\n\tit(\"checking whether the input in the not submitted form prevails\", async () => {\n\t\tawait expect(page.getByLabel(\"name\")).toHaveValue(\"sample2\");\n\t});\n}\n\nasync function general_form_validation_e2e_tests(js_enabled: boolean) {\n\tlet browser: Browser;\n\tlet page: Page;\n\n\tbrowser = await getBrowser();\n\tconst context = await browser.newContext({\n\t\tjavaScriptEnabled: js_enabled,\n\t});\n\tpage = await context.newPage();\n\tawait page.goto(\"http://localhost:8080\");\n\tawait page.getByPlaceholder(\"text\").click();\n\tawait page.getByPlaceholder(\"text\").fill(\"incorrect\");\n\tawait page.getByPlaceholder(\"password\").click();\n\tawait page.getByPlaceholder(\"password\").fill(\"test\");\n\tawait page.locator(\"#multiform_test_form2_submit\").click();\n\tassertThrowsAsync(async () => {\n\t\tpage.getByText(\"Incorrect input\").click({ timeout: 500 });\n\t});\n}\n\nasync function individual_field_validation_e2e_tests(javaScriptEnabled: boolean) {\n\tlet browser: Browser;\n\tlet page: Page;\n\n\tbefore(async () => {\n\t\tbrowser = await getBrowser();\n\t\tconst context = await browser.newContext({\n\t\t\tjavaScriptEnabled,\n\t\t});\n\t\tpage = await context.newPage();\n\t\tawait page.goto(\"http://localhost:8080\");\n\t});\n\n\tit(\"validation message shows when incorrect input is given\", async () => {\n\t\tawait page.getByPlaceholder(\"text\").click();\n\t\tawait page.getByPlaceholder(\"text\").fill(\"notanemail\");\n\t\tawait page.locator(\"#multiform_test_form1_submit\").click();\n\t\tawait page.getByText(\"Please enter a proper email address\").click();\n\t});\n\n\tit(\"validation message doesn't show when correct input is given\", async () => {\n\t\tawait page.getByPlaceholder(\"text\").click();\n\t\tawait page.getByPlaceholder(\"text\").fill(\"yes@an.email\");\n\t\tawait page.locator(\"#multiform_test_form1_submit\").click();\n\t\tassertThrowsAsync(async () => {\n\t\t\treturn page.getByText(\"Please enter a proper email address\").click({ timeout: 500 });\n\t\t});\n\t});\n}\n\ndescribe(\"multiform test\", () => {\n\tdescribe(\"basic tests\", async () => {\n\t\tlet server: ReturnType<Koa[\"listen\"]>;\n\n\t\tbefore(async () => {\n\t\t\tconst app = new Koa();\n\t\t\tconst router = new Router();\n\n\t\t\tmount(\n\t\t\t\trouter,\n\t\t\t\t\"/\",\n\t\t\t\tnew (class extends Multiform {\n\t\t\t\t\tname = \"multiform_test\";\n\t\t\t\t\tforms = { form1, form2 };\n\t\t\t\t\tasync render(\n\t\t\t\t\t\tctx: Koa.Context,\n\t\t\t\t\t\tmessages: FormMessage[],\n\t\t\t\t\t\tprerenderedForms?: Record<string, FlatTemplatable | undefined>,\n\t\t\t\t\t\tshow_field_errors = true\n\t\t\t\t\t): Promise<FlatTemplatable> {\n\t\t\t\t\t\treturn tempstream/* HTML */ `<!DOCTYPE html>\n\t\t\t\t\t\t\t<html>\n\t\t\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t\t\t<title>Multiform Test - Sealgen</title>\n\t\t\t\t\t\t\t\t\t<script type=\"module\">\n\t\t\t\t\t\t\t\t\t\timport hotwiredTurbo from \"https://cdn.skypack.dev/pin/@hotwired/turbo@v7.0.0-9XNv1By6uiqRlBzQLO2d/mode=imports,min/optimized/@hotwired/turbo.js\";\n\t\t\t\t\t\t\t\t\t</script>\n\t\t\t\t\t\t\t\t</head>\n\t\t\t\t\t\t\t\t<body>\n\t\t\t\t\t\t\t\t\t${super.render(\n\t\t\t\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\t\t\t\tmessages,\n\t\t\t\t\t\t\t\t\t\tprerenderedForms,\n\t\t\t\t\t\t\t\t\t\tshow_field_errors\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</body>\n\t\t\t\t\t\t\t</html>`;\n\t\t\t\t\t}\n\t\t\t\t})(),\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\tserver = app.listen(8080);\n\t\t});\n\n\t\tafter(() => {\n\t\t\tserver.close();\n\t\t});\n\n\t\tdescribe(\"turbolinks + js enabled\", async () => tests(true));\n\t\tdescribe(\"turbolinks + js disabled\", async () => tests(false));\n\t});\n\n\tdescribe(\"canAccess\", async () => {\n\t\tlet page: Page;\n\t\tlet server: ReturnType<Koa[\"listen\"]>;\n\n\t\tdescribe(\"allow access to both forms when both canAccess return true\", async () => {\n\t\t\tbefore(async () => {\n\t\t\t\tconst app = new Koa();\n\t\t\t\tconst router = new Router();\n\n\t\t\t\tmount(\n\t\t\t\t\trouter,\n\t\t\t\t\t\"/\",\n\t\t\t\t\tmultiform_factory(\n\t\t\t\t\t\tasync (\n\t\t\t\t\t\t\tctx: Koa.Context\n\t\t\t\t\t\t): Promise<{ canAccess: boolean; message: string }> => {\n\t\t\t\t\t\t\treturn { canAccess: true, message: \"\" };\n\t\t\t\t\t\t},\n\t\t\t\t\t\tasync (\n\t\t\t\t\t\t\tctx: Koa.Context\n\t\t\t\t\t\t): Promise<{ canAccess: boolean; message: string }> => {\n\t\t\t\t\t\t\treturn { canAccess: true, message: \"\" };\n\t\t\t\t\t\t}\n\t\t\t\t\t),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\t\tserver = app.listen(8080);\n\t\t\t\tconst browser = await getBrowser();\n\t\t\t\tconst context = await browser.newContext();\n\t\t\t\tpage = await context.newPage();\n\t\t\t});\n\n\t\t\tafter(async () => {\n\t\t\t\tserver.close();\n\t\t\t});\n\n\t\t\tit(\"check wether it renders\", async () => {\n\t\t\t\tconst response = await page.goto(\"http://localhost:8080\");\n\n\t\t\t\tif (response?.status() != 200) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Should return 200 status and it returns ${response?.status()}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tawait page.locator(\"#form1\").getByText(\"This is a test:\").click();\n\t\t\t\tawait page.locator(\"#form2\").getByText(\"This is a test:\").click();\n\t\t\t});\n\n\t\t\tit(\"check wether you can submit through http (axios)\", async () => {\n\t\t\t\tawait axios.post(\n\t\t\t\t\t\"http://localhost:8080/form2\",\n\t\t\t\t\t{\n\t\t\t\t\t\tform2__text: \"pass\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalidateStatus: (status: number) => {\n\t\t\t\t\t\t\tif (status == 422) return true;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\n\t\tdescribe(\"deny access to both forms\", async () => {\n\t\t\tbefore(async () => {\n\t\t\t\tconst app = new Koa();\n\t\t\t\tconst router = new Router();\n\n\t\t\t\tmount(\n\t\t\t\t\trouter,\n\t\t\t\t\t\"/\",\n\t\t\t\t\tmultiform_factory(\n\t\t\t\t\t\tasync (\n\t\t\t\t\t\t\tctx: Koa.Context\n\t\t\t\t\t\t): Promise<{ canAccess: boolean; message: string }> => {\n\t\t\t\t\t\t\treturn { canAccess: false, message: \"\" };\n\t\t\t\t\t\t},\n\t\t\t\t\t\tasync (\n\t\t\t\t\t\t\tctx: Koa.Context\n\t\t\t\t\t\t): Promise<{ canAccess: boolean; message: string }> => {\n\t\t\t\t\t\t\treturn { canAccess: false, message: \"\" };\n\t\t\t\t\t\t}\n\t\t\t\t\t),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\t\tserver = app.listen(8080);\n\t\t\t\tconst browser = await getBrowser();\n\t\t\t\tconst context = await browser.newContext();\n\t\t\t\tpage = await context.newPage();\n\t\t\t});\n\n\t\t\tafter(async () => {\n\t\t\t\tserver.close();\n\t\t\t});\n\n\t\t\tit(\"check wether forms didnt render\", async () => {\n\t\t\t\tawait page.goto(\"http://localhost:8080\");\n\t\t\t\tawait assertThrowsAsync(async () => {\n\t\t\t\t\treturn page\n\t\t\t\t\t\t.locator(\"#form1\")\n\t\t\t\t\t\t.getByText(\"This is a test:\")\n\t\t\t\t\t\t.click({ timeout: 300 });\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tit(\"check wether it's possible to submit through http\", async () => {\n\t\t\t\tawait axios.post(\n\t\t\t\t\t\"http://localhost:8080/form2\",\n\t\t\t\t\t{\n\t\t\t\t\t\tform2__text: \"pass\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalidateStatus: (status: number) => {\n\t\t\t\t\t\t\tif (status == 403) return true;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\n\t\tdescribe(\"allow access to one form, deny to the other\", async () => {\n\t\t\tbefore(async () => {\n\t\t\t\tconst app = new Koa();\n\t\t\t\tconst router = new Router();\n\n\t\t\t\tmount(\n\t\t\t\t\trouter,\n\t\t\t\t\t\"/\",\n\t\t\t\t\tmultiform_factory(\n\t\t\t\t\t\tasync (\n\t\t\t\t\t\t\tctx: Koa.Context\n\t\t\t\t\t\t): Promise<{ canAccess: boolean; message: string }> => {\n\t\t\t\t\t\t\treturn { canAccess: true, message: \"\" };\n\t\t\t\t\t\t},\n\t\t\t\t\t\tasync (\n\t\t\t\t\t\t\tctx: Koa.Context\n\t\t\t\t\t\t): Promise<{ canAccess: boolean; message: string }> => {\n\t\t\t\t\t\t\treturn { canAccess: false, message: \"\" };\n\t\t\t\t\t\t}\n\t\t\t\t\t),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\t\tserver = app.listen(8080);\n\t\t\t\tconst browser = await getBrowser();\n\t\t\t\tconst context = await browser.newContext({});\n\t\t\t\tpage = await context.newPage();\n\t\t\t});\n\n\t\t\tafter(async () => {\n\t\t\t\tserver.close();\n\t\t\t});\n\n\t\t\tit(\"check wether form1 renders\", async () => {\n\t\t\t\tawait page.goto(\"http://localhost:8080\");\n\t\t\t\tawait page.locator(\"#form1\").getByText(\"This is a test:\").click({ timeout: 300 });\n\t\t\t});\n\n\t\t\tit(\"check wether it's possible to submit to form1 through http\", async () => {\n\t\t\t\tawait axios.post(\n\t\t\t\t\t\"http://localhost:8080/form1\",\n\t\t\t\t\t{\n\t\t\t\t\t\tform1__text: \"pass\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalidateStatus: (status: number) => {\n\t\t\t\t\t\t\tif (status == 422) return true;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(\"check wether form2 does not render\", async () => {\n\t\t\t\tawait page.goto(\"http://localhost:8080\");\n\t\t\t\tawait assertThrowsAsync(async () => {\n\t\t\t\t\treturn page\n\t\t\t\t\t\t.locator(\"#form2\")\n\t\t\t\t\t\t.getByText(\"This is a test:\")\n\t\t\t\t\t\t.click({ timeout: 300 });\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tit(\"check wether it's possible to submit to form2 through http\", async () => {\n\t\t\t\tawait axios.post(\n\t\t\t\t\t\"http://localhost:8080/form2\",\n\t\t\t\t\t{\n\t\t\t\t\t\tform2__text: \"pass\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalidateStatus: (status: number) => {\n\t\t\t\t\t\t\tif (status == 403) return true;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"validation e2e\", async () => {\n\t\tdescribe(\"basic tests\", async () => {\n\t\t\tlet server: ReturnType<Koa[\"listen\"]>;\n\n\t\t\tbefore(async () => {\n\t\t\t\tconst app = new Koa();\n\t\t\t\tconst router = new Router();\n\n\t\t\t\tmount(\n\t\t\t\t\trouter,\n\t\t\t\t\t\"/\",\n\t\t\t\t\tnew (class extends Multiform {\n\t\t\t\t\t\tname = \"multiform_test\";\n\t\t\t\t\t\tforms = {\n\t\t\t\t\t\t\tform1: new (class extends Form<typeof fields1, void> {\n\t\t\t\t\t\t\t\tfields = fields1;\n\t\t\t\t\t\t\t\tsubmitButtonText = \"Submit\";\n\t\t\t\t\t\t\t\tcontrols = [\n\t\t\t\t\t\t\t\t\tnew Controls.SimpleInput(fields1.email, {\n\t\t\t\t\t\t\t\t\t\tlabel: \"This is a test:\",\n\t\t\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t\tasync onSubmit() {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tasync validateValues(\n\t\t\t\t\t\t\t\t\tctx: Koa.Context,\n\t\t\t\t\t\t\t\t\tdata: Record<string, FormDataValue>\n\t\t\t\t\t\t\t\t): Promise<{ valid: boolean; error: string }> {\n\t\t\t\t\t\t\t\t\tif (data.email === \"incorrect\")\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\tvalid: false,\n\t\t\t\t\t\t\t\t\t\t\terror: \"Incorrect input\",\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn { valid: true, error: \"\" };\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})(),\n\t\t\t\t\t\t\tform2: form_factory(),\n\t\t\t\t\t\t};\n\t\t\t\t\t\tasync render(\n\t\t\t\t\t\t\t...args: Parameters<Multiform[\"render\"]>\n\t\t\t\t\t\t): Promise<FlatTemplatable> {\n\t\t\t\t\t\t\treturn tempstream/* HTML */ `<!DOCTYPE html>\n\t\t\t\t\t\t\t\t<html>\n\t\t\t\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t\t\t\t<title>Multiform Test - Sealgen</title>\n\t\t\t\t\t\t\t\t\t\t<script type=\"module\">\n\t\t\t\t\t\t\t\t\t\t\timport hotwiredTurbo from \"https://cdn.skypack.dev/pin/@hotwired/turbo@v7.0.0-9XNv1By6uiqRlBzQLO2d/mode=imports,min/optimized/@hotwired/turbo.js\";\n\t\t\t\t\t\t\t\t\t\t</script>\n\t\t\t\t\t\t\t\t\t</head>\n\t\t\t\t\t\t\t\t\t<body>\n\t\t\t\t\t\t\t\t\t\t${super.render(...args)}\n\t\t\t\t\t\t\t\t\t</body>\n\t\t\t\t\t\t\t\t</html>`;\n\t\t\t\t\t\t}\n\t\t\t\t\t})(),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\t\tserver = app.listen(8080);\n\t\t\t});\n\n\t\t\tafter(async () => {\n\t\t\t\tserver.close();\n\t\t\t});\n\n\t\t\tit(\"js enabled\", async () => general_form_validation_e2e_tests(true));\n\t\t\tit(\"js disabled\", async () => general_form_validation_e2e_tests(false));\n\t\t});\n\n\t\tdescribe(\"field specific validation\", async () => {\n\t\t\tlet server: ReturnType<Koa[\"listen\"]>;\n\n\t\t\tbefore(async () => {\n\t\t\t\tconst app = new Koa();\n\t\t\t\tconst router = new Router();\n\t\t\t\tconst fields = {\n\t\t\t\t\ttext: new Fields.EmailField(true),\n\t\t\t\t};\n\n\t\t\t\tmount(\n\t\t\t\t\trouter,\n\t\t\t\t\t\"/\",\n\t\t\t\t\tnew (class extends Multiform {\n\t\t\t\t\t\tname = \"multiform_test\";\n\t\t\t\t\t\tforms = {\n\t\t\t\t\t\t\tform1: new (class extends Form<typeof fields, void> {\n\t\t\t\t\t\t\t\tfields = fields;\n\t\t\t\t\t\t\t\tsubmitButtonText = \"Submit\";\n\t\t\t\t\t\t\t\tcontrols = [\n\t\t\t\t\t\t\t\t\tnew Controls.SimpleInput(fields.text, {\n\t\t\t\t\t\t\t\t\t\tlabel: \"This is a test:\",\n\t\t\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t\tasync onSubmit() {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})(),\n\t\t\t\t\t\t\tform2: form_factory(),\n\t\t\t\t\t\t};\n\t\t\t\t\t\tasync render(\n\t\t\t\t\t\t\t...args: Parameters<Multiform[\"render\"]>\n\t\t\t\t\t\t): Promise<FlatTemplatable> {\n\t\t\t\t\t\t\treturn tempstream/* HTML */ `<!DOCTYPE html>\n\t\t\t\t\t\t\t\t<html>\n\t\t\t\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t\t\t\t<title>Multiform Test - Sealgen</title>\n\t\t\t\t\t\t\t\t\t\t<script type=\"module\">\n\t\t\t\t\t\t\t\t\t\t\timport hotwiredTurbo from \"https://cdn.skypack.dev/pin/@hotwired/turbo@v7.0.0-9XNv1By6uiqRlBzQLO2d/mode=imports,min/optimized/@hotwired/turbo.js\";\n\t\t\t\t\t\t\t\t\t\t</script>\n\t\t\t\t\t\t\t\t\t</head>\n\t\t\t\t\t\t\t\t\t<body>\n\t\t\t\t\t\t\t\t\t\t${super.render(...args)}\n\t\t\t\t\t\t\t\t\t</body>\n\t\t\t\t\t\t\t\t</html>`;\n\t\t\t\t\t\t}\n\t\t\t\t\t})(),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tapp.use(router.routes()).use(router.allowedMethods());\n\t\t\t\tserver = app.listen(8080);\n\t\t\t});\n\n\t\t\tafter(async () => {\n\t\t\t\tserver.close();\n\t\t\t});\n\n\t\t\tdescribe(\"js enabled\", async () => individual_field_validation_e2e_tests(true));\n\t\t\tdescribe(\"js disabled\", async () => individual_field_validation_e2e_tests(false));\n\t\t});\n\t});\n});\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7c95771ac46e285a8ebc8c863da22e7c96b474cd"}}
|