@better-giving/endowment 1.0.21 → 1.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cloudsearch.mjs +4 -4
- package/dist/schema.mjs +11 -19
- package/package.json +20 -7
- package/src/cloudsearch.mts +12 -2
- package/src/index.mts +0 -1
- package/src/schema.mts +22 -31
- package/dist/cloudsearch.d.mts +0 -47
- package/dist/db.d.mts +0 -90
- package/dist/index.d.mts +0 -16
- package/dist/schema.d.mts +0 -755
package/dist/cloudsearch.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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
1
|
import { orgDesignation, unSdgNum } from "@better-giving/schemas";
|
|
4
|
-
|
|
2
|
+
import { array, boolean, integer, keyof, mapItems, minValue, number, object, optional, pick, pipe, string, transform, } from "valibot";
|
|
3
|
+
import { csvStrs, endowment, str } from "./schema.mjs";
|
|
4
|
+
const boolCsv = pipe(csvStrs, mapItems((x) => x === "true"), array(boolean()));
|
|
5
5
|
export const cloudsearchEndowFields = object({
|
|
6
6
|
contributions_total: number(),
|
|
7
7
|
contributions_count: number(),
|
|
@@ -31,7 +31,7 @@ export const endowsQueryParams = object({
|
|
|
31
31
|
query: str,
|
|
32
32
|
page: pipe(string(), transform((x) => +x), integer(), minValue(1)),
|
|
33
33
|
endow_designation: optional(pipe(csvStrs, array(orgDesignation))),
|
|
34
|
-
sdgs: optional(pipe(csvStrs, mapItems(
|
|
34
|
+
sdgs: optional(pipe(csvStrs, mapItems((x) => +x), array(unSdgNum))),
|
|
35
35
|
kyc_only: optional(boolCsv),
|
|
36
36
|
fund_opt_in: optional(boolCsv),
|
|
37
37
|
claimed: optional(boolCsv),
|
package/dist/schema.mjs
CHANGED
|
@@ -17,15 +17,12 @@ export const allocation = pipe(object({
|
|
|
17
17
|
export const endowId = pipe(number(), integer(), minValue(1));
|
|
18
18
|
export const endowIdParam = pipe(string(), transform((x) => +x), endowId);
|
|
19
19
|
export const segmentMaxChars = 30;
|
|
20
|
-
export const segment =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
//valid characters
|
|
27
|
-
regex(/^[a-zA-Z0-9-._~]+$/, "allowed: numbers | letters | - | . | _ | ~"), excludes("..", "should not contain double periods"), custom((x) => !x.startsWith("."), "should not start with dot"), custom((x) => !x.endsWith("."), "should not end with dot"));
|
|
28
|
-
});
|
|
20
|
+
export const segment = pipe(str, maxLength(segmentMaxChars, ({ requirement: r }) => `cannot exceed ${r} chars`),
|
|
21
|
+
//must not be id-like
|
|
22
|
+
regex(/^(?!^\d+$)/, "should not be an id"),
|
|
23
|
+
//valid characters
|
|
24
|
+
regex(/^[a-zA-Z0-9-._~]+$/, "allowed: numbers | letters | - | . | _ | ~"), excludes("..", "should not contain double periods"), custom((x) => !x.startsWith("."), "should not start with dot"), custom((x) => !x.endsWith("."), "should not end with dot"));
|
|
25
|
+
export const slug = lazy((x) => (x ? segment : str));
|
|
29
26
|
export const reg_number = pipe(str, nonEmpty("required"), regex(/^[a-zA-Z0-9]+$/, "must only contain letters and numbers"));
|
|
30
27
|
export const donateMethodIds = ["stripe", "crypto", "daf", "stocks"];
|
|
31
28
|
export const donateMethodId = picklist(donateMethodIds);
|
|
@@ -60,7 +57,7 @@ export const increment = object({
|
|
|
60
57
|
export const endowment = object({
|
|
61
58
|
id: endowId,
|
|
62
59
|
env,
|
|
63
|
-
slug: optional(
|
|
60
|
+
slug: optional(slug),
|
|
64
61
|
registration_number: reg_number,
|
|
65
62
|
name: pipe(str, nonEmpty("required")),
|
|
66
63
|
endow_designation: orgDesignation,
|
|
@@ -87,19 +84,14 @@ export const endowment = object({
|
|
|
87
84
|
increments: optional(pipe(array(increment), maxLength(MAX_NUM_INCREMENTS))),
|
|
88
85
|
fund_opt_in: optional(boolean()),
|
|
89
86
|
/** endowment is not claimed if `false` only */
|
|
90
|
-
claimed:
|
|
91
|
-
kyc_donors_only:
|
|
87
|
+
claimed: boolean(),
|
|
88
|
+
kyc_donors_only: boolean(),
|
|
92
89
|
});
|
|
93
90
|
export const endowUpdate = partial(omit(endowment, ["id", "claimed", "kyc_donors_only", "env"]));
|
|
94
91
|
export const endowFields = keyof(endowment);
|
|
95
|
-
|
|
92
|
+
/** for ein path, only fields in reg-num/env gsi is available */
|
|
93
|
+
export const endowQueryParams = object({
|
|
96
94
|
fields: optional(pipe(csvStrs, array(endowFields))),
|
|
97
|
-
slug: optional(segment),
|
|
98
|
-
env,
|
|
99
|
-
});
|
|
100
|
-
export const endowByEinParams = object({
|
|
101
|
-
env,
|
|
102
|
-
ein: reg_number,
|
|
103
95
|
});
|
|
104
96
|
const amnt = pipe(number(), minValue(0));
|
|
105
97
|
export const programId = pipe(str, uuid());
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@better-giving/endowment",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.24",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@better-giving/schemas": "1.0.1",
|
|
6
|
-
"@better-giving/types": "1.0.1"
|
|
6
|
+
"@better-giving/types": "1.0.1",
|
|
7
|
+
"valibot": "0.42.0"
|
|
7
8
|
},
|
|
8
9
|
"devDependencies": {
|
|
9
10
|
"@better-giving/config": "workspace:*"
|
|
@@ -13,13 +14,25 @@
|
|
|
13
14
|
"dist"
|
|
14
15
|
],
|
|
15
16
|
"exports": {
|
|
16
|
-
".":
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./src/index.mts",
|
|
19
|
+
"default": "./dist/index.mjs"
|
|
20
|
+
},
|
|
21
|
+
"./schema": {
|
|
22
|
+
"types": "./src/schema.mts",
|
|
23
|
+
"default": "./dist/schema.mjs"
|
|
24
|
+
},
|
|
25
|
+
"./db": {
|
|
26
|
+
"types": "./src/db.mts",
|
|
27
|
+
"default": "./dist/db.mjs"
|
|
28
|
+
},
|
|
29
|
+
"./cloudsearch": {
|
|
30
|
+
"types": "./src/cloudsearch.mts",
|
|
31
|
+
"default": "./dist/cloudsearch.mjs"
|
|
32
|
+
}
|
|
20
33
|
},
|
|
21
34
|
"scripts": {
|
|
22
35
|
"publish": "npm publish --access public",
|
|
23
|
-
"build": "tsc --outDir dist"
|
|
36
|
+
"build": "tsc --outDir dist --declaration false"
|
|
24
37
|
}
|
|
25
38
|
}
|
package/src/cloudsearch.mts
CHANGED
|
@@ -23,7 +23,11 @@ import {
|
|
|
23
23
|
} from "valibot";
|
|
24
24
|
import { type Environment, csvStrs, endowment, str } from "./schema.mjs";
|
|
25
25
|
|
|
26
|
-
const boolCsv = pipe(
|
|
26
|
+
const boolCsv = pipe(
|
|
27
|
+
csvStrs,
|
|
28
|
+
mapItems((x) => x === "true"),
|
|
29
|
+
array(boolean())
|
|
30
|
+
);
|
|
27
31
|
|
|
28
32
|
export const cloudsearchEndowFields = object({
|
|
29
33
|
contributions_total: number(),
|
|
@@ -62,7 +66,13 @@ export const endowsQueryParams = object({
|
|
|
62
66
|
minValue(1)
|
|
63
67
|
),
|
|
64
68
|
endow_designation: optional(pipe(csvStrs, array(orgDesignation))),
|
|
65
|
-
sdgs: optional(
|
|
69
|
+
sdgs: optional(
|
|
70
|
+
pipe(
|
|
71
|
+
csvStrs,
|
|
72
|
+
mapItems((x) => +x),
|
|
73
|
+
array(unSdgNum)
|
|
74
|
+
)
|
|
75
|
+
),
|
|
66
76
|
kyc_only: optional(boolCsv),
|
|
67
77
|
fund_opt_in: optional(boolCsv),
|
|
68
78
|
claimed: optional(boolCsv),
|
package/src/index.mts
CHANGED
package/src/schema.mts
CHANGED
|
@@ -73,23 +73,22 @@ export const endowIdParam = pipe(
|
|
|
73
73
|
);
|
|
74
74
|
|
|
75
75
|
export const segmentMaxChars = 30;
|
|
76
|
-
export const segment =
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
});
|
|
76
|
+
export const segment = pipe(
|
|
77
|
+
str,
|
|
78
|
+
maxLength(
|
|
79
|
+
segmentMaxChars,
|
|
80
|
+
({ requirement: r }) => `cannot exceed ${r} chars`
|
|
81
|
+
),
|
|
82
|
+
//must not be id-like
|
|
83
|
+
regex(/^(?!^\d+$)/, "should not be an id"),
|
|
84
|
+
//valid characters
|
|
85
|
+
regex(/^[a-zA-Z0-9-._~]+$/, "allowed: numbers | letters | - | . | _ | ~"),
|
|
86
|
+
excludes("..", "should not contain double periods"),
|
|
87
|
+
custom((x) => !(x as string).startsWith("."), "should not start with dot"),
|
|
88
|
+
custom((x) => !(x as string).endsWith("."), "should not end with dot")
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
export const slug = lazy((x) => (x ? segment : str));
|
|
93
92
|
|
|
94
93
|
export const reg_number = pipe(
|
|
95
94
|
str,
|
|
@@ -161,7 +160,7 @@ export type Increment = InferOutput<typeof increment>;
|
|
|
161
160
|
export const endowment = object({
|
|
162
161
|
id: endowId,
|
|
163
162
|
env,
|
|
164
|
-
slug: optional(
|
|
163
|
+
slug: optional(slug),
|
|
165
164
|
registration_number: reg_number,
|
|
166
165
|
name: pipe(str, nonEmpty("required")),
|
|
167
166
|
endow_designation: orgDesignation,
|
|
@@ -190,8 +189,8 @@ export const endowment = object({
|
|
|
190
189
|
fund_opt_in: optional(boolean()),
|
|
191
190
|
|
|
192
191
|
/** endowment is not claimed if `false` only */
|
|
193
|
-
claimed:
|
|
194
|
-
kyc_donors_only:
|
|
192
|
+
claimed: boolean(),
|
|
193
|
+
kyc_donors_only: boolean(),
|
|
195
194
|
});
|
|
196
195
|
|
|
197
196
|
export const endowUpdate = partial(
|
|
@@ -203,20 +202,12 @@ export type Endowment = InferOutput<typeof endowment>;
|
|
|
203
202
|
export type EndowUpdate = InferOutput<typeof endowUpdate>;
|
|
204
203
|
export type EndowmentFields = InferOutput<typeof endowFields>;
|
|
205
204
|
|
|
206
|
-
|
|
205
|
+
/** for ein path, only fields in reg-num/env gsi is available */
|
|
206
|
+
export const endowQueryParams = object({
|
|
207
207
|
fields: optional(pipe(csvStrs, array(endowFields))),
|
|
208
|
-
slug: optional(segment),
|
|
209
|
-
env,
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
export type EndowQueryParam = InferInput<typeof endowQueryParam>;
|
|
213
|
-
|
|
214
|
-
export const endowByEinParams = object({
|
|
215
|
-
env,
|
|
216
|
-
ein: reg_number,
|
|
217
208
|
});
|
|
218
209
|
|
|
219
|
-
export type
|
|
210
|
+
export type EndowQueryParam = InferInput<typeof endowQueryParams>;
|
|
220
211
|
|
|
221
212
|
const amnt = pipe(number(), minValue(0));
|
|
222
213
|
export const programId = pipe(str, uuid());
|
package/dist/cloudsearch.d.mts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { ToDoc, ToHitFields, ToUpdate } from "@better-giving/types/cloudsearch";
|
|
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>;
|
|
40
|
-
type DocId = `${Environment}-${number}`;
|
|
41
|
-
type Doc = {
|
|
42
|
-
documentId: DocId;
|
|
43
|
-
_score: number;
|
|
44
|
-
} & ToDoc<CloudsearchEndow>;
|
|
45
|
-
export type HitFields = ToHitFields<Omit<Doc, "documentId" | "_score">>;
|
|
46
|
-
export type Update = ToUpdate<DocId, CloudsearchEndow>;
|
|
47
|
-
export {};
|
package/dist/db.d.mts
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
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
|
-
fiscal_sponsored: boolean;
|
|
23
|
-
/** in USD @deprecated */
|
|
24
|
-
payout_minimum?: number;
|
|
25
|
-
/** @deprecated */
|
|
26
|
-
splitLiqPct?: number;
|
|
27
|
-
/** @deprecated */
|
|
28
|
-
splitFixed?: boolean;
|
|
29
|
-
/** @deprecated */
|
|
30
|
-
sfCompounded?: boolean;
|
|
31
|
-
};
|
|
32
|
-
type DbRecord = Keys & NonKeyAttributes;
|
|
33
|
-
}
|
|
34
|
-
export declare namespace RegNumEnvGsi {
|
|
35
|
-
type Name = typeof endowGsi.regnumEnv;
|
|
36
|
-
type Keys = Pick<Endow.NonKeyAttributes, "registration_number" | "env">;
|
|
37
|
-
type DbRecord = Keys & Endow.Keys & Pick<Endow.NonKeyAttributes, "claimed" | "name" | "hq_country" | "id">;
|
|
38
|
-
}
|
|
39
|
-
export declare namespace SlugEnvGsi {
|
|
40
|
-
type Name = typeof endowGsi.slugEnv;
|
|
41
|
-
type Keys = Pick<Endow.NonKeyAttributes, "slug" | "env">;
|
|
42
|
-
type DbRecord = Endow.DbRecord;
|
|
43
|
-
}
|
|
44
|
-
export declare namespace Program {
|
|
45
|
-
type Keys = {
|
|
46
|
-
PK: `Endow#${number}#${Environment}`;
|
|
47
|
-
SK: `Prog#${ProgramId}`;
|
|
48
|
-
};
|
|
49
|
-
type NonKeyAttributes = ProgramShape & {
|
|
50
|
-
/** in USD */
|
|
51
|
-
totalDonations?: number;
|
|
52
|
-
};
|
|
53
|
-
type DbRecord = Keys & NonKeyAttributes;
|
|
54
|
-
}
|
|
55
|
-
export declare namespace Milestone {
|
|
56
|
-
type Keys = {
|
|
57
|
-
PK: `Prog#${string}#${Environment}`;
|
|
58
|
-
SK: `Mile#${MilestoneId}`;
|
|
59
|
-
};
|
|
60
|
-
type DbRecord = Keys & MilestoneShape;
|
|
61
|
-
}
|
|
62
|
-
export declare const mediaGsi: {
|
|
63
|
-
readonly 1: "gsi1";
|
|
64
|
-
};
|
|
65
|
-
export declare namespace Media {
|
|
66
|
-
type Keys = {
|
|
67
|
-
PK: `Endow#${EndowId}#${Environment}`;
|
|
68
|
-
SK: `Media#${MediaId}`;
|
|
69
|
-
};
|
|
70
|
-
/** "0" - featured (goes before 1), "1" - not-featured */
|
|
71
|
-
type FeaturedFlag = "0" | "1";
|
|
72
|
-
type NonKeyAttributes = {
|
|
73
|
-
id: MediaId;
|
|
74
|
-
gsi1PK: Keys["PK"];
|
|
75
|
-
gsi1SK: `MediaList#${FeaturedFlag}#${MediaId}#${MediaType}`;
|
|
76
|
-
/** iso string */
|
|
77
|
-
dateCreated: string;
|
|
78
|
-
};
|
|
79
|
-
type VideoAttributes = NonKeyAttributes & {
|
|
80
|
-
type: Extract<MediaType, "video">;
|
|
81
|
-
url: string;
|
|
82
|
-
};
|
|
83
|
-
type VideoDbRecord = Keys & VideoAttributes;
|
|
84
|
-
type DbRecord = VideoDbRecord;
|
|
85
|
-
namespace Gsi1 {
|
|
86
|
-
type Name = (typeof mediaGsi)[1];
|
|
87
|
-
type Keys = Pick<NonKeyAttributes, "gsi1PK" | "gsi1SK">;
|
|
88
|
-
type DbRecord = Keys & NonKeyAttributes;
|
|
89
|
-
}
|
|
90
|
-
}
|
package/dist/index.d.mts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Endow as NEndow, Media, Program as NProgram } from "./db.mjs";
|
|
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";
|
|
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">;
|
|
6
|
-
export type Program = Omit<NProgram.DbRecord, "PK" | "SK"> & {
|
|
7
|
-
milestones: Milestone[];
|
|
8
|
-
};
|
|
9
|
-
/** web-app format */
|
|
10
|
-
export type TMedia = Omit<Media.DbRecord, "PK" | "SK" | "gsi1PK" | "gsi1SK"> & {
|
|
11
|
-
featured: boolean;
|
|
12
|
-
};
|
|
13
|
-
export type MediaPage = {
|
|
14
|
-
items: TMedia[];
|
|
15
|
-
nextPageKey?: string;
|
|
16
|
-
};
|