@better-giving/endowment 1.0.7 → 1.0.9

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/db.d.mts CHANGED
@@ -1,5 +1,9 @@
1
1
  import type { EndowId, Endowment as EndowmentShape, Environment, Milestone as MilestoneShape, MilestoneId, Program as ProgramShape, ProgramId } from "./schema.mjs";
2
2
  export type { EndowId, SocialMediaURLs, Allocation, Increment, EndowDesignation, Environment, ProgramId, } from "./schema.mjs";
3
+ export declare const gsi: {
4
+ readonly regnumEnv: "regnum-env-gsi";
5
+ readonly slugEnv: "slug-env-gsi";
6
+ };
3
7
  export declare namespace EndowCount {
4
8
  interface Keys {
5
9
  PK: "Count";
@@ -25,17 +29,18 @@ export declare namespace Endow {
25
29
  splitLiqPct?: number;
26
30
  /** @deprecated */
27
31
  splitFixed?: boolean;
32
+ /** @deprecated */
28
33
  sfCompounded?: boolean;
29
34
  };
30
35
  type DBRecord = Keys & NonKeyAttributes;
31
36
  }
32
37
  export declare namespace RegNumEnvGsi {
33
- type Name = "regnum-env-gsi";
38
+ type Name = typeof gsi.regnumEnv;
34
39
  type Keys = Pick<Endow.NonKeyAttributes, "registration_number" | "env">;
35
40
  type DBRecord = Keys & Endow.Keys & Pick<Endow.NonKeyAttributes, "claimed" | "name" | "hq_country" | "id">;
36
41
  }
37
42
  export declare namespace SlugEnvGsi {
38
- type Name = "slug-env-gsi";
43
+ type Name = typeof gsi.slugEnv;
39
44
  type Keys = Pick<Endow.NonKeyAttributes, "slug" | "env">;
40
45
  type DBRecord = Endow.DBRecord;
41
46
  }
package/dist/db.mjs CHANGED
@@ -1 +1,4 @@
1
- export {};
1
+ export const gsi = {
2
+ regnumEnv: "regnum-env-gsi",
3
+ slugEnv: "slug-env-gsi",
4
+ };
package/dist/schema.d.mts CHANGED
@@ -2,6 +2,7 @@ import { env, orgDesignation, unSdgNum } from "@better-giving/schemas";
2
2
  export type { OrgDesignation as EndowDesignation, Environment, UnSdgNum, } from "@better-giving/schemas";
3
3
  export { orgDesignation as endowDesignation, env, unSdgNum };
4
4
  import { type InferInput, type InferOutput } from "valibot";
5
+ export declare const str: import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>;
5
6
  export declare const allocation: import("valibot").SchemaWithPipe<[import("valibot").ObjectSchema<{
6
7
  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>]>;
7
8
  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>]>;
@@ -21,14 +22,16 @@ export declare const reg_number: import("valibot").SchemaWithPipe<[import("valib
21
22
  export declare const donateMethodIds: readonly ["stripe", "crypto", "daf", "stocks"];
22
23
  export declare const donateMethodId: import("valibot").PicklistSchema<readonly ["stripe", "crypto", "daf", "stocks"], undefined>;
23
24
  export type DonateMethodId = InferOutput<typeof donateMethodId>;
24
- declare const social_media_urls: import("valibot").ObjectSchema<{
25
- readonly facebook: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
26
- readonly twitter: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
27
- readonly linkedin: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
28
- readonly discord: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
29
- readonly instagram: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
30
- readonly youtube: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
31
- readonly tiktok: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
25
+ export declare const _url: import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>;
26
+ export declare const userInputUrl: 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">]>>;
27
+ export declare const social_media_urls: import("valibot").ObjectSchema<{
28
+ readonly facebook: 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>;
29
+ readonly twitter: 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>;
30
+ readonly linkedin: 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>;
31
+ readonly discord: 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>;
32
+ readonly instagram: 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>;
33
+ readonly youtube: 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>;
34
+ 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>;
32
35
  }, undefined>;
33
36
  export type SocialMediaURLs = InferOutput<typeof social_media_urls>;
34
37
  export declare const MAX_RECEIPT_MSG_CHAR = 500;
@@ -57,16 +60,16 @@ export declare const endowment: import("valibot").ObjectSchema<{
57
60
  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">]>;
58
61
  readonly street_address: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, never>;
59
62
  readonly social_media_urls: import("valibot").ObjectSchema<{
60
- readonly facebook: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
61
- readonly twitter: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
62
- readonly linkedin: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
63
- readonly discord: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
64
- readonly instagram: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
65
- readonly youtube: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
66
- readonly tiktok: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
63
+ readonly facebook: 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>;
64
+ readonly twitter: 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>;
65
+ readonly linkedin: 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>;
66
+ readonly discord: 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>;
67
+ readonly instagram: 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>;
68
+ readonly youtube: 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>;
69
+ 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>;
67
70
  }, undefined>;
68
71
  /** website */
69
- readonly url: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
72
+ 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>;
70
73
  readonly sdgs: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>, import("valibot").MinLengthAction<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1, undefined>]>;
71
74
  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>;
72
75
  readonly hide_bg_tip: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
@@ -107,16 +110,16 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
107
110
  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">]>;
108
111
  readonly street_address: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, never>;
109
112
  readonly social_media_urls: import("valibot").ObjectSchema<{
110
- readonly facebook: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
111
- readonly twitter: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
112
- readonly linkedin: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
113
- readonly discord: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
114
- readonly instagram: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
115
- readonly youtube: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
116
- readonly tiktok: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
113
+ readonly facebook: 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>;
114
+ readonly twitter: 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>;
115
+ readonly linkedin: 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>;
116
+ readonly discord: 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>;
117
+ readonly instagram: 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>;
118
+ readonly youtube: 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>;
119
+ 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>;
117
120
  }, undefined>;
118
121
  /** website */
119
- readonly url: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
122
+ 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>;
120
123
  readonly sdgs: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>, import("valibot").MinLengthAction<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1, undefined>]>;
121
124
  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>;
122
125
  readonly hide_bg_tip: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
@@ -157,16 +160,16 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
157
160
  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">]>;
158
161
  readonly street_address: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, never>;
159
162
  readonly social_media_urls: import("valibot").ObjectSchema<{
160
- readonly facebook: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
161
- readonly twitter: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
162
- readonly linkedin: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
163
- readonly discord: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
164
- readonly instagram: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
165
- readonly youtube: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
166
- readonly tiktok: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
163
+ readonly facebook: 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>;
164
+ readonly twitter: 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>;
165
+ readonly linkedin: 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>;
166
+ readonly discord: 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>;
167
+ readonly instagram: 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>;
168
+ readonly youtube: 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>;
169
+ 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>;
167
170
  }, undefined>;
168
171
  /** website */
169
- readonly url: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
172
+ 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>;
170
173
  readonly sdgs: import("valibot").SchemaWithPipe<[import("valibot").ArraySchema<import("valibot").PicklistSchema<readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], undefined>, undefined>, import("valibot").MinLengthAction<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1, undefined>]>;
171
174
  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>;
172
175
  readonly hide_bg_tip: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, never>;
@@ -196,7 +199,7 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
196
199
  cash: number;
197
200
  liq: number;
198
201
  lock: number;
199
- }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
202
+ }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
200
203
  value: string;
