quikchat 1.1.17 → 1.2.4

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 (43) hide show
  1. package/README.md +167 -276
  2. package/dist/build-manifest.json +157 -0
  3. package/dist/quikchat-md-full.cjs.js +2742 -0
  4. package/dist/quikchat-md-full.cjs.js.map +1 -0
  5. package/dist/quikchat-md-full.cjs.min.js +10 -0
  6. package/dist/quikchat-md-full.cjs.min.js.map +1 -0
  7. package/dist/quikchat-md-full.esm.js +2740 -0
  8. package/dist/quikchat-md-full.esm.js.map +1 -0
  9. package/dist/quikchat-md-full.esm.min.js +10 -0
  10. package/dist/quikchat-md-full.esm.min.js.map +1 -0
  11. package/dist/quikchat-md-full.umd.js +2748 -0
  12. package/dist/quikchat-md-full.umd.js.map +1 -0
  13. package/dist/quikchat-md-full.umd.min.js +10 -0
  14. package/dist/quikchat-md-full.umd.min.js.map +1 -0
  15. package/dist/quikchat-md.cjs.js +1641 -0
  16. package/dist/quikchat-md.cjs.js.map +1 -0
  17. package/dist/quikchat-md.cjs.min.js +8 -0
  18. package/dist/quikchat-md.cjs.min.js.map +1 -0
  19. package/dist/quikchat-md.esm.js +1639 -0
  20. package/dist/quikchat-md.esm.js.map +1 -0
  21. package/dist/quikchat-md.esm.min.js +8 -0
  22. package/dist/quikchat-md.esm.min.js.map +1 -0
  23. package/dist/quikchat-md.umd.js +1647 -0
  24. package/dist/quikchat-md.umd.js.map +1 -0
  25. package/dist/quikchat-md.umd.min.js +8 -0
  26. package/dist/quikchat-md.umd.min.js.map +1 -0
  27. package/dist/quikchat.cjs.js +454 -1729
  28. package/dist/quikchat.cjs.js.map +1 -1
  29. package/dist/quikchat.cjs.min.js +1 -1
  30. package/dist/quikchat.cjs.min.js.map +1 -1
  31. package/dist/quikchat.css +753 -226
  32. package/dist/quikchat.esm.js +454 -1729
  33. package/dist/quikchat.esm.js.map +1 -1
  34. package/dist/quikchat.esm.min.js +1 -1
  35. package/dist/quikchat.esm.min.js.map +1 -1
  36. package/dist/quikchat.min.css +1 -1
  37. package/dist/quikchat.react.js +63 -0
  38. package/dist/quikchat.umd.js +454 -1729
  39. package/dist/quikchat.umd.js.map +1 -1
  40. package/dist/quikchat.umd.min.js +1 -1
  41. package/dist/quikchat.umd.min.js.map +1 -1
  42. package/package.json +59 -39
  43. package/dist/quikchat.d.ts +0 -194
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quikchat",
3
- "version": "1.1.17",
3
+ "version": "1.2.4",
4
4
  "description": "quikchat is a simple vanilla (no dependancies) JavaScript chat control for browsers ",
5
5
  "author": "deftio (https://github.com/deftio",
6
6
  "license": "BSD-2-Clause",
@@ -16,7 +16,24 @@
16
16
  "module": "dist/quikchat.esm.min.js",
17
17
  "unpkg": "dist/quikchat.umd.min.js",
18
18
  "browser": "dist/quikchat.umd.min.js",
19
- "types": "dist/quikchat.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "import": "./dist/quikchat.esm.min.js",
22
+ "require": "./dist/quikchat.cjs.min.js",
23
+ "default": "./dist/quikchat.umd.min.js"
24
+ },
25
+ "./md": {
26
+ "import": "./dist/quikchat-md.esm.min.js",
27
+ "require": "./dist/quikchat-md.cjs.min.js",
28
+ "default": "./dist/quikchat-md.umd.min.js"
29
+ },
30
+ "./md-full": {
31
+ "import": "./dist/quikchat-md-full.esm.min.js",
32
+ "require": "./dist/quikchat-md-full.cjs.min.js",
33
+ "default": "./dist/quikchat-md-full.umd.min.js"
34
+ },
35
+ "./dist/*": "./dist/*"
36
+ },
20
37
  "files": [
21
38
  "dist"
22
39
  ],
