fmode-ng 0.0.113 → 0.0.115

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 (275) hide show
  1. package/LICENSE.md +8 -0
  2. package/README.md +37 -37
  3. package/esm2022/fmode-ng.mjs +10 -5
  4. package/esm2022/lib/aigc/agent/fm-agent-task/fm-agent-task.component.mjs +8 -92
  5. package/esm2022/lib/aigc/agent/index.mjs +10 -3
  6. package/esm2022/lib/aigc/avatar/avatar.module.mjs +10 -45
  7. package/esm2022/lib/aigc/avatar/comp-avatar-particle/avatar.role.mjs +10 -2
  8. package/esm2022/lib/aigc/avatar/comp-avatar-particle/comp-avatar-particle.component.mjs +10 -315
  9. package/esm2022/lib/aigc/avatar/comp-avatar-particle/index.mjs +10 -3
  10. package/esm2022/lib/aigc/avatar/comp-avatar-particle/role-points.class.mjs +10 -57
  11. package/esm2022/lib/aigc/avatar/comp-avatar-role-image/comp-avatar-role-image.component.mjs +10 -98
  12. package/esm2022/lib/aigc/avatar/comp-avatar-role-video/comp-avatar-role-video.component.mjs +10 -107
  13. package/esm2022/lib/aigc/avatar/comp-avatar-talk/comp-avatar-talk.component.mjs +10 -113
  14. package/esm2022/lib/aigc/avatar/index.mjs +10 -8
  15. package/esm2022/lib/aigc/avatar/interface-avatar-role.mjs +10 -2
  16. package/esm2022/lib/aigc/avatar/modal-chat-voice-input/modal-chat-voice-input.component.mjs +8 -164
  17. package/esm2022/lib/aigc/chat/chat-header-area/comp-header-area.component.mjs +10 -49
  18. package/esm2022/lib/aigc/chat/chat-header-area/index.mjs +10 -2
  19. package/esm2022/lib/aigc/chat/chat-list/chat-list.component.mjs +8 -155
  20. package/esm2022/lib/aigc/chat/chat-list/index.mjs +10 -2
  21. package/esm2022/lib/aigc/chat/chat-message-area/comp-message-area.component.mjs +10 -40
  22. package/esm2022/lib/aigc/chat/chat-message-area/index.mjs +10 -2
  23. package/esm2022/lib/aigc/chat/chat-message-card/comp-message-card.component.mjs +10 -140
  24. package/esm2022/lib/aigc/chat/chat-message-card/duration-str.pipe.mjs +10 -29
  25. package/esm2022/lib/aigc/chat/chat-message-card/index.mjs +10 -3
  26. package/esm2022/lib/aigc/chat/chat-modal-input/index.mjs +10 -3
  27. package/esm2022/lib/aigc/chat/chat-modal-input/modal-audio-message/modal-audio-message.component.mjs +8 -193
  28. package/esm2022/lib/aigc/chat/chat-modal-input/modal-input.component.mjs +10 -331
  29. package/esm2022/lib/aigc/chat/chat-panel/chat-panel.component.mjs +8 -249
  30. package/esm2022/lib/aigc/chat/comp-role-prompt/comp-role-prompt.component.mjs +10 -83
  31. package/esm2022/lib/aigc/chat/comp-role-prompt/index.mjs +10 -2
  32. package/esm2022/lib/aigc/chat/index.mjs +10 -8
  33. package/esm2022/lib/aigc/comp-markdown-preview/clipboard.service.mjs +10 -82
  34. package/esm2022/lib/aigc/comp-markdown-preview/markdown-parse.mjs +8 -367
  35. package/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.component.mjs +10 -51
  36. package/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.module.mjs +10 -24
  37. package/esm2022/lib/aigc/comp-markdown-preview/plugins/md-mathjax/index.mjs +10 -115
  38. package/esm2022/lib/aigc/index.mjs +10 -14
  39. package/esm2022/lib/aigc/service-fmai/fmai.service.mjs +10 -21
  40. package/esm2022/lib/aigc/service-fmai/service-chat/chat-class.mjs +10 -2
  41. package/esm2022/lib/aigc/service-fmai/service-chat/chat.service.mjs +8 -174
  42. package/esm2022/lib/aigc/service-fmai/service-chat/index.mjs +10 -7
  43. package/esm2022/lib/aigc/service-fmai/service-chat/mask-list.mjs +9 -194
  44. package/esm2022/lib/aigc/service-fmai/service-chat/pipes/chat-content.pipe.mjs +10 -27
  45. package/esm2022/lib/aigc/service-fmai/service-chat/pipes/hidexml.pipe.mjs +10 -27
  46. package/esm2022/lib/aigc/service-fmai/service-chat/utilnow.pipe.mjs +10 -68
  47. package/esm2022/lib/aigc/service-fmai/service-imagine/imagine-func.mjs +9 -162
  48. package/esm2022/lib/aigc/service-fmai/service-imagine/imagine-work.mjs +10 -68
  49. package/esm2022/lib/aigc/service-fmai/service-imagine/imagine.service.mjs +8 -313
  50. package/esm2022/lib/aigc/service-fmai/service-imagine/index.mjs +10 -4
  51. package/esm2022/lib/aigc/story/fm-office-viewer/fm-office-viewer.component.mjs +10 -62
  52. package/esm2022/lib/aigc/story/fm-story-card/fm-story-card.component.mjs +10 -87
  53. package/esm2022/lib/aigc/story/fm-story-list/fm-story-list.component.mjs +10 -345
  54. package/esm2022/lib/aigc/story/fm-story-list/story-preview.mjs +10 -81
  55. package/esm2022/lib/aigc/story/fm-story-loader/fm-story-loader.component.mjs +10 -152
  56. package/esm2022/lib/aigc/story/fm-story-splitter/fm-story-splitter.component.mjs +10 -42
  57. package/esm2022/lib/aigc/story/index.mjs +10 -6
  58. package/esm2022/lib/aigc/story/modal-chat-story/comp-chat-story-json/comp-chat-story-json.component.mjs +10 -47
  59. package/esm2022/lib/aigc/story/modal-chat-story/comp-diary-story/comp-diary-story.component.mjs +10 -95
  60. package/esm2022/lib/aigc/story/modal-chat-story/modal-chat-story.component.mjs +10 -253
  61. package/esm2022/lib/aigc/story/story.service.mjs +10 -35
  62. package/esm2022/lib/aigc/voice/fmode-voice.service.mjs +10 -636
  63. package/esm2022/lib/aigc/voice/index.mjs +10 -7
  64. package/esm2022/lib/aigc/voice/lib/audio/audio.player.mjs +10 -55
  65. package/esm2022/lib/aigc/voice/lib/audio/audio.streamer.mjs +10 -2
  66. package/esm2022/lib/aigc/voice/lib/audio/streamer.microsoft.mjs +10 -96
  67. package/esm2022/lib/aigc/voice/lib/audio/streamer.pcm.mjs +8 -177
  68. package/esm2022/lib/aigc/voice/lib/pcm2wav.mjs +10 -38
  69. package/esm2022/lib/aigc/voice/lib/recorder/extension-waveview.mjs +10 -215
  70. package/esm2022/lib/aigc/voice/lib/resample.mjs +10 -34
  71. package/esm2022/lib/aigc/voice/tts/fmode-tts-class.mjs +10 -189
  72. package/esm2022/lib/aigc/voice/tts/index.mjs +10 -5
  73. package/esm2022/lib/aigc/voice/tts/int-tts-provider.mjs +10 -2
  74. package/esm2022/lib/aigc/voice/tts/provider-doubao.mjs +8 -346
  75. package/esm2022/lib/code/fm-codemirror/fm-codemirror.component.mjs +8 -342
  76. package/esm2022/lib/code/index.mjs +10 -2
  77. package/esm2022/lib/core/agent/chat/completion/fmode-completion.mjs +8 -430
  78. package/esm2022/lib/core/agent/chat/completion/index.mjs +10 -2
  79. package/esm2022/lib/core/agent/chat/completion/int-gpt-chat-options.mjs +10 -2
  80. package/esm2022/lib/core/agent/chat/fmode-chat.mjs +8 -617
  81. package/esm2022/lib/core/agent/chat/index.mjs +10 -4
  82. package/esm2022/lib/core/agent/chat/interface.mjs +10 -2
  83. package/esm2022/lib/core/agent/index.mjs +10 -6
  84. package/esm2022/lib/core/agent/prompt/agent.prompt.mjs +10 -133
  85. package/esm2022/lib/core/agent/prompt/index.mjs +10 -2
  86. package/esm2022/lib/core/agent/prompt/prompt-util.mjs +10 -16
  87. package/esm2022/lib/core/agent/story/agent.story.mjs +10 -64
  88. package/esm2022/lib/core/agent/story/index.mjs +10 -2
  89. package/esm2022/lib/core/agent/task/agent.task.mjs +10 -90
  90. package/esm2022/lib/core/agent/task/index.mjs +10 -2
  91. package/esm2022/lib/core/agent/waiting/index.mjs +10 -3
  92. package/esm2022/lib/core/agent/waiting/loading/loading.ctrl.mjs +10 -279
  93. package/esm2022/lib/core/agent/waiting/tips/tips.ctrl.mjs +8 -190
  94. package/esm2022/lib/core/index.mjs +10 -4
  95. package/esm2022/lib/core/parse/datatype/acl.mjs +10 -57
  96. package/esm2022/lib/core/parse/datatype/file.mjs +10 -69
  97. package/esm2022/lib/core/parse/datatype/geopoint.mjs +10 -57
  98. package/esm2022/lib/core/parse/datatype/relation.mjs +10 -56
  99. package/esm2022/lib/core/parse/fmode.cloud.mjs +10 -0
  100. package/esm2022/lib/core/parse/fmode.object.mjs +10 -232
  101. package/esm2022/lib/core/parse/fmode.parse.mjs +10 -84
  102. package/esm2022/lib/core/parse/fmode.query.mjs +8 -500
  103. package/esm2022/lib/core/parse/fmode.user.mjs +10 -275
  104. package/esm2022/lib/core/parse/index.mjs +10 -5
  105. package/esm2022/lib/core/parse/types.mjs +10 -2
  106. package/esm2022/lib/core/voice/index.mjs +10 -3
  107. package/esm2022/lib/core/voice/tts/index.mjs +10 -2
  108. package/esm2022/lib/icon/filetype/audio.svg.mjs +10 -3
  109. package/esm2022/lib/icon/filetype/avatar.svg.mjs +10 -14
  110. package/esm2022/lib/icon/filetype/chat.svg.mjs +10 -3
  111. package/esm2022/lib/icon/filetype/docx.svg.mjs +10 -3
  112. package/esm2022/lib/icon/filetype/file.svg.mjs +10 -3
  113. package/esm2022/lib/icon/filetype/filetype.pipe.mjs +10 -57
  114. package/esm2022/lib/icon/filetype/index.mjs +10 -12
  115. package/esm2022/lib/icon/filetype/md.svg.mjs +10 -3
  116. package/esm2022/lib/icon/filetype/pdf.svg.mjs +10 -3
  117. package/esm2022/lib/icon/filetype/pptx.svg.mjs +10 -3
  118. package/esm2022/lib/icon/filetype/svgtoblob.mjs +10 -8
  119. package/esm2022/lib/icon/filetype/video.svg.mjs +10 -3
  120. package/esm2022/lib/icon/filetype/xlsx.svg.mjs +10 -3
  121. package/esm2022/lib/icon/index.mjs +10 -2
  122. package/esm2022/lib/map/comp-poi-picker/comp-poi-picker.component.mjs +10 -209
  123. package/esm2022/lib/map/comp-poi-picker/comp-poi-picker.module.mjs +10 -33
  124. package/esm2022/lib/map/index.mjs +10 -4
  125. package/esm2022/lib/map/map.module.mjs +10 -61
  126. package/esm2022/lib/map/page-loca-scatter/page-loca-scatter.component.mjs +10 -132
  127. package/esm2022/lib/map/page-map.start/page-map.start.component.mjs +8 -115
  128. package/esm2022/lib/map/page-plan-route/page-plan-route.component.mjs +8 -118
  129. package/esm2022/lib/nova-cloud/index.mjs +10 -3
  130. package/esm2022/lib/nova-cloud/ncloud-api-func.mjs +10 -91
  131. package/esm2022/lib/nova-cloud/nova-cloud.service.mjs +10 -53
  132. package/esm2022/lib/payment/index.mjs +10 -2
  133. package/esm2022/lib/payment/payment/payment.component.mjs +10 -543
  134. package/esm2022/lib/payment/payment.service.mjs +10 -202
  135. package/esm2022/lib/person/comp-person-gender-icon/comp-person-gender-icon.component.mjs +10 -48
  136. package/esm2022/lib/person/comp-person-item/comp-person-item.component.mjs +10 -29
  137. package/esm2022/lib/person/comp-person-story/comp-person-story.component.mjs +10 -211
  138. package/esm2022/lib/person/edit-upload/edit-upload.component.mjs +8 -412
  139. package/esm2022/lib/person/edit-upload/edit-upload.module.mjs +10 -50
  140. package/esm2022/lib/person/index.mjs +10 -5
  141. package/esm2022/lib/person/modal-person-select/modal-person-select.component.mjs +10 -144
  142. package/esm2022/lib/person/modal-user-verify/secret-text.pipe.mjs +10 -41
  143. package/esm2022/lib/person/modal-user-verify/user-verify.component.mjs +10 -595
  144. package/esm2022/lib/person/person-detail/person-detail.component.mjs +10 -172
  145. package/esm2022/lib/person/person.service.mjs +8 -193
  146. package/esm2022/lib/platform/cross.service.mjs +10 -62
  147. package/esm2022/lib/platform/index.mjs +10 -2
  148. package/esm2022/lib/social/index.mjs +10 -2
  149. package/esm2022/lib/social/wechat/wechat-jssdk.service.mjs +8 -230
  150. package/esm2022/lib/storage/comp-hwobs-manager/hwobs-manager.component.mjs +10 -59
  151. package/esm2022/lib/storage/index.mjs +10 -5
  152. package/esm2022/lib/storage/service-hwobs/hwobs.service.mjs +8 -131
  153. package/esm2022/lib/storage/service-hwobs/index.mjs +10 -3
  154. package/esm2022/lib/storage/service-hwobs/typings/esdk-obs-browser.mjs +1 -1
  155. package/esm2022/lib/storage/service-upload/index.mjs +10 -2
  156. package/esm2022/lib/storage/service-upload/nova-upload.service.mjs +8 -513
  157. package/esm2022/lib/storage/service-upload/util-file-md5.mjs +10 -28
  158. package/esm2022/lib/storage/service-upload/util-file-metadata.mjs +10 -93
  159. package/esm2022/lib/storage/storage.module.mjs +10 -42
  160. package/esm2022/lib/text/fm-article-editor/article-editor-topbar/article-editor-topbar.component.mjs +10 -72
  161. package/esm2022/lib/text/fm-article-editor/article.service.mjs +10 -237
  162. package/esm2022/lib/text/fm-article-editor/comp-upload-book-banners/comp-upload-book-banners.component.mjs +8 -72
  163. package/esm2022/lib/text/fm-article-editor/draft.service.mjs +10 -207
  164. package/esm2022/lib/text/fm-article-editor/fm-article-aitool/fm-article-aitool.component.mjs +8 -227
  165. package/esm2022/lib/text/fm-article-editor/fm-article-draft/fm-article-draft.component.mjs +10 -303
  166. package/esm2022/lib/text/fm-article-editor/fm-article-editor.component.mjs +8 -371
  167. package/esm2022/lib/text/fm-article-editor/fm-article-outline/fm-article-outline.component.mjs +10 -94
  168. package/esm2022/lib/text/fm-article-editor/fm-article-outline-leftitem/fm-article-outline-leftitem.component.mjs +10 -36
  169. package/esm2022/lib/text/fm-article-editor/fm-article-preview/fm-article-preview.component.mjs +10 -281
  170. package/esm2022/lib/text/fm-article-editor/fm-article-write-options/fm-article-write-options.component.mjs +10 -72
  171. package/esm2022/lib/text/fm-article-editor/outline-count.pipe.mjs +10 -22
  172. package/esm2022/lib/text/fm-article-editor/prompt/prompt-insertion-article.mjs +10 -169
  173. package/esm2022/lib/text/fm-article-editor/task-article-generation.mjs +10 -69
  174. package/esm2022/lib/text/fm-article-editor/tasks/task-article-draft-create.mjs +10 -65
  175. package/esm2022/lib/text/fm-article-editor/tasks/task-article-outline-edit.mjs +10 -55
  176. package/esm2022/lib/text/fm-article-editor/tasks/task-article-outline.mjs +10 -142
  177. package/esm2022/lib/text/fm-article-editor/tasks/task-article-preview.mjs +10 -35
  178. package/esm2022/lib/text/fm-article-editor/tasks/task-article-writing-options.mjs +10 -81
  179. package/esm2022/lib/text/fm-article-editor/tasks/task-document-select.mjs +10 -50
  180. package/esm2022/lib/text/fm-text-quill/fm-text-quill.component.mjs +10 -145
  181. package/esm2022/lib/text/index.mjs +10 -4
  182. package/esm2022/lib/user/account/account.service.mjs +10 -222
  183. package/esm2022/lib/user/captcha/captcha.component.mjs +10 -135
  184. package/esm2022/lib/user/comp-user-avatar/comp-user-avatar.component.mjs +10 -66
  185. package/esm2022/lib/user/index.mjs +10 -17
  186. package/esm2022/lib/user/login/auth.guard.mjs +10 -28
  187. package/esm2022/lib/user/login/auth.service.mjs +8 -433
  188. package/esm2022/lib/user/login/login.component.mjs +10 -916
  189. package/esm2022/lib/user/modal-user-login/modal-user-login.component.mjs +10 -311
  190. package/esm2022/lib/user/profile/auth-profile.guard.mjs +10 -27
  191. package/esm2022/lib/user/profile/auth-profile.service.mjs +10 -122
  192. package/esm2022/lib/user/profile/profile-bind/profile-bind.component.mjs +10 -164
  193. package/esm2022/lib/user/profile/profile-bind/profile-confirm-modal.component.mjs +10 -79
  194. package/esm2022/lib/user/profile/profile.module.mjs +10 -54
  195. package/esm2022/lib/user/staff/index.mjs +10 -4
  196. package/esm2022/lib/user/staff/staff.guard.mjs +10 -26
  197. package/esm2022/lib/user/staff/staff.module.mjs +10 -18
  198. package/esm2022/lib/user/staff/staff.service.mjs +10 -85
  199. package/esm2022/lib/user/user-name.pipe.mjs +10 -29
  200. package/esm2022/lib/user/user.module.mjs +10 -102
  201. package/esm2022/lib/video/fm-video/fm-video.component.mjs +10 -67
  202. package/esm2022/lib/video/index.mjs +10 -2
  203. package/esm2022/public-api.mjs +10 -21
  204. package/fesm2022/fmode-ng.mjs +7 -19788
  205. package/fesm2022/fmode-ng.mjs.map +1 -1
  206. package/lib/aigc/avatar/comp-avatar-role-image/comp-avatar-role-image.component.d.ts +2 -2
  207. package/lib/aigc/avatar/comp-avatar-role-video/comp-avatar-role-video.component.d.ts +2 -2
  208. package/lib/aigc/avatar/comp-avatar-talk/comp-avatar-talk.component.d.ts +2 -2
  209. package/lib/aigc/chat/chat-list/chat-list.component.d.ts +3 -2
  210. package/lib/aigc/chat/chat-message-card/comp-message-card.component.d.ts +3 -3
  211. package/lib/aigc/chat/chat-modal-input/modal-audio-message/modal-audio-message.component.d.ts +2 -2
  212. package/lib/aigc/chat/chat-modal-input/modal-input.component.d.ts +3 -3
  213. package/lib/aigc/service-fmai/service-imagine/imagine-func.d.ts +3 -3
  214. package/lib/aigc/service-fmai/service-imagine/imagine-work.d.ts +4 -4
  215. package/lib/aigc/service-fmai/service-imagine/imagine.service.d.ts +6 -6
  216. package/lib/aigc/story/fm-office-viewer/fm-office-viewer.component.d.ts +2 -2
  217. package/lib/aigc/story/fm-story-card/fm-story-card.component.d.ts +2 -1
  218. package/lib/aigc/story/fm-story-list/fm-story-list.component.d.ts +6 -6
  219. package/lib/aigc/story/fm-story-list/story-preview.d.ts +4 -4
  220. package/lib/aigc/story/fm-story-loader/fm-story-loader.component.d.ts +3 -3
  221. package/lib/aigc/story/fm-story-splitter/fm-story-splitter.component.d.ts +2 -2
  222. package/lib/aigc/story/modal-chat-story/comp-chat-story-json/comp-chat-story-json.component.d.ts +3 -2
  223. package/lib/aigc/story/modal-chat-story/comp-diary-story/comp-diary-story.component.d.ts +3 -2
  224. package/lib/aigc/story/modal-chat-story/modal-chat-story.component.d.ts +6 -6
  225. package/lib/aigc/story/story.service.d.ts +3 -2
  226. package/lib/aigc/voice/tts/fmode-tts-class.d.ts +2 -2
  227. package/lib/core/agent/chat/fmode-chat.d.ts +11 -11
  228. package/lib/core/agent/story/agent.story.d.ts +8 -8
  229. package/lib/core/parse/datatype/geopoint.d.ts +5 -1
  230. package/lib/core/parse/fmode.cloud.d.ts +32 -0
  231. package/lib/core/parse/fmode.object.d.ts +2 -2
  232. package/lib/core/parse/fmode.parse.d.ts +15 -9
  233. package/lib/core/parse/fmode.query.d.ts +41 -2
  234. package/lib/core/parse/fmode.user.d.ts +1 -0
  235. package/lib/core/parse/index.d.ts +1 -0
  236. package/lib/core/parse/types.d.ts +2 -0
  237. package/lib/map/comp-poi-picker/comp-poi-picker.component.d.ts +5 -5
  238. package/lib/payment/payment/payment.component.d.ts +3 -3
  239. package/lib/payment/payment.service.d.ts +4 -4
  240. package/lib/person/comp-person-gender-icon/comp-person-gender-icon.component.d.ts +2 -1
  241. package/lib/person/comp-person-item/comp-person-item.component.d.ts +2 -1
  242. package/lib/person/comp-person-story/comp-person-story.component.d.ts +13 -13
  243. package/lib/person/edit-upload/edit-upload.component.d.ts +1 -1
  244. package/lib/person/modal-person-select/modal-person-select.component.d.ts +5 -5
  245. package/lib/person/modal-user-verify/user-verify.component.d.ts +5 -5
  246. package/lib/person/person-detail/person-detail.component.d.ts +4 -4
  247. package/lib/person/person.service.d.ts +7 -7
  248. package/lib/storage/service-hwobs/hwobs.service.d.ts +4 -5
  249. package/lib/storage/service-upload/nova-upload.service.d.ts +5 -5
  250. package/lib/text/fm-article-editor/article-editor-topbar/article-editor-topbar.component.d.ts +2 -1
  251. package/lib/text/fm-article-editor/article.service.d.ts +12 -12
  252. package/lib/text/fm-article-editor/draft.service.d.ts +5 -5
  253. package/lib/text/fm-article-editor/fm-article-aitool/fm-article-aitool.component.d.ts +3 -2
  254. package/lib/text/fm-article-editor/fm-article-draft/fm-article-draft.component.d.ts +16 -17
  255. package/lib/text/fm-article-editor/fm-article-editor.component.d.ts +3 -3
  256. package/lib/text/fm-article-editor/fm-article-outline/fm-article-outline.component.d.ts +11 -10
  257. package/lib/text/fm-article-editor/fm-article-preview/fm-article-preview.component.d.ts +2 -2
  258. package/lib/text/fm-article-editor/prompt/prompt-insertion-article.d.ts +3 -3
  259. package/lib/text/fm-article-editor/task-article-generation.d.ts +5 -4
  260. package/lib/text/fm-article-editor/tasks/task-article-draft-create.d.ts +3 -3
  261. package/lib/text/fm-article-editor/tasks/task-article-outline-edit.d.ts +3 -3
  262. package/lib/text/fm-article-editor/tasks/task-article-outline.d.ts +3 -3
  263. package/lib/text/fm-article-editor/tasks/task-article-preview.d.ts +2 -1
  264. package/lib/text/fm-article-editor/tasks/task-article-writing-options.d.ts +3 -3
  265. package/lib/text/fm-article-editor/tasks/task-document-select.d.ts +3 -3
  266. package/lib/user/account/account.service.d.ts +2 -2
  267. package/lib/user/comp-user-avatar/comp-user-avatar.component.d.ts +2 -2
  268. package/lib/user/login/auth.service.d.ts +5 -5
  269. package/lib/user/login/login.component.d.ts +3 -3
  270. package/lib/user/profile/auth-profile.service.d.ts +8 -8
  271. package/lib/user/profile/profile-bind/profile-bind.component.d.ts +7 -7
  272. package/lib/user/profile/profile-bind/profile-confirm-modal.component.d.ts +2 -2
  273. package/lib/user/staff/staff.service.d.ts +3 -3
  274. package/lib/user/user-name.pipe.d.ts +2 -2
  275. package/package.json +12 -18
