Colons Disrupt Blacklisting

Bug description
A clear and concise description of what the bug is.
There's an issue with the Blacklist Function where including any tag with a colon in it, by which I'm referring to this : will cause the blacklist to blacklist every single image in a given booru. So far, I've only tested this on rule34.xxx but I don't see any reason why this wouldn't apply to the others. To be honest, I don't know when this started because this wasn't always the case but this causes a two issues. The first is that every image will be blacklisted, and the second is every image already downloaded will be included in the blacklist fixer.
For regular tags, this is primarily a non-issue. While certain tags that start with : can't be blacklisted this way, that's unavoidable with this glitch but it's also not a huge problem overall. You can sidestep the issue with regular tags by placing an * in place of a : so that it works fine. The issue arises if you want to do a blacklist based on info specific tags like md5:, score:, etc.
Steps to reproduce

Go to 'Options Panel'
Click on 'Blacklist'
Scroll down to 'Add tag with the : symbol in the name.'
Load any random search without that particular tag included.

Expected behavior
Whatever you searched for should have one of two results: either no images will show up if you enabled "Ignore Blacklisted Images" in the Blacklist tab. Or images should show up as intended if the prior setting has not been enabled but every image will bring up the dialog asking you if you wish to open the blacklisted image.
Context

Provide your main.log file to see if any obvious error occured.
Providing your settings.ini file will greatly help maintainers reproduce your problem if it may be caused by your configuration.
If the bug occured during a download, make sure to provide said download as an .igl file that Grabber can generate by clicking the Save button of the Downloads tab.

Note that both main.log and settings.ini files can be found in C:/Users/%USERNAME%/AppData/Local/Bionus/Grabber in Windows, and in the installation directory on Linux.
Screenshots
If applicable, add screenshots to help explain your
main.txt
problem.
System information

OS: Windows 7
Grabber version: 7.3.2, reproducible on 6+

Additional context
My settings are not abnormal. I load the maximum number of images per page, I don't use any tokens, I have fairly standardized naming conventions, and I haven't adjusted any settings that don't image image results. I have a huge blacklist but this doesn't seem to affect the problem. It seems the problem only occurs with the : symbol. I have attempted replication with other symbols such as . , ; ', none of these seem to reproduce the error. It seems exclusive to the : symbol. The log file I uploaded is in .txt format due to modification. I removed a huge number of empty space to reduce the file size so that it could be uploaded but nothing of note was removed outside of that.
Upon Testing, this doesn't seem to be an issue on Windows 10.

Do you reproduce the issue on the nightly release as well?
Also, your log seem to be from after re-starting the program as it's quite empty.
After doing a search, it should contain lots of "image blacklisted, reason: XXX" or similar normally.

Upon Testing, this doesn't seem to be an issue on Windows 10.

I personally can't reproduce, but I'm on Windows 10.
Are you saying that this issue only occurs with Windows 7? That's very strange. I'll see if I have a Win 7 machine somewhere 🤔

To answer your question, I do not know if this applies to nightly builds as I don't tend to use those. I prefer to use stable releases. Secondly, no this doesn't seem to be a problem on Windows 10. There is another facet to this within the blacklist fixer in which it make register those tags as blacklists that I've also seen on Windows 7, that has not been tested on Windows 10. However, yes, any : whatsoever in the blacklist will produce the issue in Windows 7 it would seem. Windows 10 does not seem to produce that issue, however. Also, the log I posted is incredibly reduced as the full log will not fit onto Github, it's just too large. Here's a google drive link instead. https://docs.google.com/document/d/1ABKn1NCK6Tg-KTQo1W2e44lvpqSm9_R5NEskbW3Dg3A/edit?usp=sharing
Hope this helps a bit.

I was able to reproduce this issue on the latest nightly. All I did was add the following to the blacklist field:
test:
Someone was having issues with the following blacklist: mao_mao:_heroes_of_pure_heart

I can reproduce this myself on Windows 10.
Reproduced by adding "ram_(re:zero)" to blacklist.
The tag blacklisted turns red.

Can confirm this still is happening in the recently released v7.6.1. Brand new installation.
Reproduceable by adding any tag with a colon (:) in it. Line turns red. Searches no longer return any results, stating Possible Reasons: All Images Filtered.
_Shown here: https://user-images.githubusercontent.com/78628049/131439098-7bfe0244-c9ad-4ccc-9014-985f97c04502.mp4_
Potential (Client-Side) Fix Found
doubling the colon (::) will give the desired result, so writing american_dragon:_jake_long as american_dragon::_jake_long will correct the blacklisted tag, turning it black instead of the erroneous red.}
Searching resumes as normal, with the blacklisted tag no longer showing
_Shown here: https://user-images.githubusercontent.com/78628049/131439045-ffd55334-7e56-4909-b9b1-bd17bbe9c9e8.mp4_
I'm not sure if this fix has already been listed anywhere, but as I saw the issue was still open, decided to post it for those like me who were looking for it.

Sorry about that, I thought I had closed it but I guess I didn't. Yeah this was corrected a few versions ago so the only way it wouldn't be solved if it broke again at some point. But I haven't seen it so somebody else would have to open.


[Improvement][CI] Update github mergeable label regex

Purpose of the pull request

Currently we have both 3.0.x and 3.1.x ongoing, some bug fixes may need to be cherry-picked to both 3.0.x and 3.1.x. However, we could not use milestone for two versions. We could use labels to track those bug fixes in case we miss them when doing cherry-pick. For features or improvements, we label them with 3.2.0.

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

@zhongjiajie Could u plz take a look when available? Thanks.

@EricGao888  label 3.0.x and 3.1.x should be the required fields,  if the pr has improvement, this CI will run successfully, it seems not right

@davidzollo Thanks, I will have a double-check tomorrow.


Study and Create a Demo for CI/CD

Create a dummy github project and create a ci/cd pipeline. Explain the demo to the group

I've created a practice demo project for setting up CI/CD Pipelines: https://github.com/Sriramrajivkarri12/myGitActions
Used the following source to help create a practice from this source: https://www.youtube.com/watch?v=mFFXuXjVgkU&t=616s

I have finished learning the CI/CD and have not yet finished the creation of a demo.

Finished studying the CI/CD and I'm almost done with the demo


[3.0.0-beta.34] incorrect import of isHotkey in richtext-slate plugin

Link to reproduction
https://github.com/AoiYamada/unclaimed-store
Describe the Bug
isHotkey is not a function:

https://github.com/payloadcms/payload/blob/beta/packages/richtext-slate/src/field/RichText.tsx#L18
maybe
import isHotkey from 'is-hotkey'

should be changed to
import { isHotkey } from 'is-hotkey'

after upgrade to payload 3
To Reproduce
Install deps,
then
docker compose up -d
go to
http://localhost:3000/admin/collections/pages
create new page
type anything in the rich text editor will trigger this error like this:

Payload Version
3.0.0-beta.34
Adapters and Plugins
db-mongodb, richtext-slate

Closed by #6466


A question about asymmetry between this work and referenced works

I'd like to get people's opinions on something that's been bugging me for a while, namely the asymmetry that exists between this work and referenced works. In my mind the structure of CFF files basically boils down to this:

(required) (properties of) this creative-work
(required) message
(required) cff-version
(optional) references to other creative-works

In the representation above there is a symmetry between this creative-work and referenced creative-works. That makes sense, because AFAICT the properties of a creative-work should remain the same irrespective of whether the creative-work is the 'this' creative-work work, or the creative-work is being referenced.
This symmetry, however, is not represented in the current schema.
The thing that got me thinking about this is the absence of a collection-doi property for 'this' creative-work. I would prefer to be able to specify both collection-doi and doi even when I'm not including any references. To me, both should be properties of the 'this' creative-work. The specification document currently says "If you want to provide the user with the possibility to cite the software as such in addition to a specific version, create a reference" ... so you'd end up with a creative-work in the main body of the CITATION.cff file that includes a doi but not a collection-doi, and a references part that includes a reference to a creative-work that includes a collection-doi but not a doi. However, in my view, this diminishes the machine readability because the relation between the 'this' creative-work and the referenced creative-work is implicit, i.e. a machine only knows what the relation is after resolving both DOIs and asking the DOI-issuing entity (e.g. Zenodo) what their relation is.
I'm wondering what was the (or perhaps I should say 'is there a') rationale behind the asymmetry, and do we still want to retain it in light of the doi v collection-doi issue above?

Related issue that would be made easier by having symmetry:

https://github.com/citation-file-format/citation-file-format/issues/414


Improve S3 performance

[x] Switch to use boto3 client instead of resources

Resources will not receive new feature updates
Resources are not thread save
See also: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/resources.html

[ ] Reuse s3 client over threads to improve performance

Test downloading 297 study files, each 290 KB
Using resources:
Study XXXXX: 100%|██████████| 84.0M/84.0M [01:29<00:00, 987kB/s]
Using client:
Study XXXXX: 100%|██████████| 84.0M/84.0M [00:17<00:00, 5.02MB/s]


Filter causing clipPath shift (with soft clip enabled)

Related to #62, I'm seeing a similar clipPath shift when a filter is applied:

cross-thick.svg
cross-thin.svg

JSVG
Chrome
JSVG (no filter)

cross-thick-128

cross-thick-96

cross-thick-64

cross-thin-128

cross-thin-96

cross-thin-64

Look at cross-thick-128, cross-thick-64 and cross-thin-96.
I'm using the following rendering hints: ANTIALIASING=ANTIALIAS_ON, STROKE_CONTROL=STROKE_PURE, SOFT_CLIPPING=SOFT_CLIPPING_ON

The SVG sources contain declarations for the different sizes (64, 96, 128) commented out:
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0.5 0.5 384 384" fill="none">
<!--svg xmlns="http://www.w3.org/2000/svg" width="96" height="96" viewBox="-1.5 -1.5 384 384" fill="none"-->
<!--svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0.5 0.5 384 384" fill="none"-->

Soft clipping is still unstable and even without filters has some issues.

Removing the SOFT_CLIPPING=SOFT_CLIPPING_ON hint eliminates the shift at the expense of a heavily aliased result (#59).
I've tried replacing the clipPath with a mask, like:
-<path ... clip-path="url(#center-hole)"/>
-<clipPath id="center-hole">
-<path .../>
-</clipPath>
+<path ... mask="url(#center-mask)"/>
+<mask id="center-mask" maskUnits="userSpaceOnUse">
+<path ... fill="white"/>
+</mask>

I get an anti-aliased result with a similar shift and unexpected cropping I'm currently trying to figure out (cross-thick-128):

Again, removing the shadow filter eliminates the mask shift, but I still get the cropping:

FWIW, I've copied the mask path as a stroke-only overlay (top/last element) for some kind of debugging:
<path ... fill="none" stroke="red" stroke-width="4" stroke-opacity="0.5"/>

I think I may have found the mask clipping issue.  It appears the mask area never grows beyond:
<mask x="0" y="0" width="100%" height="100%">

even when explicitly specifying the implied:
<mask x="-10%" y="-10%" width="120%" height="120%">

therefore any stroke outside the object's bounding box gets clipped.  It appears to accept a smaller mask area though:
<mask x="10%" y="10%" width="80%" height="80%">

Thank you for investigating this. I am already working on improving the situation. Though the issue lies deeper and needs some architectural restructuring to fully resolve. You are experiencing symptoms of this issue.

Would you like me to open a separate ticket for the mask clipping issue?

You can open one so its easier to keep track what is working and what not. Though the underlying issue is the same for all of them.

I have pushes some changes which should resolve most of the issues you are experiencing. I haven't had the time to test alls combinations. Could you please check whether there are any outstanding issues?

Trying out current 1.5.0-SNAPSHOT (gradlew --refresh-dependencies → 1.5.0-20240304.002615-19), I couldn't find noticeable difference:

The exact samples I've attached to this issue description still show a shift for me (using SOFT_CLIPPING_ON).  If adjust them to use the full https://github.com/weisJ/jsvg/issues/62#issuecomment-1963061430 workaround – it gets fine, but that was the case already before.

I think I've noticed one new issue related to #65, but I'll expand on it there.

Verified with a current 1.5.0-SNAPSHOT – looks as expected.

That's good to hear 👍🏼


we should not have to double tap for close down the keyboard

this commit fix the e2e test: https://github.com/GaloyMoney/galoy-mobile/pull/2233
but we should fix the underlying issue instead. I'm not sure why we need to tap twice into the mobile app. this is not a great UX. it has to do with how the keyboard is configured I guess.

@sandipndev if you have more context on this feel free to extend this ticket.

make sure only one tap is needed to update the memo (remove the fix for e2e test accordingly)
look at whether a multi line description text input is appropriate.
-- try and decode an invoice from https://lightningdecoder.com/
-- try to decode those invoices from other lightning wallets and see how they display the node

@nicolasburtey how does this look?
https://github.com/GaloyMoney/galoy-mobile/assets/74586135/c16b7b2b-aaf6-4309-b2c0-0a51113fc55d

I removed the update Invoice button, It updates via the keyboard (pressing enter)


Revert "Revert "Adaptor properties hash""

Reverts ecmwf-projects/cads-catalogue#85

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


GCNet vs. Non-Local module

@yzd-v
Hi, thanks for your simple and powerfull KD method. I have one question, why use GCNet rather commonly used Non-local module,
Have you test these two OPs since GCNet is little better than Non-local.(Maybe some experiments about these two modules can be added into your paper, since this is one question reviewers intuitively will ask)

Both GCNet and non-local can be used to add global knowledge for distillation. And we compare them in ablation study. The lighter GCNet is easier to train for distillation.

@yzd-v
Okay, I have seen Table 6. in your paper.

However, in this way, FGD's strength maybe weaken.
As is shown in FKD's paper Table 3. FKD (Non-local) can get the same performance as yours when using GCblock.

You may read the two papers carefully. In table 6, we just use global distillation without focal distillation. While the result in FKD is achieved with all losses. However, Faster RCNN can achieve 42.0 mAP with focal and global distillation together.

@yzd-v
Ok, it's my fault(feel a bit embarrassed, I will delete above pictures......23333)


Question - related to Panorama objects 'override' and 'revert' => pan-os-php merger scripts

Sven,
How does 'override' and 'revert' work in the tool when compared to Panorama?
Let's say I have objects (addresses, tags, address-groups, etc) that are overridden and I want to revert those. Is there a way to this without clicking 500 objects and clicking 'revert'?
Thanks for supporting the community.
(I did look for this in the documentation first :))