201
204
  label: string;
202
205
  }[], 4>>): import("valibot").Dataset<{
@@ -242,7 +245,7 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
242
245
  cash: number;
243
246
  liq: number;
244
247
  lock: number;
245
- }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
248
+ }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
246
249
  value: string;
247
250
  label: string;
248
251
  }[], 4>>;
@@ -331,14 +334,14 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
331
334
  cash: number;
332
335
  liq: number;
333
336
  lock: number;
334
- }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
337
+ }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
335
338
  value: string;
336
339
  label: string;
337
340
  }[], 4>;
338
341
  } | undefined;
339
342
  }, "_types" | "_run" | "entries"> & {
340
343
  readonly entries: {
341
- readonly url: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>, never>;
344
+ readonly url: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").StartsWithAction<string, "https://", "should start with https://">, import("valibot").CustomSchema<string, "incomplete url">, import("valibot").UrlAction<string, "invalid url">]>>, never>, never>;
342
345
  readonly slug: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").LazySchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]> | import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").MaxLengthAction<string, 30, ({ requirement: r }: import("valibot").MaxLengthIssue<string, 30>) => string>, import("valibot").RegexAction<string, "should not be an id">, import("valibot").RegexAction<string, "allowed: numbers | letters | - | . | _ | ~">, import("valibot").ExcludesAction<string, "..", "should not contain double periods">, import("valibot").CustomSchema<string, "should not start with dot">, import("valibot").CustomSchema<string, "should not end with dot">]>>, never>, never>;
