@better-giving/endowment 1.0.24 → 1.0.26
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 +50 -0
- package/dist/db.d.mts +97 -0
- package/dist/index.d.mts +15 -0
- package/dist/schema.d.mts +770 -0
- package/dist/schema.mjs +10 -1
- package/package.json +7 -22
- package/src/cloudsearch.mts +8 -5
- package/src/db.mts +25 -31
- package/src/index.mts +17 -44
- package/src/schema.mts +28 -17
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ToDoc, ToHitFields, ToUpdate } from "@better-giving/types/cloudsearch";
|
|
2
|
+
import { type InferInput, type InferOutput } from "valibot";
|
|
3
|
+
import { type Environment } from "./schema.mjs";
|
|
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 id: import("valibot").SchemaWithPipe<[import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>]>;
|
|
20
|
+
readonly env: import("valibot").PicklistSchema<readonly ["staging", "production"], undefined>;
|
|
21
|
+
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">]>;
|
|
22
|
+
readonly endow_designation: import("valibot").PicklistSchema<readonly ["Charity", "Religious Organization", "University", "Hospital", "Other"], undefined>;
|
|
23
|
+
readonly claimed: import("valibot").BooleanSchema<undefined>;
|
|
24
|
+
readonly kyc_donors_only: import("valibot").BooleanSchema<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", "id", "env", "registration_number", "endow_designation", "claimed", "kyc_donors_only", "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", "id", "env", "registration_number", "endow_designation", "claimed", "kyc_donors_only", "contributions_total", "contributions_count"], undefined>, undefined>]>, never>;
|
|
37
|
+
}, undefined>;
|
|
38
|
+
export interface CloudsearchEndowsQueryParams extends InferInput<typeof endowsQueryParams> {
|
|
39
|
+
}
|
|
40
|
+
export interface CloudsearchEndow extends InferOutput<typeof cloudsearchEndow> {
|
|
41
|
+
}
|
|
42
|
+
type DocId = `${Environment}-${number}`;
|
|
43
|
+
interface Doc extends ToDoc<CloudsearchEndow> {
|
|
44
|
+
documentId: DocId;
|
|
45
|
+
_score: number;
|
|
46
|
+
}
|
|
47
|
+
export interface HitFields extends ToHitFields<Omit<Doc, "documentId" | "_score">> {
|
|
48
|
+
}
|
|
49
|
+
export type Update = ToUpdate<DocId, CloudsearchEndow>;
|
|
50
|
+
export {};
|
package/dist/db.d.mts
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { EndowId, Endowment as EndowmentShape, Environment, MediaId, MediaType, Milestone as MilestoneShape, MilestoneId, Program as ProgramShape, ProgramId } from "./schema.mjs";
|
|
2
|
+
export type { EndowId, SocialMediaURLs, Allocation, Increment, EndowDesignation, Environment, ProgramId, } from "./schema.mjs";
|
|
3
|
+
export declare const endowGsi: {
|
|
4
|
+
readonly regnumEnv: "regnum-env-gsi";
|
|
5
|
+
readonly slugEnv: "slug-env-gsi";
|
|
6
|
+
};
|
|
7
|
+
export declare namespace EndowCount {
|
|
8
|
+
interface Keys {
|
|
9
|
+
PK: "Count";
|
|
10
|
+
SK: Environment;
|
|
11
|
+
}
|
|
12
|
+
interface NonKeyAttributes {
|
|
13
|
+
count: number;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export declare namespace Endow {
|
|
17
|
+
type Keys = {
|
|
18
|
+
PK: `Endow#${EndowId}`;
|
|
19
|
+
SK: Environment;
|
|
20
|
+
};
|
|
21
|
+
type NonKeyAttributes = EndowmentShape & {
|
|
22
|
+
/** in USD @deprecated */
|
|
23
|
+
payout_minimum?: number;
|
|
24
|
+
/** @deprecated */
|
|
25
|
+
splitLiqPct?: number;
|
|
26
|
+
/** @deprecated */
|
|
27
|
+
splitFixed?: boolean;
|
|
28
|
+
/** @deprecated */
|
|
29
|
+
sfCompounded?: boolean;
|
|
30
|
+
};
|
|
31
|
+
interface DbRecord extends Keys, NonKeyAttributes {
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export declare namespace RegNumEnvGsi {
|
|
35
|
+
type Name = typeof endowGsi.regnumEnv;
|
|
36
|
+
interface Keys extends Pick<Endow.NonKeyAttributes, "registration_number" | "env"> {
|
|
37
|
+
}
|
|
38
|
+
interface DbRecord extends Keys, Endow.Keys, Pick<Endow.NonKeyAttributes, "claimed" | "name" | "hq_country" | "id"> {
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export declare namespace SlugEnvGsi {
|
|
42
|
+
type Name = typeof endowGsi.slugEnv;
|
|
43
|
+
interface Keys extends Pick<Endow.NonKeyAttributes, "slug" | "env"> {
|
|
44
|
+
}
|
|
45
|
+
interface DbRecord extends Endow.DbRecord {
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export declare namespace Program {
|
|
49
|
+
interface Keys {
|
|
50
|
+
PK: `Endow#${number}#${Environment}`;
|
|
51
|
+
SK: `Prog#${ProgramId}`;
|
|
52
|
+
}
|
|
53
|
+
interface NonKeyAttributes extends ProgramShape {
|
|
54
|
+
}
|
|
55
|
+
interface DbRecord extends Keys, NonKeyAttributes {
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export declare namespace Milestone {
|
|
59
|
+
interface Keys {
|
|
60
|
+
PK: `Prog#${string}#${Environment}`;
|
|
61
|
+
SK: `Mile#${MilestoneId}`;
|
|
62
|
+
}
|
|
63
|
+
interface DbRecord extends Keys, MilestoneShape {
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export declare const mediaGsi: {
|
|
67
|
+
readonly 1: "gsi1";
|
|
68
|
+
};
|
|
69
|
+
export declare namespace Media {
|
|
70
|
+
interface Keys {
|
|
71
|
+
PK: `Endow#${EndowId}#${Environment}`;
|
|
72
|
+
SK: `Media#${MediaId}`;
|
|
73
|
+
}
|
|
74
|
+
/** "0" - featured (goes before 1), "1" - not-featured */
|
|
75
|
+
type FeaturedFlag = "0" | "1";
|
|
76
|
+
interface NonKeyAttributes {
|
|
77
|
+
id: MediaId;
|
|
78
|
+
gsi1PK: Keys["PK"];
|
|
79
|
+
gsi1SK: `MediaList#${FeaturedFlag}#${MediaId}#${MediaType}`;
|
|
80
|
+
/** iso string */
|
|
81
|
+
dateCreated: string;
|
|
82
|
+
}
|
|
83
|
+
interface VideoAttributes extends NonKeyAttributes {
|
|
84
|
+
type: Extract<MediaType, "video">;
|
|
85
|
+
url: string;
|
|
86
|
+
}
|
|
87
|
+
interface VideoDbRecord extends Keys, VideoAttributes {
|
|
88
|
+
}
|
|
89
|
+
type DbRecord = VideoDbRecord;
|
|
90
|
+
namespace Gsi1 {
|
|
91
|
+
type Name = (typeof mediaGsi)[1];
|
|
92
|
+
interface Keys extends Pick<NonKeyAttributes, "gsi1PK" | "gsi1SK"> {
|
|
93
|
+
}
|
|
94
|
+
interface DbRecord extends Keys, NonKeyAttributes {
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Media } from "./db.mjs";
|
|
2
|
+
import type { Milestone, Program as ProgramShape } from "./schema.mjs";
|
|
3
|
+
export type { Allocation, DonateMethodId, EndowDesignation, Endowment as Endow, EndowFields, EndowQueryParams, EndowUpdate, Environment, Increment, MediaQueryParams, MediaQueryParamsObj, MediaType, MediaUpdate, Milestone, MilestoneUpdate, NewMilestone, NewProgram, ProgramUpdate, SocialMediaURLs, UnSdgNum, } from "./schema.mjs";
|
|
4
|
+
export type { CloudsearchEndow as EndowItem, CloudsearchEndowsQueryParams as EndowsQueryParams, } from "./cloudsearch.mjs";
|
|
5
|
+
export interface Program extends ProgramShape {
|
|
6
|
+
milestones: Milestone[];
|
|
7
|
+
}
|
|
8
|
+
/** web-app format */
|
|
9
|
+
export interface IMedia extends Omit<Media.DbRecord, "PK" | "SK" | "gsi1PK" | "gsi1SK"> {
|
|
10
|
+
featured: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface MediaPage {
|
|
13
|
+
items: IMedia[];
|
|
14
|
+
nextPageKey?: string;
|
|
15
|
+
}
|