@a5gard/asgard 0.0.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 (207) hide show
  1. package/.env +2 -0
  2. package/.gitignore copy +6 -0
  3. package/.vscode/ntrsync/.vscode/ocrmnavigator/id.txt +1 -0
  4. package/.vscode/ntrsync/.vscode/ocrmnavigator.code-snippets +3664 -0
  5. package/.vscode/ntrsync/00002_CRM URGENT_todo.md +79 -0
  6. package/.vscode/ntrsync/10005_notes repo url.md +3 -0
  7. package/.vscode/ntrsync/10012_vscode_color_settings.md +133 -0
  8. package/.vscode/ntrsync/10013_Googles Snapchat Upload Hack note.md +11 -0
  9. package/.vscode/ntrsync/10014_APP IDEA - Lawyer CRM.md +229 -0
  10. package/.vscode/ntrsync/10015_APP IDEA - Onlyfans.md +293 -0
  11. package/.vscode/ntrsync/10016_notes repo url.md +3 -0
  12. package/.vscode/ntrsync/10504_adhd symptom.md +3 -0
  13. package/.vscode/ntrsync/10505_APP IDEA - GMAIL.md +39 -0
  14. package/.vscode/ntrsync/10506_container home - build mats.md +18 -0
  15. package/.vscode/ntrsync/10507_cleint facing site meta and loader function.md +25 -0
  16. package/.vscode/ntrsync/10508_Sabaak VSCode 1-8 players - private teams, solo q, duos q.md +11 -0
  17. package/.vscode/ntrsync/10509_schema dump.md +80 -0
  18. package/.vscode/ntrsync/10510_APPT BEACONHILL_reminder.md +7 -0
  19. package/.vscode/ntrsync/10512_clipboard very usefull should use asap within all apps.md +101 -0
  20. package/.vscode/ntrsync/10516_DevStack_todo.md +130 -0
  21. package/.vscode/ntrsync/10517_CRM_todo.md +95 -0
  22. package/.vscode/ntrsync/10518_Catalyst POS_todo.md +73 -0
  23. package/.vscode/ntrsync/10519_Catalyst Software_todo.md +497 -0
  24. package/.vscode/ntrsync/10523_new note.md +6 -0
  25. package/.vscode/ntrsync/10524_New Reminder_reminder.md +5 -0
  26. package/.vscode/ntrsync/10525_Mobile - Notes, To-Dos And Things_todo.md +4 -0
  27. package/.vscode/ntrsync/90002_COMPLETED_todo.md +97 -0
  28. package/.vscode/ntrsync/README.md +1 -0
  29. package/.vscode/ocrmnavigator/id.txt +1 -0
  30. package/.vscode/ocrmnavigator.code-snippets +349 -0
  31. package/.vscode/settings.json +1 -0
  32. package/CHANGELOG.md +6 -0
  33. package/LICENSE.md +21 -0
  34. package/README.md +1612 -0
  35. package/bin/dev.cmd +3 -0
  36. package/bin/dev.js +17 -0
  37. package/bin/run.cmd +3 -0
  38. package/bin/run.js +5 -0
  39. package/config.asgard +8 -0
  40. package/dist/commands/add-source.d.ts +9 -0
  41. package/dist/commands/add-source.d.ts.map +1 -0
  42. package/dist/commands/add-source.js +68 -0
  43. package/dist/commands/add-source.js.map +1 -0
  44. package/dist/commands/baldr.d.ts +5 -0
  45. package/dist/commands/baldr.d.ts.map +1 -0
  46. package/dist/commands/baldr.js +35 -0
  47. package/dist/commands/baldr.js.map +1 -0
  48. package/dist/commands/combine-timelines.d.ts +5 -0
  49. package/dist/commands/combine-timelines.d.ts.map +1 -0
  50. package/dist/commands/combine-timelines.js +53 -0
  51. package/dist/commands/combine-timelines.js.map +1 -0
  52. package/dist/commands/create-project.d.ts +10 -0
  53. package/dist/commands/create-project.d.ts.map +1 -0
  54. package/dist/commands/create-project.js +195 -0
  55. package/dist/commands/create-project.js.map +1 -0
  56. package/dist/commands/create-timeline.d.ts +8 -0
  57. package/dist/commands/create-timeline.d.ts.map +1 -0
  58. package/dist/commands/create-timeline.js +54 -0
  59. package/dist/commands/create-timeline.js.map +1 -0
  60. package/dist/commands/delete-project.d.ts +5 -0
  61. package/dist/commands/delete-project.d.ts.map +1 -0
  62. package/dist/commands/delete-project.js +47 -0
  63. package/dist/commands/delete-project.js.map +1 -0
  64. package/dist/commands/delete-source.d.ts +8 -0
  65. package/dist/commands/delete-source.d.ts.map +1 -0
  66. package/dist/commands/delete-source.js +57 -0
  67. package/dist/commands/delete-source.js.map +1 -0
  68. package/dist/commands/delete-timeline.d.ts +8 -0
  69. package/dist/commands/delete-timeline.d.ts.map +1 -0
  70. package/dist/commands/delete-timeline.js +54 -0
  71. package/dist/commands/delete-timeline.js.map +1 -0
  72. package/dist/commands/delete-version.d.ts +8 -0
  73. package/dist/commands/delete-version.d.ts.map +1 -0
  74. package/dist/commands/delete-version.js +65 -0
  75. package/dist/commands/delete-version.js.map +1 -0
  76. package/dist/commands/download-file.d.ts +17 -0
  77. package/dist/commands/download-file.d.ts.map +1 -0
  78. package/dist/commands/download-file.js +87 -0
  79. package/dist/commands/download-file.js.map +1 -0
  80. package/dist/commands/download-folder.d.ts +18 -0
  81. package/dist/commands/download-folder.d.ts.map +1 -0
  82. package/dist/commands/download-folder.js +111 -0
  83. package/dist/commands/download-folder.js.map +1 -0
  84. package/dist/commands/download-source.d.ts +12 -0
  85. package/dist/commands/download-source.d.ts.map +1 -0
  86. package/dist/commands/download-source.js +46 -0
  87. package/dist/commands/download-source.js.map +1 -0
  88. package/dist/commands/gh-setup.d.ts +7 -0
  89. package/dist/commands/gh-setup.d.ts.map +1 -0
  90. package/dist/commands/gh-setup.js +106 -0
  91. package/dist/commands/gh-setup.js.map +1 -0
  92. package/dist/commands/load-project.d.ts +5 -0
  93. package/dist/commands/load-project.d.ts.map +1 -0
  94. package/dist/commands/load-project.js +56 -0
  95. package/dist/commands/load-project.js.map +1 -0
  96. package/dist/commands/menu.d.ts +5 -0
  97. package/dist/commands/menu.d.ts.map +1 -0
  98. package/dist/commands/menu.js +41 -0
  99. package/dist/commands/menu.js.map +1 -0
  100. package/dist/commands/midgardr.d.ts +5 -0
  101. package/dist/commands/midgardr.d.ts.map +1 -0
  102. package/dist/commands/midgardr.js +24 -0
  103. package/dist/commands/midgardr.js.map +1 -0
  104. package/dist/commands/publish-project.d.ts +5 -0
  105. package/dist/commands/publish-project.d.ts.map +1 -0
  106. package/dist/commands/publish-project.js +102 -0
  107. package/dist/commands/publish-project.js.map +1 -0
  108. package/dist/commands/replace-timeline.d.ts +8 -0
  109. package/dist/commands/replace-timeline.d.ts.map +1 -0
  110. package/dist/commands/replace-timeline.js +63 -0
  111. package/dist/commands/replace-timeline.js.map +1 -0
  112. package/dist/commands/restore-version.d.ts +8 -0
  113. package/dist/commands/restore-version.d.ts.map +1 -0
  114. package/dist/commands/restore-version.js +67 -0
  115. package/dist/commands/restore-version.js.map +1 -0
  116. package/dist/commands/save-project.d.ts +8 -0
  117. package/dist/commands/save-project.d.ts.map +1 -0
  118. package/dist/commands/save-project.js +43 -0
  119. package/dist/commands/save-project.js.map +1 -0
  120. package/dist/commands/set-source.d.ts +9 -0
  121. package/dist/commands/set-source.d.ts.map +1 -0
  122. package/dist/commands/set-source.js +59 -0
  123. package/dist/commands/set-source.js.map +1 -0
  124. package/dist/commands/switch-timeline.d.ts +8 -0
  125. package/dist/commands/switch-timeline.d.ts.map +1 -0
  126. package/dist/commands/switch-timeline.js +61 -0
  127. package/dist/commands/switch-timeline.js.map +1 -0
  128. package/dist/commands/sync-source.d.ts +5 -0
  129. package/dist/commands/sync-source.d.ts.map +1 -0
  130. package/dist/commands/sync-source.js +29 -0
  131. package/dist/commands/sync-source.js.map +1 -0
  132. package/dist/commands/upload-project+++.d.ts +5 -0
  133. package/dist/commands/upload-project+++.d.ts.map +1 -0
  134. package/dist/commands/upload-project+++.js +32 -0
  135. package/dist/commands/upload-project+++.js.map +1 -0
  136. package/dist/commands/upload-project++.d.ts +5 -0
  137. package/dist/commands/upload-project++.d.ts.map +1 -0
  138. package/dist/commands/upload-project++.js +33 -0
  139. package/dist/commands/upload-project++.js.map +1 -0
  140. package/dist/commands/upload-project+.d.ts +5 -0
  141. package/dist/commands/upload-project+.d.ts.map +1 -0
  142. package/dist/commands/upload-project+.js +40 -0
  143. package/dist/commands/upload-project+.js.map +1 -0
  144. package/dist/commands/upload-project.d.ts +5 -0
  145. package/dist/commands/upload-project.d.ts.map +1 -0
  146. package/dist/commands/upload-project.js +29 -0
  147. package/dist/commands/upload-project.js.map +1 -0
  148. package/dist/commands/view-timeline.d.ts +5 -0
  149. package/dist/commands/view-timeline.d.ts.map +1 -0
  150. package/dist/commands/view-timeline.js +39 -0
  151. package/dist/commands/view-timeline.js.map +1 -0
  152. package/dist/commands/view-versions.d.ts +5 -0
  153. package/dist/commands/view-versions.d.ts.map +1 -0
  154. package/dist/commands/view-versions.js +45 -0
  155. package/dist/commands/view-versions.js.map +1 -0
  156. package/dist/git/helpers.d.ts +10 -0
  157. package/dist/git/helpers.d.ts.map +1 -0
  158. package/dist/git/helpers.js +300 -0
  159. package/dist/git/helpers.js.map +1 -0
  160. package/dist/git/sync-repo.d.ts +2 -0
  161. package/dist/git/sync-repo.d.ts.map +1 -0
  162. package/dist/git/sync-repo.js +17 -0
  163. package/dist/git/sync-repo.js.map +1 -0
  164. package/dist/index.d.ts +2 -0
  165. package/dist/index.d.ts.map +1 -0
  166. package/dist/index.js +3 -0
  167. package/dist/index.js.map +1 -0
  168. package/dist/utils/box.d.ts +11 -0
  169. package/dist/utils/box.d.ts.map +1 -0
  170. package/dist/utils/box.js +158 -0
  171. package/dist/utils/box.js.map +1 -0
  172. package/ideas.md +46 -0
  173. package/package.json +53 -0
  174. package/src/commands/add-source.js +72 -0
  175. package/src/commands/baldr.js +38 -0
  176. package/src/commands/combine-timelines.js +65 -0
  177. package/src/commands/create-project.js +216 -0
  178. package/src/commands/create-timeline.js +60 -0
  179. package/src/commands/delete-project.js +54 -0
  180. package/src/commands/delete-source.js +63 -0
  181. package/src/commands/delete-timeline.js +63 -0
  182. package/src/commands/delete-version.js +74 -0
  183. package/src/commands/download-file.js +101 -0
  184. package/src/commands/download-folder.js +123 -0
  185. package/src/commands/download-source.js +51 -0
  186. package/src/commands/gh-setup.js +77 -0
  187. package/src/commands/load-project.js +63 -0
  188. package/src/commands/menu.js +46 -0
  189. package/src/commands/midgardr.js +25 -0
  190. package/src/commands/publish-project.js +167 -0
  191. package/src/commands/replace-timeline.js +76 -0
  192. package/src/commands/restore-version.js +80 -0
  193. package/src/commands/save-project.js +48 -0
  194. package/src/commands/set-source.js +65 -0
  195. package/src/commands/switch-timeline.js +69 -0
  196. package/src/commands/sync-source.js +32 -0
  197. package/src/commands/upload-project+++.js +34 -0
  198. package/src/commands/upload-project++.js +35 -0
  199. package/src/commands/upload-project+.js +47 -0
  200. package/src/commands/upload-project.js +31 -0
  201. package/src/commands/view-timeline.js +43 -0
  202. package/src/commands/view-versions.js +50 -0
  203. package/src/git/helpers.js +333 -0
  204. package/src/git/sync-repo.js +16 -0
  205. package/src/index.js +2 -0
  206. package/src/utils/box.js +282 -0
  207. package/tsconfig.json +23 -0
