@better-giving/fundraiser 3.0.22 → 3.0.24

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/index.d.mts CHANGED
@@ -1,9 +1,3 @@
1
- import type { IPageNumbered } from "@better-giving/types/api";
2
- import type { CloudsearchFund } from "./cloudsearch.mjs";
3
- export type { CloudsearchFund as FundItem } from "./cloudsearch.mjs";
4
1
  export type { IFundNew, IFundUpdate, IFundsNpoMemberOfSearchObj, IFundsSearchObj, DonateMethodId, Environment, } from "./schema.mjs";
5
- export { MAX_EXPIRATION } from "./schema.mjs";
6
2
  export type * from "./interfaces.mjs";
7
3
  export { FundDb } from "./db.mjs";
8
- export interface IFundsPage extends IPageNumbered<CloudsearchFund> {
9
- }
package/dist/index.mjs CHANGED
@@ -1,2 +1 @@
1
- export { MAX_EXPIRATION } from "./schema.mjs";
2
1
  export { FundDb } from "./db.mjs";
@@ -1,5 +1,6 @@
1
1
  import type { DonateMethodId, Environment } from "@better-giving/schemas";
2
2
  import type { IFundNew } from "./schema.mjs";
3
+ import type { IPageNumbered } from "@better-giving/types/api";
3
4
  export interface IFundSettings {
4
5
  hide_bg_tip: boolean;
5
6
  donateMethods?: DonateMethodId[];
@@ -22,3 +23,10 @@ export interface IFundInternal extends IFundCreator {
22
23
  }
23
24
  export interface IFund extends IFundNew, IFundInternal {
24
25
  }
26
+ export interface IFundItem extends Pick<IFundNew, "name" | "description" | "logo" | "banner" | "featured" | "members" | "target">, Pick<IFundInternal, "env" | "active" | "verified" | "donation_total_usd" | "creator_id" | "creator_name"> {
27
+ /** Unix timestamp @default - 253402300799 */
28
+ expiration: number;
29
+ members_csv: string;
30
+ }
31
+ export interface IFundsPage extends IPageNumbered<IFundItem> {
32
+ }
package/dist/schema.d.mts CHANGED
@@ -1,56 +1,56 @@
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<undefined>, import("valibot").TrimAction]>, import("valibot").UuidAction<string, undefined>]>;
4
+ export declare const fund_id: import("valibot").SchemaWithPipe<[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
9
  export declare const npo_owner: import("valibot").SchemaWithPipe<[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<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
12
- readonly description: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
13
- readonly banner: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
14
- readonly logo: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
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>]>;
15
15
  /** endowment ids */
16
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>]>;
17
17
  readonly featured: import("valibot").BooleanSchema<undefined>;
18
- readonly expiration: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, 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<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, "invalid date">, import("valibot").MinValueAction<string, string, undefined>]>, never>;
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<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, 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
22
  readonly npo_owner: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>]>;
23
- readonly slug: import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, 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>;
23
+ 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>;
24
24
  }, undefined>;
25
25
  export declare const fund_update: Omit<Omit<import("valibot").ObjectSchema<{
26
- readonly name: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
27
- readonly description: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
28
- readonly banner: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
29
- readonly logo: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
26
+ readonly name: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
27
+ readonly description: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
28
+ readonly banner: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
29
+ readonly logo: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
30
30
  /** endowment ids */
31
31
  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>]>;
32
32
  readonly featured: import("valibot").BooleanSchema<undefined>;
33
- readonly expiration: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, "invalid date">, import("valibot").MinValueAction<string, string, undefined>]>, never>;
33
+ 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>;
34
34
  /** `"0"` - none, {"number"} = fixed */
35
35
  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>;
36
- readonly videos: import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>;
36
+ readonly videos: import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>;
37
37
  readonly npo_owner: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>]>;