thanks for answering this question.
the merger scripts mentioned below, can not only do 'revert', these tools can also find similar objects, in specific for address value.
With these script you can improve your whole Panorama DG hierarchy objects and reduce complexity.
example:
pan-os-php type=address-merger
pan-os-php type=addressgroup-merger
pan-os-php type=tag-merger
pan-os-php type=service-merger
pan-os-php type=servicegroup-merger
detail command for address objects;
pan-os-php type=address-merger help
you file something like this:

DupAlgorithm=SameAddress | Identical | WhereUsed
Specifies how to detect duplicates:
SameAddress: objects with same Network-Value will be replaced by the one picked (default)
Identical: objects with same network-value and same name will be replaced by the one picked
WhereUsed: objects used exactly in the same location will be merged into 1 single object and all ports covered by these objects will be aggregated

this is an example of the full command for address objects
pan-os-php type=address-merger in=Panoramaconfig.xml out=Panoramamerged.xml DupAlgorithm=identical location=any allowmergingwithupperlevel
if a specific DupAlgorithm is not available, like "pa_tag-merger dupalgorithm=samename", but you like to have it,
please reach out, it is always possible to extend this

Thanks for the notes Sven,
When running it against a .xml file, I received the following error:
** ERROR ** * Died on user notice or warning!! Error: Trying to get property of non-object on D:\Pan_Configurator\pan-os-php-windows-package\pan-os-php\lib\object-classes\Address.php:77

hi,
I am interested in more details about your setup and the command you are running.
In addition it would be good to get some insights into your config.
Please reach out to swaschkut at PaloAltoNetworks . com

to update this issue here.
the found error above is related to a bug which was just fixed in pan-os-php;
The problem is related to DeviceGroups which have in the XML part no "address" section available,
and the framework did not automatically create this XML section.


Remove context

Removes CensusGrpcContext, which is not used and will be replaced by a more generic mechanism.

cool, but favor to ask :) please raise or describe the replacement by tomorrow if possible? I've a long flight (Yow! melbourne) and it would be cool to toy with whatever that is.

Unfortunately, it is still a work in progress but I figured it was worth removing this code before anyone depended upon it.

fair enough


self closure implementation issue

Is it possible to fix closure behavior so that it could use methods from abstract classes as it was before 0.2.1 release.
      abstract class X implements Runnable
        def foo
          puts "x foo"
        end
      end
      class XCaller
        def bar
          lambda(X) { foo }.run
        end
      end
      XCaller.new.bar

expect output:
x foo'

Having no much verbose error:
ERROR: Error
    lambda(X) { foo }.run
                      ^^^

It seems, that using
lambda(X) { self.foo }.run

solves the issue, but that is a bit verbose.

Yes it's possible. I added a TODO about it. There's a few approaches that
would work.

We could use a ProxyNode for FunctionalCall substitutions in the
closure builder that picks from the closed over scope or the closures
Since the call will either be a call with a self of the current scope, or
an error, we could check for an errored call and try doing a secondary
lookup in the builder.
Have ClosureScope keep track of both self types and redirect method
lookup through scopes. Then the closure scope could define lookup itself.

I think the ClosureScope idea is probably the best in that it would
increase our leverage in other areas. There's a lot of tech debt in how the
typer and type system classes interact. Moving the logic there would also
make it easier to track captured methods, which we need in order to
generate bridges.
That's the thing I was planning on tackling next.
The other issue is how does precedence and shadowing work for closure
lookup. Should the closure's methods come first? What about fields. If a
closure's parent class has protected fields, should those be referenceable
via @, or some other mechanism?
If you have a shadowed method, how do you interact with it? If closure
methods come first, AND self is always the closed over self, it's easy
because self. would be right. If closed over methods come first, we'd
need a self-like ref for closure's self. Arguably we want that anyway in
case someone needs to pass the closure itself to something.
On Tue, Oct 4, 2016 at 6:53 AM, uujava<EMAIL_ADDRESS>wrote:

Is it possible to fix closure behavior so that it could use methods from
abstract classes as it was before 0.2.1 release.
  abstract class X implements Runnable
    def foo
      puts "x foo"
    end
  end
  class XCaller
    def bar
      lambda(X) { foo }.run
    end
  end
  XCaller.new.bar

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mirah/mirah/issues/443, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAc0jUQ1sBjFSIMtYblf_B9JrJ5MpY8ks5qwkw9gaJpZM4KNo8T
.

--
-Nick Howard
http://blog.baroquebobcat.com/

I'd also thought about ClosureScope used for lookups, agree that's a best option, but haven't got the courage to implement this myself yet.
For precedence issues my thoughts are:
Q: Should the closure's methods come first?
Guess better to have outer methods come first. They are usually more "visible" for implementer as current 'visible as source text' scope is the outer class. And yes, we'd need 'self' to reference closure itself. Guess we'd also need something like 'outer' to pass the reference of top level scope.
Q: If a closure's parent class has protected fields, should those be referenceable via @, or some other mechanism?
I'd hide closure fields entirely from ClosureScope lookup for now as mirah doesn't support field inheritance yet.  Once it come to implementing field inheritance - I'd select visibility rules as for methods above and stay '@'.
Sorry for questioning - what would be your time scope for this improvement?
I'm asking to not duplicate work, as I could implement it myself (if you do not have a time).
I have a project evolving where mirah is used to replace ruby DSL (having performance issues). It would be nice to know what would be the road map for mirah (if any) for nearest (say half a year frame) future.

precedence:
I agree that outer methods come first. I think there's some wiggle room around closures with method definitions though.
For self, I'm prefer self being the outer scopes' because I feel like that's more natural most of the time. In fact, 0.2.1 has that implemented. My thought is that we could add a special inner_self or something that is the inner scope's self.
One of the tricky parts of closure selfs is that closures can be nested. For now, I think continuing the assign to a local pattern would be an ok way to deal with referencing inner_selfs from nested closures. But, it might be cool if there were some more general facility for dealing with those sorts of things.
Fields of parent types of closures.
So, if the type of the closure has fields, should they also have the special dual lookup?
Hm. That could get confusing, because @ is well-defined in Ruby and doesn't mean that. That said, this is Mirah, and abstract classes with protected instance variables that expect to be used as closures are a thing we'll need to have a story for.
I'd like to make @ so that it can reference protected fields of parents. I'm inclined to leave fields of closures hidden for now too.
As far as timeline goes, I am hoping to do these things in the next few months. I've got more bandwidth right now.


插件建议

能不能兼容version catalog方式，用catalog方式引入插件报错。
Could not apply requested plugin [id: 'cn.therouter', version: '1.1.2'] as it does not provide a plugin with id 'cn.therouter'. This is caused by an incorrect plugin implementation. Please contact the plugin author(s).

Plugin with id 'cn.therouter' not found.

参考接入文档： https://therouter.cn/docs/2022/11/23/01


Add missing dollar-sign / consistent shell style

This PR adds a missing $ in front of one of the installation instructions

I think our style should be: single commands with no output are not prefaced by a $, but snippets that show a mix of both commands and output use $ to denote the shell prompt.

@johndmulhausen Then it's still not consistent. Check out the next command in the document (chown) as well as rm at the very bottom. Also single commands with no output but they have indeed a dollar sign prefixed.

@frdmn Agreed that mixing both styles is off; if we are converging on one style for single commands, it should be no $ prefix. I would gladly accept a PR that enforces that. :)

@johndmulhausen I just pushed my changes into the existing patch-1 branch:
https://github.com/frdmn/docker.github.io/commit/6ba5d16ea56fd666ce89399d25d75c341afaea2e
I think because the PR is closed the commits are not tracked in here. Let me know if you can reopen it, otherwise I'll raise a new one :)

@joaofnfernandes Let me know what you think or If I did miss anything :)

Let me try opening the PR again, and see if Github refreshes those changes.
Gotta love some ＄💸🤑

Deploy preview processing.

Thanks to @joaofnfernandes for stepping in while I was out and to @frdmn for this work. Sorry for all the churn, normally simple fixes like this go much more smoothly. Hope it doesn't discourage you from contributing in the future. :)

No worries and thanks for the merge 👌
Von meinem iPhone gesendet

Am 10.11.2016 um 23:54 schrieb John Mulhausen<EMAIL_ADDRESS>Merged #426.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Swagger support

Is it possible to make use of existing swagger and JWT middleware in Giraffe.
Just started to look at this project and will appreciate if you can speed me up.
Thank you.

Hi, could you give me an example of swagger and JWT middleware with a normal ASP.NET Core or MVC application?

@dustinmoris This is na example of JWT middleware https://dev.to/samueleresca/developing-token-authentication-using-aspnet-core
Also, might suggest you create another set of functions:

signIn -> Helper for sign in
cookieClaims
tokenClaims

This would require you to add Microsoft.AspNetCore.Authentication.JwtBearer and Microsoft.AspNetCore.Authentication.Cookies as direct dependencies to Giraffe.

I was able to get default JWT middleware working for API routes.
Install JWT package (NuGet version)
dotnet add <project> package Microsoft.AspNetCore.Authentication.JwtBearer
dotnet restore
if VS Code / Ionide, make any change to .fsproj to trigger detection of new package
Configure it
(* Program.fs *)
...

let configureApp (app : IApplicationBuilder) =
    let jwtOptions =
        JwtBearerOptions(
            Audience = "<your api url>",
            Authority = "<your token service>"
        )
    app.UseJwtBearerAuthentication(jwtOptions) |> ignore
    ...
    app.UseGiraffe apiApp

// requires: open Microsoft.Extensions.DependencyInjection
let configureServices (services : IServiceCollection) =
    services.AddAuthentication() |> ignore
    ...

Setup HttpHandler for requiring authentication
I think I found AuthorizeAttribute's version of this code here. Hard to trace because it is so far removed from the Attribute.
// forgive my non-fish implementation
let authenticated ( ctx : HttpContext ) =
    let isAuthenticated =
        not ( isNull ctx.User )
            && not ( isNull ctx.User.Identity )
            && ctx.User.Identities |> Seq.exists (fun x -> x.IsAuthenticated)
    let result =
        if isAuthenticated then
            Some ctx
        else
            None
    async.Return result

Use it in routes
let apiApp =
    choose [
        authenticated >=>
            choose [
                route "/" >=> text "Hello world, from Giraffe!"
                setStatusCode 404 >=> text "Not Found"
            ]
        setStatusCode 401
    ]

I got this working with Auth0 (OIDC-conformant API turned on), but others should work.

Awesome work! I will try to incorporate this into a small sample app which can be checked into the repo or if you like you can try it yourself and submit a PR :)

Maybe this should be 2 separate issues? They are 2 very different requests. I would love to see Swagger support. The Swashbuckle states "You must use attribute routing for any controllers that you want represented in your Swagger document(s)" which is a problem I imagine. It would be great if we could use the Swashbuckle middleware.

