@nmnmcc/ability 0.2.0 → 1.0.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.
Files changed (58) hide show
  1. package/README.md +462 -454
  2. package/dist/Authorizer.d.ts +241 -0
  3. package/dist/Authorizer.d.ts.map +1 -0
  4. package/dist/Authorizer.js +340 -0
  5. package/dist/Authorizer.js.map +1 -0
  6. package/dist/Condition.d.ts +915 -0
  7. package/dist/Condition.d.ts.map +1 -0
  8. package/dist/Condition.js +1123 -0
  9. package/dist/Condition.js.map +1 -0
  10. package/dist/Decision.d.ts +131 -0
  11. package/dist/Decision.d.ts.map +1 -0
  12. package/dist/Decision.js +83 -0
  13. package/dist/Decision.js.map +1 -0
  14. package/dist/Domain.d.ts +158 -0
  15. package/dist/Domain.d.ts.map +1 -0
  16. package/dist/Domain.js +76 -0
  17. package/dist/Domain.js.map +1 -0
  18. package/dist/HttpApi.d.ts +173 -0
  19. package/dist/HttpApi.d.ts.map +1 -0
  20. package/dist/HttpApi.js +185 -0
  21. package/dist/HttpApi.js.map +1 -0
  22. package/dist/Policy.d.ts +687 -0
  23. package/dist/Policy.d.ts.map +1 -0
  24. package/dist/Policy.js +1339 -0
  25. package/dist/Policy.js.map +1 -0
  26. package/dist/Principal.d.ts +35 -0
  27. package/dist/Principal.d.ts.map +1 -0
  28. package/dist/Principal.js +37 -0
  29. package/dist/Principal.js.map +1 -0
  30. package/dist/Resource.d.ts +364 -0
  31. package/dist/Resource.d.ts.map +1 -0
  32. package/dist/Resource.js +844 -0
  33. package/dist/Resource.js.map +1 -0
  34. package/dist/Rule.d.ts +275 -0
  35. package/dist/Rule.d.ts.map +1 -0
  36. package/dist/Rule.js +257 -0
  37. package/dist/Rule.js.map +1 -0
  38. package/dist/_virtual/_rolldown/runtime.js +1 -2
  39. package/dist/index.d.ts +9 -3
  40. package/dist/index.js +9 -3
  41. package/package.json +61 -72
  42. package/src/Authorizer.ts +894 -0
  43. package/src/Condition.ts +2997 -0
  44. package/src/Decision.ts +117 -0
  45. package/src/Domain.ts +246 -0
  46. package/src/HttpApi.ts +348 -0
  47. package/src/Policy.ts +3315 -0
  48. package/src/Principal.ts +41 -0
  49. package/src/Resource.ts +1805 -0
  50. package/src/Rule.ts +683 -0
  51. package/src/index.ts +57 -0
  52. package/dist/Ability.d.ts +0 -491
  53. package/dist/Ability.js +0 -207
  54. package/dist/AbilityExtra.d.ts +0 -79
  55. package/dist/AbilityExtra.js +0 -187
  56. package/dist/internal/ability.d.ts +0 -90
  57. package/dist/internal/ability.js +0 -550
  58. package/dist/internal/serializable.js +0 -22
@@ -0,0 +1,41 @@
1
+ /**
2
+ * A principal is the one who asks to do an act. It may be a person, a user
3
+ * token, or a Bot.
4
+ *
5
+ * A principal is a Schema. Make it with {@link Class}, in the same way as
6
+ * `Schema.Class`, or use any `Schema.Struct`. Conditions can use the fields of
7
+ * the principal. See `Condition.Builder.principal`.
8
+ *
9
+ * @stability stable
10
+ * @since 0.3.0
11
+ */
12
+ import * as Schema from "effect/Schema"
13
+
14
+ /**
15
+ * Any Schema that can be a principal. Its type must be an object.
16
+ *
17
+ * @stability stable
18
+ * @category models
19
+ * @since 0.3.0
20
+ */
21
+ export type Any = Schema.Top & { readonly Type: object }
22
+
23
+ /**
24
+ * Makes a principal as a Schema class. It is the same as `Schema.Class`.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * import { Schema } from "effect"
29
+ * import { Principal } from "@nmnmcc/ability"
30
+ *
31
+ * class Caller extends Principal.Class<Caller>("Caller")({
32
+ * userId: Schema.String,
33
+ * organizationId: Schema.String,
34
+ * }) {}
35
+ * ```
36
+ *
37
+ * @stability stable
38
+ * @category constructors
39
+ * @since 0.3.0
40
+ */
41
+ export const Class: typeof Schema.Class = Schema.Class