@gettersethya/mira-collection 0.1.0-alpha.2 → 0.1.0-alpha.21

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 (73) hide show
  1. package/README.md +173 -0
  2. package/dist/src/collection/auth.d.ts +4 -34
  3. package/dist/src/collection/auth.d.ts.map +1 -1
  4. package/dist/src/collection/auth.js +19 -22
  5. package/dist/src/collection/auth.js.map +1 -1
  6. package/dist/src/collection/base.d.ts +7 -31
  7. package/dist/src/collection/base.d.ts.map +1 -1
  8. package/dist/src/collection/base.js +12 -15
  9. package/dist/src/collection/base.js.map +1 -1
  10. package/dist/src/collection/field.d.ts +35 -1
  11. package/dist/src/collection/field.d.ts.map +1 -1
  12. package/dist/src/collection/field.js +26 -1
  13. package/dist/src/collection/field.js.map +1 -1
  14. package/dist/src/collection/index.d.ts +5 -1
  15. package/dist/src/collection/index.d.ts.map +1 -1
  16. package/dist/src/collection/index.js.map +1 -1
  17. package/dist/src/collection/infer.d.ts +183 -0
  18. package/dist/src/collection/infer.d.ts.map +1 -0
  19. package/dist/src/collection/infer.js +2 -0
  20. package/dist/src/collection/infer.js.map +1 -0
  21. package/dist/src/collection/serialize.d.ts +0 -2
  22. package/dist/src/collection/serialize.d.ts.map +1 -1
  23. package/dist/src/collection/serialize.js +14 -5
  24. package/dist/src/collection/serialize.js.map +1 -1
  25. package/dist/src/collection/types.d.ts +13 -4
  26. package/dist/src/collection/types.d.ts.map +1 -1
  27. package/dist/src/collection/view.d.ts +4 -11
  28. package/dist/src/collection/view.d.ts.map +1 -1
  29. package/dist/src/collection/view.js +10 -10
  30. package/dist/src/collection/view.js.map +1 -1
  31. package/dist/src/filter/builder.d.ts.map +1 -1
  32. package/dist/src/filter/builder.js.map +1 -1
  33. package/dist/src/filter/compiler.d.ts +1 -1
  34. package/dist/src/filter/compiler.d.ts.map +1 -1
  35. package/dist/src/filter/compiler.js.map +1 -1
  36. package/dist/src/filter/index.d.ts +2 -2
  37. package/dist/src/filter/index.d.ts.map +1 -1
  38. package/dist/src/filter/index.js.map +1 -1
  39. package/dist/src/filter/types.d.ts +3 -3
  40. package/dist/src/filter/types.d.ts.map +1 -1
  41. package/dist/src/filter/types.js +32 -26
  42. package/dist/src/filter/types.js.map +1 -1
  43. package/dist/src/index.d.ts +1 -1
  44. package/dist/src/index.d.ts.map +1 -1
  45. package/dist/src/index.js.map +1 -1
  46. package/dist/src/rule/builder.d.ts +32 -36
  47. package/dist/src/rule/builder.d.ts.map +1 -1
  48. package/dist/src/rule/builder.js +21 -8
  49. package/dist/src/rule/builder.js.map +1 -1
  50. package/dist/src/rule/index.d.ts +1 -1
  51. package/dist/src/rule/index.d.ts.map +1 -1
  52. package/dist/src/rule/index.js +1 -1
  53. package/dist/src/rule/index.js.map +1 -1
  54. package/dist/src/rule/types.d.ts +11 -0
  55. package/dist/src/rule/types.d.ts.map +1 -1
  56. package/dist/tests/collection/auth.test.js +5 -5
  57. package/dist/tests/collection/auth.test.js.map +1 -1
  58. package/dist/tests/collection/base.test.js +4 -21
  59. package/dist/tests/collection/base.test.js.map +1 -1
  60. package/dist/tests/collection/field.test.js +25 -0
  61. package/dist/tests/collection/field.test.js.map +1 -1
  62. package/dist/tests/collection/index-type.test.js +1 -1
  63. package/dist/tests/collection/index-type.test.js.map +1 -1
  64. package/dist/tests/collection/serialize.test.js +30 -19
  65. package/dist/tests/collection/serialize.test.js.map +1 -1
  66. package/dist/tests/collection/view.test.js +1 -1
  67. package/dist/tests/collection/view.test.js.map +1 -1
  68. package/dist/tests/filter/compiler.test.js +10 -11
  69. package/dist/tests/filter/compiler.test.js.map +1 -1
  70. package/dist/tests/rule/builder.test.js +52 -0
  71. package/dist/tests/rule/builder.test.js.map +1 -1
  72. package/dist/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +5 -4
