@haluo/util 2.0.27 → 2.0.29

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 (59) hide show
  1. package/README.md +350 -350
  2. package/dist/index.d.ts +39 -39
  3. package/dist/index.js +43 -43
  4. package/dist/modules/cookie/index.d.ts +27 -27
  5. package/dist/modules/cookie/index.js +49 -49
  6. package/dist/modules/date/index.d.ts +52 -52
  7. package/dist/modules/date/index.js +185 -185
  8. package/dist/modules/dom/index.d.ts +28 -28
  9. package/dist/modules/dom/index.js +55 -55
  10. package/dist/modules/filter/index.d.ts +24 -24
  11. package/dist/modules/filter/index.js +38 -38
  12. package/dist/modules/format/index.d.ts +15 -15
  13. package/dist/modules/format/index.js +16 -16
  14. package/dist/modules/match/index.d.ts +12 -12
  15. package/dist/modules/match/index.js +27 -27
  16. package/dist/modules/monitor/index.d.ts +3 -3
  17. package/dist/modules/monitor/index.js +10 -10
  18. package/dist/modules/monitor/lib/jsError.d.ts +1 -1
  19. package/dist/modules/monitor/lib/jsError.js +57 -57
  20. package/dist/modules/monitor/lib/timing.d.ts +1 -1
  21. package/dist/modules/monitor/lib/timing.js +65 -65
  22. package/dist/modules/monitor/lib/xhr.d.ts +1 -1
  23. package/dist/modules/monitor/lib/xhr.js +41 -41
  24. package/dist/modules/monitor/utils/onload.d.ts +1 -1
  25. package/dist/modules/monitor/utils/onload.js +8 -8
  26. package/dist/modules/monitor/utils/tracker.d.ts +7 -7
  27. package/dist/modules/monitor/utils/tracker.js +49 -49
  28. package/dist/modules/number/index.d.ts +47 -47
  29. package/dist/modules/number/index.js +114 -114
  30. package/dist/modules/open-app/index.d.ts +84 -84
  31. package/dist/modules/open-app/index.js +244 -244
  32. package/dist/modules/sentry/index.d.ts +15 -15
  33. package/dist/modules/sentry/index.js +73 -73
  34. package/dist/modules/tools/index.d.ts +166 -166
  35. package/dist/modules/tools/index.js +382 -382
  36. package/dist/modules/upload/aliOss.d.ts +291 -291
  37. package/dist/modules/upload/aliOss.js +629 -626
  38. package/dist/modules/upload/index.d.ts +38 -39
  39. package/dist/modules/upload/index.js +44 -45
  40. package/dist/tsconfig.tsbuildinfo +1 -1
  41. package/dist/types/index.d.ts +3 -3
  42. package/dist/types/index.js +1 -1
  43. package/dist/types/modules/cookie/index.d.ts +27 -0
  44. package/dist/types/modules/date/index.d.ts +52 -0
  45. package/dist/types/modules/dom/index.d.ts +28 -0
  46. package/dist/types/modules/filter/index.d.ts +24 -0
  47. package/dist/types/modules/format/index.d.ts +15 -0
  48. package/dist/types/modules/match/index.d.ts +12 -0
  49. package/dist/types/modules/monitor/index.d.ts +3 -0
  50. package/dist/types/modules/monitor/lib/jsError.d.ts +1 -0
  51. package/dist/types/modules/monitor/lib/timing.d.ts +1 -0
  52. package/dist/types/modules/monitor/lib/xhr.d.ts +1 -0
  53. package/dist/types/modules/monitor/utils/onload.d.ts +1 -0
  54. package/dist/types/modules/monitor/utils/tracker.d.ts +7 -0
  55. package/dist/types/modules/number/index.d.ts +41 -0
  56. package/dist/types/modules/sentry/index.d.ts +15 -0
  57. package/dist/types/modules/tools/index.d.ts +166 -0
  58. package/dist/types/types/index.d.ts +3 -0
  59. package/package.json +88 -88
