@waline/client 1.6.0 → 2.0.0-alpha.2

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 (94) hide show
  1. package/dist/component.js +2 -0
  2. package/dist/component.js.map +1 -0
  3. package/dist/pageview.cjs.js +2 -0
  4. package/dist/pageview.cjs.js.map +1 -0
  5. package/dist/pageview.d.ts +33 -0
  6. package/dist/pageview.esm.js +2 -0
  7. package/dist/pageview.esm.js.map +1 -0
  8. package/dist/pageview.js +2 -0
  9. package/dist/pageview.js.map +1 -0
  10. package/dist/{Waline.min.d.ts → shim.d.ts} +192 -261
  11. package/dist/{Waline.noStyle.d.ts → shim.esm.d.ts} +192 -261
  12. package/dist/shim.esm.js +2 -0
  13. package/dist/shim.esm.js.map +1 -0
  14. package/dist/shim.js +2 -0
  15. package/dist/shim.js.map +1 -0
  16. package/dist/waline.cjs.d.ts +388 -0
  17. package/dist/waline.cjs.js +2 -0
  18. package/dist/waline.cjs.js.map +1 -0
  19. package/dist/waline.css +1 -0
  20. package/dist/waline.css.map +1 -0
  21. package/dist/waline.d.ts +388 -0
  22. package/dist/waline.esm.d.ts +388 -0
  23. package/dist/waline.esm.js +2 -0
  24. package/dist/waline.esm.js.map +1 -0
  25. package/dist/waline.js +2 -0
  26. package/dist/waline.js.map +1 -0
  27. package/package.json +33 -18
  28. package/src/comment.ts +39 -0
  29. package/src/components/CommentBox.vue +667 -0
  30. package/src/components/CommentCard.vue +125 -0
  31. package/src/components/Icons.ts +124 -0
  32. package/src/components/Waline.vue +359 -0
  33. package/src/composables/index.ts +3 -0
  34. package/src/composables/inputs.ts +29 -0
  35. package/src/composables/store.ts +38 -0
  36. package/src/composables/userInfo.ts +27 -0
  37. package/src/config/default.ts +21 -0
  38. package/src/config/i18n/en.ts +34 -0
  39. package/src/config/i18n/generate.ts +39 -0
  40. package/src/config/i18n/index.ts +30 -0
  41. package/src/config/i18n/jp.ts +34 -0
  42. package/src/config/i18n/pt-BR.ts +34 -0
  43. package/src/config/i18n/ru.ts +34 -0
  44. package/src/config/i18n/vi-VN.ts +34 -0
  45. package/src/config/i18n/zh-CN.ts +34 -0
  46. package/src/config/i18n/zh-TW.ts +34 -0
  47. package/src/config/index.ts +2 -0
  48. package/src/entrys/components.ts +2 -0
  49. package/src/entrys/full.ts +7 -0
  50. package/src/entrys/init.ts +4 -0
  51. package/src/entrys/pageview.ts +2 -0
  52. package/src/init.ts +92 -0
  53. package/src/pageview.ts +100 -0
  54. package/src/shims-hanabi.d.ts +9 -0
  55. package/src/shims-vue.d.ts +5 -0
  56. package/src/styles/base.scss +67 -0
  57. package/src/styles/card.scss +223 -0
  58. package/src/styles/config.scss +52 -0
  59. package/src/styles/emoji.scss +118 -0
  60. package/src/styles/highlight.scss +135 -0
  61. package/src/styles/index.scss +12 -0
  62. package/src/styles/layout.scss +78 -0
  63. package/src/styles/nomalize.scss +112 -0
  64. package/src/styles/panel.scss +293 -0
  65. package/src/styles/recent.scss +3 -0
  66. package/src/typings/base.ts +54 -0
  67. package/src/typings/comment.ts +25 -0
  68. package/src/typings/index.ts +5 -0
  69. package/src/typings/locale.ts +32 -0
  70. package/src/typings/options.ts +41 -0
  71. package/src/typings/waline.ts +208 -0
  72. package/src/utils/config.ts +99 -0
  73. package/src/utils/darkmode.ts +11 -0
  74. package/src/utils/data.ts +10 -0
  75. package/src/utils/emoji.ts +75 -0
  76. package/src/utils/error.ts +3 -0
  77. package/src/utils/fetch.ts +177 -0
  78. package/src/utils/getRoot.ts +8 -0
  79. package/src/utils/index.ts +13 -0
  80. package/src/utils/markdown.ts +41 -0
  81. package/src/utils/markedMathExtension.ts +52 -0
  82. package/src/utils/path.ts +15 -0
  83. package/src/utils/query.ts +2 -0
  84. package/src/utils/timeAgo.ts +75 -0
  85. package/src/utils/userInfo.ts +26 -0
  86. package/src/utils/wordCount.ts +20 -0
  87. package/src/version.ts +3 -0
  88. package/src/widgets/index.ts +1 -0
  89. package/src/widgets/recentComments.ts +52 -0
  90. package/dist/Waline.min.js +0 -2
  91. package/dist/Waline.min.js.map +0 -1
  92. package/dist/Waline.noStyle.js +0 -2
  93. package/dist/Waline.noStyle.js.map +0 -1
  94. package/dist/index.html +0 -11
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waline/client",
3
- "version": "1.6.0",
3
+ "version": "2.0.0-alpha.2",
4
4
  "description": "client for waline comment system",
