@better-giving/endowment 1.0.19 → 1.0.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.
@@ -1,14 +1,47 @@
1
1
  import type { ToDoc, ToHitFields, ToUpdate } from "@better-giving/types/cloudsearch";
2
- import type { Endow, Environment } from "./db.mjs";
3
- export type Fields = Pick<Endow.DbRecord, "card_img" | "name" | "tagline" | "hq_country" | "sdgs" | "active_in_countries" | "endow_designation" | "registration_number" | "kyc_donors_only" | "claimed" | "env" | "id" | "published" | "fund_opt_in"> & {
4
- contributions_total: number;
5
- contributions_count: number;
6
- };
2
+ import { type Environment } from "./schema.mjs";
3
+ import { type InferOutput, type InferInput } from "valibot";
4
+ export declare const cloudsearchEndowFields: import("valibot").ObjectSchema<{
5
+ readonly contributions_total: import("valibot").NumberSchema<undefined>;
6
+ readonly contributions_count: import("valibot").NumberSchema<undefined>;
7
+ }, undefined>;
8
+ export declare const cloudsearchEndow: import("valibot").ObjectSchema<{
9
+ readonly contributions_total: import("valibot").NumberSchema<undefined>;
10
+ readonly contributions_count: import("valibot").NumberSchema<undefined>;
11
+ readonly name: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
12
+ readonly tagline: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 140, undefined>]>, never>;
13
+ readonly card_img: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
14
+ readonly hq_country: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
15
+ readonly active_in_countries: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, undefined>, import("valibot").NonEmptyAction<string[], "required">]>;
16
+ readonly sdgs: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>, import("valibot").MinLengthAction<(2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1, undefined>]>;
17
+ readonly published: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
18
+ readonly fund_opt_in: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
19
+ readonly claimed: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
20
+ readonly kyc_donors_only: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
21
+ readonly id: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>;
22
+ readonly env: import("valibot").PicklistSchema<readonly ["staging", "production"], undefined>;
23
+ readonly registration_number: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">, import("valibot").RegexAction<string, "must only contain letters and numbers">]>;
24
+ readonly endow_designation: import("valibot").PicklistSchema<readonly ["Charity", "Religious Organization", "University", "Hospital", "Other"], undefined>;
25
+ }, undefined>;
26
+ export declare const cloudSearchEndowFields: import("valibot").PicklistSchema<["name", "tagline", "card_img", "hq_country", "active_in_countries", "sdgs", "published", "fund_opt_in", "claimed", "kyc_donors_only", "id", "env", "registration_number", "endow_designation", "contributions_total", "contributions_count"], undefined>;
27
+ export declare const endowsQueryParams: import("valibot").ObjectSchema<{
28
+ readonly query: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
29
+ readonly page: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TransformAction<string, number>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>;
30
+ readonly endow_designation: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, string[]>, import("valibot").FilterItemsAction<string[]>]>, import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly ["Charity", "Religious Organization", "University", "Hospital", "Other"], undefined>, undefined>]>, never>;
31
+ readonly sdgs: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, string[]>, import("valibot").FilterItemsAction<string[]>]>, import("valibot").MapItemsAction<string[], number>, import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>]>, never>;
32
+ readonly kyc_only: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, string[]>, import("valibot").FilterItemsAction<string[]>]>, import("valibot").MapItemsAction<string[], boolean>, import("valibot").ArraySchema<import("valibot").BooleanSchema<undefined>, undefined>]>, never>;
33
+ readonly fund_opt_in: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, string[]>, import("valibot").FilterItemsAction<string[]>]>, import("valibot").MapItemsAction<string[], boolean>, import("valibot").ArraySchema<import("valibot").BooleanSchema<undefined>, undefined>]>, never>;
34
+ readonly claimed: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, string[]>, import("valibot").FilterItemsAction<string[]>]>, import("valibot").MapItemsAction<string[], boolean>, import("valibot").ArraySchema<import("valibot").BooleanSchema<undefined>, undefined>]>, never>;
35
+ readonly countries: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, string[]>, import("valibot").FilterItemsAction<string[]>]>, import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, undefined>]>, never>;
36
+ readonly fields: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, string[]>, import("valibot").FilterItemsAction<string[]>]>, import("valibot").ArraySchema<import("valibot").PicklistSchema<["name", "tagline", "card_img", "hq_country", "active_in_countries", "sdgs", "published", "fund_opt_in", "claimed", "kyc_donors_only", "id", "env", "registration_number", "endow_designation", "contributions_total", "contributions_count"], undefined>, undefined>]>, never>;
37
+ }, undefined>;
38
+ export type CloudsearchEndowsQueryParams = InferInput<typeof endowsQueryParams>;
39
+ export type CloudsearchEndow = InferOutput<typeof cloudsearchEndow>;
7
40
  type DocId = `${Environment}-${number}`;
8
41
  type Doc = {
9
42
  documentId: DocId;
10
43
  _score: number;
11
- } & ToDoc<Fields>;
44
+ } & ToDoc<CloudsearchEndow>;
12
45
  export type HitFields = ToHitFields<Omit<Doc, "documentId" | "_score">>;
13
- export type Update = ToUpdate<DocId, Fields>;
46
+ export type Update = ToUpdate<DocId, CloudsearchEndow>;
14
47
  export {};
