@better-giving/fundraiser 3.0.32 → 4.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.
package/dist/db.d.mts CHANGED
@@ -14,15 +14,15 @@ export declare class FundDb extends Db {
14
14
  readonly banner: string;
15
15
  readonly logo: string;
16
16
  readonly members: number[];
17
- readonly videos: string[];
18
17
  readonly featured: boolean;
19
- readonly target: string;
20
- readonly npo_owner: number;
21
18
  readonly expiration?: string | undefined;
19
+ readonly target: string;
20
+ readonly videos: string[];
22
21
  readonly increments?: {
23
22
  value: string;
24
23
  label: string;
25
24
  }[] | undefined;
25
+ readonly npo_owner: number;
26
26
  readonly slug?: string | undefined;
27
27
  readonly id: string;
28
28
  readonly env: import("@better-giving/schemas").Environment;
@@ -40,6 +40,7 @@ export declare class FundDb extends Db {
40
40
  fund(id: string): Promise<IFund | undefined>;
41
41
  funds_get(ids: string[]): Promise<IFund[]>;
42
42
  fund_update(id: string, { target, slug, ...update }: IFundUpdate): Promise<Record<string, any>>;
43
+ fund_contrib_update_txi(id: string, amount: number): TxType["Update"];
43
44
  fund_close(fund: string): Promise<import("@aws-sdk/lib-dynamodb").UpdateCommandOutput>;
44
45
  }
45
46
  export interface IFundDb extends ReturnType<FundDb["fund_record"]> {
package/dist/db.mjs CHANGED
@@ -80,6 +80,20 @@ export class FundDb extends Db {
80
80
  });
81
81
  return this.client.send(command).then((res) => res.Attributes ?? {});
82
82
  }
83
+ fund_contrib_update_txi(id, amount) {
84
+ return {
85
+ TableName: FundDb.table,
86
+ Key: this.key_fund(id),
87
+ UpdateExpression: "SET #x = if_not_exists(#x, :zero) + :inc",
88
+ ExpressionAttributeValues: {
89
+ ":inc": amount,
90
+ ":zero": 0,
91
+ },
92
+ ExpressionAttributeNames: {
93
+ "#x": "donation_total_usd",
94
+ },
95
+ };
96
+ }
83
97
  async fund_close(fund) {
84
98
  const updates = new UpdateBuilder();
85
99
  updates.set("active", false);
package/dist/schema.d.mts CHANGED
@@ -1,25 +1,25 @@
1
1
  import { type InferOutput } from "valibot";
2
2
  export { type DonateMethodId, slug } from "@better-giving/schemas";
3
3
  export type { Environment } from "@better-giving/types/list";
4
- export declare const fund_id: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UuidAction<string, undefined>]>;
4
+ export declare const fund_id: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UuidAction<string, undefined>]>;
5
5
  /**
6
6
  * when fundraiser is created in the context of an NPO, all members of that NPO can edit the fundraiser
7
7
  * 0 - none
8
8
  */
9
- export declare const npo_owner: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>]>;
9
+ export declare const npo_owner: import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>]>;
10
10
  export declare const fund_new: import("valibot").ObjectSchema<{
11
- readonly name: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
12
- readonly description: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
13
- readonly banner: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
14
- readonly logo: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
11
+ readonly name: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
12
+ readonly description: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
13
+ readonly banner: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
14
+ readonly logo: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
15
15
  /** endowment ids */
16
- readonly members: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>, undefined>, import("valibot").NonEmptyAction<number[], undefined>, import("valibot").MaxLengthAction<number[], 10, undefined>]>;
16
+ readonly members: import("valibot").SchemaWithPipe<readonly [import("valibot").ArraySchema<import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>, undefined>, import("valibot").NonEmptyAction<number[], undefined>, import("valibot").MaxLengthAction<number[], 10, undefined>]>;
17
17
  readonly featured: import("valibot").BooleanSchema<undefined>;
18
- readonly expiration: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, "invalid date">, import("valibot").MinValueAction<string, string, undefined>]>, never>;
18
+ readonly expiration: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, "invalid date">, import("valibot").MinValueAction<string, string, undefined>]>, undefined>;
19
19
  /** `"0"` - none, {"number"} = fixed */
20
20
  readonly target: import("valibot").UnionSchema<[import("valibot").LiteralSchema<"smart", undefined>, import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TransformAction<string, number>, import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, undefined>, import("valibot").TransformAction<number, string>]>], undefined>;
