@linyjs/plugin-docs 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/README.md +137 -0
  2. package/docs/api-reference/index.md +361 -0
  3. package/docs/best-practices/error-handling.md +462 -0
  4. package/docs/best-practices/naming-conventions.md +496 -0
  5. package/docs/best-practices/performance.md +532 -0
  6. package/docs/best-practices/security.md +620 -0
  7. package/docs/best-practices/service-definition.md +332 -0
  8. package/docs/faq.md +322 -0
  9. package/docs/getting-started/first-plugin.md +358 -0
  10. package/docs/getting-started/installation.md +244 -0
  11. package/docs/getting-started/quick-start.md +235 -0
  12. package/docs/guides/authentication.md +428 -0
  13. package/docs/guides/client-module.md +604 -0
  14. package/docs/guides/data-persistence.md +640 -0
  15. package/docs/guides/permissions.md +440 -0
  16. package/docs/guides/server-module.md +377 -0
  17. package/docs/guides/ui-slots.md +475 -0
  18. package/docs/migration/v0-to-v1.md +354 -0
  19. package/examples/analytics-plugin/README.md +416 -0
  20. package/examples/analytics-plugin/dist/client/index.d.ts +36 -0
  21. package/examples/analytics-plugin/dist/client/index.js +173 -0
  22. package/examples/analytics-plugin/dist/index.d.ts +64 -0
  23. package/examples/analytics-plugin/dist/index.js +72 -0
  24. package/examples/analytics-plugin/dist/server/index.d.ts +119 -0
  25. package/examples/analytics-plugin/dist/server/index.js +313 -0
  26. package/examples/analytics-plugin/package.json +28 -0
  27. package/examples/analytics-plugin/src/client/index.tsx +414 -0
  28. package/examples/analytics-plugin/src/index.ts +71 -0
  29. package/examples/analytics-plugin/src/server/index.ts +349 -0
  30. package/examples/analytics-plugin/tsconfig.json +21 -0
  31. package/examples/blog-plugin/README.md +319 -0
  32. package/examples/blog-plugin/dist/client/index.d.ts +22 -0
  33. package/examples/blog-plugin/dist/client/index.js +197 -0
  34. package/examples/blog-plugin/dist/server/index.d.ts +5 -0
  35. package/examples/blog-plugin/dist/server/index.js +220 -0
  36. package/examples/blog-plugin/package.json +24 -0
  37. package/examples/blog-plugin/src/client/index.tsx +409 -0
  38. package/examples/blog-plugin/src/server/index.ts +240 -0
  39. package/examples/blog-plugin/tsconfig.json +16 -0
  40. package/examples/hello-world/README.md +101 -0
  41. package/examples/hello-world/dist/client/index.d.ts +5 -0
  42. package/examples/hello-world/dist/client/index.js +80 -0
  43. package/examples/hello-world/dist/server/index.d.ts +5 -0
  44. package/examples/hello-world/dist/server/index.js +38 -0
  45. package/examples/hello-world/node_modules/.package-lock.json +61 -0
  46. package/examples/hello-world/node_modules/@linyjs/client-module-interface/HOOKS_USAGE.md +281 -0
  47. package/examples/hello-world/node_modules/@linyjs/client-module-interface/IMPLEMENTATION_SUMMARY.md +166 -0
  48. package/examples/hello-world/node_modules/@linyjs/client-module-interface/QUICK_REFERENCE.md +130 -0
  49. package/examples/hello-world/node_modules/@linyjs/client-module-interface/README.md +214 -0
  50. package/examples/hello-world/node_modules/@linyjs/client-module-interface/package.json +26 -0
  51. package/examples/hello-world/node_modules/@linyjs/client-module-interface/src/application.ts +50 -0
  52. package/examples/hello-world/node_modules/@linyjs/client-module-interface/src/comparison-example.tsx +229 -0
  53. package/examples/hello-world/node_modules/@linyjs/client-module-interface/src/di.ts +127 -0
  54. package/examples/hello-world/node_modules/@linyjs/client-module-interface/src/domain.ts +52 -0
  55. package/examples/hello-world/node_modules/@linyjs/client-module-interface/src/hooks-example.tsx +275 -0
  56. package/examples/hello-world/node_modules/@linyjs/client-module-interface/src/hooks.ts +175 -0
  57. package/examples/hello-world/node_modules/@linyjs/client-module-interface/src/index.ts +87 -0
  58. package/examples/hello-world/node_modules/@linyjs/client-module-interface/src/interfaces.ts +117 -0
  59. package/examples/hello-world/node_modules/@linyjs/client-module-interface/src/router.ts +49 -0
  60. package/examples/hello-world/node_modules/@linyjs/client-module-interface/tsconfig.json +10 -0
  61. package/examples/hello-world/node_modules/@linyjs/server-module-interface/package.json +21 -0
  62. package/examples/hello-world/node_modules/@linyjs/server-module-interface/src/application.ts +21 -0
  63. package/examples/hello-world/node_modules/@linyjs/server-module-interface/src/di.ts +127 -0
  64. package/examples/hello-world/node_modules/@linyjs/server-module-interface/src/domain.ts +75 -0
  65. package/examples/hello-world/node_modules/@linyjs/server-module-interface/src/index.ts +55 -0
  66. package/examples/hello-world/node_modules/@linyjs/server-module-interface/src/interfaces.ts +58 -0
  67. package/examples/hello-world/node_modules/@linyjs/server-module-interface/tsconfig.json +8 -0
  68. package/examples/hello-world/node_modules/@types/react/LICENSE +21 -0
  69. package/examples/hello-world/node_modules/@types/react/README.md +15 -0
  70. package/examples/hello-world/node_modules/@types/react/canary.d.ts +129 -0
  71. package/examples/hello-world/node_modules/@types/react/compiler-runtime.d.ts +4 -0
  72. package/examples/hello-world/node_modules/@types/react/experimental.d.ts +184 -0
  73. package/examples/hello-world/node_modules/@types/react/global.d.ts +166 -0
  74. package/examples/hello-world/node_modules/@types/react/index.d.ts +4369 -0
  75. package/examples/hello-world/node_modules/@types/react/jsx-dev-runtime.d.ts +33 -0
  76. package/examples/hello-world/node_modules/@types/react/jsx-runtime.d.ts +24 -0
  77. package/examples/hello-world/node_modules/@types/react/package.json +210 -0
  78. package/examples/hello-world/node_modules/@types/react/ts5.0/canary.d.ts +129 -0
  79. package/examples/hello-world/node_modules/@types/react/ts5.0/experimental.d.ts +184 -0
  80. package/examples/hello-world/node_modules/@types/react/ts5.0/global.d.ts +166 -0
  81. package/examples/hello-world/node_modules/@types/react/ts5.0/index.d.ts +4356 -0
  82. package/examples/hello-world/node_modules/@types/react/ts5.0/jsx-dev-runtime.d.ts +33 -0
  83. package/examples/hello-world/node_modules/@types/react/ts5.0/jsx-runtime.d.ts +24 -0
  84. package/examples/hello-world/node_modules/csstype/LICENSE +19 -0
  85. package/examples/hello-world/node_modules/csstype/README.md +291 -0
  86. package/examples/hello-world/node_modules/csstype/index.d.ts +22569 -0
  87. package/examples/hello-world/node_modules/csstype/index.js.flow +6863 -0
  88. package/examples/hello-world/node_modules/csstype/package.json +70 -0
  89. package/examples/hello-world/node_modules/react/LICENSE +21 -0
  90. package/examples/hello-world/node_modules/react/README.md +37 -0
  91. package/examples/hello-world/node_modules/react/cjs/react-compiler-runtime.development.js +24 -0
  92. package/examples/hello-world/node_modules/react/cjs/react-compiler-runtime.production.js +16 -0
  93. package/examples/hello-world/node_modules/react/cjs/react-compiler-runtime.profiling.js +16 -0
  94. package/examples/hello-world/node_modules/react/cjs/react-jsx-dev-runtime.development.js +338 -0
  95. package/examples/hello-world/node_modules/react/cjs/react-jsx-dev-runtime.production.js +14 -0
  96. package/examples/hello-world/node_modules/react/cjs/react-jsx-dev-runtime.profiling.js +14 -0
  97. package/examples/hello-world/node_modules/react/cjs/react-jsx-dev-runtime.react-server.development.js +370 -0
  98. package/examples/hello-world/node_modules/react/cjs/react-jsx-dev-runtime.react-server.production.js +40 -0
  99. package/examples/hello-world/node_modules/react/cjs/react-jsx-runtime.development.js +352 -0
  100. package/examples/hello-world/node_modules/react/cjs/react-jsx-runtime.production.js +34 -0
  101. package/examples/hello-world/node_modules/react/cjs/react-jsx-runtime.profiling.js +34 -0
  102. package/examples/hello-world/node_modules/react/cjs/react-jsx-runtime.react-server.development.js +370 -0
  103. package/examples/hello-world/node_modules/react/cjs/react-jsx-runtime.react-server.production.js +40 -0
  104. package/examples/hello-world/node_modules/react/cjs/react.development.js +1284 -0
  105. package/examples/hello-world/node_modules/react/cjs/react.production.js +542 -0
  106. package/examples/hello-world/node_modules/react/cjs/react.react-server.development.js +848 -0
  107. package/examples/hello-world/node_modules/react/cjs/react.react-server.production.js +423 -0
  108. package/examples/hello-world/node_modules/react/compiler-runtime.js +14 -0
  109. package/examples/hello-world/node_modules/react/index.js +7 -0
  110. package/examples/hello-world/node_modules/react/jsx-dev-runtime.js +7 -0
  111. package/examples/hello-world/node_modules/react/jsx-dev-runtime.react-server.js +7 -0
  112. package/examples/hello-world/node_modules/react/jsx-runtime.js +7 -0
  113. package/examples/hello-world/node_modules/react/jsx-runtime.react-server.js +7 -0
  114. package/examples/hello-world/node_modules/react/package.json +51 -0
  115. package/examples/hello-world/node_modules/react/react.react-server.js +7 -0
  116. package/examples/hello-world/node_modules/typescript/LICENSE.txt +55 -0
  117. package/examples/hello-world/node_modules/typescript/README.md +50 -0
  118. package/examples/hello-world/node_modules/typescript/SECURITY.md +41 -0
  119. package/examples/hello-world/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
  120. package/examples/hello-world/node_modules/typescript/bin/tsc +2 -0
  121. package/examples/hello-world/node_modules/typescript/bin/tsserver +2 -0
  122. package/examples/hello-world/node_modules/typescript/lib/_tsc.js +133818 -0
  123. package/examples/hello-world/node_modules/typescript/lib/_tsserver.js +659 -0
  124. package/examples/hello-world/node_modules/typescript/lib/_typingsInstaller.js +222 -0
  125. package/examples/hello-world/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
  126. package/examples/hello-world/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
  127. package/examples/hello-world/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
  128. package/examples/hello-world/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
  129. package/examples/hello-world/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
  130. package/examples/hello-world/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
  131. package/examples/hello-world/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
  132. package/examples/hello-world/node_modules/typescript/lib/lib.d.ts +22 -0
  133. package/examples/hello-world/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
  134. package/examples/hello-world/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
  135. package/examples/hello-world/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
  136. package/examples/hello-world/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
  137. package/examples/hello-world/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
  138. package/examples/hello-world/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
  139. package/examples/hello-world/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
  140. package/examples/hello-world/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
  141. package/examples/hello-world/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
  142. package/examples/hello-world/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
  143. package/examples/hello-world/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
  144. package/examples/hello-world/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
  145. package/examples/hello-world/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
  146. package/examples/hello-world/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
  147. package/examples/hello-world/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
  148. package/examples/hello-world/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
  149. package/examples/hello-world/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
  150. package/examples/hello-world/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
  151. package/examples/hello-world/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
  152. package/examples/hello-world/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
  153. package/examples/hello-world/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
  154. package/examples/hello-world/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
  155. package/examples/hello-world/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
  156. package/examples/hello-world/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
  157. package/examples/hello-world/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
  158. package/examples/hello-world/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
  159. package/examples/hello-world/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
  160. package/examples/hello-world/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
  161. package/examples/hello-world/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
  162. package/examples/hello-world/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
  163. package/examples/hello-world/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
  164. package/examples/hello-world/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
  165. package/examples/hello-world/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
  166. package/examples/hello-world/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
  167. package/examples/hello-world/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
  168. package/examples/hello-world/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
  169. package/examples/hello-world/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
  170. package/examples/hello-world/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
  171. package/examples/hello-world/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
  172. package/examples/hello-world/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
  173. package/examples/hello-world/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
  174. package/examples/hello-world/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
  175. package/examples/hello-world/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
  176. package/examples/hello-world/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
  177. package/examples/hello-world/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
  178. package/examples/hello-world/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
  179. package/examples/hello-world/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
  180. package/examples/hello-world/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
  181. package/examples/hello-world/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
  182. package/examples/hello-world/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
  183. package/examples/hello-world/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
  184. package/examples/hello-world/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
  185. package/examples/hello-world/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
  186. package/examples/hello-world/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
  187. package/examples/hello-world/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
  188. package/examples/hello-world/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
  189. package/examples/hello-world/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
  190. package/examples/hello-world/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
  191. package/examples/hello-world/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
  192. package/examples/hello-world/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
  193. package/examples/hello-world/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
  194. package/examples/hello-world/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
  195. package/examples/hello-world/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
  196. package/examples/hello-world/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
  197. package/examples/hello-world/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
  198. package/examples/hello-world/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
  199. package/examples/hello-world/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
  200. package/examples/hello-world/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
  201. package/examples/hello-world/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
  202. package/examples/hello-world/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
  203. package/examples/hello-world/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
  204. package/examples/hello-world/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
  205. package/examples/hello-world/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
  206. package/examples/hello-world/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
  207. package/examples/hello-world/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
  208. package/examples/hello-world/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
  209. package/examples/hello-world/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
  210. package/examples/hello-world/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
  211. package/examples/hello-world/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
  212. package/examples/hello-world/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
  213. package/examples/hello-world/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
  214. package/examples/hello-world/node_modules/typescript/lib/lib.es6.d.ts +23 -0
  215. package/examples/hello-world/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
  216. package/examples/hello-world/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
  217. package/examples/hello-world/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
  218. package/examples/hello-world/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
  219. package/examples/hello-world/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
  220. package/examples/hello-world/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
  221. package/examples/hello-world/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
  222. package/examples/hello-world/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
  223. package/examples/hello-world/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
  224. package/examples/hello-world/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
  225. package/examples/hello-world/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
  226. package/examples/hello-world/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
  227. package/examples/hello-world/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
  228. package/examples/hello-world/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
  229. package/examples/hello-world/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
  230. package/examples/hello-world/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
  231. package/examples/hello-world/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
  232. package/examples/hello-world/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
  233. package/examples/hello-world/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
  234. package/examples/hello-world/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
  235. package/examples/hello-world/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
  236. package/examples/hello-world/node_modules/typescript/lib/tsc.js +8 -0
  237. package/examples/hello-world/node_modules/typescript/lib/tsserver.js +8 -0
  238. package/examples/hello-world/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
  239. package/examples/hello-world/node_modules/typescript/lib/tsserverlibrary.js +21 -0
  240. package/examples/hello-world/node_modules/typescript/lib/typesMap.json +497 -0
  241. package/examples/hello-world/node_modules/typescript/lib/typescript.d.ts +11437 -0
  242. package/examples/hello-world/node_modules/typescript/lib/typescript.js +200276 -0
  243. package/examples/hello-world/node_modules/typescript/lib/typingsInstaller.js +8 -0
  244. package/examples/hello-world/node_modules/typescript/lib/watchGuard.js +53 -0
  245. package/examples/hello-world/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
  246. package/examples/hello-world/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
  247. package/examples/hello-world/node_modules/typescript/package.json +120 -0
  248. package/examples/hello-world/package-lock.json +74 -0
  249. package/examples/hello-world/package.json +23 -0
  250. package/examples/hello-world/src/client/index.tsx +110 -0
  251. package/examples/hello-world/src/server/index.ts +42 -0
  252. package/examples/hello-world/tsconfig.json +16 -0
  253. package/package.json +46 -0
  254. package/src/cli.ts +321 -0