@@ -25,41 +42,44 @@
25
42
  "examples": "examples"
26
43
  },
27
44
  "scripts": {
45
+ "dev": "node ./tools/devserver.cjs",
46
+ "lint": "eslint src/",
28
47
  "test": "jest --coverage",
29
- "test:unit": "jest --coverage",
30
- "test:e2e": "npx playwright test --config=playwright.config.cjs",
48
+ "test:e2e": "npx playwright test tests/resize.spec.cjs --reporter=line",
31
49
  "minifyCSS": "node ./tools/minifyCSS.cjs",
50
+ "reportSizes": "node ./tools/reportSizes.cjs",
32
51
  "updateVersion": "node ./tools/updateVersion",
33
- "buildDocs": "node ./tools/buildDocs.js",
34
- "docs:api": "npx jsdoc src/quikchat.js -d docs/api",
35
- "updateExampleCopies": "cp dist/quikchat.umd.min.js examples/fastapi_llm/static && cp dist/quikchat.min.css examples/fastapi_llm/static && cp dist/quikchat.umd.min.js examples/npm_express/static && cp dist/quikchat.min.css examples/npm_express/static",
36
- "build": "npm run updateVersion && npm run buildDocs && npm run minifyCSS && rollup -c && npm run updateExampleCopies"
52
+ "build": "npm run lint && npm run updateVersion && npm run minifyCSS && rollup -c && npm run reportSizes",
53
+ "feature": "bash ./tools/feature.sh",
54
+ "release": "bash ./tools/release.sh",
55
+ "prepare": "husky"
37
56
  },
38
57
  "jest": {
39
58
  "testEnvironment": "jsdom",
59
+ "testPathIgnorePatterns": [
60
+ "/node_modules/",
61
+ "\\.spec\\.cjs$"
62
+ ],
40
63
  "transform": {
41
64
  "^.+\\.js$": "babel-jest"
42
65
  },
43
66
  "collectCoverage": true,
44
67
  "collectCoverageFrom": [
45
- "src/**/*.js"
68
+ "src/quikchat.js"
46
69
  ],
47
70
  "coverageDirectory": "coverage",
48
71
  "coverageReporters": [
49
72
  "html",
50
73
  "text",
51
- "lcov"
52
- ],
53
- "coveragePathIgnorePatterns": [
54
- "/node_modules/",
55
- "/src/modules/messages/virtual-scroller.js"
74
+ "lcov",
75
+ "json-summary"
56
76
  ],
57
77
  "coverageThreshold": {
58
78
  "global": {
59
- "lines": 80,
60
- "functions": 79,
61
- "branches": 60,
62
- "statements": 79
79
+ "statements": 97,
80
+ "branches": 97,
81
+ "functions": 96,
82
+ "lines": 97
63
83
  }
64
84
  }
65
85
  },
@@ -72,27 +92,27 @@
72
92
  "chatboxcontrol"
73
93
  ],