21
- readonly videos: import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>;
22
- readonly increments: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").ObjectSchema<{
21
+ readonly videos: import("valibot").ArraySchema<import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>;
22
+ readonly increments: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").ArraySchema<import("valibot").ObjectSchema<{
23
23
  readonly value: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, import("valibot").TransformAction<string, number>, import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, "must be > 0">]>, import("valibot").TransformAction<number, string>]>, import("valibot").TransformAction<string, string>]>;
24
24
  readonly label: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 60, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 60>) => string>]>;
25
25
  }, undefined>, undefined>, import("valibot").MaxLengthAction<{
@@ -28,23 +28,23 @@ export declare const fund_new: import("valibot").ObjectSchema<{
28
28
  }[], 4, ({ requirement }: import("valibot").MaxLengthIssue<{
29
29
  value: string;
30
30
  label: string;
31
- }[], 4>) => string>]>, never>;
32
- readonly npo_owner: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>]>;
33
- readonly slug: import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 30, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 30>) => string>, import("valibot").RegexAction<string, "should not be an id">, import("valibot").RegexAction<string, "allowed: numbers | letters | - | . | _ | ~">, import("valibot").ExcludesAction<string, "..", "should not contain double periods">, import("valibot").CustomSchema<string, "should not start with dot">, import("valibot").CustomSchema<string, "should not end with dot">]>>, never>;
31
+ }[], 4>) => string>]>, undefined>;
32
+ readonly npo_owner: import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>]>;
33
+ readonly slug: import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 30, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 30>) => string>, import("valibot").RegexAction<string, "should not be an id">, import("valibot").RegexAction<string, "allowed: numbers | letters | - | . | _ | ~">, import("valibot").ExcludesAction<string, "..", "should not contain double periods">, import("valibot").CustomSchema<string, "should not start with dot">, import("valibot").CustomSchema<string, "should not end with dot">]>>, undefined>;
34
34
  }, undefined>;
35
35
  export declare const fund_update: Omit<Omit<import("valibot").ObjectSchema<{
36
- readonly name: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
37
- readonly description: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
38
- readonly banner: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
39
- readonly logo: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
36
+ readonly name: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
37
+ readonly description: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
38
+ readonly banner: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
39
+ readonly logo: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
40
40
  /** endowment ids */
41
- readonly members: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>, undefined>, import("valibot").NonEmptyAction<number[], undefined>, import("valibot").MaxLengthAction<number[], 10, undefined>]>;
41
+ readonly members: import("valibot").SchemaWithPipe<readonly [import("valibot").ArraySchema<import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>, undefined>, import("valibot").NonEmptyAction<number[], undefined>, import("valibot").MaxLengthAction<number[], 10, undefined>]>;
42
42
  readonly featured: import("valibot").BooleanSchema<undefined>;
43
- readonly expiration: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, "invalid date">, import("valibot").MinValueAction<string, string, undefined>]>, never>;
43
+ readonly expiration: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, "invalid date">, import("valibot").MinValueAction<string, string, undefined>]>, undefined>;
44
44
  /** `"0"` - none, {"number"} = fixed */
45
45
  readonly target: import("valibot").UnionSchema<[import("valibot").LiteralSchema<"smart", undefined>, import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TransformAction<string, number>, import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, undefined>, import("valibot").TransformAction<number, string>]>], undefined>;
46
- readonly videos: import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>;
47
- readonly increments: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").ObjectSchema<{
46
+ readonly videos: import("valibot").ArraySchema<import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>;
47
+ readonly increments: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").ArraySchema<import("valibot").ObjectSchema<{
48
48
  readonly value: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, import("valibot").TransformAction<string, number>, import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, "must be > 0">]>, import("valibot").TransformAction<number, string>]>, import("valibot").TransformAction<string, string>]>;
49
49
  readonly label: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 60, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 60>) => string>]>;