@@ -1,35 +1,41 @@
1
1
  import { Schema } from "effect";
2
- let _filterNodeSchema;
3
- _filterNodeSchema = Schema.Union(Schema.Struct({
4
- op: Schema.Literal("eq", "neq", "gt", "gte", "lt", "lte"),
5
- field: Schema.String,
6
- value: Schema.Unknown
7
- }), Schema.Struct({
8
- op: Schema.Literal("in"),
9
- field: Schema.String,
10
- values: Schema.Array(Schema.Unknown)
11
- }), Schema.Struct({
12
- op: Schema.Literal("like"),
13
- field: Schema.String,
14
- value: Schema.String
15
- }), Schema.Struct({
16
- op: Schema.Literal("null", "not_null"),
17
- field: Schema.String
18
- }), Schema.Struct({
19
- op: Schema.Literal("and", "or"),
20
- left: Schema.suspend(() => _filterNodeSchema),
21
- right: Schema.suspend(() => _filterNodeSchema)
22
- }), Schema.Struct({
23
- op: Schema.Literal("not"),
24
- node: Schema.suspend(() => _filterNodeSchema)
25
- }));
2
+ const _filterNodeSchema = Schema.Union([
3
+ Schema.Struct({
4
+ op: Schema.Literals(["eq", "neq", "gt", "gte", "lt", "lte"]),
5
+ field: Schema.String,
6
+ value: Schema.Unknown
7
+ }),
8
+ Schema.Struct({
9
+ op: Schema.Literal("in"),
10
+ field: Schema.String,
11
+ values: Schema.Array(Schema.Unknown)
12
+ }),
13
+ Schema.Struct({
14
+ op: Schema.Literal("like"),
15
+ field: Schema.String,
16
+ value: Schema.String
17
+ }),
18
+ Schema.Struct({
19
+ op: Schema.Literals(["null", "not_null"]),
20
+ field: Schema.String
21
+ }),
22
+ Schema.Struct({
23
+ op: Schema.Literals(["and", "or"]),
24
+ left: Schema.suspend(() => _filterNodeSchema),
25
+ right: Schema.suspend(() => _filterNodeSchema)
26
+ }),
27
+ Schema.Struct({
28
+ op: Schema.Literal("not"),
29
+ node: Schema.suspend(() => _filterNodeSchema)
30
+ })
31
+ ]);
26
32
  /**
27
33
  * Effect Schema for `FilterNode`. Used to decode filter query parameters
28
34
  * from HTTP request JSON bodies.
29
35
  *
30
36
  * The schema is self-referential (recursive via `Schema.suspend`) to handle
31
- * nested `and`/`or`/`not` nodes. This is why the underlying `let` variable
32
- * exists — the recursive `suspend` needs a forward reference.
37
+ * nested `and`/`or`/`not` nodes — the recursive `suspend` closures forward
38
+ * reference the `const` binding.
33
39
  *
34
40
  * @example
35
41
  * import { Schema } from "effect"
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/filter/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AA+D/B,IAAI,iBAA4C,CAAA;AAEhD,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAC9B,MAAM,CAAC,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,KAAK,EAAE,MAAM,CAAC,OAAO;CACtB,CAAC,EACF,MAAM,CAAC,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;CACrC,CAAC,EACF,MAAM,CAAC,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC,EACF,MAAM,CAAC,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC,EACF,MAAM,CAAC,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC;CAC/C,CAAC,EACF,MAAM,CAAC,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC;CAC9C,CAAC,CACH,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/filter/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AA+D/B,MAAM,iBAAiB,GAA6B,MAAM,CAAC,KAAK,CAAC;IAC/D,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5D,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,KAAK,EAAE,MAAM,CAAC,OAAO;KACtB,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;KACrC,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,KAAK,EAAE,MAAM,CAAC,MAAM;KACrB,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACzC,KAAK,EAAE,MAAM,CAAC,MAAM;KACrB,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC;QAC7C,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC;KAC/C,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC;KAC9C,CAAC;CACH,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  export * from "./collection/index.js";
2
+ export type * from "./collection/types.js";
2
3
  export * from "./filter/index.js";
3
4
  export * from "./rule/index.js";
4
- export type * from "./collection/types.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,mBAAmB,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,mBAAmB,uBAAuB,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AAErC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
@@ -13,14 +13,35 @@ type FieldOperandMethods<K extends string, V = unknown> = {
13
13
  };
14
14
  /** An operand node with fluent comparison methods attached. */