@@ -1 +1,40 @@
1
- export {};
1
+ import { csvStrs, endowment, str } from "./schema.mjs";
2
+ import { object, number, pick, keyof, pipe, string, transform, integer, minValue, optional, mapItems, array, boolean, } from "valibot";
3
+ import { orgDesignation, unSdgNum } from "@better-giving/schemas";
4
+ const boolCsv = pipe(csvStrs, mapItems(Boolean), array(boolean()));
5
+ export const cloudsearchEndowFields = object({
6
+ contributions_total: number(),
7
+ contributions_count: number(),
8
+ });
9
+ export const cloudsearchEndow = object({
10
+ ...pick(endowment, [
11
+ "card_img",
12
+ "name",
13
+ "tagline",
14
+ "hq_country",
15
+ "sdgs",
16
+ "active_in_countries",
17
+ "endow_designation",
18
+ "registration_number",
19
+ "kyc_donors_only",
20
+ "claimed",
21
+ //filters
22
+ "env",
23
+ "id",
24
+ "published",
25
+ "fund_opt_in",
26
+ ]).entries,
27
+ ...cloudsearchEndowFields.entries,
28
+ });
29
+ export const cloudSearchEndowFields = keyof(cloudsearchEndow);
30
+ export const endowsQueryParams = object({
31
+ query: str,
32
+ page: pipe(string(), transform((x) => +x), integer(), minValue(1)),
33
+ endow_designation: optional(pipe(csvStrs, array(orgDesignation))),
34
+ sdgs: optional(pipe(csvStrs, mapItems(Number), array(unSdgNum))),
35
+ kyc_only: optional(boolCsv),
36
+ fund_opt_in: optional(boolCsv),
37
+ claimed: optional(boolCsv),
38
+ countries: optional(pipe(csvStrs, array(str))),
39
+ fields: optional(pipe(csvStrs, array(cloudSearchEndowFields))),
40
+ });
package/dist/db.d.mts CHANGED
@@ -19,10 +19,7 @@ export declare namespace Endow {
19
19
  SK: Environment;
20
20
  };
21
21
  type NonKeyAttributes = EndowmentShape & {
22
- env: Environment;
23
- kyc_donors_only: boolean;
24
22
  fiscal_sponsored: boolean;
25
- claimed: boolean;
26
23
  /** in USD @deprecated */
27
24
  payout_minimum?: number;
28
25
  /** @deprecated */
@@ -53,16 +50,14 @@ export declare namespace Program {
53
50
  /** in USD */
54
51
  totalDonations?: number;
55
52
  };
56
- export type DbRecord = Keys & NonKeyAttributes;
57
- export {};
53
+ type DbRecord = Keys & NonKeyAttributes;
58
54
  }
59
55
  export declare namespace Milestone {
60
56
  type Keys = {
61
57
  PK: `Prog#${string}#${Environment}`;
62
58
  SK: `Mile#${MilestoneId}`;
63
59
  };
64
- export type DbRecord = Keys & MilestoneShape;
65
- export {};
60
+ type DbRecord = Keys & MilestoneShape;
66
61
  }
67
62
  export declare const mediaGsi: {
68
63
  readonly 1: "gsi1";
package/dist/index.d.mts CHANGED
@@ -1,8 +1,7 @@
1
- import type { Fields as FundItem } from "./cloudsearch.mjs";
2
- import type { Milestone } from "./schema.mjs";
3
1
  import type { Endow as NEndow, Media, Program as NProgram } from "./db.mjs";
4
- export type { Allocation, DonateMethodId, EndowByEinParams, EndowDesignation, EndowQueryParam, EndowsQueryParams, EndowUpdate, Environment, Increment, Milestone, MilestoneUpdate, NewMilestone, NewProgram, ProgramUpdate, SocialMediaURLs, UnSdgNum, MediaQueryParams, MediaQueryParamsObj, MediaType, MediaUpdate, } from "./schema.mjs";
5
- export type { FundItem };
2
+ import type { Milestone } from "./schema.mjs";
3
+ export type { Allocation, DonateMethodId, EndowByEinParams, EndowDesignation, EndowQueryParam, EndowUpdate, Environment, Increment, Milestone, MilestoneUpdate, NewMilestone, NewProgram, ProgramUpdate, SocialMediaURLs, UnSdgNum, MediaQueryParams, MediaQueryParamsObj, MediaType, MediaUpdate, } from "./schema.mjs";
4
+ export type { CloudsearchEndow as EndowItem, CloudsearchEndowsQueryParams as EndowsQueryParams, } from "./cloudsearch.mjs";
6
5
  export type Endow = Pick<NEndow.DbRecord, "id" | "slug" | "active_in_countries" | "endow_designation" | "fiscal_sponsored" | "hide_bg_tip" | "hq_country" | "image" | "card_img" | "kyc_donors_only" | "logo" | "name" | "overview" | "published" | "registration_number" | "sdgs" | "social_media_urls" | "street_address" | "tagline" | "url" | "claimed" | "progDonationsAllowed" | "donateMethods" | "allocation" | "increments" | "receiptMsg">;
7
6
  export type Program = Omit<NProgram.DbRecord, "PK" | "SK"> & {
8
7
  milestones: Milestone[];
package/dist/schema.d.mts CHANGED
@@ -3,6 +3,8 @@ export type { OrgDesignation as EndowDesignation, Environment, UnSdgNum, } from
3
3
  export { orgDesignation as endowDesignation, env, unSdgNum };
4
4
  import { type InferInput, type InferOutput } from "valibot";
5
5
  export declare const str: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
6
+ export declare const csv: 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").RegexAction<string, "invalid csv">]>>;
7
+ export declare const csvStrs: import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, string[]>, import("valibot").FilterItemsAction<string[]>]>;
6
8
  export declare const allocation: import("valibot").SchemaWithPipe<[import("valibot").ObjectSchema<{
7
9
  readonly cash: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>, import("valibot").MaxValueAction<number, 100, undefined>]>;
8
10
  readonly liq: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 0, undefined>, import("valibot").MaxValueAction<number, 100, undefined>]>;
@@ -48,6 +50,7 @@ export declare const increment: import("valibot").ObjectSchema<{
48
50
  export type Increment = InferOutput<typeof increment>;
49
51
  export declare const endowment: import("valibot").ObjectSchema<{
50
52
  readonly id: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>;
53
+ readonly env: import("valibot").PicklistSchema<readonly ["staging", "production"], undefined>;
51
54
  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>;
52
55
  readonly registration_number: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">, import("valibot").RegexAction<string, "must only contain letters and numbers">]>;
53
56
  readonly name: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
@@ -71,7 +74,7 @@ export declare const endowment: import("valibot").ObjectSchema<{
71
74
  }, undefined>;
72
75
  /** website */
73
76
  readonly url: 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").StartsWithAction<string, "https://", "should start with https://">, import("valibot").CustomSchema<string, "incomplete url">, import("valibot").UrlAction<string, "invalid url">]>>, never>;
74
- readonly sdgs: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>, import("valibot").MinLengthAction<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1, undefined>]>;
77
+ readonly sdgs: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>, import("valibot").MinLengthAction<(2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1, undefined>]>;
75
78
  readonly receiptMsg: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 500, undefined>]>, never>;
76
79
  readonly hide_bg_tip: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
77
80
  readonly published: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
@@ -95,9 +98,13 @@ export declare const endowment: import("valibot").ObjectSchema<{
95
98
  label: string;
96
99
  }[], 4, undefined>]>, never>;
