fiftyone.devicedetection.onpremise 4.5.54 → 4.5.56

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.5.54",
3
+ "version": "4.5.56",
4
4
  "description": "Device detection on-premise services for the 51Degrees Pipeline API",
5
5
  "keywords": [
6
6
  "51degrees",
package/readme.md CHANGED
@@ -5,7 +5,7 @@
5
5
  ## Introduction
6
6
  This project contains 51Degrees Device Detection engines that can be used with the [Pipeline API](https://github.com/51Degrees/pipeline-node).
7
7
 
8
- The Pipeline is a generic web request intelligence and data processing solution with the ability to add a range of 51Degrees and/or custom plug ins (Engines)
8
+ The Pipeline is a generic web request intelligence and data processing solution with the ability to add a range of 51Degrees and/or custom plug ins (Engines)
9
9
 
10
10
  ## This package - fiftyone.devicedetection.onpremise
11
11
 
@@ -35,7 +35,7 @@ If the module is installed directly from Git then the binaries are also required
35
35
 
36
36
  - Install Node.js.
37
37
  - Install node-gyp by running.
38
- - `npm install node-gyp --global`
38
+ - `npm install node-gyp --global`
39
39
  - Install C build tools:
40
40
  - Windows:
41
41
  - You will need either Visual Studio 2019 or the [C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) installed.
@@ -46,7 +46,7 @@ If the module is installed directly from Git then the binaries are also required
46
46
  - Pull git submodules:
47
47
  - `git submodule update --init --recursive`
48
48
 
49
- #### Build Steps
49
+ #### Build Steps
50
50
 
51
51
  - Navigate to fiftyone.devicedetection.onpremise
52
52
  - Rename the `binding.51d` to `binding.gyp`
@@ -63,15 +63,13 @@ If the module is installed directly from Git then the binaries are also required
63
63
  - This will build the `FiftyOneDeviceDetectionHashV4.node` under `build/Release` folder.
64
64
  - Copy the `FiftyOneDeviceDetectionHashV4.node` to `build` directory (which is one level up) and rename it using the following convention.
65
65
  - Windows:
66
- - FiftyOneDeviceDetectionHashV4-win32-[ Node version ].node
67
- - e.g. FiftyOneDeviceDetectionHashV4-win32-10.node for Node 10.
66
+ - FiftyOneDeviceDetectionHashV4-win32-[ arch ]-[ Node major version ].node
68
67
  - Linux:
69
- - FiftyOneDeviceDetectionHashV4-linux-[ Node version ].node
70
- - e.g. FiftyOneDeviceDetectionHashV4-linux-10.node for Node 10.
68
+ - FiftyOneDeviceDetectionHashV4-linux-[ arch ]-[ Node major version ].node
71
69
  - MacOS:
72
- - FiftyOneDeviceDetectionHashV4-darwin-[ Node version ].node
73
- - e.g. FiftyOneDeviceDetectionHashV4-darwin-10.node for Node 10.
74
- - Please see the [tested versions page](https://51degrees.com/documentation/_info__tested_versions.html?utm_source=github&utm_medium=readme&utm_campaign=device-detection-node&utm_content=fiftyone.devicedetection.onpremise-readme.md&utm_term=build-steps) for Node versions that we currently test against. The software may run fine against other versions, but extra caution should be applied.
70
+ - FiftyOneDeviceDetectionHashV4-darwin-[ arch ]-[ Node major version ].node
71
+ - [ arch ] is the value of `process.arch` (for example x64 or arm64) and [ Node major version ] is the major version of the Node.js runtime the module was built with.
72
+ - Testing targets the current Node.js LTS versions. There is no concept of 'supported' versions. The software may well run on other versions, but they are not tested. See the [tested versions page](https://51degrees.com/documentation/_info__tested_versions.html?utm_source=github&utm_medium=readme&utm_campaign=device-detection-node&utm_content=fiftyone.devicedetection.onpremise-readme.md&utm_term=build-steps) for the versions that we currently test against.
75
73
  - You can optionally clear up by removing all the build files and folders except for the *.node file that's been created.
76
74
  - `WARNING`: `npm install` removes this copied file, so you will need to do the above steps again after running `npm install`
77
75
 
@@ -98,7 +96,7 @@ The tables below describe the examples that are available.
98
96
 
99
97
  ## Tests
100
98
 
101
- In this repository, there are tests for the examples.
99
+ In this repository, there are tests for the examples.
102
100
  You will need to install jest to run them:
103
101
 
104
102
  ```
@@ -118,11 +116,9 @@ npm test
118
116
  Process for rebuilding SWIG interfaces following an update to the device detection cxx code (This is only intended to be run by 51Degrees developers internally):
119
117
 
120
118
  1. Ensure Swig is installed.
121
- 1. At the time when this README was updated, the current stable version of Swig did not support new changes in Node 12 and above.
122
- 2. The Swig version being used is built from the following branch.
123
- 1. https://github.com/yegorich/swig/tree/pr/new-node-fixes.
124
- 2. There had been an active Pull Request created to merge the changes to the main Swig master branch.
125
- 3. Once the Pull Request is completed, the consequent Swig releases should be used.
119
+ 1. Use the 51Degrees fork of Swig, built from source from the `node-24-holder-this` branch of https://github.com/51Degrees/swig.
120
+ 2. The fork is required because Swig releases still emit V8 API calls that were removed in the V8 shipped with recent Node versions, in particular `FunctionCallbackInfo::Holder()`, which the fork replaces with `This()`. The generated code must compile against the Node.js LTS versions targeted for testing, see the [tested versions page](https://51degrees.com/documentation/_info__tested_versions.html?utm_source=github&utm_medium=readme&utm_campaign=device-detection-node&utm_content=fiftyone.devicedetection.onpremise-readme.md&utm_term=native-code-updates).
121
+ 3. All native modules loaded into one Node process must be generated by the same Swig version. Mixing modules generated by different Swig versions (for example this package and fiftyone.ipintelligence.onpremise) can crash the process, so regenerate and release them together.
126
122
  2. Update the device-detection-cxx submodule to reference the relevant commit.
127
123
  3. From terminal, navigate to fiftyone.pipeline.devicedetection and run:
128
124
  a) swig -c++ -javascript -node hash_node.i