38
- readonly slug: import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, 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>;
38
+ 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>;
39
39
  }, undefined>, "_types" | "_run" | "entries"> & {
40
40
  readonly entries: Pick<{
41
- readonly name: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
42
- readonly description: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
43
- readonly banner: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
44
- readonly logo: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
41
+ readonly name: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
42
+ readonly description: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
43
+ readonly banner: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
44
+ readonly logo: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
45
45
  /** endowment ids */
46
46
  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>]>;
47
47
  readonly featured: import("valibot").BooleanSchema<undefined>;
48
- readonly expiration: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, "invalid date">, import("valibot").MinValueAction<string, string, undefined>]>, never>;
48
+ 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>;
49
49
  /** `"0"` - none, {"number"} = fixed */
50
50
  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>;
51
- readonly videos: import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>;
51
+ readonly videos: import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>;
52
52
  readonly npo_owner: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>]>;
53
- readonly slug: import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, 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>;
53
+ 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>;
54
54
  }, "name" | "description" | "banner" | "logo" | "target" | "videos" | "slug" | "featured">;
55
55
  _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").CustomIssue | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").ObjectIssue>): import("valibot").Dataset<{
56
56
  name: string;
@@ -87,13 +87,13 @@ export declare const fund_update: Omit<Omit<import("valibot").ObjectSchema<{
87
87
  } | undefined;
88
88
  }, "_types" | "_run" | "entries"> & {
89
89
  readonly entries: {
90
- readonly name: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, never>;
91
- readonly description: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, never>;
92
- readonly banner: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
93
- readonly logo: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
90
+ readonly name: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, never>;
91
+ readonly description: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, never>;
92
+ readonly banner: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
93
+ readonly logo: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
94
94
  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>;
95
- readonly videos: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, undefined>, never>;
96
- readonly slug: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, 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>;
95
+ 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>;
96
+ 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>;
97
97
  readonly featured: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
98
98
  };
99
99
  _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").CustomIssue | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").ObjectIssue>): import("valibot").Dataset<{
@@ -132,12 +132,12 @@ export declare const fund_update: Omit<Omit<import("valibot").ObjectSchema<{
132
132
  };
133
133
  export declare const funds_search: import("valibot").ObjectSchema<{
134
134
  /** search text */
135
- readonly query: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, never>;
135
+ readonly query: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<"required">, import("valibot").TrimAction]>, never>;
136
136
  /** input str: from url */
137
- readonly page: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, 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>;
137
+ 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>;
138
138
  }, undefined>;
139
139
  export declare const funds_npo_memberof_search: import("valibot").ObjectSchema<{
140
- readonly npo_profile_featured: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").TransformAction<string, boolean>, import("valibot").BooleanSchema<undefined>]>, never>;
140
+ 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>;
141
141
  }, undefined>;
142
142
  export interface IFundNew extends InferOutput<typeof fund_new> {
143
143
  }
@@ -147,4 +147,4 @@ export interface IFundsSearchObj extends InferOutput<typeof funds_search> {
147
147
  }
148
148
  export interface IFundsNpoMemberOfSearchObj extends InferOutput<typeof funds_npo_memberof_search> {
149
149
  }
150
- export declare const MAX_EXPIRATION = "9999-12-31T23:59:59Z";
150
+ export declare const MAX_EXPIRATION = 253402300799;
package/dist/schema.mjs CHANGED
@@ -53,4 +53,4 @@ export const funds_npo_memberof_search = object({
53
53
  */
54
54
  npo_profile_featured: optional(pipe($, transform((x) => x === "true"), boolean())),
55
55
  });