@dburriss yes, these are two separate issues, the JWT one being addressed in this issue (PR pending), Swashbuckle/Swagger being addressed in #79.
In #79, assuming users are referring to "Swashbuckle like" auto-mapping api to swagger, this would be done with custom mapping functions as, like you mentioned, Swashbuckle's annotations only work on classes / methods, whereas f# & giraffe compose reusable functions (of same types) that require mapping for each route instance, not each type declaration.
As such, we can probably close this issue once JWT PR merged, and then link to #79 for the continued implementation discussion of Swagger.

Hi guys,
What about the token generation part? I haven't been able to find if this functionality is part of Asp Core or will we need to write our own method.

@catalintoma Token generation uses the same middleware as above (UseJwtBearerAuthentication), but you have to include more options to generate tokens.
https://pioneercode.com/post/authentication-in-an-asp-dot-net-core-api-part-3-json-web-token

@kspeakman Thanks, I think I've read that article before.
Just to be clear, the middleware has options to automatically create the token generation route (something like POST /token) ?

@catalintoma Looks like the middleware is only for verification actually. The token creation happens in the 2nd and 3rd code blocks of the linked article. Sorry, I do not have an F# worked example for you -- I use external auth token providers, so I only deal with token verification.

@catalintoma, @kspeakman is right, it's "just" verification middleware. Here is another example for .netcore 2.0.
let jwt = requiresAuthentication (challenge JwtBearerDefaults.AuthenticationScheme)

let webApp =
    choose [
        GET >=>
            choose [
                route "/" >=> razorHtmlView "Index" { Text = "Hello world, from Giraffe!" }
                route "/protected" >=> jwt >=> text "Authorized"
            ]
        setStatusCode 404 >=> text "Not Found" ]

let configureServices (services : IServiceCollection) =
    let sp  = services.BuildServiceProvider()
    let env = sp.GetService<IHostingEnvironment>()
    let viewsFolderPath = Path.Combine(env.ContentRootPath, "Views")
    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(fun x ->
        let events = JwtBearerEvents()
        events.OnAuthenticationFailed <- fun context ->
            context.Fail "Authentication failed"
            Task.CompletedTask

        x.RequireHttpsMetadata <- false
        x.Authority <- "http://localhost:5050/identity"
        x.Audience <- "sebastian"
        x.Events <- events) |> ignore
    services.AddRazorEngine viewsFolderPath |> ignore

I wanted to prepare also an example for generating JWT token, but unfortunately, not all required libraries have been ported to netstandard2 yet.
But at least you can try to use OpenIddict as far I know it's one of solution which been ported to netcoreapp2.0.

I've put some JWT generator there:  JWT generator

https://channel9.msdn.com/Series/aspnetmonsters/ASPNET-Monsters-39-Creating-Tokens-for-Basic-API-Authentication isn't it about that?

I've put together a sample application for JWT auth with .NET Core 2. It also demonstrates pulling authenticated data from claims and making use of that in web operations. It's available here: https://github.com/dustinmoris/Giraffe/pull/101

I've renamed the issue as the JWT support question has been sufficiently answered I believe. Thanks @torhovland @rmotyka @Sebosek @kspeakman for your help on this!

Actually I am going to close this as a duplicate and suggest to continue any Swagger support conversation in #79.


Update go-sqlite3 to 1.14.16

I wanted to use JSON functions that needed SQLite version 3.38.0. It seems to be working, so maybe others would benefit too

Nice!

Now available via pod registry


wierd error trying to combine reports

The error:
> istanbul report --root ./coverage --dir ./coverage/combined --format html