15
15
  export type FieldOperand<K extends string, V = unknown> = OperandNode<K, V> & FieldOperandMethods<K, V>;
16
+ /** Base rule methods shared by Rule and RuleBuilder (excludes field and subquery). */
17
+ type RuleBase = {
18
+ request: (source: "header" | "query" | "body", key: string) => FieldOperand<string, string>;
19
+ auth: <C extends AnyCollectionDef, K extends keyof C["fields"] & string>(_collection: C, field: K) => FieldOperand<string, string>;
20
+ authId: <C extends AnyCollectionDef>(_collection: C) => FieldOperand<any, string>;
21
+ /** The collection name of the authenticated user. Use to restrict access to a specific auth collection. */
22
+ authCollection: () => FieldOperand<any, string>;
23
+ literal: <V>(value: V) => OperandNode<any, V>;
24
+ now: () => OperandNode<any, string>;
25
+ dateAdd: (operand: OperandNode<any>, amount: number, unit: "day" | "hour" | "minute") => OperandNode<any, string>;
26
+ dateDiff: (left: OperandNode<any>, right: OperandNode<any>, unit: "day" | "hour" | "minute") => OperandNode<any, number>;
27
+ and: <K extends string = string>(...exprs: Array<ExprNode<K>>) => ExprNode<K>;
28
+ or: <K extends string = string>(...exprs: Array<ExprNode<K>>) => ExprNode<K>;
29
+ not: <K extends string = string>(expr: ExprNode<K>) => ExprNode<K>;
30
+ public: <K extends string = string>() => ExprNode<K>;
31
+ };
16
32
  /**
17
33
  * A narrowed version of the Rule builder where `field()` is constrained to field
18
34
  * names defined in `F` and comparison operands are typed to match each field's value type.
19
35
  * Used as the argument type for the `rules` callback in collection definers.
20
36
  */
