@casl/angular
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sources":["../../src/pipes.ts","../../src/AbilityService.ts","../../src/AbilityServiceSignal.ts"],"sourcesContent":["import { Pipe, Inject, PipeTransform } from '@angular/core';\nimport { PureAbility, AnyAbility } from '@casl/ability';\nimport { Observable } from 'rxjs';\n\n/**\n * @deprecated use AbilityService instead\n */\n@Pipe({ name: 'able', pure: false, standalone: true })\nexport class AblePipe<T extends AnyAbility> implements PipeTransform {\n private _ability: T;\n\n constructor(@Inject(PureAbility) ability: T) {\n this._ability = ability;\n }\n\n transform(...args: Parameters<T['can']>): boolean {\n return this._ability.can(...args);\n }\n}\n\n/**\n * @deprecated use AbilityService instead\n */\n@Pipe({ name: 'ablePure', standalone: true })\nexport class AblePurePipe<T extends AnyAbility> implements PipeTransform {\n private _ability: T;\n\n constructor(@Inject(PureAbility) ability: T) {\n this._ability = ability;\n }\n\n transform(...args: Parameters<T['can']>): Observable<boolean> {\n return new Observable((s) => {\n const emit = () => s.next(this._ability.can(...args));\n emit();\n return this._ability.on('updated', emit);\n });\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { AnyAbility, PureAbility } from '@casl/ability';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class AbilityService<T extends AnyAbility> {\n readonly ability$: Observable<T>;\n\n constructor(@Inject(PureAbility) ability: T) {\n this.ability$ = new Observable((observer) => {\n observer.next(ability);\n return ability.on('updated', () => observer.next(ability));\n });\n }\n}\n","import { inject, Injectable, OnDestroy, signal } from \"@angular/core\";\nimport { AnyAbility, PureAbility, RawRuleOf } from \"@casl/ability\";\n\n@Injectable({ providedIn: 'root' })\nexport class AbilityServiceSignal<T extends AnyAbility> implements OnDestroy {\n private readonly _rules = signal<RawRuleOf<T>[]>([]);\n private readonly _ability = inject(PureAbility) as unknown as T;\n private readonly _disposeAbilitySubscription: () => void;\n\n constructor() {\n this._disposeAbilitySubscription = this._ability.on('updated', (event) => {\n this._rules.set(event.rules as any);\n });\n }\n\n ngOnDestroy(): void {\n this._disposeAbilitySubscription();\n }\n\n can = (...args: Parameters<T['can']>): boolean => {\n this._rules(); // generate side effect for angular to track changes in this signal\n return this._ability.can(...args);\n };\n\n cannot = (...args: Parameters<T['can']>): boolean => {\n return !this.can(...args);\n };\n\n update(rules: T['rules']): void {\n this._ability.update(rules);\n }\n}"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sources":["../../src/pipes.ts","../../src/AbilityService.ts","../../src/AbilityServiceSignal.ts"],"sourcesContent":["import { Pipe, Inject, PipeTransform } from '@angular/core';\nimport { PureAbility, AnyAbility } from '@casl/ability';\nimport { Observable } from 'rxjs';\n\n/**\n * @deprecated use AbilityService instead\n */\n@Pipe({ name: 'able', pure: false, standalone: true })\nexport class AblePipe<T extends AnyAbility> implements PipeTransform {\n private _ability: T;\n\n constructor(@Inject(PureAbility) ability: T) {\n this._ability = ability;\n }\n\n transform(...args: Parameters<T['can']>): boolean {\n return this._ability.can(...args);\n }\n}\n\n/**\n * @deprecated use AbilityService instead\n */\n@Pipe({ name: 'ablePure', standalone: true })\nexport class AblePurePipe<T extends AnyAbility> implements PipeTransform {\n private _ability: T;\n\n constructor(@Inject(PureAbility) ability: T) {\n this._ability = ability;\n }\n\n transform(...args: Parameters<T['can']>): Observable<boolean> {\n return new Observable((s) => {\n const emit = () => s.next(this._ability.can(...args));\n emit();\n return this._ability.on('updated', emit);\n });\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { AnyAbility, PureAbility } from '@casl/ability';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class AbilityService<T extends AnyAbility> {\n readonly ability$: Observable<T>;\n\n constructor(@Inject(PureAbility) ability: T) {\n this.ability$ = new Observable((observer) => {\n observer.next(ability);\n return ability.on('updated', () => observer.next(ability));\n });\n }\n}\n","import { inject, Injectable, OnDestroy, signal } from \"@angular/core\";\nimport { AnyAbility, PureAbility, RawRuleOf } from \"@casl/ability\";\n\n@Injectable({ providedIn: 'root' })\nexport class AbilityServiceSignal<T extends AnyAbility> implements OnDestroy {\n private readonly _rules = signal<RawRuleOf<T>[]>([]);\n private readonly _ability = inject(PureAbility) as unknown as T;\n private readonly _disposeAbilitySubscription: () => void;\n\n constructor() {\n this._disposeAbilitySubscription = this._ability.on('updated', (event) => {\n this._rules.set(event.rules as any);\n });\n }\n\n ngOnDestroy(): void {\n this._disposeAbilitySubscription();\n }\n\n can = (...args: Parameters<T['can']>): boolean => {\n this._rules(); // generate side effect for angular to track changes in this signal\n return this._ability.can(...args);\n };\n\n cannot = (...args: Parameters<T['can']>): boolean => {\n return !this.can(...args);\n };\n\n update(rules: T['rules']): void {\n this._ability.update(rules);\n }\n}"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.mjs","sources":["../../src/pipes.ts","../../src/AbilityService.ts","../../src/AbilityServiceSignal.ts"],"sourcesContent":["import { Pipe, Inject, PipeTransform } from '@angular/core';\nimport { PureAbility, AnyAbility } from '@casl/ability';\nimport { Observable } from 'rxjs';\n\n/**\n * @deprecated use AbilityService instead\n */\n@Pipe({ name: 'able', pure: false, standalone: true })\nexport class AblePipe<T extends AnyAbility> implements PipeTransform {\n private _ability: T;\n\n constructor(@Inject(PureAbility) ability: T) {\n this._ability = ability;\n }\n\n transform(...args: Parameters<T['can']>): boolean {\n return this._ability.can(...args);\n }\n}\n\n/**\n * @deprecated use AbilityService instead\n */\n@Pipe({ name: 'ablePure', standalone: true })\nexport class AblePurePipe<T extends AnyAbility> implements PipeTransform {\n private _ability: T;\n\n constructor(@Inject(PureAbility) ability: T) {\n this._ability = ability;\n }\n\n transform(...args: Parameters<T['can']>): Observable<boolean> {\n return new Observable((s) => {\n const emit = () => s.next(this._ability.can(...args));\n emit();\n return this._ability.on('updated', emit);\n });\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { AnyAbility, PureAbility } from '@casl/ability';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class AbilityService<T extends AnyAbility> {\n readonly ability$: Observable<T>;\n\n constructor(@Inject(PureAbility) ability: T) {\n this.ability$ = new Observable((observer) => {\n observer.next(ability);\n return ability.on('updated', () => observer.next(ability));\n });\n }\n}\n","import { inject, Injectable, OnDestroy, signal } from \"@angular/core\";\nimport { AnyAbility, PureAbility, RawRuleOf } from \"@casl/ability\";\n\n@Injectable({ providedIn: 'root' })\nexport class AbilityServiceSignal<T extends AnyAbility> implements OnDestroy {\n private readonly _rules = signal<RawRuleOf<T>[]>([]);\n private readonly _ability = inject(PureAbility) as unknown as T;\n private readonly _disposeAbilitySubscription: () => void;\n\n constructor() {\n this._disposeAbilitySubscription = this._ability.on('updated', (event) => {\n this._rules.set(event.rules as any);\n });\n }\n\n ngOnDestroy(): void {\n this._disposeAbilitySubscription();\n }\n\n can = (...args: Parameters<T['can']>): boolean => {\n this._rules(); // generate side effect for angular to track changes in this signal\n return this._ability.can(...args);\n };\n\n cannot = (...args: Parameters<T['can']>): boolean => {\n return !this.can(...args);\n };\n\n update(rules: T['rules']): void {\n this._ability.update(rules);\n }\n}"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"index.mjs","sources":["../../src/pipes.ts","../../src/AbilityService.ts","../../src/AbilityServiceSignal.ts"],"sourcesContent":["import { Pipe, Inject, PipeTransform } from '@angular/core';\nimport { PureAbility, AnyAbility } from '@casl/ability';\nimport { Observable } from 'rxjs';\n\n/**\n * @deprecated use AbilityService instead\n */\n@Pipe({ name: 'able', pure: false, standalone: true })\nexport class AblePipe<T extends AnyAbility> implements PipeTransform {\n private _ability: T;\n\n constructor(@Inject(PureAbility) ability: T) {\n this._ability = ability;\n }\n\n transform(...args: Parameters<T['can']>): boolean {\n return this._ability.can(...args);\n }\n}\n\n/**\n * @deprecated use AbilityService instead\n */\n@Pipe({ name: 'ablePure', standalone: true })\nexport class AblePurePipe<T extends AnyAbility> implements PipeTransform {\n private _ability: T;\n\n constructor(@Inject(PureAbility) ability: T) {\n this._ability = ability;\n }\n\n transform(...args: Parameters<T['can']>): Observable<boolean> {\n return new Observable((s) => {\n const emit = () => s.next(this._ability.can(...args));\n emit();\n return this._ability.on('updated', emit);\n });\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { AnyAbility, PureAbility } from '@casl/ability';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class AbilityService<T extends AnyAbility> {\n readonly ability$: Observable<T>;\n\n constructor(@Inject(PureAbility) ability: T) {\n this.ability$ = new Observable((observer) => {\n observer.next(ability);\n return ability.on('updated', () => observer.next(ability));\n });\n }\n}\n","import { inject, Injectable, OnDestroy, signal } from \"@angular/core\";\nimport { AnyAbility, PureAbility, RawRuleOf } from \"@casl/ability\";\n\n@Injectable({ providedIn: 'root' })\nexport class AbilityServiceSignal<T extends AnyAbility> implements OnDestroy {\n private readonly _rules = signal<RawRuleOf<T>[]>([]);\n private readonly _ability = inject(PureAbility) as unknown as T;\n private readonly _disposeAbilitySubscription: () => void;\n\n constructor() {\n this._disposeAbilitySubscription = this._ability.on('updated', (event) => {\n this._rules.set(event.rules as any);\n });\n }\n\n ngOnDestroy(): void {\n this._disposeAbilitySubscription();\n }\n\n can = (...args: Parameters<T['can']>): boolean => {\n this._rules(); // generate side effect for angular to track changes in this signal\n return this._ability.can(...args);\n };\n\n cannot = (...args: Parameters<T['can']>): boolean => {\n return !this.can(...args);\n };\n\n update(rules: T['rules']): void {\n this._ability.update(rules);\n }\n}"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sources":["../../src/pipes.ts","../../src/AbilityService.ts","../../src/AbilityServiceSignal.ts"],"sourcesContent":["import { Pipe, Inject, PipeTransform } from '@angular/core';\nimport { PureAbility, AnyAbility } from '@casl/ability';\nimport { Observable } from 'rxjs';\n\n/**\n * @deprecated use AbilityService instead\n */\n@Pipe({ name: 'able', pure: false, standalone: true })\nexport class AblePipe<T extends AnyAbility> implements PipeTransform {\n private _ability: T;\n\n constructor(@Inject(PureAbility) ability: T) {\n this._ability = ability;\n }\n\n transform(...args: Parameters<T['can']>): boolean {\n return this._ability.can(...args);\n }\n}\n\n/**\n * @deprecated use AbilityService instead\n */\n@Pipe({ name: 'ablePure', standalone: true })\nexport class AblePurePipe<T extends AnyAbility> implements PipeTransform {\n private _ability: T;\n\n constructor(@Inject(PureAbility) ability: T) {\n this._ability = ability;\n }\n\n transform(...args: Parameters<T['can']>): Observable<boolean> {\n return new Observable((s) => {\n const emit = () => s.next(this._ability.can(...args));\n emit();\n return this._ability.on('updated', emit);\n });\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { AnyAbility, PureAbility } from '@casl/ability';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class AbilityService<T extends AnyAbility> {\n readonly ability$: Observable<T>;\n\n constructor(@Inject(PureAbility) ability: T) {\n this.ability$ = new Observable((observer) => {\n observer.next(ability);\n return ability.on('updated', () => observer.next(ability));\n });\n }\n}\n","import { inject, Injectable, OnDestroy, signal } from \"@angular/core\";\nimport { AnyAbility, PureAbility, RawRuleOf } from \"@casl/ability\";\n\n@Injectable({ providedIn: 'root' })\nexport class AbilityServiceSignal<T extends AnyAbility> implements OnDestroy {\n private readonly _rules = signal<RawRuleOf<T>[]>([]);\n private readonly _ability = inject(PureAbility) as unknown as T;\n private readonly _disposeAbilitySubscription: () => void;\n\n constructor() {\n this._disposeAbilitySubscription = this._ability.on('updated', (event) => {\n this._rules.set(event.rules as any);\n });\n }\n\n ngOnDestroy(): void {\n this._disposeAbilitySubscription();\n }\n\n can = (...args: Parameters<T['can']>): boolean => {\n this._rules(); // generate side effect for angular to track changes in this signal\n return this._ability.can(...args);\n };\n\n cannot = (...args: Parameters<T['can']>): boolean => {\n return !this.can(...args);\n };\n\n update(rules: T['rules']): void {\n this._ability.update(rules);\n }\n}"],"names":["PureAbility","Pipe","Inject","Observable","Injectable","signal","__spreadArray","inject"],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sources":["../../src/pipes.ts","../../src/AbilityService.ts","../../src/AbilityServiceSignal.ts"],"sourcesContent":["import { Pipe, Inject, PipeTransform } from '@angular/core';\nimport { PureAbility, AnyAbility } from '@casl/ability';\nimport { Observable } from 'rxjs';\n\n/**\n * @deprecated use AbilityService instead\n */\n@Pipe({ name: 'able', pure: false, standalone: true })\nexport class AblePipe<T extends AnyAbility> implements PipeTransform {\n private _ability: T;\n\n constructor(@Inject(PureAbility) ability: T) {\n this._ability = ability;\n }\n\n transform(...args: Parameters<T['can']>): boolean {\n return this._ability.can(...args);\n }\n}\n\n/**\n * @deprecated use AbilityService instead\n */\n@Pipe({ name: 'ablePure', standalone: true })\nexport class AblePurePipe<T extends AnyAbility> implements PipeTransform {\n private _ability: T;\n\n constructor(@Inject(PureAbility) ability: T) {\n this._ability = ability;\n }\n\n transform(...args: Parameters<T['can']>): Observable<boolean> {\n return new Observable((s) => {\n const emit = () => s.next(this._ability.can(...args));\n emit();\n return this._ability.on('updated', emit);\n });\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { AnyAbility, PureAbility } from '@casl/ability';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class AbilityService<T extends AnyAbility> {\n readonly ability$: Observable<T>;\n\n constructor(@Inject(PureAbility) ability: T) {\n this.ability$ = new Observable((observer) => {\n observer.next(ability);\n return ability.on('updated', () => observer.next(ability));\n });\n }\n}\n","import { inject, Injectable, OnDestroy, signal } from \"@angular/core\";\nimport { AnyAbility, PureAbility, RawRuleOf } from \"@casl/ability\";\n\n@Injectable({ providedIn: 'root' })\nexport class AbilityServiceSignal<T extends AnyAbility> implements OnDestroy {\n private readonly _rules = signal<RawRuleOf<T>[]>([]);\n private readonly _ability = inject(PureAbility) as unknown as T;\n private readonly _disposeAbilitySubscription: () => void;\n\n constructor() {\n this._disposeAbilitySubscription = this._ability.on('updated', (event) => {\n this._rules.set(event.rules as any);\n });\n }\n\n ngOnDestroy(): void {\n this._disposeAbilitySubscription();\n }\n\n can = (...args: Parameters<T['can']>): boolean => {\n this._rules(); // generate side effect for angular to track changes in this signal\n return this._ability.can(...args);\n };\n\n cannot = (...args: Parameters<T['can']>): boolean => {\n return !this.can(...args);\n };\n\n update(rules: T['rules']): void {\n this._ability.update(rules);\n }\n}"],"names":["PureAbility","Pipe","Inject","Observable","Injectable","signal","__spreadArray","inject"],"mappings":"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"} |
+30
-30
| { | ||
| "name": "@casl/angular", | ||
| "version": "9.0.4", | ||
| "version": "9.0.5", | ||
| "description": "Angular module for CASL which makes it easy to add permissions in any Angular app", | ||
@@ -25,16 +25,2 @@ "main": "dist/umd/index.js", | ||
| }, | ||
| "scripts": { | ||
| "build.prepare": "rm -rf dist/* && npm run build.types", | ||
| "build": "npm run build.prepare && npm run build.es5m && npm run build.es6 && npm run build.umd", | ||
| "build.es5m": "TARGET=es5 BUILD=es5m npm run rollup", | ||
| "build.es6": "TARGET=es2015 BUILD=es6m npm run rollup", | ||
| "build.umd": "TARGET=es5 BUILD=umd npm run rollup", | ||
| "build.types": "ngc -p tsconfig.types.json && rm -rf dist/types/*.js", | ||
| "rollup.prepare": "ngc -p tsconfig.build.json --target $TARGET --outDir dist/$BUILD/tmp", | ||
| "rollup": "npm run rollup.prepare && IGNORE_SUBPATH=1 LIB_MINIFY=false BUILD_TYPES=$BUILD ES_TRANSFORM=false dx rollup -i dist/$BUILD/tmp/index.js -n casl.ng -g @angular/core:ng.core,@casl/ability:casl,tslib:tslib,rxjs:rxjs && rm -rf dist/$BUILD/tmp", | ||
| "test": "dx jest --config ./jest.config.js", | ||
| "lint": "dx eslint src/ spec/", | ||
| "release.prepare": "npm run lint && NODE_ENV=production npm run build && npm test", | ||
| "release": "npm run release.prepare && dx semantic-release" | ||
| }, | ||
| "keywords": [ | ||
@@ -50,3 +36,3 @@ "casl", | ||
| "peerDependencies": { | ||
| "@angular/core": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0", | ||
| "@angular/core": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0", | ||
| "@casl/ability": "^4.0.0 || ^5.1.0 || ^6.0.0", | ||
@@ -57,18 +43,18 @@ "rxjs": "^7.5.5", | ||
| "devDependencies": { | ||
| "@angular-devkit/build-angular": "^20.0.0", | ||
| "@angular/common": "^20.0.0", | ||
| "@angular/compiler": "^20.0.0", | ||
| "@angular/compiler-cli": "^20.0.0", | ||
| "@angular/core": "^20.0.0", | ||
| "@angular/platform-browser": "^20.0.0", | ||
| "@angular/platform-browser-dynamic": "^20.0.0", | ||
| "@angular-devkit/build-angular": "^21.0.0", | ||
| "@angular/common": "^21.0.0", | ||
| "@angular/compiler": "^21.0.0", | ||
| "@angular/compiler-cli": "^21.0.0", | ||
| "@angular/core": "^21.0.0", | ||
| "@angular/platform-browser": "^21.0.0", | ||
| "@angular/platform-browser-dynamic": "^21.0.0", | ||
| "@casl/ability": "^6.0.0", | ||
| "@casl/dx": "workspace:^1.0.0", | ||
| "@casl/dx": "^1.0.0", | ||
| "@types/jest": "^29.0.0", | ||
| "jest": "^29.0.0", | ||
| "jest-preset-angular": "^14.6.1", | ||
| "jest": "^30.0.0", | ||
| "jest-preset-angular": "^16.0.0", | ||
| "rxjs": "^7.5.5", | ||
| "tslib": "^2.0.0", | ||
| "typescript": "~5.8.3", | ||
| "zone.js": "~0.15.0" | ||
| "typescript": "~5.9.0", | ||
| "zone.js": "~0.16.0" | ||
| }, | ||
@@ -78,3 +64,17 @@ "files": [ | ||
| "*.d.ts" | ||
| ] | ||
| } | ||
| ], | ||
| "scripts": { | ||
| "build.prepare": "rm -rf dist/* && npm run build.types", | ||
| "build": "npm run build.prepare && npm run build.es5m && npm run build.es6 && npm run build.umd", | ||
| "build.es5m": "TARGET=es5 BUILD=es5m npm run rollup", | ||
| "build.es6": "TARGET=es2015 BUILD=es6m npm run rollup", | ||
| "build.umd": "TARGET=es5 BUILD=umd npm run rollup", | ||
| "build.types": "ngc -p tsconfig.types.json && rm -rf dist/types/*.js", | ||
| "rollup.prepare": "ngc -p tsconfig.build.json --target $TARGET --outDir dist/$BUILD/tmp", | ||
| "rollup": "npm run rollup.prepare && IGNORE_SUBPATH=1 LIB_MINIFY=false BUILD_TYPES=$BUILD ES_TRANSFORM=false dx rollup -i dist/$BUILD/tmp/index.js -n casl.ng -g @angular/core:ng.core,@casl/ability:casl,tslib:tslib,rxjs:rxjs && rm -rf dist/$BUILD/tmp", | ||
| "test": "dx jest --config ./jest.config.js", | ||
| "lint": "dx eslint src/ spec/", | ||
| "release.prepare": "npm run lint && NODE_ENV=production npm run build && npm test", | ||
| "release": "npm run release.prepare && pnpm publish" | ||
| } | ||
| } |
51476
-1.18%