50
50
  }, undefined>, undefined>, import("valibot").MaxLengthAction<{
@@ -53,23 +53,23 @@ export declare const fund_update: Omit<Omit<import("valibot").ObjectSchema<{
53
53
  }[], 4, ({ requirement }: import("valibot").MaxLengthIssue<{
54
54
  value: string;
55
55
  label: string;
56
- }[], 4>) => string>]>, never>;
57
- readonly npo_owner: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>]>;
58
- readonly slug: import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 30, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 30>) => string>, import("valibot").RegexAction<string, "should not be an id">, import("valibot").RegexAction<string, "allowed: numbers | letters | - | . | _ | ~">, import("valibot").ExcludesAction<string, "..", "should not contain double periods">, import("valibot").CustomSchema<string, "should not start with dot">, import("valibot").CustomSchema<string, "should not end with dot">]>>, never>;
59
- }, undefined>, "_types" | "_run" | "entries"> & {
56
+ }[], 4>) => string>]>, undefined>;
57
+ readonly npo_owner: import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>]>;
58
+ readonly slug: import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 30, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 30>) => string>, import("valibot").RegexAction<string, "should not be an id">, import("valibot").RegexAction<string, "allowed: numbers | letters | - | . | _ | ~">, import("valibot").ExcludesAction<string, "..", "should not contain double periods">, import("valibot").CustomSchema<string, "should not start with dot">, import("valibot").CustomSchema<string, "should not end with dot">]>>, undefined>;
59
+ }, undefined>, "~types" | "~run" | "~standard" | "entries"> & {
60
60
  readonly entries: Pick<{
61
- readonly name: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
62
- readonly description: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
63
- readonly banner: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
64
- readonly logo: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
61
+ readonly name: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
62
+ readonly description: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
63
+ readonly banner: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
64
+ readonly logo: import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
65
65
  /** endowment ids */
66
- readonly members: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>, undefined>, import("valibot").NonEmptyAction<number[], undefined>, import("valibot").MaxLengthAction<number[], 10, undefined>]>;
66
+ readonly members: import("valibot").SchemaWithPipe<readonly [import("valibot").ArraySchema<import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>, undefined>, import("valibot").NonEmptyAction<number[], undefined>, import("valibot").MaxLengthAction<number[], 10, undefined>]>;
67
67
  readonly featured: import("valibot").BooleanSchema<undefined>;
68
- readonly expiration: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, "invalid date">, import("valibot").MinValueAction<string, string, undefined>]>, never>;
68
+ readonly expiration: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, "invalid date">, import("valibot").MinValueAction<string, string, undefined>]>, undefined>;
69
69
  /** `"0"` - none, {"number"} = fixed */
70
70
  readonly target: import("valibot").UnionSchema<[import("valibot").LiteralSchema<"smart", undefined>, import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TransformAction<string, number>, import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, undefined>, import("valibot").TransformAction<number, string>]>], undefined>;
71
- readonly videos: import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>;
72
- readonly increments: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").ObjectSchema<{
71
+ readonly videos: import("valibot").ArraySchema<import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>;
72
+ readonly increments: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").ArraySchema<import("valibot").ObjectSchema<{
73
73
  readonly value: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, import("valibot").TransformAction<string, number>, import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, "must be > 0">]>, import("valibot").TransformAction<number, string>]>, import("valibot").TransformAction<string, string>]>;
74
74
  readonly label: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 60, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 60>) => string>]>;
75
75
  }, undefined>, undefined>, import("valibot").MaxLengthAction<{
@@ -78,44 +78,68 @@ export declare const fund_update: Omit<Omit<import("valibot").ObjectSchema<{
78
78
  }[], 4, ({ requirement }: import("valibot").MaxLengthIssue<{
79
79
  value: string;
80
80
  label: string;
81
- }[], 4>) => string>]>, never>;
82
- readonly npo_owner: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>]>;
83
- readonly slug: import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 30, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 30>) => string>, import("valibot").RegexAction<string, "should not be an id">, import("valibot").RegexAction<string, "allowed: numbers | letters | - | . | _ | ~">, import("valibot").ExcludesAction<string, "..", "should not contain double periods">, import("valibot").CustomSchema<string, "should not start with dot">, import("valibot").CustomSchema<string, "should not end with dot">]>>, never>;
81
+ }[], 4>) => string>]>, undefined>;
82
+ readonly npo_owner: import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>]>;
83
+ readonly slug: import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 30, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 30>) => string>, import("valibot").RegexAction<string, "should not be an id">, import("valibot").RegexAction<string, "allowed: numbers | letters | - | . | _ | ~">, import("valibot").ExcludesAction<string, "..", "should not contain double periods">, import("valibot").CustomSchema<string, "should not start with dot">, import("valibot").CustomSchema<string, "should not end with dot">]>>, undefined>;
84
84
  }, "name" | "description" | "banner" | "logo" | "videos" | "increments" | "slug" | "featured" | "target">;