21
- export type RuleBuilder<F extends FieldsMap> = Omit<typeof Rule, "field"> & {
37
+ export type RuleBuilder<F extends FieldsMap> = RuleBase & {
22
38
  field<K extends keyof F & string>(name: K): FieldOperand<K, InferFieldValue<F[K]>>;
39
+ subquery: <C extends AnyCollectionDef, K extends keyof C["fields"] & string>(_collection: C, field: K) => {
40
+ where: (expr: ExprNode<any> | ((R: RuleBuilder<C["fields"]>) => ExprNode<any>)) => OperandNode<any, string>;
41
+ };
23
42
  };
43
+ /** Attaches fluent comparison methods to a raw operand node. */
44
+ export declare function toChainable<K extends string, V>(operand: OperandNode<K, V>): FieldOperand<K, V>;
24
45
  /**
25
46
  * Rule builder API.
26
47
  *
@@ -46,51 +67,26 @@ export type RuleBuilder<F extends FieldsMap> = Omit<typeof Rule, "field"> & {
46
67
  * )
47
68
  * Rule.field("teamId").in(memberTeams)
48
69
  *
70
+ * // Subquery with typed callback
71
+ * Rule.field("id").in(
72
+ * Rule.subquery(Members, "teamId").where(
73
+ * (Q) => Q.field("userId").eq(Rule.authId(Users))
74
+ * )
75
+ * )
76
+ *
49
77
  * // Always allow
50
78
  * Rule.public()
51
79
  */
52
- export declare const Rule: {
53
- /** Reference a record field by name. Returns a chainable operand. Value type is unknown; use via RuleBuilder for typed comparisons. */
80
+ export declare const Rule: RuleBase & {
54
81
  field: <const K extends string>(name: K) => FieldOperand<K, unknown>;
55
- /** Reference a value from the incoming request (header, query param, or body field). */
56
- request: (source: "header" | "query" | "body", key: string) => FieldOperand<string, string>;
57
- /** Reference a field from the authenticated user's record. */
58
- auth: <C extends AnyCollectionDef, K extends keyof C["fields"] & string>(_collection: C, field: K) => FieldOperand<string, string>;
59
- /** Reference the ID of the currently authenticated user. */
60
- authId: <C extends AnyCollectionDef>(_collection: C) => OperandNode<any, string>;
61
- /** A literal value for comparison. The value type `V` is inferred from the argument. */
62
- literal: <V>(value: V) => OperandNode<any, V>;
63
- /**
64
- * Create a subquery operand into another collection.
65
- * Call `.where()` on the result to finish the subquery.
66
- *
67
- * @example
68
- * Rule.subquery(Members, "teamId").where(
69
- * Rule.field("userId").eq(Rule.authId(Users))
70
- * )
71
- */
72
82
  subquery: <C extends AnyCollectionDef, K extends keyof C["fields"] & string>(_collection: C, field: K) => {
73
- where: (expr: ExprNode<any>) => OperandNode<any, string>;
83
+ where: (expr: ExprNode<any> | ((R: RuleBuilder<C["fields"]>) => ExprNode<any>)) => OperandNode<any, string>;
74
84
  };
75
- /** Current timestamp operand. Compiles to `datetime('now')` in SQLite. */
76
- now: () => OperandNode<any, string>;
77
- /** Add a duration to a date operand for date arithmetic. */
78
- dateAdd: (operand: OperandNode<any>, amount: number, unit: "day" | "hour" | "minute") => OperandNode<any, string>;
79
- /** Compute the difference between two date operands. */
80
- dateDiff: (left: OperandNode<any>, right: OperandNode<any>, unit: "day" | "hour" | "minute") => OperandNode<any, number>;
81
- /** Logical AND of expressions. */
82
- and: <K extends string = string>(...exprs: Array<ExprNode<K>>) => ExprNode<K>;
83
- /** Logical OR of expressions. */
84
- or: <K extends string = string>(...exprs: Array<ExprNode<K>>) => ExprNode<K>;
85
- /** Logical negation of a sub-expression. */
86
- not: <K extends string = string>(expr: ExprNode<K>) => ExprNode<K>;
87
- /** Always-true rule that allows all access. */
88
- public: <K extends string = string>() => ExprNode<K>;
89
85
  };
90
86
  /**
91
87
  * Creates a typed `RuleBuilder<F>` that constrains `field()` to names in `F`
92
88
  * and types each comparison operand to the field's value type.
93
- * Used internally by collection definers.
89
+ * Used internally by collection definers and subquery typed callbacks.
94
90
  */
95
91
  export declare function makeRuleBuilder<F extends FieldsMap>(): RuleBuilder<F>;
96
92
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/rule/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/rule/builder.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- function toChainable(operand) {
1
+ /** Attaches fluent comparison methods to a raw operand node. */
2
+ export function toChainable(operand) {
2
3
  const methods = {
3
4
  eq(right) { return { op: "eq", left: operand, right }; },
4
5
  neq(right) { return { op: "neq", left: operand, right }; },
@@ -10,7 +11,7 @@ function toChainable(operand) {
10
11
  startsWith(right) { return { op: "startsWith", left: operand, right }; },
11
12
  contains(right) { return { op: "contains", left: operand, right }; }
12
13
  };
13
- return Object.assign({}, operand, methods);
14
+ return Object.assign(Object.create(methods), operand);
14
15
  }
15
16
  /**
16
17
  * Rule builder API.
@@ -37,6 +38,13 @@ function toChainable(operand) {
37
38
  * )
38
39
  * Rule.field("teamId").in(memberTeams)
39
40
  *
41
+ * // Subquery with typed callback
42
+ * Rule.field("id").in(
43
+ * Rule.subquery(Members, "teamId").where(
44
+ * (Q) => Q.field("userId").eq(Rule.authId(Users))
45
+ * )
46
+ * )
47
+ *
40
48
  * // Always allow
41
49
  * Rule.public()
42
50
  */
@@ -48,10 +56,9 @@ export const Rule = {
48
56
  /** Reference a field from the authenticated user's record. */
49
57
  auth: (_collection, field) => toChainable({ kind: "auth", collection: _collection.name, field }),
50
58
  /** Reference the ID of the currently authenticated user. */
51
- authId: (_collection) => ({
52
- kind: "authId",
53
- collection: _collection.name
54
- }),
59
+ authId: (_collection) => toChainable({ kind: "authId", collection: _collection.name }),
60
+ /** Reference the collection name of the currently authenticated user. */
61
+ authCollection: () => toChainable({ kind: "authCollection" }),
55
62
  /** A literal value for comparison. The value type `V` is inferred from the argument. */
56
63
  literal: (value) => ({
57
64
  kind: "literal",
@@ -62,16 +69,22 @@ export const Rule = {
62
69
  * Call `.where()` on the result to finish the subquery.
63
70
  *
64
71
  * @example
72
+ * // Bare expression (backward compatible)
65
73
  * Rule.subquery(Members, "teamId").where(
66
74
  * Rule.field("userId").eq(Rule.authId(Users))
67
75
  * )
76
+ *
77
+ * // Typed callback — Q.field() is scoped to the subquery collection
78
+ * Rule.subquery(Members, "teamId").where(
79
+ * (Q) => Q.field("userId").eq(Rule.authId(Users))
80
+ * )
68
81
  */
69
82
  subquery: (_collection, field) => ({
70
83
  where: (expr) => ({
71
84
  kind: "subquery",
72
85
  collection: _collection.name,
73
86
  field,
74
- where: expr
87
+ where: typeof expr === "function" ? expr(makeRuleBuilder()) : expr
75
88
  })
76
89
  }),
77
90
  /** Current timestamp operand. Compiles to `datetime('now')` in SQLite. */
@@ -114,7 +127,7 @@ export const Rule = {
114
127
  /**
115
128
  * Creates a typed `RuleBuilder<F>` that constrains `field()` to names in `F`
116
129
  * and types each comparison operand to the field's value type.
117
- * Used internally by collection definers.
130
+ * Used internally by collection definers and subquery typed callbacks.
118
131
  */
119
132
  export function makeRuleBuilder() {
120
133
  function field(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/rule/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/rule/builder.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export * from "./types.js";
2
1
  export * from "./builder.js";
2
+ export * from "./types.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rule/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rule/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA"}
@@ -1,3 +1,3 @@
1
- export * from "./types.js";
2
1
  export * from "./builder.js";
2
+ export * from "./types.js";
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rule/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rule/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA"}
@@ -10,6 +10,7 @@
10
10
  * - `now` — current timestamp (e.g., `Rule.now()`)
11
11
  * - `dateAdd` — date arithmetic (e.g., `Rule.dateAdd(Rule.now(), 7, "day")`)
12
12
  * - `dateDiff` — difference between two dates (e.g., `Rule.dateDiff(Rule.field("created"), Rule.now(), "day")`)
13
+ * - `authCollection` — the collection name of the authenticated user (e.g., `Rule.authCollection()`)
13
14
  */
14
15
  export type OperandNode<K extends string = string, V = unknown> = {
15
16
  kind: "field";
@@ -25,6 +26,8 @@ export type OperandNode<K extends string = string, V = unknown> = {
25
26
  } | {
26
27
  kind: "authId";
27
28
  collection: string;
29
+ } | {
30
+ kind: "authCollection";
28
31
  } | {
29
32
  kind: "subquery";
30
33
  collection: string;
@@ -125,5 +128,13 @@ export type RuleMap<K extends string = string> = {
125
128
  create?: ExprNode<K>;
126
129
  update?: ExprNode<K>;
127
130
  delete?: ExprNode<K>;
131
+ /**
132
+ * Auth-collections-only "manage" rule. Evaluated **in addition to** the
133
+ * create/update rules. When it matches (and the caller is authenticated) it
134
+ * grants manager access: directly setting `email`, `emailVerified`, and
135
+ * changing the password without `oldPassword`. It never bypasses the base
136
+ * create/update rules and has no effect on list/view/delete.
137
+ */
138
+ manage?: ExprNode<K>;
128
139
  };
129
140
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/rule/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/rule/types.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import { AuthCollection } from "../../src/collection/auth.js";
3
3
  import { Field } from "../../src/collection/field.js";
4
- const ID_PROPERTY = { type: "string", "x-system": true };
5
- const SEQID_PROPERTY = { type: "integer", "x-kind": "seqId", "x-system": true, "x-hidden": true };
6
- const CREATED_PROPERTY = { type: "string", "x-system": true };
7
- const UPDATED_PROPERTY = { type: "string", "x-system": true };
4
+ const ID_PROPERTY = { type: "string", "x-system": true, "x-generated": true };
5
+ const SEQID_PROPERTY = { type: "integer", "x-kind": "seqId", "x-system": true, "x-hidden": true, "x-generated": true };
6
+ const CREATED_PROPERTY = { type: "string", "x-system": true, "x-generated": true };
7
+ const UPDATED_PROPERTY = { type: "string", "x-system": true, "x-generated": true };
8
8
  describe("AuthCollection", () => {
9
9
  it("auth collection injects system fields", () => {
10
10
  const Users = AuthCollection.define("users", { displayName: Field.text({ required: true }) });
@@ -16,7 +16,7 @@ describe("AuthCollection", () => {
16
16
  id: ID_PROPERTY,
17
17
  seqId: SEQID_PROPERTY,
18
18
  email: { type: "string", format: "email", "x-system": true },
19
- password: { type: "string", "x-system": true, "x-hidden": true },
19
+ password: { type: "string", "x-system": true, "x-hidden": true, "x-kind": "password" },
20
20
  emailVerified: { type: "boolean", "x-system": true, default: false },
21
21
  displayName: { type: "string" },
22
22
  created: CREATED_PROPERTY,
@@ -1 +1 @@
1
- {"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../../tests/collection/auth.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../../tests/collection/auth.test.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@ import { describe, expect, it } from "vitest";
2
2
  import { BaseCollection } from "../../src/collection/base.js";
3
3
  import { Bytes } from "../../src/collection/bytes.js";
4
4
  import { Field } from "../../src/collection/field.js";
5
- const ID_PROPERTY = { type: "string", "x-system": true };
6
- const SEQID_PROPERTY = { type: "integer", "x-kind": "seqId", "x-system": true, "x-hidden": true };
7
- const CREATED_PROPERTY = { type: "string", "x-system": true };
8
- const UPDATED_PROPERTY = { type: "string", "x-system": true };
5
+ const ID_PROPERTY = { type: "string", "x-system": true, "x-generated": true };
6
+ const SEQID_PROPERTY = { type: "integer", "x-kind": "seqId", "x-system": true, "x-hidden": true, "x-generated": true };
7
+ const CREATED_PROPERTY = { type: "string", "x-system": true, "x-generated": true };
8
+ const UPDATED_PROPERTY = { type: "string", "x-system": true, "x-generated": true };
9
9
  describe("BaseCollection", () => {
10
10
  it("full base collection schema matches expected", () => {
11
11
  const Users = BaseCollection.define("users", { email: Field.email() });
@@ -49,22 +49,5 @@ describe("BaseCollection", () => {
49
49
  const Col = BaseCollection.define("simple", { title: Field.text() });
50
50
  expect(Col.schema).not.toHaveProperty("x-indexes");
51
51
  });
52
- it("base collection with rules", () => {
53
- const Users = {
54
- name: "users",
55
- fields: {},
56
- schema: {
57
- "x-collection-kind": "auth",
58
- type: "object",
59
- properties: {}
60
- }
61
- };
62
- const Col = BaseCollection.define("posts", { title: Field.text(), ownerId: Field.text() })
63
- .rules((R) => ({
64
- create: R.field("ownerId").eq(R.authId(Users))
65
- }));
66
- expect(Col.schema["x-rules"]).toBeDefined();
67
- expect(Col.schema["x-rules"].create).toBeDefined();
68
- });
69
52
  });
70
53
  //# sourceMappingURL=base.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.test.js","sourceRoot":"","sources":["../../../tests/collection/base.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.test.js","sourceRoot":"","sources":["../../../tests/collection/base.test.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,31 @@ describe("Field.json", () => {
67
67
  expect(f).toMatchObject({ _tag: "FieldDef", kind: "json" });
68
68
  });
69
69
  });
70
+ describe("Field.literalText", () => {
71
+ it("stores literal values and kind", () => {
72
+ const f = Field.literalText({ literal: ["a", "b"] });
73
+ expect(f).toMatchObject({ _tag: "FieldDef", kind: "literalText", literal: ["a", "b"], _literal: ["a", "b"] });
74
+ });
75
+ it("returns ViewableFieldDef (has .view())", () => {
76
+ const f = Field.literalText({ literal: ["x"] });
77
+ expect(typeof f.view).toBe("function");
78
+ const viewed = f.view();
79
+ expect(viewed.viewOnly).toBe(true);
80
+ });
81
+ it("preserves required: false", () => {
82
+ const f = Field.literalText({ literal: ["a", "b"], required: false });
83
+ expect(f.required).toBe(false);
84
+ });
85
+ it("error callback is preserved", () => {
86
+ const f = Field.literalText({
87
+ literal: ["a", "b"],
88
+ error: (k) => k === "literal" ? "invalid role" : undefined
89
+ });
90
+ expect(typeof f.error).toBe("function");
91
+ expect(f.error("literal")).toBe("invalid role");
92
+ expect(f.error("type")).toBeUndefined();
93
+ });
94
+ });
70
95
  describe("Field.file", () => {
71
96
  it("defaults", () => {
72
97
  const f = Field.file();
@@ -1 +1 @@
1
- {"version":3,"file":"field.test.js","sourceRoot":"","sources":["../../../tests/collection/field.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.test.js","sourceRoot":"","sources":["../../../tests/collection/field.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
+ import { describe, expect, it } from "vitest";
1
2
  import { AuthCollection } from "../../src/collection/auth.js";
2
3
  import { BaseCollection } from "../../src/collection/base.js";
3
4
  import { Field } from "../../src/collection/field.js";
4
- import { describe, expect, it } from "vitest";
5
5
  describe("Index type safety", () => {
6
6
  it("BaseCollection: supports callback pattern", () => {
7
7
  const Col = BaseCollection.define("posts", { title: Field.text() })
@@ -1 +1 @@
1
- {"version":3,"file":"index-type.test.js","sourceRoot":"","sources":["../../../tests/collection/index-type.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;aAChE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAEtC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;aACjE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAEvD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACnF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QACrF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACxF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;aACrE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAEzC,gDAAgD;QAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACrF,iCAAiC;QACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,gEAAgE;QAChE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IACtF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index-type.test.js","sourceRoot":"","sources":["../../../tests/collection/index-type.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAE7C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;aAChE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAEtC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;aACjE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAEvD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACnF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QACrF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACxF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;aACrE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAEzC,gDAAgD;QAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACrF,iCAAiC;QACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,gEAAgE;QAChE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IACtF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}