@ttt-productions/ttt-core 0.2.12 → 0.2.13

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.
Files changed (41) hide show
  1. package/dist/constants/business.d.ts +85 -0
  2. package/dist/constants/business.d.ts.map +1 -1
  3. package/dist/constants/business.js +98 -0
  4. package/dist/constants/business.js.map +1 -1
  5. package/dist/constants/index.d.ts +5 -0
  6. package/dist/constants/index.d.ts.map +1 -1
  7. package/dist/constants/index.js +5 -0
  8. package/dist/constants/index.js.map +1 -1
  9. package/dist/constants/options.d.ts +103 -0
  10. package/dist/constants/options.d.ts.map +1 -0
  11. package/dist/constants/options.js +161 -0
  12. package/dist/constants/options.js.map +1 -0
  13. package/dist/constants/pagination.d.ts +37 -0
  14. package/dist/constants/pagination.d.ts.map +1 -0
  15. package/dist/constants/pagination.js +40 -0
  16. package/dist/constants/pagination.js.map +1 -0
  17. package/dist/constants/retention.d.ts +25 -0
  18. package/dist/constants/retention.d.ts.map +1 -0
  19. package/dist/constants/retention.js +32 -0
  20. package/dist/constants/retention.js.map +1 -0
  21. package/dist/constants/scheduled-jobs.d.ts +9 -0
  22. package/dist/constants/scheduled-jobs.d.ts.map +1 -0
  23. package/dist/constants/scheduled-jobs.js +15 -0
  24. package/dist/constants/scheduled-jobs.js.map +1 -0
  25. package/dist/constants/storage-keys.d.ts +7 -0
  26. package/dist/constants/storage-keys.d.ts.map +1 -0
  27. package/dist/constants/storage-keys.js +8 -0
  28. package/dist/constants/storage-keys.js.map +1 -0
  29. package/dist/index.d.ts +1 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/utils/format.d.ts +6 -0
  34. package/dist/utils/format.d.ts.map +1 -0
  35. package/dist/utils/format.js +13 -0
  36. package/dist/utils/format.js.map +1 -0
  37. package/dist/utils/index.d.ts +2 -0
  38. package/dist/utils/index.d.ts.map +1 -0
  39. package/dist/utils/index.js +2 -0
  40. package/dist/utils/index.js.map +1 -0
  41. package/package.json +33 -1
@@ -29,4 +29,89 @@ export declare const USERNAME_MIN_LENGTH = 3;
29
29
  export declare const USERNAME_MAX_LENGTH = 20;
30
30
  /** Allowed characters in a user display name: letters and numbers only. */
31
31
  export declare const USERNAME_REGEX: RegExp;
32
+ /** Maximum number of skills a user can upload to their profile. */
33
+ export declare const SKILL_LIMIT = 8;
34
+ /** Maximum number of tags allowed per skill. */
35
+ export declare const MAX_SKILL_TAGS = 5;
36
+ /** Maximum number of recent mentions kept in the user's mention-history hook. */
37
+ export declare const MAX_HISTORY_ITEMS = 10;
38
+ /** Maximum number of results returned by the search hook. */
39
+ export declare const SEARCH_RESULT_LIMIT = 6;
40
+ /** Maximum length for a project title. */
41
+ export declare const MAX_PROJECT_TITLE_LENGTH = 150;
42
+ /** Maximum length for a project description. */
43
+ export declare const MAX_PROJECT_DESCRIPTION_LENGTH = 300;
44
+ /** Maximum number of files attached to a project. */
45
+ export declare const MAX_PROJECT_FILES = 5;
46
+ /** Maximum file size for project file attachments, in bytes (5MB). */
47
+ export declare const MAX_PROJECT_FILE_SIZE: number;
48
+ /** Allowed characters in titles: letters, numbers, spaces. */
49
+ export declare const TITLE_PATTERN: RegExp;
50
+ /** Maximum number of opportunities a single project can have open at once. */
51
+ export declare const MAX_PROJECT_OPPORTUNITIES = 3;
52
+ export declare const MAX_TALE_TITLE_LENGTH = 150;
53
+ export declare const MAX_TALE_DESCRIPTION_LENGTH = 300;
54
+ export declare const MAX_TUNE_TITLE_LENGTH = 150;
55
+ export declare const MAX_TUNE_DESCRIPTION_LENGTH = 300;
56
+ export declare const MAX_TELEVISION_TITLE_LENGTH = 150;
57
+ export declare const MAX_TELEVISION_DESCRIPTION_LENGTH = 300;
58
+ /** Maximum number of chapters a Tale can have. */
59
+ export declare const MAX_CHAPTERS = 10;
60
+ /** Maximum length for a chapter title. */
61
+ export declare const MAX_CHAPTER_TITLE_LENGTH = 150;
62
+ /** Maximum length for chapter body content. */
63
+ export declare const MAX_CHAPTER_CONTENT_LENGTH = 2500;
64
+ /** Maximum number of songs a Tunes project can have. */
65
+ export declare const MAX_SONGS = 10;
66
+ /** Maximum length for a song title. */
67
+ export declare const MAX_SONG_TITLE_LENGTH = 150;
68
+ /** Maximum length for a song description. */
69
+ export declare const MAX_SONG_DESCRIPTION_LENGTH = 300;
70
+ /** Maximum number of shows a Television project can have. */
71
+ export declare const MAX_SHOWS = 10;
72
+ /** Maximum length for a show title. */
73
+ export declare const MAX_SHOW_TITLE_LENGTH = 150;
74
+ /** Maximum length for a show description. */
75
+ export declare const MAX_SHOW_DESCRIPTION_LENGTH = 300;
76
+ /** Maximum number of open jobs a project can have. */
77
+ export declare const MAX_JOBS = 5;
78
+ /** Maximum number of applicants saved to a job. */
79
+ export declare const MAX_SAVED_APPLICANTS = 5;
80
+ /** Maximum length for a job title. */
81
+ export declare const MAX_JOB_TITLE_LENGTH = 150;
82
+ /** Maximum length for a job description / cover letter. */
83
+ export declare const MAX_JOB_DESCRIPTION_LENGTH = 400;
84
+ /** Maximum length for an opportunity title. */
85
+ export declare const MAX_OPPORTUNITY_TITLE_LENGTH = 150;
86
+ /** Maximum length for an opportunity description. */
87
+ export declare const MAX_OPPORTUNITY_DESCRIPTION_LENGTH = 1000;
88
+ /** Maximum length for a Streetz post. */
89
+ export declare const MAX_POST_LENGTH = 500;
90
+ /** Maximum number of mentions allowed in a single Streetz post. */
91
+ export declare const MAX_MENTIONS = 3;
92
+ /** Maximum characters of a mention's display name shown before truncation. */
93
+ export declare const MAX_MENTION_DISPLAY_LENGTH = 30;
94
+ /** Maximum length for a project-invite message. */
95
+ export declare const MAX_INVITE_MESSAGE_LENGTH = 500;
96
+ /** Maximum length for a donation message. */
97
+ export declare const MAX_DONATION_MESSAGE_LENGTH = 500;
98
+ /** Maximum length for an admin-message subject line. */
99
+ export declare const MAX_ADMIN_MESSAGE_SUBJECT_LENGTH = 100;
100
+ /** Maximum length for the initial body text of an admin message. */
101
+ export declare const MAX_ADMIN_MESSAGE_INITIAL_TEXT_LENGTH = 1000;
102
+ /** Maximum length for a content-violation appeal message. */
103
+ export declare const MAX_APPEAL_MESSAGE_LENGTH = 1000;
104
+ /** Maximum length for a feedback suggestion. */
105
+ export declare const MAX_FEEDBACK_SUGGESTION_LENGTH = 100;
106
+ /** Maximum number of distinct submitters tracked per feedback suggestion. */
107
+ export declare const MAX_FEEDBACK_SUBMITTERS = 100;
108
+ /** Maximum number of items submitted in a single library-review submission. */
109
+ export declare const MAX_LIBRARY_SUBMIT_BATCH = 50;
110
+ /** Admin task lifecycle statuses. */
111
+ export declare const ADMIN_TASK_STATUS: {
112
+ readonly PENDING: "pending";
113
+ readonly CHECKED_OUT: "checkedOut";
114
+ readonly WORK_LATER: "workLater";
115
+ readonly COMPLETED: "completed";
116
+ };
32
117
  //# sourceMappingURL=business.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"business.d.ts","sourceRoot":"","sources":["../../src/constants/business.ts"],"names":[],"mappings":"AAEA,gEAAgE;AAChE,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,sFAAsF;AACtF,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAIlD,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAEnF,eAAO,MAAM,oBAAoB;;;;;CAKvB,CAAC;AAIX,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,wFAAwF;AACxF,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,uFAAuF;AACvF,eAAO,MAAM,gBAAgB,6DAA6D,CAAC;AAI3F,4DAA4D;AAC5D,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAIzC,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,2EAA2E;AAC3E,eAAO,MAAM,cAAc,QAAmB,CAAC"}