97
100
  readonly fund_opt_in: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
101
+ /** endowment is not claimed if `false` only */
102
+ readonly claimed: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
103
+ readonly kyc_donors_only: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
98
104
  }, undefined>;
99
105
  export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
100
106
  readonly id: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>;
107
+ readonly env: import("valibot").PicklistSchema<readonly ["staging", "production"], undefined>;
101
108
  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>;
102
109
  readonly registration_number: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">, import("valibot").RegexAction<string, "must only contain letters and numbers">]>;
103
110
  readonly name: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
@@ -121,7 +128,7 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
121
128
  }, undefined>;
122
129
  /** website */
123
130
  readonly url: 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").StartsWithAction<string, "https://", "should start with https://">, import("valibot").CustomSchema<string, "incomplete url">, import("valibot").UrlAction<string, "invalid url">]>>, never>;
124
- readonly sdgs: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>, import("valibot").MinLengthAction<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1, undefined>]>;
131
+ readonly sdgs: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>, import("valibot").MinLengthAction<(2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1, undefined>]>;
125
132
  readonly receiptMsg: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 500, undefined>]>, never>;
126
133
  readonly hide_bg_tip: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
127
134
  readonly published: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
@@ -145,9 +152,13 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
145
152
  label: string;
146
153
  }[], 4, undefined>]>, never>;
147
154
  readonly fund_opt_in: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
155
+ /** endowment is not claimed if `false` only */
156
+ readonly claimed: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
157
+ readonly kyc_donors_only: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
148
158
  }, undefined>, "_types" | "_run" | "entries"> & {
149
159
  readonly entries: Omit<{
150
160
  readonly id: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>;
161
+ readonly env: import("valibot").PicklistSchema<readonly ["staging", "production"], undefined>;
151
162
  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>;
152
163
  readonly registration_number: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">, import("valibot").RegexAction<string, "must only contain letters and numbers">]>;
153
164
  readonly name: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>;
@@ -171,7 +182,7 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
171
182
  }, undefined>;
172
183
  /** website */
173
184
  readonly url: 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").StartsWithAction<string, "https://", "should start with https://">, import("valibot").CustomSchema<string, "incomplete url">, import("valibot").UrlAction<string, "invalid url">]>>, never>;
174
- readonly sdgs: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>, import("valibot").MinLengthAction<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1, undefined>]>;
185
+ readonly sdgs: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>, import("valibot").MinLengthAction<(2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1, undefined>]>;
175
186
  readonly receiptMsg: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 500, undefined>]>, never>;
176
187
  readonly hide_bg_tip: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
177
188
  readonly published: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
@@ -195,19 +206,22 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
195
206
  label: string;
196
207
  }[], 4, undefined>]>, never>;
197
208
  readonly fund_opt_in: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
198
- }, "id">;
199
- _run(dataset: import("valibot").Dataset<unknown, never>, config: import("valibot").Config<import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").IntegerIssue<number> | import("valibot").MinValueIssue<number, 0> | import("valibot").MaxValueIssue<number, 100> | import("valibot").ObjectIssue | import("valibot").CheckIssue<{
209
+ /** endowment is not claimed if `false` only */
210
+ readonly claimed: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
211
+ readonly kyc_donors_only: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
212
+ }, "claimed" | "kyc_donors_only" | "id" | "env">;
213
+ _run(dataset: import("valibot").Dataset<unknown, never>, config: import("valibot").Config<import("valibot").StringIssue | import("valibot").RegexIssue<string> | import("valibot").NumberIssue | import("valibot").IntegerIssue<number> | import("valibot").MinValueIssue<number, 0> | import("valibot").MaxValueIssue<number, 100> | import("valibot").ObjectIssue | import("valibot").CheckIssue<{
200
214
  cash: number;
201
215
  liq: number;
202
216
  lock: number;
203
- }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
217
+ }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
204
218
  value: string;
205
219
  label: string;
206
220
  }[], 4>>): import("valibot").Dataset<{
207
221
  name: string;
208
222
  hq_country: string;
209
223
  active_in_countries: string[];
210
- sdgs: (2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[];
224
+ sdgs: (2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[];
211
225
  registration_number: string;
212
226
  endow_designation: "Charity" | "Religious Organization" | "University" | "Hospital" | "Other";
213
227
  social_media_urls: {
@@ -242,11 +256,11 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
242
256
  label: string;
243
257
  }[] | undefined;
244
258
  fund_opt_in?: boolean | undefined;
245
- }, import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").IntegerIssue<number> | import("valibot").MinValueIssue<number, 0> | import("valibot").MaxValueIssue<number, 100> | import("valibot").ObjectIssue | import("valibot").CheckIssue<{
259
+ }, import("valibot").StringIssue | import("valibot").RegexIssue<string> | import("valibot").NumberIssue | import("valibot").IntegerIssue<number> | import("valibot").MinValueIssue<number, 0> | import("valibot").MaxValueIssue<number, 100> | import("valibot").ObjectIssue | import("valibot").CheckIssue<{
246
260
  cash: number;
247
261
  liq: number;
248
262
  lock: number;
249
- }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
263
+ }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
250
264
  value: string;
251
265
  label: string;
252
266
  }[], 4>>;
@@ -255,7 +269,7 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
255
269
  name: string;
256
270
  hq_country: string;
257
271
  active_in_countries: string[];