85
- _run(dataset: import("valibot").Dataset<unknown, never>, config: import("valibot").Config<import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").MinValueIssue<number, 0> | import("valibot").NonEmptyIssue<string> | import("valibot").UrlIssue<string> | import("valibot").ArrayIssue | import("valibot").BooleanIssue | import("valibot").LiteralIssue | import("valibot").UnionIssue<import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").MinValueIssue<number, 0> | import("valibot").LiteralIssue> | import("valibot").ObjectIssue | import("valibot").MaxLengthIssue<string, 60> | import("valibot").MaxLengthIssue<{
86
- value: string;
87
- label: string;
88
- }[], 4> | import("valibot").CustomIssue | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, "..">>): import("valibot").Dataset<{
85
+ readonly "~standard": import("valibot").StandardProps<{
89
86
  name: string;
90
87
  description: string;
91
88
  banner: string;
92
89
  logo: string;
93
90
  videos: string[];
91
+ increments?: {
92
+ value: string;
93
+ label: string;
94
+ }[] | undefined;
95
+ slug?: string | undefined;
96
+ featured: boolean;
97
+ target: string;
98
+ }, {
99
+ name: string;
100
+ description: string;
101
+ banner: string;
102
+ logo: string;
103
+ videos: string[];
104
+ increments?: {
105
+ value: string;
106
+ label: string;
107
+ }[] | undefined;
108
+ slug?: string | undefined;
94
109
  featured: boolean;
95
110
  target: string;
111
+ }>;
112
+ readonly "~run": (dataset: import("valibot").UnknownDataset, config: import("valibot").Config<import("valibot").BaseIssue<unknown>>) => import("valibot").OutputDataset<{
113
+ name: string;
114
+ description: string;
115
+ banner: string;
116
+ logo: string;
117
+ videos: string[];
96
118
  increments?: {
97
119
  value: string;
98
120
  label: string;
99
121
  }[] | undefined;
100
122
  slug?: string | undefined;
123
+ featured: boolean;
124
+ target: string;
101
125
  }, import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").MinValueIssue<number, 0> | import("valibot").NonEmptyIssue<string> | import("valibot").UrlIssue<string> | import("valibot").ArrayIssue | import("valibot").BooleanIssue | import("valibot").LiteralIssue | import("valibot").UnionIssue<import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").MinValueIssue<number, 0> | import("valibot").LiteralIssue> | import("valibot").ObjectIssue | import("valibot").MaxLengthIssue<string, 60> | import("valibot").MaxLengthIssue<{
102
126
  value: string;
103
127
  label: string;
104
128
  }[], 4> | import("valibot").CustomIssue | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, "..">>;
105
- readonly _types?: {
129
+ readonly "~types"?: {
106
130
  readonly input: {
107
131
  name: string;
108
132
  description: string;
109
133
  banner: string;
110
134
  logo: string;
111
135
  videos: string[];
112
- featured: boolean;
113
- target: string;
114
136
  increments?: {
115
137
  value: string;
116
138
  label: string;
117
139
  }[] | undefined;
118
140
  slug?: string | undefined;
141
+ featured: boolean;
142
+ target: string;
119
143
  };
120
144
  readonly output: {
121
145
  name: string;
@@ -123,27 +147,27 @@ export declare const fund_update: Omit<Omit<import("valibot").ObjectSchema<{
123
147
  banner: string;
124
148
  logo: string;
125
149
  videos: string[];
126
- featured: boolean;
127
- target: string;
128
150
  increments?: {
129
151
  value: string;
130
152
  label: string;
131
153
  }[] | undefined;
132
154
  slug?: string | undefined;
155
+ featured: boolean;
156
+ target: string;
133
157
  };
134
158
  readonly issue: import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").MinValueIssue<number, 0> | import("valibot").NonEmptyIssue<string> | import("valibot").UrlIssue<string> | import("valibot").ArrayIssue | import("valibot").BooleanIssue | import("valibot").LiteralIssue | import("valibot").UnionIssue<import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").MinValueIssue<number, 0> | import("valibot").LiteralIssue> | import("valibot").ObjectIssue | import("valibot").MaxLengthIssue<string, 60> | import("valibot").MaxLengthIssue<{
135
159
  value: string;
136
160
  label: string;
137
161
  }[], 4> | import("valibot").CustomIssue | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, "..">;
138
162
  } | undefined;
139
- }, "_types" | "_run" | "entries"> & {
163
+ }, "~types" | "~run" | "~standard" | "entries"> & {
140
164
  readonly entries: {
141
- readonly name: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, never>;
142
- readonly description: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, never>;
143
- readonly banner: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
144
- readonly logo: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
145
- readonly videos: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>, never>;
146
- readonly increments: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").ObjectSchema<{
165
+ readonly name: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, undefined>;
166
+ readonly description: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, undefined>;
167
+ readonly banner: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>;
168
+ readonly logo: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>;
169
+ readonly videos: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>, undefined>;
170
+ readonly increments: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").ArraySchema<import("valibot").ObjectSchema<{
147
171
  readonly value: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, import("valibot").TransformAction<string, number>, import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, "must be > 0">]>, import("valibot").TransformAction<number, string>]>, import("valibot").TransformAction<string, string>]>;