74
94
  "devDependencies": {
75
- "@babel/core": "^7.25.2",
76
- "@babel/preset-env": "^7.25.3",
77
- "@babel/preset-react": "^7.24.7",
78
- "@playwright/test": "^1.54.2",
79
- "@rollup/plugin-babel": "^6.0.4",
80
- "@rollup/plugin-commonjs": "^26.0.1",
81
- "@rollup/plugin-node-resolve": "^15.2.3",
82
- "@rollup/plugin-terser": "^0.4.4",
83
- "babel-jest": "^29.7.0",
95
+ "@babel/core": "^7.29.0",
96
+ "@babel/preset-env": "^7.29.2",
97
+ "@babel/preset-react": "^7.28.5",
98
+ "@eslint/js": "^10.0.1",
99
+ "@playwright/test": "^1.59.1",
100
+ "@rollup/plugin-babel": "^7.0.0",
101
+ "@rollup/plugin-commonjs": "^29.0.2",
102
+ "@rollup/plugin-node-resolve": "^16.0.3",
103
+ "@rollup/plugin-terser": "^1.0.0",
104
+ "babel-jest": "^30.3.0",
84
105
  "clean-css": "^5.3.3",
85
106
  "clean-css-cli": "^5.6.3",
86
- "coveralls": "^3.1.1",
87
- "cssnano": "^7.0.4",
88
- "docbat": "^0.9.3",
89
- "jest": "^29.7.0",
90
- "jest-environment-jsdom": "^29.7.0",
91
- "marked": "^16.1.2",
92
- "playwright": "^1.54.2",
93
- "rollup": "^4.18.1",
94
- "rollup-plugin-css-only": "^4.5.2",
95
- "rollup-plugin-postcss": "^4.0.2",
96
- "typescript": "^5.9.2"
107
+ "cssnano": "^7.1.4",
108
+ "eslint": "^10.2.0",
109
+ "globals": "^17.4.0",
110
+ "husky": "^9.1.7",
111
+ "jest": "^30.3.0",
112
+ "jest-environment-jsdom": "^30.3.0",
113
+ "quikdown": "^1.1.1",
114
+ "rollup": "^4.60.1",
115
+ "rollup-plugin-css-only": "^4.5.5",
116
+ "rollup-plugin-postcss": "^4.0.2"
97
117
  }