258
- sdgs: (2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[];
272
+ sdgs: (2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[];
259
273
  registration_number: string;
260
274
  endow_designation: "Charity" | "Religious Organization" | "University" | "Hospital" | "Other";
261
275
  social_media_urls: {
@@ -295,7 +309,7 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
295
309
  name: string;
296
310
  hq_country: string;
297
311
  active_in_countries: string[];
298
- sdgs: (2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[];
312
+ sdgs: (2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[];
299
313
  registration_number: string;
300
314
  endow_designation: "Charity" | "Religious Organization" | "University" | "Hospital" | "Other";
301
315
  social_media_urls: {
@@ -331,11 +345,11 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
331
345
  }[] | undefined;
332
346
  fund_opt_in?: boolean | undefined;
333
347
  };
334
- readonly issue: import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").IntegerIssue<number> | import("valibot").MinValueIssue<number, 0> | import("valibot").MaxValueIssue<number, 100> | import("valibot").ObjectIssue | import("valibot").CheckIssue<{
348
+ readonly issue: import("valibot").StringIssue | import("valibot").RegexIssue<string> | import("valibot").NumberIssue | import("valibot").IntegerIssue<number> | import("valibot").MinValueIssue<number, 0> | import("valibot").MaxValueIssue<number, 100> | import("valibot").ObjectIssue | import("valibot").CheckIssue<{
335
349
  cash: number;
336
350
  liq: number;
337
351
  lock: number;
338
- }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
352
+ }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
339
353
  value: string;
340
354
  label: string;
341
355
  }[], 4>;
@@ -353,7 +367,7 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
353
367
  readonly hq_country: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, never>;
354
368
  readonly active_in_countries: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, undefined>, import("valibot").NonEmptyAction<string[], "required">]>, never>;
355
369
  readonly street_address: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, never>, never>;
356
- readonly sdgs: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>, import("valibot").MinLengthAction<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1, undefined>]>, never>;
370
+ readonly sdgs: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>, import("valibot").MinLengthAction<(2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1, undefined>]>, never>;
357
371
  readonly receiptMsg: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 500, undefined>]>, never>, never>;
358
372
  readonly hide_bg_tip: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>, never>;
359
373
  readonly published: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>, never>;
@@ -388,11 +402,11 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
388
402
  readonly tiktok: 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").StartsWithAction<string, "https://", "should start with https://">, import("valibot").CustomSchema<string, "incomplete url">, import("valibot").UrlAction<string, "invalid url">]>>, never>;
389
403
  }, undefined>, never>;
390
404
  };
391
- _run(dataset: import("valibot").Dataset<unknown, never>, config: import("valibot").Config<import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").IntegerIssue<number> | import("valibot").MinValueIssue<number, 0> | import("valibot").MaxValueIssue<number, 100> | import("valibot").ObjectIssue | import("valibot").CheckIssue<{
405
+ _run(dataset: import("valibot").Dataset<unknown, never>, config: import("valibot").Config<import("valibot").StringIssue | import("valibot").RegexIssue<string> | import("valibot").NumberIssue | import("valibot").IntegerIssue<number> | import("valibot").MinValueIssue<number, 0> | import("valibot").MaxValueIssue<number, 100> | import("valibot").ObjectIssue | import("valibot").CheckIssue<{
392
406
  cash: number;
393
407
  liq: number;
394
408
  lock: number;
395
- }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
409
+ }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
396
410
  value: string;
397
411
  label: string;
398
412
  }[], 4>>): import("valibot").Dataset<{
@@ -407,7 +421,7 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
407
421
  hq_country?: string | undefined;
408
422
  active_in_countries?: string[] | undefined;
409
423
  street_address?: string | undefined;
410
- sdgs?: (2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[] | undefined;
424
+ sdgs?: (2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[] | undefined;
411
425
  receiptMsg?: string | undefined;
412
426
  hide_bg_tip?: boolean | undefined;
413
427
  published?: boolean | undefined;
@@ -434,11 +448,11 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
434
448
  youtube?: string | undefined;
435
449
  tiktok?: string | undefined;
436
450
  } | undefined;
437
- }, import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").IntegerIssue<number> | import("valibot").MinValueIssue<number, 0> | import("valibot").MaxValueIssue<number, 100> | import("valibot").ObjectIssue | import("valibot").CheckIssue<{
451
+ }, import("valibot").StringIssue | import("valibot").RegexIssue<string> | import("valibot").NumberIssue | import("valibot").IntegerIssue<number> | import("valibot").MinValueIssue<number, 0> | import("valibot").MaxValueIssue<number, 100> | import("valibot").ObjectIssue | import("valibot").CheckIssue<{
438
452
  cash: number;
439
453
  liq: number;
440
454
  lock: number;
441
- }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
455
+ }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
442
456
  value: string;
443
457
  label: string;
444
458
  }[], 4>>;
@@ -455,7 +469,7 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
455
469
  hq_country?: string | undefined;
456
470
  active_in_countries?: string[] | undefined;
457
471
  street_address?: string | undefined;
458
- sdgs?: (2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[] | undefined;
472
+ sdgs?: (2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[] | undefined;
459
473
  receiptMsg?: string | undefined;
460
474
  hide_bg_tip?: boolean | undefined;
461
475
  published?: boolean | undefined;
@@ -495,7 +509,7 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
495
509
  hq_country?: string | undefined;
496
510
  active_in_countries?: string[] | undefined;
497
511
  street_address?: string | undefined;
498
- sdgs?: (2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[] | undefined;
512
+ sdgs?: (2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[] | undefined;
499
513
  receiptMsg?: string | undefined;
500
514
  hide_bg_tip?: boolean | undefined;
501
515
  published?: boolean | undefined;
@@ -523,34 +537,22 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
523
537
  tiktok?: string | undefined;
524
538
  } | undefined;
525
539
  };
526
- readonly issue: import("valibot").StringIssue | import("valibot").NumberIssue | import("valibot").IntegerIssue<number> | import("valibot").MinValueIssue<number, 0> | import("valibot").MaxValueIssue<number, 100> | import("valibot").ObjectIssue | import("valibot").CheckIssue<{
540
+ readonly issue: import("valibot").StringIssue | import("valibot").RegexIssue<string> | import("valibot").NumberIssue | import("valibot").IntegerIssue<number> | import("valibot").MinValueIssue<number, 0> | import("valibot").MaxValueIssue<number, 100> | import("valibot").ObjectIssue | import("valibot").CheckIssue<{
527
541
  cash: number;
528
542
  liq: number;
529
543
  lock: number;
530
- }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
544
+ }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
531
545
  value: string;
532
546
  label: string;
533
547
  }[], 4>;
534
548
  } | undefined;