1
+ {"version":3,"file":"business.d.ts","sourceRoot":"","sources":["../../src/constants/business.ts"],"names":[],"mappings":"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"}
@@ -33,4 +33,102 @@ export const USERNAME_MIN_LENGTH = 3;
33
33
  export const USERNAME_MAX_LENGTH = 20;
34
34
  /** Allowed characters in a user display name: letters and numbers only. */
35
35
  export const USERNAME_REGEX = /^[a-zA-Z0-9]+$/;
36
+ // --- User Profile Skills ---
37
+ /** Maximum number of skills a user can upload to their profile. */
38
+ export const SKILL_LIMIT = 8;
39
+ /** Maximum number of tags allowed per skill. */
40
+ export const MAX_SKILL_TAGS = 5;
41
+ // --- Mention History ---
42
+ /** Maximum number of recent mentions kept in the user's mention-history hook. */
43
+ export const MAX_HISTORY_ITEMS = 10;
44
+ // --- Search ---
45
+ /** Maximum number of results returned by the search hook. */
46
+ export const SEARCH_RESULT_LIMIT = 6;
47
+ // --- Project Titles & Descriptions ---
48
+ /** Maximum length for a project title. */
49
+ export const MAX_PROJECT_TITLE_LENGTH = 150;
50
+ /** Maximum length for a project description. */
51
+ export const MAX_PROJECT_DESCRIPTION_LENGTH = 300;
52
+ /** Maximum number of files attached to a project. */
53
+ export const MAX_PROJECT_FILES = 5;
54
+ /** Maximum file size for project file attachments, in bytes (5MB). */
55
+ export const MAX_PROJECT_FILE_SIZE = 5 * 1024 * 1024;
56
+ /** Allowed characters in titles: letters, numbers, spaces. */
57
+ export const TITLE_PATTERN = /^[a-zA-Z0-9 ]+$/;
58
+ /** Maximum number of opportunities a single project can have open at once. */
59
+ export const MAX_PROJECT_OPPORTUNITIES = 3;
60
+ // --- Project Subtypes (Tales / Tunes / Television) ---
61
+ // Length aliases — kept as named exports so call sites read clearly.
62
+ export const MAX_TALE_TITLE_LENGTH = MAX_PROJECT_TITLE_LENGTH;
63
+ export const MAX_TALE_DESCRIPTION_LENGTH = MAX_PROJECT_DESCRIPTION_LENGTH;
64
+ export const MAX_TUNE_TITLE_LENGTH = MAX_PROJECT_TITLE_LENGTH;
65
+ export const MAX_TUNE_DESCRIPTION_LENGTH = MAX_PROJECT_DESCRIPTION_LENGTH;
66
+ export const MAX_TELEVISION_TITLE_LENGTH = MAX_PROJECT_TITLE_LENGTH;
67
+ export const MAX_TELEVISION_DESCRIPTION_LENGTH = MAX_PROJECT_DESCRIPTION_LENGTH;
68
+ /** Maximum number of chapters a Tale can have. */
69
+ export const MAX_CHAPTERS = 10;
70
+ /** Maximum length for a chapter title. */
71
+ export const MAX_CHAPTER_TITLE_LENGTH = MAX_PROJECT_TITLE_LENGTH;
72
+ /** Maximum length for chapter body content. */
73
+ export const MAX_CHAPTER_CONTENT_LENGTH = 2500;
74
+ /** Maximum number of songs a Tunes project can have. */
75
+ export const MAX_SONGS = 10;
76
+ /** Maximum length for a song title. */
77
+ export const MAX_SONG_TITLE_LENGTH = MAX_PROJECT_TITLE_LENGTH;
78
+ /** Maximum length for a song description. */
79
+ export const MAX_SONG_DESCRIPTION_LENGTH = MAX_PROJECT_DESCRIPTION_LENGTH;
80
+ /** Maximum number of shows a Television project can have. */
81
+ export const MAX_SHOWS = 10;
82
+ /** Maximum length for a show title. */
83
+ export const MAX_SHOW_TITLE_LENGTH = MAX_PROJECT_TITLE_LENGTH;
84
+ /** Maximum length for a show description. */
85
+ export const MAX_SHOW_DESCRIPTION_LENGTH = MAX_PROJECT_DESCRIPTION_LENGTH;
86
+ // --- Job Board & Applications ---
87
+ /** Maximum number of open jobs a project can have. */
88
+ export const MAX_JOBS = 5;
89
+ /** Maximum number of applicants saved to a job. */
90
+ export const MAX_SAVED_APPLICANTS = 5;
91
+ /** Maximum length for a job title. */
92
+ export const MAX_JOB_TITLE_LENGTH = MAX_PROJECT_TITLE_LENGTH;
93
+ /** Maximum length for a job description / cover letter. */
94
+ export const MAX_JOB_DESCRIPTION_LENGTH = 400;
95
+ // --- Opportunities ---
96
+ /** Maximum length for an opportunity title. */
97
+ export const MAX_OPPORTUNITY_TITLE_LENGTH = 150;
98
+ /** Maximum length for an opportunity description. */
99
+ export const MAX_OPPORTUNITY_DESCRIPTION_LENGTH = 1000;
100
+ // --- Streetz (Social Feed) ---
101
+ /** Maximum length for a Streetz post. */
102
+ export const MAX_POST_LENGTH = 500;
103
+ /** Maximum number of mentions allowed in a single Streetz post. */
104
+ export const MAX_MENTIONS = 3;
105
+ /** Maximum characters of a mention's display name shown before truncation. */
106
+ export const MAX_MENTION_DISPLAY_LENGTH = 30;
107
+ // --- Messages & Invites ---
108
+ /** Maximum length for a project-invite message. */
109
+ export const MAX_INVITE_MESSAGE_LENGTH = 500;
110
+ /** Maximum length for a donation message. */
111
+ export const MAX_DONATION_MESSAGE_LENGTH = 500;
112
+ // --- Admin Messages ---
113
+ /** Maximum length for an admin-message subject line. */
114
+ export const MAX_ADMIN_MESSAGE_SUBJECT_LENGTH = 100;
115
+ /** Maximum length for the initial body text of an admin message. */
116
+ export const MAX_ADMIN_MESSAGE_INITIAL_TEXT_LENGTH = 1000;
117
+ // --- Content Moderation Workflow ---
118
+ /** Maximum length for a content-violation appeal message. */
119
+ export const MAX_APPEAL_MESSAGE_LENGTH = 1000;
120
+ /** Maximum length for a feedback suggestion. */
121
+ export const MAX_FEEDBACK_SUGGESTION_LENGTH = 100;
122
+ /** Maximum number of distinct submitters tracked per feedback suggestion. */
123
+ export const MAX_FEEDBACK_SUBMITTERS = 100;
124
+ /** Maximum number of items submitted in a single library-review submission. */
125
+ export const MAX_LIBRARY_SUBMIT_BATCH = 50;
126
+ // --- Admin Tasks ---
127
+ /** Admin task lifecycle statuses. */
128
+ export const ADMIN_TASK_STATUS = {
129
+ PENDING: 'pending',
130
+ CHECKED_OUT: 'checkedOut',
131
+ WORK_LATER: 'workLater',
132
+ COMPLETED: 'completed',
133
+ };
36
134
  //# sourceMappingURL=business.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"business.js","sourceRoot":"","sources":["../../src/constants/business.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D,gEAAgE;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC,sFAAsF;AACtF,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAElD,qCAAqC;AAErC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;CACE,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,KAAK;CACA,CAAC;AAEX,sBAAsB;AAEtB,sDAAsD;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,wFAAwF;AACxF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,uFAAuF;AACvF,MAAM,CAAC,MAAM,gBAAgB,GAAG,0DAA0D,CAAC;AAE3F,2BAA2B;AAE3B,4DAA4D;AAC5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,6BAA6B;AAE7B,0DAA0D;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"business.js","sourceRoot":"","sources":["../../src/constants/business.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
