fiftyone.devicedetection.onpremise 4.4.137 → 4.4.139

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fiftyone.devicedetection.onpremise",
3
- "version": "4.4.137",
3
+ "version": "4.4.139",
4
4
  "description": "Device detection on-premise services for the 51Degrees Pipeline API",
5
5
  "keywords": [
6
6
  "51degrees",
@@ -54,6 +54,6 @@
54
54
  "files": [
55
55
  "build",
56
56
  "*.js",
57
- "*.ts"
57
+ "types"
58
58
  ]
59
59
  }
@@ -0,0 +1,28 @@
1
+ export = Component;
2
+ declare class Component {
3
+ /**
4
+ * Constructor for Component
5
+ *
6
+ * @param {object} metadata Metadata
7
+ * @param {object} engineMetadata Engine metadata
8
+ */
9
+ constructor(metadata: object, engineMetadata: object);
10
+ metadata: object;
11
+ engineMetadata: object;
12
+ /**
13
+ * @type {string}
14
+ */
15
+ name: string;
16
+ /**
17
+ * @type {object}
18
+ */
19
+ properties: object;
20
+ /**
21
+ * Yield component properties
22
+ *
23
+ * @generator
24
+ * @yields {Property}
25
+ * @returns {void}
26
+ */
27
+ getProperties(): void;
28
+ }
@@ -0,0 +1,12 @@
1
+ export let dataUpdateUrl: string;
2
+ export let deviceIdDescription: string;
3
+ export let userAgentsDescription: string;
4
+ export let differenceDescription: string;
5
+ export let methodDescription: string;
6
+ export let matchedNodesDescription: string;
7
+ export let driftDescription: string;
8
+ export let iterationsDescription: string;
9
+ export let none: string;
10
+ export let performance: string;
11
+ export let combined: string;
12
+ export let predictive: string;
@@ -0,0 +1,26 @@
1
+ export = DeviceDetectionMissingPropertyService;
2
+ declare const DeviceDetectionMissingPropertyService_base: typeof import("fiftyone.pipeline.engines/types/missingPropertyService");
3
+ /**
4
+ * @typedef {import('fiftyone.pipeline.core').FlowElement} FlowElement
5
+ */
6
+ /**
7
+ * Instance of the MissingPropertyService class that checks if a
8
+ * property is available in the current dataFile
9
+ */
10
+ declare class DeviceDetectionMissingPropertyService extends DeviceDetectionMissingPropertyService_base {
11
+ /**
12
+ * Constructor for Missing Property Service that receives a requested property
13
+ * key that is missing in the data. If it is missing because the data does not
14
+ * exist in the data file that was chosen, it returns an error which
15
+ * states which data file the property can be found in.
16
+ *
17
+ * @param {string} key missing property key
18
+ * @param {FlowElement} flowElement the FlowElement the key was missing from
19
+ * @returns {never} throws an error
20
+ */
21
+ check(key: string, flowElement: FlowElement): never;
22
+ }
23
+ declare namespace DeviceDetectionMissingPropertyService {
24
+ export { FlowElement };
25
+ }
26
+ type FlowElement = import("fiftyone.pipeline.core/types/flowElement");
@@ -0,0 +1,21 @@
1
+ export = DeviceDetectionDataFile;
2
+ declare const DeviceDetectionDataFile_base: typeof import("fiftyone.pipeline.engines/types/dataFile");
3
+ /**
4
+ * Instance of DataFile class for the Device Detection Engine
5
+ * Extends datafile by providing a formatter for the DataFileUpdateService
6
+ * update url which contains the product, type and licensekeys.
7
+ * These paramaters are passed in to the datafile constructor's
8
+ * updateURLParams parameter
9
+ **/
10
+ declare class DeviceDetectionDataFile extends DeviceDetectionDataFile_base {
11
+ /**
12
+ * Constructor for Device Detection DataFile
13
+ *
14
+ * @param {object} options options for the datafile
15
+ * @param {string} options.useUrlFormatter whether to append default URL params for Data File download
16
+ **/
17
+ constructor({ useUrlFormatter, ...rest }: {
18
+ useUrlFormatter: string;
19
+ });
20
+ useUrlFormatter: string;
21
+ }
@@ -0,0 +1,121 @@
1
+ export = DeviceDetectionOnPremise;
2
+ declare const DeviceDetectionOnPremise_base: typeof import("fiftyone.pipeline.engines/types/engine");
3
+ /**
4
+ * On premise version of the 51Degrees Device Detection Engine
5
+ * Uses a data file to process evidence in FlowData and create results
6
+ * This datafile can automatically update when a new version is available
7
+ **/
8
+ declare class DeviceDetectionOnPremise extends DeviceDetectionOnPremise_base {
9
+ /**
10
+ * Constructor for Device Detection On Premise engine
11
+ *
12
+ * @param {object} options options for the engine
13
+ * @param {string} options.dataFilePath path to the datafile
14
+ * @param {boolean} options.autoUpdate whether the datafile
15
+ * should be registered with the data file update service
16
+ * @param {number} options.pollingInterval How often to poll for
17
+ * updates to the datafile (minutes)
18
+ * @param {number} options.updateTimeMaximumRandomisation
19
+ * Maximum randomisation offset in seconds to polling time interval
20
+ * @param {DataKeyedCache} options.cache an instance of the Cache class from
21
+ * Fiftyone.Pipeline.Engines. NOTE: This is no longer supported for
22
+ * on-premise engine.
23
+ * @param {string} options.dataUpdateUrl base url for the datafile
24
+ * update service
25
+ * @param {boolean} options.dataUpdateVerifyMd5 whether to check MD5 of datafile
26
+ * @param {boolean} options.dataUpdateUseUrlFormatter whether to append default URL params for Data File download
27
+ * @param {Array<string>} options.restrictedProperties list of properties the engine
28
+ * will be restricted to
29
+ * @param {string} options.licenceKeys license key(s) used by the
30
+ * data file update service. A key can be obtained from the
31
+ * 51Degrees website: https://51degrees.com/pricing.
32
+ * If you do not wish to use a key then you can specify
33
+ * an empty string, but this will cause automatic updates to
34
+ * be disabled.
35
+ * @param {boolean} options.download whether to download the datafile
36
+ * or store it in memory
37
+ * @param {string} options.performanceProfile options are:
38
+ * LowMemory, MaxPerformance, Balanced, BalancedTemp, HighPerformance
39
+ * @param {boolean} options.fileSystemWatcher whether to monitor the datafile
40
+ * path for changes
41
+ * @param {number} options.concurrency defaults to the number of cpus
42
+ * in the machine
43
+ * @param {boolean} options.reuseTempFile Indicates that an existing temp
44
+ * file may be used. This should be selected if multiple instances wish to
45
+ * use the same file to prevent high disk usage.
46
+ * @param {boolean} options.updateMatchedUserAgent True if the detection
47
+ * should record the matched characters from the target User-Agent
48
+ * @param {number} options.maxMatchedUserAgentLength Number of characters to
49
+ * consider in the matched User-Agent. Ignored if updateMatchedUserAgent
50
+ * is false
51
+ * @param {number} options.drift Set maximum drift in hash position to
52
+ * allow when processing HTTP headers.
53
+ * @param {number} options.difference Set the maximum difference to allow
54
+ * when processing HTTP headers. The difference is the difference
55
+ * in hash value between the hash that was found, and the hash
56
+ * that is being searched for. By default this is 0.
57
+ * @param {boolean} options.allowUnmatched True if there should be at least
58
+ * one matched node in order for the results to be
59
+ * considered valid. By default, this is false
60
+ * @param {boolean} options.createTempDataCopy If true, the engine will
61
+ * create a copy of the data file in a temporary location
62
+ * rather than using the file provided directly. If not
63
+ * loading all data into memory, this is required for
64
+ * automatic data updates to occur.
65
+ * @param {string} options.tempDataDir The directory to use for the
66
+ * temporary data copy if 'createTempDataCopy' is set to true.
67
+ * @param {boolean} options.updateOnStart whether to download / update
68
+ * the datafile on initialisation
69
+ */
70
+ constructor({ dataFilePath, autoUpdate, cache, dataUpdateUrl, dataUpdateVerifyMd5, dataUpdateUseUrlFormatter, restrictedProperties, licenceKeys, download, performanceProfile, reuseTempFile, updateMatchedUserAgent, maxMatchedUserAgentLength, drift, difference, concurrency, allowUnmatched, fileSystemWatcher, pollingInterval, updateTimeMaximumRandomisation, createTempDataCopy, tempDataDir, updateOnStart }: {
71
+ dataFilePath: string;
72
+ autoUpdate: boolean;
73
+ pollingInterval: number;
74
+ updateTimeMaximumRandomisation: number;
75
+ cache: DataKeyedCache;
76
+ dataUpdateUrl: string;
77
+ dataUpdateVerifyMd5: boolean;
78
+ dataUpdateUseUrlFormatter: boolean;
79
+ restrictedProperties: Array<string>;
80
+ licenceKeys: string;
81
+ download: boolean;
82
+ performanceProfile: string;
83
+ fileSystemWatcher: boolean;
84
+ concurrency: number;
85
+ reuseTempFile: boolean;
86
+ updateMatchedUserAgent: boolean;
87
+ maxMatchedUserAgentLength: number;
88
+ drift: number;
89
+ difference: number;
90
+ allowUnmatched: boolean;
91
+ createTempDataCopy: boolean;
92
+ tempDataDir: string;
93
+ updateOnStart: boolean;
94
+ }, ...args: any[]);
95
+ /**
96
+ * Function for initialising the engine, wrapped like this so
97
+ * that an engine can be initialised once the datafile is
98
+ * retrieved if updateOnStart is set to true
99
+ *
100
+ * @returns {void}
101
+ */
102
+ initEngine: () => void;
103
+ profiles(): Generator<Profile, void, unknown>;
104
+ /**
105
+ * Internal process method for Device Detection On Premise engine
106
+ * Fetches the results from the SWIG wrapper into an instance of
107
+ * the SwigData class which can be used to retrieve results from
108
+ * the FlowData.
109
+ *
110
+ * @param {FlowData} flowData FlowData to process
111
+ * @returns {Promise<void>} the result of processing
112
+ **/
113
+ processInternal(flowData: FlowData): Promise<void>;
114
+ }
115
+ declare namespace DeviceDetectionOnPremise {
116
+ export { DataKeyedCache, Engine, FlowData };
117
+ }
118
+ import Profile = require("./profile");
119
+ type DataKeyedCache = import("fiftyone.pipeline.engines/types/dataKeyedCache");
120
+ type Engine = import("fiftyone.pipeline.engines/types/engine");
121
+ type FlowData = import("fiftyone.pipeline.core/types/flowData");
@@ -0,0 +1,105 @@
1
+ export = DeviceDetectionOnPremisePipelineBuilder;
2
+ declare const DeviceDetectionOnPremisePipelineBuilder_base: typeof import("fiftyone.pipeline.core/types/pipelineBuilder");
3
+ /**
4
+ * @typedef {import('fiftyone.pipeline.engines').DataFileUpdateService} DataFileUpdateService
5
+ */
6
+ declare class DeviceDetectionOnPremisePipelineBuilder extends DeviceDetectionOnPremisePipelineBuilder_base {
7
+ /**
8
+ * Extension of pipelineBuilder class that allows for the quick
9
+ * generation of a device detection pipeline. Adds share usage,
10
+ * caching and toggles between on premise and cloud with
11
+ * simple paramater changes
12
+ *
13
+ * @param {object} options the options for the pipeline builder
14
+ * @param {string} [options.licenceKeys] license key(s) used by the
15
+ * data file update service. A key can be obtained from the
16
+ * 51Degrees website: https://51degrees.com/pricing.
17
+ * This parameter MUST be set when using a data file.
18
+ * If you do not wish to use a key then you can specify
19
+ * an empty string, but this will cause automatic updates
20
+ * to be disabled.
21
+ * @param {string} options.dataFile dataFile path for the on premise engine
22
+ * @param {boolean} [options.dataUpdateVerifyMd5] whether to check MD5 of datafile
23
+ * @param {boolean} [options.dataUpdateUseUrlFormatter] whether to append default URL params for Data File download
24
+ * @param {boolean} [options.autoUpdate] whether to autoUpdate the dataFile
25
+ * @param {string} [options.dataUpdateUrl] base url for the datafile
26
+ * @param {number} [options.pollingInterval] How often to poll for
27
+ * updates to the datafile (minutes)
28
+ * @param {number} [options.updateTimeMaximumRandomisation]
29
+ * Maximum randomisation offset in seconds to polling time interval
30
+ * @param {boolean} [options.shareUsage] whether to include the share
31
+ * usage element
32
+ * @param {boolean} [options.fileSystemWatcher] whether to monitor the datafile
33
+ * path for changes
34
+ * @param {boolean} [options.updateOnStart] whether to download / update a
35
+ * dataFile to the path specified in options.dataFile on start
36
+ * @param {number} [options.cacheSize] size of the default cache
37
+ * (includes cache if set). NOTE: This is not supported for on-premise
38
+ * engine.
39
+ * @param {Array<string>} [options.restrictedProperties] list of properties the engine
40
+ * will be restricted to
41
+ * @param {string} [options.performanceProfile] used to control the tradeoff
42
+ * between performance and system memory usage (Only applies to on-premise,
43
+ * not cloud) options are: LowMemory, MaxPerformance, Balanced,
44
+ * BalancedTemp, HighPerformance
45
+ * @param {number} [options.concurrency] defaults to the number of cpus
46
+ * in the machine
47
+ * @param {boolean} [options.updateMatchedUserAgent] True if the detection
48
+ * should record the matched characters from the target User-Agent
49
+ * @param {number} [options.maxMatchedUserAgentLength] Number of characters to
50
+ * consider in the matched User-Agent. Ignored if updateMatchedUserAgent is
51
+ * false
52
+ * @param {number} [options.drift] Set maximum drift in hash position to allow
53
+ * when processing HTTP headers.
54
+ * @param {number} [options.difference] Set the maximum difference to allow
55
+ * when processing HTTP headers. The difference is the difference in hash
56
+ * value between the hash that was found, and the hash that is being searched
57
+ * for. By default this is 0.
58
+ * @param {string} [options.allowUnmatched] If set to false, a non-matching
59
+ * User-Agent will result in properties without set values.
60
+ * If set to true, a non-matching User-Agent will cause the 'default profiles'
61
+ * to be returned.
62
+ * This means that properties will always have values
63
+ * (i.e. no need to check .HasValue) but some may be inaccurate.
64
+ * By default, this is false.
65
+ * @param {boolean} [options.createTempDataCopy] If true, the engine will
66
+ * create a copy of the data file in a temporary location
67
+ * rather than using the file provided directly. If not
68
+ * loading all data into memory, this is required for
69
+ * automatic data updates to occur.
70
+ * @param {string} [options.tempDataDir] The directory to use for the
71
+ * temporary data copy if 'createTempDataCopy' is set to true.
72
+ * @param {DataFileUpdateService} [options.dataFileUpdateService] Set
73
+ * DataFileUpdateService so the datafiles can receive
74
+ * automatic updates
75
+ */
76
+ constructor({ dataFileUpdateService, licenceKeys, dataFile, dataUpdateVerifyMd5, dataUpdateUseUrlFormatter, autoUpdate, dataUpdateUrl, pollingInterval, updateTimeMaximumRandomisation, shareUsage, fileSystemWatcher, updateOnStart, cacheSize, restrictedProperties, performanceProfile, concurrency, updateMatchedUserAgent, maxMatchedUserAgentLength, drift, difference, allowUnmatched, createTempDataCopy, tempDataDir }: {
77
+ licenceKeys?: string;
78
+ dataFile: string;
79
+ dataUpdateVerifyMd5?: boolean;
80
+ dataUpdateUseUrlFormatter?: boolean;
81
+ autoUpdate?: boolean;
82
+ dataUpdateUrl?: string;
83
+ pollingInterval?: number;
84
+ updateTimeMaximumRandomisation?: number;
85
+ shareUsage?: boolean;
86
+ fileSystemWatcher?: boolean;
87
+ updateOnStart?: boolean;
88
+ cacheSize?: number;
89
+ restrictedProperties?: Array<string>;
90
+ performanceProfile?: string;
91
+ concurrency?: number;
92
+ updateMatchedUserAgent?: boolean;
93
+ maxMatchedUserAgentLength?: number;
94
+ drift?: number;
95
+ difference?: number;
96
+ allowUnmatched?: string;
97
+ createTempDataCopy?: boolean;
98
+ tempDataDir?: string;
99
+ dataFileUpdateService?: DataFileUpdateService;
100
+ }, ...args: any[]);
101
+ }
102
+ declare namespace DeviceDetectionOnPremisePipelineBuilder {
103
+ export { DataFileUpdateService };
104
+ }
105
+ type DataFileUpdateService = import("fiftyone.pipeline.engines/types/dataFileUpdateService");
@@ -0,0 +1,7 @@
1
+ export let DeviceDetectionOnPremise: typeof import("./deviceDetectionOnPremise");
2
+ export let DeviceDetectionOnPremisePipelineBuilder: typeof import("./deviceDetectionOnPremisePipelineBuilder");
3
+ export let SwigData: typeof import("./swigData");
4
+ export let swigHelpers: {
5
+ vectorToArray: (vector: object) => any[];
6
+ swigDateToDate: (swigDate: object) => Date;
7
+ };
@@ -0,0 +1,20 @@
1
+ export = Profile;
2
+ declare class Profile {
3
+ /**
4
+ * Constructor for Profile
5
+ *
6
+ * @param {object} metadata Metadata
7
+ * @param {object} engineMetadata Engine metadata
8
+ */
9
+ constructor(metadata: object, engineMetadata: object);
10
+ metadata: object;
11
+ engineMetadata: object;
12
+ /**
13
+ * @type {Component}
14
+ */
15
+ component: import("./component");
16
+ /**
17
+ * @type {number} uint32
18
+ */
19
+ profileId: number;
20
+ }
@@ -0,0 +1,54 @@
1
+ export = Property;
2
+ declare class Property {
3
+ /**
4
+ * Constructor for Property
5
+ *
6
+ * @param {object} metadata Metadata
7
+ * @param {object} engineMetadata Engine metadata
8
+ */
9
+ constructor(metadata: object, engineMetadata: object);
10
+ metadata: object;
11
+ engineMetadata: object;
12
+ /**
13
+ * @type {string}
14
+ */
15
+ name: string;
16
+ /**
17
+ * @type {string}
18
+ */
19
+ type: string;
20
+ /**
21
+ * @type {Array<string>}
22
+ */
23
+ dataFiles: Array<string>;
24
+ /**
25
+ * @type {string}
26
+ */
27
+ category: string;
28
+ /**
29
+ * @type {string}
30
+ */
31
+ description: string;
32
+ /**
33
+ * @type {Component}
34
+ */
35
+ component: import("./component");
36
+ /**
37
+ * @type {object}
38
+ */
39
+ values: object;
40
+ /**
41
+ * Yield property values
42
+ *
43
+ * @generator
44
+ * @yields {object}
45
+ * @returns {void}
46
+ */
47
+ getValues(): void;
48
+ /**
49
+ * Get number of values in the property
50
+ *
51
+ * @returns {number} uint32
52
+ */
53
+ getNumberOfValues(): number;
54
+ }
@@ -0,0 +1,38 @@
1
+ export = SwigData;
2
+ declare const SwigData_base: typeof import("fiftyone.pipeline.engines/types/aspectData");
3
+ /**
4
+ * @typedef {import('fiftyone.pipeline.core').FlowElement} FlowElement
5
+ */
6
+ /**
7
+ * Extension of aspectData which stores the results created by the SWIG wrapper
8
+ */
9
+ declare class SwigData extends SwigData_base {
10
+ /**
11
+ * Constructor for SwigData
12
+ *
13
+ * @param {object} options options object
14
+ * @param {FlowElement} options.flowElement the FlowElement the
15
+ * data is part of
16
+ * @param {object} options.swigResults the results from the
17
+ * swig engine
18
+ */
19
+ constructor({ flowElement, swigResults }: {
20
+ flowElement: FlowElement;
21
+ swigResults: object;
22
+ }, ...args: any[]);
23
+ swigResults: object;
24
+ missingPropertyService: DataFileMissingPropertyService;
25
+ /**
26
+ * Retrieves elementData via the swigWrapper but also casts it to the
27
+ * correct type via a check of the engine's property list metadata
28
+ *
29
+ * @param {string} key the property key to retrieve
30
+ * @returns {AspectPropertyValue} value property value
31
+ */
32
+ getInternal(key: string): typeof import("fiftyone.pipeline.core/types/aspectPropertyValue");
33
+ }
34
+ declare namespace SwigData {
35
+ export { FlowElement };
36
+ }
37
+ import DataFileMissingPropertyService = require("./dataFileMissingPropertyService");
38
+ type FlowElement = import("fiftyone.pipeline.core/types/flowElement");
@@ -0,0 +1,2 @@
1
+ export function vectorToArray(vector: object): any[];
2
+ export function swigDateToDate(swigDate: object): Date;