148
172
  readonly label: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 60, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 60>) => string>]>;
149
173
  }, undefined>, undefined>, import("valibot").MaxLengthAction<{
@@ -152,15 +176,39 @@ export declare const fund_update: Omit<Omit<import("valibot").ObjectSchema<{
152
176
  }[], 4, ({ requirement }: import("valibot").MaxLengthIssue<{
153
177
  value: string;
154
178
  label: string;
155
- }[], 4>) => string>]>, never>, never>;
156
- readonly slug: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 30, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 30>) => string>, import("valibot").RegexAction<string, "should not be an id">, import("valibot").RegexAction<string, "allowed: numbers | letters | - | . | _ | ~">, import("valibot").ExcludesAction<string, "..", "should not contain double periods">, import("valibot").CustomSchema<string, "should not start with dot">, import("valibot").CustomSchema<string, "should not end with dot">]>>, never>, never>;
157
- readonly featured: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
158
- readonly target: import("valibot").OptionalSchema<import("valibot").UnionSchema<[import("valibot").LiteralSchema<"smart", undefined>, import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TransformAction<string, number>, import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, undefined>, import("valibot").TransformAction<number, string>]>], undefined>, never>;
179
+ }[], 4>) => string>]>, undefined>, undefined>;
180
+ readonly slug: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 30, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 30>) => string>, import("valibot").RegexAction<string, "should not be an id">, import("valibot").RegexAction<string, "allowed: numbers | letters | - | . | _ | ~">, import("valibot").ExcludesAction<string, "..", "should not contain double periods">, import("valibot").CustomSchema<string, "should not start with dot">, import("valibot").CustomSchema<string, "should not end with dot">]>>, undefined>, undefined>;
181
+ readonly featured: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
182
+ readonly target: import("valibot").OptionalSchema<import("valibot").UnionSchema<[import("valibot").LiteralSchema<"smart", undefined>, import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TransformAction<string, number>, import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, undefined>, import("valibot").TransformAction<number, string>]>], undefined>, undefined>;
159
183
  };