535
549
  };
536
- export declare const endowFields: import("valibot").PicklistSchema<["url", "slug", "name", "overview", "tagline", "image", "logo", "card_img", "hq_country", "active_in_countries", "street_address", "sdgs", "receiptMsg", "hide_bg_tip", "published", "progDonationsAllowed", "allocation", "donateMethods", "increments", "fund_opt_in", "id", "registration_number", "endow_designation", "social_media_urls"], undefined>;
550
+ export declare const endowFields: import("valibot").PicklistSchema<["url", "slug", "name", "overview", "tagline", "image", "logo", "card_img", "hq_country", "active_in_countries", "street_address", "sdgs", "receiptMsg", "hide_bg_tip", "published", "progDonationsAllowed", "allocation", "donateMethods", "increments", "fund_opt_in", "claimed", "kyc_donors_only", "id", "env", "registration_number", "endow_designation", "social_media_urls"], undefined>;
537
551
  export type Endowment = InferOutput<typeof endowment>;
538
552
  export type EndowUpdate = InferOutput<typeof endowUpdate>;
539
553
  export type EndowmentFields = InferOutput<typeof endowFields>;
540
- export declare const endowsQueryParams: import("valibot").ObjectSchema<{
541
- readonly query: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
542
- readonly page: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TransformAction<string, number>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>;
543
- readonly endow_designation: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, string[]>, import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly ["Charity", "Religious Organization", "University", "Hospital", "Other"], undefined>, undefined>]>, never>;
544
- readonly sdgs: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, number[]>, import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>]>, never>;
545
- readonly kyc_only: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, boolean[]>, import("valibot").ArraySchema<import("valibot").BooleanSchema<undefined>, undefined>]>, never>;
546
- readonly fund_opt_in: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, boolean[]>, import("valibot").ArraySchema<import("valibot").BooleanSchema<undefined>, undefined>]>, never>;
547
- readonly claimed: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, boolean[]>, import("valibot").ArraySchema<import("valibot").BooleanSchema<undefined>, undefined>]>, never>;
548
- readonly countries: 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").RegexAction<string, "invalid csv">]>>, never>;
549
- readonly fields: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, string[]>, import("valibot").ArraySchema<import("valibot").PicklistSchema<["url", "slug", "name", "overview", "tagline", "image", "logo", "card_img", "hq_country", "active_in_countries", "street_address", "sdgs", "receiptMsg", "hide_bg_tip", "published", "progDonationsAllowed", "allocation", "donateMethods", "increments", "fund_opt_in", "id", "registration_number", "endow_designation", "social_media_urls"], undefined>, undefined>]>, never>;
550
- }, undefined>;
551
- export type EndowsQueryParams = InferInput<typeof endowsQueryParams>;
552
554
  export declare const endowQueryParam: import("valibot").ObjectSchema<{
553
- readonly fields: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, string[]>, import("valibot").ArraySchema<import("valibot").PicklistSchema<["url", "slug", "name", "overview", "tagline", "image", "logo", "card_img", "hq_country", "active_in_countries", "street_address", "sdgs", "receiptMsg", "hide_bg_tip", "published", "progDonationsAllowed", "allocation", "donateMethods", "increments", "fund_opt_in", "id", "registration_number", "endow_designation", "social_media_urls"], undefined>, undefined>]>, never>;
555
+ readonly fields: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[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").RegexAction<string, "invalid csv">]>>, import("valibot").TransformAction<string, string[]>, import("valibot").FilterItemsAction<string[]>]>, import("valibot").ArraySchema<import("valibot").PicklistSchema<["url", "slug", "name", "overview", "tagline", "image", "logo", "card_img", "hq_country", "active_in_countries", "street_address", "sdgs", "receiptMsg", "hide_bg_tip", "published", "progDonationsAllowed", "allocation", "donateMethods", "increments", "fund_opt_in", "claimed", "kyc_donors_only", "id", "env", "registration_number", "endow_designation", "social_media_urls"], undefined>, undefined>]>, never>;
554
556
  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>;
555
557
  readonly env: import("valibot").PicklistSchema<readonly ["staging", "production"], undefined>;
556
558
  }, undefined>;
@@ -565,29 +567,29 @@ export type ProgramId = InferOutput<typeof programId>;
565
567
  export declare const milestoneId: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UuidAction<string, undefined>]>;
566
568
  export type MilestoneId = InferOutput<typeof milestoneId>;
567
569
  export declare const newMilestone: import("valibot").ObjectSchema<{
568
- readonly date: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoDateAction<string, undefined>]>;
570
+ readonly date: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, undefined>]>;
569
571
  readonly title: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
570
572
  readonly description: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
571
573
  readonly media: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
572
574
  }, undefined>;
573
575
  export declare const milestoneUpdate: Omit<import("valibot").ObjectSchema<{
574
- readonly date: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoDateAction<string, undefined>]>;
576
+ readonly date: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, undefined>]>;
575
577
  readonly title: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
576
578
  readonly description: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
577
579
  readonly media: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
578
580
  }, undefined>, "_types" | "_run" | "entries"> & {
579
581
  readonly entries: {
580
- readonly date: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoDateAction<string, undefined>]>, never>;
582
+ readonly date: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, undefined>]>, never>;
581
583
  readonly title: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
582
584
  readonly description: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
583
585
  readonly media: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
584
586
  };