56
- export const MAX_EXPIRATION = "9999-12-31T23:59:59Z";
56
+ export const MAX_EXPIRATION = 253402300799;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@better-giving/fundraiser",
3
- "version": "3.0.22",
3
+ "version": "3.0.24",
4
4
  "peerDependencies": {
5
5
  "valibot": "0.42.0",
6
6
  "@better-giving/schemas": "2.0.1",
package/src/index.mts CHANGED
@@ -1,7 +1,3 @@
1
- import type { IPageNumbered } from "@better-giving/types/api";
2
- import type { CloudsearchFund } from "./cloudsearch.mjs";
3
-
4
- export type { CloudsearchFund as FundItem } from "./cloudsearch.mjs";
5
1
  export type {
6
2
  IFundNew,
7
3
  IFundUpdate,
@@ -10,8 +6,5 @@ export type {
10
6
  DonateMethodId,
11
7
  Environment,
12
8
  } from "./schema.mjs";
13
- export { MAX_EXPIRATION } from "./schema.mjs";
14
9
  export type * from "./interfaces.mjs";
15
10
  export { FundDb } from "./db.mjs";
16
-
17
- export interface IFundsPage extends IPageNumbered<CloudsearchFund> {}
@@ -1,5 +1,6 @@
1
1
  import type { DonateMethodId, Environment } from "@better-giving/schemas";
2
2
  import type { IFundNew } from "./schema.mjs";
3
+ import type { IPageNumbered } from "@better-giving/types/api";
3
4
 
4
5
  export interface IFundSettings {
5
6
  hide_bg_tip: boolean;
@@ -25,3 +26,30 @@ export interface IFundInternal extends IFundCreator {
25
26
  }
26
27
 
27
28
  export interface IFund extends IFundNew, IFundInternal {}
29
+
30
+ export interface IFundItem
31
+ extends Pick<
32
+ IFundNew,
33
+ | "name"
34
+ | "description"
35
+ | "logo"
36
+ | "banner"
37
+ | "featured"
38
+ | "members"
39
+ | "target"
40
+ >,
41
+ Pick<
42
+ IFundInternal,
43
+ | "env"
44
+ | "active"
45
+ | "verified"
46
+ | "donation_total_usd"
47
+ | "creator_id"
48
+ | "creator_name"
49
+ > {
50
+ /** Unix timestamp @default - 253402300799 */
51
+ expiration: number;
52
+ members_csv: string;
53
+ }
54
+
55
+ export interface IFundsPage extends IPageNumbered<IFundItem> {}
package/src/schema.mts CHANGED
@@ -111,4 +111,4 @@ export interface IFundsSearchObj extends InferOutput<typeof funds_search> {}
111
111
  export interface IFundsNpoMemberOfSearchObj
112
112
  extends InferOutput<typeof funds_npo_memberof_search> {}
113
113
 
114
- export const MAX_EXPIRATION = "9999-12-31T23:59:59Z";
114
+ export const MAX_EXPIRATION = 253402300799;
@@ -1,49 +0,0 @@
1
- import type {
2
- ToDoc,
3
- ToHitFields,
4
- ToUpdate,
5
- } from "@better-giving/types/cloudsearch";
6
- import type { IFundInternal } from "./interfaces.mjs";
7
- import type { IFundNew } from "./schema.mjs";
8
-
9
- export interface CloudsearchFund
10
- extends Pick<
11
- IFundNew,
12
- | "name"
13
- | "description"
14
- | "logo"
15
- | "banner"
16
- | "featured"
17
- | "members"
18
- | "target"
19
- >,
20
- Pick<
21
- IFundInternal,
22
- | "id"
23
- | "env"
24
- | "active"
25
- | "verified"
26
- | "donation_total_usd"
27
- | "creator_id"
28
- | "creator_name"
29
- > {
30
- /** iso | "9999-12-31T23:59:59Z" year 9999 */
31
- expiration: string;
32
- }
33
-
34
- /** uuidv4 */
35
- type DocId = string;
36
- type FundDoc = {
37
- documentId: DocId;
38
- _score: number;
39
- } & ToDoc<CloudsearchFund>;
40
-
41
- export type HitFields = ToHitFields<Omit<FundDoc, "documentId" | "_score">>;
42
-
43
- export type Update = ToUpdate<
44
- DocId,
45
- CloudsearchFund & {
46
- /** not returned - query: endow only member */
47
- members_csv: string;
48
- }
49
- >;