podverse-orm 1.0.0 → 5.0.0-beta.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 (165) hide show
  1. package/.nvmrc +1 -0
  2. package/dist/index.js +166 -2
  3. package/eslint.config.mjs +44 -0
  4. package/package.json +26 -17
  5. package/src/config/index.ts +12 -0
  6. package/src/db/index.ts +207 -0
  7. package/src/entities/account/account.ts +24 -0
  8. package/src/entities/account/accountAdminRoles.ts +18 -0
  9. package/src/entities/account/accountAppStorePurchase.ts +75 -0
  10. package/src/entities/account/accountCredentials.ts +18 -0
  11. package/src/entities/account/accountFCMDevice.ts +15 -0
  12. package/src/entities/account/accountFollowingAccount.ts +19 -0
  13. package/src/entities/account/accountFollowingAddByRSSChannel.ts +21 -0
  14. package/src/entities/account/accountFollowingChannel.ts +20 -0
  15. package/src/entities/account/accountFollowingPlaylist.ts +20 -0
  16. package/src/entities/account/accountGooglePlayPurchase.ts +39 -0
  17. package/src/entities/account/accountMembership.ts +10 -0
  18. package/src/entities/account/accountMembershipStatus.ts +20 -0
  19. package/src/entities/account/accountNotification.ts +20 -0
  20. package/src/entities/account/accountPayPalOrder.ts +18 -0
  21. package/src/entities/account/accountProfile.ts +18 -0
  22. package/src/entities/account/accountResetPassword.ts +18 -0
  23. package/src/entities/account/accountUPDevice.ts +21 -0
  24. package/src/entities/account/accountVerification.ts +18 -0
  25. package/src/entities/category.ts +16 -0
  26. package/src/entities/channel/channel.ts +64 -0
  27. package/src/entities/channel/channelAbout.ts +35 -0
  28. package/src/entities/channel/channelCategory.ts +16 -0
  29. package/src/entities/channel/channelChat.ts +24 -0
  30. package/src/entities/channel/channelDescription.ts +16 -0
  31. package/src/entities/channel/channelFunding.ts +18 -0
  32. package/src/entities/channel/channelImage.ts +21 -0
  33. package/src/entities/channel/channelInternalSettings.ts +15 -0
  34. package/src/entities/channel/channelItunesType.ts +34 -0
  35. package/src/entities/channel/channelLicense.ts +19 -0
  36. package/src/entities/channel/channelLocation.ts +22 -0
  37. package/src/entities/channel/channelPerson.ts +39 -0
  38. package/src/entities/channel/channelPodroll.ts +12 -0
  39. package/src/entities/channel/channelPodrollRemoteItem.ts +24 -0
  40. package/src/entities/channel/channelPublisher.ts +12 -0
  41. package/src/entities/channel/channelPublisherRemoteItem.ts +24 -0
  42. package/src/entities/channel/channelRemoteItem.ts +24 -0
  43. package/src/entities/channel/channelSeason.ts +22 -0
  44. package/src/entities/channel/channelSocialInteract.ts +27 -0
  45. package/src/entities/channel/channelTrailer.ts +32 -0
  46. package/src/entities/channel/channelTxt.ts +18 -0
  47. package/src/entities/channel/channelValue.ts +21 -0
  48. package/src/entities/channel/channelValueRecipient.ts +33 -0
  49. package/src/entities/clip.ts +43 -0
  50. package/src/entities/feed/feed.ts +35 -0
  51. package/src/entities/feed/feedFlagStatus.ts +33 -0
  52. package/src/entities/feed/feedLog.ts +23 -0
  53. package/src/entities/item/item.ts +51 -0
  54. package/src/entities/item/itemAbout.ts +26 -0
  55. package/src/entities/item/itemChapter.ts +40 -0
  56. package/src/entities/item/itemChapterLocation.ts +22 -0
  57. package/src/entities/item/itemChaptersFeed.ts +22 -0
  58. package/src/entities/item/itemChaptersFeedLog.ts +23 -0
  59. package/src/entities/item/itemChat.ts +24 -0
  60. package/src/entities/item/itemContentLink.ts +18 -0
  61. package/src/entities/item/itemDescription.ts +16 -0
  62. package/src/entities/item/itemEnclosure.ts +39 -0
  63. package/src/entities/item/itemEnclosureIntegrity.ts +18 -0
  64. package/src/entities/item/itemEnclosureSource.ts +18 -0
  65. package/src/entities/item/itemFunding.ts +18 -0
  66. package/src/entities/item/itemImage.ts +21 -0
  67. package/src/entities/item/itemItunesEpisodeType.ts +33 -0
  68. package/src/entities/item/itemLicense.ts +19 -0
  69. package/src/entities/item/itemLocation.ts +22 -0
  70. package/src/entities/item/itemPerson.ts +38 -0
  71. package/src/entities/item/itemSeason.ts +23 -0
  72. package/src/entities/item/itemSeasonEpisode.ts +18 -0
  73. package/src/entities/item/itemSocialInteract.ts +27 -0
  74. package/src/entities/item/itemSoundbite.ts +30 -0
  75. package/src/entities/item/itemTranscript.ts +24 -0
  76. package/src/entities/item/itemTxt.ts +18 -0
  77. package/src/entities/item/itemValue.ts +21 -0
  78. package/src/entities/item/itemValueRecipient.ts +33 -0
  79. package/src/entities/item/itemValueTimeSplit.ts +24 -0
  80. package/src/entities/item/itemValueTimeSplitRecipient.ts +33 -0
  81. package/src/entities/item/itemValueTimeSplitRemoteItem.ts +24 -0
  82. package/src/entities/liveItem/liveItem.ts +26 -0
  83. package/src/entities/liveItem/liveItemStatus.ts +30 -0
  84. package/src/entities/medium.ts +65 -0
  85. package/src/entities/membershipClaimToken.ts +21 -0
  86. package/src/entities/playlist/playlist.ts +46 -0
  87. package/src/entities/playlist/playlistResourceBase.ts +16 -0
  88. package/src/entities/playlist/playlistResourceClip.ts +10 -0
  89. package/src/entities/playlist/playlistResourceItem.ts +10 -0
  90. package/src/entities/playlist/playlistResourceItemAddByRSS.ts +8 -0
  91. package/src/entities/playlist/playlistResourceItemChapter.ts +10 -0
  92. package/src/entities/playlist/playlistResourceItemSoundbite.ts +10 -0
  93. package/src/entities/queue/queue.ts +17 -0
  94. package/src/entities/queue/queueResourceBase.ts +24 -0
  95. package/src/entities/queue/queueResourceClip.ts +11 -0
  96. package/src/entities/queue/queueResourceItem.ts +11 -0
  97. package/src/entities/queue/queueResourceItemAddByRSS.ts +9 -0
  98. package/src/entities/queue/queueResourceItemChapter.ts +11 -0
  99. package/src/entities/queue/queueResourceItemSoundbite.ts +11 -0
  100. package/src/entities/sharableStatus.ts +10 -0
  101. package/src/index.ts +166 -0
  102. package/src/lib/applyProperties.ts +9 -0
  103. package/src/lib/filterImageDtosByHighestWidth.ts +22 -0
  104. package/src/lib/hasDifferentValues.ts +33 -0
  105. package/src/lib/typeORMTypes.ts +5 -0
  106. package/src/module-alias-config.ts +8 -0
  107. package/src/services/base/baseManyService.ts +134 -0
  108. package/src/services/base/baseOneService.ts +47 -0
  109. package/src/services/base/baseRemoteItemsService.ts +55 -0
  110. package/src/services/channel/channel.ts +67 -0
  111. package/src/services/channel/channelAbout.ts +25 -0
  112. package/src/services/channel/channelChat.ts +21 -0
  113. package/src/services/channel/channelDescription.ts +18 -0
  114. package/src/services/channel/channelFunding.ts +29 -0
  115. package/src/services/channel/channelImage.ts +33 -0
  116. package/src/services/channel/channelLicense.ts +19 -0
  117. package/src/services/channel/channelLocation.ts +20 -0
  118. package/src/services/channel/channelPerson.ts +32 -0
  119. package/src/services/channel/channelPodroll.ts +20 -0
  120. package/src/services/channel/channelPodrollRemoteItem.ts +25 -0
  121. package/src/services/channel/channelPublisher.ts +15 -0
  122. package/src/services/channel/channelPublisherRemoteItem.ts +24 -0
  123. package/src/services/channel/channelRemoteItem.ts +29 -0
  124. package/src/services/channel/channelSeason.ts +42 -0
  125. package/src/services/channel/channelSocialInteract.ts +32 -0
  126. package/src/services/channel/channelTrailer.ts +34 -0
  127. package/src/services/channel/channelTxt.ts +29 -0
  128. package/src/services/channel/channelValue.ts +30 -0
  129. package/src/services/channel/channelValueRecipient.ts +30 -0
  130. package/src/services/feed/feed.ts +97 -0
  131. package/src/services/feed/feedFlagStatus.ts +12 -0
  132. package/src/services/feed/feedLog.ts +24 -0
  133. package/src/services/item/item.ts +118 -0
  134. package/src/services/item/itemAbout.ts +22 -0
  135. package/src/services/item/itemChapter.ts +38 -0
  136. package/src/services/item/itemChaptersFeed.ts +19 -0
  137. package/src/services/item/itemChaptersFeedLog.ts +24 -0
  138. package/src/services/item/itemChat.ts +21 -0
  139. package/src/services/item/itemContentLink.ts +24 -0
  140. package/src/services/item/itemDescription.ts +18 -0
  141. package/src/services/item/itemEnclosure.ts +36 -0
  142. package/src/services/item/itemEnclosureIntegrity.ts +19 -0
  143. package/src/services/item/itemEnclosureSource.ts +25 -0
  144. package/src/services/item/itemFunding.ts +24 -0
  145. package/src/services/item/itemImage.ts +33 -0
  146. package/src/services/item/itemLicense.ts +19 -0
  147. package/src/services/item/itemLocation.ts +20 -0
  148. package/src/services/item/itemPerson.ts +32 -0
  149. package/src/services/item/itemSeason.ts +20 -0
  150. package/src/services/item/itemSeasonEpisode.ts +19 -0
  151. package/src/services/item/itemSocialInteract.ts +32 -0
  152. package/src/services/item/itemSoundbite.ts +34 -0
  153. package/src/services/item/itemTranscript.ts +29 -0
  154. package/src/services/item/itemTxt.ts +29 -0
  155. package/src/services/item/itemValue.ts +30 -0
  156. package/src/services/item/itemValueRecipient.ts +34 -0
  157. package/src/services/item/itemValueTimeSplit.ts +31 -0
  158. package/src/services/item/itemValueTimeSplitRecipient.ts +34 -0
  159. package/src/services/item/itemValueTimeSplitRemoteItem.ts +25 -0
  160. package/src/services/liveItem/liveItem.ts +20 -0
  161. package/src/services/medium.ts +10 -0
  162. package/tsconfig.json +25 -0
  163. package/LICENSE +0 -674
  164. package/README.md +0 -2
  165. package/dist/index.js.map +0 -7
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ v20.16.0
package/dist/index.js CHANGED
@@ -1,2 +1,166 @@
1
- var n=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var d=(e,o)=>{for(var y in o)n(e,y,{get:o[y],enumerable:!0})},f=(e,o,y,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let l of r(o))!b.call(e,l)&&l!==y&&n(e,l,{get:()=>o[l],enumerable:!(s=c(o,l))||s.enumerable});return e};var g=e=>f(n({},"__esModule",{value:!0}),e);var i={};d(i,{sayGoodbye:()=>a,sayHello:()=>t});module.exports=g(i);function t(){console.log("hi")}function a(){console.log("goodbye")}0&&(module.exports={sayGoodbye,sayHello});
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ require("./module-alias-config");
18
+ __exportStar(require("./config"), exports);
19
+ __exportStar(require("./db"), exports);
20
+ __exportStar(require("./entities/account/account"), exports);
21
+ __exportStar(require("./entities/account/accountAdminRoles"), exports);
22
+ __exportStar(require("./entities/account/accountAppStorePurchase"), exports);
23
+ __exportStar(require("./entities/account/accountCredentials"), exports);
24
+ __exportStar(require("./entities/account/accountFCMDevice"), exports);
25
+ __exportStar(require("./entities/account/accountFollowingAccount"), exports);
26
+ __exportStar(require("./entities/account/accountFollowingAddByRSSChannel"), exports);
27
+ __exportStar(require("./entities/account/accountFollowingChannel"), exports);
28
+ __exportStar(require("./entities/account/accountFollowingPlaylist"), exports);
29
+ __exportStar(require("./entities/account/accountGooglePlayPurchase"), exports);
30
+ __exportStar(require("./entities/account/accountMembership"), exports);
31
+ __exportStar(require("./entities/account/accountMembershipStatus"), exports);
32
+ __exportStar(require("./entities/account/accountNotification"), exports);
33
+ __exportStar(require("./entities/account/accountPayPalOrder"), exports);
34
+ __exportStar(require("./entities/account/accountProfile"), exports);
35
+ __exportStar(require("./entities/account/accountResetPassword"), exports);
36
+ __exportStar(require("./entities/account/accountUPDevice"), exports);
37
+ __exportStar(require("./entities/account/accountVerification"), exports);
38
+ __exportStar(require("./entities/channel/channel"), exports);
39
+ __exportStar(require("./entities/channel/channelAbout"), exports);
40
+ __exportStar(require("./entities/channel/channelCategory"), exports);
41
+ __exportStar(require("./entities/channel/channelChat"), exports);
42
+ __exportStar(require("./entities/channel/channelDescription"), exports);
43
+ __exportStar(require("./entities/channel/channelFunding"), exports);
44
+ __exportStar(require("./entities/channel/channelImage"), exports);
45
+ __exportStar(require("./entities/channel/channelInternalSettings"), exports);
46
+ __exportStar(require("./entities/channel/channelItunesType"), exports);
47
+ __exportStar(require("./entities/channel/channelLicense"), exports);
48
+ __exportStar(require("./entities/channel/channelLocation"), exports);
49
+ __exportStar(require("./entities/channel/channelPerson"), exports);
50
+ __exportStar(require("./entities/channel/channelPodroll"), exports);
51
+ __exportStar(require("./entities/channel/channelPodrollRemoteItem"), exports);
52
+ __exportStar(require("./entities/channel/channelPublisher"), exports);
53
+ __exportStar(require("./entities/channel/channelPublisherRemoteItem"), exports);
54
+ __exportStar(require("./entities/channel/channelRemoteItem"), exports);
55
+ __exportStar(require("./entities/channel/channelSeason"), exports);
56
+ __exportStar(require("./entities/channel/channelSocialInteract"), exports);
57
+ __exportStar(require("./entities/channel/channelTrailer"), exports);
58
+ __exportStar(require("./entities/channel/channelTxt"), exports);
59
+ __exportStar(require("./entities/channel/channelValue"), exports);
60
+ __exportStar(require("./entities/channel/channelValueRecipient"), exports);
61
+ __exportStar(require("./entities/feed/feed"), exports);
62
+ __exportStar(require("./entities/feed/feedFlagStatus"), exports);
63
+ __exportStar(require("./entities/feed/feedLog"), exports);
64
+ __exportStar(require("./entities/item/item"), exports);
65
+ __exportStar(require("./entities/item/itemAbout"), exports);
66
+ __exportStar(require("./entities/item/itemChapter"), exports);
67
+ __exportStar(require("./entities/item/itemChapterLocation"), exports);
68
+ __exportStar(require("./entities/item/itemChaptersFeed"), exports);
69
+ __exportStar(require("./entities/item/itemChaptersFeedLog"), exports);
70
+ __exportStar(require("./entities/item/itemChat"), exports);
71
+ __exportStar(require("./entities/item/itemContentLink"), exports);
72
+ __exportStar(require("./entities/item/itemDescription"), exports);
73
+ __exportStar(require("./entities/item/itemEnclosure"), exports);
74
+ __exportStar(require("./entities/item/itemEnclosureIntegrity"), exports);
75
+ __exportStar(require("./entities/item/itemEnclosureSource"), exports);
76
+ __exportStar(require("./entities/item/itemFunding"), exports);
77
+ __exportStar(require("./entities/item/itemImage"), exports);
78
+ __exportStar(require("./entities/item/itemItunesEpisodeType"), exports);
79
+ __exportStar(require("./entities/item/itemLicense"), exports);
80
+ __exportStar(require("./entities/item/itemLocation"), exports);
81
+ __exportStar(require("./entities/item/itemPerson"), exports);
82
+ __exportStar(require("./entities/item/itemSeason"), exports);
83
+ __exportStar(require("./entities/item/itemSeasonEpisode"), exports);
84
+ __exportStar(require("./entities/item/itemSocialInteract"), exports);
85
+ __exportStar(require("./entities/item/itemSoundbite"), exports);
86
+ __exportStar(require("./entities/item/itemTranscript"), exports);
87
+ __exportStar(require("./entities/item/itemTxt"), exports);
88
+ __exportStar(require("./entities/item/itemValue"), exports);
89
+ __exportStar(require("./entities/item/itemValueRecipient"), exports);
90
+ __exportStar(require("./entities/item/itemValueTimeSplit"), exports);
91
+ __exportStar(require("./entities/item/itemValueTimeSplitRecipient"), exports);
92
+ __exportStar(require("./entities/item/itemValueTimeSplitRemoteItem"), exports);
93
+ __exportStar(require("./entities/liveItem/liveItem"), exports);
94
+ __exportStar(require("./entities/liveItem/liveItemStatus"), exports);
95
+ __exportStar(require("./entities/playlist/playlist"), exports);
96
+ __exportStar(require("./entities/playlist/playlistResourceBase"), exports);
97
+ __exportStar(require("./entities/playlist/playlistResourceClip"), exports);
98
+ __exportStar(require("./entities/playlist/playlistResourceItem"), exports);
99
+ __exportStar(require("./entities/playlist/playlistResourceItemAddByRSS"), exports);
100
+ __exportStar(require("./entities/playlist/playlistResourceItemChapter"), exports);
101
+ __exportStar(require("./entities/playlist/playlistResourceItemSoundbite"), exports);
102
+ __exportStar(require("./entities/queue/queue"), exports);
103
+ __exportStar(require("./entities/queue/queueResourceBase"), exports);
104
+ __exportStar(require("./entities/queue/queueResourceClip"), exports);
105
+ __exportStar(require("./entities/queue/queueResourceItem"), exports);
106
+ __exportStar(require("./entities/queue/queueResourceItemAddByRSS"), exports);
107
+ __exportStar(require("./entities/queue/queueResourceItemChapter"), exports);
108
+ __exportStar(require("./entities/queue/queueResourceItemSoundbite"), exports);
109
+ __exportStar(require("./entities/category"), exports);
110
+ __exportStar(require("./entities/clip"), exports);
111
+ __exportStar(require("./entities/medium"), exports);
112
+ __exportStar(require("./entities/membershipClaimToken"), exports);
113
+ __exportStar(require("./entities/sharableStatus"), exports);
114
+ __exportStar(require("./lib/typeORMTypes"), exports);
115
+ __exportStar(require("./services/channel/channel"), exports);
116
+ __exportStar(require("./services/channel/channelAbout"), exports);
117
+ __exportStar(require("./services/channel/channelChat"), exports);
118
+ __exportStar(require("./services/channel/channelDescription"), exports);
119
+ __exportStar(require("./services/channel/channelFunding"), exports);
120
+ __exportStar(require("./services/channel/channelImage"), exports);
121
+ __exportStar(require("./services/channel/channelLicense"), exports);
122
+ __exportStar(require("./services/channel/channelLocation"), exports);
123
+ __exportStar(require("./services/channel/channelPerson"), exports);
124
+ __exportStar(require("./services/channel/channelPodroll"), exports);
125
+ __exportStar(require("./services/channel/channelPodrollRemoteItem"), exports);
126
+ __exportStar(require("./services/channel/channelPublisher"), exports);
127
+ __exportStar(require("./services/channel/channelPublisherRemoteItem"), exports);
128
+ __exportStar(require("./services/channel/channelRemoteItem"), exports);
129
+ __exportStar(require("./services/channel/channelSeason"), exports);
130
+ __exportStar(require("./services/channel/channelSocialInteract"), exports);
131
+ __exportStar(require("./services/channel/channelTrailer"), exports);
132
+ __exportStar(require("./services/channel/channelTxt"), exports);
133
+ __exportStar(require("./services/channel/channelValue"), exports);
134
+ __exportStar(require("./services/channel/channelValueRecipient"), exports);
135
+ __exportStar(require("./services/feed/feed"), exports);
136
+ __exportStar(require("./services/feed/feedFlagStatus"), exports);
137
+ __exportStar(require("./services/feed/feedLog"), exports);
138
+ __exportStar(require("./services/item/item"), exports);
139
+ __exportStar(require("./services/item/itemAbout"), exports);
140
+ __exportStar(require("./services/item/itemChapter"), exports);
141
+ __exportStar(require("./services/item/itemChaptersFeed"), exports);
142
+ __exportStar(require("./services/item/itemChaptersFeedLog"), exports);
143
+ __exportStar(require("./services/item/itemChat"), exports);
144
+ __exportStar(require("./services/item/itemContentLink"), exports);
145
+ __exportStar(require("./services/item/itemDescription"), exports);
146
+ __exportStar(require("./services/item/itemEnclosure"), exports);
147
+ __exportStar(require("./services/item/itemEnclosureIntegrity"), exports);
148
+ __exportStar(require("./services/item/itemEnclosureSource"), exports);
149
+ __exportStar(require("./services/item/itemFunding"), exports);
150
+ __exportStar(require("./services/item/itemImage"), exports);
151
+ __exportStar(require("./services/item/itemLicense"), exports);
152
+ __exportStar(require("./services/item/itemLocation"), exports);
153
+ __exportStar(require("./services/item/itemPerson"), exports);
154
+ __exportStar(require("./services/item/itemSeason"), exports);
155
+ __exportStar(require("./services/item/itemSeasonEpisode"), exports);
156
+ __exportStar(require("./services/item/itemSocialInteract"), exports);
157
+ __exportStar(require("./services/item/itemSoundbite"), exports);
158
+ __exportStar(require("./services/item/itemTranscript"), exports);
159
+ __exportStar(require("./services/item/itemTxt"), exports);
160
+ __exportStar(require("./services/item/itemValue"), exports);
161
+ __exportStar(require("./services/item/itemValueRecipient"), exports);
162
+ __exportStar(require("./services/item/itemValueTimeSplit"), exports);
163
+ __exportStar(require("./services/item/itemValueTimeSplitRecipient"), exports);
164
+ __exportStar(require("./services/item/itemValueTimeSplitRemoteItem"), exports);
165
+ __exportStar(require("./services/liveItem/liveItem"), exports);
166
+ __exportStar(require("./services/medium"), exports);
@@ -0,0 +1,44 @@
1
+ import globals from "globals";
2
+ import pluginJs from "@eslint/js";
3
+ import tseslint from "@typescript-eslint/eslint-plugin";
4
+ import tsParser from "@typescript-eslint/parser";
5
+
6
+ const pluginJsRecommended = {
7
+ rules: {
8
+ ...pluginJs.configs.recommended.rules,
9
+ },
10
+ };
11
+
12
+ const tseslintRecommended = {
13
+ rules: {
14
+ ...tseslint.configs.recommended.rules,
15
+ },
16
+ };
17
+
18
+ export default [
19
+ {
20
+ files: ["src/**/*.{js,ts}"],
21
+ languageOptions: {
22
+ globals: globals.node,
23
+ parser: tsParser,
24
+ },
25
+ plugins: {
26
+ "@typescript-eslint": tseslint,
27
+ },
28
+ rules: {
29
+ ...pluginJsRecommended.rules,
30
+ ...tseslintRecommended.rules,
31
+ "semi": ["error", "always"],
32
+ "indent": ["error", 2],
33
+ "@typescript-eslint/no-require-imports": "off",
34
+ },
35
+ ignores: ["**/eslint.config.mjs"],
36
+ },
37
+ {
38
+ files: ["src/entities/**/*.{js,ts}"],
39
+ rules: {
40
+ "indent": "off",
41
+ },
42
+ }
43
+ ];
44
+
package/package.json CHANGED
@@ -1,25 +1,34 @@
1
1
  {
2
2
  "name": "podverse-orm",
3
- "version": "1.0.0",
4
- "description": "Object relational mapping library for connecting a Postgres database to Podverse apps",
3
+ "version": "5.0.0-beta.1",
4
+ "description": "",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
5
7
  "scripts": {
6
- "build": "esbuild src/index.ts --bundle --minify --sourcemap --platform=node --target=es2020 --outfile=dist/index.js",
8
+ "dev:watch": "nodemon --watch 'src' --watch $(realpath node_modules/podverse-external-services) --watch $(realpath node_modules/podverse-orm) --watch $(realpath node_modules/podverse-shared) -x \"npm run build\"",
9
+ "build": "tsc",
7
10
  "lint": "eslint ./src --ext .ts",
8
- "lint-fix": "eslint --fix"
11
+ "prepare": "npm run build",
12
+ "start": "ts-node ./dist/index.js"
13
+ },
14
+ "author": "",
15
+ "license": "AGPLv3",
16
+ "dependencies": {
17
+ "module-alias": "^2.2.3",
18
+ "pg": "^8.12.0",
19
+ "podverse-helpers": "^5.0.0-beta.1",
20
+ "shortid": "^2.2.16",
21
+ "typeorm": "^0.3.20",
22
+ "typeorm-naming-strategies": "^4.1.0"
9
23
  },
10
- "main": "dist/index.js",
11
- "types": "dist/index.d.ts",
12
- "skipLibCheck": true,
13
- "files": [
14
- "/dist"
15
- ],
16
24
  "devDependencies": {
17
- "@typescript-eslint/eslint-plugin": "^6.13.0",
18
- "@typescript-eslint/parser": "^6.13.0",
19
- "esbuild": "^0.19.8",
20
- "eslint": "^8.54.0",
21
- "tsx": "^4.6.0",
22
- "typeorm": "0.2.45",
23
- "typescript": "^5.3.2"
25
+ "@eslint/config-array": "^0.18.0",
26
+ "@eslint/eslintrc": "^3.1.0",
27
+ "@eslint/js": "^9.8.0",
28
+ "@types/node": "^22.1.0",
29
+ "eslint": "^9.9.0",
30
+ "ts-node": "^10.9.2",
31
+ "typescript": "^5.5.4",
32
+ "typescript-eslint": "^8.0.1"
24
33
  }
25
34
  }
