@via-profit/ability 3.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/README.md +920 -924
- package/dist/cache/AbilityCacheAdapter.d.ts +8 -0
- package/dist/cache/AbilityInMemoryCache.d.ts +12 -0
- package/dist/core/AbilityCondition.d.ts +21 -0
- package/dist/{AbilityExplain.d.ts → core/AbilityExplain.d.ts} +3 -3
- package/dist/{AbilityParser.d.ts → core/AbilityParser.d.ts} +2 -0
- package/dist/{AbilityPolicy.d.ts → core/AbilityPolicy.d.ts} +22 -13
- package/dist/core/AbilityResolver.d.ts +35 -0
- package/dist/core/AbilityResult.d.ts +27 -0
- package/dist/core/AbilityRule.d.ts +77 -0
- package/dist/{AbilityRuleSet.d.ts → core/AbilityRuleSet.d.ts} +10 -9
- package/dist/index.d.ts +19 -12
- package/dist/index.js +1718 -254
- package/dist/parsers/dsl/AbilityDSLLexer.d.ts +24 -0
- package/dist/parsers/dsl/AbilityDSLParser.d.ts +86 -0
- package/dist/parsers/dsl/AbilityDSLSyntaxError.d.ts +13 -0
- package/dist/parsers/dsl/AbilityDSLToken.d.ts +55 -0
- package/dist/parsers/json/AbilityJSONParser.d.ts +22 -0
- package/package.json +5 -3
- package/dist/AbilityCondition.d.ts +0 -16
- package/dist/AbilityResolver.d.ts +0 -32
- package/dist/AbilityRule.d.ts +0 -78
- /package/dist/{AbilityCode.d.ts → core/AbilityCode.d.ts} +0 -0
- /package/dist/{AbilityCompare.d.ts → core/AbilityCompare.d.ts} +0 -0
- /package/dist/{AbilityError.d.ts → core/AbilityError.d.ts} +0 -0
- /package/dist/{AbilityMatch.d.ts → core/AbilityMatch.d.ts} +0 -0
- /package/dist/{AbilityPolicyEffect.d.ts → core/AbilityPolicyEffect.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,70 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.2.0] - 2026-x3-xx
|
|
4
|
+
|
|
5
|
+
### Изменено
|
|
6
|
+
|
|
7
|
+
- Метод `AbilityPolicy.parseAll()` переименован в `AbilityPolicy.fromJSONAll()`
|
|
8
|
+
- Метод `AbilityPolicy.parse()` переименован в `AbilityPolicy.toJSON()`
|
|
9
|
+
- Метод `AbilityRule.parse()` переименован в `AbilityRule.toJSON()`
|
|
10
|
+
- Метод `AbilityRuleSet.parse()` переименован в `.toJSON()`
|
|
11
|
+
|
|
12
|
+
## [3.1.0] - 2026-03-20
|
|
13
|
+
|
|
14
|
+
### Добавлено
|
|
15
|
+
|
|
16
|
+
- Реализован кэш
|
|
17
|
+
- Добавлен кэш-провайдер `AbilityCacheProvider` для реализации кастомного кэша
|
|
18
|
+
- Реализован и включён по умолчанию `AbilityInMemoryCache` (кэш в памяти)
|
|
19
|
+
- Добавлена полноценная поддержка `environment` как третьего аргумента в:
|
|
20
|
+
- `resolver.resolve(action, resource, environment)`
|
|
21
|
+
- `resolver.enforce(action, resource, environment)`
|
|
22
|
+
- Введена возможность использовать пути вида `env.*` в правилах политик.
|
|
23
|
+
- Пример: `"subject": "env.time.hour"`
|
|
24
|
+
- Добавлена поддержка смешанных сравнений:
|
|
25
|
+
- `resource.*` ↔ `env.*`
|
|
26
|
+
- литерал ↔ `env.*`
|
|
27
|
+
- `env.*` ↔ литерал
|
|
28
|
+
|
|
29
|
+
### Breaking changes
|
|
30
|
+
|
|
31
|
+
Асинхронизация механизма проверки политик.
|
|
32
|
+
Все методы, участвующие в цепочке вычисления разрешений, теперь возвращают `Promise`.
|
|
33
|
+
|
|
34
|
+
#### Изменено
|
|
35
|
+
|
|
36
|
+
- `AbilityRule.check(resource): Promise<AbilityMatch>`
|
|
37
|
+
Ранее возвращал `AbilityMatch` синхронно.
|
|
38
|
+
|
|
39
|
+
- `AbilityRuleSet.check(resource): Promise<AbilityMatch>`
|
|
40
|
+
Теперь выполняет правила последовательно и асинхронно.
|
|
41
|
+
|
|
42
|
+
- `AbilityPolicy.check(resource): Promise<AbilityMatch>`
|
|
43
|
+
Асинхронно проверяет ruleSet в строгом порядке.
|
|
44
|
+
|
|
45
|
+
- `AbilityResolver.resolve(action, resource): Promise<AbilityResult>`
|
|
46
|
+
Теперь асинхронный метод, который дожидается выполнения всех политик.
|
|
47
|
+
|
|
48
|
+
- `AbilityResolver.enforce(action, resource): Promise<void | never>`
|
|
49
|
+
Теперь работает асинхронно.
|
|
50
|
+
|
|
51
|
+
### Миграция
|
|
52
|
+
|
|
53
|
+
1. Все вызовы `check()` должны быть обновлены:
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
await rule.check(resource);
|
|
57
|
+
await ruleSet.check(resource);
|
|
58
|
+
await policy.check(resource);
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
2. Все вызовы `resolver.resolve()` и `resolver.enforce()` теперь требуют `await`:
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
await resolver.resolve('order.update', resource);
|
|
65
|
+
await resolver.enforce('order.update', resource);
|
|
66
|
+
```
|
|
67
|
+
|
|
3
68
|
## [3.0.1] - 2026-03-19
|
|
4
69
|
|
|
5
70
|
## Добавлено
|