@ttt-productions/ttt-core 0.1.1

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 (77) hide show
  1. package/dist/constants/business.d.ts +26 -0
  2. package/dist/constants/business.d.ts.map +1 -0
  3. package/dist/constants/business.js +29 -0
  4. package/dist/constants/business.js.map +1 -0
  5. package/dist/constants/index.d.ts +3 -0
  6. package/dist/constants/index.d.ts.map +1 -0
  7. package/dist/constants/index.js +3 -0
  8. package/dist/constants/index.js.map +1 -0
  9. package/dist/constants/moderation.d.ts +12 -0
  10. package/dist/constants/moderation.d.ts.map +1 -0
  11. package/dist/constants/moderation.js +13 -0
  12. package/dist/constants/moderation.js.map +1 -0
  13. package/dist/index.d.ts +4 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +4 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/paths/collection-groups.d.ts +16 -0
  18. package/dist/paths/collection-groups.d.ts.map +1 -0
  19. package/dist/paths/collection-groups.js +21 -0
  20. package/dist/paths/collection-groups.js.map +1 -0
  21. package/dist/paths/collection-refs.d.ts +24 -0
  22. package/dist/paths/collection-refs.d.ts.map +1 -0
  23. package/dist/paths/collection-refs.js +35 -0
  24. package/dist/paths/collection-refs.js.map +1 -0
  25. package/dist/paths/collections.d.ts +102 -0
  26. package/dist/paths/collections.d.ts.map +1 -0
  27. package/dist/paths/collections.js +116 -0
  28. package/dist/paths/collections.js.map +1 -0
  29. package/dist/paths/index.d.ts +6 -0
  30. package/dist/paths/index.d.ts.map +1 -0
  31. package/dist/paths/index.js +6 -0
  32. package/dist/paths/index.js.map +1 -0
  33. package/dist/paths/path-builders.d.ts +60 -0
  34. package/dist/paths/path-builders.d.ts.map +1 -0
  35. package/dist/paths/path-builders.js +76 -0
  36. package/dist/paths/path-builders.js.map +1 -0
  37. package/dist/paths/utils.d.ts +2 -0
  38. package/dist/paths/utils.d.ts.map +1 -0
  39. package/dist/paths/utils.js +7 -0
  40. package/dist/paths/utils.js.map +1 -0
  41. package/dist/types/admin.d.ts +54 -0
  42. package/dist/types/admin.d.ts.map +1 -0
  43. package/dist/types/admin.js +3 -0
  44. package/dist/types/admin.js.map +1 -0
  45. package/dist/types/content.d.ts +216 -0
  46. package/dist/types/content.d.ts.map +1 -0
  47. package/dist/types/content.js +5 -0
  48. package/dist/types/content.js.map +1 -0
  49. package/dist/types/index.d.ts +9 -0
  50. package/dist/types/index.d.ts.map +1 -0
  51. package/dist/types/index.js +9 -0
  52. package/dist/types/index.js.map +1 -0
  53. package/dist/types/jobs.d.ts +71 -0
  54. package/dist/types/jobs.d.ts.map +1 -0
  55. package/dist/types/jobs.js +3 -0
  56. package/dist/types/jobs.js.map +1 -0
  57. package/dist/types/messaging.d.ts +99 -0
  58. package/dist/types/messaging.d.ts.map +1 -0
  59. package/dist/types/messaging.js +3 -0
  60. package/dist/types/messaging.js.map +1 -0
  61. package/dist/types/moderation.d.ts +72 -0
  62. package/dist/types/moderation.d.ts.map +1 -0
  63. package/dist/types/moderation.js +3 -0
  64. package/dist/types/moderation.js.map +1 -0
  65. package/dist/types/project.d.ts +110 -0
  66. package/dist/types/project.d.ts.map +1 -0
  67. package/dist/types/project.js +3 -0
  68. package/dist/types/project.js.map +1 -0
  69. package/dist/types/social.d.ts +72 -0
  70. package/dist/types/social.d.ts.map +1 -0
  71. package/dist/types/social.js +3 -0
  72. package/dist/types/social.js.map +1 -0
  73. package/dist/types/user.d.ts +65 -0
  74. package/dist/types/user.d.ts.map +1 -0
  75. package/dist/types/user.js +3 -0
  76. package/dist/types/user.js.map +1 -0
  77. package/package.json +47 -0
