diff --git a/CHANGELOG.md b/CHANGELOG.md index 88a3a248..343087d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.0.2-next.7](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.6...v0.0.2-next.7) (2021-10-08) + ### [0.0.2-next.6](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.5...v0.0.2-next.6) (2021-10-08) ### [0.0.2-next.5](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.4...v0.0.2-next.5) (2021-10-08) diff --git a/docs/assets/js/search.json b/docs/assets/js/search.json index ab82c2cd..5d96f86a 100644 --- a/docs/assets/js/search.json +++ b/docs/assets/js/search.json @@ -1 +1 @@ -{"kinds":{"2":"Namespace","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","4194304":"Type alias","9999999":"Page"},"rows":[{"id":0,"kind":64,"name":"InjectAbility","url":"modules.html#InjectAbility","classes":"tsd-kind-function"},{"id":1,"kind":64,"name":"Policy","url":"modules.html#Policy","classes":"tsd-kind-function tsd-has-type-parameter"},{"id":2,"kind":2,"name":"Policy","url":"modules/Policy.html","classes":"tsd-kind-namespace"},{"id":3,"kind":64,"name":"usingGuard","url":"modules/Policy.html#usingGuard","classes":"tsd-kind-function tsd-parent-kind-namespace","parent":"Policy","pagesPluginParent":"Policy."},{"id":4,"kind":64,"name":"PoliciesMask","url":"modules.html#PoliciesMask","classes":"tsd-kind-function tsd-has-type-parameter"},{"id":5,"kind":2,"name":"PoliciesMask","url":"modules/PoliciesMask.html","classes":"tsd-kind-namespace"},{"id":6,"kind":64,"name":"usingGuard","url":"modules/PoliciesMask.html#usingGuard","classes":"tsd-kind-function tsd-parent-kind-namespace","parent":"PoliciesMask","pagesPluginParent":"PoliciesMask."},{"id":7,"kind":64,"name":"bindPolicyDecorators","url":"modules.html#bindPolicyDecorators","classes":"tsd-kind-function tsd-has-type-parameter"},{"id":8,"kind":4194304,"name":"BoundPolicyDecorators","url":"modules.html#BoundPolicyDecorators","classes":"tsd-kind-type-alias tsd-has-type-parameter"},{"id":9,"kind":65536,"name":"__type","url":"modules.html#BoundPolicyDecorators.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"BoundPolicyDecorators","pagesPluginParent":"BoundPolicyDecorators."},{"id":10,"kind":1024,"name":"Policy","url":"modules.html#BoundPolicyDecorators.__type.Policy","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"BoundPolicyDecorators.__type","pagesPluginParent":"BoundPolicyDecorators.__type."},{"id":11,"kind":1024,"name":"PoliciesMask","url":"modules.html#BoundPolicyDecorators.__type.PoliciesMask","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"BoundPolicyDecorators.__type","pagesPluginParent":"BoundPolicyDecorators.__type."},{"id":12,"kind":128,"name":"CaslModule","url":"classes/CaslModule.html","classes":"tsd-kind-class"},{"id":13,"kind":2048,"name":"withConfig","url":"classes/CaslModule.html#withConfig","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"CaslModule","pagesPluginParent":"CaslModule."},{"id":14,"kind":512,"name":"constructor","url":"classes/CaslModule.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CaslModule","pagesPluginParent":"CaslModule."},{"id":15,"kind":256,"name":"ICaslRootConfig","url":"interfaces/ICaslRootConfig.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":16,"kind":1024,"name":"abilityFactory","url":"interfaces/ICaslRootConfig.html#abilityFactory","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ICaslRootConfig","pagesPluginParent":"ICaslRootConfig."},{"id":17,"kind":4194304,"name":"PolicyDescriptor","url":"modules.html#PolicyDescriptor","classes":"tsd-kind-type-alias tsd-has-type-parameter"},{"id":18,"kind":4194304,"name":"PolicyDescriptorMask","url":"modules.html#PolicyDescriptorMask","classes":"tsd-kind-type-alias tsd-has-type-parameter"},{"id":19,"kind":256,"name":"IPolicy","url":"interfaces/IPolicy.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":20,"kind":2048,"name":"handle","url":"interfaces/IPolicy.html#handle","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"IPolicy","pagesPluginParent":"IPolicy."},{"id":21,"kind":4194304,"name":"SimplePolicy","url":"modules.html#SimplePolicy","classes":"tsd-kind-type-alias tsd-has-type-parameter"},{"id":22,"kind":4194304,"name":"GuardsList","url":"modules.html#GuardsList","classes":"tsd-kind-type-alias"},{"id":23,"kind":256,"name":"CaslAbilityFactory","url":"interfaces/CaslAbilityFactory.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":24,"kind":2048,"name":"createFromRequest","url":"interfaces/CaslAbilityFactory.html#createFromRequest","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"CaslAbilityFactory","pagesPluginParent":"CaslAbilityFactory."},{"id":25,"kind":4194304,"name":"MaybeAsyncValue","url":"modules.html#MaybeAsyncValue","classes":"tsd-kind-type-alias tsd-has-type-parameter"},{"id":26,"kind":1,"name":"Getting started","url":"pages/Guides/getting-started.html","classes":"tsd-kind-page","pagesPluginContent":"> This module is compatible with `nestjs@^8.0.0`.\n\n# Setup & configuration\n\nFirst, install the module:\n\n```bash\nnpm install @scitizen/nest-casl\n```\n\nThen, declare a provider that generate a CASL Ability from the current request.\n\n{@codeblock test/basic-use.e2e-spec.ts#AbilityFactory | src/ability-factory.service.ts}\n\nImport the {@link CaslModule `CaslModule`} in your `AppModule`, and configure it to use your ability factory.\n\n{@codeblock test/basic-use.e2e-spec.ts#AppModule | src/app.module.ts}\n\nYou can now start using policy decorators ({@link Policy `Policy`} and {@link PoliciesMask `PoliciesMask`}) in your controllers !\n\n# Basic usage\n\nYou can protect all methods of your controller using the {@link Policy `Policy`} class decorator.\n\n{@codeblock test/basic-use.e2e-spec.ts#CatOwnerController | src/cat-owner.controller.ts}\n\nThis decorator can also be used to protect individual methods.\n\n{@codeblock test/basic-use.e2e-spec.ts#CatCareController | src/cat-care.controller.ts}\n\nIf you want to group various policies in the same decorator at the controller level, use the {@link PoliciesMask `PoliciesMask`} decorator.\n\n{@codeblock test/basic-use.e2e-spec.ts#CatController | src/cat.controller.ts}\n\nCheck the tests !\n\n{@codeblock folded test/basic-use.e2e-spec.ts#Test | test/cats.e2e-spec.ts}\n\n# What next ?\n\n{@page Use with guards}","pagesPluginParent":"Guides / "},{"id":27,"kind":1,"name":"Use with guards","url":"pages/Guides/use-with-guards.html","classes":"tsd-kind-page","pagesPluginContent":"Most of the times, you want to execute some guards before checking CASL policies, to extract some user informations before generating its abilities.\n\nThis page will show you the various way to do.\n\nLet's assume you have the following {@link CaslAbilityFactory `CaslAbilityFactory`}:\n\n{@codeblock test/use-with-guards/ability-factory.service.ts | src/ability-factory.service.ts}\n\n# The naïve approach\n\n> This method is **not recommanded**. You might skip directly to the [recommended approach](#the-recommended-approach)\n\n## Without any more dependencies\n\nThis method does not require any external dependency, and is as close to NestJS as possible.\n\n{@codeblock folded test/use-with-guards/naive.guard.ts | src/guards/naive.guard.ts}\n\nAssuming the guard does the following (see above for an example implementation):\n* Users without an `Authorization` header will see an `Unauthorized` exception.\n* Users with an invalid `Authorization` header will see a `Forbidden` exception.\n* Users with a valid `Authorization` header will be allowed to continue, and the property `user` is set on the `request`.\n\n> Yeah, I'm aware that in an ideal world, a [`Middleware`](https://docs.nestjs.com/middleware) or an [`Interceptor`](https://docs.nestjs.com/interceptors) should take care of setting the `user` property on the `Request`. But fact is that [`@nestjs/passport`](https://www.npmjs.com/package/@nestjs/passport) does it [in a guard](https://github.com/nestjs/passport/blob/6aef921c7566766d0eb9e79d2c8235177c539863/lib/auth.guard.ts#L58)\n\n{@codeblock test/use-with-guards/naive.controller.ts | src/controllers/naive.controller.ts}\n\nNow,\n* Users without an `Authorization` header will see an `Unauthorized` exception (from the `NaiveGuard`).\n* Users with an invalid `Authorization` header will see a `Forbidden` exception (from the `NaiveGuard`).\n* Users with an `Authorization` header that does not give them access to the ressource will see a `Forbidden` exception (from the {@link PoliciesGuard `PoliciesGuard`}).\n* Users with an `Authorization` header that give them access to the ressource will succeed.\n\n## Using [`@nestjs/passport`](https://www.npmjs.com/package/@nestjs/passport)\n\nIf you're using `passport`, you can delegate the user retrieval. Let's say you have a JWT `passport` strategy.\n\n{@codeblock folded test/use-with-guards/jwt-passport.strategy.ts | src/strategies/jwt-passport.strategy.ts}\n\nStill using the naive approach, you can then declare the controller like this:\n\n{@codeblock test/use-with-guards/passport-naive.controller.ts | src/controllers/passport-naive.controller.ts}\n\n## The tests\n\nWanna see the behavior as tests ? Here you are !\n\n{@codeblock folded test/use-with-guards/naive-test.e2e-spec.ts}\n\n# The recommended approach\n\nWhat's the problem about the naïve approach above ? Well, there are 2.\n1. *The readability*: The `UseGuards` decorator is placed **below** the {@link Policy `Policy`} decorator, but is ran **before** it.\n2. *The reusability*: If you're using multiple authentication strategies in the same app, you might have to apply guards **and** the policies on each method depending on the context. Moreover, if you want to type-check your policies, you might prefer to have abilities presets.\n\n## About readability\n\nYou can use {@link Policy.usingGuard `Policy.usingGuard`} or {@link PoliciesMask.usingGuard `PoliciesMask.usingGuard`} to prepended guards to the decorator factory. Those calls are cumulative, and you can do multiple subsequent calls to join guards using an `and` condition. If you provide an array of guards, they be evaluated using an `or` condition.\n\n{@codeblock test/use-with-guards/recommended.controller.ts#Recommended simple controller | src/controllers/recommended.controller.ts}\n\n## About reusability\n\nYou can even prepare a policy decorator with guards or {@link PolicyDescriptor `PolicyDescriptor`}:\n\n{@codeblock test/use-with-guards/recommended.controller.ts#Recommended bound | src/policies.ts}\n\nThen, use those presets in your controller:\n\n{@codeblock test/use-with-guards/recommended.controller.ts#Recommended bound controller | src/recommended-bound.controller.ts}\n\nNow, both `method1` and `method2` will run if\n* the user is authenticated through `jwt` strategy\n* it passes either `ExtraGuard1` or `ExtraGuard2`\n* and he has admin role.\n\n> Note that you can use {@link bindPolicyDecorators `bindPolicyDecorators`} to bind *both* {@link Policy `Policy`} and {@link PoliciesMask `PoliciesMask`}\n\n## The tests\n\nThis is tested, of course. Just see by yourself.\n\n{@codeblock folded test/use-with-guards/recommended-test.e2e-spec.ts}\n\n# What next ?\n\n{@page Better type constraints}","pagesPluginParent":"Guides / "},{"id":28,"kind":1,"name":"Better type constraints","url":"pages/Guides/better-type-constraints.html","classes":"tsd-kind-page","pagesPluginContent":"So far, we were able to configure your policies. But we can't yet check that our `action`s or `subject`s are actually matching what we declared.\n\n# Define the ability type\n\nLet's configure our ability types:\n\n{@codeblock test/better-types/ability.ts}\n\nUsing `MyAbility`, we can't pass anything to `can` or `cannot`: types are constrained.\n\n{@codeblock test/better-types/ability.typecheck.e2e-spec.ts}\n\nThat's great. This will greatly reduce our chances of typos. Moreover, your IDE might now suggest `action`s & `subject`s for you.\n\n# Use the ability type\n\n## With the {@link CaslAbilityFactory `CaslAbilityFactory`}\n\nLet's now use this type in your {@link CaslAbilityFactory `CaslAbilityFactory`}:\n\n{@codeblock test/better-types/ability-factory.service.ts | src/ability-factory.service.ts}\n\n## With decorators\n\nYou can pass your ability as a type parameter to your decorators to constraint your `action`s and `subject`s:\n\n{@codeblock test/better-types/test.controller.ts | src/test.controller.ts}\n\nBut the boring part here is that you have to pass your ability type to **every** decorator in order to constrain them. Hopefully, you can solve this:\n\n{@codeblock test/better-types/my-policies.ts | src/my-policies.ts}\n\nThen, simply enjoy type contraints !\n\n{@codeblock test/better-types/test-bound.controller.ts | src/test-bound.controller.ts}\n","pagesPluginParent":"Guides / "},{"id":29,"kind":1,"name":"Changelog","url":"pages/Changelog/CHANGELOG.html","classes":"tsd-kind-page","pagesPluginContent":"# Changelog\n\nAll notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.\n\n### [0.0.2-next.6](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.5...v0.0.2-next.6) (2021-10-08)\n\n### [0.0.2-next.5](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.4...v0.0.2-next.5) (2021-10-08)\n\n### [0.0.2-next.4](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.3...v0.0.2-next.4) (2021-10-07)\n\n### [0.0.2-next.3](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.2...v0.0.2-next.3) (2021-10-06)\n\n### [0.0.2-next.2](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.1...v0.0.2-next.2) (2021-10-06)\n\n\n### Features\n\n* **policies.guard:** allow async handlers ([9594542](https://github.com/Scitizen/nest-casl/commit/95945423b9d78ecb1353fe6c1a2228d5c9571cec))\n\n\n### Bug Fixes\n\n* add policy metadata in the correct order ([467354a](https://github.com/Scitizen/nest-casl/commit/467354a0434a6518f52697c7ab46642ed9384f8e))\n* **or.guard:** properly waterfall canActivate, stop further checks on first success, use promises ([f92f45e](https://github.com/Scitizen/nest-casl/commit/f92f45e023c36a7fdfebe01851315d839a2f5a9f))\n\n### [0.0.2-next.1](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.0...v0.0.2-next.1) (2021-10-06)\n\n### [0.0.2-next.0](https://github.com/Scitizen/nest-casl/compare/v0.0.1...v0.0.2-next.0) (2021-10-06)\n\n### [0.0.1](https://github.com/Scitizen/nest-casl/compare/78f16a2f9e103be41b9d6a872f547eb54bc0d80e...v0.0.1) (2021-10-06)\n\nInitial release\n","pagesPluginParent":"Changelog / "}],"index":{"version":"2.3.9","fields":["pagesPluginContent","name","parent"],"fieldVectors":[["pagesPluginContent/0",[]],["name/0",[0,32.165]],["parent/0",[]],["pagesPluginContent/1",[]],["name/1",[1,15.072]],["parent/1",[]],["pagesPluginContent/2",[]],["name/2",[1,15.072]],["parent/2",[]],["pagesPluginContent/3",[]],["name/3",[2,26.74]],["parent/3",[1,0.78]],["pagesPluginContent/4",[]],["name/4",[3,16.591]],["parent/4",[]],["pagesPluginContent/5",[]],["name/5",[3,16.591]],["parent/5",[]],["pagesPluginContent/6",[]],["name/6",[2,26.74]],["parent/6",[3,0.859]],["pagesPluginContent/7",[]],["name/7",[4,26.74]],["parent/7",[]],["pagesPluginContent/8",[]],["name/8",[5,26.74]],["parent/8",[]],["pagesPluginContent/9",[]],["name/9",[6,32.165]],["parent/9",[5,1.385]],["pagesPluginContent/10",[]],["name/10",[1,15.072]],["parent/10",[7,1.385]],["pagesPluginContent/11",[]],["name/11",[3,16.591]],["parent/11",[7,1.385]],["pagesPluginContent/12",[]],["name/12",[8,20.497]],["parent/12",[]],["pagesPluginContent/13",[]],["name/13",[9,32.165]],["parent/13",[8,1.061]],["pagesPluginContent/14",[]],["name/14",[10,32.165]],["parent/14",[8,1.061]],["pagesPluginContent/15",[]],["name/15",[11,26.74]],["parent/15",[]],["pagesPluginContent/16",[]],["name/16",[12,32.165]],["parent/16",[11,1.385]],["pagesPluginContent/17",[]],["name/17",[13,26.74]],["parent/17",[]],["pagesPluginContent/18",[]],["name/18",[14,32.165]],["parent/18",[]],["pagesPluginContent/19",[]],["name/19",[15,26.74]],["parent/19",[]],["pagesPluginContent/20",[]],["name/20",[16,32.165]],["parent/20",[15,1.385]],["pagesPluginContent/21",[]],["name/21",[17,32.165]],["parent/21",[]],["pagesPluginContent/22",[]],["name/22",[18,32.165]],["parent/22",[]],["pagesPluginContent/23",[]],["name/23",[19,20.497]],["parent/23",[]],["pagesPluginContent/24",[]],["name/24",[20,32.165]],["parent/24",[19,1.061]],["pagesPluginContent/25",[]],["name/25",[21,32.165]],["parent/25",[]],["pagesPluginContent/26",[1,24.396,3,23.984,8,19.306,22,48.746,23,19.306,24,30.296,25,12.859,26,17.854,27,19.306,28,17.854,29,17.854,30,17.854,31,14.842,32,30.296,33,40.443,34,17.854,35,17.854,36,17.854,37,25.186,38,12.859,39,14.842,40,21.82,41,17.854,42,12.859,43,17.854,44,25.186,45,14.842,46,17.854,47,14.842,48,40.752,49,56.583,50,56.583,51,17.854,52,12.859,53,12.859,54,17.854,55,37.499,56,25.147,57,33.488,58,17.854,59,21.82,60,14.842,61,14.842,62,25.147,63,22.532,64,14.842,65,17.854,66,17.854,67,28.422,68,28.422,69,12.859,70,17.854,71,21.82,72,14.842,73,17.854,74,17.854,75,17.854,76,30.296,77,14.842,78,30.296,79,12.859,80,25.186,81,17.854,82,33.488,83,17.854,84,30.296,85,17.854,86,17.854,87,12.859,88,17.854,89,17.854,90,17.854,91,17.854,92,14.842,93,14.842,94,17.854,95,14.842,96,12.859,97,14.842,98,17.854,99,17.854,100,17.854,101,17.854,102,12.859,103,14.842,104,14.842,105,17.854,106,17.854,107,12.859,108,12.859,109,14.842,110,14.842,111,12.859]],["name/26",[112,23.437,113,23.437]],["parent/26",[]],["pagesPluginContent/27",[1,11.554,3,5.971,4,9.624,13,9.624,19,7.377,22,43.952,23,15.713,25,24.75,27,32.591,33,43.952,37,5.108,38,8.338,39,5.108,40,24.75,42,17.759,45,13.645,47,9.624,48,28.489,52,4.425,53,8.338,55,26.696,56,13.222,57,8.338,59,24.75,61,13.645,62,31.563,63,9.372,64,5.108,67,36.835,68,20.308,69,8.338,71,20.308,79,14.944,80,17.25,82,14.944,87,8.338,92,20.498,93,9.624,95,5.108,96,11.822,97,5.108,102,4.425,103,13.645,104,17.25,107,8.338,108,4.425,109,5.108,110,9.624,111,20.308,114,6.144,115,6.144,116,6.144,117,11.576,118,16.414,119,6.144,120,6.144,121,24.657,122,6.144,123,6.144,124,6.144,125,11.576,126,26.696,127,6.144,128,6.144,129,11.576,130,9.624,131,6.144,132,17.25,133,11.576,134,39.555,135,6.144,136,11.576,137,24.657,138,16.414,139,16.414,140,6.144,141,13.645,142,6.144,143,6.144,144,16.414,145,6.144,146,16.414,147,11.576,148,6.144,149,6.144,150,20.749,151,6.144,152,6.144,153,6.144,154,13.645,155,6.144,156,6.144,157,6.144,158,6.144,159,6.144,160,6.144,161,6.144,162,28.568,163,11.576,164,4.425,165,47.808,166,6.144,167,6.144,168,31.419,169,31.419,170,31.419,171,11.576,172,24.657,173,11.576,174,16.414,175,6.144,176,6.144,177,6.144,178,11.576,179,6.144,180,17.25,181,6.144,182,6.144,183,6.144,184,6.144,185,6.144,186,6.144,187,20.498,188,6.144,189,6.144,190,6.144,191,6.144,192,6.144,193,9.624,194,6.144,195,11.576,196,6.144,197,6.144,198,6.144,199,11.576,200,11.576,201,9.624,202,11.576,203,11.576,204,11.576,205,6.144,206,11.576,207,11.576,208,6.144,209,6.144,210,6.144,211,11.576,212,11.576,213,6.144,214,11.576,215,6.144,216,6.144,217,6.144,218,6.144,219,6.144,220,11.576,221,6.144,222,6.144,223,6.144,224,5.108,225,13.645,226,6.144,227,11.576,228,6.144,229,6.144,230,16.414,231,6.144,232,6.144,233,11.576,234,6.144,235,11.576,236,6.144,237,6.144,238,6.144,239,6.144,240,11.576,241,11.576,242,6.144,243,6.144,244,6.144,245,6.144,246,6.144,247,6.144,248,6.144,249,5.108,250,8.338,251,6.144,252,11.576,253,11.576,254,11.576,255,6.144,256,11.576,257,11.576,258,6.144,259,6.144,260,6.144,261,11.576,262,6.144,263,6.144,264,6.144,265,6.144,266,16.414,267,6.144,268,6.144,269,6.144,270,6.144,271,11.576,272,6.144,273,6.144,274,5.108,275,11.576,276,6.144,277,6.144,278,6.144,279,6.144,280,6.144,281,6.144,282,6.144,283,6.144,284,6.144,285,6.144,286,6.144,287,6.144,288,6.144,289,6.144,290,6.144,291,6.144,292,6.144,293,6.144,294,6.144,295,6.144,296,6.144,297,5.108,298,5.108]],["name/27",[27,11.747,63,10.526,111,13.277]],["parent/27",[]],["pagesPluginContent/28",[19,29.032,22,43.105,23,24.575,25,12.465,27,18.801,33,29.032,38,12.465,40,12.465,42,21.25,44,42.499,48,40.083,52,12.465,53,21.25,55,21.25,56,18.801,57,42.792,59,12.465,60,24.528,62,37.862,63,16.846,67,32.813,68,27.775,69,21.25,71,12.465,72,24.528,79,12.465,82,12.465,96,12.465,102,12.465,107,12.465,108,12.465,126,12.465,130,24.528,132,14.388,141,14.388,154,14.388,164,12.465,187,24.528,193,24.528,201,14.388,224,14.388,225,24.528,249,14.388,250,40.083,274,24.528,299,17.307,300,17.307,301,45.559,302,17.307,303,17.307,304,29.504,305,17.307,306,38.564,307,38.564,308,38.564,309,17.307,310,17.307,311,17.307,312,17.307,313,29.504,314,55.653,315,17.307,316,17.307,317,38.564,318,17.307,319,17.307,320,17.307,321,17.307,322,17.307,323,17.307,324,17.307,325,17.307,326,17.307,327,17.307,328,17.307,329,17.307,330,17.307,331,17.307,332,17.307,333,17.307,334,17.307,335,17.307,336,17.307,337,17.307,338,14.388,339,17.307,340,17.307,341,17.307,342,17.307,343,29.504,344,17.307,345,17.307,346,17.307,347,17.307,348,17.307,349,17.307]],["name/28",[250,13.277,297,15.325,298,15.325]],["parent/28",[]],["pagesPluginContent/29",[1,10.267,22,50.772,23,22.904,31,18.215,33,13.963,56,22.904,62,13.963,63,12.511,77,18.215,87,15.781,126,15.781,162,18.215,164,15.781,180,18.215,338,18.215,350,18.215,351,21.911,352,21.911,353,21.911,354,21.911,355,21.911,356,21.911,357,21.911,358,21.911,359,21.911,360,21.911,361,21.911,362,66.241,363,21.911,364,62.717,365,21.911,366,21.911,367,69.156,368,69.156,369,35.942,370,21.911,371,21.911,372,21.911,373,21.911,374,21.911,375,21.911,376,21.911,377,21.911,378,21.911,379,21.911,380,58.368,381,21.911,382,21.911,383,21.911,384,21.911,385,21.911,386,21.911,387,21.911,388,21.911,389,21.911,390,21.911,391,21.911,392,21.911,393,21.911,394,21.911,395,21.911,396,21.911,397,21.911,398,21.911,399,21.911,400,21.911,401,21.911,402,21.911,403,21.911,404,21.911,405,21.911,406,21.911,407,21.911,408,21.911,409,21.911,410,21.911,411,21.911,412,21.911,413,21.911,414,21.911,415,21.911,416,21.911,417,21.911,418,21.911]],["name/29",[350,26.74]],["parent/29",[]]],"invertedIndex":[["",{"_index":22,"pagesPluginContent":{"26":{},"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["0.0.1](https://github.com/scitizen/nest",{"_index":415,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["0.0.2",{"_index":362,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["06",{"_index":380,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["07",{"_index":376,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["08",{"_index":369,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["1",{"_index":234,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["10",{"_index":368,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["2",{"_index":233,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["2021",{"_index":367,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["467354a](https://github.com/scitizen/nest",{"_index":396,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["9594542](https://github.com/scitizen/nest",{"_index":389,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["__type",{"_index":6,"pagesPluginContent":{},"name":{"9":{}},"parent":{}}],["a",{"_index":40,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["abilities",{"_index":125,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["ability",{"_index":44,"pagesPluginContent":{"26":{},"28":{}},"name":{},"parent":{}}],["abilityfactory",{"_index":12,"pagesPluginContent":{},"name":{"16":{}},"parent":{}}],["able",{"_index":303,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["about",{"_index":230,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["above",{"_index":163,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["access",{"_index":202,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["action`s",{"_index":307,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["actually",{"_index":309,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["add",{"_index":393,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["admin",{"_index":287,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["all",{"_index":77,"pagesPluginContent":{"26":{},"29":{}},"name":{},"parent":{}}],["allow",{"_index":386,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["allowed",{"_index":176,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["also",{"_index":86,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["an",{"_index":165,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["and",{"_index":59,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["any",{"_index":147,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["anything",{"_index":318,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["app",{"_index":244,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["apply",{"_index":245,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["appmodule",{"_index":58,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["approach",{"_index":137,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["approach](#the",{"_index":145,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["are",{"_index":225,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["array",{"_index":263,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["as",{"_index":154,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["assume",{"_index":131,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["assuming",{"_index":160,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["async",{"_index":387,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["at",{"_index":98,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["authenticated",{"_index":279,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["authentication",{"_index":242,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["authorization",{"_index":169,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["aware",{"_index":183,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["bash",{"_index":34,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["basic",{"_index":74,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["be",{"_index":87,"pagesPluginContent":{"26":{},"27":{},"29":{}},"name":{},"parent":{}}],["before",{"_index":118,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["behavior",{"_index":223,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["below",{"_index":238,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["better",{"_index":297,"pagesPluginContent":{"27":{}},"name":{"28":{}},"parent":{}}],["bind",{"_index":290,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["bindpolicydecorators",{"_index":4,"pagesPluginContent":{"27":{}},"name":{"7":{}},"parent":{}}],["boring",{"_index":335,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["both",{"_index":275,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["bound",{"_index":271,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["bound.controller.ts",{"_index":274,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["boundpolicydecorators",{"_index":5,"pagesPluginContent":{},"name":{"8":{}},"parent":{"9":{}}}],["boundpolicydecorators.__type",{"_index":7,"pagesPluginContent":{},"name":{},"parent":{"10":{},"11":{}}}],["bug",{"_index":391,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["but",{"_index":193,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["by",{"_index":294,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["calls",{"_index":257,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["can",{"_index":68,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["can't",{"_index":304,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["canactivate",{"_index":401,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["cannot",{"_index":319,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["care",{"_index":191,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["care.controller.ts",{"_index":91,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["casl",{"_index":37,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["casl/commit/467354a0434a6518f52697c7ab46642ed9384f8e",{"_index":397,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["casl/commit/95945423b9d78ecb1353fe6c1a2228d5c9571cec",{"_index":390,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["casl/commit/f92f45e023c36a7fdfebe01851315d839a2f5a9f",{"_index":408,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["casl/compare/78f16a2f9e103be41b9d6a872f547eb54bc0d80e...v0.0.1",{"_index":416,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["casl/compare/v0.0.1...v0.0.2",{"_index":413,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["casl/compare/v0.0.2",{"_index":364,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["caslabilityfactory",{"_index":19,"pagesPluginContent":{"27":{},"28":{}},"name":{"23":{}},"parent":{"24":{}}}],["caslmodule",{"_index":8,"pagesPluginContent":{"26":{}},"name":{"12":{}},"parent":{"13":{},"14":{}}}],["chances",{"_index":326,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["changelog",{"_index":350,"pagesPluginContent":{"29":{}},"name":{"29":{}},"parent":{}}],["changelog/standard",{"_index":358,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["changes",{"_index":352,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["check",{"_index":102,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["checking",{"_index":119,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["checks",{"_index":404,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["class",{"_index":81,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["close",{"_index":155,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["codeblock",{"_index":48,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["commit",{"_index":360,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["compatible",{"_index":26,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["condition",{"_index":261,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["configuration",{"_index":30,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["configure",{"_index":60,"pagesPluginContent":{"26":{},"28":{}},"name":{},"parent":{}}],["constrain",{"_index":339,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["constrained",{"_index":320,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["constraint",{"_index":332,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["constraints",{"_index":298,"pagesPluginContent":{"27":{}},"name":{"28":{}},"parent":{}}],["constructor",{"_index":10,"pagesPluginContent":{},"name":{"14":{}},"parent":{}}],["context",{"_index":248,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["continue",{"_index":177,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["contraints",{"_index":347,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["controller",{"_index":80,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["controllers",{"_index":73,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["correct",{"_index":395,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["course",{"_index":292,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["createfromrequest",{"_index":20,"pagesPluginContent":{},"name":{"24":{}},"parent":{}}],["cumulative",{"_index":258,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["current",{"_index":46,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["declare",{"_index":39,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["declared",{"_index":311,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["decorator",{"_index":82,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["decorators",{"_index":72,"pagesPluginContent":{"26":{},"28":{}},"name":{},"parent":{}}],["define",{"_index":312,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["delegate",{"_index":208,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["dependencies",{"_index":149,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["dependency",{"_index":153,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["depending",{"_index":247,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["directly",{"_index":143,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["do",{"_index":129,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["documented",{"_index":354,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["does",{"_index":150,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["each",{"_index":246,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["either",{"_index":282,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["enjoy",{"_index":346,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["evaluated",{"_index":265,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["even",{"_index":269,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["every",{"_index":337,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["example",{"_index":166,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["exception",{"_index":172,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["execute",{"_index":116,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["external",{"_index":152,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["extract",{"_index":120,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["extraguard1",{"_index":283,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["extraguard2",{"_index":284,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["f92f45e](https://github.com/scitizen/nest",{"_index":407,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["fact",{"_index":194,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["factory",{"_index":64,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["factory.service.ts",{"_index":53,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["far",{"_index":300,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["features",{"_index":384,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["file",{"_index":355,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["first",{"_index":31,"pagesPluginContent":{"26":{},"29":{}},"name":{},"parent":{}}],["fixes",{"_index":392,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["folded",{"_index":104,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["following",{"_index":133,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["for",{"_index":164,"pagesPluginContent":{"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["forbidden",{"_index":174,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["from",{"_index":45,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["further",{"_index":403,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["generate",{"_index":43,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["generating",{"_index":123,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["getting",{"_index":112,"pagesPluginContent":{},"name":{"26":{}},"parent":{}}],["give",{"_index":200,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["great",{"_index":323,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["greatly",{"_index":324,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["group",{"_index":94,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["guard",{"_index":161,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guard](https://github.com/nestjs/passport/blob/6aef921c7566766d0eb9e79d2c8235177c539863/lib/auth.guard.ts#l58",{"_index":196,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards",{"_index":111,"pagesPluginContent":{"26":{},"27":{}},"name":{"27":{}},"parent":{}}],["guards/ability",{"_index":135,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/jwt",{"_index":213,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/naive",{"_index":226,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/naive.controller.ts",{"_index":197,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/naive.guard.ts",{"_index":158,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/passport",{"_index":219,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/recommended",{"_index":296,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/recommended.controller.ts#recommended",{"_index":266,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guardslist",{"_index":18,"pagesPluginContent":{},"name":{"22":{}},"parent":{}}],["guidelines",{"_index":361,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["handle",{"_index":16,"pagesPluginContent":{},"name":{"20":{}},"parent":{}}],["handlers",{"_index":388,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["has",{"_index":286,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["have",{"_index":132,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["he",{"_index":285,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["header",{"_index":170,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["here",{"_index":224,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["hopefully",{"_index":340,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["i'm",{"_index":182,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["icaslrootconfig",{"_index":11,"pagesPluginContent":{},"name":{"15":{}},"parent":{"16":{}}}],["ide",{"_index":328,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["ideal",{"_index":184,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["if",{"_index":92,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["implementation",{"_index":167,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["import",{"_index":54,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["in",{"_index":56,"pagesPluginContent":{"26":{},"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["individual",{"_index":89,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["informations",{"_index":122,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["initial",{"_index":417,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["injectability",{"_index":0,"pagesPluginContent":{},"name":{"0":{}},"parent":{}}],["install",{"_index":32,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["interceptor`](https://docs.nestjs.com/interceptors",{"_index":188,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["invalid",{"_index":173,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["ipolicy",{"_index":15,"pagesPluginContent":{},"name":{"19":{}},"parent":{"20":{}}}],["is",{"_index":25,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["it",{"_index":61,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["its",{"_index":124,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["join",{"_index":260,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["just",{"_index":293,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["jwt",{"_index":211,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["let's",{"_index":130,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["level",{"_index":99,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["like",{"_index":218,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["link",{"_index":55,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["matching",{"_index":310,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["maybeasyncvalue",{"_index":21,"pagesPluginContent":{},"name":{"25":{}},"parent":{}}],["metadata",{"_index":394,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["method",{"_index":138,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["method1",{"_index":276,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["method2",{"_index":277,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["methods",{"_index":78,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["middleware`](https://docs.nestjs.com/middleware",{"_index":186,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["might",{"_index":141,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["module",{"_index":24,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["more",{"_index":148,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["moreover",{"_index":249,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["most",{"_index":114,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["multiple",{"_index":241,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["myability",{"_index":316,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["naive",{"_index":217,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["naive.controller.ts",{"_index":220,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["naiveguard",{"_index":199,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["naïve",{"_index":136,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["nestjs",{"_index":156,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["nestjs/passport`](https://www.npmjs.com/package/@nestjs/passport",{"_index":195,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["nestjs@^8.0.0",{"_index":28,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["next",{"_index":109,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["next.0",{"_index":414,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.0...v0.0.2",{"_index":410,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.0](https://github.com/scitizen/nest",{"_index":412,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.1",{"_index":411,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.1...v0.0.2",{"_index":382,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.1](https://github.com/scitizen/nest",{"_index":409,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.2",{"_index":383,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.2...v0.0.2",{"_index":378,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.2](https://github.com/scitizen/nest",{"_index":381,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.3",{"_index":379,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.3...v0.0.2",{"_index":374,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.3](https://github.com/scitizen/nest",{"_index":377,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.4",{"_index":375,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.4...v0.0.2",{"_index":371,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.4](https://github.com/scitizen/nest",{"_index":373,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.5",{"_index":372,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.5...v0.0.2",{"_index":365,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.5](https://github.com/scitizen/nest",{"_index":370,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.6",{"_index":366,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.6](https://github.com/scitizen/nest",{"_index":363,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["not",{"_index":139,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["notable",{"_index":351,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["note",{"_index":289,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["now",{"_index":69,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["npm",{"_index":35,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["of",{"_index":79,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["on",{"_index":180,"pagesPluginContent":{"27":{},"29":{}},"name":{},"parent":{}}],["or",{"_index":187,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["or.guard",{"_index":398,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["order",{"_index":338,"pagesPluginContent":{"28":{},"29":{}},"name":{},"parent":{}}],["our",{"_index":306,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["owner.controller.ts",{"_index":85,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["page",{"_index":110,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["parameter",{"_index":331,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["part",{"_index":336,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["pass",{"_index":317,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["passes",{"_index":281,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["passport",{"_index":207,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["passport.strategy.ts",{"_index":214,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["placed",{"_index":237,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["policies",{"_index":96,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["policies.guard",{"_index":385,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["policies.ts",{"_index":343,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["policiesguard",{"_index":204,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["policiesmask",{"_index":3,"pagesPluginContent":{"26":{},"27":{}},"name":{"4":{},"5":{},"11":{}},"parent":{"6":{}}}],["policiesmask.usingguard",{"_index":254,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["policy",{"_index":1,"pagesPluginContent":{"26":{},"27":{},"29":{}},"name":{"1":{},"2":{},"10":{}},"parent":{"3":{}}}],["policy.usingguard",{"_index":253,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["policydescriptor",{"_index":13,"pagesPluginContent":{"27":{}},"name":{"17":{}},"parent":{}}],["policydescriptormask",{"_index":14,"pagesPluginContent":{},"name":{"18":{}},"parent":{}}],["possible",{"_index":157,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["prefer",{"_index":251,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["prepare",{"_index":270,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["prepended",{"_index":255,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["presets",{"_index":252,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["problem",{"_index":229,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["project",{"_index":353,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["promises",{"_index":406,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["properly",{"_index":399,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["property",{"_index":178,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["protect",{"_index":76,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["provide",{"_index":262,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["provider",{"_index":41,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["ran",{"_index":239,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["readability",{"_index":235,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["recommanded",{"_index":140,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["recommended",{"_index":144,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["reduce",{"_index":325,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["release",{"_index":418,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["request",{"_index":47,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["require",{"_index":151,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["ressource",{"_index":203,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["retrieval",{"_index":209,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["reusability",{"_index":240,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["role",{"_index":288,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["run",{"_index":278,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["same",{"_index":97,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["say",{"_index":210,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["scitizen/nest",{"_index":36,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["see",{"_index":162,"pagesPluginContent":{"27":{},"29":{}},"name":{},"parent":{}}],["set",{"_index":179,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["setting",{"_index":192,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["setup",{"_index":29,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["should",{"_index":189,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["show",{"_index":127,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["simple",{"_index":267,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["simplepolicy",{"_index":17,"pagesPluginContent":{},"name":{"21":{}},"parent":{}}],["simply",{"_index":345,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["skip",{"_index":142,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["so",{"_index":299,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["solve",{"_index":341,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["some",{"_index":117,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["spec.ts",{"_index":107,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["spec.ts#abilityfactory",{"_index":51,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["spec.ts#appmodule",{"_index":65,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["spec.ts#catcarecontroller",{"_index":90,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["spec.ts#catcontroller",{"_index":100,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["spec.ts#catownercontroller",{"_index":83,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["spec.ts#test",{"_index":105,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["src/ability",{"_index":52,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["src/app.module.ts",{"_index":66,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["src/cat",{"_index":84,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["src/cat.controller.ts",{"_index":101,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["src/controllers/naive.controller.ts",{"_index":198,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/controllers/passport",{"_index":221,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/controllers/recommended.controller.ts",{"_index":268,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/guards/naive.guard.ts",{"_index":159,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/my",{"_index":344,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["src/policies.ts",{"_index":272,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/recommended",{"_index":273,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/strategies/jwt",{"_index":215,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/test",{"_index":349,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["src/test.controller.ts",{"_index":334,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["standard",{"_index":356,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["start",{"_index":70,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["started",{"_index":113,"pagesPluginContent":{},"name":{"26":{}},"parent":{}}],["still",{"_index":216,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["stop",{"_index":402,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["strategies",{"_index":243,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["strategy",{"_index":212,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["subject`s",{"_index":308,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["subsequent",{"_index":259,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["succeed",{"_index":205,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["success",{"_index":405,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["suggest",{"_index":329,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["take",{"_index":190,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["test.e2e",{"_index":227,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["test/basic",{"_index":49,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["test/better",{"_index":314,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["test/cats.e2e",{"_index":106,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["test/use",{"_index":134,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["tested",{"_index":291,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["tests",{"_index":103,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["that",{"_index":42,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["that's",{"_index":322,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["the",{"_index":33,"pagesPluginContent":{"26":{},"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["them",{"_index":201,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["then",{"_index":38,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["there",{"_index":232,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["they",{"_index":264,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["this",{"_index":23,"pagesPluginContent":{"26":{},"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["those",{"_index":256,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["through",{"_index":280,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["times",{"_index":115,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["to",{"_index":62,"pagesPluginContent":{"26":{},"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["type",{"_index":250,"pagesPluginContent":{"27":{},"28":{}},"name":{"28":{}},"parent":{}}],["types",{"_index":313,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["types/ability",{"_index":330,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["types/ability.ts",{"_index":315,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["types/ability.typecheck.e2e",{"_index":321,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["types/my",{"_index":342,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["types/test",{"_index":348,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["types/test.controller.ts",{"_index":333,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["typos",{"_index":327,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["unauthorized",{"_index":171,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["usage",{"_index":75,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["use",{"_index":63,"pagesPluginContent":{"26":{},"27":{},"28":{},"29":{}},"name":{"27":{}},"parent":{}}],["use.e2e",{"_index":50,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["used",{"_index":88,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["useguards",{"_index":236,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["user",{"_index":121,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["users",{"_index":168,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["using",{"_index":71,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["usingguard",{"_index":2,"pagesPluginContent":{},"name":{"3":{},"6":{}},"parent":{}}],["valid",{"_index":175,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["various",{"_index":95,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["version",{"_index":359,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["version](https://github.com/conventional",{"_index":357,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["wanna",{"_index":222,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["want",{"_index":93,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["waterfall",{"_index":400,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["way",{"_index":128,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["we",{"_index":301,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["well",{"_index":231,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["were",{"_index":302,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["what",{"_index":108,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["what's",{"_index":228,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["will",{"_index":126,"pagesPluginContent":{"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["with",{"_index":27,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{"27":{}},"parent":{}}],["withconfig",{"_index":9,"pagesPluginContent":{},"name":{"13":{}},"parent":{}}],["without",{"_index":146,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["world",{"_index":185,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["yeah",{"_index":181,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["yet",{"_index":305,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["you",{"_index":67,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["you're",{"_index":206,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["your",{"_index":57,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["yourself",{"_index":295,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}]],"pipeline":[]}} \ No newline at end of file +{"kinds":{"2":"Namespace","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","4194304":"Type alias","9999999":"Page"},"rows":[{"id":0,"kind":64,"name":"InjectAbility","url":"modules.html#InjectAbility","classes":"tsd-kind-function"},{"id":1,"kind":64,"name":"Policy","url":"modules.html#Policy","classes":"tsd-kind-function tsd-has-type-parameter"},{"id":2,"kind":2,"name":"Policy","url":"modules/Policy.html","classes":"tsd-kind-namespace"},{"id":3,"kind":64,"name":"usingGuard","url":"modules/Policy.html#usingGuard","classes":"tsd-kind-function tsd-parent-kind-namespace","parent":"Policy","pagesPluginParent":"Policy."},{"id":4,"kind":64,"name":"PoliciesMask","url":"modules.html#PoliciesMask","classes":"tsd-kind-function tsd-has-type-parameter"},{"id":5,"kind":2,"name":"PoliciesMask","url":"modules/PoliciesMask.html","classes":"tsd-kind-namespace"},{"id":6,"kind":64,"name":"usingGuard","url":"modules/PoliciesMask.html#usingGuard","classes":"tsd-kind-function tsd-parent-kind-namespace","parent":"PoliciesMask","pagesPluginParent":"PoliciesMask."},{"id":7,"kind":64,"name":"bindPolicyDecorators","url":"modules.html#bindPolicyDecorators","classes":"tsd-kind-function tsd-has-type-parameter"},{"id":8,"kind":4194304,"name":"BoundPolicyDecorators","url":"modules.html#BoundPolicyDecorators","classes":"tsd-kind-type-alias tsd-has-type-parameter"},{"id":9,"kind":65536,"name":"__type","url":"modules.html#BoundPolicyDecorators.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"BoundPolicyDecorators","pagesPluginParent":"BoundPolicyDecorators."},{"id":10,"kind":1024,"name":"Policy","url":"modules.html#BoundPolicyDecorators.__type.Policy","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"BoundPolicyDecorators.__type","pagesPluginParent":"BoundPolicyDecorators.__type."},{"id":11,"kind":1024,"name":"PoliciesMask","url":"modules.html#BoundPolicyDecorators.__type.PoliciesMask","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"BoundPolicyDecorators.__type","pagesPluginParent":"BoundPolicyDecorators.__type."},{"id":12,"kind":128,"name":"CaslModule","url":"classes/CaslModule.html","classes":"tsd-kind-class"},{"id":13,"kind":2048,"name":"withConfig","url":"classes/CaslModule.html#withConfig","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"CaslModule","pagesPluginParent":"CaslModule."},{"id":14,"kind":512,"name":"constructor","url":"classes/CaslModule.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CaslModule","pagesPluginParent":"CaslModule."},{"id":15,"kind":256,"name":"ICaslRootConfig","url":"interfaces/ICaslRootConfig.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":16,"kind":1024,"name":"abilityFactory","url":"interfaces/ICaslRootConfig.html#abilityFactory","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ICaslRootConfig","pagesPluginParent":"ICaslRootConfig."},{"id":17,"kind":4194304,"name":"PolicyDescriptor","url":"modules.html#PolicyDescriptor","classes":"tsd-kind-type-alias tsd-has-type-parameter"},{"id":18,"kind":4194304,"name":"PolicyDescriptorMask","url":"modules.html#PolicyDescriptorMask","classes":"tsd-kind-type-alias tsd-has-type-parameter"},{"id":19,"kind":256,"name":"IPolicy","url":"interfaces/IPolicy.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":20,"kind":2048,"name":"handle","url":"interfaces/IPolicy.html#handle","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"IPolicy","pagesPluginParent":"IPolicy."},{"id":21,"kind":4194304,"name":"SimplePolicy","url":"modules.html#SimplePolicy","classes":"tsd-kind-type-alias tsd-has-type-parameter"},{"id":22,"kind":4194304,"name":"GuardsList","url":"modules.html#GuardsList","classes":"tsd-kind-type-alias"},{"id":23,"kind":256,"name":"CaslAbilityFactory","url":"interfaces/CaslAbilityFactory.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":24,"kind":2048,"name":"createFromRequest","url":"interfaces/CaslAbilityFactory.html#createFromRequest","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"CaslAbilityFactory","pagesPluginParent":"CaslAbilityFactory."},{"id":25,"kind":4194304,"name":"MaybeAsyncValue","url":"modules.html#MaybeAsyncValue","classes":"tsd-kind-type-alias tsd-has-type-parameter"},{"id":26,"kind":1,"name":"Getting started","url":"pages/Guides/getting-started.html","classes":"tsd-kind-page","pagesPluginContent":"> This module is compatible with `nestjs@^8.0.0`.\n\n# Setup & configuration\n\nFirst, install the module:\n\n```bash\nnpm install @scitizen/nest-casl\n```\n\nThen, declare a provider that generate a CASL Ability from the current request.\n\n{@codeblock test/basic-use.e2e-spec.ts#AbilityFactory | src/ability-factory.service.ts}\n\nImport the {@link CaslModule `CaslModule`} in your `AppModule`, and configure it to use your ability factory.\n\n{@codeblock test/basic-use.e2e-spec.ts#AppModule | src/app.module.ts}\n\nYou can now start using policy decorators ({@link Policy `Policy`} and {@link PoliciesMask `PoliciesMask`}) in your controllers !\n\n# Basic usage\n\nYou can protect all methods of your controller using the {@link Policy `Policy`} class decorator.\n\n{@codeblock test/basic-use.e2e-spec.ts#CatOwnerController | src/cat-owner.controller.ts}\n\nThis decorator can also be used to protect individual methods.\n\n{@codeblock test/basic-use.e2e-spec.ts#CatCareController | src/cat-care.controller.ts}\n\nIf you want to group various policies in the same decorator at the controller level, use the {@link PoliciesMask `PoliciesMask`} decorator.\n\n{@codeblock test/basic-use.e2e-spec.ts#CatController | src/cat.controller.ts}\n\nCheck the tests !\n\n{@codeblock folded test/basic-use.e2e-spec.ts#Test | test/cats.e2e-spec.ts}\n\n# What next ?\n\n{@page Use with guards}","pagesPluginParent":"Guides / "},{"id":27,"kind":1,"name":"Use with guards","url":"pages/Guides/use-with-guards.html","classes":"tsd-kind-page","pagesPluginContent":"Most of the times, you want to execute some guards before checking CASL policies, to extract some user informations before generating its abilities.\n\nThis page will show you the various way to do.\n\nLet's assume you have the following {@link CaslAbilityFactory `CaslAbilityFactory`}:\n\n{@codeblock test/use-with-guards/ability-factory.service.ts | src/ability-factory.service.ts}\n\n# The naïve approach\n\n> This method is **not recommanded**. You might skip directly to the [recommended approach](#the-recommended-approach)\n\n## Without any more dependencies\n\nThis method does not require any external dependency, and is as close to NestJS as possible.\n\n{@codeblock folded test/use-with-guards/naive.guard.ts | src/guards/naive.guard.ts}\n\nAssuming the guard does the following (see above for an example implementation):\n* Users without an `Authorization` header will see an `Unauthorized` exception.\n* Users with an invalid `Authorization` header will see a `Forbidden` exception.\n* Users with a valid `Authorization` header will be allowed to continue, and the property `user` is set on the `request`.\n\n> Yeah, I'm aware that in an ideal world, a [`Middleware`](https://docs.nestjs.com/middleware) or an [`Interceptor`](https://docs.nestjs.com/interceptors) should take care of setting the `user` property on the `Request`. But fact is that [`@nestjs/passport`](https://www.npmjs.com/package/@nestjs/passport) does it [in a guard](https://github.com/nestjs/passport/blob/6aef921c7566766d0eb9e79d2c8235177c539863/lib/auth.guard.ts#L58)\n\n{@codeblock test/use-with-guards/naive.controller.ts | src/controllers/naive.controller.ts}\n\nNow,\n* Users without an `Authorization` header will see an `Unauthorized` exception (from the `NaiveGuard`).\n* Users with an invalid `Authorization` header will see a `Forbidden` exception (from the `NaiveGuard`).\n* Users with an `Authorization` header that does not give them access to the ressource will see a `Forbidden` exception (from the {@link PoliciesGuard `PoliciesGuard`}).\n* Users with an `Authorization` header that give them access to the ressource will succeed.\n\n## Using [`@nestjs/passport`](https://www.npmjs.com/package/@nestjs/passport)\n\nIf you're using `passport`, you can delegate the user retrieval. Let's say you have a JWT `passport` strategy.\n\n{@codeblock folded test/use-with-guards/jwt-passport.strategy.ts | src/strategies/jwt-passport.strategy.ts}\n\nStill using the naive approach, you can then declare the controller like this:\n\n{@codeblock test/use-with-guards/passport-naive.controller.ts | src/controllers/passport-naive.controller.ts}\n\n## The tests\n\nWanna see the behavior as tests ? Here you are !\n\n{@codeblock folded test/use-with-guards/naive-test.e2e-spec.ts}\n\n# The recommended approach\n\nWhat's the problem about the naïve approach above ? Well, there are 2.\n1. *The readability*: The `UseGuards` decorator is placed **below** the {@link Policy `Policy`} decorator, but is ran **before** it.\n2. *The reusability*: If you're using multiple authentication strategies in the same app, you might have to apply guards **and** the policies on each method depending on the context. Moreover, if you want to type-check your policies, you might prefer to have abilities presets.\n\n## About readability\n\nYou can use {@link Policy.usingGuard `Policy.usingGuard`} or {@link PoliciesMask.usingGuard `PoliciesMask.usingGuard`} to prepended guards to the decorator factory. Those calls are cumulative, and you can do multiple subsequent calls to join guards using an `and` condition. If you provide an array of guards, they be evaluated using an `or` condition.\n\n{@codeblock test/use-with-guards/recommended.controller.ts#Recommended simple controller | src/controllers/recommended.controller.ts}\n\n## About reusability\n\nYou can even prepare a policy decorator with guards or {@link PolicyDescriptor `PolicyDescriptor`}:\n\n{@codeblock test/use-with-guards/recommended.controller.ts#Recommended bound | src/policies.ts}\n\nThen, use those presets in your controller:\n\n{@codeblock test/use-with-guards/recommended.controller.ts#Recommended bound controller | src/recommended-bound.controller.ts}\n\nNow, both `method1` and `method2` will run if\n* the user is authenticated through `jwt` strategy\n* it passes either `ExtraGuard1` or `ExtraGuard2`\n* and he has admin role.\n\n> Note that you can use {@link bindPolicyDecorators `bindPolicyDecorators`} to bind *both* {@link Policy `Policy`} and {@link PoliciesMask `PoliciesMask`}\n\n## The tests\n\nThis is tested, of course. Just see by yourself.\n\n{@codeblock folded test/use-with-guards/recommended-test.e2e-spec.ts}\n\n# What next ?\n\n{@page Better type constraints}","pagesPluginParent":"Guides / "},{"id":28,"kind":1,"name":"Better type constraints","url":"pages/Guides/better-type-constraints.html","classes":"tsd-kind-page","pagesPluginContent":"So far, we were able to configure your policies. But we can't yet check that our `action`s or `subject`s are actually matching what we declared.\n\n# Define the ability type\n\nLet's configure our ability types:\n\n{@codeblock test/better-types/ability.ts}\n\nUsing `MyAbility`, we can't pass anything to `can` or `cannot`: types are constrained.\n\n{@codeblock test/better-types/ability.typecheck.e2e-spec.ts}\n\nThat's great. This will greatly reduce our chances of typos. Moreover, your IDE might now suggest `action`s & `subject`s for you.\n\n# Use the ability type\n\n## With the {@link CaslAbilityFactory `CaslAbilityFactory`}\n\nLet's now use this type in your {@link CaslAbilityFactory `CaslAbilityFactory`}:\n\n{@codeblock test/better-types/ability-factory.service.ts | src/ability-factory.service.ts}\n\n## With decorators\n\nYou can pass your ability as a type parameter to your decorators to constraint your `action`s and `subject`s:\n\n{@codeblock test/better-types/test.controller.ts | src/test.controller.ts}\n\nBut the boring part here is that you have to pass your ability type to **every** decorator in order to constrain them. Hopefully, you can solve this:\n\n{@codeblock test/better-types/my-policies.ts | src/my-policies.ts}\n\nThen, simply enjoy type contraints !\n\n{@codeblock test/better-types/test-bound.controller.ts | src/test-bound.controller.ts}\n","pagesPluginParent":"Guides / "},{"id":29,"kind":1,"name":"Changelog","url":"pages/Changelog/CHANGELOG.html","classes":"tsd-kind-page","pagesPluginContent":"# Changelog\n\nAll notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.\n\n### [0.0.2-next.7](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.6...v0.0.2-next.7) (2021-10-08)\n\n### [0.0.2-next.6](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.5...v0.0.2-next.6) (2021-10-08)\n\n### [0.0.2-next.5](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.4...v0.0.2-next.5) (2021-10-08)\n\n### [0.0.2-next.4](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.3...v0.0.2-next.4) (2021-10-07)\n\n### [0.0.2-next.3](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.2...v0.0.2-next.3) (2021-10-06)\n\n### [0.0.2-next.2](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.1...v0.0.2-next.2) (2021-10-06)\n\n\n### Features\n\n* **policies.guard:** allow async handlers ([9594542](https://github.com/Scitizen/nest-casl/commit/95945423b9d78ecb1353fe6c1a2228d5c9571cec))\n\n\n### Bug Fixes\n\n* add policy metadata in the correct order ([467354a](https://github.com/Scitizen/nest-casl/commit/467354a0434a6518f52697c7ab46642ed9384f8e))\n* **or.guard:** properly waterfall canActivate, stop further checks on first success, use promises ([f92f45e](https://github.com/Scitizen/nest-casl/commit/f92f45e023c36a7fdfebe01851315d839a2f5a9f))\n\n### [0.0.2-next.1](https://github.com/Scitizen/nest-casl/compare/v0.0.2-next.0...v0.0.2-next.1) (2021-10-06)\n\n### [0.0.2-next.0](https://github.com/Scitizen/nest-casl/compare/v0.0.1...v0.0.2-next.0) (2021-10-06)\n\n### [0.0.1](https://github.com/Scitizen/nest-casl/compare/78f16a2f9e103be41b9d6a872f547eb54bc0d80e...v0.0.1) (2021-10-06)\n\nInitial release\n","pagesPluginParent":"Changelog / "}],"index":{"version":"2.3.9","fields":["pagesPluginContent","name","parent"],"fieldVectors":[["pagesPluginContent/0",[]],["name/0",[0,32.165]],["parent/0",[]],["pagesPluginContent/1",[]],["name/1",[1,15.072]],["parent/1",[]],["pagesPluginContent/2",[]],["name/2",[1,15.072]],["parent/2",[]],["pagesPluginContent/3",[]],["name/3",[2,26.74]],["parent/3",[1,0.78]],["pagesPluginContent/4",[]],["name/4",[3,16.591]],["parent/4",[]],["pagesPluginContent/5",[]],["name/5",[3,16.591]],["parent/5",[]],["pagesPluginContent/6",[]],["name/6",[2,26.74]],["parent/6",[3,0.859]],["pagesPluginContent/7",[]],["name/7",[4,26.74]],["parent/7",[]],["pagesPluginContent/8",[]],["name/8",[5,26.74]],["parent/8",[]],["pagesPluginContent/9",[]],["name/9",[6,32.165]],["parent/9",[5,1.385]],["pagesPluginContent/10",[]],["name/10",[1,15.072]],["parent/10",[7,1.385]],["pagesPluginContent/11",[]],["name/11",[3,16.591]],["parent/11",[7,1.385]],["pagesPluginContent/12",[]],["name/12",[8,20.497]],["parent/12",[]],["pagesPluginContent/13",[]],["name/13",[9,32.165]],["parent/13",[8,1.061]],["pagesPluginContent/14",[]],["name/14",[10,32.165]],["parent/14",[8,1.061]],["pagesPluginContent/15",[]],["name/15",[11,26.74]],["parent/15",[]],["pagesPluginContent/16",[]],["name/16",[12,32.165]],["parent/16",[11,1.385]],["pagesPluginContent/17",[]],["name/17",[13,26.74]],["parent/17",[]],["pagesPluginContent/18",[]],["name/18",[14,32.165]],["parent/18",[]],["pagesPluginContent/19",[]],["name/19",[15,26.74]],["parent/19",[]],["pagesPluginContent/20",[]],["name/20",[16,32.165]],["parent/20",[15,1.385]],["pagesPluginContent/21",[]],["name/21",[17,32.165]],["parent/21",[]],["pagesPluginContent/22",[]],["name/22",[18,32.165]],["parent/22",[]],["pagesPluginContent/23",[]],["name/23",[19,20.497]],["parent/23",[]],["pagesPluginContent/24",[]],["name/24",[20,32.165]],["parent/24",[19,1.061]],["pagesPluginContent/25",[]],["name/25",[21,32.165]],["parent/25",[]],["pagesPluginContent/26",[1,24.488,3,24.085,8,19.411,22,48.835,23,19.411,24,30.461,25,12.942,26,17.969,27,19.411,28,17.969,29,17.969,30,17.969,31,14.938,32,30.461,33,40.559,34,17.969,35,17.969,36,17.969,37,25.323,38,12.942,39,14.938,40,21.939,41,17.969,42,12.942,43,17.969,44,25.323,45,14.938,46,17.969,47,14.938,48,40.891,49,56.775,50,56.775,51,17.969,52,12.942,53,12.942,54,17.969,55,37.639,56,25.266,57,33.628,58,17.969,59,21.939,60,14.938,61,14.938,62,25.266,63,22.639,64,14.938,65,17.969,66,17.969,67,28.557,68,28.557,69,12.942,70,17.969,71,21.939,72,14.938,73,17.969,74,17.969,75,17.969,76,30.461,77,14.938,78,30.461,79,12.942,80,25.323,81,17.969,82,33.628,83,17.969,84,30.461,85,17.969,86,17.969,87,12.942,88,17.969,89,17.969,90,17.969,91,17.969,92,14.938,93,14.938,94,17.969,95,14.938,96,12.942,97,14.938,98,17.969,99,17.969,100,17.969,101,17.969,102,12.942,103,14.938,104,14.938,105,17.969,106,17.969,107,12.942,108,12.942,109,14.938,110,14.938,111,12.942]],["name/26",[112,23.437,113,23.437]],["parent/26",[]],["pagesPluginContent/27",[1,11.625,3,6.015,4,9.694,13,9.694,19,7.431,22,44.064,23,15.81,25,24.884,27,32.722,33,44.064,37,5.147,38,8.399,39,5.147,40,24.884,42,17.869,45,13.74,47,9.694,48,28.63,52,4.459,53,8.399,55,26.835,56,13.309,57,8.399,59,24.884,61,13.74,62,31.694,63,9.437,64,5.147,67,36.983,68,20.428,69,8.399,71,20.428,79,15.042,80,17.362,82,15.042,87,8.399,92,20.625,93,9.694,95,5.147,96,11.903,97,5.147,102,4.459,103,13.74,104,17.362,107,8.399,108,4.459,109,5.147,110,9.694,111,20.428,114,6.192,115,6.192,116,6.192,117,11.661,118,16.527,119,6.192,120,6.192,121,24.81,122,6.192,123,6.192,124,6.192,125,11.661,126,26.835,127,6.192,128,6.192,129,11.661,130,9.694,131,6.192,132,17.362,133,11.661,134,39.752,135,6.192,136,11.661,137,24.81,138,16.527,139,16.527,140,6.192,141,13.74,142,6.192,143,6.192,144,16.527,145,6.192,146,16.527,147,11.661,148,6.192,149,6.192,150,20.885,151,6.192,152,6.192,153,6.192,154,13.74,155,6.192,156,6.192,157,6.192,158,6.192,159,6.192,160,6.192,161,6.192,162,28.722,163,11.661,164,4.459,165,48.014,166,6.192,167,6.192,168,31.597,169,31.597,170,31.597,171,11.661,172,24.81,173,11.661,174,16.527,175,6.192,176,6.192,177,6.192,178,11.661,179,6.192,180,17.362,181,6.192,182,6.192,183,6.192,184,6.192,185,6.192,186,6.192,187,20.625,188,6.192,189,6.192,190,6.192,191,6.192,192,6.192,193,9.694,194,6.192,195,11.661,196,6.192,197,6.192,198,6.192,199,11.661,200,11.661,201,9.694,202,11.661,203,11.661,204,11.661,205,6.192,206,11.661,207,11.661,208,6.192,209,6.192,210,6.192,211,11.661,212,11.661,213,6.192,214,11.661,215,6.192,216,6.192,217,6.192,218,6.192,219,6.192,220,11.661,221,6.192,222,6.192,223,6.192,224,5.147,225,13.74,226,6.192,227,11.661,228,6.192,229,6.192,230,16.527,231,6.192,232,6.192,233,11.661,234,6.192,235,11.661,236,6.192,237,6.192,238,6.192,239,6.192,240,11.661,241,11.661,242,6.192,243,6.192,244,6.192,245,6.192,246,6.192,247,6.192,248,6.192,249,5.147,250,8.399,251,6.192,252,11.661,253,11.661,254,11.661,255,6.192,256,11.661,257,11.661,258,6.192,259,6.192,260,6.192,261,11.661,262,6.192,263,6.192,264,6.192,265,6.192,266,16.527,267,6.192,268,6.192,269,6.192,270,6.192,271,11.661,272,6.192,273,6.192,274,5.147,275,11.661,276,6.192,277,6.192,278,6.192,279,6.192,280,6.192,281,6.192,282,6.192,283,6.192,284,6.192,285,6.192,286,6.192,287,6.192,288,6.192,289,6.192,290,6.192,291,6.192,292,6.192,293,6.192,294,6.192,295,6.192,296,6.192,297,5.147,298,5.147]],["name/27",[27,11.747,63,10.526,111,13.277]],["parent/27",[]],["pagesPluginContent/28",[19,29.156,22,43.215,23,24.693,25,12.546,27,18.906,33,29.156,38,12.546,40,12.546,42,21.368,44,42.663,48,40.223,52,12.546,53,21.368,55,21.368,56,18.906,57,42.928,59,12.546,60,24.664,62,37.982,63,16.94,67,32.953,68,27.909,69,21.368,71,12.546,72,24.664,79,12.546,82,12.546,96,12.546,102,12.546,107,12.546,108,12.546,126,12.546,130,24.664,132,14.481,141,14.481,154,14.481,164,12.546,187,24.664,193,24.664,201,14.481,224,14.481,225,24.664,249,14.481,250,40.223,274,24.664,299,17.419,300,17.419,301,45.754,302,17.419,303,17.419,304,29.668,305,17.419,306,38.75,307,38.75,308,38.75,309,17.419,310,17.419,311,17.419,312,17.419,313,29.668,314,55.847,315,17.419,316,17.419,317,38.75,318,17.419,319,17.419,320,17.419,321,17.419,322,17.419,323,17.419,324,17.419,325,17.419,326,17.419,327,17.419,328,17.419,329,17.419,330,17.419,331,17.419,332,17.419,333,17.419,334,17.419,335,17.419,336,17.419,337,17.419,338,14.481,339,17.419,340,17.419,341,17.419,342,17.419,343,29.668,344,17.419,345,17.419,346,17.419,347,17.419,348,17.419,349,17.419]],["name/28",[250,13.277,297,15.325,298,15.325]],["parent/28",[]],["pagesPluginContent/29",[1,9.839,22,50.924,23,22.115,31,17.456,33,13.381,56,22.115,62,13.381,63,11.989,77,17.456,87,15.123,126,15.123,162,17.456,164,15.123,180,17.456,338,17.456,350,17.456,351,20.998,352,20.998,353,20.998,354,20.998,355,20.998,356,20.998,357,20.998,358,20.998,359,20.998,360,20.998,361,20.998,362,67.989,363,20.998,364,65.02,365,20.998,366,20.998,367,70.494,368,70.494,369,44.355,370,20.998,371,20.998,372,20.998,373,20.998,374,20.998,375,20.998,376,20.998,377,20.998,378,20.998,379,20.998,380,20.998,381,20.998,382,20.998,383,57.047,384,20.998,385,20.998,386,20.998,387,20.998,388,20.998,389,20.998,390,20.998,391,20.998,392,20.998,393,20.998,394,20.998,395,20.998,396,20.998,397,20.998,398,20.998,399,20.998,400,20.998,401,20.998,402,20.998,403,20.998,404,20.998,405,20.998,406,20.998,407,20.998,408,20.998,409,20.998,410,20.998,411,20.998,412,20.998,413,20.998,414,20.998,415,20.998,416,20.998,417,20.998,418,20.998,419,20.998,420,20.998,421,20.998]],["name/29",[350,26.74]],["parent/29",[]]],"invertedIndex":[["",{"_index":22,"pagesPluginContent":{"26":{},"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["0.0.1](https://github.com/scitizen/nest",{"_index":418,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["0.0.2",{"_index":362,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["06",{"_index":383,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["07",{"_index":379,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["08",{"_index":369,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["1",{"_index":234,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["10",{"_index":368,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["2",{"_index":233,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["2021",{"_index":367,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["467354a](https://github.com/scitizen/nest",{"_index":399,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["9594542](https://github.com/scitizen/nest",{"_index":392,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["__type",{"_index":6,"pagesPluginContent":{},"name":{"9":{}},"parent":{}}],["a",{"_index":40,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["abilities",{"_index":125,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["ability",{"_index":44,"pagesPluginContent":{"26":{},"28":{}},"name":{},"parent":{}}],["abilityfactory",{"_index":12,"pagesPluginContent":{},"name":{"16":{}},"parent":{}}],["able",{"_index":303,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["about",{"_index":230,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["above",{"_index":163,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["access",{"_index":202,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["action`s",{"_index":307,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["actually",{"_index":309,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["add",{"_index":396,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["admin",{"_index":287,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["all",{"_index":77,"pagesPluginContent":{"26":{},"29":{}},"name":{},"parent":{}}],["allow",{"_index":389,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["allowed",{"_index":176,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["also",{"_index":86,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["an",{"_index":165,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["and",{"_index":59,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["any",{"_index":147,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["anything",{"_index":318,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["app",{"_index":244,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["apply",{"_index":245,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["appmodule",{"_index":58,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["approach",{"_index":137,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["approach](#the",{"_index":145,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["are",{"_index":225,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["array",{"_index":263,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["as",{"_index":154,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["assume",{"_index":131,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["assuming",{"_index":160,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["async",{"_index":390,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["at",{"_index":98,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["authenticated",{"_index":279,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["authentication",{"_index":242,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["authorization",{"_index":169,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["aware",{"_index":183,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["bash",{"_index":34,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["basic",{"_index":74,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["be",{"_index":87,"pagesPluginContent":{"26":{},"27":{},"29":{}},"name":{},"parent":{}}],["before",{"_index":118,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["behavior",{"_index":223,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["below",{"_index":238,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["better",{"_index":297,"pagesPluginContent":{"27":{}},"name":{"28":{}},"parent":{}}],["bind",{"_index":290,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["bindpolicydecorators",{"_index":4,"pagesPluginContent":{"27":{}},"name":{"7":{}},"parent":{}}],["boring",{"_index":335,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["both",{"_index":275,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["bound",{"_index":271,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["bound.controller.ts",{"_index":274,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["boundpolicydecorators",{"_index":5,"pagesPluginContent":{},"name":{"8":{}},"parent":{"9":{}}}],["boundpolicydecorators.__type",{"_index":7,"pagesPluginContent":{},"name":{},"parent":{"10":{},"11":{}}}],["bug",{"_index":394,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["but",{"_index":193,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["by",{"_index":294,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["calls",{"_index":257,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["can",{"_index":68,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["can't",{"_index":304,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["canactivate",{"_index":404,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["cannot",{"_index":319,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["care",{"_index":191,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["care.controller.ts",{"_index":91,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["casl",{"_index":37,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["casl/commit/467354a0434a6518f52697c7ab46642ed9384f8e",{"_index":400,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["casl/commit/95945423b9d78ecb1353fe6c1a2228d5c9571cec",{"_index":393,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["casl/commit/f92f45e023c36a7fdfebe01851315d839a2f5a9f",{"_index":411,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["casl/compare/78f16a2f9e103be41b9d6a872f547eb54bc0d80e...v0.0.1",{"_index":419,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["casl/compare/v0.0.1...v0.0.2",{"_index":416,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["casl/compare/v0.0.2",{"_index":364,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["caslabilityfactory",{"_index":19,"pagesPluginContent":{"27":{},"28":{}},"name":{"23":{}},"parent":{"24":{}}}],["caslmodule",{"_index":8,"pagesPluginContent":{"26":{}},"name":{"12":{}},"parent":{"13":{},"14":{}}}],["chances",{"_index":326,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["changelog",{"_index":350,"pagesPluginContent":{"29":{}},"name":{"29":{}},"parent":{}}],["changelog/standard",{"_index":358,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["changes",{"_index":352,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["check",{"_index":102,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["checking",{"_index":119,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["checks",{"_index":407,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["class",{"_index":81,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["close",{"_index":155,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["codeblock",{"_index":48,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["commit",{"_index":360,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["compatible",{"_index":26,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["condition",{"_index":261,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["configuration",{"_index":30,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["configure",{"_index":60,"pagesPluginContent":{"26":{},"28":{}},"name":{},"parent":{}}],["constrain",{"_index":339,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["constrained",{"_index":320,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["constraint",{"_index":332,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["constraints",{"_index":298,"pagesPluginContent":{"27":{}},"name":{"28":{}},"parent":{}}],["constructor",{"_index":10,"pagesPluginContent":{},"name":{"14":{}},"parent":{}}],["context",{"_index":248,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["continue",{"_index":177,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["contraints",{"_index":347,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["controller",{"_index":80,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["controllers",{"_index":73,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["correct",{"_index":398,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["course",{"_index":292,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["createfromrequest",{"_index":20,"pagesPluginContent":{},"name":{"24":{}},"parent":{}}],["cumulative",{"_index":258,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["current",{"_index":46,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["declare",{"_index":39,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["declared",{"_index":311,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["decorator",{"_index":82,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["decorators",{"_index":72,"pagesPluginContent":{"26":{},"28":{}},"name":{},"parent":{}}],["define",{"_index":312,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["delegate",{"_index":208,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["dependencies",{"_index":149,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["dependency",{"_index":153,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["depending",{"_index":247,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["directly",{"_index":143,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["do",{"_index":129,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["documented",{"_index":354,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["does",{"_index":150,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["each",{"_index":246,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["either",{"_index":282,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["enjoy",{"_index":346,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["evaluated",{"_index":265,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["even",{"_index":269,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["every",{"_index":337,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["example",{"_index":166,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["exception",{"_index":172,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["execute",{"_index":116,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["external",{"_index":152,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["extract",{"_index":120,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["extraguard1",{"_index":283,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["extraguard2",{"_index":284,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["f92f45e](https://github.com/scitizen/nest",{"_index":410,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["fact",{"_index":194,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["factory",{"_index":64,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["factory.service.ts",{"_index":53,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["far",{"_index":300,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["features",{"_index":387,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["file",{"_index":355,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["first",{"_index":31,"pagesPluginContent":{"26":{},"29":{}},"name":{},"parent":{}}],["fixes",{"_index":395,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["folded",{"_index":104,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["following",{"_index":133,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["for",{"_index":164,"pagesPluginContent":{"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["forbidden",{"_index":174,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["from",{"_index":45,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["further",{"_index":406,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["generate",{"_index":43,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["generating",{"_index":123,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["getting",{"_index":112,"pagesPluginContent":{},"name":{"26":{}},"parent":{}}],["give",{"_index":200,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["great",{"_index":323,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["greatly",{"_index":324,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["group",{"_index":94,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["guard",{"_index":161,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guard](https://github.com/nestjs/passport/blob/6aef921c7566766d0eb9e79d2c8235177c539863/lib/auth.guard.ts#l58",{"_index":196,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards",{"_index":111,"pagesPluginContent":{"26":{},"27":{}},"name":{"27":{}},"parent":{}}],["guards/ability",{"_index":135,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/jwt",{"_index":213,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/naive",{"_index":226,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/naive.controller.ts",{"_index":197,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/naive.guard.ts",{"_index":158,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/passport",{"_index":219,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/recommended",{"_index":296,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guards/recommended.controller.ts#recommended",{"_index":266,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["guardslist",{"_index":18,"pagesPluginContent":{},"name":{"22":{}},"parent":{}}],["guidelines",{"_index":361,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["handle",{"_index":16,"pagesPluginContent":{},"name":{"20":{}},"parent":{}}],["handlers",{"_index":391,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["has",{"_index":286,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["have",{"_index":132,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["he",{"_index":285,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["header",{"_index":170,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["here",{"_index":224,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["hopefully",{"_index":340,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["i'm",{"_index":182,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["icaslrootconfig",{"_index":11,"pagesPluginContent":{},"name":{"15":{}},"parent":{"16":{}}}],["ide",{"_index":328,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["ideal",{"_index":184,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["if",{"_index":92,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["implementation",{"_index":167,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["import",{"_index":54,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["in",{"_index":56,"pagesPluginContent":{"26":{},"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["individual",{"_index":89,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["informations",{"_index":122,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["initial",{"_index":420,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["injectability",{"_index":0,"pagesPluginContent":{},"name":{"0":{}},"parent":{}}],["install",{"_index":32,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["interceptor`](https://docs.nestjs.com/interceptors",{"_index":188,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["invalid",{"_index":173,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["ipolicy",{"_index":15,"pagesPluginContent":{},"name":{"19":{}},"parent":{"20":{}}}],["is",{"_index":25,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["it",{"_index":61,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["its",{"_index":124,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["join",{"_index":260,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["just",{"_index":293,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["jwt",{"_index":211,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["let's",{"_index":130,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["level",{"_index":99,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["like",{"_index":218,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["link",{"_index":55,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["matching",{"_index":310,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["maybeasyncvalue",{"_index":21,"pagesPluginContent":{},"name":{"25":{}},"parent":{}}],["metadata",{"_index":397,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["method",{"_index":138,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["method1",{"_index":276,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["method2",{"_index":277,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["methods",{"_index":78,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["middleware`](https://docs.nestjs.com/middleware",{"_index":186,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["might",{"_index":141,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["module",{"_index":24,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["more",{"_index":148,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["moreover",{"_index":249,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["most",{"_index":114,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["multiple",{"_index":241,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["myability",{"_index":316,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["naive",{"_index":217,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["naive.controller.ts",{"_index":220,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["naiveguard",{"_index":199,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["naïve",{"_index":136,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["nestjs",{"_index":156,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["nestjs/passport`](https://www.npmjs.com/package/@nestjs/passport",{"_index":195,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["nestjs@^8.0.0",{"_index":28,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["next",{"_index":109,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["next.0",{"_index":417,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.0...v0.0.2",{"_index":413,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.0](https://github.com/scitizen/nest",{"_index":415,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.1",{"_index":414,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.1...v0.0.2",{"_index":385,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.1](https://github.com/scitizen/nest",{"_index":412,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.2",{"_index":386,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.2...v0.0.2",{"_index":381,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.2](https://github.com/scitizen/nest",{"_index":384,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.3",{"_index":382,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.3...v0.0.2",{"_index":377,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.3](https://github.com/scitizen/nest",{"_index":380,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.4",{"_index":378,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.4...v0.0.2",{"_index":374,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.4](https://github.com/scitizen/nest",{"_index":376,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.5",{"_index":375,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.5...v0.0.2",{"_index":371,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.5](https://github.com/scitizen/nest",{"_index":373,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.6",{"_index":372,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.6...v0.0.2",{"_index":365,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.6](https://github.com/scitizen/nest",{"_index":370,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.7",{"_index":366,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["next.7](https://github.com/scitizen/nest",{"_index":363,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["not",{"_index":139,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["notable",{"_index":351,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["note",{"_index":289,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["now",{"_index":69,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["npm",{"_index":35,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["of",{"_index":79,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["on",{"_index":180,"pagesPluginContent":{"27":{},"29":{}},"name":{},"parent":{}}],["or",{"_index":187,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["or.guard",{"_index":401,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["order",{"_index":338,"pagesPluginContent":{"28":{},"29":{}},"name":{},"parent":{}}],["our",{"_index":306,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["owner.controller.ts",{"_index":85,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["page",{"_index":110,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["parameter",{"_index":331,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["part",{"_index":336,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["pass",{"_index":317,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["passes",{"_index":281,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["passport",{"_index":207,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["passport.strategy.ts",{"_index":214,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["placed",{"_index":237,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["policies",{"_index":96,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["policies.guard",{"_index":388,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["policies.ts",{"_index":343,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["policiesguard",{"_index":204,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["policiesmask",{"_index":3,"pagesPluginContent":{"26":{},"27":{}},"name":{"4":{},"5":{},"11":{}},"parent":{"6":{}}}],["policiesmask.usingguard",{"_index":254,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["policy",{"_index":1,"pagesPluginContent":{"26":{},"27":{},"29":{}},"name":{"1":{},"2":{},"10":{}},"parent":{"3":{}}}],["policy.usingguard",{"_index":253,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["policydescriptor",{"_index":13,"pagesPluginContent":{"27":{}},"name":{"17":{}},"parent":{}}],["policydescriptormask",{"_index":14,"pagesPluginContent":{},"name":{"18":{}},"parent":{}}],["possible",{"_index":157,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["prefer",{"_index":251,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["prepare",{"_index":270,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["prepended",{"_index":255,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["presets",{"_index":252,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["problem",{"_index":229,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["project",{"_index":353,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["promises",{"_index":409,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["properly",{"_index":402,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["property",{"_index":178,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["protect",{"_index":76,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["provide",{"_index":262,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["provider",{"_index":41,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["ran",{"_index":239,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["readability",{"_index":235,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["recommanded",{"_index":140,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["recommended",{"_index":144,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["reduce",{"_index":325,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["release",{"_index":421,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["request",{"_index":47,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["require",{"_index":151,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["ressource",{"_index":203,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["retrieval",{"_index":209,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["reusability",{"_index":240,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["role",{"_index":288,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["run",{"_index":278,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["same",{"_index":97,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["say",{"_index":210,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["scitizen/nest",{"_index":36,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["see",{"_index":162,"pagesPluginContent":{"27":{},"29":{}},"name":{},"parent":{}}],["set",{"_index":179,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["setting",{"_index":192,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["setup",{"_index":29,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["should",{"_index":189,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["show",{"_index":127,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["simple",{"_index":267,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["simplepolicy",{"_index":17,"pagesPluginContent":{},"name":{"21":{}},"parent":{}}],["simply",{"_index":345,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["skip",{"_index":142,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["so",{"_index":299,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["solve",{"_index":341,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["some",{"_index":117,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["spec.ts",{"_index":107,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["spec.ts#abilityfactory",{"_index":51,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["spec.ts#appmodule",{"_index":65,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["spec.ts#catcarecontroller",{"_index":90,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["spec.ts#catcontroller",{"_index":100,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["spec.ts#catownercontroller",{"_index":83,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["spec.ts#test",{"_index":105,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["src/ability",{"_index":52,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["src/app.module.ts",{"_index":66,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["src/cat",{"_index":84,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["src/cat.controller.ts",{"_index":101,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["src/controllers/naive.controller.ts",{"_index":198,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/controllers/passport",{"_index":221,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/controllers/recommended.controller.ts",{"_index":268,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/guards/naive.guard.ts",{"_index":159,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/my",{"_index":344,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["src/policies.ts",{"_index":272,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/recommended",{"_index":273,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/strategies/jwt",{"_index":215,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["src/test",{"_index":349,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["src/test.controller.ts",{"_index":334,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["standard",{"_index":356,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["start",{"_index":70,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["started",{"_index":113,"pagesPluginContent":{},"name":{"26":{}},"parent":{}}],["still",{"_index":216,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["stop",{"_index":405,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["strategies",{"_index":243,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["strategy",{"_index":212,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["subject`s",{"_index":308,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["subsequent",{"_index":259,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["succeed",{"_index":205,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["success",{"_index":408,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["suggest",{"_index":329,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["take",{"_index":190,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["test.e2e",{"_index":227,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["test/basic",{"_index":49,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["test/better",{"_index":314,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["test/cats.e2e",{"_index":106,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["test/use",{"_index":134,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["tested",{"_index":291,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["tests",{"_index":103,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["that",{"_index":42,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["that's",{"_index":322,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["the",{"_index":33,"pagesPluginContent":{"26":{},"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["them",{"_index":201,"pagesPluginContent":{"27":{},"28":{}},"name":{},"parent":{}}],["then",{"_index":38,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["there",{"_index":232,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["they",{"_index":264,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["this",{"_index":23,"pagesPluginContent":{"26":{},"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["those",{"_index":256,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["through",{"_index":280,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["times",{"_index":115,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["to",{"_index":62,"pagesPluginContent":{"26":{},"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["type",{"_index":250,"pagesPluginContent":{"27":{},"28":{}},"name":{"28":{}},"parent":{}}],["types",{"_index":313,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["types/ability",{"_index":330,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["types/ability.ts",{"_index":315,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["types/ability.typecheck.e2e",{"_index":321,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["types/my",{"_index":342,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["types/test",{"_index":348,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["types/test.controller.ts",{"_index":333,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["typos",{"_index":327,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["unauthorized",{"_index":171,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["usage",{"_index":75,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["use",{"_index":63,"pagesPluginContent":{"26":{},"27":{},"28":{},"29":{}},"name":{"27":{}},"parent":{}}],["use.e2e",{"_index":50,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["used",{"_index":88,"pagesPluginContent":{"26":{}},"name":{},"parent":{}}],["useguards",{"_index":236,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["user",{"_index":121,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["users",{"_index":168,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["using",{"_index":71,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["usingguard",{"_index":2,"pagesPluginContent":{},"name":{"3":{},"6":{}},"parent":{}}],["valid",{"_index":175,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["various",{"_index":95,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["version",{"_index":359,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["version](https://github.com/conventional",{"_index":357,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["wanna",{"_index":222,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["want",{"_index":93,"pagesPluginContent":{"26":{},"27":{}},"name":{},"parent":{}}],["waterfall",{"_index":403,"pagesPluginContent":{"29":{}},"name":{},"parent":{}}],["way",{"_index":128,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["we",{"_index":301,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["well",{"_index":231,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["were",{"_index":302,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["what",{"_index":108,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["what's",{"_index":228,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["will",{"_index":126,"pagesPluginContent":{"27":{},"28":{},"29":{}},"name":{},"parent":{}}],["with",{"_index":27,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{"27":{}},"parent":{}}],["withconfig",{"_index":9,"pagesPluginContent":{},"name":{"13":{}},"parent":{}}],["without",{"_index":146,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["world",{"_index":185,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["yeah",{"_index":181,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["yet",{"_index":305,"pagesPluginContent":{"28":{}},"name":{},"parent":{}}],["you",{"_index":67,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["you're",{"_index":206,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}],["your",{"_index":57,"pagesPluginContent":{"26":{},"27":{},"28":{}},"name":{},"parent":{}}],["yourself",{"_index":295,"pagesPluginContent":{"27":{}},"name":{},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/classes/CaslModule.html b/docs/classes/CaslModule.html index 2f4b2784..c548044e 100644 --- a/docs/classes/CaslModule.html +++ b/docs/classes/CaslModule.html @@ -123,7 +123,7 @@
createFromRequest
abilityFactory
handle
BoundPolicyDecorators
Type parameters
@@ -172,7 +172,7 @@GuardsList
MaybeAsyncValue
PolicyDescriptor
PolicyDescriptorMask
SimplePolicy
Const InjectAbility
PoliciesMask
Policy
Const bindPolicyDecorat
diff --git a/docs/modules/PoliciesMask.html b/docs/modules/PoliciesMask.html
index b2d57f66..e895cfd7 100644
--- a/docs/modules/PoliciesMask.html
+++ b/docs/modules/PoliciesMask.html
@@ -92,7 +92,7 @@
diff --git a/docs/modules/Policy.html b/docs/modules/Policy.html
index 6f373b41..7ac3cb70 100644
--- a/docs/modules/Policy.html
+++ b/docs/modules/Policy.html
@@ -92,7 +92,7 @@
diff --git a/docs/pages/Changelog/CHANGELOG.html b/docs/pages/Changelog/CHANGELOG.html
index ad394552..86679e0f 100644
--- a/docs/pages/Changelog/CHANGELOG.html
+++ b/docs/pages/Changelog/CHANGELOG.html
@@ -75,6 +75,9 @@
usingGuard
usingGuard
Changelog
Changelog
All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
+ +0.0.2-next.7 (2021-10-08)
+0.0.2-next.6 (2021-10-08)
diff --git a/docs/pages/Guides/better-type-constraints.html b/docs/pages/Guides/better-type-constraints.html index c0feb0fb..c757e654 100644 --- a/docs/pages/Guides/better-type-constraints.html +++ b/docs/pages/Guides/better-type-constraints.html @@ -99,7 +99,7 @@Better type constraints
Define the ability type
Let's configure our ability types:
-From ./test/demo/better-types/ability.ts#1~6
+From ./test/demo/better-types/ability.ts#1~6
Using
-MyAbility
, we can't pass anything tocan
orcannot
: types are constrained.From ./test/demo/better-types/ability.typecheck.e2e-spec.ts#1~12
+From ./test/demo/better-types/ability.typecheck.e2e-spec.ts#1~12