@playkit-js/playkit-js-providers 2.40.1 → 2.41.0-canary.0-2452bbc

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 (135) hide show
  1. package/dist/index.d.ts +1624 -0
  2. package/dist/playkit-analytics-service.js +1 -1
  3. package/dist/playkit-analytics-service.js.map +1 -1
  4. package/dist/playkit-bookmark-service.js +1 -1
  5. package/dist/playkit-bookmark-service.js.map +1 -1
  6. package/dist/playkit-ott-provider.js +1 -1
  7. package/dist/playkit-ott-provider.js.map +1 -1
  8. package/dist/playkit-ovp-provider.js +1 -1
  9. package/dist/playkit-ovp-provider.js.map +1 -1
  10. package/dist/playkit-stats-service.js +1 -1
  11. package/dist/playkit-stats-service.js.map +1 -1
  12. package/dist/tsdoc-metadata.json +11 -0
  13. package/flow-typed/types/media-config-sources.js +1 -1
  14. package/flow-typed/types/media-sources.js +1 -1
  15. package/package.json +48 -45
  16. package/playkit-analytics-service/package.json +5 -0
  17. package/playkit-bookmark-service/package.json +5 -0
  18. package/playkit-ott-provider/package.json +5 -0
  19. package/playkit-ovp-provider/package.json +5 -0
  20. package/playkit-stats-service/package.json +5 -0
  21. package/src/entities/bumper.ts +21 -0
  22. package/src/entities/drm.ts +47 -0
  23. package/src/entities/entry-list.ts +13 -0
  24. package/src/entities/image-source.ts +36 -0
  25. package/src/entities/media-entry.ts +104 -0
  26. package/src/entities/media-format.ts +47 -0
  27. package/src/entities/media-source.ts +70 -0
  28. package/src/entities/media-sources.ts +79 -0
  29. package/src/entities/playlist.ts +41 -0
  30. package/src/k-provider/common/base-provider-parser.ts +0 -0
  31. package/src/k-provider/common/base-provider.ts +112 -0
  32. package/src/k-provider/common/base-service-result.ts +56 -0
  33. package/src/k-provider/common/data-loader-manager.ts +115 -0
  34. package/src/k-provider/common/multi-request-builder.ts +111 -0
  35. package/src/k-provider/common/response-types/kaltura-access-control-message.ts +21 -0
  36. package/src/k-provider/common/response-types/kaltura-drm-playback-plugin-data.ts +38 -0
  37. package/src/k-provider/ott/config.ts +22 -0
  38. package/src/k-provider/ott/index.ts +14 -0
  39. package/src/k-provider/ott/loaders/asset-list-loader.ts +68 -0
  40. package/src/k-provider/ott/loaders/asset-loader.ts +69 -0
  41. package/src/k-provider/ott/loaders/data-loader-manager.ts +15 -0
  42. package/src/k-provider/ott/loaders/session-loader.ts +62 -0
  43. package/src/k-provider/ott/provider-parser.ts +285 -0
  44. package/src/k-provider/ott/provider.ts +252 -0
  45. package/src/k-provider/ott/response-types/kaltura-asset.ts +105 -0
  46. package/src/k-provider/ott/response-types/kaltura-bumper-playback-plugin-data.ts +27 -0
  47. package/src/k-provider/ott/response-types/kaltura-playback-context.ts +73 -0
  48. package/src/k-provider/ott/response-types/kaltura-playback-source.ts +62 -0
  49. package/src/k-provider/ott/response-types/kaltura-rule-action.ts +25 -0
  50. package/src/k-provider/ott/services/asset-service.ts +50 -0
  51. package/src/k-provider/ott/services/bookmark/bookmark-service.ts +48 -0
  52. package/src/k-provider/ott/services/bookmark/index.ts +11 -0
  53. package/src/k-provider/ott/services/ott-service.ts +33 -0
  54. package/src/k-provider/ott/services/user-service.ts +31 -0
  55. package/src/k-provider/ovp/config.ts +28 -0
  56. package/src/k-provider/ovp/external-captions-builder.ts +37 -0
  57. package/src/k-provider/ovp/index.ts +13 -0
  58. package/src/k-provider/ovp/loaders/data-loader-manager.ts +17 -0
  59. package/src/k-provider/ovp/loaders/entry-list-loader.ts +69 -0
  60. package/src/k-provider/ovp/loaders/media-entry-loader.ts +84 -0
  61. package/src/k-provider/ovp/loaders/playlist-loader.ts +69 -0
  62. package/src/k-provider/ovp/loaders/session-loader.ts +62 -0
  63. package/src/k-provider/ovp/loaders/ui-config-loader.ts +71 -0
  64. package/src/k-provider/ovp/play-source-url-builder.ts +59 -0
  65. package/src/k-provider/ovp/provider-parser.ts +461 -0
  66. package/src/k-provider/ovp/provider.ts +358 -0
  67. package/src/k-provider/ovp/regex-action-handler.ts +149 -0
  68. package/src/k-provider/ovp/request-params/base-entry-response-profile.ts +28 -0
  69. package/src/k-provider/ovp/response-types/index.ts +21 -0
  70. package/src/k-provider/ovp/response-types/kaltura-access-control-modify-request-host-regex-action.ts +35 -0
  71. package/src/k-provider/ovp/response-types/kaltura-base-entry-list-response.ts +30 -0
  72. package/src/k-provider/ovp/response-types/kaltura-bumper.ts +25 -0
  73. package/src/k-provider/ovp/response-types/kaltura-flavor-asset.ts +108 -0
  74. package/src/k-provider/ovp/response-types/kaltura-media-entries.ts +28 -0
  75. package/src/k-provider/ovp/response-types/kaltura-media-entry.ts +189 -0
  76. package/src/k-provider/ovp/response-types/kaltura-metadata-list-response.ts +22 -0
  77. package/src/k-provider/ovp/response-types/kaltura-metadata.ts +50 -0
  78. package/src/k-provider/ovp/response-types/kaltura-playback-context.ts +95 -0
  79. package/src/k-provider/ovp/response-types/kaltura-playback-source.ts +89 -0
  80. package/src/k-provider/ovp/response-types/kaltura-playlist.ts +33 -0
  81. package/src/k-provider/ovp/response-types/kaltura-rule-action.ts +27 -0
  82. package/src/k-provider/ovp/response-types/kaltura-ui-conf-response.ts +89 -0
  83. package/src/k-provider/ovp/response-types/kaltura-user-entry-list-response.ts +30 -0
  84. package/src/k-provider/ovp/response-types/kaltura-user-entry.ts +57 -0
  85. package/src/k-provider/ovp/services/analytics/analytics-service.ts +58 -0
  86. package/src/k-provider/ovp/services/analytics/index.ts +11 -0
  87. package/src/k-provider/ovp/services/base-entry-service.ts +75 -0
  88. package/src/k-provider/ovp/services/meta-data-service.ts +29 -0
  89. package/src/k-provider/ovp/services/ovp-service.ts +32 -0
  90. package/src/k-provider/ovp/services/playlist-service.ts +95 -0
  91. package/src/k-provider/ovp/services/session-service.ts +27 -0
  92. package/src/k-provider/ovp/services/stats/index.ts +11 -0
  93. package/src/k-provider/ovp/services/stats/stats-service.ts +32 -0
  94. package/src/k-provider/ovp/services/ui-conf-service.ts +32 -0
  95. package/src/types/adapter-data-config.ts +1 -0
  96. package/src/types/caption-type.ts +1 -0
  97. package/src/types/drm-data.ts +5 -0
  98. package/src/types/entry-list.ts +6 -0
  99. package/src/types/env-config.ts +7 -0
  100. package/src/types/external-caption-object.ts +7 -0
  101. package/src/types/filter-options.ts +3 -0
  102. package/src/types/index.ts +34 -0
  103. package/src/types/loader.ts +7 -0
  104. package/src/types/media-config-metadata.ts +13 -0
  105. package/src/types/media-config-session.ts +6 -0
  106. package/src/types/media-config-sources.ts +20 -0
  107. package/src/types/media-config.ts +8 -0
  108. package/src/types/media-entry.ts +16 -0
  109. package/src/types/media-format.ts +5 -0
  110. package/src/types/media-info.ts +21 -0
  111. package/src/types/media-source.ts +12 -0
  112. package/src/types/media-sources.ts +11 -0
  113. package/src/types/network-retry-parameters.ts +5 -0
  114. package/src/types/playback-context.ts +10 -0
  115. package/src/types/playlist-info.ts +4 -0
  116. package/src/types/playlist-item.ts +5 -0
  117. package/src/types/playlist-metadata.ts +4 -0
  118. package/src/types/playlist.ts +10 -0
  119. package/src/types/poster.ts +5 -0
  120. package/src/types/provider-options.ts +17 -0
  121. package/src/types/request-loader.ts +6 -0
  122. package/src/util/clone.ts +23 -0
  123. package/src/util/error/category.ts +11 -0
  124. package/src/util/error/code.ts +77 -0
  125. package/src/util/error/error.ts +47 -0
  126. package/src/util/error/severity.ts +21 -0
  127. package/src/util/logger.ts +108 -0
  128. package/src/util/param.ts +45 -0
  129. package/src/util/request-builder.ts +187 -0
  130. package/src/util/xml-parser.ts +39 -0
  131. package/CHANGELOG.md +0 -959
  132. package/samples/ott/bookmark.html +0 -23
  133. package/samples/ott/provider.html +0 -28
  134. package/samples/ovp/provider.html +0 -30
  135. package/samples/ovp/stats.html +0 -17