package/README.md ADDED
@@ -0,0 +1,137 @@
1
+ # @linyjs/plugin-docs
2
+
3
+ **适用于 linyjs v0.x**
4
+
5
+ 查看其他版本: [v1.x](link) | [v2.x](link)
6
+
7
+ ## 📖 简介
8
+
9
+ `@linyjs/plugin-docs` 是 linyjs 框架的官方插件开发文档和示例包,提供:
10
+
11
+ - ✅ **结构化文档** - 从入门到进阶的完整教程
12
+ - ✅ **可运行示例** - 3个完整的插件示例项目
13
+ - ✅ **API参考** - 详细的接口文档和类型定义
14
+ - ✅ **最佳实践** - 行业标准的开发规范
15
+
16
+ ## 🚀 快速开始
17
+
18
+ ### 安装
19
+
20
+ ```bash
21
+ npm install @linyjs/plugin-docs
22
+ ```
23
+
24
+ ### 访问文档
25
+
26
+ 文档位于 `node_modules/@linyjs/plugin-docs/docs/` 目录:
27
+
28
+ ```bash
29
+ # 查看入门教程
30
+ cat node_modules/@linyjs/plugin-docs/docs/getting-started/quick-start.md
31
+
32
+ # 查看API参考
33
+ ls node_modules/@linyjs/plugin-docs/docs/api-reference/
34
+ ```
35
+
36
+ ### 快速创建插件项目
37
+
38
+ 使用 CLI 工具创建新的插件项目:
39
+
40
+ ```bash
41
+ # 创建新的插件项目
42
+ npx @linyjs/cli init my-plugin
43
+ cd my-plugin
44
+ npm install
45
+
46
+ # 进入开发模式
47
+ npx @linyjs/cli dev
48
+ ```
49
+
50
+ CLI 工具会自动创建完整的项目结构,包含 package.json、TypeScript 配置和示例代码。
51
+
52
+ ### 生成示例项目
53
+
54
+ 使用 CLI 工具生成示例项目:
55
+
56
+ ```bash
57
+ # 生成 Hello World 示例
58
+ npx @linyjs/cli example hello-world
59
+
60
+ # 生成博客插件示例
61
+ npx @linyjs/cli example blog-plugin -o ./my-blog
62
+ ```
63
+
64
+ ## 📚 文档结构
65
+
66
+ ```
67
+ docs/
68
+ ├── getting-started/ # 入门教程
69
+ │ ├── quick-start.md # 快速开始
70
+ │ ├── installation.md # 安装指南
71
+ │ └── first-plugin.md # 第一个插件
72
+ ├── guides/ # 进阶指南
73
+ │ ├── server-module.md # 服务端模块
74
+ │ ├── client-module.md # 客户端模块
75
+ │ ├── ui-slots.md # UI扩展插槽
76
+ │ ├── permissions.md # 权限管理
77
+ │ ├── data-persistence.md # 数据持久化
78
+ │ └── authentication.md # 用户认证
79
+ ├── api-reference/ # API参考
80
+ │ ├── server-interface.md
81
+ │ ├── client-interface.md
82
+ │ └── ui-slots-interface.md
83
+ ├── best-practices/ # 最佳实践
84
+ │ ├── naming-conventions.md
85
+ │ ├── service-definition.md # ServiceDef 代码风格规范
86
+ │ ├── error-handling.md
87
+ │ ├── performance.md
88
+ │ └── security.md
89
+ └── faq.md # 常见问题
90
+ ```
91
+
92
+ ## 💡 示例项目
93
+
94
+ ```
95
+ examples/
96
+ ├── hello-world/ # 最简示例(一个API + 一个页面)
97
+ ├── blog-plugin/ # 完整博客插件(CRUD + 权限)
98
+ └── analytics-plugin/ # 数据分析插件(定时任务 + 可视化)
99
+ ```
100
+
101
+ 每个示例都是完整的、可独立运行的插件项目,包含:
102
+ - 完整的 TypeScript 代码
103
+ - package.json 和 tsconfig.json 配置
104
+ - 详细的 README 说明
105
+ - 可直接打包为 .mpk 文件
106
+
107
+ ## 🔧 核心模块
108
+
109
+ linyjs 提供了以下核心模块,插件可以通过依赖注入方式调用这些基础服务:
110
+
111
+ ### @linyjs/mdb
112
+ **MongoDB 数据库服务**
113
+ - 提供数据持久化存储
114
+ - 支持 CRUD 操作和复杂查询
115
+ - 详情:[数据持久化指南](./docs/guides/data-persistence.md)
116
+
117
+ ### @linyjs/auth
118
+ **用户认证系统**
119
+ - 支持用户注册、登录、Token 验证
120
+ - 提供 JWT 身份验证
121
+ - 详情:[认证指南](./docs/guides/authentication.md)
122
+
123
+ ### @linyjs/permission
124
+ **权限管理系统**
125
+ - 基于角色的访问控制(RBAC)
126
+ - 细粒度的权限定义
127
+ - 详情:[权限管理指南](./docs/guides/permissions.md)
128
+
129
+ ## 📖 核心模块指南
130
+
131
+ - 💾 [数据持久化](./docs/guides/data-persistence.md) - 使用 @linyjs/mdb
132
+ - 🔐 [用户认证](./docs/guides/authentication.md) - 使用 @linyjs/auth
133
+ - 🛡️ [权限管理](./docs/guides/permissions.md) - 使用 @linyjs/permission
134
+
135
+ ## 📄 许可证
136
+
137
+ MIT License
@@ -0,0 +1,361 @@
1
+ # API 参考
2
+
3
+ 本章节提供 linyjs 框架核心接口的详细文档。
4
+
5
+ ## 服务端接口
6
+
7
+ ### IModule
8
+
9
+ 服务端模块的基础接口。
10
+
11
+ ```typescript
12
+ interface IModule {
13
+ name: string;
14
+ moduleDependencies?: string[];
15
+ serviceDefs: IServiceDef[];
16
+ }
17
+ ```
18
+
19
+ **字段说明:**
20
+
21
+ | 字段 | 类型 | 必填 | 说明 |
22
+ |------|------|------|------|
23
+ | `name` | string | ✅ | 模块唯一标识符 |
24
+ | `moduleDependencies` | string[] | ❌ | 依赖的其他模块 |
25
+ | `serviceDefs` | IServiceDef[] | ✅ | 服务定义列表 |
26
+
27
+ **示例:**
28
+
29
+ ```typescript
30
+ export const myModule: IModule = {
31
+ name: 'myModule',
32
+ moduleDependencies: ['logger'],
33
+ serviceDefs: [/* ... */]
34
+ };
35
+ ```
36
+
37
+ ---
38
+
39
+ ### IServiceDef
40
+
41
+ 服务定义的通用接口。
42
+
43
+ ```typescript
44
+ interface IServiceDef {
45
+ serviceTag: string;
46
+ serviceImpl: any;
47
+ dependencies?: string[];
48
+ meta: ServiceMetadata;
49
+ }
50
+ ```
51
+
52
+ **字段说明:**
53
+
54
+ | 字段 | 类型 | 必填 | 说明 |
55
+ |------|------|------|------|
56
+ | `serviceTag` | string | ✅ | 服务的唯一标签 |
57
+ | `serviceImpl` | class | ✅ | 服务实现类 |
58
+ | `dependencies` | string[] | ❌ | 依赖的其他服务 |
59
+ | `meta` | ServiceMetadata | ✅ | 元数据(包含 usageType) |
60
+
61
+ ---
62
+
63
+ ### IControllerService
64
+
65
+ 控制器服务接口,用于定义 API 路由。
66
+
67
+ ```typescript
68
+ interface IControllerService {
69
+ getRoutes(): IRouteDefinition[];
70
+ }
71
+ ```
72
+
73
+ **方法:**
74
+
75
+ - `getRoutes()` - 返回路由定义数组
76
+
77
+ **示例:**
78
+
79
+ 详见 [服务端模块开发](../guides/server-module.md#控制器controller)
80
+
81
+ ---
82
+
83
+ ### IMiddlewareService
84
+
85
+ 中间件服务接口。
86
+
87
+ ```typescript
88
+ interface IMiddlewareService {
89
+ getMiddlewares(): IMiddlewareDefinition[];
90
+ }
91
+ ```
92
+
93
+ **示例:**
94
+
95
+ 详见 [服务端模块开发](../guides/server-module.md#中间件middleware)
96
+
97
+ ---
98
+
99
+ ### ICronService
100
+
101
+ 定时任务服务接口。
102
+
103
+ ```typescript
104
+ interface ICronService {
105
+ getCronJobs(): ICronJobDefinition[];
106
+ }
107
+ ```
108
+
109
+ **示例:**
110
+
111
+ 详见 [服务端模块开发](../guides/server-module.md#定时任务cron)
112
+
113
+ ---
114
+
115
+ ## 客户端接口
116
+
117
+ ### IModule (Client)
118
+
119
+ 客户端模块的基础接口。
120
+
121
+ ```typescript
122
+ interface IModule {
123
+ name: string;
124
+ serviceDefs: IServiceDef[];
125
+ }
126
+ ```
127
+
128
+ ---
129
+
130
+ ### IRouteService
131
+
132
+ 路由服务接口,用于定义客户端路由。
133
+
134
+ ```typescript
135
+ interface IRouteService {
136
+ basePath?: string;
137
+ getRoutes(): IClientRouteDefinition[];
138
+ }
139
+ ```
140
+
141
+ **字段说明:**
142
+
143
+ | 字段 | 类型 | 必填 | 说明 |
144
+ |------|------|------|------|
145
+ | `basePath` | string | ❌ | 路由前缀 |
146
+ | `getRoutes()` | method | ✅ | 返回路由定义数组 |
147
+
148
+ **示例:**
149
+
150
+ ```typescript
151
+ class MyRouteService implements IRouteService {
152
+ basePath = '/my';
153
+
154
+ getRoutes() {
155
+ return [
156
+ {
157
+ path: '/',
158
+ component: MyPage,
159
+ key: 'my-page',
160
+ meta: { title: 'My Page' }
161
+ }
162
+ ];
163
+ }
164
+ }
165
+ ```
166
+
167
+ ---
168
+
169
+ ### IGlobalStateService
170
+
171
+ 全局状态服务接口。
172
+
173
+ ```typescript
174
+ interface IGlobalStateService {
175
+ atoms: Record<string, any>;
176
+ }
177
+ ```
178
+
179
+ **示例:**
180
+
181
+ ```typescript
182
+ import { atom } from 'jotai';
183
+
184
+ class MyStateService implements IGlobalStateService {
185
+ atoms = {
186
+ myState: atom({ items: [] }),
187
+ selectedItem: atom(null)
188
+ };
189
+ }
190
+ ```
191
+
192
+ ---
193
+
194
+ ### IComponentListService
195
+
196
+ 组件注册服务接口。
197
+
198
+ ```typescript
199
+ interface IComponentListService {
200
+ components: Record<string, React.ComponentType>;
201
+ }
202
+ ```
203
+
204
+ **示例:**
205
+
206
+ ```typescript
207
+ class MyComponentService implements IComponentListService {
208
+ components = {
209
+ MyButton,
210
+ MyCard
211
+ };
212
+ }
213
+ ```
214
+
215
+ ---
216
+
217
+ ### IHooksService
218
+
219
+ Hooks 注册服务接口。
220
+
221
+ ```typescript
222
+ interface IHooksService {
223
+ hooks: Record<string, Function>;
224
+ }
225
+ ```
226
+
227
+ **示例:**
228
+
229
+ ```typescript
230
+ class MyHooksService implements IHooksService {
231
+ hooks = {
232
+ useMyData
233
+ };
234
+ }
235
+ ```
236
+
237
+ ---
238
+
239
+ ## UI 插槽接口
240
+
241
+ ### ISlotComponent
242
+
243
+ UI 扩展插槽组件接口。
244
+
245
+ ```typescript
246
+ interface ISlotComponent {
247
+ id: string;
248
+ position: SlotPosition;
249
+ component: React.ComponentType;
250
+ priority?: number;
251
+ packageName?: string;
252
+ shouldRender?: (context: SlotContext) => boolean;
253
+ }
254
+ ```
255
+
256
+ **字段说明:**
257
+
258
+ | 字段 | 类型 | 必填 | 说明 |
259
+ |------|------|------|------|
260
+ | `id` | string | ✅ | 插槽组件唯一ID |
261
+ | `position` | string | ✅ | 插槽位置 |
262
+ | `component` | React.Component | ✅ | React 组件 |
263
+ | `priority` | number | ❌ | 优先级(0-100+) |
264
+ | `packageName` | string | ❌ | 包名称 |
265
+ | `shouldRender` | function | ❌ | 条件渲染函数 |
266
+
267
+ **可用插槽位置:**
268
+
269
+ - `admin-sidebar` - 管理后台侧边栏
270
+ - `admin-header` - 管理后台顶部导航
271
+ - `admin-dashboard` - 管理后台仪表盘
272
+ - `personal-dashboard` - 个人仪表盘
273
+ - `plugin-marketplace` - 插件市场
274
+
275
+ **示例:**
276
+
277
+ ```typescript
278
+ registry.register({
279
+ id: 'analytics-menu',
280
+ position: 'admin-sidebar',
281
+ component: AnalyticsMenu,
282
+ priority: 50,
283
+ shouldRender: (context) => {
284
+ return context.user?.roles?.includes('admin');
285
+ }
286
+ });
287
+ ```
288
+
289
+ ---
290
+
291
+ ## 响应类型
292
+
293
+ ### JSON Response
294
+
295
+ ```typescript
296
+ {
297
+ responseType: 'json',
298
+ handler: async () => {
299
+ return { message: 'Hello' };
300
+ }
301
+ }
302
+ ```
303
+
304
+ ### File Download
305
+
306
+ ```typescript
307
+ {
308
+ responseType: 'file',
309
+ handler: async () => {
310
+ return {
311
+ filePath: '/path/to/file.pdf',
312
+ filename: 'document.pdf',
313
+ contentType: 'application/pdf'
314
+ };
315
+ }
316
+ }
317
+ ```
318
+
319
+ ### Video Stream
320
+
321
+ ```typescript
322
+ {
323
+ responseType: 'video_stream',
324
+ handler: async (params) => {
325
+ const stream = fs.createReadStream(`/videos/${params.id}.mp4`);
326
+ return stream;
327
+ }
328
+ }
329
+ ```
330
+
331
+ ---
332
+
333
+ ## 基础模块
334
+
335
+ linyjs 框架提供了以下基础模块,插件开发者可以通过依赖注入方式使用:
336
+
337
+ ### 数据库模块
338
+ - **@linyjs/mdb** - MongoDB 数据库服务
339
+ - 提供数据库连接、CRUD 操作、索引管理等功能
340
+ - 详见:[数据持久化指南](../guides/data-persistence.md)
341
+
342
+ ### 认证模块
343
+ - **@linyjs/auth** - 用户认证系统
344
+ - 提供用户注册、登录、Token 验证等功能
345
+ - 详见:[认证指南](../guides/authentication.md)
346
+
347
+ ### 权限模块
348
+ - **@linyjs/permission** - 权限管理系统
349
+ - 提供基于角色的访问控制(RBAC)
350
+ - 详见:[权限管理指南](../guides/permissions.md)
351
+
352
+ ## 相关文档
353
+
354
+ - 📖 [服务端模块开发](../guides/server-module.md)
355
+ - 💻 [客户端模块开发](../guides/client-module.md)
356
+ - 🎨 [UI 扩展插槽](../guides/ui-slots.md)
357
+ - 💾 [基础模块使用指南](../README.md#-核心模块)
358
+
359
+ ---
360
+
361
+ **返回**: [文档首页](../README.md)