@@ -0,0 +1,72 @@
1
+ export type FileOrigin = 'profilePicture' | 'skill' | 'streetz' | 'job-posting' | 'job-reply' | 'opportunity-prompt' | 'opportunity-reply' | 'library-cover-tales' | 'library-cover-tunes' | 'library-cover-television' | 'library-cover-square' | 'library-cover-poster' | 'library-cover-cinematic' | 'chapter-photo' | 'song-photo' | 'song-audio' | 'show-photo' | 'show-video' | 'chat-attachment';
2
+ export interface PendingFile {
3
+ id: string;
4
+ userId: string;
5
+ fileOrigin: FileOrigin;
6
+ originalFileName: string;
7
+ pendingStoragePath: string;
8
+ status: 'pending' | 'processing' | 'completed' | 'failed' | 'rejected';
9
+ createdAt: number;
10
+ errorMessage?: string;
11
+ targetInfo?: any;
12
+ targetDocPath?: string;
13
+ targetFields?: {
14
+ [key: string]: string;
15
+ };
16
+ textContent?: string;
17
+ }
18
+ export interface ContentViolation {
19
+ id: string;
20
+ userId: string;
21
+ displayName: string;
22
+ fileType: string;
23
+ violationType?: 'text' | 'media';
24
+ originalFileName: string;
25
+ reason: string;
26
+ scores: {
27
+ adult: string;
28
+ violence: string;
29
+ racy: string;
30
+ };
31
+ timestamp: number;
32
+ rejectedFilePath: string;
33
+ rejectedFileUrl?: string;
34
+ appealStatus: 'none' | 'pending' | 'approved' | 'denied';
35
+ appealMessage?: string;
36
+ appealedAt?: number;
37
+ reviewedBy?: string;
38
+ reviewedByUsername?: string;
39
+ reviewedAt?: number;
40
+ reviewDecision?: 'approved' | 'denied';
41
+ reviewNotes?: string;
42
+ pendingFile: Partial<PendingFile>;
43
+ }
44
+ export type Report = {
45
+ reportId: string;
46
+ reporterUserId: string;
47
+ reporterUsername: string;
48
+ reportedItemType: string;
49
+ reportedItemId: string;
50
+ parentItemId?: string;
51
+ reportedUserId?: string;
52
+ reportedUsername?: string;
53
+ reason: string;
54
+ comment: string;
55
+ createdAt: number;
56
+ status: 'pending_review' | 'resolved_no_action' | 'resolved_action_taken';
57
+ resolvedAt?: number;
58
+ resolvedBy?: string;
59
+ adminNotes?: string;
60
+ };
61
+ export type ReportGroup = {
62
+ groupKey: string;
63
+ reportedItemId: string;
64
+ reportedItemType: string;
65
+ reportedUsername: string | null;
66
+ reportedUserId: string | null;
67
+ lastReportAt: number;
68
+ totalReports: number;
69
+ status: 'pending' | 'reviewing' | 'resolved';
70
+ reports?: Report[];
71
+ };
72
+ //# sourceMappingURL=moderation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation.d.ts","sourceRoot":"","sources":["../../src/types/moderation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // Content moderation types: Reports, Violations, Media processing
2
+ export {};
3
+ //# sourceMappingURL=moderation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../src/types/moderation.ts"],"names":[],"mappings":"AAAA,kEAAkE"}
@@ -0,0 +1,110 @@
1
+ import type { ShortUser } from './user.js';
2
+ import type { LibraryItemType } from './content.js';
3
+ export type ActiveUsers = {
4
+ uid: string;
5
+ displayName: string;
6
+ sharesNumber: number;
7
+ roles: string[];
8
+ professions: string[];
9
+ };
10
+ export type ShortProject = {
11
+ projectId: string;
12
+ type: string;
13
+ workingDescription: string;
14
+ workingTitle: string;
15
+ };
16
+ export type ProjectFile = {
17
+ id: string;
18
+ name: string;
19
+ url: string;
20
+ createdAt: number;
21
+ size: number;
22
+ type: string;
23
+ createdBy: ShortUser;
24
+ };
25
+ export type ProjectRolesMap = {
26
+ [key: string]: {
27
+ [uid: string]: true;
28
+ };
29
+ };
30
+ export type ProjectProfessionsMap = {
31
+ [key: string]: {
32
+ [uid: string]: true;
33
+ };
34
+ };
35
+ export type PendingShares = {
36
+ [sourceId: string]: {
37
+ amount: number;
38
+ type: 'invite' | 'job';
39
+ createdAt: number;
40
+ };
41
+ };
42
+ export type FullProject = {
43
+ projectId: string;
44
+ createdOn: number;
45
+ type: string;
46
+ workingDescription: string;
47
+ workingTitle: string;
48
+ libraryType: LibraryItemType;
49
+ createdBy: ShortUser;
50
+ ownedBy: ShortUser;
51
+ status: 'open' | 'pendingVerification' | 'published' | 'rejected';
52
+ activeUsers?: ActiveUsers[];
53
+ activeUserIds?: {
54
+ [key: string]: boolean;
55
+ };
56
+ invitedUserIds?: {
57
+ [key: string]: boolean;
58
+ };
59
+ roles?: ProjectRolesMap;
60
+ professionMap?: ProjectProfessionsMap;
61
+ files?: ProjectFile[];
62
+ universeId?: string;
63
+ origin?: 'newUniverse' | 'existingUniverse' | 'standalone';
64
+ pendingShares?: PendingShares;
65
+ };
66
+ export type PublicProject = {
67
+ projectId: string;
68
+ createdOn: number;
69
+ type: string;
70
+ workingTitle: string;
71
+ workingDescription: string;
72
+ ownedBy: ShortUser;
73
+ followerCount: number;
74
+ viewCount: number;
75
+ };
76
+ export type Universe = {
77
+ universeId: string;
78
+ workingTitle: string;
79
+ workingDescription: string;
80
+ createdOn: number;
81
+ createdBy: ShortUser;
82
+ ownedBy: ShortUser;
83
+ type: string;
84
+ projectIds: string[];
85
+ };
86
+ export type ProjectShareEntry = {
87
+ shares: number;
88
+ };
89
+ export type ProjectInvite = {
90
+ inviteId: string;
91
+ createdBy: ShortUser;
92
+ createdOn: number;
93
+ message: string;
94
+ project: ShortProject;
95
+ status: 'pending' | 'accepted' | 'declined';
96
+ lastUpdatedAt: number;
97
+ };
98
+ export type ShareOperationType = 'add-pending' | 'remove-pending' | 'add-active' | 'create-project' | 'convert-invite';
99
+ export type ShareOperation = {
100
+ type: ShareOperationType;
101
+ amount?: number;
102
+ user?: {
103
+ uid: string;
104
+ displayName: string;
105
+ };
106
+ sourceId?: string;
107
+ sourceType?: 'invite' | 'job';
108
+ projectData?: FullProject;
109
+ };
110
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/types/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // Project-related Firestore document types
2
+ export {};
3
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/types/project.ts"],"names":[],"mappings":"AAAA,2CAA2C"}
@@ -0,0 +1,72 @@
1
+ import type { ShortUser } from './user.js';
2
+ export type StreetzPostType = 'PROFILE_PICTURE_UPDATE' | 'NEW_SKILL' | 'NEW_CREATOR' | 'JOB_ACCEPTED' | 'DELETE_SKILL' | 'USER_POST' | 'NEW_PROJECT';
3
+ export type MentionType = 'user' | 'project' | 'job' | 'opportunity';
4
+ export type Mention = {
5
+ placeholder: string;
6
+ type: MentionType;
7
+ id: string;
8
+ text: string;
9
+ };
10
+ /**
11
+ * Serializable subset of Streetz post creation payload.
12
+ * Frontend extends this with `mediaFile?: File` locally.
13
+ */
14
+ export type StreetzPostPayload = {
15
+ userId: string;
16
+ displayName: string;
17
+ profilePictureUrlMedium?: string | null;
18
+ mentions?: Mention[];
19
+ newMediaUrl?: string;
20
+ skill?: {
21
+ id: string;
22
+ name: string;
23
+ url: string;
24
+ type: 'image' | 'video' | 'audio';
25
+ };
26
+ skillId?: string;
27
+ projectTitle?: string;
28
+ projectId?: string;
29
+ projectType?: string;
30
+ projectDescription?: string;
31
+ content?: string;
32
+ mediaUrl?: string;
33
+ mediaType?: 'image' | 'video' | 'audio' | 'other';
34
+ createdAt?: number;
35
+ };
36
+ export type StreetzPost = {
37
+ postId: string;
38
+ createdBy: ShortUser;
39
+ authorId: string;
40
+ content: string;
41
+ mentions?: Mention[];
42
+ relatedIds: string[];
43
+ mediaUrl?: string;
44
+ mediaType?: 'image' | 'video' | 'audio' | 'other';
45
+ createdAt: number;
46
+ likes: number;
47
+ postType?: StreetzPostType;
48
+ relatedAssetId?: string;
49
+ moderationStatus?: 'pending' | 'approved' | 'rejected' | 'pending_review';
50
+ moderationReason?: string;
51
+ moderationLayer?: 'word_filter' | 'perspective';
52
+ visible?: boolean;
53
+ };
54
+ export type MentionHistoryItem = Mention & {
55
+ viewedAt: number;
56
+ };
57
+ export type MentionHistoryDocument = {
58
+ userId: string;
59
+ items: MentionHistoryItem[];
60
+ };
61
+ export type Donation = {
62
+ donationId: string;
63
+ stripeSessionId: string;
64
+ amount: number;
65
+ currency: string;
66
+ message: string;
67
+ status: string;
68
+ createdAt: number;
69
+ userId: string;
70
+ displayName: string;
71
+ };
72
+ //# sourceMappingURL=social.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../../src/types/social.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // Social types: Streetz feed, Mentions, Follows, Donations
2
+ export {};
3
+ //# sourceMappingURL=social.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/types/social.ts"],"names":[],"mappings":"AAAA,2DAA2D"}
@@ -0,0 +1,65 @@
1
+ export type ShortUser = {
2
+ uid: string;
3
+ displayName: string;
4
+ profilePictureUrlMedium?: string | null;
5
+ };
6
+ export type Skill = {
7
+ id: string;
8
+ name: string;
9
+ url: string;
10
+ tags: string[];
11
+ createdAt: number;
12
+ type: 'image' | 'video' | 'audio';
13
+ };
14
+ export type SkillReference = {
15
+ skillId: string;
16
+ compositeId: string;
17
+ userId: string;
18
+ displayName: string;
19
+ skillName: string;
20
+ skillUrl: string;
21
+ skillType: 'image' | 'video' | 'audio';
22
+ tags: string[];
23
+ createdAt: number;
24
+ };
25
+ export interface MinimalSkill {
26
+ id: string;
27
+ name: string;
28
+ url: string;
29
+ type: 'image' | 'video' | 'audio';
30
+ }
31
+ export type OwnedProject = {
32
+ projectId: string;
33
+ workingTitle: string;
34
+ workingDescription: string;
35
+ type: string;
36
+ createdOn: number;
37
+ libraryType: LibraryItemType;
38
+ };
39
+ export type AssociatedProject = {
40
+ projectId: string;
41
+ workingTitle: string;
42
+ workingDescription: string;
43
+ type: string;
44
+ joinedOn: number;
45
+ };
46
+ import type { LibraryItemType } from './content.js';
47
+ export type FullUser = {
48
+ uid: string;
49
+ displayName: string;
50
+ displayName_lowercase: string;
51
+ profilePictureUrlFull?: string | null;
52
+ profilePictureUrlMedium?: string | null;
53
+ profilePictureUrlSmall?: string | null;
54
+ creator?: string;
55
+ status?: 'active' | 'disabled' | 'banned';
56
+ ownedProjects?: OwnedProject[];
57
+ associatedProjects?: AssociatedProject[];
58
+ isWaitingForNewsApproval?: boolean;
59
+ createdAt: number;
60
+ streetzAgreementsDate?: number;
61
+ };
62
+ export type AllFollows = {
63
+ allFollowedUsers: ShortUser[];
64
+ };
65
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IACvC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACnC;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAGF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1C,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,gBAAgB,EAAE,SAAS,EAAE,CAAC;CAC/B,CAAC"}
@@ -0,0 +1,3 @@
1
+ // User-related Firestore document types
2
+ export {};
3
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA,wCAAwC"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@ttt-productions/ttt-core",
3
+ "version": "0.1.1",
4
+ "description": "Core types, Firestore path constants, and shared constants for TTT Productions",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/ttt-productions/ttt-packages.git",
8
+ "directory": "packages/ttt-core"
9
+ },
10
+ "type": "module",
11
+ "main": "dist/index.js",
12
+ "module": "dist/index.js",
13
+ "types": "dist/index.d.ts",
14
+ "sideEffects": false,
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "default": "./dist/index.js"
22
+ },
23
+ "./types": {
24
+ "types": "./dist/types/index.d.ts",
25
+ "default": "./dist/types/index.js"
26
+ },
27
+ "./paths": {
28
+ "types": "./dist/paths/index.d.ts",
29
+ "default": "./dist/paths/index.js"
30
+ },
31
+ "./constants": {
32
+ "types": "./dist/constants/index.d.ts",
33
+ "default": "./dist/constants/index.js"
34
+ }
35
+ },
36
+ "scripts": {
37
+ "build": "tsc",
38
+ "clean": "rm -rf dist *.tsbuildinfo",
39
+ "typecheck": "tsc --noEmit",
40
+ "prepublishOnly": "npm run clean && npm run build"
41
+ },
42
+ "devDependencies": {
43
+ "typescript": "^5.8.3"
44
+ },
45
+ "author": "DJ (TTT Productions)",
46
+ "license": "MIT"
47
+ }