5
5
  "keywords": [
6
6
  "valine",
@@ -12,19 +12,31 @@
12
12
  "url": "https://github.com/walinejs/waline"
13
13
  },
14
14
  "license": "MIT",
15
- "main": "dist/Waline.min.js",
16
- "browser": "dist/Waline.min.js",
17
- "types": "dist/Waline.min.d.ts",
15
+ "exports": {
16
+ ".": {
17
+ "import": "./dist/shim.esm.js",
18
+ "require": "./dist/shim.js",
19
+ "default": "./dist/shim.js"
20
+ },
21
+ "./dist": "./dist/shim.js",
22
+ "./dist/waline.css": "./dist/waline.css",
23
+ "./dist/*": "./dist/*.js",
24
+ "./package.json": "./package.json"
25
+ },
26
+ "main": "./dist/shim.js",
27
+ "browser": "./dist/waline.js",
28
+ "types": "./dist/shim.d.ts",
29
+ "files": [
30
+ "dist",
31
+ "src"
32
+ ],
18
33
  "scripts": {
19
- "analyze": "cross-env ANALYZE=true webpack --mode=production --config ./build/webpack.config.js",
20
- "build": "npm run build:normal && npm run build:no-style && npm run build:dts",
21
- "build:dts": "rollup -c ./build/rollup.config.js",
22
- "build:no-style": "webpack --mode=production --config ./build/webpack.noStyle.js",
23
- "build:normal": "webpack --mode=production --config ./build/webpack.config.js",
34
+ "build": "npm run rollup && npm run style",
24
35
  "clean": "rimraf ./dist",
25
- "dev": "webpack serve --mode=development --config ./build/webpack.config.js",
26
36
  "lint": "eslint --ext .ts,.vue .",
27
- "prepublish": "npm run build"
37
+ "prepublish": "npm run clean && npm run build",
38
+ "rollup": "rollup -c ./scripts/rollup.config.js",
39
+ "style": "sass ./src/styles/index.scss ./dist/waline.css --style=compressed"
28
40
  },
29
41
  "browserslist": {
30
42
  "production": [
@@ -40,14 +52,17 @@
40
52
  "last 2 safari version"
41
53
  ]
42
54
  },
43
- "devDependencies": {
44
- "@types/autosize": "4.0.1",
45
- "@types/marked": "4.0.2",
46
- "@vue/compiler-sfc": "3.2.31",
55
+ "dependencies": {
47
56
  "autosize": "5.0.1",
48
57
  "hanabi": "0.4.0",
49
- "marked": "4.0.12",
50
- "mitt": "3.0.0",
51
- "vue": "3.2.31"
58
+ "marked": "4.0.14",
59
+ "vue": "3.2.33"
60
+ },
61
+ "devDependencies": {
62
+ "@types/autosize": "4.0.1",
63
+ "@types/marked": "4.0.3"
64
+ },
65
+ "engines": {
66
+ "node": ">=12.20.0"
52
67
  }
53
68
  }
package/src/comment.ts ADDED
@@ -0,0 +1,39 @@
1
+ import { useUserInfo } from './composables';
2
+ import { decodePath, errorHandler, fetchCommentCount } from './utils';
3
+
4
+ export interface CommentCountOptions {
5
+ serverURL: string;
6
+ selector?: string;
7
+ path?: string;
8
+ }
9
+
10
+ export const commentCount = ({
11
+ serverURL,
12
+ path = window.location.pathname,
13
+ selector = '.waline-comment-count',
14
+ }: CommentCountOptions): ((reason?: unknown) => void) => {
15
+ const controller = new AbortController();
16
+
17
+ // comment count
18
+ const elements = document.querySelectorAll<HTMLElement>(selector);
19
+
20
+ const { userInfo } = useUserInfo();
21
+
22
+ if (elements.length)
23
+ void fetchCommentCount({
24
+ serverURL,
25
+ paths: Array.from(elements).map((element) =>
26
+ decodePath(element.dataset.path || element.getAttribute('id') || path)
27
+ ),
28
+ signal: controller.signal,
29
+ token: userInfo.value?.token,
30
+ })
31
+ .then((counts) => {
32
+ elements.forEach((element, index) => {
33
+ element.innerText = counts[index].toString();
34
+ });
35
+ })
36
+ .catch(errorHandler);
37
+
38
+ return controller.abort.bind(controller);
39
+ };