@posthog/rrweb-snapshot 0.0.30 → 0.0.32
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.
- package/dist/record.cjs +980 -0
- package/dist/record.cjs.map +1 -0
- package/dist/record.d.cts +265 -0
- package/dist/record.d.ts +265 -0
- package/dist/record.js +981 -0
- package/dist/record.js.map +1 -0
- package/dist/record.umd.cjs +1556 -0
- package/dist/record.umd.cjs.map +7 -0
- package/dist/record.umd.min.cjs +32 -0
- package/dist/record.umd.min.cjs.map +7 -0
- package/dist/replay.cjs +4356 -0
- package/dist/replay.cjs.map +1 -0
- package/dist/replay.d.cts +219 -0
- package/dist/replay.d.ts +219 -0
- package/dist/replay.js +4357 -0
- package/dist/replay.js.map +1 -0
- package/dist/replay.umd.cjs +4962 -0
- package/dist/replay.umd.cjs.map +7 -0
- package/dist/replay.umd.min.cjs +60 -0
- package/dist/replay.umd.min.cjs.map +7 -0
- package/dist/rrweb-snapshot.cjs +38 -5816
- package/dist/rrweb-snapshot.cjs.map +1 -1
- package/dist/rrweb-snapshot.js +24 -5802
- package/dist/rrweb-snapshot.js.map +1 -1
- package/dist/rrweb-snapshot.umd.cjs +5581 -5468
- package/dist/rrweb-snapshot.umd.cjs.map +4 -4
- package/dist/rrweb-snapshot.umd.min.cjs +15 -15
- package/dist/rrweb-snapshot.umd.min.cjs.map +4 -4
- package/dist/types-FDk_ocpu.js +535 -0
- package/dist/types-FDk_ocpu.js.map +1 -0
- package/dist/types-pLXhbZlp.cjs +534 -0
- package/dist/types-pLXhbZlp.cjs.map +1 -0
- package/dist/types-pLXhbZlp.umd.cjs +567 -0
- package/dist/types-pLXhbZlp.umd.cjs.map +7 -0
- package/dist/types-pLXhbZlp.umd.min.cjs +32 -0
- package/dist/types-pLXhbZlp.umd.min.cjs.map +7 -0
- package/package.json +26 -6
- /package/dist/{index.d.cts → rrweb-snapshot.d.cts} +0 -0
- /package/dist/{index.d.ts → rrweb-snapshot.d.ts} +0 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { IMirror } from '@posthog/rrweb-types';
|
|
2
|
+
import { serializedNode as serializedNode_2 } from '@posthog/rrweb-types';
|
|
3
|
+
import { serializedNodeWithId } from '@posthog/rrweb-types';
|
|
4
|
+
|
|
5
|
+
export declare function absolutifyURLs(cssText: string | null, href: string): string;
|
|
6
|
+
|
|
7
|
+
export declare function adaptCssForReplay(cssText: string, cache: BuildCache): string;
|
|
8
|
+
|
|
9
|
+
export declare type attributes = {
|
|
10
|
+
[key: string]: string | number | true | null;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export declare type BuildCache = {
|
|
14
|
+
stylesWithHoverClass: Map<string, string>;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export declare function buildNodeWithSN(n: serializedNodeWithId, options: {
|
|
18
|
+
doc: Document;
|
|
19
|
+
mirror: Mirror;
|
|
20
|
+
skipChild?: boolean;
|
|
21
|
+
hackCss: boolean;
|
|
22
|
+
afterAppend?: (n: Node, id: number) => unknown;
|
|
23
|
+
cache: BuildCache;
|
|
24
|
+
}): Node | null;
|
|
25
|
+
|
|
26
|
+
export declare type cdataNode = {
|
|
27
|
+
type: NodeType.CDATA;
|
|
28
|
+
textContent: '';
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export declare function checkDataURLSize(dataURL: string, maxLength: number | undefined): string;
|
|
32
|
+
|
|
33
|
+
export declare type commentNode = {
|
|
34
|
+
type: NodeType.Comment;
|
|
35
|
+
textContent: string;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export declare function createCache(): BuildCache;
|
|
39
|
+
|
|
40
|
+
export declare function createMirror(): Mirror;
|
|
41
|
+
|
|
42
|
+
declare interface CSSImportRule_2 extends CSSRule {
|
|
43
|
+
readonly href: string;
|
|
44
|
+
readonly layerName: string | null;
|
|
45
|
+
readonly media: MediaList;
|
|
46
|
+
readonly styleSheet: CSSStyleSheet;
|
|
47
|
+
readonly supportsText?: string | null;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export declare type DialogAttributes = {
|
|
51
|
+
open: string;
|
|
52
|
+
rr_open_mode: 'modal' | 'non-modal';
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export declare type documentNode = {
|
|
56
|
+
type: NodeType.Document;
|
|
57
|
+
childNodes: serializedNodeWithId[];
|
|
58
|
+
compatMode?: string;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export declare type documentTypeNode = {
|
|
62
|
+
type: NodeType.DocumentType;
|
|
63
|
+
name: string;
|
|
64
|
+
publicId: string;
|
|
65
|
+
systemId: string;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export declare type elementNode = {
|
|
69
|
+
type: NodeType.Element;
|
|
70
|
+
tagName: string;
|
|
71
|
+
attributes: attributes;
|
|
72
|
+
childNodes: serializedNodeWithId[];
|
|
73
|
+
isSVG?: true;
|
|
74
|
+
needBlock?: boolean;
|
|
75
|
+
isCustom?: true;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export declare function escapeImportStatement(rule: CSSImportRule_2): string;
|
|
79
|
+
|
|
80
|
+
export declare function extractFileExtension(path: string, baseURL?: string): string | null;
|
|
81
|
+
|
|
82
|
+
export declare function fixSafariColons(cssStringified: string): string;
|
|
83
|
+
|
|
84
|
+
export declare function getInputType(element: HTMLElement): Lowercase<string> | null;
|
|
85
|
+
|
|
86
|
+
export declare interface ICanvas extends HTMLCanvasElement {
|
|
87
|
+
__context: string;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export declare type idNodeMap = Map<number, Node>;
|
|
91
|
+
|
|
92
|
+
export declare function is2DCanvasBlank(canvas: HTMLCanvasElement): boolean;
|
|
93
|
+
|
|
94
|
+
export declare function isCSSImportRule(rule: CSSRule): rule is CSSImportRule_2;
|
|
95
|
+
|
|
96
|
+
export declare function isCSSStyleRule(rule: CSSRule): rule is CSSStyleRule;
|
|
97
|
+
|
|
98
|
+
export declare function isElement(n: Node): n is Element;
|
|
99
|
+
|
|
100
|
+
export declare function isNativeShadowDom(shadowRoot: ShadowRoot): boolean;
|
|
101
|
+
|
|
102
|
+
export declare function isNodeMetaEqual(a: serializedNode_2, b: serializedNode_2): boolean;
|
|
103
|
+
|
|
104
|
+
export declare function isShadowRoot(n: Node): n is ShadowRoot;
|
|
105
|
+
|
|
106
|
+
export declare type KeepIframeSrcFn = (src: string) => boolean;
|
|
107
|
+
|
|
108
|
+
export declare type legacyAttributes = {
|
|
109
|
+
selected: false;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export declare type MaskInputFn = (text: string, element: HTMLElement) => string;
|
|
113
|
+
|
|
114
|
+
export declare type MaskInputOptions = Partial<{
|
|
115
|
+
color: boolean;
|
|
116
|
+
date: boolean;
|
|
117
|
+
'datetime-local': boolean;
|
|
118
|
+
email: boolean;
|
|
119
|
+
month: boolean;
|
|
120
|
+
number: boolean;
|
|
121
|
+
range: boolean;
|
|
122
|
+
search: boolean;
|
|
123
|
+
tel: boolean;
|
|
124
|
+
text: boolean;
|
|
125
|
+
time: boolean;
|
|
126
|
+
url: boolean;
|
|
127
|
+
week: boolean;
|
|
128
|
+
textarea: boolean;
|
|
129
|
+
select: boolean;
|
|
130
|
+
password: boolean;
|
|
131
|
+
}>;
|
|
132
|
+
|
|
133
|
+
export declare function maskInputValue({ element, maskInputOptions, tagName, type, value, maskInputFn, }: {
|
|
134
|
+
element: HTMLElement;
|
|
135
|
+
maskInputOptions: MaskInputOptions;
|
|
136
|
+
tagName: string;
|
|
137
|
+
type: string | null;
|
|
138
|
+
value: string | null;
|
|
139
|
+
maskInputFn?: MaskInputFn;
|
|
140
|
+
}): string;
|
|
141
|
+
|
|
142
|
+
export declare type MaskTextFn = (text: string, element: HTMLElement | null) => string;
|
|
143
|
+
|
|
144
|
+
export declare class Mirror implements IMirror<Node> {
|
|
145
|
+
private idNodeMap;
|
|
146
|
+
private nodeMetaMap;
|
|
147
|
+
getId(n: Node | undefined | null): number;
|
|
148
|
+
getNode(id: number): Node | null;
|
|
149
|
+
getIds(): number[];
|
|
150
|
+
getMeta(n: Node): serializedNodeWithId | null;
|
|
151
|
+
removeNodeFromMap(n: Node): void;
|
|
152
|
+
has(id: number): boolean;
|
|
153
|
+
hasNode(node: Node): boolean;
|
|
154
|
+
add(n: Node, meta: serializedNodeWithId): void;
|
|
155
|
+
replace(id: number, n: Node): void;
|
|
156
|
+
reset(): void;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export declare type nodeMetaMap = WeakMap<Node, serializedNodeWithId>;
|
|
160
|
+
|
|
161
|
+
export declare enum NodeType {
|
|
162
|
+
Document = 0,
|
|
163
|
+
DocumentType = 1,
|
|
164
|
+
Element = 2,
|
|
165
|
+
Text = 3,
|
|
166
|
+
CDATA = 4,
|
|
167
|
+
Comment = 5
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export declare function rebuild(n: serializedNodeWithId, options: {
|
|
171
|
+
doc: Document;
|
|
172
|
+
onVisit?: (node: Node) => unknown;
|
|
173
|
+
hackCss?: boolean;
|
|
174
|
+
afterAppend?: (n: Node, id: number) => unknown;
|
|
175
|
+
cache: BuildCache;
|
|
176
|
+
mirror: Mirror;
|
|
177
|
+
}): Node | null;
|
|
178
|
+
|
|
179
|
+
export declare function recompressBase64Image(img: HTMLImageElement, dataURL: string, type?: string, quality?: number): string;
|
|
180
|
+
|
|
181
|
+
export declare type serializedElementNodeWithId = Extract<serializedNodeWithId, Record<'type', NodeType.Element>>;
|
|
182
|
+
|
|
183
|
+
export declare type serializedNode = (documentNode | documentTypeNode | elementNode | textNode | cdataNode | commentNode) & {
|
|
184
|
+
rootId?: number;
|
|
185
|
+
isShadowHost?: boolean;
|
|
186
|
+
isShadow?: boolean;
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
export declare type SlimDOMOptions = Partial<{
|
|
190
|
+
script: boolean;
|
|
191
|
+
comment: boolean;
|
|
192
|
+
headFavicon: boolean;
|
|
193
|
+
headWhitespace: boolean;
|
|
194
|
+
headMetaDescKeywords: boolean;
|
|
195
|
+
headMetaSocial: boolean;
|
|
196
|
+
headMetaRobots: boolean;
|
|
197
|
+
headMetaHttpEquiv: boolean;
|
|
198
|
+
headMetaAuthorship: boolean;
|
|
199
|
+
headMetaVerification: boolean;
|
|
200
|
+
headTitleMutations: boolean;
|
|
201
|
+
}>;
|
|
202
|
+
|
|
203
|
+
export declare function stringifyRule(rule: CSSRule, sheetHref: string | null): string;
|
|
204
|
+
|
|
205
|
+
export declare function stringifyStylesheet(s: CSSStyleSheet): string | null;
|
|
206
|
+
|
|
207
|
+
export declare type tagMap = {
|
|
208
|
+
[key: string]: string;
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
export declare type textNode = {
|
|
212
|
+
type: NodeType.Text;
|
|
213
|
+
textContent: string;
|
|
214
|
+
isStyle?: true;
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
export declare function toLowerCase<T extends string>(str: T): Lowercase<T>;
|
|
218
|
+
|
|
219
|
+
export { }
|
package/dist/replay.d.ts
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { IMirror } from '@posthog/rrweb-types';
|
|
2
|
+
import { serializedNode as serializedNode_2 } from '@posthog/rrweb-types';
|
|
3
|
+
import { serializedNodeWithId } from '@posthog/rrweb-types';
|
|
4
|
+
|
|
5
|
+
export declare function absolutifyURLs(cssText: string | null, href: string): string;
|
|
6
|
+
|
|
7
|
+
export declare function adaptCssForReplay(cssText: string, cache: BuildCache): string;
|
|
8
|
+
|
|
9
|
+
export declare type attributes = {
|
|
10
|
+
[key: string]: string | number | true | null;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export declare type BuildCache = {
|
|
14
|
+
stylesWithHoverClass: Map<string, string>;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export declare function buildNodeWithSN(n: serializedNodeWithId, options: {
|
|
18
|
+
doc: Document;
|
|
19
|
+
mirror: Mirror;
|
|
20
|
+
skipChild?: boolean;
|
|
21
|
+
hackCss: boolean;
|
|
22
|
+
afterAppend?: (n: Node, id: number) => unknown;
|
|
23
|
+
cache: BuildCache;
|
|
24
|
+
}): Node | null;
|
|
25
|
+
|
|
26
|
+
export declare type cdataNode = {
|
|
27
|
+
type: NodeType.CDATA;
|
|
28
|
+
textContent: '';
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export declare function checkDataURLSize(dataURL: string, maxLength: number | undefined): string;
|
|
32
|
+
|
|
33
|
+
export declare type commentNode = {
|
|
34
|
+
type: NodeType.Comment;
|
|
35
|
+
textContent: string;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export declare function createCache(): BuildCache;
|
|
39
|
+
|
|
40
|
+
export declare function createMirror(): Mirror;
|
|
41
|
+
|
|
42
|
+
declare interface CSSImportRule_2 extends CSSRule {
|
|
43
|
+
readonly href: string;
|
|
44
|
+
readonly layerName: string | null;
|
|
45
|
+
readonly media: MediaList;
|
|
46
|
+
readonly styleSheet: CSSStyleSheet;
|
|
47
|
+
readonly supportsText?: string | null;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export declare type DialogAttributes = {
|
|
51
|
+
open: string;
|
|
52
|
+
rr_open_mode: 'modal' | 'non-modal';
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export declare type documentNode = {
|
|
56
|
+
type: NodeType.Document;
|
|
57
|
+
childNodes: serializedNodeWithId[];
|
|
58
|
+
compatMode?: string;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export declare type documentTypeNode = {
|
|
62
|
+
type: NodeType.DocumentType;
|
|
63
|
+
name: string;
|
|
64
|
+
publicId: string;
|
|
65
|
+
systemId: string;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export declare type elementNode = {
|
|
69
|
+
type: NodeType.Element;
|
|
70
|
+
tagName: string;
|
|
71
|
+
attributes: attributes;
|
|
72
|
+
childNodes: serializedNodeWithId[];
|
|
73
|
+
isSVG?: true;
|
|
74
|
+
needBlock?: boolean;
|
|
75
|
+
isCustom?: true;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export declare function escapeImportStatement(rule: CSSImportRule_2): string;
|
|
79
|
+
|
|
80
|
+
export declare function extractFileExtension(path: string, baseURL?: string): string | null;
|
|
81
|
+
|
|
82
|
+
export declare function fixSafariColons(cssStringified: string): string;
|
|
83
|
+
|
|
84
|
+
export declare function getInputType(element: HTMLElement): Lowercase<string> | null;
|
|
85
|
+
|
|
86
|
+
export declare interface ICanvas extends HTMLCanvasElement {
|
|
87
|
+
__context: string;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export declare type idNodeMap = Map<number, Node>;
|
|
91
|
+
|
|
92
|
+
export declare function is2DCanvasBlank(canvas: HTMLCanvasElement): boolean;
|
|
93
|
+
|
|
94
|
+
export declare function isCSSImportRule(rule: CSSRule): rule is CSSImportRule_2;
|
|
95
|
+
|
|
96
|
+
export declare function isCSSStyleRule(rule: CSSRule): rule is CSSStyleRule;
|
|
97
|
+
|
|
98
|
+
export declare function isElement(n: Node): n is Element;
|
|
99
|
+
|
|
100
|
+
export declare function isNativeShadowDom(shadowRoot: ShadowRoot): boolean;
|
|
101
|
+
|
|
102
|
+
export declare function isNodeMetaEqual(a: serializedNode_2, b: serializedNode_2): boolean;
|
|
103
|
+
|
|
104
|
+
export declare function isShadowRoot(n: Node): n is ShadowRoot;
|
|
105
|
+
|
|
106
|
+
export declare type KeepIframeSrcFn = (src: string) => boolean;
|
|
107
|
+
|
|
108
|
+
export declare type legacyAttributes = {
|
|
109
|
+
selected: false;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export declare type MaskInputFn = (text: string, element: HTMLElement) => string;
|
|
113
|
+
|
|
114
|
+
export declare type MaskInputOptions = Partial<{
|
|
115
|
+
color: boolean;
|
|
116
|
+
date: boolean;
|
|
117
|
+
'datetime-local': boolean;
|
|
118
|
+
email: boolean;
|
|
119
|
+
month: boolean;
|
|
120
|
+
number: boolean;
|
|
121
|
+
range: boolean;
|
|
122
|
+
search: boolean;
|
|
123
|
+
tel: boolean;
|
|
124
|
+
text: boolean;
|
|
125
|
+
time: boolean;
|
|
126
|
+
url: boolean;
|
|
127
|
+
week: boolean;
|
|
128
|
+
textarea: boolean;
|
|
129
|
+
select: boolean;
|
|
130
|
+
password: boolean;
|
|
131
|
+
}>;
|
|
132
|
+
|
|
133
|
+
export declare function maskInputValue({ element, maskInputOptions, tagName, type, value, maskInputFn, }: {
|
|
134
|
+
element: HTMLElement;
|
|
135
|
+
maskInputOptions: MaskInputOptions;
|
|
136
|
+
tagName: string;
|
|
137
|
+
type: string | null;
|
|
138
|
+
value: string | null;
|
|
139
|
+
maskInputFn?: MaskInputFn;
|
|
140
|
+
}): string;
|
|
141
|
+
|
|
142
|
+
export declare type MaskTextFn = (text: string, element: HTMLElement | null) => string;
|
|
143
|
+
|
|
144
|
+
export declare class Mirror implements IMirror<Node> {
|
|
145
|
+
private idNodeMap;
|
|
146
|
+
private nodeMetaMap;
|
|
147
|
+
getId(n: Node | undefined | null): number;
|
|
148
|
+
getNode(id: number): Node | null;
|
|
149
|
+
getIds(): number[];
|
|
150
|
+
getMeta(n: Node): serializedNodeWithId | null;
|
|
151
|
+
removeNodeFromMap(n: Node): void;
|
|
152
|
+
has(id: number): boolean;
|
|
153
|
+
hasNode(node: Node): boolean;
|
|
154
|
+
add(n: Node, meta: serializedNodeWithId): void;
|
|
155
|
+
replace(id: number, n: Node): void;
|
|
156
|
+
reset(): void;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export declare type nodeMetaMap = WeakMap<Node, serializedNodeWithId>;
|
|
160
|
+
|
|
161
|
+
export declare enum NodeType {
|
|
162
|
+
Document = 0,
|
|
163
|
+
DocumentType = 1,
|
|
164
|
+
Element = 2,
|
|
165
|
+
Text = 3,
|
|
166
|
+
CDATA = 4,
|
|
167
|
+
Comment = 5
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export declare function rebuild(n: serializedNodeWithId, options: {
|
|
171
|
+
doc: Document;
|
|
172
|
+
onVisit?: (node: Node) => unknown;
|
|
173
|
+
hackCss?: boolean;
|
|
174
|
+
afterAppend?: (n: Node, id: number) => unknown;
|
|
175
|
+
cache: BuildCache;
|
|
176
|
+
mirror: Mirror;
|
|
177
|
+
}): Node | null;
|
|
178
|
+
|
|
179
|
+
export declare function recompressBase64Image(img: HTMLImageElement, dataURL: string, type?: string, quality?: number): string;
|
|
180
|
+
|
|
181
|
+
export declare type serializedElementNodeWithId = Extract<serializedNodeWithId, Record<'type', NodeType.Element>>;
|
|
182
|
+
|
|
183
|
+
export declare type serializedNode = (documentNode | documentTypeNode | elementNode | textNode | cdataNode | commentNode) & {
|
|
184
|
+
rootId?: number;
|
|
185
|
+
isShadowHost?: boolean;
|
|
186
|
+
isShadow?: boolean;
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
export declare type SlimDOMOptions = Partial<{
|
|
190
|
+
script: boolean;
|
|
191
|
+
comment: boolean;
|
|
192
|
+
headFavicon: boolean;
|
|
193
|
+
headWhitespace: boolean;
|
|
194
|
+
headMetaDescKeywords: boolean;
|
|
195
|
+
headMetaSocial: boolean;
|
|
196
|
+
headMetaRobots: boolean;
|
|
197
|
+
headMetaHttpEquiv: boolean;
|
|
198
|
+
headMetaAuthorship: boolean;
|
|
199
|
+
headMetaVerification: boolean;
|
|
200
|
+
headTitleMutations: boolean;
|
|
201
|
+
}>;
|
|
202
|
+
|
|
203
|
+
export declare function stringifyRule(rule: CSSRule, sheetHref: string | null): string;
|
|
204
|
+
|
|
205
|
+
export declare function stringifyStylesheet(s: CSSStyleSheet): string | null;
|
|
206
|
+
|
|
207
|
+
export declare type tagMap = {
|
|
208
|
+
[key: string]: string;
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
export declare type textNode = {
|
|
212
|
+
type: NodeType.Text;
|
|
213
|
+
textContent: string;
|
|
214
|
+
isStyle?: true;
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
export declare function toLowerCase<T extends string>(str: T): Lowercase<T>;
|
|
218
|
+
|
|
219
|
+
export { }
|