@better-giving/endowment 1.0.20 → 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.
- package/dist/cloudsearch.d.mts +40 -7
- package/dist/cloudsearch.mjs +40 -1
- package/dist/db.d.mts +0 -3
- package/dist/index.d.mts +2 -3
- package/dist/schema.d.mts +39 -37
- package/dist/schema.mjs +13 -20
- package/package.json +1 -1
- package/src/cloudsearch.mts +72 -25
- package/src/db.mts +0 -3
- package/src/index.mts +4 -3
- package/src/schema.mts +21 -58
package/dist/cloudsearch.d.mts
CHANGED
|
@@ -1,14 +1,47 @@
|
|
|
1
1
|
import type { ToDoc, ToHitFields, ToUpdate } from "@better-giving/types/cloudsearch";
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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<
|
|
44
|
+
} & ToDoc<CloudsearchEndow>;
|
|
12
45
|
export type HitFields = ToHitFields<Omit<Doc, "documentId" | "_score">>;
|
|
13
|
-
export type Update = ToUpdate<DocId,
|
|
46
|
+
export type Update = ToUpdate<DocId, CloudsearchEndow>;
|
|
14
47
|
export {};
|
package/dist/cloudsearch.mjs
CHANGED
|
@@ -1 +1,40 @@
|
|
|
1
|
-
|
|
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 */
|
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type { Fields as FundItem } from "./cloudsearch.mjs";
|
|
2
1
|
import type { Endow as NEndow, Media, Program as NProgram } from "./db.mjs";
|
|
3
2
|
import type { Milestone } from "./schema.mjs";
|
|
4
|
-
export type { Allocation, DonateMethodId, EndowByEinParams, EndowDesignation, EndowQueryParam,
|
|
5
|
-
export type {
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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
|
-
|
|
199
|
-
|
|
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").
|
|
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 |
|
|
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").
|
|
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 |
|
|
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 |
|
|
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").
|
|
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 |
|
|
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").
|
|
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 |
|
|
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").
|
|
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 |
|
|
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 |
|
|
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").
|
|
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>;
|
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, keyof, lazy, maxLength, maxValue, minLength, minValue, nonEmpty, nullish, number, object, omit, optional, partial, picklist, pipe, regex, startsWith, string, transform, trim, uuid,
|
|
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(
|
|
96
|
+
fields: optional(pipe(csvStrs, array(endowFields))),
|
|
104
97
|
slug: optional(segment),
|
|
105
98
|
env,
|
|
106
99
|
});
|
package/package.json
CHANGED
package/src/cloudsearch.mts
CHANGED
|
@@ -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
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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<
|
|
82
|
+
} & ToDoc<CloudsearchEndow>;
|
|
36
83
|
|
|
37
84
|
export type HitFields = ToHitFields<Omit<Doc, "documentId" | "_score">>;
|
|
38
85
|
|
|
39
|
-
export type Update = ToUpdate<DocId,
|
|
86
|
+
export type Update = ToUpdate<DocId, CloudsearchEndow>;
|
package/src/db.mts
CHANGED
package/src/index.mts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Fields as FundItem } from "./cloudsearch.mjs";
|
|
2
1
|
import type { Endow as NEndow, Media, Program as NProgram } from "./db.mjs";
|
|
3
2
|
import type { Milestone } from "./schema.mjs";
|
|
4
3
|
export type {
|
|
@@ -7,7 +6,6 @@ export type {
|
|
|
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 {
|
|
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,7 +15,9 @@ import {
|
|
|
15
15
|
check,
|
|
16
16
|
custom,
|
|
17
17
|
excludes,
|
|
18
|
+
filterItems,
|
|
18
19
|
integer,
|
|
20
|
+
isoTimestamp,
|
|
19
21
|
keyof,
|
|
20
22
|
lazy,
|
|
21
23
|
maxLength,
|
|
@@ -37,10 +39,18 @@ import {
|
|
|
37
39
|
transform,
|
|
38
40
|
trim,
|
|
39
41
|
uuid,
|
|
40
|
-
isoTimestamp,
|
|
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(
|
|
183
|
-
|
|
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
|
});
|