343
346
  readonly name: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").NonEmptyAction<string, "required">]>, never>;
344
347
  readonly overview: import("valibot").OptionalSchema<import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, never>, never>;
@@ -375,20 +378,20 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
375
378
  readonly registration_number: import("valibot").OptionalSchema<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">]>, never>;
376
379
  readonly endow_designation: import("valibot").OptionalSchema<import("valibot").PicklistSchema<readonly ["Charity", "Religious Organization", "University", "Hospital", "Other"], undefined>, never>;
377
380
  readonly social_media_urls: import("valibot").OptionalSchema<import("valibot").ObjectSchema<{
378
- readonly facebook: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
379
- readonly twitter: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
380
- readonly linkedin: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
381
- readonly discord: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
382
- readonly instagram: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
383
- readonly youtube: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
384
- readonly tiktok: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<[import("valibot").SchemaWithPipe<[import("valibot").StringSchema<undefined>, import("valibot").TrimAction]>, import("valibot").UrlAction<string, undefined>]>, never>;
381
+ readonly facebook: 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>;
382
+ readonly twitter: 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>;
383
+ readonly linkedin: 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>;
384
+ readonly discord: 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>;
385
+ readonly instagram: 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>;
386
+ readonly youtube: 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>;
387
+ 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>;
385
388
  }, undefined>, never>;
386
389
  };
387
390
  _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<{
388
391
  cash: number;
389
392
  liq: number;
390
393
  lock: number;
391
- }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
394
+ }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
392
395
  value: string;
393
396
  label: string;
394
397
  }[], 4>>): import("valibot").Dataset<{
@@ -434,7 +437,7 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
434
437
  cash: number;
435
438
  liq: number;
436
439
  lock: number;
437
- }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
440
+ }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
438
441
  value: string;
439
442
  label: string;
440
443
  }[], 4>>;
@@ -523,7 +526,7 @@ export declare const endowUpdate: Omit<Omit<import("valibot").ObjectSchema<{
523
526
  cash: number;
524
527
  liq: number;
525
528
  lock: number;
526
- }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
529
+ }> | import("valibot").MaxLengthIssue<string, 30> | import("valibot").RegexIssue<string> | import("valibot").ExcludesIssue<string, ".."> | import("valibot").CustomIssue | import("valibot").NonEmptyIssue<string> | import("valibot").PicklistIssue | import("valibot").UrlIssue<string> | import("valibot").StartsWithIssue<string, "https://"> | import("valibot").MaxLengthIssue<string, 140> | import("valibot").ArrayIssue | import("valibot").NonEmptyIssue<string[]> | import("valibot").MinLengthIssue<(2 | 1 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17)[], 1> | import("valibot").MaxLengthIssue<string, 500> | import("valibot").BooleanIssue | import("valibot").MaxLengthIssue<{
527
530
  value: string;
528
531
  label: string;
529
532
  }[], 4>;
package/dist/schema.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { env, orgDesignation, unSdgNum } from "@better-giving/schemas";
2
2
  export { orgDesignation as endowDesignation, env, unSdgNum };