1
  export * from './business.js';
2
2
  export * from './moderation.js';
3
+ export * from './options.js';
4
+ export * from './pagination.js';
5
+ export * from './retention.js';
6
+ export * from './scheduled-jobs.js';
7
+ export * from './storage-keys.js';
3
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
@@ -1,3 +1,8 @@
1
1
  export * from './business.js';
2
2
  export * from './moderation.js';
3
+ export * from './options.js';
4
+ export * from './pagination.js';
5
+ export * from './retention.js';
6
+ export * from './scheduled-jobs.js';
7
+ export * from './storage-keys.js';
3
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,103 @@
1
+ import type { LibraryItemType, ProjectType } from '../types/content.js';
2
+ /** Map of user-role values to display labels. Used in role-picker dropdowns. */
3
+ export declare const USER_ROLE_OPTIONS_MAP: Record<string, string>;
4
+ /** Roles allowed to view the project-invite list for a project. */
5
+ export declare const ALLOWED_INVITE_LIST_ROLES: readonly ["Owner", "Admin"];
6
+ /** Profession options for user profiles, sorted alphabetically. */
7
+ export declare const PROFESSION_OPTIONS: string[];
8
+ /** Skill tag options for skill uploads, sorted alphabetically. */
9
+ export declare const SKILL_TAG_OPTIONS: string[];
10
+ /** Categories shown for each project type. */
11
+ export declare const PROJECT_SPECIFIC_CATEGORIES: {
12
+ readonly Tales: string[];
13
+ readonly Tunes: string[];
14
+ readonly Television: string[];
15
+ };
16
+ /** Library type display info. Used in dropdowns and badges. */
17
+ export declare const LIBRARY_TYPES: Record<LibraryItemType, {
18
+ label: string;
19
+ description: string;
20
+ }>;
21
+ /** Project type display info. Used in dropdowns and headers. */
22
+ export declare const PROJECT_TYPES: Record<ProjectType, {
23
+ label: string;
24
+ description: string;
25
+ }>;
26
+ /** Sort options shown on the opportunity feeds, keyed by feed type. */
27
+ export declare const OPPORTUNITY_SORT_OPTIONS: {
28
+ readonly default: {
29
+ readonly newest: {
30
+ readonly label: "Newest First";
31
+ readonly field: "createdOn";
32
+ readonly direction: "desc";
33
+ };
34
+ readonly endingSoon: {
35
+ readonly label: "Ending Soon";
36
+ readonly field: "openTill";
37
+ readonly direction: "asc";
38
+ };
39
+ };
40
+ readonly SystemInput: {
41
+ readonly newest: {
42
+ readonly label: "Newest First";
43
+ readonly field: "createdOn";
44
+ readonly direction: "desc";
45
+ };
46
+ readonly endingSoon: {
47
+ readonly label: "Ending Soon";
48
+ readonly field: "openTill";
49
+ readonly direction: "asc";
50
+ };
51
+ };
52
+ readonly SponsoredProjects: {
53
+ readonly newest: {
54
+ readonly label: "Newest First";
55
+ readonly field: "createdOn";
56
+ readonly direction: "desc";
57
+ };
58
+ readonly endingSoon: {
59
+ readonly label: "Ending Soon";
60
+ readonly field: "openTill";
61
+ readonly direction: "asc";
62
+ };
63
+ readonly highestPrice: {
64
+ readonly label: "Highest Price";
65
+ readonly field: "projectAmountUSD";
66
+ readonly direction: "desc";
67
+ };
68
+ readonly lowestPrice: {
69
+ readonly label: "Lowest Price";
70
+ readonly field: "projectAmountUSD";
71
+ readonly direction: "asc";
72
+ };
73
+ };
74
+ readonly ProjectInput: {
75
+ readonly newest: {
76
+ readonly label: "Newest First";
77
+ readonly field: "createdOn";
78
+ readonly direction: "desc";
79
+ };
80
+ readonly endingSoon: {
81
+ readonly label: "Ending Soon";
82
+ readonly field: "openTill";
83
+ readonly direction: "asc";
84
+ };
85
+ readonly highestShares: {
86
+ readonly label: "Highest Shares";
87
+ readonly field: "sharesOffered";
88
+ readonly direction: "desc";
89
+ };
90
+ readonly lowestShares: {
91
+ readonly label: "Lowest Shares";
92
+ readonly field: "sharesOffered";
93
+ readonly direction: "asc";
94
+ };
95
+ };
96
+ };
97
+ /** Sort options shown on the library feed. */
98
+ export declare const LIBRARY_SORT_OPTIONS: Record<string, {
99
+ label: string;
100
+ field: string;
101
+ direction: 'asc' | 'desc';
102
+ }>;
103
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/constants/options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIxE,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKxD,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,yBAAyB,6BAA8B,CAAC;AAIrE,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,UAavB,CAAC;AAET,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,UA6BtB,CAAC;AAIT,8CAA8C;AAC9C,eAAO,MAAM,2BAA2B;;;;CAqC9B,CAAC;AAIX,+DAA+D;AAC/D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,eAAe,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAazF,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAarF,CAAC;AAIF,uEAAuE;AACvE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB3B,CAAC;AAEX,8CAA8C;AAC9C,eAAO,MAAM,oBAAoB,EAAE,MAAM,CACvC,MAAM,EACN;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,CAM5D,CAAC"}
@@ -0,0 +1,161 @@
1
+ // UI option lists shared between frontend and backend admin tooling.
2
+ // --- User Roles ---
3
+ /** Map of user-role values to display labels. Used in role-picker dropdowns. */
4
+ export const USER_ROLE_OPTIONS_MAP = {
5
+ Admin: 'Admin',
6
+ Contributor: 'Contributor',
7
+ Editor: 'Editor',
8
+ Viewer: 'Viewer',
9
+ };
10
+ /** Roles allowed to view the project-invite list for a project. */
11
+ export const ALLOWED_INVITE_LIST_ROLES = ['Owner', 'Admin'];
12
+ // --- Profession & Skill Options ---
13
+ /** Profession options for user profiles, sorted alphabetically. */
14
+ export const PROFESSION_OPTIONS = [
15
+ 'Actor',
16
+ 'Animator',
17
+ 'Artist',
18
+ 'Cinematographer',
19
+ 'Composer',
20
+ 'Designer',
21
+ 'Developer',
22
+ 'Director',
23
+ 'Editor',
24
+ 'Producer',
25
+ 'Sound Designer',
26
+ 'Writer',
27
+ ].sort();
28
+ /** Skill tag options for skill uploads, sorted alphabetically. */
29
+ export const SKILL_TAG_OPTIONS = [
30
+ 'Abstract',
31
+ 'Action',
32
+ 'Adventure',
33
+ 'Animals',
34
+ 'Animation',
35
+ 'City',
36
+ 'Cinematic',
37
+ 'Comedy',
38
+ 'Drama',
39
+ 'Editing',
40
+ 'Fashion',
41
+ 'Food',
42
+ 'Historical',
43
+ 'Horror',
44
+ 'Instrumental',
45
+ 'MusicProduction',
46
+ 'Mystery',
47
+ 'Nature',
48
+ 'Portrait',
49
+ 'Romance',
50
+ 'SciFi',
51
+ 'SoundDesign',
52
+ 'Sports',
53
+ 'Technology',
54
+ 'Thriller',
55
+ 'Travel',
56
+ 'VocalPerformance',
57
+ 'VoiceOver',
58
+ ].sort();
59
+ // --- Project-Specific Categories ---
60
+ /** Categories shown for each project type. */
61
+ export const PROJECT_SPECIFIC_CATEGORIES = {
62
+ Tales: [
63
+ 'Adventure',
64
+ 'Comedy',
65
+ 'Drama',
66
+ 'Fantasy',
67
+ 'Historical',
68
+ 'Horror',
69
+ 'Mystery',
70
+ 'Romance',
71
+ 'Sci-Fi',
72
+ 'Thriller',
73
+ ].sort(),
74
+ Tunes: [
75
+ 'Blues',
76
+ 'Classical',
77
+ 'Country',
78
+ 'Electronic',
79
+ 'Folk',
80
+ 'Hip Hop',
81
+ 'Jazz',
82
+ 'Pop',
83
+ 'Reggae',
84
+ 'Rock',
85
+ ].sort(),
86
+ Television: [
87
+ 'Action',
88
+ 'Animation',
89
+ 'Comedy',
90
+ 'Documentary',
91
+ 'Drama',
92
+ 'Fantasy',
93
+ 'Kids',
94
+ 'Reality',
95
+ 'Sci-Fi',
96
+ 'Thriller',
97
+ ].sort(),
98
+ };
99
+ // --- Library / Project Type Display Maps ---
100
+ /** Library type display info. Used in dropdowns and badges. */
101
+ export const LIBRARY_TYPES = {
102
+ entertainment: {
103
+ label: 'Entertainment',
104
+ description: 'Fun and engaging content',
105
+ },
106
+ educational: {
107
+ label: 'Educational',
108
+ description: 'Learning materials and resources',
109
+ },
110
+ newsPolitical: {
111
+ label: 'News/Political',
112
+ description: 'Current events and political content',
113
+ },
114
+ };
115
+ /** Project type display info. Used in dropdowns and headers. */
116
+ export const PROJECT_TYPES = {
117
+ Tales: {
118
+ label: 'Tales',
119
+ description: 'Stories and narratives',
120
+ },
121
+ Tunes: {
122
+ label: 'Tunes',
123
+ description: 'Music and audio content',
124
+ },
125
+ Television: {
126
+ label: 'Television',
127
+ description: 'Video and TV content',
128
+ },
129
+ };
130
+ // --- Sort Options ---
131
+ /** Sort options shown on the opportunity feeds, keyed by feed type. */
132
+ export const OPPORTUNITY_SORT_OPTIONS = {
133
+ default: {
134
+ newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },
135
+ endingSoon: { label: 'Ending Soon', field: 'openTill', direction: 'asc' },
136
+ },
137
+ SystemInput: {
138
+ newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },
139
+ endingSoon: { label: 'Ending Soon', field: 'openTill', direction: 'asc' },
140
+ },
141
+ SponsoredProjects: {
142
+ newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },
143
+ endingSoon: { label: 'Ending Soon', field: 'openTill', direction: 'asc' },
144
+ highestPrice: { label: 'Highest Price', field: 'projectAmountUSD', direction: 'desc' },
145
+ lowestPrice: { label: 'Lowest Price', field: 'projectAmountUSD', direction: 'asc' },
146
+ },
147
+ ProjectInput: {
148
+ newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },
149
+ endingSoon: { label: 'Ending Soon', field: 'openTill', direction: 'asc' },
150
+ highestShares: { label: 'Highest Shares', field: 'sharesOffered', direction: 'desc' },
151
+ lowestShares: { label: 'Lowest Shares', field: 'sharesOffered', direction: 'asc' },
152
+ },
153
+ };
154
+ /** Sort options shown on the library feed. */
155
+ export const LIBRARY_SORT_OPTIONS = {
156
+ newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },
157
+ oldest: { label: 'Oldest First', field: 'createdOn', direction: 'asc' },
158
+ most_donated: { label: 'Most Donated', field: 'totalDonations', direction: 'desc' },
159
+ most_viewed: { label: 'Most Viewed', field: 'viewCount', direction: 'desc' },
160
+ };
161
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/constants/options.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAIrE,qBAAqB;AAErB,gFAAgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,mEAAmE;AACnE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AAErE,qCAAqC;AAErC,mEAAmE;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO;IACP,UAAU;IACV,QAAQ;IACR,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,QAAQ;IACR,UAAU;IACV,gBAAgB;IAChB,QAAQ;CACT,CAAC,IAAI,EAAE,CAAC;AAET,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,UAAU;IACV,QAAQ;IACR,WAAW;IACX,SAAS;IACT,WAAW;IACX,MAAM;IACN,WAAW;IACX,QAAQ;IACR,OAAO;IACP,SAAS;IACT,SAAS;IACT,MAAM;IACN,YAAY;IACZ,QAAQ;IACR,cAAc;IACd,iBAAiB;IACjB,SAAS;IACT,QAAQ;IACR,UAAU;IACV,SAAS;IACT,OAAO;IACP,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,kBAAkB;IAClB,WAAW;CACZ,CAAC,IAAI,EAAE,CAAC;AAET,sCAAsC;AAEtC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,KAAK,EAAE;QACL,WAAW;QACX,QAAQ;QACR,OAAO;QACP,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,UAAU;KACX,CAAC,IAAI,EAAE;IACR,KAAK,EAAE;QACL,OAAO;QACP,WAAW;QACX,SAAS;QACT,YAAY;QACZ,MAAM;QACN,SAAS;QACT,MAAM;QACN,KAAK;QACL,QAAQ;QACR,MAAM;KACP,CAAC,IAAI,EAAE;IACR,UAAU,EAAE;QACV,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,aAAa;QACb,OAAO;QACP,SAAS;QACT,MAAM;QACN,SAAS;QACT,QAAQ;QACR,UAAU;KACX,CAAC,IAAI,EAAE;CACA,CAAC;AAEX,8CAA8C;AAE9C,+DAA+D;AAC/D,MAAM,CAAC,MAAM,aAAa,GAAoE;IAC5F,aAAa,EAAE;QACb,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,0BAA0B;KACxC;IACD,WAAW,EAAE;QACX,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,kCAAkC;KAChD;IACD,aAAa,EAAE;QACb,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,sCAAsC;KACpD;CACF,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,aAAa,GAAgE;IACxF,KAAK,EAAE;QACL,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,wBAAwB;KACtC;IACD,KAAK,EAAE;QACL,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,yBAAyB;KACvC;IACD,UAAU,EAAE;QACV,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,sBAAsB;KACpC;CACF,CAAC;AAEF,uBAAuB;AAEvB,uEAAuE;AACvE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,OAAO,EAAE;QACP,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;QACxE,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE;KAC1E;IACD,WAAW,EAAE;QACX,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;QACxE,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE;KAC1E;IACD,iBAAiB,EAAE;QACjB,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;QACxE,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE;QACzE,YAAY,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE;QACtF,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,EAAE;KACpF;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;QACxE,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE;QACzE,aAAa,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE;QACrF,YAAY,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE;KACnF;CACO,CAAC;AAEX,8CAA8C;AAC9C,MAAM,CAAC,MAAM,oBAAoB,GAG7B;IACF,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;IACxE,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE;IACvE,YAAY,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE;IACnF,WAAW,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;CAC7E,CAAC"}
@@ -0,0 +1,37 @@
1
+ /** Default pagination size when no other size applies. */
2
+ export declare const ITEMS_PER_PAGE_GENERAL = 5;
3
+ export declare const ITEMS_PER_PAGE_MESSAGES = 5;
4
+ export declare const ITEMS_PER_PAGE_SYSTEM_MESSAGES = 6;
5
+ export declare const ITEMS_PER_PAGE_JOB_BOARD = 5;
6
+ export declare const ITEMS_PER_PAGE_PROJECT_USERS = 3;
7
+ export declare const ITEMS_PER_PAGE_PROJECT_INVITES = 10;
8
+ export declare const ITEMS_PER_PAGE_OWNED_PROJECTS = 3;
9
+ export declare const ITEMS_PER_PAGE_ASSOCIATED_PROJECTS = 3;
10
+ export declare const ITEMS_PER_PAGE_CHAPTERS = 5;
11
+ export declare const ITEMS_PER_PAGE_SONGS = 3;
12
+ export declare const ITEMS_PER_PAGE_SHOWS = 3;
13
+ export declare const ITEMS_PER_PAGE_APPLICANTS = 5;
14
+ export declare const ITEMS_PER_PAGE_FOLLOWED_USERS = 10;
15
+ export declare const ITEMS_PER_PAGE_ADMIN_SYSTEM_MESSAGES = 10;
16
+ /** Page size for the donations list hook. */
17
+ export declare const DONATIONS_PER_PAGE = 20;
18
+ /** Page size for the pending-media archive list hook. */
19
+ export declare const ARCHIVE_PER_PAGE = 10;
20
+ /** Page size for the project-channels list hook. */
21
+ export declare const CHANNELS_PER_PAGE = 10;
22
+ /** Page size for the social feed hook. */
23
+ export declare const POSTS_PER_PAGE = 20;
24
+ /** Page size for the content-violation list hook. */
25
+ export declare const VIOLATIONS_PER_PAGE = 5;
26
+ /** Page size for the skills list hook. */
27
+ export declare const SKILLS_PER_PAGE = 12;
28
+ /** Maximum number of recent posts the trending-feed scheduled job processes per run. */
29
+ export declare const TRENDING_FEED_PROCESS_LIMIT = 500;
30
+ /** Library page-level UX values (page size, recency window, search debounce, per-item tag cap). */
31
+ export declare const LIBRARY_CONSTANTS: {
32
+ readonly ITEMS_PER_PAGE: 20;
33
+ readonly MAX_RECENT_VIEWS: 50;
34
+ readonly MAX_TAGS_PER_ITEM: 10;
35
+ readonly SEARCH_DEBOUNCE_MS: 300;
36
+ };
37
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/constants/pagination.ts"],"names":[],"mappings":"AAEA,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,eAAO,MAAM,kCAAkC,IAAI,CAAC;AACpD,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAChD,eAAO,MAAM,oCAAoC,KAAK,CAAC;AAIvD,6CAA6C;AAC7C,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,oDAAoD;AACpD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,0CAA0C;AAC1C,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,qDAAqD;AACrD,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,0CAA0C;AAC1C,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,wFAAwF;AACxF,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAI/C,mGAAmG;AACnG,eAAO,MAAM,iBAAiB;;;;;CAKpB,CAAC"}
@@ -0,0 +1,40 @@
1
+ // Pagination page sizes and library UX constants.
2
+ /** Default pagination size when no other size applies. */
3
+ export const ITEMS_PER_PAGE_GENERAL = 5;
4
+ export const ITEMS_PER_PAGE_MESSAGES = 5;
5
+ export const ITEMS_PER_PAGE_SYSTEM_MESSAGES = 6;
6
+ export const ITEMS_PER_PAGE_JOB_BOARD = 5;
7
+ export const ITEMS_PER_PAGE_PROJECT_USERS = 3;
8
+ export const ITEMS_PER_PAGE_PROJECT_INVITES = 10;
9
+ export const ITEMS_PER_PAGE_OWNED_PROJECTS = 3;
10
+ export const ITEMS_PER_PAGE_ASSOCIATED_PROJECTS = 3;
11
+ export const ITEMS_PER_PAGE_CHAPTERS = 5;
12
+ export const ITEMS_PER_PAGE_SONGS = 3;
13
+ export const ITEMS_PER_PAGE_SHOWS = 3;
14
+ export const ITEMS_PER_PAGE_APPLICANTS = 5;
15
+ export const ITEMS_PER_PAGE_FOLLOWED_USERS = 10;
16
+ export const ITEMS_PER_PAGE_ADMIN_SYSTEM_MESSAGES = 10;
17
+ // --- Hook-specific page sizes ---
18
+ /** Page size for the donations list hook. */
19
+ export const DONATIONS_PER_PAGE = 20;
20
+ /** Page size for the pending-media archive list hook. */
21
+ export const ARCHIVE_PER_PAGE = 10;
22
+ /** Page size for the project-channels list hook. */
23
+ export const CHANNELS_PER_PAGE = 10;
24
+ /** Page size for the social feed hook. */
25
+ export const POSTS_PER_PAGE = 20;
26
+ /** Page size for the content-violation list hook. */
27
+ export const VIOLATIONS_PER_PAGE = 5;
28
+ /** Page size for the skills list hook. */
29
+ export const SKILLS_PER_PAGE = 12;
30
+ /** Maximum number of recent posts the trending-feed scheduled job processes per run. */
31
+ export const TRENDING_FEED_PROCESS_LIMIT = 500;
32
+ // --- Library UX constants ---
33
+ /** Library page-level UX values (page size, recency window, search debounce, per-item tag cap). */
34
+ export const LIBRARY_CONSTANTS = {
35
+ ITEMS_PER_PAGE: 20,
36
+ MAX_RECENT_VIEWS: 50,
37
+ MAX_TAGS_PER_ITEM: 10,
38
+ SEARCH_DEBOUNCE_MS: 300,
39
+ };
40
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/constants/pagination.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AACjD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC;AAEvD,mCAAmC;AAEnC,6CAA6C;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,yDAAyD;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC,oDAAoD;AACpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,qDAAqD;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC,wFAAwF;AACxF,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE/C,+BAA+B;AAE/B,mGAAmG;AACnG,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,EAAE;IACpB,iBAAiB,EAAE,EAAE;IACrB,kBAAkB,EAAE,GAAG;CACf,CAAC"}
@@ -0,0 +1,25 @@
1
+ /** TTL for the in-memory profanity word list cache (1 hour). */
2
+ export declare const WORD_LIST_CACHE_TTL_MS: number;
3
+ /** Minimum number of recent donations always retained in the recentDonations collection. */
4
+ export declare const MIN_RECENT_DONATIONS = 50;
5
+ /** Days after which a donation is considered old enough to archive. */
6
+ export declare const DONATION_RETENTION_DAYS = 90;
7
+ /** Days after which a terminal pendingMedia doc is moved to pendingMediaArchive. */
8
+ export declare const PENDING_MEDIA_ARCHIVE_AFTER_DAYS = 7;
9
+ /** Per-run cap on docs archived by the archivePendingMedia scheduled job. */
10
+ export declare const PENDING_MEDIA_ARCHIVE_BATCH_SIZE = 500;
11
+ /** TTL in hours after which an orphan storage upload becomes eligible for deletion. */
12
+ export declare const ORPHAN_UPLOAD_TTL_HOURS = 24;
13
+ /** Per-run cap on orphan storage deletions. */
14
+ export declare const ORPHAN_UPLOAD_DELETE_CAP = 500;
15
+ /** Page size for listing orphan uploads. */
16
+ export declare const ORPHAN_UPLOAD_LIST_PAGE_SIZE = 1000;
17
+ /** After this idle duration, an in-flight upload toast is considered stale. */
18
+ export declare const STALE_TOAST_THRESHOLD_MS: number;
19
+ /** Maximum lookback window for the in-flight upload listener (24 hours). */
20
+ export declare const LISTENER_WINDOW_MS: number;
21
+ /** Stale time for the publicUsers query cache (30 minutes). */
22
+ export declare const PUBLIC_USERS_STALE_TIME_MS: number;
23
+ /** GC time for the publicUsers query cache (1 hour). */
24
+ export declare const PUBLIC_USERS_GC_TIME_MS: number;
25
+ //# sourceMappingURL=retention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../src/constants/retention.ts"],"names":[],"mappings":"AAIA,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,QAAiB,CAAC;AAIrD,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,uEAAuE;AACvE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAI1C,oFAAoF;AACpF,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,6EAA6E;AAC7E,eAAO,MAAM,gCAAgC,MAAM,CAAC;AAIpD,uFAAuF;AACvF,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,+CAA+C;AAC/C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,4CAA4C;AAC5C,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAIjD,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,QAAgB,CAAC;AAEtD,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,QAAsB,CAAC;AAItD,+DAA+D;AAC/D,eAAO,MAAM,0BAA0B,QAAiB,CAAC;AAEzD,wDAAwD;AACxD,eAAO,MAAM,uBAAuB,QAAiB,CAAC"}
@@ -0,0 +1,32 @@
1
+ // Caching, retention, and cleanup TTLs / batch sizes.
2
+ // --- Profanity word list cache ---
3
+ /** TTL for the in-memory profanity word list cache (1 hour). */
4
+ export const WORD_LIST_CACHE_TTL_MS = 1000 * 60 * 60;
5
+ // --- Donations ---
6
+ /** Minimum number of recent donations always retained in the recentDonations collection. */
7
+ export const MIN_RECENT_DONATIONS = 50;
8
+ /** Days after which a donation is considered old enough to archive. */
9
+ export const DONATION_RETENTION_DAYS = 90;
10
+ // --- Pending media archive ---
11
+ /** Days after which a terminal pendingMedia doc is moved to pendingMediaArchive. */
12
+ export const PENDING_MEDIA_ARCHIVE_AFTER_DAYS = 7;
13
+ /** Per-run cap on docs archived by the archivePendingMedia scheduled job. */
14
+ export const PENDING_MEDIA_ARCHIVE_BATCH_SIZE = 500;
15
+ // --- Orphan upload cleanup ---
16
+ /** TTL in hours after which an orphan storage upload becomes eligible for deletion. */
17
+ export const ORPHAN_UPLOAD_TTL_HOURS = 24;
18
+ /** Per-run cap on orphan storage deletions. */
19
+ export const ORPHAN_UPLOAD_DELETE_CAP = 500;
20
+ /** Page size for listing orphan uploads. */
21
+ export const ORPHAN_UPLOAD_LIST_PAGE_SIZE = 1000;
22
+ // --- Frontend in-flight upload listeners ---
23
+ /** After this idle duration, an in-flight upload toast is considered stale. */
24
+ export const STALE_TOAST_THRESHOLD_MS = 5 * 60 * 1000;
25
+ /** Maximum lookback window for the in-flight upload listener (24 hours). */
26
+ export const LISTENER_WINDOW_MS = 24 * 60 * 60 * 1000;
27
+ // --- Public users React Query cache ---
28
+ /** Stale time for the publicUsers query cache (30 minutes). */
29
+ export const PUBLIC_USERS_STALE_TIME_MS = 30 * 60 * 1000;
30
+ /** GC time for the publicUsers query cache (1 hour). */
31
+ export const PUBLIC_USERS_GC_TIME_MS = 60 * 60 * 1000;
32
+ //# sourceMappingURL=retention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retention.js","sourceRoot":"","sources":["../../src/constants/retention.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,oCAAoC;AAEpC,gEAAgE;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AAErD,oBAAoB;AAEpB,4FAA4F;AAC5F,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,uEAAuE;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,gCAAgC;AAEhC,oFAAoF;AACpF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAElD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAC;AAEpD,gCAAgC;AAEhC,uFAAuF;AACvF,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,+CAA+C;AAC/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAEjD,8CAA8C;AAE9C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtD,yCAAyC;AAEzC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzD,wDAAwD;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -0,0 +1,9 @@
1
+ /** Interval in minutes for the admin-task cleanup scheduled job. */
2
+ export declare const ADMIN_TASK_CLEANUP_INTERVAL = 15;
3
+ /** Batch size of expired task checkouts processed per scheduled run. */
4
+ export declare const ADMIN_TASK_EXPIRED_BATCH_SIZE = 500;
5
+ /** Safety cap on iterations within a single admin-task cleanup run. */
6
+ export declare const ADMIN_TASK_CLEANUP_MAX_ITERATIONS = 10;
7
+ /** Source URLs the syncProfanityList job pulls word lists from. */
8
+ export declare const WORD_LIST_URLS: readonly ["https://raw.githubusercontent.com/zacanger/profane-words/master/words.json", "https://raw.githubusercontent.com/RobertJGabriel/Google-profanity-words/master/list.txt"];
9
+ //# sourceMappingURL=scheduled-jobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduled-jobs.d.ts","sourceRoot":"","sources":["../../src/constants/scheduled-jobs.ts"],"names":[],"mappings":"AAIA,oEAAoE;AACpE,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,wEAAwE;AACxE,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,uEAAuE;AACvE,eAAO,MAAM,iCAAiC,KAAK,CAAC;AAIpD,mEAAmE;AACnE,eAAO,MAAM,cAAc,oLAGjB,CAAC"}
@@ -0,0 +1,15 @@
1
+ // Scheduled-job intervals, batch sizes, and source URLs.
2
+ // --- Admin task cleanup ---
3
+ /** Interval in minutes for the admin-task cleanup scheduled job. */
4
+ export const ADMIN_TASK_CLEANUP_INTERVAL = 15;
5
+ /** Batch size of expired task checkouts processed per scheduled run. */
6
+ export const ADMIN_TASK_EXPIRED_BATCH_SIZE = 500;
7
+ /** Safety cap on iterations within a single admin-task cleanup run. */
8
+ export const ADMIN_TASK_CLEANUP_MAX_ITERATIONS = 10;
9
+ // --- Profanity list sync ---
10
+ /** Source URLs the syncProfanityList job pulls word lists from. */
11
+ export const WORD_LIST_URLS = [
12
+ 'https://raw.githubusercontent.com/zacanger/profane-words/master/words.json',
13
+ 'https://raw.githubusercontent.com/RobertJGabriel/Google-profanity-words/master/list.txt',
14
+ ];
15
+ //# sourceMappingURL=scheduled-jobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduled-jobs.js","sourceRoot":"","sources":["../../src/constants/scheduled-jobs.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,6BAA6B;AAE7B,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,wEAAwE;AACxE,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAEjD,uEAAuE;AACvE,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,CAAC;AAEpD,8BAA8B;AAE9B,mEAAmE;AACnE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,4EAA4E;IAC5E,yFAAyF;CACjF,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** sessionStorage key holding the path the user wanted before being redirected to login. */
2
+ export declare const REDIRECT_PATH_KEY = "redirectPath";
3
+ /** localStorage key holding the last-seen app version (used by version-gate component). */
4
+ export declare const LS_VERSION_KEY = "ttt-app-version";
5
+ /** sessionStorage key marking that a version-mismatch reload was already attempted. */
6
+ export declare const SS_RELOAD_ATTEMPTED_KEY = "ttt-version-reload-attempted";
7
+ //# sourceMappingURL=storage-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-keys.d.ts","sourceRoot":"","sources":["../../src/constants/storage-keys.ts"],"names":[],"mappings":"AAEA,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAEhD,2FAA2F;AAC3F,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAEhD,uFAAuF;AACvF,eAAO,MAAM,uBAAuB,iCAAiC,CAAC"}
@@ -0,0 +1,8 @@
1
+ // Well-known keys used in browser sessionStorage / localStorage.
2
+ /** sessionStorage key holding the path the user wanted before being redirected to login. */
3
+ export const REDIRECT_PATH_KEY = 'redirectPath';
4
+ /** localStorage key holding the last-seen app version (used by version-gate component). */
5
+ export const LS_VERSION_KEY = 'ttt-app-version';
6
+ /** sessionStorage key marking that a version-mismatch reload was already attempted. */
7
+ export const SS_RELOAD_ATTEMPTED_KEY = 'ttt-version-reload-attempted';
8
+ //# sourceMappingURL=storage-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-keys.js","sourceRoot":"","sources":["../../src/constants/storage-keys.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,4FAA4F;AAC5F,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAEhD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEhD,uFAAuF;AACvF,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './types/index.js';
2
2
  export * from './paths/index.js';