@@ -0,0 +1,293 @@
1
+ <<<<<<< HEAD:10003_APP IDEA - Onlyfans.md
2
+ # APP IDEA - Onlyfans
3
+
4
+ - to ensure user interaction is not burdened to much by onlyfans stupid practices it might be best to use a browser ap to create the order with the client wihle they are on the same page, that sends the data to the offsite dashbaord to be used for later the only down side is that they would have to manually data over to the broswer app but... this would be the most effeicnt way for the content creator because they wouldnt have to open any other programs or websites, this allows the creator to contiunue selling through only fans but widening the product offerings
5
+
6
+ - so it fits the content creation schedule while at the same time not breaking onlyfans tos
7
+ You're absolutely right! Using a browser-based app that integrates seamlessly with OnlyFans while the creator is on the platform is a great way to minimize friction and ensure compliance with OnlyFans' TOS. This approach allows creators to manage custom orders efficiently without leaving OnlyFans or breaking any rules.
8
+
9
+ - Here's how you can design this system:
10
+
11
+ - Key Workflow
12
+ - Creator and Client Chat on OnlyFans:
13
+
14
+ - The client sends a custom order request via OnlyFans chat.
15
+
16
+ - The creator uses the browser app to log the order details while staying on the OnlyFans page.
17
+
18
+ - Order Creation in the Browser App:
19
+
20
+ - The creator inputs the client’s username, order details, and price into the browser app.
21
+
22
+ - The app sends this data to the off-site dashboard for tracking and queue management.
23
+
24
+ - Creator Sends Locked Message:
25
+
26
+ - The creator sends a locked message to the client on OnlyFans with the price and instructions for payment.
27
+
28
+ - The client pays upfront to confirm the order.
29
+
30
+ - Order Fulfillment:
31
+
32
+ - The creator works on the custom content and sends it to the client as another locked message or post.
33
+
34
+ - The creator updates the order status in the off-site dashboard.
35
+
36
+ - Benefits of This Approach
37
+ - No Additional Programs or Websites:
38
+
39
+ - The browser app runs alongside OnlyFans, so creators don’t need to switch between platforms.
40
+
41
+ - Compliance with OnlyFans TOS:
42
+
43
+ - All payments and content delivery happen within OnlyFans.
44
+
45
+ - Efficient Order Management:
46
+
47
+ - The off-site dashboard keeps track of orders, so creators can focus on content creation.
48
+
49
+ - Tech Stack
50
+ - Browser App:
51
+ - Framework: Use a browser extension or a bookmarklet (a small JavaScript app that runs in the browser).
52
+
53
+ - UI: A simple popup or sidebar that overlays the OnlyFans page.
54
+
55
+ - Data Storage: Send data to your off-site dashboard via an API.
56
+
57
+ - Off-Site Dashboard:
58
+ - Frontend: Remix-run (as you're already using it)
59
+
60
+ - Backend: Node.js with Express or Remix’s built-in server capabilities
61
+
62
+ - Database: PostgreSQL or MongoDB (for storing orders and queue data)
63
+
64
+ - ORM: Prisma (for database management)
65
+
66
+ - Authentication:
67
+ - Remix-auth: For handling creator login and authentication.
68
+
69
+ - Hosting:
70
+ - Platform: Vercel, Netlify, or AWS for hosting the dashboard.
71
+
72
+ - Implementation Steps
73
+ - Build the Browser App:
74
+
75
+ - Create a browser extension or bookmarklet that overlays the OnlyFans page.
76
+
77
+ - The app should include a form for logging order details (e.g., client username, order description, price, etc.).
78
+
79
+ - Use JavaScript to send this data to your off-site dashboard via an API.
80
+
81
+ - Off-Site Dashboard:
82
+
83
+ - Build a dashboard where creators can view and manage their orders.
84
+
85
+ - Use a database to store order details and queue data.
86
+
87
+ - API for Data Transfer:
88
+
89
+ - Create an API endpoint to receive order data from the browser app.
90
+
91
+ - Store the data in your database and update the dashboard in real-time.
92
+
93
+ - Pre-Written Templates:
94
+
95
+ - Provide creators with pre-written templates for locked messages to streamline communication with clients.
96
+
97
+ - Testing and Deployment:
98
+
99
+ - Test the browser app and dashboard with a small group of creators.
100
+
101
+ - Deploy the dashboard and make the browser app available for download or installation.
102
+
103
+ - Example Workflow
104
+ - Client Requests Custom Content:
105
+
106
+ - Client sends a message on OnlyFans: "Hi, I’d like a custom video for $50."
107
+
108
+ - Creator opens the browser app and inputs the order details.
109
+
110
+ - Order Creation:
111
+
112
+ - The browser app sends the order data to the off-site dashboard.
113
+
114
+ - The dashboard adds the order to the creator’s queue.
115
+
116
+ - Creator Sends Locked Message:
117
+
118
+ - Creator sends a locked message to the client: "Thanks for your request! Please pay $50 to unlock this message and confirm your order."
119
+
120
+ - Client pays upfront to confirm the order.
121
+
122
+ - Order Fulfillment:
123
+
124
+ - Creator works on the custom content and sends it to the client as another locked message: "Your custom video is ready! Please pay $50 to unlock it."
125
+
126
+ - Creator updates the order status in the dashboard to "Completed."
127
+
128
+ - Compliance with OnlyFans TOS
129
+ - Ensure that all payments and content delivery happen within OnlyFans.
130
+
131
+ - Do not scrape data from OnlyFans or automate interactions programmatically.
132
+
133
+ - Future Enhancements
134
+ - Real-Time Sync:
135
+
136
+ - If OnlyFans ever releases a public API, you can sync order data automatically between the browser app and the dashboard.
137
+
138
+ - Analytics:
139
+
140
+ - Add analytics to the dashboard to help creators track revenue, order volume, and client engagement.
141
+
142
+ - Mobile Support:
143
+
144
+ - Develop a mobile-friendly version of the browser app for creators who use OnlyFans on their phones.
145
+
146
+ - This approach ensures a seamless experience for creators while keeping everything compliant with OnlyFans' TOS. Let me know if you need help with specific parts of the implementation, such as building the browser app or setting up the API!
147
+ =======
148
+ # APP IDEA - Onlyfans
149
+
150
+ to ensure user interaction is not burdened to much by onlyfans stupid practices it might be best to use a browser ap to create the order with the client wihle they are on the same page, that sends the data to the offsite dashbaord to be used for later the only down side is that they would have to manually data over to the broswer app but... this would be the most effeicnt way for the content creator because they wouldnt have to open any other programs or websites, this allows the creator to contiunue selling through only fans but widening the product offerings
151
+
152
+ so it fits the content creation schedule while at the same time not breaking onlyfans tos
153
+ You're absolutely right! Using a browser-based app that integrates seamlessly with OnlyFans while the creator is on the platform is a great way to minimize friction and ensure compliance with OnlyFans' TOS. This approach allows creators to manage custom orders efficiently without leaving OnlyFans or breaking any rules.
154
+
155
+ Here's how you can design this system:
156
+
157
+ Key Workflow
158
+ Creator and Client Chat on OnlyFans:
159
+
160
+ The client sends a custom order request via OnlyFans chat.
161
+
162
+ The creator uses the browser app to log the order details while staying on the OnlyFans page.
163
+
164
+ Order Creation in the Browser App:
165
+
166
+ The creator inputs the client’s username, order details, and price into the browser app.
167
+
168
+ The app sends this data to the off-site dashboard for tracking and queue management.
169
+
170
+ Creator Sends Locked Message:
171
+
172
+ The creator sends a locked message to the client on OnlyFans with the price and instructions for payment.
173
+
174
+ The client pays upfront to confirm the order.
175
+
176
+ Order Fulfillment:
177
+
178
+ The creator works on the custom content and sends it to the client as another locked message or post.
179
+
180
+ The creator updates the order status in the off-site dashboard.
181
+
182
+ Benefits of This Approach
183
+ No Additional Programs or Websites:
184
+
185
+ The browser app runs alongside OnlyFans, so creators don’t need to switch between platforms.
186
+
187
+ Compliance with OnlyFans TOS:
188
+
189
+ All payments and content delivery happen within OnlyFans.
190
+
191
+ Efficient Order Management:
192
+
193
+ The off-site dashboard keeps track of orders, so creators can focus on content creation.
194
+
195
+ Tech Stack
196
+ Browser App:
197
+ Framework: Use a browser extension or a bookmarklet (a small JavaScript app that runs in the browser).
198
+
199
+ UI: A simple popup or sidebar that overlays the OnlyFans page.
200
+
201
+ Data Storage: Send data to your off-site dashboard via an API.
202
+
203
+ Off-Site Dashboard:
204
+ Frontend: Remix-run (as you're already using it)
205
+
206
+ Backend: Node.js with Express or Remix’s built-in server capabilities
207
+
208
+ Database: PostgreSQL or MongoDB (for storing orders and queue data)
209
+
210
+ ORM: Prisma (for database management)
211
+
212
+ Authentication:
213
+ Remix-auth: For handling creator login and authentication.
214
+
215
+ Hosting:
216
+ Platform: Vercel, Netlify, or AWS for hosting the dashboard.
217
+
218
+ Implementation Steps
219
+ Build the Browser App:
220
+
221
+ Create a browser extension or bookmarklet that overlays the OnlyFans page.
222
+
223
+ The app should include a form for logging order details (e.g., client username, order description, price, etc.).
224
+
225
+ Use JavaScript to send this data to your off-site dashboard via an API.
226
+
227
+ Off-Site Dashboard:
228
+
229
+ Build a dashboard where creators can view and manage their orders.
230
+
231
+ Use a database to store order details and queue data.
232
+
233
+ API for Data Transfer:
234
+
235
+ Create an API endpoint to receive order data from the browser app.
236
+
237
+ Store the data in your database and update the dashboard in real-time.
238
+
239
+ Pre-Written Templates:
240
+
241
+ Provide creators with pre-written templates for locked messages to streamline communication with clients.
242
+
243
+ Testing and Deployment:
244
+
245
+ Test the browser app and dashboard with a small group of creators.
246
+
247
+ Deploy the dashboard and make the browser app available for download or installation.
248
+
249
+ Example Workflow
250
+ Client Requests Custom Content:
251
+
252
+ Client sends a message on OnlyFans: "Hi, I’d like a custom video for $50."
253
+
254
+ Creator opens the browser app and inputs the order details.
255
+
256
+ Order Creation:
257
+
258
+ The browser app sends the order data to the off-site dashboard.
259
+
260
+ The dashboard adds the order to the creator’s queue.
261
+
262
+ Creator Sends Locked Message:
263
+
264
+ Creator sends a locked message to the client: "Thanks for your request! Please pay $50 to unlock this message and confirm your order."
265
+
266
+ Client pays upfront to confirm the order.
267
+
268
+ Order Fulfillment:
269
+
270
+ Creator works on the custom content and sends it to the client as another locked message: "Your custom video is ready! Please pay $50 to unlock it."
271
+
272
+ Creator updates the order status in the dashboard to "Completed."
273
+
274
+ Compliance with OnlyFans TOS
275
+ Ensure that all payments and content delivery happen within OnlyFans.
276
+
277
+ Do not scrape data from OnlyFans or automate interactions programmatically.
278
+
279
+ Future Enhancements
280
+ Real-Time Sync:
281
+
282
+ If OnlyFans ever releases a public API, you can sync order data automatically between the browser app and the dashboard.
283
+
284
+ Analytics:
285
+
286
+ Add analytics to the dashboard to help creators track revenue, order volume, and client engagement.
287
+
288
+ Mobile Support:
289
+
290
+ Develop a mobile-friendly version of the browser app for creators who use OnlyFans on their phones.
291
+
292
+ This approach ensures a seamless experience for creators while keeping everything compliant with OnlyFans' TOS. Let me know if you need help with specific parts of the implementation, such as building the browser app or setting up the API!
293
+ >>>>>>> b306f3955273a5ba5e7561a24194ec677a12018b:10015_APP IDEA - Onlyfans.md
@@ -0,0 +1,3 @@
1
+ # notes repo url
2
+
3
+ https://github.com/8an3/mynotesrepo.git
@@ -0,0 +1,3 @@
1
+ # adhd symptom
2
+
3
+ It's like you had a copy of yourself and they had all the same reasoning and thought processing and all that like you usually do but they just didn't have the actual content of the events itself, like you missed the second part of the update that contained the memories themselves so when it's happening you stay calm analytical, and reason through whatever u need to, so the answers themselves will be different but you don't get mad, upset or confused like someone with Alzheimer's
@@ -0,0 +1,39 @@
1
+ # APP IDEA - GMAIL
2
+
3
+ how do i make a gmail add on, i wanted to make an add on that when you click sign in on the service you want, it vists the page, hits reset password and puts your email in, when the new reset password emails comes in it takes the link and generates 30 character password auto matically, changes your password to that and and then opens a new window and logs you in but never records the password so your account would be cirually impossible to crack
4
+
5
+
6
+ 3. Steps to Build the Gmail Add-on
7
+ a. Set Up Google Workspace Add-on
8
+ Go to the Google Apps Script dashboard.
9
+ Create a new project and select "Gmail Add-on."
10
+ Define the appsscript.json file with metadata for your add-on.
11
+ b. Build the Add-on Interface
12
+ Use the Card Service API to create UI components.
13
+ Design a card where users can:
14
+ Choose a service (e.g., dropdown menu).
15
+ Enter their email address.
16
+ c. Integrate Gmail API
17
+ Request access to read incoming reset password emails.
18
+ Parse the reset password email to extract the reset link.
19
+ d. Automate Password Reset
20
+ Use a backend service (like Node.js with Puppeteer) to:
21
+ Visit the password reset page.
22
+ Enter the user’s email and submit the form.
23
+ Wait for the reset email and process the link.
24
+ e. Generate Secure Passwords
25
+ Use a cryptographic library (e.g., crypto in Node.js) to generate a 30-character random password.
26
+ f. Change Password and Log In
27
+ Automate the password change process using web automation.
28
+ Open a browser window with the new login session.
29
+ g. Security Best Practices
30
+ Do not store passwords or sensitive user information.
31
+ Use secure APIs and encrypted communications (e.g., HTTPS).
32
+ Ensure the add-on only operates with user consent.
33
+ h. Publish the Add-on
34
+ Test the add-on thoroughly to ensure it works as intended and complies with policies.
35
+ Submit the add-on for review through the Google Workspace Marketplace.
36
+ Challenges
37
+ Third-Party Website Restrictions: Many websites have anti-bot mechanisms like CAPTCHAs.
38
+ Security Risks: Handling sensitive data like reset links and passwords can be risky.
39
+ Policy Compliance: Automating actions like password resets may lead to the rejection of your add-on.
@@ -0,0 +1,18 @@
1
+ # container home - build mats
2
+
3
+ Mini split system 8000 installed
4
+ Shipping containers 4000 each
5
+ Build your own kitchen
6
+ Counters, flooring, cabinet doors, do same as desk but with no color and proper burner
7
+ Pot lights for lighting
8
+ On demand water heater 5000
9
+ Electrician 4000
10
+ Meral studs or wood studs
11
+ Foundation 5000
12
+
13
+ Ideas
14
+ Kitchen and bathroom downstairs that way all water is on in one container with living bedroom upstairs
15
+ Dark natural stone for shower and sink
16
+ Japanese burn method for floors counter tops stairs cabinet doors with polyurethane instead of swing doors do barn doors with same style
17
+
18
+ Can we get away with solar panels as far as cost goes?
@@ -0,0 +1,25 @@
1
+ # client facing site meta and loader function
2
+
3
+ client_facing_site_meta_and_loader_function
4
+ import { type LoaderFunction, type MetaFunction, json } from '@remix-run/node';
5
+ import { dealerSelection, fullUserSelection } from '~/utils/loader.server';
6
+ import { prisma } from '~/libs';
7
+
8
+ export async function loader({ request, params }: LoaderFunction) {
9
+ const d = await prisma.dealer.findUnique({ where: { id: 1 }, select: dealerSelection });
10
+ const URLS = { page: 'About Us' };
11
+ return json({
12
+ data: {
13
+ d: d,
14
+ URLS: URLS
15
+ }
16
+ });
17
+ }
18
+
19
+ export const meta: MetaFunction<typeof loader> = ({ data }) => {
20
+ const { d, URLS } = data;
21
+ return [
22
+ { title: `${URLS.page} - ${d.dealerName}` },
23
+ { name: "description", keywords: "Automotive Sales, dealership sales, automotive CRM, Service Center, Parts Department, Accessories Department, CRM, Dealership.", content: d.metaDesc, },
24
+ ];
25
+ };
@@ -0,0 +1,11 @@
1
+ # Sabaak VSCode 1-8 players - private teams, solo q, duos q
2
+
3
+ - 1-8 players
4
+ - match sizes 2, 4, 6, 8
5
+ - private, invite only match servers
6
+ - queue to play with random users from vscode
7
+ - solo q
8
+ - explorer views
9
+ - friends list
10
+ - create private
11
+ - find public game
@@ -0,0 +1,80 @@
1
+ # schema dump
2
+
3
+ model Script {
4
+ id String @id @default(cuid())
5
+ name String?
6
+ email String?
7
+ content String?
8
+ category String?
9
+ subCat String?
10
+
11
+ createdAt DateTime @default(now())
12
+ updatedAt DateTime @updatedAt
13
+ }
14
+
15
+ model SalespersonSched {
16
+ id String @id @default(cuid())
17
+ createdAt DateTime @default(now())
18
+ updatedAt DateTime @updatedAt
19
+ day String?
20
+ start DateTime?
21
+ end DateTime?
22
+ salespersonEmail String?
23
+ userEmail String?
24
+ title String?
25
+ resourceId String?
26
+ userName String?
27
+ userId String?
28
+ name String?
29
+ }
30
+
31
+ model DealerTasks {
32
+ id String @id @default(cuid())
33
+ createdAt DateTime @default(now())
34
+ updatedAt DateTime @updatedAt
35
+ dealerId String? // DEV-1
36
+ title String?
37
+ status String?
38
+ priority String?
39
+ userName String?
40
+ userEmail String?
41
+ dept String?
42
+ label String?
43
+
44
+ DealerTasksUpdates DealerTasksUpdates[]
45
+ }
46
+
47
+ model DealerTasksUpdates {
48
+ id String @id @default(cuid())
49
+ createdAt DateTime @default(now())
50
+ updatedAt DateTime @updatedAt
51
+ update String?
52
+ userName String?
53
+ userEmail String?
54
+ dealerTasksId String?
55
+ status String?
56
+ priority String?
57
+ label String?
58
+
59
+ DealerTasks DealerTasks? @relation(fields: [dealerTasksId], references: [id])
60
+
61
+ @@unique([dealerTasksId])
62
+ }
63
+ model Automation {
64
+ id String @id @default(cuid())
65
+ userEmail String?
66
+ type String?
67
+ financeId String?
68
+ clientfileId String?
69
+ }
70
+
71
+ model WorkOrderNotes {
72
+ id String @id @default(cuid())
73
+ createdAt DateTime @default(now())
74
+ updatedAt DateTime @updatedAt
75
+
76
+ body String?
77
+ userName String?
78
+ userEmail String?
79
+
80
+ }
@@ -0,0 +1,7 @@
1
+ # APPT BEACONHILL
2
+
3
+ DUE: 2025-05-22 09:00
4
+
5
+ 613-580-2424 23855
6
+ 613-604-5183
7
+ 3222107414 may 22 09am beaconhill
@@ -0,0 +1,101 @@
1
+ # clipboard very usefull should use asap within all apps
2
+
3
+ source https://github.com/remix-pwa/monorepo/blob/main/packages/client/lib/clipboard.ts
4
+ import { errorBlock } from './utils.js';
5
+
6
+ export const copyTextToClipboard = async (text: string): Promise<boolean> => {
7
+ try {
8
+ if (navigator && navigator.clipboard) {
9
+ await navigator.clipboard.writeText(text);
10
+ return true;
11
+ } else {
12
+ return false;
13
+ }
14
+ } catch (err) {
15
+ console.error(err);
16
+ return false;
17
+ }
18
+ };
19
+
20
+ export const readTextFromClipboard = async (): Promise<{
21
+ ok: boolean;
22
+ message?: string;
23
+ text: string | null;
24
+ }> => {
25
+ try {
26
+ if (navigator && navigator.clipboard) {
27
+ const text = await navigator.clipboard.readText();
28
+ return { ok: true, message: 'Read text successfully', text };
29
+ } else {
30
+ return { ok: false, message: 'Read Text API not supported', text: null };
31
+ }
32
+ } catch (error) {
33
+ return { ok: false, text: null };
34
+ }
35
+ };
36
+
37
+ export const copyImageToClipboard = async (imgURL: string): Promise<boolean> => {
38
+ try {
39
+ if (navigator && navigator.clipboard) {
40
+ const data = await fetch(imgURL);
41
+ const blob = await data.blob();
42
+
43
+ await navigator.clipboard.write([
44
+ new ClipboardItem({
45
+ [blob.type]: blob,
46
+ }),
47
+ ]);
48
+
49
+ return true;
50
+ } else {
51
+ return false;
52
+ }
53
+ } catch (error) {
54
+ return false;
55
+ }
56
+ };
57
+
58
+ export const readFilesFromClipboard = async (): Promise<{ ok: boolean; message: string; files: File[] | null }> => {
59
+ try {
60
+ if (navigator && navigator.clipboard) {
61
+ const files = [] as File[];
62
+ const items = await navigator.clipboard.read();
63
+
64
+ for (const item of items) {
65
+ for (const type of item.types) {
66
+ const blob = await item.getType(type);
67
+ const file = new File([blob], 'clipboard-file', { type });
68
+ files.push(file);
69
+ }
70
+ }
71
+
72
+ return { ok: true, message: 'Read files from clipboard successfully', files };
73
+ } else {
74
+ return { ok: false, message: "Clipboard API not supported! Can't read files", files: null };
75
+ }
76
+ } catch (error) {
77
+ return { ...errorBlock(error), files: null };
78
+ }
79
+ };
80
+
81
+ export const clipboardSupported = async () => {
82
+ return navigator && 'clipboard' in navigator;
83
+ };
84
+ export function errorBlock(err: unknown) {
85
+ if (typeof err === 'string') {
86
+ return {
87
+ ok: false,
88
+ message: err,
89
+ };
90
+ } else if (err instanceof Error) {
91
+ return {
92
+ ok: false,
93
+ message: err.message,
94
+ };
95
+ } else {
96
+ return {
97
+ ok: false,
98
+ message: 'Unknown error',
99
+ };
100
+ }
101
+ }