@@ -1,291 +1,291 @@
1
- /**
2
- * @file 阿里云OSS上传统一工具类 v4
3
- * @description 整合所有项目的aliOss业务逻辑,通过传参形式支持不同业务场景
4
- * @Author: wanghui
5
- * @createBy: @2025.11.17
6
- *
7
- * 使用示例:
8
- * ```typescript
9
- * import { createAliOssUploader } from '@haluo/util'
10
- *
11
- * // 创建上传实例,传入业务相关的API函数
12
- * const ossUploader = createAliOssUploader({
13
- * getSts: (params) => api.getSts(params),
14
- * darkWaterUploadImage: (params) => api.darkWaterUploadImage(params),
15
- * multiTransferImage: (params) => api.multiTransferImage(params),
16
- * generatePrePresignedUrl: (params) => api.generatePrePresignedUrl(params),
17
- * messageWarning: (msg) => window.$message.warning(msg)
18
- * })
19
- *
20
- * // 图片上传
21
- * ossUploader.ossUploadImage({
22
- * file: file,
23
- * businessType: 1500, // 业务类型 BusinessType
24
- * imageType: 'official', // nowater、official、panoram、forum、avatar、square、carport
25
- * quality: 0.7, // 压缩质量
26
- * batchTransfer: false, // 是否批量转换水印
27
- * notCompress: false, // 是否不压缩
28
- * idCard: false, // 是否身份证上传
29
- * onProgress: (e) => console.log(e.percent),
30
- * onSuccess: (val) => console.log(val),
31
- * onError: (err) => console.error(err)
32
- * })
33
- *
34
- * // 文件上传
35
- * ossUploader.ossUploadFile({
36
- * file: file,
37
- * businessType: 1500, // 业务类型 BusinessType
38
- * onProgress: (e) => console.log(e.percent),
39
- * onSuccess: (val) => console.log(val),
40
- * onError: (err) => console.error(err)
41
- * })
42
- * ```
43
- */
44
- /**
45
- * 业务类型枚举
46
- */
47
- export declare enum BusinessType {
48
- /** 客户端上传图片(跟用户相关) */
49
- /** 隐私图片 */
50
- CREDIT = 130541736,
51
- /** 内容 */
52
- CONTENT = 101300784,
53
- /** 头像 */
54
- AVATAR = 134539448,
55
- /** 二手车 */
56
- USEDCAR = 171978237,
57
- /** 商城 */
58
- MALL = 115259415,
59
- /** 魔友圈 */
60
- HOOP = 155669648,
61
- /** 用户 */
62
- USER = 170244368,
63
- /** 骑行 */
64
- CYCLING = 165103952,
65
- /** 玩车 */
66
- MOTORCYCLE = 151637735,
67
- /** 租车 */
68
- RENTALCAR = 149095014,
69
- /** 经销商 */
70
- SHOP = 172655993,
71
- /** 财务 */
72
- FINANCE = 188717541,
73
- /** 反馈 */
74
- FEEDBACK = 182411383,
75
- /** 驾校 */
76
- DRIVINGSCHOOL = 172137757,
77
- /** 评论图片 */
78
- REPLY = 195929698,
79
- /** 厂家 */
80
- FACTORY = 118733601,
81
- /** 骑行数据 */
82
- CYCLINGDATA = 148681294,
83
- /** 动图 */
84
- GIF = 191290831,
85
- /** 其他(原则上不可以使用) */
86
- OTHER = 100694193,
87
- /** 运营文件(跟用户无关) */
88
- /** apk */
89
- APK = 154033062,
90
- /** 证书 */
91
- CERT = 142668067,
92
- /** oss数据文件(xlxs等) */
93
- OSSDATA = 105038102,
94
- /** 数据(题库等) */
95
- DB = 180241065,
96
- /** PDF */
97
- PDF = 198157532,
98
- /** 视频 */
99
- VIDEOOPS = 172023381,
100
- /** 运营图片(跟用户无关) */
101
- /** 商城运营图片 */
102
- MALLOPS = 137563987,
103
- /** 运营图片 */
104
- OSSOPS = 157532694,
105
- /** 车库运营图片 */
106
- CARPORT = 137563987
107
- }
108
- /**
109
- * bucket 图片类型后缀枚举
110
- */
111
- export declare const SuffixEnum: {
112
- readonly nowater: "!nowater";
113
- readonly official: "!official";
114
- readonly panoram: "!panoram";
115
- readonly forum: "!forum";
116
- readonly avatar: "!avatar";
117
- readonly square: "!square";
118
- readonly carport: "!carport";
119
- };
120
- /** 图片类型 */
121
- export type ImageType = keyof typeof SuffixEnum;
122
- /**
123
- * 上传结果接口
124
- */
125
- export interface UploadResult {
126
- imgUrl: string;
127
- imgOrgUrl: string;
128
- fileName: string;
129
- name: string;
130
- url?: string;
131
- bucket?: string;
132
- [key: string]: any;
133
- }
134
- /**
135
- * 上传选项接口
136
- */
137
- export interface UploadOption {
138
- file: File;
139
- businessType: BusinessType | number;
140
- imageType?: ImageType | string;
141
- quality?: number;
142
- batchTransfer?: boolean;
143
- notCompress?: boolean;
144
- idCard?: boolean;
145
- onProgress?: (e: {
146
- percent: number;
147
- }) => void;
148
- onSuccess?: (val: UploadResult) => void;
149
- onError?: (err: string) => void;
150
- }
151
- /**
152
- * API响应接口
153
- */
154
- interface ApiResponse<T = any> {
155
- data: {
156
- code: number;
157
- data: T;
158
- };
159
- }
160
- /**
161
- * API函数配置接口
162
- * 业务相关的API通过此接口传入,实现业务逻辑解耦
163
- */
164
- export interface AliOssApiConfig {
165
- /** 获取STS,POST V4签名独有的表单元素- 必需 */
166
- /** businessType: 业务编码(必传), docType: 文件格式如png(必传),size: _1024_567(可选) */
167
- getSts: (params: {
168
- businessType: BusinessType;
169
- docType: string;
170
- size?: string;
171
- }) => any;
172
- /** 暗水印上传接口 - 可选,用于carport类型 */
173
- darkWaterUploadImage?: (params: {
174
- file: File;
175
- }) => Promise<ApiResponse<string>>;
176
- /** 批量转换水印接口 - 可选,用于batchTransfer */
177
- multiTransferImage?: (params: {
178
- file: File;
179
- }) => Promise<ApiResponse<string>>;
180
- /** 生成预签名URL接口 - 可选,用于idCard */
181
- generatePrePresignedUrl?: (params: {
182
- objectId: string;
183
- expireMils: number;
184
- }) => Promise<ApiResponse<string>>;
185
- /** 消息提示函数 - 可选 */
186
- messageWarning?: (msg: string) => void;
187
- }
188
- /**
189
- * 阿里云OSS上传类
190
- * 整合所有项目的aliOss业务逻辑,通过依赖注入实现业务API解耦
191
- */
192
- export declare class AliOssClass {
193
- private static instance;
194
- private apiConfig;
195
- private constructor();
196
- static getInstance(apiConfig: AliOssApiConfig): AliOssClass;
197
- /**
198
- * 判断文件是否为图片(支持常见图片格式)
199
- * @param {File} file - 上传的File对象
200
- * @returns {boolean} 是否为图片
201
- */
202
- isImageFile(file: File): boolean;
203
- /**
204
- * 通过V4签名上传
205
- * @param file 上传的文件
206
- * @param businessType 业务类型
207
- * @param size 文件的尺寸
208
- * @param resolve Promse
209
- * @param reject Promse
210
- * @returns 上传图片结果
211
- */
212
- upload(params: {
213
- file: any;
214
- businessType: BusinessType;
215
- size?: string;
216
- resolve?: Function;
217
- reject?: Function;
218
- callbacks?: any;
219
- }): Promise<{}>;
220
- /**
221
- * 预加载图片获取尺寸
222
- * @param file 文件对象
223
- * @returns 图片对象
224
- */
225
- getImageInfo(file: File): Promise<HTMLImageElement>;
226
- /**
227
- * 检查图片是否为长图
228
- * @param File 图片
229
- * @returns 是否为长图
230
- */
231
- private isLongImage;
232
- /**
233
- * 加载图片并返回结果
234
- * 用于标准的图片上传场景
235
- * @param params 加载参数
236
- */
237
- loadImage(params: {
238
- url: string;
239
- val: any;
240
- file: File;
241
- option: UploadOption;
242
- resolve: (value: any) => void;
243
- reject: (reason?: any) => void;
244
- }): void;
245
- /**
246
- * 图片上传主方法
247
- * 整合了所有项目的图片上传逻辑
248
- * @param option 上传选项
249
- * @returns Promise
250
- */
251
- ossUploadImage: (option: UploadOption) => Promise<any>;
252
- /**
253
- * 文件上传方法
254
- * 支持视频、文档、APK等文件类型
255
- * @param option 上传选项
256
- * @returns Promise
257
- */
258
- ossUploadFile: (option: UploadOption) => Promise<any>;
259
- /**
260
- * 纯图片上传 pureOssUploadImage
261
- * 注释:图片上传,不压缩
262
- * @param option 上传选项
263
- * @returns Promise
264
- */
265
- pureOssUploadImage: (option: UploadOption) => Promise<any>;
266
- /**
267
- * 商品详情图片上传(不建议直接使用,请使用 pureOssUploadImage)
268
- * 注释:图片上传,不压缩
269
- * @param option 上传选项
270
- * @returns Promise
271
- */
272
- shopDetailUpdate: (option: UploadOption) => Promise<any>;
273
- /**
274
- * 业务类型枚举
275
- */
276
- businessType: typeof BusinessType;
277
- }
278
- /**
279
- * 创建阿里云OSS上传器(工厂函数)
280
- * @param apiConfig API配置对象,包含业务相关的API函数
281
- * @returns OSS上传器实例
282
- */
283
- export declare function createAliOssUploader(apiConfig: AliOssApiConfig): AliOssClass;
284
- /**
285
- * 默认导出
286
- */
287
- declare const _default: {
288
- createAliOssUploader: typeof createAliOssUploader;
289
- BusinessType: typeof BusinessType;
290
- };
291
- export default _default;
1
+ /**
2
+ * @file 阿里云OSS上传统一工具类 v4
3
+ * @description 整合所有项目的aliOss业务逻辑,通过传参形式支持不同业务场景
4
+ * @Author: wanghui
5
+ * @createBy: @2025.11.17
6
+ *
7
+ * 使用示例:
8
+ * ```typescript
9
+ * import { createAliOssUploader } from '@haluo/util'
10
+ *
11
+ * // 创建上传实例,传入业务相关的API函数
12
+ * const ossUploader = createAliOssUploader({
13
+ * getSts: (params) => api.getSts(params),
14
+ * darkWaterUploadImage: (params) => api.darkWaterUploadImage(params),
15
+ * multiTransferImage: (params) => api.multiTransferImage(params),
16
+ * generatePrePresignedUrl: (params) => api.generatePrePresignedUrl(params),
17
+ * messageWarning: (msg) => window.$message.warning(msg)
18
+ * })
19
+ *
20
+ * // 图片上传
21
+ * ossUploader.ossUploadImage({
22
+ * file: file,
23
+ * businessType: BusinessType.CONTENT, // 业务类型 BusinessType
24
+ * imageType: 'official', // nowater、official、panoram、forum、avatar、square、carport
25
+ * quality: 0.7, // 压缩质量
26
+ * batchTransfer: false, // 是否批量转换水印
27
+ * notCompress: false, // 是否不压缩
28
+ * idCard: false, // 是否身份证上传
29
+ * onProgress: (e) => console.log(e.percent),
30
+ * onSuccess: (val) => console.log(val),
31
+ * onError: (err) => console.error(err)
32
+ * })
33
+ *
34
+ * // 文件上传
35
+ * ossUploader.ossUploadFile({
36
+ * file: file,
37
+ * businessType: BusinessType.CONTENT, // 业务类型 BusinessType
38
+ * onProgress: (e) => console.log(e.percent),
39
+ * onSuccess: (val) => console.log(val),
40
+ * onError: (err) => console.error(err)
41
+ * })
42
+ * ```
43
+ */
44
+ /**
45
+ * 业务类型枚举
46
+ */
47
+ export declare enum BusinessType {
48
+ /** 客户端上传图片(跟用户相关) */
49
+ /** 隐私图片 */
50
+ CREDIT = 130541736,
51
+ /** 内容 */
52
+ CONTENT = 101300784,
53
+ /** 头像 */
54
+ AVATAR = 134539448,
55
+ /** 二手车 */
56
+ USEDCAR = 171978237,
57
+ /** 商城 */
58
+ MALL = 115259415,
59
+ /** 魔友圈 */
60
+ HOOP = 155669648,
61
+ /** 用户 */
62
+ USER = 170244368,
63
+ /** 骑行 */
64
+ CYCLING = 165103952,
65
+ /** 玩车 */
66
+ MOTORCYCLE = 151637735,
67
+ /** 租车 */
68
+ RENTALCAR = 149095014,
69
+ /** 经销商 */
70
+ SHOP = 172655993,
71
+ /** 财务 */
72
+ FINANCE = 188717541,
73
+ /** 反馈 */
74
+ FEEDBACK = 182411383,
75
+ /** 驾校 */
76
+ DRIVINGSCHOOL = 172137757,
77
+ /** 评论图片 */
78
+ REPLY = 195929698,
79
+ /** 厂家 */
80
+ FACTORY = 118733601,
81
+ /** 骑行数据 */
82
+ CYCLINGDATA = 148681294,
83
+ /** 动图 */
84
+ GIF = 191290831,
85
+ /** 其他(原则上不可以使用) */
86
+ OTHER = 100694193,
87
+ /** 运营文件(跟用户无关) */
88
+ /** apk */
89
+ APK = 154033062,
90
+ /** 证书 */
91
+ CERT = 142668067,
92
+ /** oss数据文件(xlxs等) */
93
+ OSSDATA = 105038102,
94
+ /** 数据(题库等) */
95
+ DB = 180241065,
96
+ /** PDF */
97
+ PDF = 198157532,
98
+ /** 视频 */
99
+ VIDEOOPS = 172023381,
100
+ /** 运营图片(跟用户无关) */
101
+ /** 商城运营图片 */
102
+ MALLOPS = 175705586,
103
+ /** 运营图片 */
104
+ OSSOPS = 157532694,
105
+ /** 车库运营图片 */
106
+ CARPORT = 137563987
107
+ }
108
+ /**
109
+ * bucket 图片类型后缀枚举
110
+ */
111
+ export declare const SuffixEnum: {
112
+ readonly nowater: "!nowater";
113
+ readonly official: "!official";
114
+ readonly panoram: "!panoram";
115
+ readonly forum: "!forum";
116
+ readonly avatar: "!avatar";
117
+ readonly square: "!square";
118
+ readonly carport: "!carport";
119
+ };
120
+ /** 图片类型 */
121
+ export type ImageType = keyof typeof SuffixEnum;
122
+ /**
123
+ * 上传结果接口
124
+ */
125
+ export interface UploadResult {
126
+ imgUrl: string;
127
+ imgOrgUrl: string;
128
+ fileName: string;
129
+ name: string;
130
+ url?: string;
131
+ bucket?: string;
132
+ [key: string]: any;
133
+ }
134
+ /**
135
+ * 上传选项接口
136
+ */
137
+ export interface UploadOption {
138
+ file: File;
139
+ businessType: BusinessType | number;
140
+ imageType?: ImageType | string;
141
+ quality?: number;
142
+ batchTransfer?: boolean;
143
+ notCompress?: boolean;
144
+ idCard?: boolean;
145
+ onProgress?: (e: {
146
+ percent: number;
147
+ }) => void;
148
+ onSuccess?: (val: UploadResult) => void;
149
+ onError?: (err: string) => void;
150
+ }
151
+ /**
152
+ * API响应接口
153
+ */
154
+ interface ApiResponse<T = any> {
155
+ data: {
156
+ code: number;
157
+ data: T;
158
+ };
159
+ }
160
+ /**
161
+ * API函数配置接口
162
+ * 业务相关的API通过此接口传入,实现业务逻辑解耦
163
+ */
164
+ export interface AliOssApiConfig {
165
+ /** 获取STS,POST V4签名独有的表单元素- 必需 */
166
+ /** businessType: 业务编码(必传), docType: 文件格式如png(必传),size: _1024_567(可选) */
167
+ getSts: (params: {
168
+ businessType: BusinessType;
169
+ docType: string;
170
+ size?: string;
171
+ }) => any;
172
+ /** 暗水印上传接口 - 可选,用于carport类型 */
173
+ darkWaterUploadImage?: (params: {
174
+ file: File;
175
+ }) => Promise<ApiResponse<string>>;
176
+ /** 批量转换水印接口 - 可选,用于batchTransfer */
177
+ multiTransferImage?: (params: {
178
+ file: File;
179
+ }) => Promise<ApiResponse<string>>;
180
+ /** 生成预签名URL接口 - 可选,用于idCard */
181
+ generatePrePresignedUrl?: (params: {
182
+ objectId: string;
183
+ expireMils: number;
184
+ }) => Promise<ApiResponse<string>>;
185
+ /** 消息提示函数 - 可选 */
186
+ messageWarning?: (msg: string) => void;
187
+ }
188
+ /**
189
+ * 阿里云OSS上传类
190
+ * 整合所有项目的aliOss业务逻辑,通过依赖注入实现业务API解耦
191
+ */
192
+ export declare class AliOssClass {
193
+ private static instance;
194
+ private apiConfig;
195
+ private constructor();
196
+ static getInstance(apiConfig: AliOssApiConfig): AliOssClass;
197
+ /**
198
+ * 判断文件是否为图片(支持常见图片格式)
199
+ * @param {File} file - 上传的File对象
200
+ * @returns {boolean} 是否为图片
201
+ */
202
+ isImageFile(file: File): boolean;
203
+ /**
204
+ * 通过V4签名上传
205
+ * @param file 上传的文件
206
+ * @param businessType 业务类型
207
+ * @param size 文件的尺寸
208
+ * @param resolve Promse
209
+ * @param reject Promse
210
+ * @returns 上传图片结果
211
+ */
212
+ upload(params: {
213
+ file: any;
214
+ businessType: BusinessType;
215
+ size?: string;
216
+ resolve?: Function;
217
+ reject?: Function;
218
+ callbacks?: any;
219
+ }): Promise<{}>;
220
+ /**
221
+ * 预加载图片获取尺寸
222
+ * @param file 文件对象
223
+ * @returns 图片对象
224
+ */
225
+ getImageInfo(file: File): Promise<HTMLImageElement>;
226
+ /**
227
+ * 检查图片是否为长图
228
+ * @param File 图片
229
+ * @returns 是否为长图
230
+ */
231
+ private isLongImage;
232
+ /**
233
+ * 加载图片并返回结果
234
+ * 用于标准的图片上传场景
235
+ * @param params 加载参数
236
+ */
237
+ loadImage(params: {
238
+ url: string;
239
+ val: any;
240
+ file: File;
241
+ option: UploadOption;
242
+ resolve: (value: any) => void;
243
+ reject: (reason?: any) => void;
244
+ }): void;
245
+ /**
246
+ * 图片上传主方法
247
+ * 整合了所有项目的图片上传逻辑
248
+ * @param option 上传选项
249
+ * @returns Promise
250
+ */
251
+ ossUploadImage: (option: UploadOption) => Promise<any>;
252
+ /**
253
+ * 文件上传方法
254
+ * 支持视频、文档、APK等文件类型
255
+ * @param option 上传选项
256
+ * @returns Promise
257
+ */
258
+ ossUploadFile: (option: UploadOption) => Promise<any>;
259
+ /**
260
+ * 纯图片上传 pureOssUploadImage
261
+ * 注释:图片上传,不压缩
262
+ * @param option 上传选项
263
+ * @returns Promise
264
+ */
265
+ pureOssUploadImage: (option: UploadOption) => Promise<any>;
266
+ /**
267
+ * 商品详情图片上传(不建议直接使用,请使用 pureOssUploadImage)
268
+ * 注释:图片上传,不压缩
269
+ * @param option 上传选项
270
+ * @returns Promise
271
+ */
272
+ shopDetailUpdate: (option: UploadOption) => Promise<any>;
273
+ /**
274
+ * 业务类型枚举
275
+ */
276
+ businessType: typeof BusinessType;
277
+ }
278
+ /**
279
+ * 创建阿里云OSS上传器(工厂函数,内部已实现单例)
280
+ * @param apiConfig API配置对象,包含业务相关的API函数
281
+ * @returns OSS上传器实例
282
+ */
283
+ export declare function createAliOssUploader(apiConfig: AliOssApiConfig): AliOssClass;
284
+ /**
285
+ * 默认导出
286
+ */
287
+ declare const _default: {
288
+ createAliOssUploader: typeof createAliOssUploader;
289
+ BusinessType: typeof BusinessType;
290
+ };
291
+ export default _default;