3
3
  export * from './constants/index.js';
4
+ export * from './utils/index.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './types/index.js';
2
2
  export * from './paths/index.js';
3
3
  export * from './constants/index.js';
4
+ export * from './utils/index.js';
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Format a byte count into a short human-readable string (e.g. "1.5 KB", "5 MB").
3
+ * Returns "0 Bytes" for input of 0.
4
+ */
5
+ export declare function formatFileSize(bytes: number): string;
6
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMpD"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Format a byte count into a short human-readable string (e.g. "1.5 KB", "5 MB").
3
+ * Returns "0 Bytes" for input of 0.
4
+ */
5
+ export function formatFileSize(bytes) {
6
+ if (bytes === 0)
7
+ return '0 Bytes';
8
+ const k = 1024;
9
+ const sizes = ['Bytes', 'KB', 'MB', 'GB'];
10
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
11
+ return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + ' ' + sizes[i];
12
+ }
13
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './format.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './format.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttt-productions/ttt-core",
3
- "version": "0.2.12",
3
+ "version": "0.2.13",
4
4
  "description": "Core types, Firestore path constants, and shared constants for TTT Productions",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,6 +31,38 @@
31
31
  "./constants": {
32
32
  "types": "./dist/constants/index.d.ts",
33
33
  "default": "./dist/constants/index.js"
34
+ },
35
+ "./constants/business": {
36
+ "types": "./dist/constants/business.d.ts",
37
+ "default": "./dist/constants/business.js"
38
+ },
39
+ "./constants/moderation": {
40
+ "types": "./dist/constants/moderation.d.ts",
41
+ "default": "./dist/constants/moderation.js"
42
+ },
43
+ "./constants/options": {
44
+ "types": "./dist/constants/options.d.ts",
45
+ "default": "./dist/constants/options.js"
46
+ },
47
+ "./constants/pagination": {
48
+ "types": "./dist/constants/pagination.d.ts",
49
+ "default": "./dist/constants/pagination.js"
50
+ },
51
+ "./constants/retention": {
52
+ "types": "./dist/constants/retention.d.ts",
53
+ "default": "./dist/constants/retention.js"
54
+ },
55
+ "./constants/scheduled-jobs": {
56
+ "types": "./dist/constants/scheduled-jobs.d.ts",
57
+ "default": "./dist/constants/scheduled-jobs.js"
58
+ },
59
+ "./constants/storage-keys": {
60
+ "types": "./dist/constants/storage-keys.d.ts",
61
+ "default": "./dist/constants/storage-keys.js"
62
+ },
63
+ "./utils": {
64
+ "types": "./dist/utils/index.d.ts",
65
+ "default": "./dist/utils/index.js"
34
66
  }
35
67
  },
36
68
  "scripts": {