C:\ws\open-source\oas-mocker\node_modules\istanbul\lib\object-utils.js:247
            for (i = 0; i < retArray.length; i += 1) {
                                    ^

TypeError: Cannot read property 'length' of undefined
    at C:\ws\open-source\oas-mocker\node_modules\istanbul\lib\object-utils.js:247:37
    at Array.forEach (native)
    at Object.mergeFileCoverage (C:\ws\open-source\oas-mocker\node_modules\istanbul\lib\object-utils.js:244:31)
    at C:\ws\open-source\oas-mocker\node_modules\istanbul\lib\collector.js:71:44
    at Array.forEach (native)
    at Object.add (C:\ws\open-source\oas-mocker\node_modules\istanbul\lib\collector.js:68:31)
    at C:\ws\open-source\oas-mocker\node_modules\istanbul\lib\command\report.js:111:27
    at Array.forEach (native)
    at C:\ws\open-source\oas-mocker\node_modules\istanbul\lib\command\report.js:109:19
    at C:\ws\open-source\oas-mocker\node_modules\istanbul\lib\util\file-matcher.js:39:20

files and folders:
./coverage/unit-test/coverage.json
{"C:\\ws\\open-source\\oas-mocker\\lib\\logger.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\logger.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":0,"7":1},"b":{"1":[0,1],"2":[1,0]},"f":{"1":1,"2":1},"fnMap":{"1":{"name":"(anonymous_1)","line":7,"loc":{"start":{"line":7,"column":2},"end":{"line":7,"column":13}}},"2":{"name":"(anonymous_2)","line":11,"loc":{"start":{"line":11,"column":2},"end":{"line":11,"column":16}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":3,"column":3}},"2":{"start":{"line":5,"column":0},"end":{"line":17,"column":1}},"3":{"start":{"line":8,"column":6},"end":{"line":8,"column":32}},"4":{"start":{"line":12,"column":6},"end":{"line":12,"column":29}},"5":{"start":{"line":13,"column":6},"end":{"line":14,"column":57}},"6":{"start":{"line":14,"column":10},"end":{"line":14,"column":57}},"7":{"start":{"line":15,"column":6},"end":{"line":15,"column":17}}},"branchMap":{"1":{"line":13,"type":"if","locations":[{"start":{"line":13,"column":6},"end":{"line":13,"column":6}},{"start":{"line":13,"column":6},"end":{"line":13,"column":6}}]},"2":{"line":13,"type":"binary-expr","locations":[{"start":{"line":13,"column":10},"end":{"line":13,"column":20}},{"start":{"line":13,"column":24},"end":{"line":13,"column":43}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\args.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\args.js","s":{"1":1,"2":1,"3":1,"4":1,"5":19,"6":19,"7":19,"8":1,"9":1,"10":18,"11":1,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0},"b":{"1":[1,18],"2":[19,18],"3":[0,0],"4":[0,0],"5":[0,0]},"f":{"1":19},"fnMap":{"1":{"name":"parse","line":45,"loc":{"start":{"line":45,"column":0},"end":{"line":45,"column":29}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":29}},"2":{"start":{"line":2,"column":0},"end":{"line":41,"column":3}},"3":{"start":{"line":43,"column":0},"end":{"line":43,"column":22}},"4":{"start":{"line":45,"column":0},"end":{"line":56,"column":1}},"5":{"start":{"line":46,"column":4},"end":{"line":46,"column":29}},"6":{"start":{"line":48,"column":4},"end":{"line":48,"column":43}},"7":{"start":{"line":50,"column":4},"end":{"line":53,"column":5}},"8":{"start":{"line":51,"column":8},"end":{"line":51,"column":27}},"9":{"start":{"line":52,"column":8},"end":{"line":52,"column":29}},"10":{"start":{"line":55,"column":4},"end":{"line":55,"column":15}},"11":{"start":{"line":58,"column":0},"end":{"line":73,"column":1}},"12":{"start":{"line":59,"column":4},"end":{"line":59,"column":11}},"13":{"start":{"line":60,"column":4},"end":{"line":64,"column":5}},"14":{"start":{"line":61,"column":52},"end":{"line":61,"column":107}},"15":{"start":{"line":62,"column":20},"end":{"line":62,"column":30}},"16":{"start":{"line":66,"column":4},"end":{"line":70,"column":5}},"17":{"start":{"line":66,"column":13},"end":{"line":70,"column":5}},"18":{"start":{"line":72,"column":4},"end":{"line":72,"column":16}}},"branchMap":{"1":{"line":50,"type":"if","locations":[{"start":{"line":50,"column":4},"end":{"line":50,"column":4}},{"start":{"line":50,"column":4},"end":{"line":50,"column":4}}]},"2":{"line":50,"type":"binary-expr","locations":[{"start":{"line":50,"column":8},"end":{"line":50,"column":18}},{"start":{"line":50,"column":22},"end":{"line":50,"column":31}}]},"3":{"line":61,"type":"binary-expr","locations":[{"start":{"line":61,"column":52},"end":{"line":61,"column":100}},{"start":{"line":61,"column":104},"end":{"line":61,"column":107}}]},"4":{"line":61,"type":"cond-expr","locations":[{"start":{"line":61,"column":77},"end":{"line":61,"column":85}},{"start":{"line":61,"column":88},"end":{"line":61,"column":89}}]},"5":{"line":66,"type":"if","locations":[{"start":{"line":66,"column":4},"end":{"line":66,"column":4}},{"start":{"line":66,"column":4},"end":{"line":66,"column":4}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\model\\can-mgr.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\model\\can-mgr.js","s":{"1":1,"2":14,"3":9,"4":9,"5":1,"6":2,"7":8,"8":9,"9":9,"10":9,"11":9,"12":9,"13":9,"14":9,"15":2,"16":2,"17":1,"18":7,"19":8,"20":6,"21":8,"22":1,"23":5,"24":5,"25":5,"26":5,"27":3,"28":5,"29":5,"30":2,"31":3,"32":3,"33":1,"34":1,"35":3,"36":1,"37":12,"38":12,"39":12,"40":11,"41":1,"42":1,"43":11,"44":11,"45":11,"46":11,"47":11,"48":7,"49":11,"50":11,"51":12,"52":8,"53":4,"54":1,"55":11,"56":11,"57":1,"58":8,"59":1,"60":6,"61":6,"62":2,"63":2,"64":1,"65":9,"66":26,"67":1,"68":14,"69":14,"70":14,"71":5},"b":{"1":[2,7],"2":[1,1],"3":[5,2],"4":[5,2],"5":[2,3],"6":[1,2],"7":[1,11],"8":[12,11],"9":[11,11],"10":[9,2],"11":[7,4],"12":[8,4],"13":[11,1,10,1,9,1,8,6],"14":[8,7,7,7,2],"15":[7,7],"16":[6,1,5,1],"17":[2,1,1],"18":[14,1],"19":[14,1,13,2,11,2],"20":[13,12],"21":[11,10,10],"22":[5,9]},"f":{"1":5,"2":12,"3":11,"4":8,"5":6,"6":9,"7":14},"fnMap":{"1":{"name":"response","line":52,"loc":{"start":{"line":52,"column":4},"end":{"line":52,"column":27}}},"2":{"name":"set","line":108,"loc":{"start":{"line":108,"column":4},"end":{"line":108,"column":29}}},"3":{"name":"validateOpCan","line":181,"loc":{"start":{"line":181,"column":4},"end":{"line":181,"column":38}}},"4":{"name":"httpStatusError","line":190,"loc":{"start":{"line":190,"column":8},"end":{"line":190,"column":41}}},"5":{"name":"httpHeadersError","line":199,"loc":{"start":{"line":199,"column":8},"end":{"line":199,"column":43}}},"6":{"name":"opsIndexOf","line":219,"loc":{"start":{"line":219,"column":4},"end":{"line":219,"column":30}}},"7":{"name":"validate","line":225,"loc":{"start":{"line":225,"column":4},"end":{"line":225,"column":27}}}},"statementMap":{"1":{"start":{"line":7,"column":0},"end":{"line":246,"column":1}},"2":{"start":{"line":8,"column":4},"end":{"line":8,"column":17}},"3":{"start":{"line":9,"column":4},"end":{"line":9,"column":42}},"4":{"start":{"line":10,"column":4},"end":{"line":14,"column":5}},"5":{"start":{"line":11,"column":24},"end":{"line":11,"column":89}},"6":{"start":{"line":11,"column":57},"end":{"line":11,"column":83}},"7":{"start":{"line":12,"column":19},"end":{"line":12,"column":37}},"8":{"start":{"line":16,"column":4},"end":{"line":16,"column":30}},"9":{"start":{"line":17,"column":4},"end":{"line":17,"column":38}},"10":{"start":{"line":18,"column":4},"end":{"line":18,"column":49}},"11":{"start":{"line":19,"column":4},"end":{"line":24,"column":7}},"12":{"start":{"line":25,"column":4},"end":{"line":25,"column":41}},"13":{"start":{"line":26,"column":4},"end":{"line":26,"column":33}},"14":{"start":{"line":29,"column":4},"end":{"line":34,"column":5}},"15":{"start":{"line":30,"column":8},"end":{"line":30,"column":29}},"16":{"start":{"line":31,"column":8},"end":{"line":31,"column":26}},"17":{"start":{"line":31,"column":17},"end":{"line":31,"column":26}},"18":{"start":{"line":33,"column":8},"end":{"line":33,"column":17}},"19":{"start":{"line":37,"column":4},"end":{"line":37,"column":59}},"20":{"start":{"line":37,"column":52},"end":{"line":37,"column":56}},"21":{"start":{"line":39,"column":4},"end":{"line":42,"column":5}},"22":{"start":{"line":52,"column":4},"end":{"line":69,"column":5}},"23":{"start":{"line":53,"column":8},"end":{"line":53,"column":66}},"24":{"start":{"line":54,"column":8},"end":{"line":54,"column":47}},"25":{"start":{"line":56,"column":8},"end":{"line":56,"column":43}},"26":{"start":{"line":57,"column":8},"end":{"line":60,"column":9}},"27":{"start":{"line":59,"column":20},"end":{"line":59,"column":24}},"28":{"start":{"line":61,"column":8},"end":{"line":61,"column":68}},"29":{"start":{"line":62,"column":8},"end":{"line":62,"column":32}},"30":{"start":{"line":62,"column":21},"end":{"line":62,"column":32}},"31":{"start":{"line":65,"column":8},"end":{"line":65,"column":36}},"32":{"start":{"line":66,"column":8},"end":{"line":66,"column":70}},"33":{"start":{"line":66,"column":20},"end":{"line":66,"column":70}},"34":{"start":{"line":66,"column":57},"end":{"line":66,"column":68}},"35":{"start":{"line":68,"column":8},"end":{"line":68,"column":30}},"36":{"start":{"line":108,"column":4},"end":{"line":173,"column":5}},"37":{"start":{"line":109,"column":8},"end":{"line":154,"column":41}},"38":{"start":{"line":110,"column":12},"end":{"line":110,"column":43}},"39":{"start":{"line":112,"column":12},"end":{"line":121,"column":13}},"40":{"start":{"line":113,"column":34},"end":{"line":113,"column":60}},"41":{"start":{"line":115,"column":16},"end":{"line":119,"column":17}},"42":{"start":{"line":120,"column":16},"end":{"line":120,"column":24}},"43":{"start":{"line":123,"column":12},"end":{"line":136,"column":18}},"44":{"start":{"line":125,"column":36},"end":{"line":136,"column":17}},"45":{"start":{"line":138,"column":14},"end":{"line":151,"column":13}},"46":{"start":{"line":140,"column":18},"end":{"line":140,"column":61}},"47":{"start":{"line":142,"column":18},"end":{"line":147,"column":19}},"48":{"start":{"line":142,"column":27},"end":{"line":147,"column":19}},"49":{"start":{"line":149,"column":18},"end":{"line":149,"column":30}},"50":{"start":{"line":153,"column":12},"end":{"line":153,"column":20}},"51":{"start":{"line":156,"column":8},"end":{"line":170,"column":9}},"52":{"start":{"line":157,"column":12},"end":{"line":169,"column":13}},"53":{"start":{"line":172,"column":8},"end":{"line":172,"column":32}},"54":{"start":{"line":181,"column":4},"end":{"line":212,"column":5}},"55":{"start":{"line":182,"column":8},"end":{"line":182,"column":35}},"56":{"start":{"line":184,"column":8},"end":{"line":188,"column":45}},"57":{"start":{"line":190,"column":8},"end":{"line":197,"column":9}},"58":{"start":{"line":191,"column":12},"end":{"line":196,"column":107}},"59":{"start":{"line":199,"column":8},"end":{"line":211,"column":9}},"60":{"start":{"line":200,"column":12},"end":{"line":200,"column":19}},"61":{"start":{"line":201,"column":12},"end":{"line":210,"column":13}},"62":{"start":{"line":204,"column":26},"end":{"line":204,"column":43}},"63":{"start":{"line":206,"column":23},"end":{"line":208,"column":37}},"64":{"start":{"line":219,"column":4},"end":{"line":223,"column":5}},"65":{"start":{"line":220,"column":8},"end":{"line":222,"column":77}},"66":{"start":{"line":222,"column":32},"end":{"line":222,"column":71}},"67":{"start":{"line":225,"column":4},"end":{"line":245,"column":5}},"68":{"start":{"line":226,"column":8},"end":{"line":226,"column":40}},"69":{"start":{"line":227,"column":8},"end":{"line":235,"column":83}},"70":{"start":{"line":237,"column":8},"end":{"line":244,"column":9}},"71":{"start":{"line":237,"column":16},"end":{"line":244,"column":9}}},"branchMap":{"1":{"line":29,"type":"if","locations":[{"start":{"line":29,"column":4},"end":{"line":29,"column":4}},{"start":{"line":29,"column":4},"end":{"line":29,"column":4}}]},"2":{"line":31,"type":"if","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":8}},{"start":{"line":31,"column":8},"end":{"line":31,"column":8}}]},"3":{"line":53,"type":"binary-expr","locations":[{"start":{"line":53,"column":38},"end":{"line":53,"column":60}},{"start":{"line":53,"column":64},"end":{"line":53,"column":66}}]},"4":{"line":56,"type":"binary-expr","locations":[{"start":{"line":56,"column":27},"end":{"line":56,"column":37}},{"start":{"line":56,"column":41},"end":{"line":56,"column":43}}]},"5":{"line":62,"type":"if","locations":[{"start":{"line":62,"column":8},"end":{"line":62,"column":8}},{"start":{"line":62,"column":8},"end":{"line":62,"column":8}}]},"6":{"line":66,"type":"if","locations":[{"start":{"line":66,"column":8},"end":{"line":66,"column":8}},{"start":{"line":66,"column":8},"end":{"line":66,"column":8}}]},"7":{"line":112,"type":"if","locations":[{"start":{"line":112,"column":12},"end":{"line":112,"column":12}},{"start":{"line":112,"column":12},"end":{"line":112,"column":12}}]},"8":{"line":112,"type":"binary-expr","locations":[{"start":{"line":112,"column":17},"end":{"line":112,"column":39}},{"start":{"line":113,"column":17},"end":{"line":113,"column":61}}]},"9":{"line":113,"type":"binary-expr","locations":[{"start":{"line":113,"column":34},"end":{"line":113,"column":36}},{"start":{"line":113,"column":40},"end":{"line":113,"column":60}}]},"10":{"line":131,"type":"cond-expr","locations":[{"start":{"line":132,"column":26},"end":{"line":132,"column":40}},{"start":{"line":133,"column":26},"end":{"line":133,"column":50}}]},"11":{"line":142,"type":"if","locations":[{"start":{"line":142,"column":18},"end":{"line":142,"column":18}},{"start":{"line":142,"column":18},"end":{"line":142,"column":18}}]},"12":{"line":156,"type":"if","locations":[{"start":{"line":156,"column":8},"end":{"line":156,"column":8}},{"start":{"line":156,"column":8},"end":{"line":156,"column":8}}]},"13":{"line":184,"type":"binary-expr","locations":[{"start":{"line":184,"column":15},"end":{"line":184,"column":36}},{"start":{"line":184,"column":53},"end":{"line":184,"column":72}},{"start":{"line":185,"column":15},"end":{"line":185,"column":45}},{"start":{"line":185,"column":53},"end":{"line":185,"column":82}},{"start":{"line":186,"column":15},"end":{"line":186,"column":34}},{"start":{"line":186,"column":53},"end":{"line":186,"column":80}},{"start":{"line":187,"column":15},"end":{"line":187,"column":43}},{"start":{"line":188,"column":15},"end":{"line":188,"column":45}}]},"14":{"line":191,"type":"binary-expr","locations":[{"start":{"line":192,"column":14},"end":{"line":192,"column":39}},{"start":{"line":193,"column":15},"end":{"line":193,"column":28}},{"start":{"line":194,"column":15},"end":{"line":194,"column":44}},{"start":{"line":195,"column":15},"end":{"line":195,"column":47}},{"start":{"line":196,"column":53},"end":{"line":196,"column":106}}]},"15":{"line":195,"type":"binary-expr","locations":[{"start":{"line":195,"column":18},"end":{"line":195,"column":29}},{"start":{"line":195,"column":33},"end":{"line":195,"column":45}}]},"16":{"line":202,"type":"binary-expr","locations":[{"start":{"line":202,"column":14},"end":{"line":202,"column":40}},{"start":{"line":202,"column":53},"end":{"line":202,"column":97}},{"start":{"line":203,"column":15},"end":{"line":209,"column":17}},{"start":{"line":209,"column":53},"end":{"line":209,"column":102}}]},"17":{"line":206,"type":"binary-expr","locations":[{"start":{"line":206,"column":23},"end":{"line":206,"column":36}},{"start":{"line":207,"column":23},"end":{"line":207,"column":36}},{"start":{"line":208,"column":23},"end":{"line":208,"column":37}}]},"18":{"line":226,"type":"binary-expr","locations":[{"start":{"line":226,"column":31},"end":{"line":226,"column":34}},{"start":{"line":226,"column":38},"end":{"line":226,"column":40}}]},"19":{"line":228,"type":"binary-expr","locations":[{"start":{"line":228,"column":13},"end":{"line":228,"column":17}},{"start":{"line":228,"column":34},"end":{"line":228,"column":60}},{"start":{"line":229,"column":13},"end":{"line":231,"column":15}},{"start":{"line":231,"column":34},"end":{"line":231,"column":89}},{"start":{"line":232,"column":13},"end":{"line":235,"column":15}},{"start":{"line":235,"column":34},"end":{"line":235,"column":83}}]},"20":{"line":229,"type":"binary-expr","locations":[{"start":{"line":229,"column":17},"end":{"line":229,"column":23}},{"start":{"line":230,"column":17},"end":{"line":230,"column":47}}]},"21":{"line":232,"type":"binary-expr","locations":[{"start":{"line":232,"column":16},"end":{"line":232,"column":20}},{"start":{"line":233,"column":17},"end":{"line":233,"column":56}},{"start":{"line":234,"column":17},"end":{"line":234,"column":55}}]},"22":{"line":237,"type":"if","locations":[{"start":{"line":237,"column":8},"end":{"line":237,"column":8}},{"start":{"line":237,"column":8},"end":{"line":237,"column":8}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\model\\gen-mgr.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\model\\gen-mgr.js","s":{"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},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0]},"f":{"1":0},"fnMap":{"1":{"name":"response","line":10,"loc":{"start":{"line":10,"column":4},"end":{"line":10,"column":28}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":45}},"2":{"start":{"line":2,"column":0},"end":{"line":41,"column":1}},"3":{"start":{"line":3,"column":4},"end":{"line":3,"column":23}},"4":{"start":{"line":10,"column":4},"end":{"line":40,"column":5}},"5":{"start":{"line":12,"column":8},"end":{"line":12,"column":41}},"6":{"start":{"line":13,"column":8},"end":{"line":13,"column":59}},"7":{"start":{"line":14,"column":8},"end":{"line":14,"column":23}},"8":{"start":{"line":14,"column":17},"end":{"line":14,"column":23}},"9":{"start":{"line":16,"column":8},"end":{"line":21,"column":9}},"10":{"start":{"line":18,"column":12},"end":{"line":18,"column":56}},"11":{"start":{"line":19,"column":12},"end":{"line":19,"column":43}},"12":{"start":{"line":22,"column":8},"end":{"line":22,"column":57}},"13":{"start":{"line":24,"column":8},"end":{"line":29,"column":9}},"14":{"start":{"line":24,"column":25},"end":{"line":29,"column":9}},"15":{"start":{"line":31,"column":8},"end":{"line":39,"column":9}}},"branchMap":{"1":{"line":13,"type":"binary-expr","locations":[{"start":{"line":13,"column":38},"end":{"line":13,"column":40}},{"start":{"line":13,"column":44},"end":{"line":13,"column":58}}]},"2":{"line":14,"type":"if","locations":[{"start":{"line":14,"column":8},"end":{"line":14,"column":8}},{"start":{"line":14,"column":8},"end":{"line":14,"column":8}}]},"3":{"line":19,"type":"binary-expr","locations":[{"start":{"line":19,"column":19},"end":{"line":19,"column":29}},{"start":{"line":19,"column":33},"end":{"line":19,"column":43}}]},"4":{"line":24,"type":"if","locations":[{"start":{"line":24,"column":8},"end":{"line":24,"column":8}},{"start":{"line":24,"column":8},"end":{"line":24,"column":8}}]},"5":{"line":33,"type":"binary-expr","locations":[{"start":{"line":33,"column":21},"end":{"line":33,"column":42}},{"start":{"line":33,"column":46},"end":{"line":33,"column":51}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\index.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\index.js","s":{"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,"15":0,"16":0,"17":0,"18":0,"19":0,"20":1,"21":0,"22":0,"23":0},"b":{"1":[0,0],"2":[0,0,0]},"f":{"1":0,"2":0,"3":0},"fnMap":{"1":{"name":"serverFactory","line":6,"loc":{"start":{"line":6,"column":0},"end":{"line":6,"column":28}}},"2":{"name":"kickServerUp","line":21,"loc":{"start":{"line":21,"column":4},"end":{"line":21,"column":31}}},"3":{"name":"shutServerDown","line":31,"loc":{"start":{"line":31,"column":4},"end":{"line":31,"column":32}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":51}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":44}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":30}},"4":{"start":{"line":6,"column":0},"end":{"line":35,"column":1}},"5":{"start":{"line":7,"column":4},"end":{"line":7,"column":22}},"6":{"start":{"line":8,"column":4},"end":{"line":8,"column":41}},"7":{"start":{"line":9,"column":4},"end":{"line":9,"column":34}},"8":{"start":{"line":10,"column":4},"end":{"line":10,"column":11}},"9":{"start":{"line":12,"column":4},"end":{"line":12,"column":30}},"10":{"start":{"line":14,"column":4},"end":{"line":14,"column":34}},"11":{"start":{"line":15,"column":4},"end":{"line":17,"column":43}},"12":{"start":{"line":17,"column":20},"end":{"line":17,"column":42}},"13":{"start":{"line":19,"column":4},"end":{"line":19,"column":14}},"14":{"start":{"line":21,"column":4},"end":{"line":29,"column":5}},"15":{"start":{"line":22,"column":8},"end":{"line":22,"column":34}},"16":{"start":{"line":23,"column":8},"end":{"line":23,"column":56}},"17":{"start":{"line":23,"column":33},"end":{"line":23,"column":55}},"18":{"start":{"line":24,"column":8},"end":{"line":28,"column":9}},"19":{"start":{"line":25,"column":10},"end":{"line":27,"column":48}},"20":{"start":{"line":31,"column":4},"end":{"line":34,"column":5}},"21":{"start":{"line":32,"column":8},"end":{"line":32,"column":38}},"22":{"start":{"line":33,"column":8},"end":{"line":33,"column":72}},"23":{"start":{"line":33,"column":23},"end":{"line":33,"column":71}}},"branchMap":{"1":{"line":25,"type":"cond-expr","locations":[{"start":{"line":26,"column":14},"end":{"line":26,"column":36}},{"start":{"line":27,"column":14},"end":{"line":27,"column":48}}]},"2":{"line":33,"type":"binary-expr","locations":[{"start":{"line":33,"column":26},"end":{"line":33,"column":27}},{"start":{"line":33,"column":31},"end":{"line":33,"column":65}},{"start":{"line":33,"column":69},"end":{"line":33,"column":70}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\web\\server.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\web\\server.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":2,"13":2,"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":1,"34":1,"35":1,"36":1,"37":1,"38":0,"39":0,"40":0},"b":{"1":[0,2],"2":[0,1],"3":[1,0]},"f":{"1":2,"2":2,"3":1,"4":1,"5":0},"fnMap":{"1":{"name":"serverPromise","line":32,"loc":{"start":{"line":32,"column":0},"end":{"line":32,"column":28}}},"2":{"name":"validate","line":41,"loc":{"start":{"line":41,"column":0},"end":{"line":41,"column":23}}},"3":{"name":"initMw","line":48,"loc":{"start":{"line":48,"column":0},"end":{"line":48,"column":21}}},"4":{"name":"buildApp","line":62,"loc":{"start":{"line":62,"column":0},"end":{"line":62,"column":23}}},"5":{"name":"reqErrHandler","line":98,"loc":{"start":{"line":98,"column":4},"end":{"line":98,"column":36}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":35}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":44}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":38}},"5":{"start":{"line":5,"column":0},"end":{"line":5,"column":42}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":47}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":47}},"8":{"start":{"line":10,"column":0},"end":{"line":10,"column":49}},"9":{"start":{"line":11,"column":0},"end":{"line":11,"column":47}},"10":{"start":{"line":13,"column":0},"end":{"line":13,"column":33}},"11":{"start":{"line":32,"column":0},"end":{"line":39,"column":1}},"12":{"start":{"line":33,"column":4},"end":{"line":33,"column":29}},"13":{"start":{"line":34,"column":4},"end":{"line":38,"column":54}},"14":{"start":{"line":37,"column":23},"end":{"line":37,"column":52}},"15":{"start":{"line":38,"column":23},"end":{"line":38,"column":52}},"16":{"start":{"line":41,"column":0},"end":{"line":46,"column":1}},"17":{"start":{"line":48,"column":0},"end":{"line":60,"column":1}},"18":{"start":{"line":49,"column":4},"end":{"line":49,"column":48}},"19":{"start":{"line":50,"column":4},"end":{"line":52,"column":60}},"20":{"start":{"line":54,"column":4},"end":{"line":59,"column":6}},"21":{"start":{"line":55,"column":8},"end":{"line":58,"column":9}},"22":{"start":{"line":57,"column":18},"end":{"line":57,"column":57}},"23":{"start":{"line":62,"column":0},"end":{"line":114,"column":1}},"24":{"start":{"line":63,"column":4},"end":{"line":63,"column":62}},"25":{"start":{"line":64,"column":4},"end":{"line":64,"column":43}},"26":{"start":{"line":65,"column":4},"end":{"line":65,"column":35}},"27":{"start":{"line":66,"column":4},"end":{"line":66,"column":31}},"28":{"start":{"line":67,"column":4},"end":{"line":67,"column":27}},"29":{"start":{"line":70,"column":4},"end":{"line":70,"column":99}},"30":{"start":{"line":71,"column":4},"end":{"line":71,"column":56}},"31":{"start":{"line":74,"column":4},"end":{"line":74,"column":73}},"32":{"start":{"line":77,"column":4},"end":{"line":84,"column":5}},"33":{"start":{"line":87,"column":4},"end":{"line":91,"column":5}},"34":{"start":{"line":92,"column":4},"end":{"line":92,"column":46}},"35":{"start":{"line":94,"column":4},"end":{"line":94,"column":28}},"36":{"start":{"line":96,"column":4},"end":{"line":96,"column":14}},"37":{"start":{"line":98,"column":4},"end":{"line":113,"column":5}},"38":{"start":{"line":99,"column":8},"end":{"line":99,"column":111}},"39":{"start":{"line":101,"column":8},"end":{"line":101,"column":71}},"40":{"start":{"line":103,"column":8},"end":{"line":112,"column":9}}},"branchMap":{"1":{"line":34,"type":"cond-expr","locations":[{"start":{"line":35,"column":8},"end":{"line":35,"column":27}},{"start":{"line":36,"column":8},"end":{"line":38,"column":54}}]},"2":{"line":57,"type":"cond-expr","locations":[{"start":{"line":57,"column":40},"end":{"line":57,"column":47}},{"start":{"line":57,"column":50},"end":{"line":57,"column":57}}]},"3":{"line":77,"type":"binary-expr","locations":[{"start":{"line":77,"column":13},"end":{"line":77,"column":37}},{"start":{"line":77,"column":41},"end":{"line":77,"column":44}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\web\\canned-responses.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\web\\canned-responses.js","s":{"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"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":1,"24":0,"25":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0,0,0],"6":[0,0],"7":[0,0],"8":[0,0]},"f":{"1":1,"2":0},"fnMap":{"1":{"name":"cannedResFctry","line":5,"loc":{"start":{"line":5,"column":17},"end":{"line":5,"column":59}}},"2":{"name":"valuesOf","line":67,"loc":{"start":{"line":67,"column":4},"end":{"line":67,"column":30}}}},"statementMap":{"1":{"start":{"line":5,"column":0},"end":{"line":72,"column":1}},"2":{"start":{"line":6,"column":4},"end":{"line":6,"column":37}},"3":{"start":{"line":7,"column":4},"end":{"line":7,"column":51}},"4":{"start":{"line":8,"column":4},"end":{"line":20,"column":7}},"5":{"start":{"line":10,"column":10},"end":{"line":12,"column":26}},"6":{"start":{"line":15,"column":10},"end":{"line":17,"column":26}},"7":{"start":{"line":21,"column":4},"end":{"line":21,"column":16}},"8":{"start":{"line":23,"column":4},"end":{"line":23,"column":47}},"9":{"start":{"line":25,"column":4},"end":{"line":65,"column":5}},"10":{"start":{"line":27,"column":8},"end":{"line":27,"column":37}},"11":{"start":{"line":28,"column":8},"end":{"line":32,"column":11}},"12":{"start":{"line":33,"column":8},"end":{"line":33,"column":18}},"13":{"start":{"line":34,"column":8},"end":{"line":36,"column":59}},"14":{"start":{"line":38,"column":8},"end":{"line":45,"column":9}},"15":{"start":{"line":39,"column":12},"end":{"line":43,"column":14}},"16":{"start":{"line":44,"column":12},"end":{"line":44,"column":60}},"17":{"start":{"line":47,"column":8},"end":{"line":47,"column":11}},"18":{"start":{"line":50,"column":8},"end":{"line":50,"column":55}},"19":{"start":{"line":51,"column":8},"end":{"line":51,"column":16}},"20":{"start":{"line":52,"column":8},"end":{"line":52,"column":11}},"21":{"start":{"line":55,"column":8},"end":{"line":62,"column":9}},"22":{"start":{"line":63,"column":8},"end":{"line":63,"column":11}},"23":{"start":{"line":67,"column":4},"end":{"line":71,"column":5}},"24":{"start":{"line":68,"column":8},"end":{"line":70,"column":66}},"25":{"start":{"line":70,"column":28},"end":{"line":70,"column":61}}},"branchMap":{"1":{"line":10,"type":"binary-expr","locations":[{"start":{"line":10,"column":19},"end":{"line":10,"column":29}},{"start":{"line":10,"column":33},"end":{"line":10,"column":36}}]},"2":{"line":11,"type":"binary-expr","locations":[{"start":{"line":11,"column":16},"end":{"line":11,"column":27}},{"start":{"line":11,"column":31},"end":{"line":11,"column":33}}]},"3":{"line":15,"type":"binary-expr","locations":[{"start":{"line":15,"column":19},"end":{"line":15,"column":29}},{"start":{"line":15,"column":33},"end":{"line":15,"column":36}}]},"4":{"line":16,"type":"binary-expr","locations":[{"start":{"line":16,"column":16},"end":{"line":16,"column":27}},{"start":{"line":16,"column":31},"end":{"line":16,"column":70}}]},"5":{"line":35,"type":"binary-expr","locations":[{"start":{"line":35,"column":14},"end":{"line":35,"column":28}},{"start":{"line":35,"column":39},"end":{"line":35,"column":59}},{"start":{"line":36,"column":14},"end":{"line":36,"column":34}},{"start":{"line":36,"column":39},"end":{"line":36,"column":59}}]},"6":{"line":38,"type":"if","locations":[{"start":{"line":38,"column":8},"end":{"line":38,"column":8}},{"start":{"line":38,"column":8},"end":{"line":38,"column":8}}]},"7":{"line":44,"type":"binary-expr","locations":[{"start":{"line":44,"column":20},"end":{"line":44,"column":33}},{"start":{"line":44,"column":37},"end":{"line":44,"column":43}}]},"8":{"line":50,"type":"binary-expr","locations":[{"start":{"line":50,"column":16},"end":{"line":50,"column":37}},{"start":{"line":50,"column":41},"end":{"line":50,"column":53}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\web\\request-mapper.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\web\\request-mapper.js","s":{"1":1,"2":0,"3":1,"4":0,"5":0},"b":{"1":[0,0]},"f":{"1":0},"fnMap":{"1":{"name":"valuesOf","line":15,"loc":{"start":{"line":15,"column":0},"end":{"line":15,"column":26}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":13,"column":1}},"2":{"start":{"line":2,"column":2},"end":{"line":12,"column":3}},"3":{"start":{"line":15,"column":0},"end":{"line":19,"column":1}},"4":{"start":{"line":16,"column":4},"end":{"line":18,"column":62}},"5":{"start":{"line":18,"column":24},"end":{"line":18,"column":57}}},"branchMap":{"1":{"line":11,"type":"cond-expr","locations":[{"start":{"line":11,"column":30},"end":{"line":11,"column":56}},{"start":{"line":11,"column":59},"end":{"line":11,"column":68}}]}}}}

./coverage/unit-e2e/coverage.json
{"C:\\ws\\open-source\\oas-mocker\\bin\\cli.js":{"path":"C:\\ws\\open-source\\oas-mocker\\bin\\cli.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":0,"9":0,"10":1,"11":1,"12":0,"13":0,"14":1,"15":1,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0]},"f":{"1":1,"2":0},"fnMap":{"1":{"name":"shutdown","line":28,"loc":{"start":{"line":28,"column":0},"end":{"line":28,"column":26}}},"2":{"name":"handleSignal","line":29,"loc":{"start":{"line":29,"column":9},"end":{"line":29,"column":36}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":60}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":40}},"3":{"start":{"line":3,"column":0},"end":{"line":9,"column":19}},"4":{"start":{"line":10,"column":0},"end":{"line":10,"column":50}},"5":{"start":{"line":12,"column":0},"end":{"line":12,"column":15}},"6":{"start":{"line":13,"column":0},"end":{"line":13,"column":33}},"7":{"start":{"line":15,"column":0},"end":{"line":21,"column":4}},"8":{"start":{"line":19,"column":6},"end":{"line":19,"column":24}},"9":{"start":{"line":20,"column":6},"end":{"line":20,"column":21}},"10":{"start":{"line":25,"column":0},"end":{"line":25,"column":42}},"11":{"start":{"line":26,"column":0},"end":{"line":26,"column":73}},"12":{"start":{"line":26,"column":29},"end":{"line":26,"column":71}},"13":{"start":{"line":26,"column":49},"end":{"line":26,"column":71}},"14":{"start":{"line":28,"column":0},"end":{"line":44,"column":1}},"15":{"start":{"line":29,"column":2},"end":{"line":43,"column":3}},"16":{"start":{"line":30,"column":6},"end":{"line":30,"column":38}},"17":{"start":{"line":30,"column":32},"end":{"line":30,"column":38}},"18":{"start":{"line":32,"column":6},"end":{"line":32,"column":25}},"19":{"start":{"line":33,"column":6},"end":{"line":35,"column":8}},"20":{"start":{"line":34,"column":10},"end":{"line":34,"column":70}},"21":{"start":{"line":36,"column":6},"end":{"line":42,"column":15}}},"branchMap":{"1":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":29},"end":{"line":26,"column":29}},{"start":{"line":26,"column":29},"end":{"line":26,"column":29}}]},"2":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":6},"end":{"line":30,"column":6}},{"start":{"line":30,"column":6},"end":{"line":30,"column":6}}]},"3":{"line":34,"type":"cond-expr","locations":[{"start":{"line":34,"column":20},"end":{"line":34,"column":27}},{"start":{"line":34,"column":30},"end":{"line":34,"column":36}}]},"4":{"line":34,"type":"binary-expr","locations":[{"start":{"line":34,"column":58},"end":{"line":34,"column":61}},{"start":{"line":34,"column":65},"end":{"line":34,"column":69}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\args.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\args.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":0,"9":0,"10":1,"11":1,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0},"b":{"1":[0,1],"2":[1,1],"3":[0,0],"4":[0,0],"5":[0,0]},"f":{"1":1},"fnMap":{"1":{"name":"parse","line":45,"loc":{"start":{"line":45,"column":0},"end":{"line":45,"column":29}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":29}},"2":{"start":{"line":2,"column":0},"end":{"line":41,"column":3}},"3":{"start":{"line":43,"column":0},"end":{"line":43,"column":22}},"4":{"start":{"line":45,"column":0},"end":{"line":56,"column":1}},"5":{"start":{"line":46,"column":4},"end":{"line":46,"column":29}},"6":{"start":{"line":48,"column":4},"end":{"line":48,"column":43}},"7":{"start":{"line":50,"column":4},"end":{"line":53,"column":5}},"8":{"start":{"line":51,"column":8},"end":{"line":51,"column":27}},"9":{"start":{"line":52,"column":8},"end":{"line":52,"column":29}},"10":{"start":{"line":55,"column":4},"end":{"line":55,"column":15}},"11":{"start":{"line":58,"column":0},"end":{"line":73,"column":1}},"12":{"start":{"line":59,"column":4},"end":{"line":59,"column":11}},"13":{"start":{"line":60,"column":4},"end":{"line":64,"column":5}},"14":{"start":{"line":61,"column":52},"end":{"line":61,"column":107}},"15":{"start":{"line":62,"column":20},"end":{"line":62,"column":30}},"16":{"start":{"line":66,"column":4},"end":{"line":70,"column":5}},"17":{"start":{"line":66,"column":13},"end":{"line":70,"column":5}},"18":{"start":{"line":72,"column":4},"end":{"line":72,"column":16}}},"branchMap":{"1":{"line":50,"type":"if","locations":[{"start":{"line":50,"column":4},"end":{"line":50,"column":4}},{"start":{"line":50,"column":4},"end":{"line":50,"column":4}}]},"2":{"line":50,"type":"binary-expr","locations":[{"start":{"line":50,"column":8},"end":{"line":50,"column":18}},{"start":{"line":50,"column":22},"end":{"line":50,"column":31}}]},"3":{"line":61,"type":"binary-expr","locations":[{"start":{"line":61,"column":52},"end":{"line":61,"column":100}},{"start":{"line":61,"column":104},"end":{"line":61,"column":107}}]},"4":{"line":61,"type":"cond-expr","locations":[{"start":{"line":61,"column":77},"end":{"line":61,"column":85}},{"start":{"line":61,"column":88},"end":{"line":61,"column":89}}]},"5":{"line":66,"type":"if","locations":[{"start":{"line":66,"column":4},"end":{"line":66,"column":4}},{"start":{"line":66,"column":4},"end":{"line":66,"column":4}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\logger.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\logger.js","s":{"1":1,"2":1,"3":4,"4":1,"5":1,"6":0,"7":1},"b":{"1":[0,1],"2":[1,0]},"f":{"1":4,"2":1},"fnMap":{"1":{"name":"(anonymous_1)","line":7,"loc":{"start":{"line":7,"column":2},"end":{"line":7,"column":13}}},"2":{"name":"(anonymous_2)","line":11,"loc":{"start":{"line":11,"column":2},"end":{"line":11,"column":16}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":3,"column":3}},"2":{"start":{"line":5,"column":0},"end":{"line":17,"column":1}},"3":{"start":{"line":8,"column":6},"end":{"line":8,"column":32}},"4":{"start":{"line":12,"column":6},"end":{"line":12,"column":29}},"5":{"start":{"line":13,"column":6},"end":{"line":14,"column":57}},"6":{"start":{"line":14,"column":10},"end":{"line":14,"column":57}},"7":{"start":{"line":15,"column":6},"end":{"line":15,"column":17}}},"branchMap":{"1":{"line":13,"type":"if","locations":[{"start":{"line":13,"column":6},"end":{"line":13,"column":6}},{"start":{"line":13,"column":6},"end":{"line":13,"column":6}}]},"2":{"line":13,"type":"binary-expr","locations":[{"start":{"line":13,"column":10},"end":{"line":13,"column":20}},{"start":{"line":13,"column":24},"end":{"line":13,"column":43}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\cli-banners.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\cli-banners.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":0,"10":1,"11":1,"12":1,"13":1,"14":0,"15":0,"16":0},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":28}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":37}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":32}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":37}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":38}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":36}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":36}},"8":{"start":{"line":9,"column":0},"end":{"line":13,"column":1}},"9":{"start":{"line":9,"column":35},"end":{"line":13,"column":1}},"10":{"start":{"line":15,"column":0},"end":{"line":21,"column":2}},"11":{"start":{"line":15,"column":28},"end":{"line":21,"column":1}},"12":{"start":{"line":16,"column":18},"end":{"line":16,"column":82}},"13":{"start":{"line":17,"column":20},"end":{"line":17,"column":65}},"14":{"start":{"line":18,"column":18},"end":{"line":18,"column":63}},"15":{"start":{"line":19,"column":18},"end":{"line":19,"column":52}},"16":{"start":{"line":20,"column":18},"end":{"line":20,"column":52}}},"branchMap":{}},"C:\\ws\\open-source\\oas-mocker\\lib\\index.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\index.js","s":{"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":0,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":0,"21":1,"22":1,"23":1,"24":1,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0},"b":{"1":[0,1],"2":[0,0],"3":[0,0,0]},"f":{"1":1,"2":1,"3":0},"fnMap":{"1":{"name":"serverFactory","line":8,"loc":{"start":{"line":8,"column":0},"end":{"line":8,"column":28}}},"2":{"name":"kickServerUp","line":26,"loc":{"start":{"line":26,"column":4},"end":{"line":26,"column":31}}},"3":{"name":"shutServerDown","line":38,"loc":{"start":{"line":38,"column":4},"end":{"line":38,"column":32}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":51}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":46}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":44}},"4":{"start":{"line":6,"column":0},"end":{"line":6,"column":30}},"5":{"start":{"line":8,"column":0},"end":{"line":45,"column":1}},"6":{"start":{"line":9,"column":4},"end":{"line":9,"column":22}},"7":{"start":{"line":10,"column":4},"end":{"line":10,"column":41}},"8":{"start":{"line":11,"column":4},"end":{"line":11,"column":34}},"9":{"start":{"line":12,"column":4},"end":{"line":12,"column":11}},"10":{"start":{"line":14,"column":4},"end":{"line":14,"column":30}},"11":{"start":{"line":16,"column":4},"end":{"line":16,"column":34}},"12":{"start":{"line":17,"column":4},"end":{"line":19,"column":43}},"13":{"start":{"line":19,"column":20},"end":{"line":19,"column":42}},"14":{"start":{"line":21,"column":4},"end":{"line":21,"column":22}},"15":{"start":{"line":22,"column":4},"end":{"line":22,"column":18}},"16":{"start":{"line":24,"column":4},"end":{"line":24,"column":14}},"17":{"start":{"line":26,"column":4},"end":{"line":36,"column":5}},"18":{"start":{"line":27,"column":8},"end":{"line":27,"column":34}},"19":{"start":{"line":28,"column":8},"end":{"line":28,"column":56}},"20":{"start":{"line":28,"column":33},"end":{"line":28,"column":55}},"21":{"start":{"line":29,"column":8},"end":{"line":33,"column":9}},"22":{"start":{"line":30,"column":10},"end":{"line":32,"column":48}},"23":{"start":{"line":34,"column":8},"end":{"line":34,"column":24}},"24":{"start":{"line":38,"column":4},"end":{"line":44,"column":5}},"25":{"start":{"line":39,"column":8},"end":{"line":39,"column":38}},"26":{"start":{"line":40,"column":8},"end":{"line":40,"column":31}},"27":{"start":{"line":40,"column":25},"end":{"line":40,"column":31}},"28":{"start":{"line":42,"column":8},"end":{"line":42,"column":21}},"29":{"start":{"line":43,"column":8},"end":{"line":43,"column":78}},"30":{"start":{"line":43,"column":25},"end":{"line":43,"column":77}}},"branchMap":{"1":{"line":30,"type":"cond-expr","locations":[{"start":{"line":31,"column":14},"end":{"line":31,"column":36}},{"start":{"line":32,"column":14},"end":{"line":32,"column":48}}]},"2":{"line":40,"type":"if","locations":[{"start":{"line":40,"column":8},"end":{"line":40,"column":8}},{"start":{"line":40,"column":8},"end":{"line":40,"column":8}}]},"3":{"line":43,"type":"binary-expr","locations":[{"start":{"line":43,"column":28},"end":{"line":43,"column":29}},{"start":{"line":43,"column":33},"end":{"line":43,"column":71}},{"start":{"line":43,"column":75},"end":{"line":43,"column":76}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\web\\server.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\web\\server.js","s":{"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,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":0,"39":0,"40":0},"b":{"1":[0,1],"2":[0,1],"3":[1,0]},"f":{"1":1,"2":1,"3":1,"4":1,"5":0},"fnMap":{"1":{"name":"serverPromise","line":32,"loc":{"start":{"line":32,"column":0},"end":{"line":32,"column":28}}},"2":{"name":"validate","line":41,"loc":{"start":{"line":41,"column":0},"end":{"line":41,"column":23}}},"3":{"name":"initMw","line":48,"loc":{"start":{"line":48,"column":0},"end":{"line":48,"column":21}}},"4":{"name":"buildApp","line":62,"loc":{"start":{"line":62,"column":0},"end":{"line":62,"column":23}}},"5":{"name":"reqErrHandler","line":98,"loc":{"start":{"line":98,"column":4},"end":{"line":98,"column":36}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":35}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":44}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":38}},"5":{"start":{"line":5,"column":0},"end":{"line":5,"column":42}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":47}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":47}},"8":{"start":{"line":10,"column":0},"end":{"line":10,"column":49}},"9":{"start":{"line":11,"column":0},"end":{"line":11,"column":47}},"10":{"start":{"line":13,"column":0},"end":{"line":13,"column":33}},"11":{"start":{"line":32,"column":0},"end":{"line":39,"column":1}},"12":{"start":{"line":33,"column":4},"end":{"line":33,"column":29}},"13":{"start":{"line":34,"column":4},"end":{"line":38,"column":54}},"14":{"start":{"line":37,"column":23},"end":{"line":37,"column":52}},"15":{"start":{"line":38,"column":23},"end":{"line":38,"column":52}},"16":{"start":{"line":41,"column":0},"end":{"line":46,"column":1}},"17":{"start":{"line":48,"column":0},"end":{"line":60,"column":1}},"18":{"start":{"line":49,"column":4},"end":{"line":49,"column":48}},"19":{"start":{"line":50,"column":4},"end":{"line":52,"column":60}},"20":{"start":{"line":54,"column":4},"end":{"line":59,"column":6}},"21":{"start":{"line":55,"column":8},"end":{"line":58,"column":9}},"22":{"start":{"line":57,"column":18},"end":{"line":57,"column":57}},"23":{"start":{"line":62,"column":0},"end":{"line":114,"column":1}},"24":{"start":{"line":63,"column":4},"end":{"line":63,"column":62}},"25":{"start":{"line":64,"column":4},"end":{"line":64,"column":43}},"26":{"start":{"line":65,"column":4},"end":{"line":65,"column":35}},"27":{"start":{"line":66,"column":4},"end":{"line":66,"column":31}},"28":{"start":{"line":67,"column":4},"end":{"line":67,"column":27}},"29":{"start":{"line":70,"column":4},"end":{"line":70,"column":99}},"30":{"start":{"line":71,"column":4},"end":{"line":71,"column":56}},"31":{"start":{"line":74,"column":4},"end":{"line":74,"column":73}},"32":{"start":{"line":77,"column":4},"end":{"line":84,"column":5}},"33":{"start":{"line":87,"column":4},"end":{"line":91,"column":5}},"34":{"start":{"line":92,"column":4},"end":{"line":92,"column":46}},"35":{"start":{"line":94,"column":4},"end":{"line":94,"column":28}},"36":{"start":{"line":96,"column":4},"end":{"line":96,"column":14}},"37":{"start":{"line":98,"column":4},"end":{"line":113,"column":5}},"38":{"start":{"line":99,"column":8},"end":{"line":99,"column":111}},"39":{"start":{"line":101,"column":8},"end":{"line":101,"column":71}},"40":{"start":{"line":103,"column":8},"end":{"line":112,"column":9}}},"branchMap":{"1":{"line":34,"type":"cond-expr","locations":[{"start":{"line":35,"column":8},"end":{"line":35,"column":27}},{"start":{"line":36,"column":8},"end":{"line":38,"column":54}}]},"2":{"line":57,"type":"cond-expr","locations":[{"start":{"line":57,"column":40},"end":{"line":57,"column":47}},{"start":{"line":57,"column":50},"end":{"line":57,"column":57}}]},"3":{"line":77,"type":"binary-expr","locations":[{"start":{"line":77,"column":13},"end":{"line":77,"column":37}},{"start":{"line":77,"column":41},"end":{"line":77,"column":44}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\model\\can-mgr.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\model\\can-mgr.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":2,"7":0,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":0,"16":0,"17":0,"18":1,"19":1,"20":0,"21":1,"22":1,"23":27,"24":27,"25":27,"26":27,"27":0,"28":27,"29":27,"30":27,"31":0,"32":0,"33":0,"34":0,"35":0,"36":1,"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":1,"55":0,"56":0,"57":1,"58":0,"59":1,"60":0,"61":0,"62":0,"63":0,"64":1,"65":1,"66":20,"67":1,"68":1,"69":1,"70":1,"71":0},"b":{"1":[0,1],"2":[0,0],"3":[27,26],"4":[27,27],"5":[27,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,0,0,0,0,0],"14":[0,0,0,0,0],"15":[0,0],"16":[0,0,0,0],"17":[0,0,0],"18":[1,0],"19":[1,0,1,0,1,0],"20":[1,1],"21":[1,1,1],"22":[0,1]},"f":{"1":27,"2":0,"3":0,"4":0,"5":0,"6":1,"7":1},"fnMap":{"1":{"name":"response","line":52,"loc":{"start":{"line":52,"column":4},"end":{"line":52,"column":27}}},"2":{"name":"set","line":108,"loc":{"start":{"line":108,"column":4},"end":{"line":108,"column":29}}},"3":{"name":"validateOpCan","line":181,"loc":{"start":{"line":181,"column":4},"end":{"line":181,"column":38}}},"4":{"name":"httpStatusError","line":190,"loc":{"start":{"line":190,"column":8},"end":{"line":190,"column":41}}},"5":{"name":"httpHeadersError","line":199,"loc":{"start":{"line":199,"column":8},"end":{"line":199,"column":43}}},"6":{"name":"opsIndexOf","line":219,"loc":{"start":{"line":219,"column":4},"end":{"line":219,"column":30}}},"7":{"name":"validate","line":225,"loc":{"start":{"line":225,"column":4},"end":{"line":225,"column":27}}}},"statementMap":{"1":{"start":{"line":7,"column":0},"end":{"line":246,"column":1}},"2":{"start":{"line":8,"column":4},"end":{"line":8,"column":17}},"3":{"start":{"line":9,"column":4},"end":{"line":9,"column":42}},"4":{"start":{"line":10,"column":4},"end":{"line":14,"column":5}},"5":{"start":{"line":11,"column":24},"end":{"line":11,"column":89}},"6":{"start":{"line":11,"column":57},"end":{"line":11,"column":83}},"7":{"start":{"line":12,"column":19},"end":{"line":12,"column":37}},"8":{"start":{"line":16,"column":4},"end":{"line":16,"column":30}},"9":{"start":{"line":17,"column":4},"end":{"line":17,"column":38}},"10":{"start":{"line":18,"column":4},"end":{"line":18,"column":49}},"11":{"start":{"line":19,"column":4},"end":{"line":24,"column":7}},"12":{"start":{"line":25,"column":4},"end":{"line":25,"column":41}},"13":{"start":{"line":26,"column":4},"end":{"line":26,"column":33}},"14":{"start":{"line":29,"column":4},"end":{"line":34,"column":5}},"15":{"start":{"line":30,"column":8},"end":{"line":30,"column":29}},"16":{"start":{"line":31,"column":8},"end":{"line":31,"column":26}},"17":{"start":{"line":31,"column":17},"end":{"line":31,"column":26}},"18":{"start":{"line":33,"column":8},"end":{"line":33,"column":17}},"19":{"start":{"line":37,"column":4},"end":{"line":37,"column":59}},"20":{"start":{"line":37,"column":52},"end":{"line":37,"column":56}},"21":{"start":{"line":39,"column":4},"end":{"line":42,"column":5}},"22":{"start":{"line":52,"column":4},"end":{"line":69,"column":5}},"23":{"start":{"line":53,"column":8},"end":{"line":53,"column":66}},"24":{"start":{"line":54,"column":8},"end":{"line":54,"column":47}},"25":{"start":{"line":56,"column":8},"end":{"line":56,"column":43}},"26":{"start":{"line":57,"column":8},"end":{"line":60,"column":9}},"27":{"start":{"line":59,"column":20},"end":{"line":59,"column":24}},"28":{"start":{"line":61,"column":8},"end":{"line":61,"column":68}},"29":{"start":{"line":62,"column":8},"end":{"line":62,"column":32}},"30":{"start":{"line":62,"column":21},"end":{"line":62,"column":32}},"31":{"start":{"line":65,"column":8},"end":{"line":65,"column":36}},"32":{"start":{"line":66,"column":8},"end":{"line":66,"column":70}},"33":{"start":{"line":66,"column":20},"end":{"line":66,"column":70}},"34":{"start":{"line":66,"column":57},"end":{"line":66,"column":68}},"35":{"start":{"line":68,"column":8},"end":{"line":68,"column":30}},"36":{"start":{"line":108,"column":4},"end":{"line":173,"column":5}},"37":{"start":{"line":109,"column":8},"end":{"line":154,"column":41}},"38":{"start":{"line":110,"column":12},"end":{"line":110,"column":43}},"39":{"start":{"line":112,"column":12},"end":{"line":121,"column":13}},"40":{"start":{"line":113,"column":34},"end":{"line":113,"column":60}},"41":{"start":{"line":115,"column":16},"end":{"line":119,"column":17}},"42":{"start":{"line":120,"column":16},"end":{"line":120,"column":24}},"43":{"start":{"line":123,"column":12},"end":{"line":136,"column":18}},"44":{"start":{"line":125,"column":36},"end":{"line":136,"column":17}},"45":{"start":{"line":138,"column":14},"end":{"line":151,"column":13}},"46":{"start":{"line":140,"column":18},"end":{"line":140,"column":61}},"47":{"start":{"line":142,"column":18},"end":{"line":147,"column":19}},"48":{"start":{"line":142,"column":27},"end":{"line":147,"column":19}},"49":{"start":{"line":149,"column":18},"end":{"line":149,"column":30}},"50":{"start":{"line":153,"column":12},"end":{"line":153,"column":20}},"51":{"start":{"line":156,"column":8},"end":{"line":170,"column":9}},"52":{"start":{"line":157,"column":12},"end":{"line":169,"column":13}},"53":{"start":{"line":172,"column":8},"end":{"line":172,"column":32}},"54":{"start":{"line":181,"column":4},"end":{"line":212,"column":5}},"55":{"start":{"line":182,"column":8},"end":{"line":182,"column":35}},"56":{"start":{"line":184,"column":8},"end":{"line":188,"column":45}},"57":{"start":{"line":190,"column":8},"end":{"line":197,"column":9}},"58":{"start":{"line":191,"column":12},"end":{"line":196,"column":107}},"59":{"start":{"line":199,"column":8},"end":{"line":211,"column":9}},"60":{"start":{"line":200,"column":12},"end":{"line":200,"column":19}},"61":{"start":{"line":201,"column":12},"end":{"line":210,"column":13}},"62":{"start":{"line":204,"column":26},"end":{"line":204,"column":43}},"63":{"start":{"line":206,"column":23},"end":{"line":208,"column":37}},"64":{"start":{"line":219,"column":4},"end":{"line":223,"column":5}},"65":{"start":{"line":220,"column":8},"end":{"line":222,"column":77}},"66":{"start":{"line":222,"column":32},"end":{"line":222,"column":71}},"67":{"start":{"line":225,"column":4},"end":{"line":245,"column":5}},"68":{"start":{"line":226,"column":8},"end":{"line":226,"column":40}},"69":{"start":{"line":227,"column":8},"end":{"line":235,"column":83}},"70":{"start":{"line":237,"column":8},"end":{"line":244,"column":9}},"71":{"start":{"line":237,"column":16},"end":{"line":244,"column":9}}},"branchMap":{"1":{"line":29,"type":"if","locations":[{"start":{"line":29,"column":4},"end":{"line":29,"column":4}},{"start":{"line":29,"column":4},"end":{"line":29,"column":4}}]},"2":{"line":31,"type":"if","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":8}},{"start":{"line":31,"column":8},"end":{"line":31,"column":8}}]},"3":{"line":53,"type":"binary-expr","locations":[{"start":{"line":53,"column":38},"end":{"line":53,"column":60}},{"start":{"line":53,"column":64},"end":{"line":53,"column":66}}]},"4":{"line":56,"type":"binary-expr","locations":[{"start":{"line":56,"column":27},"end":{"line":56,"column":37}},{"start":{"line":56,"column":41},"end":{"line":56,"column":43}}]},"5":{"line":62,"type":"if","locations":[{"start":{"line":62,"column":8},"end":{"line":62,"column":8}},{"start":{"line":62,"column":8},"end":{"line":62,"column":8}}]},"6":{"line":66,"type":"if","locations":[{"start":{"line":66,"column":8},"end":{"line":66,"column":8}},{"start":{"line":66,"column":8},"end":{"line":66,"column":8}}]},"7":{"line":112,"type":"if","locations":[{"start":{"line":112,"column":12},"end":{"line":112,"column":12}},{"start":{"line":112,"column":12},"end":{"line":112,"column":12}}]},"8":{"line":112,"type":"binary-expr","locations":[{"start":{"line":112,"column":17},"end":{"line":112,"column":39}},{"start":{"line":113,"column":17},"end":{"line":113,"column":61}}]},"9":{"line":113,"type":"binary-expr","locations":[{"start":{"line":113,"column":34},"end":{"line":113,"column":36}},{"start":{"line":113,"column":40},"end":{"line":113,"column":60}}]},"10":{"line":131,"type":"cond-expr","locations":[{"start":{"line":132,"column":26},"end":{"line":132,"column":40}},{"start":{"line":133,"column":26},"end":{"line":133,"column":50}}]},"11":{"line":142,"type":"if","locations":[{"start":{"line":142,"column":18},"end":{"line":142,"column":18}},{"start":{"line":142,"column":18},"end":{"line":142,"column":18}}]},"12":{"line":156,"type":"if","locations":[{"start":{"line":156,"column":8},"end":{"line":156,"column":8}},{"start":{"line":156,"column":8},"end":{"line":156,"column":8}}]},"13":{"line":184,"type":"binary-expr","locations":[{"start":{"line":184,"column":15},"end":{"line":184,"column":36}},{"start":{"line":184,"column":53},"end":{"line":184,"column":72}},{"start":{"line":185,"column":15},"end":{"line":185,"column":45}},{"start":{"line":185,"column":53},"end":{"line":185,"column":82}},{"start":{"line":186,"column":15},"end":{"line":186,"column":34}},{"start":{"line":186,"column":53},"end":{"line":186,"column":80}},{"start":{"line":187,"column":15},"end":{"line":187,"column":43}},{"start":{"line":188,"column":15},"end":{"line":188,"column":45}}]},"14":{"line":191,"type":"binary-expr","locations":[{"start":{"line":192,"column":14},"end":{"line":192,"column":39}},{"start":{"line":193,"column":15},"end":{"line":193,"column":28}},{"start":{"line":194,"column":15},"end":{"line":194,"column":44}},{"start":{"line":195,"column":15},"end":{"line":195,"column":47}},{"start":{"line":196,"column":53},"end":{"line":196,"column":106}}]},"15":{"line":195,"type":"binary-expr","locations":[{"start":{"line":195,"column":18},"end":{"line":195,"column":29}},{"start":{"line":195,"column":33},"end":{"line":195,"column":45}}]},"16":{"line":202,"type":"binary-expr","locations":[{"start":{"line":202,"column":14},"end":{"line":202,"column":40}},{"start":{"line":202,"column":53},"end":{"line":202,"column":97}},{"start":{"line":203,"column":15},"end":{"line":209,"column":17}},{"start":{"line":209,"column":53},"end":{"line":209,"column":102}}]},"17":{"line":206,"type":"binary-expr","locations":[{"start":{"line":206,"column":23},"end":{"line":206,"column":36}},{"start":{"line":207,"column":23},"end":{"line":207,"column":36}},{"start":{"line":208,"column":23},"end":{"line":208,"column":37}}]},"18":{"line":226,"type":"binary-expr","locations":[{"start":{"line":226,"column":31},"end":{"line":226,"column":34}},{"start":{"line":226,"column":38},"end":{"line":226,"column":40}}]},"19":{"line":228,"type":"binary-expr","locations":[{"start":{"line":228,"column":13},"end":{"line":228,"column":17}},{"start":{"line":228,"column":34},"end":{"line":228,"column":60}},{"start":{"line":229,"column":13},"end":{"line":231,"column":15}},{"start":{"line":231,"column":34},"end":{"line":231,"column":89}},{"start":{"line":232,"column":13},"end":{"line":235,"column":15}},{"start":{"line":235,"column":34},"end":{"line":235,"column":83}}]},"20":{"line":229,"type":"binary-expr","locations":[{"start":{"line":229,"column":17},"end":{"line":229,"column":23}},{"start":{"line":230,"column":17},"end":{"line":230,"column":47}}]},"21":{"line":232,"type":"binary-expr","locations":[{"start":{"line":232,"column":16},"end":{"line":232,"column":20}},{"start":{"line":233,"column":17},"end":{"line":233,"column":56}},{"start":{"line":234,"column":17},"end":{"line":234,"column":55}}]},"22":{"line":237,"type":"if","locations":[{"start":{"line":237,"column":8},"end":{"line":237,"column":8}},{"start":{"line":237,"column":8},"end":{"line":237,"column":8}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\model\\gen-mgr.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\model\\gen-mgr.js","s":{"1":1,"2":1,"3":1,"4":1,"5":27,"6":27,"7":27,"8":26,"9":1,"10":1,"11":1,"12":1,"13":1,"14":0,"15":1},"b":{"1":[27,1],"2":[26,1],"3":[1,0],"4":[0,1],"5":[1,0]},"f":{"1":27},"fnMap":{"1":{"name":"response","line":10,"loc":{"start":{"line":10,"column":4},"end":{"line":10,"column":28}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":45}},"2":{"start":{"line":2,"column":0},"end":{"line":41,"column":1}},"3":{"start":{"line":3,"column":4},"end":{"line":3,"column":23}},"4":{"start":{"line":10,"column":4},"end":{"line":40,"column":5}},"5":{"start":{"line":12,"column":8},"end":{"line":12,"column":41}},"6":{"start":{"line":13,"column":8},"end":{"line":13,"column":59}},"7":{"start":{"line":14,"column":8},"end":{"line":14,"column":23}},"8":{"start":{"line":14,"column":17},"end":{"line":14,"column":23}},"9":{"start":{"line":16,"column":8},"end":{"line":21,"column":9}},"10":{"start":{"line":18,"column":12},"end":{"line":18,"column":56}},"11":{"start":{"line":19,"column":12},"end":{"line":19,"column":43}},"12":{"start":{"line":22,"column":8},"end":{"line":22,"column":57}},"13":{"start":{"line":24,"column":8},"end":{"line":29,"column":9}},"14":{"start":{"line":24,"column":25},"end":{"line":29,"column":9}},"15":{"start":{"line":31,"column":8},"end":{"line":39,"column":9}}},"branchMap":{"1":{"line":13,"type":"binary-expr","locations":[{"start":{"line":13,"column":38},"end":{"line":13,"column":40}},{"start":{"line":13,"column":44},"end":{"line":13,"column":58}}]},"2":{"line":14,"type":"if","locations":[{"start":{"line":14,"column":8},"end":{"line":14,"column":8}},{"start":{"line":14,"column":8},"end":{"line":14,"column":8}}]},"3":{"line":19,"type":"binary-expr","locations":[{"start":{"line":19,"column":19},"end":{"line":19,"column":29}},{"start":{"line":19,"column":33},"end":{"line":19,"column":43}}]},"4":{"line":24,"type":"if","locations":[{"start":{"line":24,"column":8},"end":{"line":24,"column":8}},{"start":{"line":24,"column":8},"end":{"line":24,"column":8}}]},"5":{"line":33,"type":"binary-expr","locations":[{"start":{"line":33,"column":21},"end":{"line":33,"column":42}},{"start":{"line":33,"column":46},"end":{"line":33,"column":51}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\web\\canned-responses.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\web\\canned-responses.js","s":{"1":1,"2":1,"3":1,"4":1,"5":0,"6":1,"7":1,"8":1,"9":1,"10":27,"11":27,"12":27,"13":27,"14":27,"15":1,"16":1,"17":27,"18":0,"19":0,"20":0,"21":0,"22":0,"23":1,"24":0,"25":0},"b":{"1":[0,0],"2":[0,0],"3":[1,0],"4":[1,0],"5":[27,27,27,27],"6":[1,26],"7":[1,0],"8":[0,0]},"f":{"1":1,"2":0},"fnMap":{"1":{"name":"cannedResFctry","line":5,"loc":{"start":{"line":5,"column":17},"end":{"line":5,"column":59}}},"2":{"name":"valuesOf","line":67,"loc":{"start":{"line":67,"column":4},"end":{"line":67,"column":30}}}},"statementMap":{"1":{"start":{"line":5,"column":0},"end":{"line":72,"column":1}},"2":{"start":{"line":6,"column":4},"end":{"line":6,"column":37}},"3":{"start":{"line":7,"column":4},"end":{"line":7,"column":51}},"4":{"start":{"line":8,"column":4},"end":{"line":20,"column":7}},"5":{"start":{"line":10,"column":10},"end":{"line":12,"column":26}},"6":{"start":{"line":15,"column":10},"end":{"line":17,"column":26}},"7":{"start":{"line":21,"column":4},"end":{"line":21,"column":16}},"8":{"start":{"line":23,"column":4},"end":{"line":23,"column":47}},"9":{"start":{"line":25,"column":4},"end":{"line":65,"column":5}},"10":{"start":{"line":27,"column":8},"end":{"line":27,"column":37}},"11":{"start":{"line":28,"column":8},"end":{"line":32,"column":11}},"12":{"start":{"line":33,"column":8},"end":{"line":33,"column":18}},"13":{"start":{"line":34,"column":8},"end":{"line":36,"column":59}},"14":{"start":{"line":38,"column":8},"end":{"line":45,"column":9}},"15":{"start":{"line":39,"column":12},"end":{"line":43,"column":14}},"16":{"start":{"line":44,"column":12},"end":{"line":44,"column":60}},"17":{"start":{"line":47,"column":8},"end":{"line":47,"column":11}},"18":{"start":{"line":50,"column":8},"end":{"line":50,"column":55}},"19":{"start":{"line":51,"column":8},"end":{"line":51,"column":16}},"20":{"start":{"line":52,"column":8},"end":{"line":52,"column":11}},"21":{"start":{"line":55,"column":8},"end":{"line":62,"column":9}},"22":{"start":{"line":63,"column":8},"end":{"line":63,"column":11}},"23":{"start":{"line":67,"column":4},"end":{"line":71,"column":5}},"24":{"start":{"line":68,"column":8},"end":{"line":70,"column":66}},"25":{"start":{"line":70,"column":28},"end":{"line":70,"column":61}}},"branchMap":{"1":{"line":10,"type":"binary-expr","locations":[{"start":{"line":10,"column":19},"end":{"line":10,"column":29}},{"start":{"line":10,"column":33},"end":{"line":10,"column":36}}]},"2":{"line":11,"type":"binary-expr","locations":[{"start":{"line":11,"column":16},"end":{"line":11,"column":27}},{"start":{"line":11,"column":31},"end":{"line":11,"column":33}}]},"3":{"line":15,"type":"binary-expr","locations":[{"start":{"line":15,"column":19},"end":{"line":15,"column":29}},{"start":{"line":15,"column":33},"end":{"line":15,"column":36}}]},"4":{"line":16,"type":"binary-expr","locations":[{"start":{"line":16,"column":16},"end":{"line":16,"column":27}},{"start":{"line":16,"column":31},"end":{"line":16,"column":70}}]},"5":{"line":35,"type":"binary-expr","locations":[{"start":{"line":35,"column":14},"end":{"line":35,"column":28}},{"start":{"line":35,"column":39},"end":{"line":35,"column":59}},{"start":{"line":36,"column":14},"end":{"line":36,"column":34}},{"start":{"line":36,"column":39},"end":{"line":36,"column":59}}]},"6":{"line":38,"type":"if","locations":[{"start":{"line":38,"column":8},"end":{"line":38,"column":8}},{"start":{"line":38,"column":8},"end":{"line":38,"column":8}}]},"7":{"line":44,"type":"binary-expr","locations":[{"start":{"line":44,"column":20},"end":{"line":44,"column":33}},{"start":{"line":44,"column":37},"end":{"line":44,"column":43}}]},"8":{"line":50,"type":"binary-expr","locations":[{"start":{"line":50,"column":16},"end":{"line":50,"column":37}},{"start":{"line":50,"column":41},"end":{"line":50,"column":53}}]}}},"C:\\ws\\open-source\\oas-mocker\\lib\\web\\request-mapper.js":{"path":"C:\\ws\\open-source\\oas-mocker\\lib\\web\\request-mapper.js","s":{"1":1,"2":27,"3":1,"4":0,"5":0},"b":{"1":[0,27]},"f":{"1":0},"fnMap":{"1":{"name":"valuesOf","line":15,"loc":{"start":{"line":15,"column":0},"end":{"line":15,"column":26}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":13,"column":1}},"2":{"start":{"line":2,"column":2},"end":{"line":12,"column":3}},"3":{"start":{"line":15,"column":0},"end":{"line":19,"column":1}},"4":{"start":{"line":16,"column":4},"end":{"line":18,"column":62}},"5":{"start":{"line":18,"column":24},"end":{"line":18,"column":57}}},"branchMap":{"1":{"line":11,"type":"cond-expr","locations":[{"start":{"line":11,"column":30},"end":{"line":11,"column":56}},{"start":{"line":11,"column":59},"end":{"line":11,"column":68}}]}}}}

tools version
C:\ws\open-source\oas-mocker>npm list istanbul
<EMAIL_ADDRESS>C:\ws\open-source\oas-mocker
`--<EMAIL_ADDRESS>
C:\ws\open-source\oas-mocker>node -v
v6.11.2
feels like de javu...  can't figure why...

Same problem. Did you ever resolve this?

I think I had to move to<EMAIL_ADDRESS>and I was able to continue working but - I'm not sure
my oas-mocker is on hold atm since I changed workplace and OAS is not used in the new place 😛