3
- import { url, array, boolean, check, custom, excludes, integer, isoDate, keyof, lazy, maxLength, maxValue, minLength, minValue, nonEmpty, nullish, number, object, omit, optional, partial, picklist, pipe, regex, string, transform, trim, uuid, } from "valibot";
4
- const str = pipe(string(), trim());
3
+ import { url, array, boolean, check, custom, excludes, integer, isoDate, keyof, lazy, maxLength, maxValue, minLength, minValue, nonEmpty, nullish, number, object, omit, optional, partial, picklist, pipe, regex, startsWith, string, transform, trim, uuid, } from "valibot";
4
+ export const str = pipe(string(), trim());
5
5
  const pct = pipe(number(), integer(), minValue(0), maxValue(100));
6
6
  export const allocation = pipe(object({
7
7
  cash: pct,
@@ -23,15 +23,20 @@ export const segment = lazy((x) => {
23
23
  export const reg_number = pipe(str, nonEmpty("required"), regex(/^[a-zA-Z0-9]+$/, "must only contain letters and numbers"));
24
24
  export const donateMethodIds = ["stripe", "crypto", "daf", "stocks"];
25
25
  export const donateMethodId = picklist(donateMethodIds);
26
- const _url = pipe(str, url());
27
- const social_media_urls = object({
28
- facebook: optional(_url),
29
- twitter: optional(_url),
30
- linkedin: optional(_url),
31
- discord: optional(_url),
32
- instagram: optional(_url),
33
- youtube: optional(_url),
34
- tiktok: optional(_url),
26
+ export const _url = pipe(str, url());
27
+ export const userInputUrl = lazy((x) => {
28
+ if (!x)
29
+ return str;
30
+ return pipe(str, startsWith("https://", "should start with https://"), custom((x) => x !== "https://", "incomplete url"), url("invalid url"));
31
+ });
32
+ export const social_media_urls = object({
33
+ facebook: optional(userInputUrl),
34
+ twitter: optional(userInputUrl),
35
+ linkedin: optional(userInputUrl),
36
+ discord: optional(userInputUrl),
37
+ instagram: optional(userInputUrl),
38
+ youtube: optional(userInputUrl),
39
+ tiktok: optional(userInputUrl),
35
40
  });
36
41
  export const MAX_RECEIPT_MSG_CHAR = 500;
37
42
  export const incrementVal = pipe(str, nonEmpty("required"), transform((x) => +x), number("must be a number"), minValue(0, "must be greater than 0"),
@@ -61,7 +66,7 @@ export const endowment = object({
61
66
  street_address: optional(str),
62
67
  social_media_urls,
63
68
  /** website */
64
- url: optional(_url),
69
+ url: optional(userInputUrl),
65
70
  sdgs: pipe(array(unSdgNum), minLength(1)),
66
71
  receiptMsg: optional(pipe(str, maxLength(MAX_RECEIPT_MSG_CHAR))),
67
72
  //can be optional, default false and need not be explicit
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@better-giving/endowment",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "peerDependencies": {
5
5
  "@better-giving/schemas": "1.0.1",
6
6
  "@better-giving/types": "1.0.1"
package/src/db.mts CHANGED
@@ -2,6 +2,8 @@ import type {
2
2
  EndowId,
3
3
  Endowment as EndowmentShape,
4
4
  Environment,
5
+ MediaId,
6
+ MediaType,
5
7
  Milestone as MilestoneShape,
6
8
  MilestoneId,
7
9
  Program as ProgramShape,
@@ -17,6 +19,11 @@ export type {
17
19
  ProgramId,
18
20
  } from "./schema.mjs";
19
21
 
22
+ export const endowGsi = {
23
+ regnumEnv: "regnum-env-gsi",
24
+ slugEnv: "slug-env-gsi",
25
+ } as const;
26
+
20
27
  export namespace EndowCount {
21
28
  export interface Keys {
22
29
  PK: "Count";
@@ -45,27 +52,28 @@ export namespace Endow {
45
52
  splitLiqPct?: number;
46
53
  /** @deprecated */
47
54
  splitFixed?: boolean;
55
+ /** @deprecated */
48
56
  sfCompounded?: boolean;
49
57
  };
50
58
 
51
- export type DBRecord = Keys & NonKeyAttributes;
59
+ export type DbRecord = Keys & NonKeyAttributes;
52
60
  }
53
61
 
54
62
  export namespace RegNumEnvGsi {
55
- export type Name = "regnum-env-gsi";
63
+ export type Name = typeof endowGsi.regnumEnv;
56
64
  export type Keys = Pick<
57
65
  Endow.NonKeyAttributes,
58
66
  "registration_number" | "env"
59
67
  >;
60
- export type DBRecord = Keys &
68
+ export type DbRecord = Keys &
61
69
  Endow.Keys &
62
70
  Pick<Endow.NonKeyAttributes, "claimed" | "name" | "hq_country" | "id">;
63
71
  }
64
72
 
65
73
  export namespace SlugEnvGsi {
66
- export type Name = "slug-env-gsi";
74
+ export type Name = typeof endowGsi.slugEnv;
67
75
  export type Keys = Pick<Endow.NonKeyAttributes, "slug" | "env">;
68
- export type DBRecord = Endow.DBRecord; //all attributes are copied to this index
76
+ export type DbRecord = Endow.DbRecord; //all attributes are copied to this index
69
77
  }
70
78
 
71
79
  export namespace Program {
@@ -78,7 +86,7 @@ export namespace Program {
78
86
  /** in USD */
79
87
  totalDonations?: number;
80
88
  };
81
- export type DBRecord = Keys & NonKeyAttributes;
89
+ export type DbRecord = Keys & NonKeyAttributes;
82
90
  }
83
91
 
84
92
  export namespace Milestone {
@@ -86,5 +94,39 @@ export namespace Milestone {
86
94
  PK: `Prog#${string}#${Environment}`;
87
95
  SK: `Mile#${MilestoneId}`;
88
96
  };
89
- export type DBRecord = Keys & MilestoneShape;
97
+ export type DbRecord = Keys & MilestoneShape;
98
+ }
99
+
100
+ export const mediaGsi = {
101
+ 1: "gsi1",
102
+ } as const;
103
+ export namespace Media {
104
+ export type Keys = {
105
+ PK: `Endow#${EndowId}#${Environment}`;
106
+ SK: `Media#${MediaId}`;
107
+ };
108
+
109
+ /** "0" - featured (goes before 1), "1" - not-featured */
110
+ export type FeaturedFlag = "0" | "1";
111
+ export type NonKeyAttributes = {
112
+ id: MediaId;
113
+ gsi1PK: Keys["PK"];
114
+ gsi1SK: `MediaList#${FeaturedFlag}#${MediaId}#${MediaType}`;
115
+ /** iso string */
116
+ dateCreated: string;
117
+ };
118
+
119
+ export type VideoAttributes = NonKeyAttributes & {
120
+ type: Extract<MediaType, "video">;
121
+ url: string;
122
+ };
123
+
124
+ export type VideoDbRecord = Keys & VideoAttributes;
125
+ export type DbRecord = VideoDbRecord; // | album | article
126
+
127
+ export namespace Gsi1 {
128
+ export type Name = (typeof mediaGsi)[1];
129
+ export type Keys = Pick<NonKeyAttributes, "gsi1PK" | "gsi1SK">;
130
+ export type DbRecord = Keys & NonKeyAttributes;
131
+ }
90
132
  }
package/src/index.mts CHANGED
@@ -18,11 +18,13 @@ export type {
18
18
  ProgramUpdate,
19
19
  SocialMediaURLs,
20
20
  UnSdgNum,
21
+ MediaQueryParams,
22
+ MediaType,
21
23
  } from "./schema.mjs";
22
24
  export type { FundItem };
23
25
 
24
26
  export type Endow = Pick<
25
- NEndow.DBRecord,
27
+ NEndow.DbRecord,
26
28
  | "id"
27
29
  | "slug"
28
30
  | "active_in_countries"
package/src/schema.mts CHANGED
@@ -10,6 +10,7 @@ import {
10
10
  type InferInput,
11
11
  type InferOutput,
12
12
  array,
13
+ base64,
13
14
  boolean,
14
15
  check,
15
16
  custom,
@@ -32,13 +33,14 @@ import {
32
33
  picklist,
33
34
  pipe,
34
35
  regex,
36
+ startsWith,
35
37
  string,
36
38
  transform,
37
39
  trim,
38
40
  uuid,
39
41
  } from "valibot";
40
42
 
41
- const str = pipe(string(), trim());
43
+ export const str = pipe(string(), trim());
42
44
 
43
45
  const pct = pipe(number(), integer(), minValue(0), maxValue(100));
44
46
  export const allocation = pipe(
@@ -89,16 +91,25 @@ export const donateMethodIds = ["stripe", "crypto", "daf", "stocks"] as const;
89
91
  export const donateMethodId = picklist(donateMethodIds);
90
92
  export type DonateMethodId = InferOutput<typeof donateMethodId>;
91
93
 
92
- const _url = pipe(str, url());
94
+ export const _url = pipe(str, url());
95
+ export const userInputUrl = lazy((x) => {
96
+ if (!x) return str;
97
+ return pipe(
98
+ str,
99
+ startsWith("https://", "should start with https://"),
100
+ custom((x) => x !== "https://", "incomplete url"),
101
+ url("invalid url")
102
+ );
103
+ });
93
104
 
94
- const social_media_urls = object({
95
- facebook: optional(_url),
96
- twitter: optional(_url),
97
- linkedin: optional(_url),
98
- discord: optional(_url),
99
- instagram: optional(_url),
100
- youtube: optional(_url),
101
- tiktok: optional(_url),
105
+ export const social_media_urls = object({
106
+ facebook: optional(userInputUrl),
107
+ twitter: optional(userInputUrl),
108
+ linkedin: optional(userInputUrl),
109
+ discord: optional(userInputUrl),
110
+ instagram: optional(userInputUrl),
111
+ youtube: optional(userInputUrl),
112
+ tiktok: optional(userInputUrl),
102
113
  });
103
114
 
104
115
  export type SocialMediaURLs = InferOutput<typeof social_media_urls>;
@@ -150,7 +161,7 @@ export const endowment = object({
150
161
  street_address: optional(str),
151
162
  social_media_urls,
152
163
  /** website */
153
- url: optional(_url),
164
+ url: optional(userInputUrl),
154
165
  sdgs: pipe(array(unSdgNum), minLength(1)),
155
166
  receiptMsg: optional(pipe(str, maxLength(MAX_RECEIPT_MSG_CHAR))),
156
167
  //can be optional, default false and need not be explicit
@@ -280,3 +291,42 @@ export const programUpdate = partial(omit(newProgram, ["milestones"]));
280
291
  export type NewProgram = InferOutput<typeof newProgram>;
281
292
  export type Program = InferOutput<typeof program>;
282
293
  export type ProgramUpdate = InferOutput<typeof programUpdate>;
294
+
295
+ export const mediaUrl = pipe(str, url());
296
+ /**
297
+ * so that media is automatically sorted by date
298
+ * @see https://github.com/segmentio/ksuid
299
+ * */
300
+ export const mediaKsuid = pipe(str, nonEmpty() /** base62? */);
301
+ export const mediaTypes = ["album", "article", "video"] as const;
302
+ export const mediaType = picklist(mediaTypes);
303
+ export type MediaType = InferOutput<typeof mediaType>;
304
+
305
+ export const mediaUpdate = object({
306
+ url: optional(mediaUrl),
307
+ featured: optional(boolean()),
308
+ });
309
+
310
+ export type MediaId = InferOutput<typeof mediaKsuid>;
311
+
312
+ export const mediaQueryParams = object({
313
+ type: mediaType,
314
+ nextPageKey: optional(pipe(str, base64())),
315
+ featured: optional(
316
+ pipe(
317
+ str,
318
+ transform((x) => Boolean(x)),
319
+ boolean()
320
+ )
321
+ ),
322
+ limit: optional(
323
+ pipe(
324
+ string(),
325
+ transform((x) => +x),
326
+ number(),
327
+ integer(),
328
+ minValue(1)
329
+ )
330
+ ),
331
+ });
332
+ export type MediaQueryParams = InferInput<typeof mediaQueryParams>;