@@ -0,0 +1,13 @@
1
+ export type ProviderMediaConfigMetadataObject = {
2
+ name: string;
3
+ description?: string;
4
+ mediaType?: string;
5
+ contextType?: string;
6
+ metas?: any;
7
+ tags?: any;
8
+ epgId?: string;
9
+ recordingId?: string;
10
+ updatedAt?: number;
11
+ creatorId?: string;
12
+ views?: number;
13
+ };
@@ -0,0 +1,6 @@
1
+ export type ProviderMediaConfigSessionObject = {
2
+ partnerId: number;
3
+ uiConfId?: number;
4
+ ks?: string;
5
+ isAnonymous?: boolean;
6
+ };
@@ -0,0 +1,20 @@
1
+ import {ImageSource} from '../entities/image-source';
2
+ import {ProviderMediaConfigMetadataObject} from './media-config-metadata';
3
+ import {PKExternalCaptionObject} from './external-caption-object';
4
+ import {ProviderMediaSourceObject} from './media-source';
5
+
6
+ export type ProviderMediaConfigSourcesObject = {
7
+ dash: Array<ProviderMediaSourceObject>;
8
+ hls: Array<ProviderMediaSourceObject>;
9
+ progressive: Array<ProviderMediaSourceObject>;
10
+ image: Array<ImageSource>;
11
+ duration?: number;
12
+ type: string;
13
+ id?: string;
14
+ poster?: string | Array<any>;
15
+ dvr: boolean;
16
+ vr?: any;
17
+ metadata: ProviderMediaConfigMetadataObject;
18
+ captions?: Array<PKExternalCaptionObject>;
19
+ downloadUrl?: string;
20
+ };
@@ -0,0 +1,8 @@
1
+ import {ProviderMediaConfigSessionObject} from './media-config-session';
2
+ import {ProviderMediaConfigSourcesObject} from './media-config-sources';
3
+
4
+ export type ProviderMediaConfigObject = {
5
+ session: ProviderMediaConfigSessionObject;
6
+ sources: ProviderMediaConfigSourcesObject;
7
+ plugins: {[plugin: string]: any};
8
+ };
@@ -0,0 +1,16 @@
1
+ import {ProviderMediaSourcesObject} from './media-sources';
2
+ import {Poster} from './poster';
3
+
4
+ export type ProviderMediaEntryObject = {
5
+ id?: string;
6
+ name?: string;
7
+ sources: ProviderMediaSourcesObject;
8
+ duration?: number;
9
+ dvrStatus?: number;
10
+ status?: number;
11
+ metadata: any;
12
+ type: string;
13
+ poster?: string | Poster[];
14
+ downloadUrl?: string;
15
+ assetReferenceType?: string;
16
+ };
@@ -0,0 +1,5 @@
1
+ export type ProviderMediaFormatType = {
2
+ name: string;
3
+ mimeType: string;
4
+ pathExt: string;
5
+ };
@@ -0,0 +1,21 @@
1
+ import {AdapterDataConfig} from './adapter-data-config';
2
+
3
+ export type OVPProviderMediaInfoObject = {
4
+ entryId?: string;
5
+ referenceId?: string;
6
+ ks?: string;
7
+ };
8
+
9
+ export type OTTProviderMediaInfoObject = OVPProviderMediaInfoObject & {
10
+ mediaType: string;
11
+ contextType: string;
12
+ protocol?: string;
13
+ fileIds?: string;
14
+ streamerType?: string;
15
+ urlType?: string;
16
+ adapterData?: AdapterDataConfig;
17
+ assetReferenceType?: string;
18
+ formats?: Array<string>;
19
+ };
20
+
21
+ export type ProviderMediaInfoObject = OVPProviderMediaInfoObject | OTTProviderMediaInfoObject;
@@ -0,0 +1,12 @@
1
+ import {ProviderDrmDataObject} from './drm-data';
2
+
3
+ export type ProviderMediaSourceObject = {
4
+ id: string;
5
+ url: string;
6
+ mimetype: string;
7
+ bandwidth?: number;
8
+ width?: number;
9
+ height?: number;
10
+ label?: string;
11
+ drmData?: Array<ProviderDrmDataObject>;
12
+ };
@@ -0,0 +1,11 @@
1
+ import {ImageSource} from '../entities/image-source';
2
+ import {ProviderMediaSourceObject} from './media-source';
3
+ import {PKExternalCaptionObject} from './external-caption-object';
4
+
5
+ export type ProviderMediaSourcesObject = {
6
+ progressive: Array<ProviderMediaSourceObject>;
7
+ dash: Array<ProviderMediaSourceObject>;
8
+ hls: Array<ProviderMediaSourceObject>;
9
+ image: Array<ImageSource>;
10
+ captions?: Array<PKExternalCaptionObject>;
11
+ };
@@ -0,0 +1,5 @@
1
+ export type ProviderNetworkRetryParameters = {
2
+ async: boolean;
3
+ timeout?: number;
4
+ maxAttempts?: number;
5
+ };
@@ -0,0 +1,10 @@
1
+ import {AdapterDataConfig} from './adapter-data-config';
2
+
3
+ export type ProviderPlaybackContextOptions = {
4
+ mediaProtocol?: string;
5
+ assetFileIds?: string;
6
+ context?: string;
7
+ streamerType?: string;
8
+ urlType?: string;
9
+ adapterData?: AdapterDataConfig;
10
+ };
@@ -0,0 +1,4 @@
1
+ export type ProviderPlaylistInfoObject = {
2
+ playlistId: string;
3
+ ks?: string;
4
+ };
@@ -0,0 +1,5 @@
1
+ import {ProviderMediaConfigSourcesObject} from './media-config-sources';
2
+
3
+ export type ProviderPlaylistItemObject = {
4
+ sources: ProviderMediaConfigSourcesObject;
5
+ };
@@ -0,0 +1,4 @@
1
+ export type ProviderPlaylistMetadataObject = {
2
+ name: string;
3
+ description: string;
4
+ };
@@ -0,0 +1,10 @@
1
+ import {ProviderPlaylistMetadataObject} from './playlist-metadata';
2
+ import {ProviderPlaylistItemObject} from './playlist-item';
3
+
4
+ export type ProviderPlaylistObject = {
5
+ id: string;
6
+ metadata: ProviderPlaylistMetadataObject;
7
+ poster: string;
8
+ items: Array<ProviderPlaylistItemObject>;
9
+ playlistLastEntryId?: string;
10
+ };
@@ -0,0 +1,5 @@
1
+ export interface Poster {
2
+ width: number;
3
+ height: number;
4
+ url: string;
5
+ }
@@ -0,0 +1,17 @@
1
+ import {LoggerType} from '../util/logger';
2
+ import {ProviderEnvConfigObject} from './env-config';
3
+ import {ProviderNetworkRetryParameters} from './network-retry-parameters';
4
+ import {ProviderFilterOptionsObject} from './filter-options';
5
+
6
+ export type ProviderOptionsObject = {
7
+ partnerId: number;
8
+ widgetId?: string;
9
+ logger?: LoggerType;
10
+ ks?: string;
11
+ uiConfId?: number;
12
+ env?: ProviderEnvConfigObject;
13
+ networkRetryParameters?: ProviderNetworkRetryParameters;
14
+ filterOptions?: ProviderFilterOptionsObject;
15
+ ignoreServerConfig?: boolean;
16
+ loadThumbnailWithKs?: boolean;
17
+ };
@@ -0,0 +1,6 @@
1
+ import {ILoader} from './loader';
2
+
3
+ export type RequestLoader = {
4
+ loader: ILoader;
5
+ params: any;
6
+ };
@@ -0,0 +1,23 @@
1
+ const clone = (data): any => {
2
+ let node;
3
+ if (Array.isArray(data)) {
4
+ node = data.length > 0 ? data.slice(0) : [];
5
+ node.forEach((e, i) => {
6
+ if ((typeof e === 'object') || (Array.isArray(e) && e.length > 0)) {
7
+ node[i] = clone(e);
8
+ }
9
+ });
10
+ } else if (typeof data === 'object') {
11
+ node = Object.assign({}, data);
12
+ Object.keys(node).forEach(key => {
13
+ if ((typeof node[key] === 'object') || (Array.isArray(node[key]) && node[key].length > 0)) {
14
+ node[key] = clone(node[key]);
15
+ }
16
+ });
17
+ } else {
18
+ node = data;
19
+ }
20
+ return node;
21
+ };
22
+
23
+ export {clone};
@@ -0,0 +1,11 @@
1
+ type CategoryType = {[category: string]: number};
2
+
3
+ const Category: CategoryType = {
4
+ /** Errors from the network stack. */
5
+ NETWORK: 1,
6
+ SERVICE: 2,
7
+ PROVIDER: 3
8
+ };
9
+
10
+ export {Category};
11
+ export type {CategoryType};
@@ -0,0 +1,77 @@
1
+ type CodeType = {[code: string]: number};
2
+
3
+ const Code: CodeType = {
4
+ /**
5
+ * A network request was made using an unsupported URI scheme.
6
+ */
7
+ UNSUPPORTED_SCHEME: 1000,
8
+
9
+ /**
10
+ * An HTTP network request returned an HTTP status that indicated a failure.
11
+ */
12
+ BAD_HTTP_STATUS: 1001,
13
+
14
+ /**
15
+ * An HTTP network request failed with an error, but not from the server.
16
+ */
17
+ HTTP_ERROR: 1002,
18
+
19
+ /**
20
+ * A network request timed out.
21
+ */
22
+ TIMEOUT: 1003,
23
+
24
+ /**
25
+ * A network request was made with a malformed data URI.
26
+ */
27
+ MALFORMED_DATA_URI: 1004,
28
+
29
+ /**
30
+ * The server responsded with 2xx response, but it couldn't be parsed
31
+ */
32
+ BAD_SERVER_RESPONSE: 1005,
33
+
34
+ /**
35
+ * The server response had a valid structure but contained an error from the API
36
+ */
37
+ MULTIREQUEST_API_ERROR: 1006,
38
+
39
+ /**
40
+ * The server response had a valid structure and valid API result, but it did not match the request
41
+ */
42
+ API_RESPONSE_MISMATCH: 1007,
43
+
44
+ /**
45
+ * The server responded with an error
46
+ */
47
+ ERROR: 2000,
48
+
49
+ /**
50
+ * The server responded with a block action
51
+ */
52
+ BLOCK_ACTION: 2001,
53
+
54
+ /**
55
+ * The server responded with status import or pre convert
56
+ */
57
+ MEDIA_STATUS_NOT_READY: 2002,
58
+
59
+ /**
60
+ * The provider is missing mandatory parameter/s
61
+ */
62
+
63
+ MISSING_MANDATORY_PARAMS: 3000,
64
+
65
+ /**
66
+ * The server responded with empty sources objects (for HLS, Dash and progressive)
67
+ */
68
+ MISSING_PLAY_SOURCE: 3001,
69
+
70
+ /**
71
+ * The provider doesn't implement the called api
72
+ */
73
+ METHOD_NOT_IMPLEMENTED: 3002
74
+ };
75
+
76
+ export {Code};
77
+ export type {CodeType};
@@ -0,0 +1,47 @@
1
+ import getLogger from '../logger';
2
+ import {Severity} from './severity';
3
+ import type {SeverityType} from './severity';
4
+ import {Code} from './code';
5
+ import type {CodeType} from './code';
6
+ import {Category} from './category';
7
+ import type {CategoryType} from './category';
8
+
9
+ const CLASS_NAME: string = 'Error';
10
+
11
+ /**
12
+ * @classdesc This is a description of the error class.
13
+ */
14
+ export default class Error {
15
+ public severity: number;
16
+ public category: number;
17
+ public code: number;
18
+ public data: any;
19
+ /**
20
+ * @enum {number}
21
+ */
22
+ public static Severity: SeverityType = Severity;
23
+ /**
24
+ * @enum {number}
25
+ */
26
+ public static Category: CategoryType = Category;
27
+ /**
28
+ * @enum {number}
29
+ */
30
+ public static Code: CodeType = Code;
31
+ private static _logger: any = getLogger(CLASS_NAME);
32
+
33
+ /**
34
+ * @constructor
35
+ * @param {number} severity - error's severity
36
+ * @param {number} category - error's category.
37
+ * @param {number} code - error's code.
38
+ * @param {any} data - additional data for the error.
39
+ */
40
+ constructor(severity: number, category: number, code: number, data: any = {}) {
41
+ this.severity = severity;
42
+ this.category = category;
43
+ this.code = code;
44
+ this.data = data;
45
+ Error._logger.error(`Category:${category} | Code:${code} |`, data);
46
+ }
47
+ }
@@ -0,0 +1,21 @@
1
+ type SeverityType = {[severity: string]: number};
2
+
3
+ const Severity: SeverityType = {
4
+ /**
5
+ * An error occurred, but the Player is attempting to recover from the error.
6
+ *
7
+ * If the Player cannot ultimately recover, it still may not throw a CRITICAL
8
+ * error. For example, retrying for a media segment will never result in
9
+ * a CRITICAL error (the Player will just retry forever).
10
+ */
11
+ RECOVERABLE: 1,
12
+ /**
13
+ * A critical error that the library cannot recover from. These usually cause
14
+ * the Player to stop loading or updating. A new manifest must be loaded
15
+ * to reset the library.
16
+ */
17
+ CRITICAL: 2
18
+ };
19
+
20
+ export {Severity};
21
+ export type {SeverityType};
@@ -0,0 +1,108 @@
1
+ export type LogLevelObject = {value: number, name: string};
2
+ export type LogLevelType = {[level: string]: LogLevelObject};
3
+ export type loggerFunctionType = {
4
+ VERSION: string,
5
+ DEBUG: LogLevelObject,
6
+ ERROR: LogLevelObject,
7
+ INFO: LogLevelObject,
8
+ OFF: LogLevelObject,
9
+ TIME: LogLevelObject,
10
+ TRACE: LogLevelObject,
11
+ WARN: LogLevelObject,
12
+ createDefaultHandler: () => any
13
+ debug: () => any
14
+ enabledFor: () => any
15
+ error: () => any
16
+ get: () => any
17
+ getLevel: () => any
18
+ info: () => any
19
+ log: () => any
20
+ setHandler: () => any
21
+ setLevel: () => any
22
+ time: () => any
23
+ timeEnd: () => any
24
+ trace: () => any
25
+ useDefaults: () => any
26
+ warn: () => any
27
+ };
28
+
29
+ type LoggerType = {
30
+ getLogger: loggerFunctionType,
31
+ LogLevel: LogLevelType
32
+ };
33
+
34
+ const JsLogger = {
35
+ get: (): any => ({
36
+ VERSION: '',
37
+ DEBUG: {value: '', name: ''},
38
+ ERROR: {value: '', name: ''},
39
+ INFO: {value: '', name: ''},
40
+ OFF: {value: '', name: ''},
41
+ TIME: {value: '', name: ''},
42
+ TRACE: {value: '', name: ''},
43
+ WARN: {value: '', name: ''},
44
+ createDefaultHandler: (): any => {},
45
+ debug: (): any => {},
46
+ enabledFor: (): any => {},
47
+ error: (): any => {},
48
+ get: (): any => {},
49
+ getLevel: (): any => {},
50
+ info: (): any => {},
51
+ log: (): any => {},
52
+ setHandler: (): any => {},
53
+ setLevel: (): any => {},
54
+ time: (): any => {},
55
+ timeEnd: (): any => {},
56
+ trace: (): any => {},
57
+ useDefaults: (): any => {},
58
+ warn: (): any => {}
59
+ })
60
+ };
61
+
62
+ let LogLevel: LogLevelType = {};
63
+ /**
64
+ * set logger
65
+ * @param {LoggerType} logger - the logger
66
+ * @returns {void}
67
+ */
68
+ function setLogger(logger?: LoggerType): void {
69
+ if (logger && typeof logger.getLogger === 'function') {
70
+ JsLogger.get = logger.getLogger;
71
+ }
72
+ if (logger && logger.LogLevel) {
73
+ LogLevel = logger.LogLevel;
74
+ }
75
+ }
76
+
77
+ /**
78
+ * get a logger
79
+ * @param {?string} name - the logger name
80
+ * @returns {Object} - the logger class
81
+ */
82
+ function getLogger(name?: string): any {
83
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
84
+ //@ts-ignore
85
+ return JsLogger.get(name);
86
+ }
87
+
88
+ /**
89
+ * get the log level
90
+ * @param {?string} name - the logger name
91
+ * @returns {LogLevelObject} - the log level
92
+ */
93
+ function getLogLevel(name?: string): LogLevelObject {
94
+ return getLogger(name).getLevel();
95
+ }
96
+
97
+ /**
98
+ * sets the logger level
99
+ * @param {LogLevelObject} level - the log level
100
+ * @param {?string} name - the logger name
101
+ * @returns {void}
102
+ */
103
+ function setLogLevel(level: LogLevelObject, name?: string): void {
104
+ getLogger(name).setLevel(level);
105
+ }
106
+
107
+ export default getLogger;
108
+ export {getLogLevel, setLogLevel, setLogger, LogLevel, LoggerType};
@@ -0,0 +1,45 @@
1
+ const param = (a): any => {
2
+ const s: string[] = [],
3
+ rbracket = /\[\]$/,
4
+ isArray = function (obj): boolean {
5
+ return Object.prototype.toString.call(obj) === '[object Array]';
6
+ },
7
+ add = function (k, v): any {
8
+ v = typeof v === 'function' ? v() : v === null ? '' : v === undefined ? '' : v;
9
+ s[s.length] = encodeURIComponent(k) + '=' + encodeURIComponent(v);
10
+ },
11
+ buildParams = function (prefix, obj): any {
12
+ let i, len, key;
13
+
14
+ if (prefix) {
15
+ if (isArray(obj)) {
16
+ for (i = 0, len = obj.length; i < len; i++) {
17
+ if (rbracket.test(prefix)) {
18
+ add(prefix, obj[i]);
19
+ } else {
20
+ buildParams(prefix + ':' + (typeof obj[i] === 'object' ? i : ''), obj[i]);
21
+ }
22
+ }
23
+ } else if (obj && String(obj) === '[object Object]') {
24
+ for (key in obj) {
25
+ buildParams(prefix + ':' + key, obj[key]);
26
+ }
27
+ } else {
28
+ add(prefix, obj);
29
+ }
30
+ } else if (isArray(obj)) {
31
+ for (i = 0, len = obj.length; i < len; i++) {
32
+ add(obj[i].name, obj[i].value);
33
+ }
34
+ } else {
35
+ for (key in obj) {
36
+ buildParams(key, obj[key]);
37
+ }
38
+ }
39
+ return s;
40
+ };
41
+
42
+ return buildParams('', a).join('&').replace(/%20/g, '+');
43
+ };
44
+
45
+ export {param};