585
- _run(dataset: import("valibot").Dataset<unknown, never>, config: import("valibot").Config<import("valibot").StringIssue | import("valibot").ObjectIssue | import("valibot").UrlIssue<string> | import("valibot").IsoDateIssue<string>>): import("valibot").Dataset<{
587
+ _run(dataset: import("valibot").Dataset<unknown, never>, config: import("valibot").Config<import("valibot").StringIssue | import("valibot").ObjectIssue | import("valibot").UrlIssue<string> | import("valibot").IsoTimestampIssue<string>>): import("valibot").Dataset<{
586
588
  title: string;
587
589
  description: string;
588
590
  date?: string | undefined;
589
591
  media?: string | undefined;
590
- }, import("valibot").StringIssue | import("valibot").ObjectIssue | import("valibot").UrlIssue<string> | import("valibot").IsoDateIssue<string>>;
592
+ }, import("valibot").StringIssue | import("valibot").ObjectIssue | import("valibot").UrlIssue<string> | import("valibot").IsoTimestampIssue<string>>;
591
593
  readonly _types?: {
592
594
  readonly input: {
593
595
  title: string;
@@ -601,14 +603,14 @@ export declare const milestoneUpdate: Omit<import("valibot").ObjectSchema<{
601
603
  date?: string | undefined;
602
604
  media?: string | undefined;
603
605
  };
604
- readonly issue: import("valibot").StringIssue | import("valibot").ObjectIssue | import("valibot").UrlIssue<string> | import("valibot").IsoDateIssue<string>;
606
+ readonly issue: import("valibot").StringIssue | import("valibot").ObjectIssue | import("valibot").UrlIssue<string> | import("valibot").IsoTimestampIssue<string>;
605
607
  } | undefined;
606
608
  };
607
609
  export type MilestoneUpdate = InferOutput<typeof milestoneUpdate>;
608
610
  export type NewMilestone = InferOutput<typeof newMilestone>;
609
611
  export declare const milestone: import("valibot").ObjectSchema<{
610
612
  readonly id: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UuidAction<string, undefined>]>;
611
- readonly date: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoDateAction<string, undefined>]>;
613
+ readonly date: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, undefined>]>;
612
614
  readonly title: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
613
615
  readonly description: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
614
616
  readonly media: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
@@ -621,7 +623,7 @@ export declare const newProgram: import("valibot").ObjectSchema<{
621
623
  /** null unsets target */
622
624
  readonly targetRaise: import("valibot").NullishSchema<import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, undefined>]>, never>;
623
625
  readonly milestones: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").ObjectSchema<{
624
- readonly date: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoDateAction<string, undefined>]>;
626
+ readonly date: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, undefined>]>;
625
627
  readonly title: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
626
628
  readonly description: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
627
629
  readonly media: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
@@ -646,7 +648,7 @@ export declare const programUpdate: Omit<Omit<import("valibot").ObjectSchema<{
646
648
  /** null unsets target */
647
649
  readonly targetRaise: import("valibot").NullishSchema<import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, undefined>]>, never>;
648
650
  readonly milestones: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").ObjectSchema<{
649
- readonly date: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoDateAction<string, undefined>]>;
651
+ readonly date: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, undefined>]>;
650
652
  readonly title: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
651
653
  readonly description: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
652
654
  readonly media: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
@@ -664,7 +666,7 @@ export declare const programUpdate: Omit<Omit<import("valibot").ObjectSchema<{
664
666
  /** null unsets target */
665
667
  readonly targetRaise: import("valibot").NullishSchema<import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, undefined>]>, never>;
666
668
  readonly milestones: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").ObjectSchema<{
667
- readonly date: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoDateAction<string, undefined>]>;
669
+ readonly date: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").IsoTimestampAction<string, undefined>]>;
668
670
  readonly title: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
669
671
  readonly description: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
670
672
  readonly media: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
package/dist/schema.mjs CHANGED
@@ -1,7 +1,13 @@
1
1
  import { env, orgDesignation, unSdgNum } from "@better-giving/schemas";
2
2
  export { orgDesignation as endowDesignation, env, unSdgNum };
3
- import { url, array, base64, boolean, check, custom, excludes, integer, isoDate, keyof, lazy, maxLength, maxValue, minLength, minValue, nonEmpty, nullish, number, object, omit, optional, partial, picklist, pipe, regex, startsWith, string, transform, trim, uuid, } from "valibot";
3
+ import { url, array, base64, boolean, check, custom, excludes, filterItems, integer, isoTimestamp, keyof, lazy, maxLength, maxValue, minLength, minValue, nonEmpty, nullish, number, object, omit, optional, partial, picklist, pipe, regex, startsWith, string, transform, trim, uuid, } from "valibot";
4
4
  export const str = pipe(string(), trim());
5
+ export const csv = lazy((x) => {
6
+ if (!x)
7
+ return str;
8
+ return pipe(str, regex(/^[^,]+(?:,[^,]+)*$/, "invalid csv"));
9
+ });
10
+ export const csvStrs = pipe(csv, transform((x) => x.split(",")), filterItems((x) => x.length > 0));
5
11
  const pct = pipe(number(), integer(), minValue(0), maxValue(100));