160
- _run(dataset: import("valibot").Dataset<unknown, never>, config: import("valibot").Config<import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").MinValueIssue<number, 0> | import("valibot").NonEmptyIssue<string> | import("valibot").UrlIssue<string> | import("valibot").ArrayIssue | import("valibot").BooleanIssue | import("valibot").LiteralIssue | import("valibot").UnionIssue<import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").MinValueIssue<number, 0> | import("valibot").LiteralIssue> | import("valibot").ObjectIssue | import("valibot").MaxLengthIssue<string, 60> | import("valibot").MaxLengthIssue<{
161
- value: string;
162
- label: string;
163
- }[], 4> | import("valibot").CustomIssue | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, "..">>): import("valibot").Dataset<{
184
+ readonly "~standard": import("valibot").StandardProps<{
185
+ name?: string | undefined;
186
+ description?: string | undefined;
187
+ banner?: string | undefined;
188
+ logo?: string | undefined;
189
+ videos?: string[] | undefined;
190
+ increments?: {
191
+ value: string;
192
+ label: string;
193
+ }[] | undefined;
194
+ slug?: string | undefined;
195
+ featured?: boolean | undefined;
196
+ target?: string | undefined;
197
+ }, {
198
+ name?: string | undefined;
199
+ description?: string | undefined;
200
+ banner?: string | undefined;
201
+ logo?: string | undefined;
202
+ videos?: string[] | undefined;
203
+ increments?: {
204
+ value: string;
205
+ label: string;
206
+ }[] | undefined;
207
+ slug?: string | undefined;
208
+ featured?: boolean | undefined;
209
+ target?: string | undefined;
210
+ }>;
211
+ readonly "~run": (dataset: import("valibot").UnknownDataset, config: import("valibot").Config<import("valibot").BaseIssue<unknown>>) => import("valibot").OutputDataset<{
164
212
  name?: string | undefined;
165
213
  description?: string | undefined;
166
214
  banner?: string | undefined;
@@ -177,7 +225,7 @@ export declare const fund_update: Omit<Omit<import("valibot").ObjectSchema<{
177
225
  value: string;
178
226
  label: string;
179
227
  }[], 4> | import("valibot").CustomIssue | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, "..">>;
180
- readonly _types?: {
228
+ readonly "~types"?: {
181
229
  readonly input: {
182
230
  name?: string | undefined;
183
231
  description?: string | undefined;
@@ -214,12 +262,12 @@ export declare const fund_update: Omit<Omit<import("valibot").ObjectSchema<{
214
262
  };
215
263
  export declare const funds_search: import("valibot").ObjectSchema<{
216
264
  /** search text */
217
- readonly query: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, never>;
265
+ readonly query: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, undefined>;
218
266
  /** input str: from url */
219
- readonly page: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").TransformAction<string, number>, import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>]>, never>;
267
+ readonly page: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").TransformAction<string, number>, import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>]>, undefined>;
220
268
  }, undefined>;
221
269
  export declare const funds_npo_memberof_search: import("valibot").ObjectSchema<{
222
- readonly npo_profile_featured: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").TransformAction<string, boolean>, import("valibot").BooleanSchema<undefined>]>, never>;
270
+ readonly npo_profile_featured: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").TransformAction<string, boolean>, import("valibot").BooleanSchema<undefined>]>, undefined>;
223
271
  }, undefined>;
224
272
  export interface IFundNew extends InferOutput<typeof fund_new> {
225
273
  }
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@better-giving/fundraiser",
3
- "version": "3.0.32",
3
+ "version": "4.0.0",
4
4
  "peerDependencies": {
5
- "valibot": "0.42.0",
6
- "@better-giving/schemas": "2.0.4",
5
+ "valibot": "1.2.0",
6
+ "@better-giving/schemas": "2.1.0",
7
7
  "@better-giving/types": "1.1.8",
8
8
  "@better-giving/db": "2.0.7",
9
9
  "@aws-sdk/lib-dynamodb": "3.485.0"
package/src/db.mts CHANGED
@@ -96,6 +96,21 @@ export class FundDb extends Db {
96
96
  return this.client.send(command).then((res) => res.Attributes ?? {});
97
97
  }
98
98
 
99
+ fund_contrib_update_txi(id: string, amount: number): TxType["Update"] {
100
+ return {
101
+ TableName: FundDb.table,
102
+ Key: this.key_fund(id),
103
+ UpdateExpression: "SET #x = if_not_exists(#x, :zero) + :inc",
104
+ ExpressionAttributeValues: {
105
+ ":inc": amount,
106
+ ":zero": 0,
107
+ },
108
+ ExpressionAttributeNames: {
109
+ "#x": "donation_total_usd" satisfies keyof IFund,
110
+ },
111
+ };
112
+ }
113
+
99
114
  async fund_close(fund: string) {
100
115
  const updates = new UpdateBuilder();
101
116
  updates.set("active", false);
@@ -1,19 +0,0 @@
1
- import type { ToDoc, ToHitFields, ToUpdate } from "@better-giving/types/cloudsearch";
2
- import type { IFundInternal } from "./interfaces.mjs";
3
- import type { IFundNew } from "./schema.mjs";
4
- export interface CloudsearchFund extends Pick<IFundNew, "name" | "description" | "logo" | "banner" | "featured" | "members" | "target">, Pick<IFundInternal, "id" | "env" | "active" | "verified" | "donation_total_usd" | "creator_id" | "creator_name"> {
5
- /** iso | "9999-12-31T23:59:59Z" year 9999 */
6
- expiration: string;
7
- }
8
- /** uuidv4 */
9
- type DocId = string;
10
- type FundDoc = {
11
- documentId: DocId;
12
- _score: number;
13
- } & ToDoc<CloudsearchFund>;
14
- export type HitFields = ToHitFields<Omit<FundDoc, "documentId" | "_score">>;
15
- export type Update = ToUpdate<DocId, CloudsearchFund & {
16
- /** not returned - query: endow only member */
17
- members_csv: string;
18
- }>;
19
- export {};
@@ -1 +0,0 @@
1
- export {};