@@ -0,0 +1,12 @@
1
+ export const config = {
2
+ nodeEnv: process.env.NODE_ENV || 'development',
3
+ database: {
4
+ type: process.env.DB_TYPE || 'postgres',
5
+ host: process.env.DB_HOST || 'localhost',
6
+ port: parseInt(process.env.DB_PORT || '5432', 10),
7
+ username: process.env.DB_USERNAME || 'user',
8
+ password: process.env.DB_PASSWORD || '',
9
+ database: process.env.DB_DATABASE || 'db',
10
+ ssl_connection: process.env.DB_SSL_CONNECTION === 'true',
11
+ }
12
+ };
@@ -0,0 +1,207 @@
1
+ import { DataSource } from "typeorm";
2
+ import { config } from "@orm/config";
3
+ import { Account } from "@orm/entities/account/account";
4
+ import { AccountAdminRoles } from "@orm/entities/account/accountAdminRoles";
5
+ import { AccountAppStorePurchase } from "@orm/entities/account/accountAppStorePurchase";
6
+ import { AccountCredentials } from "@orm/entities/account/accountCredentials";
7
+ import { AccountFCMDevice } from "@orm/entities/account/accountFCMDevice";
8
+ import { AccountFollowingAccount } from "@orm/entities/account/accountFollowingAccount";
9
+ import { AccountFollowingAddByRssChannel } from "@orm/entities/account/accountFollowingAddByRSSChannel";
10
+ import { AccountFollowingChannel } from "@orm/entities/account/accountFollowingChannel";
11
+ import { AccountFollowingPlaylist } from "@orm/entities/account/accountFollowingPlaylist";
12
+ import { AccountGooglePlayPurchase } from "@orm/entities/account/accountGooglePlayPurchase";
13
+ import { AccountMembership } from "@orm/entities/account/accountMembership";
14
+ import { AccountMembershipStatus } from "@orm/entities/account/accountMembershipStatus";
15
+ import { AccountNotification } from "@orm/entities/account/accountNotification";
16
+ import { AccountPaypalOrder } from "@orm/entities/account/accountPayPalOrder";
17
+ import { AccountProfile } from "@orm/entities/account/accountProfile";
18
+ import { AccountResetPassword } from "@orm/entities/account/accountResetPassword";
19
+ import { AccountUpDevice } from "@orm/entities/account/accountUPDevice";
20
+ import { AccountVerification } from "@orm/entities/account/accountVerification";
21
+ import { Category } from "@orm/entities/category";
22
+ import { Feed } from "@orm/entities/feed/feed";
23
+ import { FeedFlagStatus } from "@orm/entities/feed/feedFlagStatus";
24
+ import { FeedLog } from "@orm/entities/feed/feedLog";
25
+ import { Medium } from "@orm/entities/medium";
26
+ import { Channel } from "@orm/entities/channel/channel";
27
+ import { ChannelAbout } from "@orm/entities/channel/channelAbout";
28
+ import { ChannelCategory } from "@orm/entities/channel/channelCategory";
29
+ import { ChannelChat } from "@orm/entities/channel/channelChat";
30
+ import { ChannelDescription } from "@orm/entities/channel/channelDescription";
31
+ import { ChannelFunding } from "@orm/entities/channel/channelFunding";
32
+ import { ChannelImage } from "@orm/entities/channel/channelImage";
33
+ import { ChannelInternalSettings } from "@orm/entities/channel/channelInternalSettings";
34
+ import { ChannelItunesType } from "@orm/entities/channel/channelItunesType";
35
+ import { ChannelLicense } from "@orm/entities/channel/channelLicense";
36
+ import { ChannelLocation } from "@orm/entities/channel/channelLocation";
37
+ import { ChannelPerson } from "@orm/entities/channel/channelPerson";
38
+ import { ChannelPodroll } from "@orm/entities/channel/channelPodroll";
39
+ import { ChannelPodrollRemoteItem } from "@orm/entities/channel/channelPodrollRemoteItem";
40
+ import { ChannelPublisher } from "@orm/entities/channel/channelPublisher";
41
+ import { ChannelPublisherRemoteItem } from "@orm/entities/channel/channelPublisherRemoteItem";
42
+ import { ChannelRemoteItem } from "@orm/entities/channel/channelRemoteItem";
43
+ import { ChannelSeason } from "@orm/entities/channel/channelSeason";
44
+ import { ChannelSocialInteract } from "@orm/entities/channel/channelSocialInteract";
45
+ import { ChannelTrailer } from "@orm/entities/channel/channelTrailer";
46
+ import { ChannelTxt } from "@orm/entities/channel/channelTxt";
47
+ import { ChannelValue } from "@orm/entities/channel/channelValue";
48
+ import { ChannelValueRecipient } from "@orm/entities/channel/channelValueRecipient";
49
+ import { Item } from "@orm/entities/item/item";
50
+ import { ItemAbout } from "@orm/entities/item/itemAbout";
51
+ import { ItemChapter } from "@orm/entities/item/itemChapter";
52
+ import { ItemChapterLocation } from "@orm/entities/item/itemChapterLocation";
53
+ import { ItemChaptersFeed } from "@orm/entities/item/itemChaptersFeed";
54
+ import { ItemChaptersFeedLog } from "@orm/entities/item/itemChaptersFeedLog";
55
+ import { ItemChat } from "@orm/entities/item/itemChat";
56
+ import { ItemContentLink } from "@orm/entities/item/itemContentLink";
57
+ import { ItemDescription } from "@orm/entities/item/itemDescription";
58
+ import { ItemEnclosure } from "@orm/entities/item/itemEnclosure";
59
+ import { ItemEnclosureIntegrity } from "@orm/entities/item/itemEnclosureIntegrity";
60
+ import { ItemEnclosureSource } from "@orm/entities/item/itemEnclosureSource";
61
+ import { ItemFunding } from "@orm/entities/item/itemFunding";
62
+ import { ItemImage } from "@orm/entities/item/itemImage";
63
+ import { ItemItunesEpisodeType } from "@orm/entities/item/itemItunesEpisodeType";
64
+ import { ItemLicense } from "@orm/entities/item/itemLicense";
65
+ import { ItemLocation } from "@orm/entities/item/itemLocation";
66
+ import { ItemPerson } from "@orm/entities/item/itemPerson";
67
+ import { ItemSeason } from "@orm/entities/item/itemSeason";
68
+ import { ItemSeasonEpisode } from "@orm/entities/item/itemSeasonEpisode";
69
+ import { ItemSocialInteract } from "@orm/entities/item/itemSocialInteract";
70
+ import { ItemSoundbite } from "@orm/entities/item/itemSoundbite";
71
+ import { ItemTranscript } from "@orm/entities/item/itemTranscript";
72
+ import { ItemTxt } from "@orm/entities/item/itemTxt";
73
+ import { ItemValue } from "@orm/entities/item/itemValue";
74
+ import { ItemValueRecipient } from "@orm/entities/item/itemValueRecipient";
75
+ import { ItemValueTimeSplit } from "@orm/entities/item/itemValueTimeSplit";
76
+ import { ItemValueTimeSplitRecipient } from "@orm/entities/item/itemValueTimeSplitRecipient";
77
+ import { ItemValueTimeSplitRemoteItem } from "@orm/entities/item/itemValueTimeSplitRemoteItem";
78
+ import { LiveItem } from "@orm/entities/liveItem/liveItem";
79
+ import { LiveItemStatus } from "@orm/entities/liveItem/liveItemStatus";
80
+ import { Playlist } from "@orm/entities/playlist/playlist";
81
+ import { PlaylistResourceBase } from "@orm/entities/playlist/playlistResourceBase";
82
+ import { PlaylistResourceClip } from "@orm/entities/playlist/playlistResourceClip";
83
+ import { PlaylistResourceItem } from "@orm/entities/playlist/playlistResourceItem";
84
+ import { PlaylistResourceItemAddByRss } from "@orm/entities/playlist/playlistResourceItemAddByRSS";
85
+ import { PlaylistResourceItemChapter } from "@orm/entities/playlist/playlistResourceItemChapter";
86
+ import { PlaylistResourceItemSoundbite } from "@orm/entities/playlist/playlistResourceItemSoundbite";
87
+ import { Queue } from "@orm/entities/queue/queue";
88
+ import { QueueResourceBase } from "@orm/entities/queue/queueResourceBase";
89
+ import { QueueResourceClip } from "@orm/entities/queue/queueResourceClip";
90
+ import { QueueResourceItem } from "@orm/entities/queue/queueResourceItem";
91
+ import { QueueResourceItemAddByRss } from "@orm/entities/queue/queueResourceItemAddByRSS";
92
+ import { QueueResourceItemChapter } from "@orm/entities/queue/queueResourceItemChapter";
93
+ import { QueueResourceItemSoundbite } from "@orm/entities/queue/queueResourceItemSoundbite";
94
+ import { Clip } from "@orm/entities/clip";
95
+ import { MembershipClaimToken } from "@orm/entities/membershipClaimToken";
96
+ import { SharableStatus } from "@orm/entities/sharableStatus";
97
+ import { SnakeNamingStrategy } from "typeorm-naming-strategies";
98
+
99
+ export const AppDataSource = new DataSource({
100
+ type: "postgres",
101
+ host: config.database.host,
102
+ port: config.database.port,
103
+ username: config.database.username,
104
+ password: config.database.password,
105
+ database: config.database.database,
106
+ synchronize: false,
107
+ logging: false,
108
+ entities: [
109
+ Account,
110
+ AccountAdminRoles,
111
+ AccountAppStorePurchase,
112
+ AccountCredentials,
113
+ AccountFCMDevice,
114
+ AccountFollowingAccount,
115
+ AccountFollowingAddByRssChannel,
116
+ AccountFollowingChannel,
117
+ AccountFollowingPlaylist,
118
+ AccountGooglePlayPurchase,
119
+ AccountMembership,
120
+ AccountMembershipStatus,
121
+ AccountNotification,
122
+ AccountPaypalOrder,
123
+ AccountProfile,
124
+ AccountResetPassword,
125
+ AccountUpDevice,
126
+ AccountVerification,
127
+ Category,
128
+ Channel,
129
+ ChannelAbout,
130
+ ChannelCategory,
131
+ ChannelChat,
132
+ ChannelDescription,
133
+ ChannelFunding,
134
+ ChannelImage,
135
+ ChannelInternalSettings,
136
+ ChannelItunesType,
137
+ ChannelLicense,
138
+ ChannelLocation,
139
+ ChannelPerson,
140
+ ChannelPodroll,
141
+ ChannelPodrollRemoteItem,
142
+ ChannelPublisher,
143
+ ChannelPublisherRemoteItem,
144
+ ChannelRemoteItem,
145
+ ChannelSeason,
146
+ ChannelSocialInteract,
147
+ ChannelTrailer,
148
+ ChannelTxt,
149
+ ChannelValue,
150
+ ChannelValueRecipient,
151
+ Clip,
152
+ Feed,
153
+ FeedFlagStatus,
154
+ FeedLog,
155
+ Item,
156
+ ItemAbout,
157
+ ItemChapter,
158
+ ItemChapterLocation,
159
+ ItemChaptersFeed,
160
+ ItemChaptersFeedLog,
161
+ ItemChat,
162
+ ItemContentLink,
163
+ ItemDescription,
164
+ ItemEnclosure,
165
+ ItemEnclosureIntegrity,
166
+ ItemEnclosureSource,
167
+ ItemFunding,
168
+ ItemImage,
169
+ ItemItunesEpisodeType,
170
+ ItemLicense,
171
+ ItemLocation,
172
+ ItemPerson,
173
+ ItemSeason,
174
+ ItemSeasonEpisode,
175
+ ItemSocialInteract,
176
+ ItemSoundbite,
177
+ ItemTranscript,
178
+ ItemTxt,
179
+ ItemValue,
180
+ ItemValueRecipient,
181
+ ItemValueTimeSplit,
182
+ ItemValueTimeSplitRecipient,
183
+ ItemValueTimeSplitRemoteItem,
184
+ LiveItem,
185
+ LiveItemStatus,
186
+ MembershipClaimToken,
187
+ Medium,
188
+ Playlist,
189
+ PlaylistResourceBase,
190
+ PlaylistResourceClip,
191
+ PlaylistResourceItem,
192
+ PlaylistResourceItemAddByRss,
193
+ PlaylistResourceItemChapter,
194
+ PlaylistResourceItemSoundbite,
195
+ Queue,
196
+ QueueResourceBase,
197
+ QueueResourceClip,
198
+ QueueResourceItem,
199
+ QueueResourceItemAddByRss,
200
+ QueueResourceItemChapter,
201
+ QueueResourceItemSoundbite,
202
+ SharableStatus
203
+ ],
204
+ migrations: [],
205
+ subscribers: [],
206
+ namingStrategy: new SnakeNamingStrategy()
207
+ });
@@ -0,0 +1,24 @@
1
+ import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn, BeforeInsert } from 'typeorm';
2
+ import { SharableStatus } from '@orm/entities/sharableStatus';
3
+ const shortid = require('shortid');
4
+
5
+ @Entity()
6
+ export class Account {
7
+ @PrimaryGeneratedColumn()
8
+ id!: number;
9
+
10
+ @Column({ type: 'varchar', unique: true })
11
+ id_text!: string;
12
+
13
+ @Column({ type: 'boolean', default: false })
14
+ verified!: boolean;
15
+
16
+ @ManyToOne(() => SharableStatus, sharableStatus => sharableStatus.id)
17
+ @JoinColumn({ name: 'sharable_status_id' })
18
+ sharable_status!: SharableStatus;
19
+
20
+ @BeforeInsert()
21
+ generateIdText() {
22
+ this.id_text = shortid.generate();
23
+ }
24
+ }
@@ -0,0 +1,18 @@
1
+ import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm';
2
+ import { Account } from '@orm/entities/account/account';
3
+
4
+ @Entity()
5
+ export class AccountAdminRoles {
6
+ @PrimaryGeneratedColumn()
7
+ id!: number;
8
+
9
+ @ManyToOne(() => Account, account => account.id, { onDelete: 'CASCADE' })
10
+ @JoinColumn({ name: 'account_id' })
11
+ account!: Account;
12
+
13
+ @Column({ type: 'boolean', default: false })
14
+ dev_admin!: boolean;
15
+
16
+ @Column({ type: 'boolean', default: false })
17
+ podping_admin!: boolean;
18
+ }
@@ -0,0 +1,75 @@
1
+ import { Entity, PrimaryColumn, Column, ManyToOne, JoinColumn } from 'typeorm';
2
+ import { Account } from '@orm/entities/account/account';
3
+
4
+ @Entity()
5
+ export class AccountAppStorePurchase {
6
+ @PrimaryColumn()
7
+ transaction_id!: string;
8
+
9
+ @Column({ type: 'varchar', nullable: true })
10
+ cancellation_date?: string | null;
11
+
12
+ @Column({ type: 'varchar', nullable: true })
13
+ cancellation_date_ms?: string | null;
14
+
15
+ @Column({ type: 'varchar', nullable: true })
16
+ cancellation_date_pst?: string | null;
17
+
18
+ @Column({ type: 'varchar', nullable: true })
19
+ cancellation_reason?: string | null;
20
+
21
+ @Column({ type: 'varchar', nullable: true })
22
+ expires_date?: string | null;
23
+
24
+ @Column({ type: 'varchar', nullable: true })
25
+ expires_date_ms?: string | null;
26
+
27
+ @Column({ type: 'varchar', nullable: true })
28
+ expires_date_pst?: string | null;
29
+
30
+ @Column({ type: 'boolean', nullable: true })
31
+ is_in_intro_offer_period?: boolean | null;
32
+
33
+ @Column({ type: 'boolean', nullable: true })
34
+ is_trial_period?: boolean | null;
35
+
36
+ @Column({ type: 'varchar', nullable: true })
37
+ original_purchase_date?: string | null;
38
+
39
+ @Column({ type: 'varchar', nullable: true })
40
+ original_purchase_date_ms?: string | null;
41
+
42
+ @Column({ type: 'varchar', nullable: true })
43
+ original_purchase_date_pst?: string | null;
44
+
45
+ @Column({ type: 'varchar', nullable: true })
46
+ original_transaction_id?: string | null;
47
+
48
+ @Column({ type: 'varchar', nullable: true })
49
+ product_id?: string | null;
50
+
51
+ @Column({ type: 'varchar', nullable: true })
52
+ promotional_offer_id?: string | null;
53
+
54
+ @Column({ type: 'varchar', nullable: true })
55
+ purchase_date?: string | null;
56
+
57
+ @Column({ type: 'varchar', nullable: true })
58
+ purchase_date_ms?: string | null;
59
+
60
+ @Column({ type: 'varchar', nullable: true })
61
+ purchase_date_pst?: string | null;
62
+
63
+ @Column({ type: 'int', nullable: true })
64
+ quantity?: number | null;
65
+
66
+ @Column({ type: 'varchar', nullable: true })
67
+ web_order_line_item_id?: string | null;
68
+
69
+ @Column()
70
+ account_id!: number;
71
+
72
+ @ManyToOne(() => Account, account => account.id, { onDelete: 'CASCADE' })
73
+ @JoinColumn({ name: 'account_id' })
74
+ account!: Account;
75
+ }
@@ -0,0 +1,18 @@
1
+ import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm';
2
+ import { Account } from '@orm/entities/account/account';
3
+
4
+ @Entity()
5
+ export class AccountCredentials {
6
+ @PrimaryGeneratedColumn()
7
+ id!: number;
8
+
9
+ @ManyToOne(() => Account, account => account.id, { onDelete: 'CASCADE' })
10
+ @JoinColumn({ name: 'account_id' })
11
+ account!: Account;
12
+
13
+ @Column({ type: 'varchar', unique: true })
14
+ email!: string;
15
+
16
+ @Column({ type: 'varchar' })
17
+ password!: string;
18
+ }
@@ -0,0 +1,15 @@
1
+ import { Entity, PrimaryColumn, Column, ManyToOne, JoinColumn } from 'typeorm';
2
+ import { Account } from '@orm/entities/account/account';
3
+
4
+ @Entity()
5
+ export class AccountFCMDevice {
6
+ @PrimaryColumn()
7
+ fcm_token!: string;
8
+
9
+ @Column()
10
+ account_id!: number;
11
+
12
+ @ManyToOne(() => Account, account => account.id, { onDelete: 'CASCADE' })
13
+ @JoinColumn({ name: 'account_id' })
14
+ account!: Account;
15
+ }