98
- }
118
+ }
@@ -1,194 +0,0 @@
1
- /**
2
- * QuikChat - Zero-dependency JavaScript chat widget
3
- * TypeScript definitions for v1.1.15
4
- */
5
-
6
- declare module 'quikchat' {
7
- export default class QuikChat {
8
- /**
9
- * Creates a new QuikChat instance
10
- * @param element - DOM element selector or element to attach chat to
11
- * @param onSend - Callback function when user sends a message
12
- * @param options - Configuration options
13
- */
14
- constructor(
15
- element: string | HTMLElement,
16
- onSend?: (instance: QuikChat, message: string) => void,
17
- options?: QuikChatOptions
18
- );
19
-
20
- // Message Management
21
- messageAddFull(options: MessageOptions): number;
22
- messageAddNew(
23
- content: string,
24
- userString?: string,
25
- align?: 'left' | 'right' | 'center',
26
- role?: string,
27
- scrollIntoView?: boolean | 'smart',
28
- visible?: boolean,
29
- tags?: string[]
30
- ): number;
31
- messageRemove(msgId: number): boolean;
32
- messageRemoveLast(): boolean;
33
- messageAppendContent(msgId: number, content: string): boolean;
34
- messageReplaceContent(msgId: number, content: string): boolean;
35
- messageGetContent(msgId: number): string;
36
- messageGetDOMObject(msgId: number): HTMLElement | null;
37
- messageGetContentDOMElement(msgId: number): HTMLElement | null;
38
- messageScrollToBottom(): void;
39
- messageSetVisibility(msgId: number, visible: boolean): boolean;
40
- messageGetVisibility(msgId: number): boolean;
41
-
42
- // Title Area
43
- titleAreaShow(): void;
44
- titleAreaHide(): void;
45
- titleAreaToggle(): void;
46
- titleAreaSetContents(content: string, align?: 'left' | 'right' | 'center'): void;
47
- titleAreaGetContents(): string;
48
-
49
- // Input Area
50
- inputAreaShow(): void;
51
- inputAreaHide(): void;
52
- inputAreaToggle(): void;
53
-
54
- // Messages Area
55
- messagesAreaAlternateColors(enable?: boolean): boolean;
56
- messagesAreaAlternateColorsToggle(): void;
57
- messagesAreaAlternateColorsGet(): boolean;
58
-
59
- // History Management
60
- historyGet(start?: number, end?: number): HistoryMessage[];
61
- historyGetAllCopy(): HistoryMessage[];
62
- historyGetPage(page?: number, pageSize?: number, order?: 'asc' | 'desc'): HistoryPage;
63
- historySearch(filters?: SearchFilters): HistoryMessage[];
64
- historyGetInfo(pageSize?: number): HistoryInfo;
65
- historyClear(): void;
66
- historyGetLength(): number;
67
- historyGetMessage(index: number): HistoryMessage | {};
68
- historyGetMessageContent(index: number): string;
69
- historyRestoreAll(messages: HistoryMessage[]): void;
70
-
71
- // Callbacks
72
- setCallbackOnSend(callback: (instance: QuikChat, message: string) => void): void;
73
- setCallbackonMessageAdded(callback: (instance: QuikChat, msgId: number) => void): void;
74
- setCallbackonMessageAppend(callback: (instance: QuikChat, msgId: number, content: string) => void): void;
75
- setCallbackonMessageReplace(callback: (instance: QuikChat, msgId: number, content: string) => void): void;
76
- setCallbackonMessageDelete(callback: (instance: QuikChat, msgId: number) => void): void;
77
-
78
- // Theming
79
- changeTheme(theme: string): void;
80
- readonly theme: string;
81
-
82
- // Tag Management
83
- setTagVisibility(tag: string, visible: boolean): boolean;
84
- getTagVisibility(tag: string): boolean;
85
- getActiveTags(): string[];
86
-
87
- // Static Methods
88
- static version(): VersionInfo;
89
- static loremIpsum(length?: number, offset?: number, capitalize?: boolean): string;
90
- static tempMessageGenerator(
91
- element: string | HTMLElement,
92
- initialMessage: string,
93
- interval: number,
94
- callback?: (message: string, count: number) => string
95
- ): void;
96
- static createTempMessageDOMStr(
97
- initialMessage: string,
98
- interval?: number,
99
- callback?: (message: string, count: number) => string,
100
- options?: { containerClass?: string }
101
- ): string;
102
-
103
- // Properties
104
- sendOnEnter: boolean;
105
- sendOnShiftEnter: boolean;
106
- trackHistory: boolean;
107
- userScrolledUp: boolean;
108
- msgid: number;
109
- }
110
-
111
- export interface QuikChatOptions {
112
- theme?: string;
113
- trackHistory?: boolean;
114
- titleArea?: {
115
- title?: string;
116
- show?: boolean;
117
- align?: 'left' | 'right' | 'center';
118
- };
119
- messagesArea?: {
120
- alternating?: boolean;
121
- };
122
- inputArea?: {
123
- show?: boolean;
124
- };
125
- sendOnEnter?: boolean;
126
- sendOnShiftEnter?: boolean;
127
- instanceClass?: string;
128
- }
129
-
130
- export interface MessageOptions {
131
- content: string;
132
- userString?: string;
133
- align?: 'left' | 'right' | 'center';
134
- role?: string;
135
- userID?: number;
136
- timestamp?: string | false;
137
- updatedtime?: string | false;
138
- scrollIntoView?: boolean | 'smart';
139
- visible?: boolean;
140
- tags?: string[];
141
- }
142
-
143
- export interface HistoryMessage extends MessageOptions {
144
- msgid: number;
145
- messageDiv?: HTMLElement;
146
- }
147
-
148
- export interface HistoryPage {
149
- messages: HistoryMessage[];
150
- pagination: {
151
- currentPage: number;
152
- pageSize: number;
153
- totalPages: number;
154
- totalMessages: number;
155
- hasNext: boolean;
156
- hasPrevious: boolean;
157
- order: 'asc' | 'desc';
158
- };
159
- }
160
-
161
- export interface SearchFilters {
162
- text?: string;
163
- userString?: string;
164
- role?: string;
165
- tags?: string[];
166
- limit?: number;
167
- }
168
-
169
- export interface HistoryInfo {
170
- totalMessages: number;
171
- totalPages: number;
172
- oldestMessage: {
173
- msgid: number;
174
- timestamp: string;
175
- userString: string;
176
- } | null;
177
- newestMessage: {
178
- msgid: number;
179
- timestamp: string;
180
- userString: string;
181
- } | null;
182
- memoryUsage: {
183
- estimatedSize: number;
184
- averageMessageSize: number;
185
- };
186
- }
187
-
188
- export interface VersionInfo {
189
- version: string;
190
- license: string;
191
- url: string;
192
- fun: boolean;
193
- }
194
- }