@@ -1,232 +1,10 @@
1
- import { FmodeRelation } from "./datatype/relation";
2
- export class FmodeObject {
3
- static { this._instance = null; }
4
- static bindInstance(instance) {
5
- this._instance = instance;
6
- }
7
- constructor(className) {
8
- this.data = {};
9
- this.className = className;
10
- }
11
- // MARK: - 基本方法
12
- static extend(className) {
13
- return class extends FmodeObject {
14
- constructor() {
15
- super(className);
16
- }
17
- };
18
- }
19
- toPointer() {
20
- return {
21
- __type: 'Pointer',
22
- className: this.className,
23
- objectId: this.id
24
- };
25
- }
26
- // Update the toJSON method to properly format dates and pointers
27
- toJSON() {
28
- const json = {
29
- __type: 'Object',
30
- className: this.className,
31
- ...this.data
32
- };
33
- if (this.id) {
34
- json.objectId = this.id;
35
- }
36
- // Format dates properly
37
- try {
38
- if (this.createdAt) {
39
- if (typeof this.createdAt == "string") {
40
- this.createdAt = new Date(this.createdAt);
41
- }
42
- json.createdAt = { __type: 'Date', iso: this.createdAt.toISOString() };
43
- }
44
- if (this.updatedAt) {
45
- if (typeof this.updatedAt == "string") {
46
- this.updatedAt = new Date(this.updatedAt);
47
- }
48
- console.log(this.updatedAt);
49
- json.updatedAt = { __type: 'Date', iso: this.updatedAt.toISOString() };
50
- }
51
- }
52
- catch (err) { }
53
- // Handle ACL
54
- if (this.ACL) {
55
- json.ACL = this.ACL;
56
- }
57
- return json;
58
- }
59
- // MARK: - 属性操作
60
- get(key) {
61
- return this.data[key];
62
- }
63
- set(key, value) {
64
- if (typeof key === 'object') {
65
- Object.assign(this.data, key);
66
- }
67
- else {
68
- this.data[key] = value;
69
- }
70
- return this;
71
- }
72
- unset(key) {
73
- delete this.data[key];
74
- return this;
75
- }
76
- increment(key, amount = 1) {
77
- const current = this.get(key) || 0;
78
- this.set(key, current + amount);
79
- return this;
80
- }
81
- add(key, items) {
82
- const current = this.get(key) || [];
83
- this.set(key, [...current, ...items]);
84
- return this;
85
- }
86
- addUnique(key, items) {
87
- const current = new Set(this.get(key) || new Set());
88
- items.forEach(item => current.add(item));
89
- this.set(key, Array.from(current));
90
- return this;
91
- }
92
- remove(key, items) {
93
- const current = this.get(key) || [];
94
- const toRemove = new Set(items);
95
- this.set(key, current.filter((item) => !toRemove.has(item)));
96
- return this;
97
- }
98
- // MARK: - CRUD 操作
99
- // Update the save method to use the proper toJSON format
100
- async save(options) {
101
- if (!FmodeObject._instance)
102
- throw new Error('Not initialized');
103
- const method = this.id ? 'PUT' : 'POST';
104
- let url = `${FmodeObject._instance.serverURL}/classes/${this.className}`;
105
- if (this.id)
106
- url += `/${this.id}`;
107
- const headers = {
108
- 'Content-Type': 'application/json',
109
- 'X-Parse-Application-Id': FmodeObject._instance.appId
110
- };
111
- if (options?.useMasterKey && FmodeObject._instance.config.masterKey) {
112
- headers['X-Parse-Master-Key'] = FmodeObject._instance.config.masterKey;
113
- }
114
- // Get clean JSON representation
115
- const data = this.toJSON();
116
- delete data.createdAt; // These are handled by server
117
- delete data.updatedAt;
118
- delete data.__type;
119
- delete data.className;
120
- // Convert any nested FmodeObjects to pointers
121
- for (const key in data) {
122
- if (this.get(key)?.toPointer) {
123
- data[key] = this.get(key).toPointer();
124
- }
125
- }
126
- const response = await fetch(url, {
127
- method,
128
- headers,
129
- body: JSON.stringify(data)
130
- });
131
- console.log(JSON.stringify(data));
132
- const result = await response.json();
133
- console.log(result);
134
- if (result.error)
135
- throw new Error(result.error);
136
- this.id = result.objectId || this.id;
137
- this.createdAt = new Date(result.createdAt || this.createdAt);
138
- this.updatedAt = new Date(result.updatedAt || this.updatedAt);
139
- return this;
140
- }
141
- async destroy(options) {
142
- if (!this.id)
143
- throw new Error('Cannot destroy unsaved object');
144
- if (!FmodeObject._instance)
145
- throw new Error('Not initialized');
146
- const headers = {
147
- 'X-Parse-Application-Id': FmodeObject._instance.appId
148
- };
149
- if (options?.useMasterKey && FmodeObject._instance.config.masterKey) {
150
- headers['X-Parse-Master-Key'] = FmodeObject._instance.config.masterKey;
151
- }
152
- const url = `${FmodeObject._instance.serverURL}/classes/${this.className}/${this.id}`;
153
- const response = await fetch(url, {
154
- method: 'DELETE',
155
- headers
156
- });
157
- if (!response.ok) {
158
- const result = await response.json();
159
- throw new Error(result.error || 'Failed to delete object');
160
- }
161
- }
162
- // MARK: - 静态方法
163
- static async create(className, attributes, options) {
164
- const obj = new this(className);
165
- obj.set(attributes);
166
- return obj.save(options);
167
- }
168
- static async fetchAll(objects, options) {
169
- if (!FmodeObject._instance)
170
- throw new Error('Not initialized');
171
- if (objects.length === 0)
172
- return [];
173
- const headers = {
174
- 'Content-Type': 'application/json',
175
- 'X-Parse-Application-Id': FmodeObject._instance.appId
176
- };
177
- if (options?.useMasterKey && FmodeObject._instance.config.masterKey) {
178
- headers['X-Parse-Master-Key'] = FmodeObject._instance.config.masterKey;
179
- }
180
- const url = `${FmodeObject._instance.serverURL}/batch`;
181
- const requests = objects.map(obj => ({
182
- method: 'GET',
183
- path: `/classes/${obj.className}/${obj.id}`
184
- }));
185
- const response = await fetch(url, {
186
- method: 'POST',
187
- headers,
188
- body: JSON.stringify({ requests })
189
- });
190
- const results = await response.json();
191
- if (results.error)
192
- throw new Error(results.error);
193
- return results.map((result, index) => {
194
- const obj = objects[index];
195
- obj.set(result.success);
196
- return obj;
197
- });
198
- }
199
- // MARK: - 关系操作
200
- relation(key) {
201
- return new FmodeRelation(this, key);
202
- }
203
- // MARK: - 文件处理
204
- static async fromFile(name, data, type) {
205
- if (!FmodeObject._instance)
206
- throw new Error('Not initialized');
207
- const fileData = new FormData();
208
- fileData.append('file', data, name);
209
- const headers = {
210
- 'X-Parse-Application-Id': FmodeObject._instance.appId
211
- };
212
- const url = `${FmodeObject._instance.serverURL}/files/${name}`;
213
- const response = await fetch(url, {
214
- method: 'POST',
215
- headers,
216
- body: fileData
217
- });
218
- const result = await response.json();
219
- if (result.error)
220
- throw new Error(result.error);
221
- return {
222
- __type: 'File',
223
- name: result.name,
224
- url: result.url
225
- };
226
- }
227
- }
228
- // 添加静态方法到类上
229
- // FmodeObject.registerSubclass = function(className: string, clazz: typeof FmodeObject) {
230
- // // 子类注册逻辑
231
- // };
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm1vZGUub2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9jb3JlL3BhcnNlL2Ztb2RlLm9iamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUF1QnBELE1BQU0sT0FBTyxXQUFXO2FBQ2YsY0FBUyxHQUFlLElBQUksQUFBbkIsQ0FBb0I7SUFFcEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFhO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFTRCxZQUFZLFNBQWlCO1FBRjdCLFNBQUksR0FBd0IsRUFBRSxDQUFDO1FBRzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxlQUFlO0lBRWYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFpQjtRQUM3QixPQUFPLEtBQU0sU0FBUSxXQUFXO1lBQzlCO2dCQUNFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuQixDQUFDO1NBQ0ssQ0FBQztJQUNYLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTztZQUNMLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUc7U0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxpRUFBaUU7SUFDbkUsTUFBTTtRQUNKLE1BQU0sSUFBSSxHQUF3QjtZQUNoQyxNQUFNLEVBQUUsUUFBUTtZQUNoQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsR0FBRyxJQUFJLENBQUMsSUFBSTtTQUNiLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMx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TSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9ELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBDLE1BQU0sT0FBTyxHQUEyQjtZQUN0Qyx3QkFBd0IsRUFBRSxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUs7U0FDdEQsQ0FBQztRQUVGLE1BQU0sR0FBRyxHQUFHLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFDL0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTztZQUNQLElBQUksRUFBRSxRQUFRO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckMsSUFBSSxNQUFNLENBQUMsS0FBSztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhELE9BQU87WUFDTCxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUc7U0FDaEIsQ0FBQztJQUNKLENBQUM7O0FBR0gsWUFBWTtBQUNaLDBGQUEwRjtBQUMxRixjQUFjO0FBQ2QsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZtb2RlUXVlcnkgfSBmcm9tIFwiLi9mbW9kZS5xdWVyeVwiO1xyXG5pbXBvcnQgeyBGbW9kZUFDTCB9IGZyb20gXCIuL2RhdGF0eXBlL2FjbFwiO1xyXG5pbXBvcnQgeyBGbW9kZUdlb1BvaW50IH0gZnJvbSBcIi4vZGF0YXR5cGUvZ2VvcG9pbnRcIjtcclxuaW1wb3J0IHsgRm1vZGVSZWxhdGlvbiB9IGZyb20gXCIuL2RhdGF0eXBlL3JlbGF0aW9uXCI7XHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PSBDb3JlIFR5cGVzID09PT09PT09PT09PT09PT09PT09XHJcbnR5cGUgQUNMID0gUmVjb3JkPHN0cmluZywgeyByZWFkOiBib29sZWFuOyB3cml0ZTogYm9vbGVhbiB9PjtcclxudHlwZSBGaWxlID0geyBfX3R5cGU6ICdGaWxlJzsgbmFtZTogc3RyaW5nOyB1cmw6IHN0cmluZyB9O1xyXG50eXBlIEdlb1BvaW50ID0gRm1vZGVHZW9Qb2ludHx7IF9fdHlwZTogJ0dlb1BvaW50JzsgbGF0aXR1ZGU6IG51bWJlcjsgbG9uZ2l0dWRlOiBudW1iZXIgfTtcclxudHlwZSBSZWxhdGlvbjxUIGV4dGVuZHMgRm1vZGVPYmplY3Q+ID0ge1xyXG4gIF9fdHlwZTogJ1JlbGF0aW9uJztcclxuICBjbGFzc05hbWU6IHN0cmluZztcclxuICBhZGQ6IChvYmplY3RzOiBUW10pID0+IHZvaWQ7XHJcbiAgcmVtb3ZlOiAob2JqZWN0czogVFtdKSA9PiB2b2lkO1xyXG4gIHF1ZXJ5OiAoKSA9PiBGbW9kZVF1ZXJ5PFQ+O1xyXG59O1xyXG5cclxudHlwZSBQb2ludGVyID0geyBfX3R5cGU6ICdQb2ludGVyJzsgY2xhc3NOYW1lOiBzdHJpbmc7IG9iamVjdElkOiBzdHJpbmcgfTtcclxudHlwZSBCYXNlQXR0cmlidXRlcyA9IHtcclxuICBpZD86IHN0cmluZztcclxuICBjcmVhdGVkQXQ/OiBEYXRlO1xyXG4gIHVwZGF0ZWRBdD86IERhdGU7XHJcbiAgQUNMPzogQUNMIHwgRm1vZGVBQ0w7XHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEZtb2RlT2JqZWN0IHtcclxuICBzdGF0aWMgX2luc3RhbmNlOiBhbnkgfCBudWxsID0gbnVsbDtcclxuICBcclxuICBzdGF0aWMgYmluZEluc3RhbmNlKGluc3RhbmNlOiBhbnkpIHtcclxuICAgIHRoaXMuX2luc3RhbmNlID0gaW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuICBjbGFzc05hbWU6IHN0cmluZztcclxuICBpZD86IHN0cmluZztcclxuICBjcmVhdGVkQXQ/OiBEYXRlO1xyXG4gIHVwZGF0ZWRBdD86IERhdGU7XHJcbiAgQUNMPzogQUNMO1xyXG4gIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IoY2xhc3NOYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xyXG4gIH1cclxuXHJcbiAgLy8gTUFSSzogLSDln7rmnKzmlrnms5VcclxuXHJcbiAgc3RhdGljIGV4dGVuZChjbGFzc05hbWU6IHN0cmluZyk6IHR5cGVvZiBGbW9kZU9iamVjdCB7XHJcbiAgICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBGbW9kZU9iamVjdCB7XHJcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKGNsYXNzTmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH0gYXMgYW55O1xyXG4gIH1cclxuXHJcbiAgdG9Qb2ludGVyKCk6IFBvaW50ZXIge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgX190eXBlOiAnUG9pbnRlcicsXHJcbiAgICAgIGNsYXNzTmFtZTogdGhpcy5jbGFzc05hbWUsXHJcbiAgICAgIG9iamVjdElkOiB0aGlzLmlkIVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vIFVwZGF0ZSB0aGUgdG9KU09OIG1ldGhvZCB0byBwcm9wZXJseSBmb3JtYXQgZGF0ZXMgYW5kIHBvaW50ZXJzXHJcbnRvSlNPTigpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcclxuICBjb25zdCBqc29uOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xyXG4gICAgX190eXBlOiAnT2JqZWN0JyxcclxuICAgIGNsYXNzTmFtZTogdGhpcy5jbGFzc05hbWUsXHJcbiAgICAuLi50aGlzLmRhdGFcclxuICB9O1xyXG5cclxuICBpZiAodGhpcy5pZCkge1xyXG4gICAganNvbi5vYmplY3RJZCA9IHRoaXMuaWQ7XHJcbiAgfVxyXG5cclxuICAvLyBGb3JtYXQgZGF0ZXMgcHJvcGVybHlcclxuICB0cnl7XHJcbiAgICBpZiAodGhpcy5jcmVhdGVkQXQpIHtcclxuICAgICAgICBpZih0eXBlb2YgdGhpcy5jcmVhdGVkQXQ9PVwic3RyaW5nXCIpe1xyXG4gICAgICAgIHRoaXMuY3JlYXRlZEF0ID0gbmV3IERhdGUodGhpcy5jcmVhdGVkQXQpXHJcbiAgICAgIH1cclxuICAgICAganNvbi5jcmVhdGVkQXQgPSB7IF9fdHlwZTogJ0RhdGUnLCBpc286IHRoaXMuY3JlYXRlZEF0LnRvSVNPU3RyaW5nKCkgfTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnVwZGF0ZWRBdCkge1xyXG4gICAgICBpZih0eXBlb2YgdGhpcy51cGRhdGVkQXQ9PVwic3RyaW5nXCIpe1xyXG4gICAgICAgIHRoaXMudXBkYXRlZEF0ID0gbmV3IERhdGUodGhpcy51cGRhdGVkQXQpXHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2codGhpcy51cGRhdGVkQXQpXHJcbiAgICAgIGpzb24udXBkYXRlZEF0ID0geyBfX3R5cGU6ICdEYXRlJywgaXNvOiB0aGlzLnVwZGF0ZWRBdC50b0lTT1N0cmluZygpIH07XHJcbiAgICB9XHJcbiAgfWNhdGNoKGVycil7fVxyXG4gIFxyXG4gIC8vIEhhbmRsZSBBQ0xcclxuICBpZiAodGhpcy5BQ0wpIHtcclxuICAgIGpzb24uQUNMID0gdGhpcy5BQ0w7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ganNvbjtcclxufVxyXG5cclxuXHJcbiAgLy8gTUFSSzogLSDlsZ7mgKfmk43kvZxcclxuXHJcbiAgZ2V0KGtleTogc3RyaW5nKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFba2V5XTtcclxuICB9XHJcblxyXG4gIHNldChrZXk6IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIGFueT4sIHZhbHVlPzogYW55KTogdGhpcyB7XHJcbiAgICBpZiAodHlwZW9mIGtleSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmRhdGEsIGtleSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGFba2V5XSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICB1bnNldChrZXk6IHN0cmluZyk6IHRoaXMge1xyXG4gICAgZGVsZXRlIHRoaXMuZGF0YVtrZXldO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBpbmNyZW1lbnQoa2V5OiBzdHJpbmcsIGFtb3VudCA9IDEpOiB0aGlzIHtcclxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmdldChrZXkpIHx8IDA7XHJcbiAgICB0aGlzLnNldChrZXksIGN1cnJlbnQgKyBhbW91bnQpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBhZGQoa2V5OiBzdHJpbmcsIGl0ZW1zOiBhbnlbXSk6IHRoaXMge1xyXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuZ2V0KGtleSkgfHwgW107XHJcbiAgICB0aGlzLnNldChrZXksIFsuLi5jdXJyZW50LCAuLi5pdGVtc10pO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBhZGRVbmlxdWUoa2V5OiBzdHJpbmcsIGl0ZW1zOiBhbnlbXSk6IHRoaXMge1xyXG4gICAgY29uc3QgY3VycmVudCA9IG5ldyBTZXQodGhpcy5nZXQoa2V5KSB8fCBuZXcgU2V0KCkpO1xyXG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IGN1cnJlbnQuYWRkKGl0ZW0pKTtcclxuICAgIHRoaXMuc2V0KGtleSwgQXJyYXkuZnJvbShjdXJyZW50KSk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIHJlbW92ZShrZXk6IHN0cmluZywgaXRlbXM6IGFueVtdKTogdGhpcyB7XHJcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5nZXQoa2V5KSB8fCBbXTtcclxuICAgIGNvbnN0IHRvUmVtb3ZlID0gbmV3IFNldChpdGVtcyk7XHJcbiAgICB0aGlzLnNldChrZXksIGN1cnJlbnQuZmlsdGVyKChpdGVtOiBhbnkpID0+ICF0b1JlbW92ZS5oYXMoaXRlbSkpKTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLy8gTUFSSzogLSBDUlVEIOaTjeS9nFxyXG5cclxuLy8gVXBkYXRlIHRoZSBzYXZlIG1ldGhvZCB0byB1c2UgdGhlIHByb3BlciB0b0pTT04gZm9ybWF0XHJcbmFzeW5jIHNhdmUob3B0aW9ucz86IHsgdXNlTWFzdGVyS2V5PzogYm9vbGVhbiB9KTogUHJvbWlzZTx0aGlzPiB7XHJcbiAgaWYgKCFGbW9kZU9iamVjdC5faW5zdGFuY2UpIHRocm93IG5ldyBFcnJvcignTm90IGluaXRpYWxpemVkJyk7XHJcblxyXG4gIGNvbnN0IG1ldGhvZCA9IHRoaXMuaWQgPyAnUFVUJyA6ICdQT1NUJztcclxuICBsZXQgdXJsID0gYCR7Rm1vZGVPYmplY3QuX2luc3RhbmNlLnNlcnZlclVSTH0vY2xhc3Nlcy8ke3RoaXMuY2xhc3NOYW1lfWA7XHJcbiAgaWYgKHRoaXMuaWQpIHVybCArPSBgLyR7dGhpcy5pZH1gO1xyXG5cclxuICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG4gICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICdYLVBhcnNlLUFwcGxpY2F0aW9uLUlkJzogRm1vZGVPYmplY3QuX2luc3RhbmNlLmFwcElkXHJcbiAgfTtcclxuXHJcbiAgaWYgKG9wdGlvbnM/LnVzZU1hc3RlcktleSAmJiBGbW9kZU9iamVjdC5faW5zdGFuY2UuY29uZmlnLm1hc3RlcktleSkge1xyXG4gICAgaGVhZGVyc1snWC1QYXJzZS1NYXN0ZXItS2V5J10gPSBGbW9kZU9iamVjdC5faW5zdGFuY2UuY29uZmlnLm1hc3RlcktleTtcclxuICB9XHJcblxyXG4gIC8vIEdldCBjbGVhbiBKU09OIHJlcHJlc2VudGF0aW9uXHJcbiAgY29uc3QgZGF0YSA9IHRoaXMudG9KU09OKCk7XHJcbiAgZGVsZXRlIGRhdGEuY3JlYXRlZEF0OyAvLyBUaGVzZSBhcmUgaGFuZGxlZCBieSBzZXJ2ZXJcclxuICBkZWxldGUgZGF0YS51cGRhdGVkQXQ7XHJcbiAgZGVsZXRlIGRhdGEuX190eXBlO1xyXG4gIGRlbGV0ZSBkYXRhLmNsYXNzTmFtZTtcclxuXHJcbiAgLy8gQ29udmVydCBhbnkgbmVzdGVkIEZtb2RlT2JqZWN0cyB0byBwb2ludGVyc1xyXG4gIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcclxuICAgIGlmICh0aGlzLmdldChrZXkpPy50b1BvaW50ZXIpIHtcclxuICAgICAgZGF0YVtrZXldID0gdGhpcy5nZXQoa2V5KS50b1BvaW50ZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XHJcbiAgICBtZXRob2QsXHJcbiAgICBoZWFkZXJzLFxyXG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0YSlcclxuICB9KTtcclxuXHJcbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpXHJcblxyXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuICBjb25zb2xlLmxvZyhyZXN1bHQpXHJcbiAgaWYgKHJlc3VsdC5lcnJvcikgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5lcnJvcik7XHJcblxyXG4gIHRoaXMuaWQgPSByZXN1bHQub2JqZWN0SWQgfHwgdGhpcy5pZDtcclxuICB0aGlzLmNyZWF0ZWRBdCA9IG5ldyBEYXRlKHJlc3VsdC5jcmVhdGVkQXQgfHwgdGhpcy5jcmVhdGVkQXQpO1xyXG4gIHRoaXMudXBkYXRlZEF0ID0gbmV3IERhdGUocmVzdWx0LnVwZGF0ZWRBdCB8fCB0aGlzLnVwZGF0ZWRBdCk7XHJcbiAgcmV0dXJuIHRoaXM7XHJcbn1cclxuICBhc3luYyBkZXN0cm95KG9wdGlvbnM/OiB7IHVzZU1hc3RlcktleT86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLmlkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZXN0cm95IHVuc2F2ZWQgb2JqZWN0Jyk7XHJcbiAgICBpZiAoIUZtb2RlT2JqZWN0Ll9pbnN0YW5jZSkgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW5pdGlhbGl6ZWQnKTtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG4gICAgICAnWC1QYXJzZS1BcHBsaWNhdGlvbi1JZCc6IEZtb2RlT2JqZWN0Ll9pbnN0YW5jZS5hcHBJZFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9ucz8udXNlTWFzdGVyS2V5ICYmIEZtb2RlT2JqZWN0Ll9pbnN0YW5jZS5jb25maWcubWFzdGVyS2V5KSB7XHJcbiAgICAgIGhlYWRlcnNbJ1gtUGFyc2UtTWFzdGVyLUtleSddID0gRm1vZGVPYmplY3QuX2luc3RhbmNlLmNvbmZpZy5tYXN0ZXJLZXk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdXJsID0gYCR7Rm1vZGVPYmplY3QuX2luc3RhbmNlLnNlcnZlclVSTH0vY2xhc3Nlcy8ke3RoaXMuY2xhc3NOYW1lfS8ke3RoaXMuaWR9YDtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XHJcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXHJcbiAgICAgIGhlYWRlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0LmVycm9yIHx8ICdGYWlsZWQgdG8gZGVsZXRlIG9iamVjdCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTUFSSzogLSDpnZnmgIHmlrnms5VcclxuXHJcbiAgc3RhdGljIGFzeW5jIGNyZWF0ZTxUIGV4dGVuZHMgRm1vZGVPYmplY3Q+KFxyXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXHJcbiAgICBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxyXG4gICAgb3B0aW9ucz86IHsgdXNlTWFzdGVyS2V5PzogYm9vbGVhbiB9XHJcbiAgKTogUHJvbWlzZTxUPiB7XHJcbiAgICBjb25zdCBvYmogPSBuZXcgdGhpcyhjbGFzc05hbWUpIGFzIFQ7XHJcbiAgICBvYmouc2V0KGF0dHJpYnV0ZXMpO1xyXG4gICAgcmV0dXJuIG9iai5zYXZlKG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFzeW5jIGZldGNoQWxsPFQgZXh0ZW5kcyBGbW9kZU9iamVjdD4oXHJcbiAgICBvYmplY3RzOiBUW10sXHJcbiAgICBvcHRpb25zPzogeyB1c2VNYXN0ZXJLZXk/OiBib29sZWFuIH1cclxuICApOiBQcm9taXNlPFRbXT4ge1xyXG4gICAgaWYgKCFGbW9kZU9iamVjdC5faW5zdGFuY2UpIHRocm93IG5ldyBFcnJvcignTm90IGluaXRpYWxpemVkJyk7XHJcbiAgICBpZiAob2JqZWN0cy5sZW5ndGggPT09IDApIHJldHVybiBbXTtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnWC1QYXJzZS1BcHBsaWNhdGlvbi1JZCc6IEZtb2RlT2JqZWN0Ll9pbnN0YW5jZS5hcHBJZFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9ucz8udXNlTWFzdGVyS2V5ICYmIEZtb2RlT2JqZWN0Ll9pbnN0YW5jZS5jb25maWcubWFzdGVyS2V5KSB7XHJcbiAgICAgIGhlYWRlcnNbJ1gtUGFyc2UtTWFzdGVyLUtleSddID0gRm1vZGVPYmplY3QuX2luc3RhbmNlLmNvbmZpZy5tYXN0ZXJLZXk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdXJsID0gYCR7Rm1vZGVPYmplY3QuX2luc3RhbmNlLnNlcnZlclVSTH0vYmF0Y2hgO1xyXG4gICAgY29uc3QgcmVxdWVzdHMgPSBvYmplY3RzLm1hcChvYmogPT4gKHtcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgcGF0aDogYC9jbGFzc2VzLyR7b2JqLmNsYXNzTmFtZX0vJHtvYmouaWR9YFxyXG4gICAgfSkpO1xyXG5cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XHJcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICBoZWFkZXJzLFxyXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHJlcXVlc3RzIH0pXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG4gICAgaWYgKHJlc3VsdHMuZXJyb3IpIHRocm93IG5ldyBFcnJvcihyZXN1bHRzLmVycm9yKTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0cy5tYXAoKHJlc3VsdDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IG9iaiA9IG9iamVjdHNbaW5kZXhdO1xyXG4gICAgICBvYmouc2V0KHJlc3VsdC5zdWNjZXNzKTtcclxuICAgICAgcmV0dXJuIG9iajtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gTUFSSzogLSDlhbPns7vmk43kvZxcclxuXHJcbiAgcmVsYXRpb248VCBleHRlbmRzIEZtb2RlT2JqZWN0PihrZXk6IHN0cmluZyk6IEZtb2RlUmVsYXRpb248VD4ge1xyXG4gICAgcmV0dXJuIG5ldyBGbW9kZVJlbGF0aW9uPFQ+KHRoaXMsIGtleSk7XHJcbiAgfVxyXG5cclxuICAvLyBNQVJLOiAtIOaWh+S7tuWkhOeQhlxyXG5cclxuICBzdGF0aWMgYXN5bmMgZnJvbUZpbGUoXHJcbiAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICBkYXRhOiBCbG9iIHwgRmlsZSB8IGFueSxcclxuICAgIHR5cGU/OiBzdHJpbmdcclxuICApOiBQcm9taXNlPEZpbGU+IHtcclxuICAgIGlmICghRm1vZGVPYmplY3QuX2luc3RhbmNlKSB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbml0aWFsaXplZCcpO1xyXG5cclxuICAgIGNvbnN0IGZpbGVEYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmaWxlRGF0YS5hcHBlbmQoJ2ZpbGUnLCBkYXRhLCBuYW1lKTtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG4gICAgICAnWC1QYXJzZS1BcHBsaWNhdGlvbi1JZCc6IEZtb2RlT2JqZWN0Ll9pbnN0YW5jZS5hcHBJZFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB1cmwgPSBgJHtGbW9kZU9iamVjdC5faW5zdGFuY2Uuc2VydmVyVVJMfS9maWxlcy8ke25hbWV9YDtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XHJcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICBoZWFkZXJzLFxyXG4gICAgICBib2R5OiBmaWxlRGF0YVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG4gICAgaWYgKHJlc3VsdC5lcnJvcikgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5lcnJvcik7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgX190eXBlOiAnRmlsZScsXHJcbiAgICAgIG5hbWU6IHJlc3VsdC5uYW1lLFxyXG4gICAgICB1cmw6IHJlc3VsdC51cmxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblxyXG4vLyDmt7vliqDpnZnmgIHmlrnms5XliLDnsbvkuIpcclxuLy8gRm1vZGVPYmplY3QucmVnaXN0ZXJTdWJjbGFzcyA9IGZ1bmN0aW9uKGNsYXNzTmFtZTogc3RyaW5nLCBjbGF6ejogdHlwZW9mIEZtb2RlT2JqZWN0KSB7XHJcbi8vICAgLy8g5a2Q57G75rOo5YaM6YC76L6RXHJcbi8vIH07Il19
1
+
2
+ /**
3
+ * @copyright © 未来飞马 © 未来全栈 www.fmode.cn
4
+ * 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.
5
+ * 保留所有权利 All Rights Reserved.
6
+ * /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/esm2022/lib/core/parse/fmode.object.mjs
7
+ */
8
+ import{FmodeRelation}from"./datatype/relation";export class FmodeObject{static{this._instance=null}static bindInstance(e){this._instance=e}constructor(e){this.data={},this.className=e}static extend(e){const t=class extends FmodeObject{constructor(){super(e)}};return t.extend=FmodeObject.extend,t.create=FmodeObject.create,t.fetchAll=FmodeObject.fetchAll,t.fromFile=FmodeObject.fromFile,t.bindInstance=FmodeObject.bindInstance,t._instance=FmodeObject._instance,t}toPointer(){return{__type:"Pointer",className:this.className,objectId:this.id}}toJSON(){const e={__type:"Object",className:this.className,...this.data};this.id&&(e.objectId=this.id);try{this.createdAt&&("string"==typeof this.createdAt&&(this.createdAt=new Date(this.createdAt)),e.createdAt={__type:"Date",iso:this.createdAt.toISOString()}),this.updatedAt&&("string"==typeof this.updatedAt&&(this.updatedAt=new Date(this.updatedAt)),console.log(this.updatedAt),e.updatedAt={__type:"Date",iso:this.updatedAt.toISOString()})}catch(e){}return this.ACL&&(e.ACL=this.ACL),e}get(e){return this.data[e]}set(e,t){return"object"==typeof e?Object.assign(this.data,e):this.data[e]=t,this}unset(e){return delete this.data[e],this}increment(e,t=1){const s=this.get(e)||0;return this.set(e,s+t),this}add(e,t){const s=this.get(e)||[];return this.set(e,[...s,...t]),this}addUnique(e,t){const s=new Set(this.get(e)||new Set);return t.forEach((e=>s.add(e))),this.set(e,Array.from(s)),this}remove(e,t){const s=this.get(e)||[],n=new Set(t);return this.set(e,s.filter((e=>!n.has(e)))),this}async save(e){if(!FmodeObject._instance)throw new Error("Not initialized");const t=this.id?"PUT":"POST";let s=`${FmodeObject._instance.serverURL}/classes/${this.className}`;this.id&&(s+=`/${this.id}`);const n={"Content-Type":"application/json","X-Parse-Application-Id":FmodeObject._instance.appId};if(e?.useMasterKey&&FmodeObject._instance.config.masterKey)n["X-Parse-Master-Key"]=FmodeObject._instance.config.masterKey;else{const e=FmodeObject._instance.sessionToken;e&&(n["X-Parse-Session-Token"]=e)}const i=this.toJSON();delete i.createdAt,delete i.updatedAt,delete i.__type,delete i.className;for(const e in i)this.get(e)?.toPointer&&(i[e]=this.get(e).toPointer());const a=await fetch(s,{method:t,headers:n,body:JSON.stringify(i)});console.log(JSON.stringify(i));const o=await a.json();if(console.log(o),o.error)throw new Error(o.error);return this.id=o.objectId||this.id,this.createdAt=new Date(o.createdAt||this.createdAt),this.updatedAt=new Date(o.updatedAt||this.updatedAt),this}async destroy(e){if(!this.id)throw new Error("Cannot destroy unsaved object");if(!FmodeObject._instance)throw new Error("Not initialized");const t={"X-Parse-Application-Id":FmodeObject._instance.appId};if(e?.useMasterKey&&FmodeObject._instance.config.masterKey)t["X-Parse-Master-Key"]=FmodeObject._instance.config.masterKey;else{const e=FmodeObject._instance.sessionToken;e&&(t["X-Parse-Session-Token"]=e)}const s=`${FmodeObject._instance.serverURL}/classes/${this.className}/${this.id}`,n=await fetch(s,{method:"DELETE",headers:t});if(!n.ok){const e=await n.json();throw new Error(e.error||"Failed to delete object")}}static async create(e,t,s){const n=new this(e);return n.set(t),n.save(s)}static async fetchAll(e,t){if(!FmodeObject._instance)throw new Error("Not initialized");if(0===e.length)return[];const s={"Content-Type":"application/json","X-Parse-Application-Id":FmodeObject._instance.appId};if(t?.useMasterKey&&FmodeObject._instance.config.masterKey)s["X-Parse-Master-Key"]=FmodeObject._instance.config.masterKey;else{const e=FmodeObject._instance.sessionToken;e&&(s["X-Parse-Session-Token"]=e)}const n=`${FmodeObject._instance.serverURL}/batch`,i=e.map((e=>({method:"GET",path:`/classes/${e.className}/${e.id}`}))),a=await fetch(n,{method:"POST",headers:s,body:JSON.stringify({requests:i})}),o=await a.json();if(o.error)throw new Error(o.error);return o.map(((t,s)=>{const n=e[s];return n.set(t.success),n}))}relation(e){return new FmodeRelation(this,e)}static async fromFile(e,t,s){if(!FmodeObject._instance)throw new Error("Not initialized");const n=new FormData;n.append("file",t,e);const i={"X-Parse-Application-Id":FmodeObject._instance.appId},a=FmodeObject._instance.sessionToken;a&&(i["X-Parse-Session-Token"]=a);const o=`${FmodeObject._instance.serverURL}/files/${e}`,r=await fetch(o,{method:"POST",headers:i,body:n}),c=await r.json();if(c.error)throw new Error(c.error);return{__type:"File",name:c.name,url:c.url}}}
9
+ var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9jb3JlL3BhcnNlL2Ztb2RlLm9iamVjdC5tanM=`
10
+
@@ -1,84 +1,10 @@
1
- import { FmodeACL } from './datatype/acl';
2
- import { FmodeFile } from './datatype/file';
3
- import { FmodeGeoPoint } from './datatype/geopoint';
4
- import { FmodeRelation } from './datatype/relation';
5
- import { FmodeObject } from './fmode.object';
6
- import { FmodeQuery } from './fmode.query';
7
- import { FmodeUser } from './fmode.user';
8
- class FmodeParse {
9
- static { this._instances = {}; }
10
- static { this._defaultInstance = null; }
11
- constructor(config) {
12
- this.config = config;
13
- this.Object = FmodeObject;
14
- this.Query = FmodeQuery;
15
- this.User = FmodeUser;
16
- this.GeoPoint = FmodeGeoPoint;
17
- this.File = FmodeFile;
18
- this.ACL = FmodeACL;
19
- this.Relation = FmodeRelation;
20
- // 绑定当前实例到静态类
21
- FmodeObject.bindInstance(this);
22
- FmodeQuery.bindInstance(this);
23
- FmodeUser.bindInstance(this);
24
- FmodeGeoPoint.bindInstance(this);
25
- FmodeRelation.bindInstance(this);
26
- FmodeFile.bindInstance(this);
27
- FmodeACL.bindInstance(this);
28
- }
29
- static initialize(config) {
30
- let instance;
31
- if (typeof config === 'string') {
32
- // 简单初始化 - 设置默认实例
33
- let devServerUrl = "https://dev.fmode.cn/parse";
34
- if (typeof location !== 'undefined' && location.protocol === "http:") {
35
- devServerUrl = "http://dev.fmode.cn:1337/parse";
36
- }
37
- instance = new FmodeParse({
38
- appId: config,
39
- serverURL: devServerUrl
40
- });
41
- this._defaultInstance = instance;
42
- this._instances['default'] = instance;
43
- }
44
- else {
45
- // 多配置初始化
46
- instance = new FmodeParse(config);
47
- if (config.config) {
48
- // 如果有指定config名称,则存储为命名实例
49
- this._instances[config.config] = instance;
50
- }
51
- // 如果没有指定config名称,或者config名称为'default',则设为默认实例
52
- if (!config.config || config.config === 'default') {
53
- this._defaultInstance = instance;
54
- }
55
- }
56
- return instance;
57
- }
58
- static with(configName) {
59
- return this._instances[configName] || this._defaultInstance;
60
- }
61
- get serverURL() {
62
- return this.config.serverURL;
63
- }
64
- set serverURL(url) {
65
- this.config.serverURL = url;
66
- }
67
- get appId() {
68
- return this.config.appId;
69
- }
70
- }
71
- // 兼容旧版全局用法
72
- const defaultExport = new Proxy(FmodeParse, {
73
- apply(target, thisArg, args) {
74
- return FmodeParse.initialize.apply(target, args);
75
- },
76
- get(target, prop) {
77
- if (prop in target) {
78
- return target[prop];
79
- }
80
- return FmodeParse.with('default')[prop];
81
- }
82
- });
83
- export { FmodeParse as default, defaultExport as FmodeParse };
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm1vZGUucGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL2NvcmUvcGFyc2UvZm1vZGUucGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekMsTUFBTSxVQUFVO2FBQ0MsZUFBVSxHQUErQixFQUFFLENBQUM7YUFDNUMscUJBQWdCLEdBQXNCLElBQUksQ0FBQztJQVUxRCxZQUEyQixNQUFtQjtRQUFuQixXQUFNLEdBQU4sTUFBTSxDQUFhO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO1FBRTlCLGFBQWE7UUFDYixXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLFVBQVUsQ0FBQyxZQUFZLENBQUMs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dGVudCI6WyJpbXBvcnQgeyBGbW9kZUFDTCB9IGZyb20gJy4vZGF0YXR5cGUvYWNsJztcclxuaW1wb3J0IHsgRm1vZGVGaWxlIH0gZnJvbSAnLi9kYXRhdHlwZS9maWxlJztcclxuaW1wb3J0IHsgRm1vZGVHZW9Qb2ludCB9IGZyb20gJy4vZGF0YXR5cGUvZ2VvcG9pbnQnO1xyXG5pbXBvcnQgeyBGbW9kZVJlbGF0aW9uIH0gZnJvbSAnLi9kYXRhdHlwZS9yZWxhdGlvbic7XHJcbmltcG9ydCB7IEZtb2RlT2JqZWN0IH0gZnJvbSAnLi9mbW9kZS5vYmplY3QnO1xyXG5pbXBvcnQgeyBGbW9kZVF1ZXJ5IH0gZnJvbSAnLi9mbW9kZS5xdWVyeSc7XHJcbmltcG9ydCB7IEZtb2RlVXNlciB9IGZyb20gJy4vZm1vZGUudXNlcic7XHJcbmltcG9ydCB7IEZtb2RlQ29uZmlnLCBGbW9kZUluaXRPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XHJcblxyXG5jbGFzcyBGbW9kZVBhcnNlIHtcclxuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2VzOiBSZWNvcmQ8c3RyaW5nLCBGbW9kZVBhcnNlPiA9IHt9O1xyXG4gIHByaXZhdGUgc3RhdGljIF9kZWZhdWx0SW5zdGFuY2U6IEZtb2RlUGFyc2UgfCBudWxsID0gbnVsbDtcclxuICBcclxuICBwdWJsaWMgcmVhZG9ubHkgT2JqZWN0OiB0eXBlb2YgRm1vZGVPYmplY3Q7XHJcbiAgcHVibGljIHJlYWRvbmx5IFF1ZXJ5OiB0eXBlb2YgRm1vZGVRdWVyeTtcclxuICBwdWJsaWMgcmVhZG9ubHkgVXNlcjogdHlwZW9mIEZtb2RlVXNlcjtcclxuICBwdWJsaWMgcmVhZG9ubHkgRmlsZTogdHlwZW9mIEZtb2RlRmlsZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgUmVsYXRpb246IHR5cGVvZiBGbW9kZVJlbGF0aW9uO1xyXG4gIHB1YmxpYyByZWFkb25seSBBQ0w6IHR5cGVvZiBGbW9kZUFDTDtcclxuICBwdWJsaWMgcmVhZG9ubHkgR2VvUG9pbnQ6IHR5cGVvZiBGbW9kZUdlb1BvaW50O1xyXG4gIFxyXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHVibGljIGNvbmZpZzogRm1vZGVDb25maWcpIHtcclxuICAgIHRoaXMuT2JqZWN0ID0gRm1vZGVPYmplY3Q7XHJcbiAgICB0aGlzLlF1ZXJ5ID0gRm1vZGVRdWVyeTtcclxuICAgIHRoaXMuVXNlciA9IEZtb2RlVXNlcjtcclxuICAgIHRoaXMuR2VvUG9pbnQgPSBGbW9kZUdlb1BvaW50O1xyXG4gICAgdGhpcy5GaWxlID0gRm1vZGVGaWxlO1xyXG4gICAgdGhpcy5BQ0wgPSBGbW9kZUFDTDtcclxuICAgIHRoaXMuUmVsYXRpb24gPSBGbW9kZVJlbGF0aW9uO1xyXG4gICAgXHJcbiAgICAvLyDnu5HlrprlvZPliY3lrp7kvovliLDpnZnmgIHnsbtcclxuICAgIEZtb2RlT2JqZWN0LmJpbmRJbnN0YW5jZSh0aGlzKTtcclxuICAgIEZtb2RlUXVlcnkuYmluZEluc3RhbmNlKHRoaXMpO1xyXG4gICAgRm1vZGVVc2VyLmJpbmRJbnN0YW5jZSh0aGlzKTtcclxuICAgIEZtb2RlR2VvUG9pbnQuYmluZEluc3RhbmNlKHRoaXMpO1xyXG4gICAgRm1vZGVSZWxhdGlvbi5iaW5kSW5zdGFuY2UodGhpcyk7XHJcbiAgICBGbW9kZUZpbGUuYmluZEluc3RhbmNlKHRoaXMpO1xyXG4gICAgRm1vZGVBQ0wuYmluZEluc3RhbmNlKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGluaXRpYWxpemUoY29uZmlnOiBzdHJpbmcgfCBGbW9kZUluaXRPcHRpb25zKTogRm1vZGVQYXJzZSB7XHJcbiAgICBsZXQgaW5zdGFuY2U6IEZtb2RlUGFyc2U7XHJcbiAgICBcclxuICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xyXG4gICAgICAvLyDnroDljZXliJ3lp4vljJYgLSDorr7nva7pu5jorqTlrp7kvotcclxuICAgICAgbGV0IGRldlNlcnZlclVybCA9IFwiaHR0cHM6Ly9kZXYuZm1vZGUuY24vcGFyc2VcIlxyXG4gICAgICBpZih0eXBlb2YgbG9jYXRpb24gIT09ICd1bmRlZmluZWQnICYmIGxvY2F0aW9uLnByb3RvY29sID09PSBcImh0dHA6XCIpe1xyXG4gICAgICAgIGRldlNlcnZlclVybCA9IFwiaHR0cDovL2Rldi5mbW9kZS5jbjoxMzM3L3BhcnNlXCJcclxuICAgICAgfVxyXG4gICAgICBpbnN0YW5jZSA9IG5ldyBGbW9kZVBhcnNlKHtcclxuICAgICAgICBhcHBJZDogY29uZmlnLFxyXG4gICAgICAgIHNlcnZlclVSTDogZGV2U2VydmVyVXJsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLl9kZWZhdWx0SW5zdGFuY2UgPSBpbnN0YW5jZTtcclxuICAgICAgdGhpcy5faW5zdGFuY2VzWydkZWZhdWx0J10gPSBpbnN0YW5jZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIOWkmumFjee9ruWIneWni+WMllxyXG4gICAgICBpbnN0YW5jZSA9IG5ldyBGbW9kZVBhcnNlKGNvbmZpZyk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAoY29uZmlnLmNvbmZpZykge1xyXG4gICAgICAgIC8vIOWmguaenOacieaMh+WummNvbmZpZ+WQjeensO+8jOWImeWtmOWCqOS4uuWRveWQjeWunuS+i1xyXG4gICAgICAgIHRoaXMuX2luc3RhbmNlc1tjb25maWcuY29uZmlnXSA9IGluc3RhbmNlO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAvLyDlpoLmnpzmsqHmnInmjIflrppjb25maWflkI3np7DvvIzmiJbogIVjb25maWflkI3np7DkuLonZGVmYXVsdCfvvIzliJnorr7kuLrpu5jorqTlrp7kvotcclxuICAgICAgaWYgKCFjb25maWcuY29uZmlnIHx8IGNvbmZpZy5jb25maWcgPT09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgIHRoaXMuX2RlZmF1bHRJbnN0YW5jZSA9IGluc3RhbmNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHJldHVybiBpbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyB3aXRoKGNvbmZpZ05hbWU6IHN0cmluZyk6IEZtb2RlUGFyc2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlc1tjb25maWdOYW1lXSB8fCB0aGlzLl9kZWZhdWx0SW5zdGFuY2UhO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlcnZlclVSTCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5zZXJ2ZXJVUkw7XHJcbiAgfVxyXG5cclxuICBzZXQgc2VydmVyVVJMKHVybDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNvbmZpZy5zZXJ2ZXJVUkwgPSB1cmw7XHJcbiAgfVxyXG5cclxuICBnZXQgYXBwSWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuYXBwSWQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyDlhbzlrrnml6fniYjlhajlsYDnlKjms5VcclxuY29uc3QgZGVmYXVsdEV4cG9ydCA9IG5ldyBQcm94eShGbW9kZVBhcnNlLCB7XHJcbiAgYXBwbHkodGFyZ2V0LCB0aGlzQXJnLCBhcmdzKSB7XHJcbiAgICByZXR1cm4gRm1vZGVQYXJzZS5pbml0aWFsaXplLmFwcGx5KHRhcmdldCwgYXJncyk7XHJcbiAgfSxcclxuICBnZXQodGFyZ2V0LCBwcm9wKSB7XHJcbiAgICBpZiAocHJvcCBpbiB0YXJnZXQpIHtcclxuICAgICAgcmV0dXJuICh0YXJnZXQgYXMgYW55KVtwcm9wXTtcclxuICAgIH1cclxuICAgIHJldHVybiBGbW9kZVBhcnNlLndpdGgoJ2RlZmF1bHQnKVtwcm9wXTtcclxuICB9XHJcbn0pIGFzIHR5cGVvZiBGbW9kZVBhcnNlICYge1xyXG4gIE9iamVjdDogdHlwZW9mIEZtb2RlT2JqZWN0O1xyXG4gIFF1ZXJ5OiB0eXBlb2YgRm1vZGVRdWVyeTtcclxuICBVc2VyOiB0eXBlb2YgRm1vZGVVc2VyO1xyXG4gIEFDTDogdHlwZW9mIEZtb2RlQUNMO1xyXG4gIFJlbGF0aW9uOiB0eXBlb2YgRm1vZGVSZWxhdGlvbjtcclxuICBHZW9Qb2ludDogdHlwZW9mIEZtb2RlR2VvUG9pbnQ7XHJcbiAgRmlsZTogdHlwZW9mIEZtb2RlRmlsZTtcclxufTtcclxuXHJcbmV4cG9ydCB7IEZtb2RlUGFyc2UgYXMgZGVmYXVsdCwgZGVmYXVsdEV4cG9ydCBhcyBGbW9kZVBhcnNlIH07Il19
1
+
2
+ /**
3
+ * @copyright © 未来飞马 © 未来全栈 www.fmode.cn
4
+ * 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.
5
+ * 保留所有权利 All Rights Reserved.
6
+ * /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/esm2022/lib/core/parse/fmode.parse.mjs
7
+ */
8
+ import{FmodeACL}from"./datatype/acl";import{FmodeFile}from"./datatype/file";import{FmodeGeoPoint}from"./datatype/geopoint";import{FmodeRelation}from"./datatype/relation";import{FmodeObject}from"./fmode.object";import{FmodeQuery}from"./fmode.query";import{FmodeUser}from"./fmode.user";import{FmodeCloud}from"./fmode.cloud";class FmodeParse{static{this._instances={}}static{this._defaultInstance=null}constructor(e){this.config=e,this.Object=FmodeObject,this.Query=FmodeQuery,this.User=FmodeUser,this.GeoPoint=FmodeGeoPoint,this.File=FmodeFile,this.ACL=FmodeACL,this.Relation=FmodeRelation,this.Cloud=FmodeCloud.getInstance(),FmodeObject.bindInstance(this),FmodeQuery.bindInstance(this),FmodeUser.bindInstance(this),FmodeGeoPoint.bindInstance(this),FmodeRelation.bindInstance(this),FmodeFile.bindInstance(this),FmodeACL.bindInstance(this),this.Cloud.bindInstance(this.config)}static initialize(e){let t;if("string"==typeof e){let o="http://dev.fmode.cn:1337/parse";"undefined"!=typeof location&&"https:"===location.protocol&&(o="https://dev.fmode.cn/parse"),t=new FmodeParse({appId:e,serverURL:o}),this._defaultInstance=t,this._instances.default=t}else t=new FmodeParse(e),e.config&&(this._instances[e.config]=t),e.config&&"default"!==e.config||(this._defaultInstance=t);return t}static with(e){let t=new FmodeParse({appId:"ncloudmaster",serverURL:"https://server.fmode.cn/parse"});return this._instances.nova=t,this._instances[e]||this._defaultInstance}get serverURL(){return this.config.serverURL}set serverURL(e){this.config.serverURL=e}get appId(){return this.config.appId}get sessionToken(){if(this.config.sessionToken)return this.config.sessionToken;const e=this.User.current();return e?.sessionToken}set sessionToken(e){this.config.sessionToken=e}}!function(e){e.Object=FmodeObject,e.Query=FmodeQuery,e.User=FmodeUser,e.File=FmodeFile,e.Relation=FmodeRelation,e.ACL=FmodeACL,e.GeoPoint=FmodeGeoPoint,e.Cloud=FmodeCloud.getInstance()}(FmodeParse||(FmodeParse={}));const defaultExport=new Proxy(FmodeParse,{apply:(e,t,o)=>FmodeParse.initialize.apply(e,o),get:(e,t)=>t in e?e[t]:t in FmodeParse?FmodeParse[t]:FmodeParse.with("default")[t]});export{FmodeParse as default,defaultExport as FmodeParse};
9
+ var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9jb3JlL3BhcnNlL2Ztb2RlLnBhcnNlLm1qcw==`
10
+