6
12
  export const allocation = pipe(object({
7
13
  cash: pct,
@@ -53,6 +59,7 @@ export const increment = object({
53
59
  });
54
60
  export const endowment = object({
55
61
  id: endowId,
62
+ env,
56
63
  slug: optional(segment),
57
64
  registration_number: reg_number,
58
65
  name: pipe(str, nonEmpty("required")),
@@ -79,28 +86,14 @@ export const endowment = object({
79
86
  donateMethods: optional(array(donateMethodId)),
80
87
  increments: optional(pipe(array(increment), maxLength(MAX_NUM_INCREMENTS))),
81
88
  fund_opt_in: optional(boolean()),
89
+ /** endowment is not claimed if `false` only */
90
+ claimed: optional(boolean()),
91
+ kyc_donors_only: optional(boolean()),
82
92
  });
83
- export const endowUpdate = partial(omit(endowment, ["id"]));
93
+ export const endowUpdate = partial(omit(endowment, ["id", "claimed", "kyc_donors_only", "env"]));
84
94
  export const endowFields = keyof(endowment);
85
- const csv = lazy((x) => {
86
- if (!x)
87
- return str;
88
- return pipe(str, regex(/^[^,]+(?:,[^,]+)*$/, "invalid csv"));
89
- });
90
- const boolCsv = pipe(csv, transform((x) => x.split(",").map(Boolean)), array(boolean()));
91
- export const endowsQueryParams = object({
92
- query: str,
93
- page: pipe(string(), transform((x) => +x), integer(), minValue(1)),
94
- endow_designation: optional(pipe(csv, transform((x) => x.split(",")), array(orgDesignation))),
95
- sdgs: optional(pipe(csv, transform((x) => x.split(",").map((s) => +s)), array(unSdgNum))),
96
- kyc_only: optional(boolCsv),
97
- fund_opt_in: optional(boolCsv),
98
- claimed: optional(boolCsv),
99
- countries: optional(csv),
100
- fields: optional(pipe(csv, transform((x) => x.split(",")), array(endowFields))),
101
- });
102
95
  export const endowQueryParam = object({
103
- fields: optional(pipe(csv, transform((x) => x.split(",")), array(endowFields))),
96
+ fields: optional(pipe(csvStrs, array(endowFields))),
104
97
  slug: optional(segment),
105
98
  env,
106
99
  });
@@ -112,7 +105,7 @@ const amnt = pipe(number(), minValue(0));
112
105
  export const programId = pipe(str, uuid());
113
106
  export const milestoneId = pipe(str, uuid());
114
107
  export const newMilestone = object({
115
- date: pipe(str, isoDate()),
108
+ date: pipe(str, isoTimestamp()),
116
109
  title: str,
117
110
  description: str,
118
111
  media: optional(_url),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@better-giving/endowment",
3
- "version": "1.0.19",
3
+ "version": "1.0.21",
4
4
  "peerDependencies": {
5
5
  "@better-giving/schemas": "1.0.1",
6
6
  "@better-giving/types": "1.0.1"
@@ -1,39 +1,86 @@
1
+ import { orgDesignation, unSdgNum } from "@better-giving/schemas";
1
2
  import type {
2
3
  ToDoc,
3
4
  ToHitFields,
4
5
  ToUpdate,
5
6
  } from "@better-giving/types/cloudsearch";
6
- import type { Endow, Environment } from "./db.mjs";
7
-
8
- export type Fields = Pick<
9
- Endow.DbRecord,
10
- //card UI attribures
11
- | "card_img"
12
- | "name"
13
- | "tagline"
14
- | "hq_country"
15
- | "sdgs"
16
- | "active_in_countries"
17
- | "endow_designation"
18
- | "registration_number"
19
- //icons
20
- | "kyc_donors_only"
21
- | "claimed"
22
- //filters
23
- | "env"
24
- | "id"
25
- | "published"
26
- | "fund_opt_in"
27
- // balance data
28
- > & { contributions_total: number; contributions_count: number };
7
+ import {
8
+ type InferInput,
9
+ type InferOutput,
10
+ array,
11
+ boolean,
12
+ integer,
13
+ keyof,
14
+ mapItems,
15
+ minValue,
16
+ number,
17
+ object,
18
+ optional,
19
+ pick,
20
+ pipe,
21
+ string,
22
+ transform,
23
+ } from "valibot";
24
+ import { type Environment, csvStrs, endowment, str } from "./schema.mjs";
25
+
26
+ const boolCsv = pipe(csvStrs, mapItems(Boolean), array(boolean()));
27
+
28
+ export const cloudsearchEndowFields = object({
29
+ contributions_total: number(),
30
+ contributions_count: number(),
31
+ });
32
+
33
+ export const cloudsearchEndow = object({
34
+ ...pick(endowment, [
35
+ "card_img",
36
+ "name",
37
+ "tagline",
38
+ "hq_country",
39
+ "sdgs",
40
+ "active_in_countries",
41
+ "endow_designation",
42
+ "registration_number",
43
+ "kyc_donors_only",
44
+ "claimed",
45
+ //filters
46
+ "env",
47
+ "id",
48
+ "published",
49
+ "fund_opt_in",
50
+ ]).entries,
51
+ ...cloudsearchEndowFields.entries,
52
+ });
53
+
54
+ export const cloudSearchEndowFields = keyof(cloudsearchEndow);
55
+
56
+ export const endowsQueryParams = object({
57
+ query: str,
58
+ page: pipe(
59
+ string(),
60
+ transform((x) => +x),
61
+ integer(),
62
+ minValue(1)
63
+ ),
64
+ endow_designation: optional(pipe(csvStrs, array(orgDesignation))),
65
+ sdgs: optional(pipe(csvStrs, mapItems(Number), array(unSdgNum))),
66
+ kyc_only: optional(boolCsv),
67
+ fund_opt_in: optional(boolCsv),
68
+ claimed: optional(boolCsv),
69
+ countries: optional(pipe(csvStrs, array(str))),
70
+ fields: optional(pipe(csvStrs, array(cloudSearchEndowFields))),
71
+ });
72
+
73
+ export type CloudsearchEndowsQueryParams = InferInput<typeof endowsQueryParams>;
74
+
75
+ export type CloudsearchEndow = InferOutput<typeof cloudsearchEndow>;
29
76
 
30
77
  type DocId = `${Environment}-${number}`;
31
78
 
32
79
  type Doc = {
33
80
  documentId: DocId;
34
81
  _score: number;
35
- } & ToDoc<Fields>;
82
+ } & ToDoc<CloudsearchEndow>;
36
83
 
37
84
  export type HitFields = ToHitFields<Omit<Doc, "documentId" | "_score">>;
38
85
 
39
- export type Update = ToUpdate<DocId, Fields>;
86
+ export type Update = ToUpdate<DocId, CloudsearchEndow>;
package/src/db.mts CHANGED
@@ -41,10 +41,7 @@ export namespace Endow {
41
41
  };
42
42
 
43
43
  export type NonKeyAttributes = EndowmentShape & {
44
- env: Environment;
45
- kyc_donors_only: boolean;
46
44
  fiscal_sponsored: boolean;
47
- claimed: boolean;
48
45
 
49
46
  /** in USD @deprecated */
50
47
  payout_minimum?: number;
@@ -77,12 +74,12 @@ export namespace SlugEnvGsi {
77
74
  }
78
75
 
79
76
  export namespace Program {
80
- type Keys = {
77
+ export type Keys = {
81
78
  PK: `Endow#${number}#${Environment}`;
82
79
  SK: `Prog#${ProgramId}`;
83
80
  };
84
81
 
85
- type NonKeyAttributes = ProgramShape & {
82
+ export type NonKeyAttributes = ProgramShape & {
86
83
  /** in USD */
87
84
  totalDonations?: number;
88
85
  };
@@ -90,7 +87,7 @@ export namespace Program {
90
87
  }
91
88
 
92
89
  export namespace Milestone {
93
- type Keys = {
90
+ export type Keys = {
94
91
  PK: `Prog#${string}#${Environment}`;
95
92
  SK: `Mile#${MilestoneId}`;
96
93
  };
package/src/index.mts CHANGED
@@ -1,13 +1,11 @@
1
- import type { Fields as FundItem } from "./cloudsearch.mjs";
2
- import type { Milestone } from "./schema.mjs";
3
1
  import type { Endow as NEndow, Media, Program as NProgram } from "./db.mjs";
2
+ import type { Milestone } from "./schema.mjs";
4
3
  export type {
5
4
  Allocation,
6
5
  DonateMethodId,
7
6
  EndowByEinParams,
8
7
  EndowDesignation,
9
8
  EndowQueryParam,
10
- EndowsQueryParams,
11
9
  EndowUpdate,
12
10
  Environment,
13
11
  Increment,
@@ -23,7 +21,10 @@ export type {
23
21
  MediaType,
24
22
  MediaUpdate,
25
23
  } from "./schema.mjs";
26
- export type { FundItem };
24
+ export type {
25
+ CloudsearchEndow as EndowItem,
26
+ CloudsearchEndowsQueryParams as EndowsQueryParams,
27
+ } from "./cloudsearch.mjs";
27
28
 
28
29
  export type Endow = Pick<
29
30
  NEndow.DbRecord,
package/src/schema.mts CHANGED
@@ -15,8 +15,9 @@ import {
15
15
  check,
16
16
  custom,
17
17
  excludes,
18
+ filterItems,
18
19
  integer,
19
- isoDate,
20
+ isoTimestamp,
20
21
  keyof,
21
22
  lazy,
22
23
  maxLength,
@@ -41,6 +42,15 @@ import {
41
42
  } from "valibot";
42
43
 
43
44
  export const str = pipe(string(), trim());
45
+ export const csv = lazy((x) => {
46
+ if (!x) return str;
47
+ return pipe(str, regex(/^[^,]+(?:,[^,]+)*$/, "invalid csv"));
48
+ });
49
+ export const csvStrs = pipe(
50
+ csv,
51
+ transform((x) => x.split(",")),
52
+ filterItems((x) => x.length > 0)
53
+ );
44
54
 
45
55
  const pct = pipe(number(), integer(), minValue(0), maxValue(100));
46
56
  export const allocation = pipe(
@@ -150,6 +160,7 @@ export type Increment = InferOutput<typeof increment>;
150
160
 
151
161
  export const endowment = object({
152
162
  id: endowId,
163
+ env,
153
164
  slug: optional(segment),
154
165
  registration_number: reg_number,
155
166
  name: pipe(str, nonEmpty("required")),
@@ -177,71 +188,23 @@ export const endowment = object({
177
188
  donateMethods: optional(array(donateMethodId)),
178
189
  increments: optional(pipe(array(increment), maxLength(MAX_NUM_INCREMENTS))),
179
190
  fund_opt_in: optional(boolean()),
191
+
192
+ /** endowment is not claimed if `false` only */
193
+ claimed: optional(boolean()),
194
+ kyc_donors_only: optional(boolean()),
180
195
  });
181
196
 
182
- export const endowUpdate = partial(omit(endowment, ["id"]));
183
- export const endowFields = keyof(endowment);
197
+ export const endowUpdate = partial(
198
+ omit(endowment, ["id", "claimed", "kyc_donors_only", "env"])
199
+ );
184
200
 
201
+ export const endowFields = keyof(endowment);
185
202
  export type Endowment = InferOutput<typeof endowment>;
186
203
  export type EndowUpdate = InferOutput<typeof endowUpdate>;
187
204
  export type EndowmentFields = InferOutput<typeof endowFields>;
188
205
 
189
- const csv = lazy((x) => {
190
- if (!x) return str;
191
- return pipe(str, regex(/^[^,]+(?:,[^,]+)*$/, "invalid csv"));
192
- });
193
-
194
- const boolCsv = pipe(
195
- csv,
196
- transform((x) => x.split(",").map(Boolean)),
197
- array(boolean())
198
- );
199
-
200
- export const endowsQueryParams = object({
201
- query: str,
202
- page: pipe(
203
- string(),
204
- transform((x) => +x),
205
- integer(),
206
- minValue(1)
207
- ),
208
- endow_designation: optional(
209
- pipe(
210
- csv,
211
- transform((x) => x.split(",")),
212
- array(orgDesignation)
213
- )
214
- ),
215
- sdgs: optional(
216
- pipe(
217
- csv,
218
- transform((x) => x.split(",").map((s) => +s)),
219
- array(unSdgNum)
220
- )
221
- ),
222
- kyc_only: optional(boolCsv),
223
- fund_opt_in: optional(boolCsv),
224
- claimed: optional(boolCsv),
225
- countries: optional(csv),
226
- fields: optional(
227
- pipe(
228
- csv,
229
- transform((x) => x.split(",")),
230
- array(endowFields)
231
- )
232
- ),
233
- });
234
-
235
- export type EndowsQueryParams = InferInput<typeof endowsQueryParams>;
236
-
237
206
  export const endowQueryParam = object({
238
- fields: optional(
239
- pipe(
240
- csv,
241
- transform((x) => x.split(",")),
242
- array(endowFields)
243
- )
244
- ),
207
+ fields: optional(pipe(csvStrs, array(endowFields))),
245
208
  slug: optional(segment),
246
209
  env,
247
210
  });
@@ -262,7 +225,7 @@ export const milestoneId = pipe(str, uuid());
262
225
  export type MilestoneId = InferOutput<typeof milestoneId>;
263
226
 
264
227
  export const newMilestone = object({
265
- date: pipe(str, isoDate()),
228
+ date: pipe(str, isoTimestamp()),
266
229
  title: str,
267
230
  description: str,
268
231
  media: optional(_url),