apify-fingerprint-datapoints 0.0.2__tar.gz → 0.0.3__tar.gz
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.
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/.eslintrc.json +9 -10
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/.github/ISSUE_TEMPLATE/bug_report.md +3 -3
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -1
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/.github/ISSUE_TEMPLATE/question.md +7 -8
- apify_fingerprint_datapoints-0.0.3/.github/workflows/browserforge-compat-test.yml +57 -0
- apify_fingerprint_datapoints-0.0.3/.github/workflows/check-pr-title.yml +14 -0
- apify_fingerprint_datapoints-0.0.3/.github/workflows/e2e-benchmark.yml +46 -0
- apify_fingerprint_datapoints-0.0.3/.github/workflows/model-updater.yml +171 -0
- apify_fingerprint_datapoints-0.0.3/.github/workflows/release-publish.yml +63 -0
- apify_fingerprint_datapoints-0.0.3/.github/workflows/release_python.yaml +26 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/.github/workflows/test-and-sync.yml +26 -23
- apify_fingerprint_datapoints-0.0.3/.github/workflows/update-new-issue.yml +25 -0
- apify_fingerprint_datapoints-0.0.3/.prettierignore +5 -0
- apify_fingerprint_datapoints-0.0.3/.prettierrc +1 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/CONTRIBUTING.md +11 -11
- apify_fingerprint_datapoints-0.0.3/LICENSE.md +201 -0
- apify_fingerprint_datapoints-0.0.3/PKG-INFO +234 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/README.md +20 -32
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/apify_fingerprint_datapoints/CHANGELOG.md +5 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/apify_fingerprint_datapoints/README.md +0 -1
- apify_fingerprint_datapoints-0.0.3/apify_fingerprint_datapoints/py.typed +0 -0
- apify_fingerprint_datapoints-0.0.3/eslint.config.mjs +38 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/jest.config.js +10 -10
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/package-lock.json +4363 -4635
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/package.json +24 -15
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-generator/package.json +3 -3
- apify_fingerprint_datapoints-0.0.3/packages/fingerprint-generator/src/data_files/fingerprint-network-definition.zip +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-generator/src/fingerprint-generator.ts +114 -33
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-injector/package.json +2 -2
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-injector/src/fingerprint-injector.ts +96 -41
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-injector/src/utils.js +257 -206
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generative-bayesian-network/README.md +46 -38
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generative-bayesian-network/package.json +1 -1
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generative-bayesian-network/src/bayesian-network.ts +51 -21
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generative-bayesian-network/src/bayesian-node.ts +76 -32
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generative-bayesian-network/src/utils.ts +22 -9
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generator-networks-creator/package.json +5 -3
- apify_fingerprint_datapoints-0.0.3/packages/generator-networks-creator/src/generator-networks-creator.ts +325 -0
- apify_fingerprint_datapoints-0.0.3/packages/generator-networks-creator/src/record-schema.ts +355 -0
- apify_fingerprint_datapoints-0.0.3/packages/header-generator/README.md +145 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-generator/package.json +2 -2
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-generator/src/constants.ts +7 -1
- apify_fingerprint_datapoints-0.0.3/packages/header-generator/src/data_files/browser-helper-file.json +1 -0
- apify_fingerprint_datapoints-0.0.3/packages/header-generator/src/data_files/header-network-definition.zip +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-generator/src/data_files/headers-order.json +51 -4
- apify_fingerprint_datapoints-0.0.3/packages/header-generator/src/data_files/input-network-definition.zip +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-generator/src/header-generator.ts +240 -108
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-generator/src/presets.ts +14 -13
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-generator/src/utils.ts +12 -4
- apify_fingerprint_datapoints-0.0.3/packages/header-order-collector/collector.js +68 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-order-collector/package.json +1 -1
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-order-collector/server.js +10 -10
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-order-collector/serverv2.js +17 -17
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/pyproject.toml +1 -1
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/scripts/copy.ts +31 -14
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/scripts/typescript_fixes.mjs +4 -4
- apify_fingerprint_datapoints-0.0.3/test/antibot-services/antibot.js +69 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/antibot-services/live-testing/README.md +3 -2
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/antibot-services/live-testing/cloudflare.ts +72 -29
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/antibot-services/live-testing/engine/combo.ts +0 -1
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/antibot-services/live-testing/engine/fingerprint-suite.ts +0 -1
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/antibot-services/live-testing/engine/playwright-extra.ts +2 -5
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/antibot-services/live-testing/engine/vanilla-playwright.ts +11 -2
- apify_fingerprint_datapoints-0.0.3/test/antibot-services/live-testing/report.html +89 -0
- apify_fingerprint_datapoints-0.0.3/test/antibot-services/live-testing/speed.js +63 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/antibot-services/live-testing/utils/generateReport.ts +9 -3
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/fingerprint-generator/generation.test.ts +77 -45
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/fingerprint-injector/crossbrowser.test.ts +30 -9
- apify_fingerprint_datapoints-0.0.3/test/fingerprint-injector/fingerprint-injector.test.ts +622 -0
- apify_fingerprint_datapoints-0.0.3/test/fingerprint-injector/test.html +5 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/generative-bayesian-network/generation.test.ts +36 -16
- apify_fingerprint_datapoints-0.0.3/test/generator-networks-creator/generator-networks-creator.test.ts +170 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/header-generator/generation.test.ts +53 -27
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/header-generator/presets.test.ts +5 -1
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/tsconfig.eslint.json +2 -2
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/turbo.json +3 -3
- apify_fingerprint_datapoints-0.0.2/.github/workflows/check-pr-title.yml +0 -14
- apify_fingerprint_datapoints-0.0.2/.github/workflows/e2e-benchmark.yml +0 -49
- apify_fingerprint_datapoints-0.0.2/.github/workflows/model-updater.yml +0 -94
- apify_fingerprint_datapoints-0.0.2/.github/workflows/release-publish.yml +0 -62
- apify_fingerprint_datapoints-0.0.2/.github/workflows/release_python.yaml +0 -26
- apify_fingerprint_datapoints-0.0.2/LICENSE.md +0 -201
- apify_fingerprint_datapoints-0.0.2/PKG-INFO +0 -235
- apify_fingerprint_datapoints-0.0.2/packages/fingerprint-generator/src/data_files/fingerprint-network-definition.zip +0 -0
- apify_fingerprint_datapoints-0.0.2/packages/generator-networks-creator/src/generator-networks-creator.ts +0 -259
- apify_fingerprint_datapoints-0.0.2/packages/header-generator/README.md +0 -144
- apify_fingerprint_datapoints-0.0.2/packages/header-generator/src/data_files/browser-helper-file.json +0 -1
- apify_fingerprint_datapoints-0.0.2/packages/header-generator/src/data_files/header-network-definition.zip +0 -0
- apify_fingerprint_datapoints-0.0.2/packages/header-generator/src/data_files/input-network-definition.zip +0 -0
- apify_fingerprint_datapoints-0.0.2/packages/header-order-collector/collector.js +0 -65
- apify_fingerprint_datapoints-0.0.2/test/antibot-services/antibot.js +0 -57
- apify_fingerprint_datapoints-0.0.2/test/antibot-services/live-testing/report.html +0 -87
- apify_fingerprint_datapoints-0.0.2/test/antibot-services/live-testing/report.png +0 -0
- apify_fingerprint_datapoints-0.0.2/test/antibot-services/live-testing/speed.js +0 -43
- apify_fingerprint_datapoints-0.0.2/test/fingerprint-injector/fingerprint-injector.test.ts +0 -460
- apify_fingerprint_datapoints-0.0.2/test/fingerprint-injector/test.html +0 -7
- apify_fingerprint_datapoints-0.0.2/test/generator-networks-creator/generator-networks-creator.test.ts +0 -145
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/.editorconfig +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/.gitignore +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/apify_fingerprint_datapoints/__init__.py +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-generator/src/constants.ts +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-generator/src/index.ts +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-generator/tsconfig.build.json +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-generator/tsconfig.json +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-injector/src/constants.ts +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-injector/src/index.ts +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-injector/tsconfig.build.json +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/fingerprint-injector/tsconfig.json +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generative-bayesian-network/src/index.ts +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generative-bayesian-network/tsconfig.build.json +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generator-networks-creator/src/index.ts +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generator-networks-creator/src/network_structures/fingerprint-network-structure.zip +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generator-networks-creator/src/network_structures/header-network-structure.zip +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generator-networks-creator/src/network_structures/input-network-structure.zip +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generator-networks-creator/tsconfig.build.json +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/generator-networks-creator/tsconfig.json +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-generator/src/index.ts +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-generator/tsconfig.build.json +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-generator/tsconfig.json +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-order-collector/Dockerfile +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-order-collector/cert/localhost-cert.pem +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/packages/header-order-collector/cert/localhost-privkey.pem +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/renovate.json +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/scripts/netgen.sh +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/scripts/netgen.ts +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/scripts/publish.sh +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/static/logo_big_dark.svg +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/static/logo_big_light.svg +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/antibot-services/live-testing/cloudflare-websites.csv +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/generative-bayesian-network/testDataset.csv +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/generative-bayesian-network/testNetworkDefinition.zip +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/generative-bayesian-network/testNetworkStructureDefinition.zip +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/header-generator/browser-list.test.ts +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/test/tsconfig.json +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/tsconfig.build.json +0 -0
- {apify_fingerprint_datapoints-0.0.2 → apify_fingerprint_datapoints-0.0.3}/tsconfig.json +0 -0
|
@@ -5,16 +5,12 @@
|
|
|
5
5
|
"es2020": true,
|
|
6
6
|
"node": true
|
|
7
7
|
},
|
|
8
|
-
"extends": [
|
|
9
|
-
"@apify/eslint-config-ts"
|
|
10
|
-
],
|
|
8
|
+
"extends": ["@apify/eslint-config-ts"],
|
|
11
9
|
"parserOptions": {
|
|
12
10
|
"project": "./tsconfig.eslint.json",
|
|
13
11
|
"ecmaVersion": 2020
|
|
14
12
|
},
|
|
15
|
-
"plugins": [
|
|
16
|
-
"@typescript-eslint"
|
|
17
|
-
],
|
|
13
|
+
"plugins": ["@typescript-eslint"],
|
|
18
14
|
"ignorePatterns": [
|
|
19
15
|
"node_modules",
|
|
20
16
|
"dist",
|
|
@@ -35,9 +31,12 @@
|
|
|
35
31
|
"@typescript-eslint/no-explicit-any": "off",
|
|
36
32
|
"@typescript-eslint/no-empty-function": "off",
|
|
37
33
|
"import/no-extraneous-dependencies": "off",
|
|
38
|
-
"@typescript-eslint/member-delimiter-style": [
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
34
|
+
"@typescript-eslint/member-delimiter-style": [
|
|
35
|
+
"error",
|
|
36
|
+
{
|
|
37
|
+
"multiline": { "delimiter": "semi", "requireLast": true },
|
|
38
|
+
"singleline": { "delimiter": "semi", "requireLast": false }
|
|
39
|
+
}
|
|
40
|
+
]
|
|
42
41
|
}
|
|
43
42
|
}
|
|
@@ -4,7 +4,6 @@ about: Create a report to help us improve
|
|
|
4
4
|
title: ''
|
|
5
5
|
labels: bug
|
|
6
6
|
assignees: ''
|
|
7
|
-
|
|
8
7
|
---
|
|
9
8
|
|
|
10
9
|
**Describe the bug**
|
|
@@ -18,8 +17,9 @@ We should be able to copy your code, run it and get the same result.
|
|
|
18
17
|
A clear and concise description of what you expected to happen.
|
|
19
18
|
|
|
20
19
|
**System information:**
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
|
|
21
|
+
- OS: [e.g. MacOS]
|
|
22
|
+
- Node.js version [e.g. 14.7]
|
|
23
23
|
|
|
24
24
|
**Additional context**
|
|
25
25
|
Add any other context about the problem here.
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Question
|
|
3
|
-
about: When you need help with something.
|
|
4
|
-
title: ''
|
|
5
|
-
labels: question
|
|
6
|
-
assignees: ''
|
|
7
|
-
|
|
8
|
-
---
|
|
1
|
+
---
|
|
2
|
+
name: Question
|
|
3
|
+
about: When you need help with something.
|
|
4
|
+
title: ''
|
|
5
|
+
labels: question
|
|
6
|
+
assignees: ''
|
|
7
|
+
---
|
|
9
8
|
|
|
10
9
|
Please submit new issues for new feature requests and bug reports only.
|
|
11
10
|
For questions please join Apify Discord. You could get help from Apify team members and the community there.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
name: Test Browserforge compatibility
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
test:
|
|
8
|
+
runs-on: ubuntu-22.04
|
|
9
|
+
timeout-minutes: 5
|
|
10
|
+
steps:
|
|
11
|
+
- name: Install uv
|
|
12
|
+
uses: astral-sh/setup-uv@v6
|
|
13
|
+
|
|
14
|
+
- name: Set up Python
|
|
15
|
+
run: uv python install 3.13
|
|
16
|
+
|
|
17
|
+
- name: Install dependencies
|
|
18
|
+
run: |
|
|
19
|
+
uv venv create --python 3.13
|
|
20
|
+
uv venv activate
|
|
21
|
+
uv init
|
|
22
|
+
uv add "browserforge[all]==1.2.3"
|
|
23
|
+
|
|
24
|
+
- name: Download artifacts
|
|
25
|
+
uses: actions/download-artifact@v4
|
|
26
|
+
with:
|
|
27
|
+
name: new-models
|
|
28
|
+
path: ./new-models
|
|
29
|
+
|
|
30
|
+
- name: List workspace tree
|
|
31
|
+
run: |
|
|
32
|
+
echo "Workspace tree:"
|
|
33
|
+
find . -type d -path "./node_modules/*" -prune -name ".git" -prune -o -print | sort
|
|
34
|
+
|
|
35
|
+
- name: Copy models
|
|
36
|
+
run: |
|
|
37
|
+
cp ./new-models/packages/header-generator/src/data_files/header-network-definition.zip ./.venv/lib/python3.13/site-packages/browserforge/headers/data/header-network.zip
|
|
38
|
+
cp ./new-models/packages/header-generator/src/data_files/browser-helper-file.json ./.venv/lib/python3.13/site-packages/browserforge/headers/data/browser-helper-file.json
|
|
39
|
+
cp ./new-models/packages/header-generator/src/data_files/input-network-definition.zip ./.venv/lib/python3.13/site-packages/browserforge/headers/data/input-network.zip
|
|
40
|
+
cp ./new-models/packages/header-generator/src/data_files/headers-order.json ./.venv/lib/python3.13/site-packages/browserforge/headers/data/headers-order.json
|
|
41
|
+
cp ./new-models/packages/fingerprint-generator/src/data_files/fingerprint-network-definition.zip ./.venv/lib/python3.13/site-packages/browserforge/fingerprints/data/fingerprint-network.zip
|
|
42
|
+
|
|
43
|
+
- name: Run Browserforge compatibility test
|
|
44
|
+
run: |
|
|
45
|
+
cat << EOF > ./test.py
|
|
46
|
+
from browserforge.fingerprints import FingerprintGenerator
|
|
47
|
+
from browserforge.headers import HeaderGenerator
|
|
48
|
+
|
|
49
|
+
fg = FingerprintGenerator()
|
|
50
|
+
hg = HeaderGenerator()
|
|
51
|
+
|
|
52
|
+
for _ in range(10000):
|
|
53
|
+
fingerprint = fg.generate()
|
|
54
|
+
headers = hg.generate()
|
|
55
|
+
EOF
|
|
56
|
+
|
|
57
|
+
uv run ./test.py
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
name: Check PR title
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request_target:
|
|
5
|
+
types: [opened, edited, synchronize]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
check_pr_title:
|
|
9
|
+
name: 'Check PR title'
|
|
10
|
+
runs-on: ubuntu-22.04
|
|
11
|
+
steps:
|
|
12
|
+
- uses: amannn/action-semantic-pull-request@v5.5.3
|
|
13
|
+
env:
|
|
14
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
name: Run Benchmarks
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Triggers the workflow every Monday at 5am
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
run_benchmark:
|
|
9
|
+
runs-on: ubuntu-22.04
|
|
10
|
+
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
with:
|
|
14
|
+
token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
15
|
+
- name: Use Node.js 22
|
|
16
|
+
uses: actions/setup-node@v4
|
|
17
|
+
with:
|
|
18
|
+
node-version: 22
|
|
19
|
+
|
|
20
|
+
- name: Cache Node Modules
|
|
21
|
+
uses: actions/cache@v4
|
|
22
|
+
with:
|
|
23
|
+
path: |
|
|
24
|
+
node_modules
|
|
25
|
+
key: cache-${{ github.run_id }}
|
|
26
|
+
|
|
27
|
+
- name: Install Dependencies
|
|
28
|
+
run: npm ci
|
|
29
|
+
|
|
30
|
+
- name: Install browsers
|
|
31
|
+
run: npx playwright install
|
|
32
|
+
|
|
33
|
+
- name: Build the project
|
|
34
|
+
run: npm run build
|
|
35
|
+
|
|
36
|
+
- name: Run benchmarks
|
|
37
|
+
run: npm run benchmark
|
|
38
|
+
|
|
39
|
+
- name: Update the benchmark report
|
|
40
|
+
uses: stefanzweifel/git-auto-commit-action@v6
|
|
41
|
+
with:
|
|
42
|
+
commit_message: 'chore: [skip-ci] update benchmark results'
|
|
43
|
+
branch: master
|
|
44
|
+
file_pattern: '**/report.png'
|
|
45
|
+
commit_user_name: 'Mark Bench[bot] 💪🏼'
|
|
46
|
+
commit_user_email: markbench[bot]@users.noreply.github.com
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
name: Model updater
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Triggers the workflow every month
|
|
5
|
+
schedule:
|
|
6
|
+
- cron: '0 0 1 * *'
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build_model:
|
|
11
|
+
runs-on: ubuntu-22.04
|
|
12
|
+
outputs:
|
|
13
|
+
version: ${{ steps.get_version.outputs.version }}
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
with:
|
|
18
|
+
token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
19
|
+
- name: Use Node.js 22
|
|
20
|
+
uses: actions/setup-node@v4
|
|
21
|
+
with:
|
|
22
|
+
node-version: 22
|
|
23
|
+
|
|
24
|
+
- name: Cache node modules + browsers
|
|
25
|
+
uses: actions/cache@v4
|
|
26
|
+
with:
|
|
27
|
+
path: |
|
|
28
|
+
~/.npm
|
|
29
|
+
~/.cache/ms-playwright
|
|
30
|
+
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
|
|
31
|
+
|
|
32
|
+
- name: Install Dependencies
|
|
33
|
+
run: npm ci
|
|
34
|
+
|
|
35
|
+
- name: Install Playwright deps
|
|
36
|
+
run: npx playwright install
|
|
37
|
+
|
|
38
|
+
- name: Install xvfb
|
|
39
|
+
run: |
|
|
40
|
+
sudo apt-get update
|
|
41
|
+
sudo apt-get -y install xvfb
|
|
42
|
+
|
|
43
|
+
- name: Install Playwright browsers
|
|
44
|
+
run: |
|
|
45
|
+
npx playwright install webkit
|
|
46
|
+
npx playwright install chrome
|
|
47
|
+
npx playwright install msedge
|
|
48
|
+
|
|
49
|
+
- name: Install Playwright deps v2
|
|
50
|
+
run: npx playwright install-deps
|
|
51
|
+
|
|
52
|
+
- name: Collect HTTP header orders
|
|
53
|
+
run: |
|
|
54
|
+
xvfb-run -- node ./packages/header-order-collector/collector.js | tee ./packages/header-generator/src/data_files/headers-order.json
|
|
55
|
+
|
|
56
|
+
- name: Generate model
|
|
57
|
+
run: npm run buildNetwork
|
|
58
|
+
env:
|
|
59
|
+
APIFY_FINGERPRINT_DATASET_ID: ${{ secrets.APIFY_FINGERPRINT_DATASET_ID }}
|
|
60
|
+
|
|
61
|
+
- name: Upload models as artifacts
|
|
62
|
+
uses: actions/upload-artifact@v4
|
|
63
|
+
with:
|
|
64
|
+
name: new-models
|
|
65
|
+
path: |
|
|
66
|
+
./packages/header-generator/src/data_files/headers-order.json
|
|
67
|
+
./packages/header-generator/src/data_files/header-network-definition.zip
|
|
68
|
+
./packages/header-generator/src/data_files/browser-helper-file.json
|
|
69
|
+
./packages/header-generator/src/data_files/input-network-definition.zip
|
|
70
|
+
./packages/fingerprint-generator/src/data_files/fingerprint-network-definition.zip
|
|
71
|
+
./package.json
|
|
72
|
+
./package-lock.json
|
|
73
|
+
|
|
74
|
+
test_model_js:
|
|
75
|
+
runs-on: ubuntu-22.04
|
|
76
|
+
needs: build_model
|
|
77
|
+
steps:
|
|
78
|
+
- uses: actions/checkout@v4
|
|
79
|
+
with:
|
|
80
|
+
token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
81
|
+
|
|
82
|
+
- name: Use Node.js 22
|
|
83
|
+
uses: actions/setup-node@v4
|
|
84
|
+
with:
|
|
85
|
+
node-version: 22
|
|
86
|
+
|
|
87
|
+
- name: Install Dependencies
|
|
88
|
+
run: npm ci
|
|
89
|
+
|
|
90
|
+
- name: Download artifacts
|
|
91
|
+
uses: actions/download-artifact@v4
|
|
92
|
+
with:
|
|
93
|
+
name: new-models
|
|
94
|
+
|
|
95
|
+
- name: List downloaded files
|
|
96
|
+
run: |
|
|
97
|
+
echo "Downloaded files:"
|
|
98
|
+
find . -type f -name "*.zip" -printf "%T+\t%s\t%p\n" | sort
|
|
99
|
+
|
|
100
|
+
- name: Test model changes (Node.JS packages)
|
|
101
|
+
run: |
|
|
102
|
+
npx playwright install --with-deps
|
|
103
|
+
npx puppeteer browsers install chrome
|
|
104
|
+
npx puppeteer browsers install firefox
|
|
105
|
+
|
|
106
|
+
npm run build
|
|
107
|
+
xvfb-run --auto-servernum -- npm test
|
|
108
|
+
|
|
109
|
+
test_model_py:
|
|
110
|
+
needs: build_model
|
|
111
|
+
uses: ./.github/workflows/browserforge-compat-test.yml
|
|
112
|
+
|
|
113
|
+
commit_model:
|
|
114
|
+
name: Commit and push new model
|
|
115
|
+
needs: [build_model, test_model_js, test_model_py]
|
|
116
|
+
runs-on: ubuntu-22.04
|
|
117
|
+
steps:
|
|
118
|
+
- uses: actions/checkout@v4
|
|
119
|
+
with:
|
|
120
|
+
token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
121
|
+
|
|
122
|
+
- name: Use Node.js 22
|
|
123
|
+
uses: actions/setup-node@v4
|
|
124
|
+
with:
|
|
125
|
+
node-version: 22
|
|
126
|
+
|
|
127
|
+
- name: Install Dependencies
|
|
128
|
+
run: npm ci
|
|
129
|
+
|
|
130
|
+
- uses: actions/download-artifact@v4
|
|
131
|
+
with:
|
|
132
|
+
name: new-models
|
|
133
|
+
run-id: 15709043154
|
|
134
|
+
github-token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
135
|
+
|
|
136
|
+
- name: Bump package version numbers
|
|
137
|
+
id: bump_version
|
|
138
|
+
run: |
|
|
139
|
+
npm version patch --git-tag-version=false
|
|
140
|
+
export GIT_TAG=$(node -p "require('./package.json').version")
|
|
141
|
+
|
|
142
|
+
npm run prerelease
|
|
143
|
+
|
|
144
|
+
echo "version=${GIT_TAG}" >> $GITHUB_OUTPUT
|
|
145
|
+
|
|
146
|
+
- name: Print new version
|
|
147
|
+
run: 'echo new version: ${{ steps.bump_version.outputs.version }}'
|
|
148
|
+
|
|
149
|
+
- name: Push new model
|
|
150
|
+
uses: stefanzweifel/git-auto-commit-action@v6
|
|
151
|
+
with:
|
|
152
|
+
commit_message: '[auto] fingerprint/header model update'
|
|
153
|
+
branch: master
|
|
154
|
+
tagging_message: 'v${{ steps.bump_version.outputs.version }}'
|
|
155
|
+
|
|
156
|
+
file_pattern: './packages/ ./package.json ./package-lock.json'
|
|
157
|
+
|
|
158
|
+
commit_user_name: 'modelmaker[bot] ⚒️'
|
|
159
|
+
commit_user_email: modelmaker[bot]@users.noreply.github.com
|
|
160
|
+
|
|
161
|
+
- name: Create release
|
|
162
|
+
uses: actions/create-release@v1
|
|
163
|
+
env:
|
|
164
|
+
GITHUB_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
165
|
+
with:
|
|
166
|
+
tag_name: 'v${{ steps.bump_version.outputs.version }}'
|
|
167
|
+
release_name: 'v${{ steps.bump_version.outputs.version }}'
|
|
168
|
+
body: |
|
|
169
|
+
This is an automated release of the model used by the `fingerprint-suite`.
|
|
170
|
+
|
|
171
|
+
The only difference between this release and the previous one is the model used to generate fingerprints.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: Publish
|
|
2
|
+
on:
|
|
3
|
+
release:
|
|
4
|
+
types: [published]
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
test_and_sync:
|
|
8
|
+
uses: apify/fingerprint-suite/.github/workflows/test-and-sync.yml@master
|
|
9
|
+
secrets: inherit
|
|
10
|
+
|
|
11
|
+
publish_latest:
|
|
12
|
+
name: Publish latest
|
|
13
|
+
runs-on: ubuntu-22.04
|
|
14
|
+
needs: [test_and_sync]
|
|
15
|
+
steps:
|
|
16
|
+
- name: Checkout Source code
|
|
17
|
+
uses: actions/checkout@v4
|
|
18
|
+
with:
|
|
19
|
+
token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
20
|
+
|
|
21
|
+
- name: Use Node.js 22
|
|
22
|
+
uses: actions/setup-node@v4
|
|
23
|
+
with:
|
|
24
|
+
node-version: 22
|
|
25
|
+
cache: 'npm'
|
|
26
|
+
cache-dependency-path: 'package-lock.json'
|
|
27
|
+
|
|
28
|
+
- name: Turbo cache
|
|
29
|
+
id: turbo-cache
|
|
30
|
+
uses: actions/cache@v4
|
|
31
|
+
with:
|
|
32
|
+
path: .turbo
|
|
33
|
+
key: turbo-${{ github.job }}-${{ github.ref_name }}-${{ github.sha }}
|
|
34
|
+
restore-keys: |
|
|
35
|
+
turbo-${{ github.job }}-${{ github.ref_name }}-
|
|
36
|
+
|
|
37
|
+
- name: Install Dependencies
|
|
38
|
+
run: npm ci
|
|
39
|
+
|
|
40
|
+
- name: Release latest versions
|
|
41
|
+
run: |
|
|
42
|
+
git config --global user.name 'Apify Release Bot'
|
|
43
|
+
git config --global user.email 'noreply@apify.com'
|
|
44
|
+
|
|
45
|
+
echo "access=public" >> ~/.npmrc
|
|
46
|
+
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" >> ~/.npmrc
|
|
47
|
+
|
|
48
|
+
export GIT_TAG=$(echo $GITHUB_REF | sed 's/refs\/tags\///g')
|
|
49
|
+
npm run release
|
|
50
|
+
env:
|
|
51
|
+
NPM_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_NPM_TOKEN }}
|
|
52
|
+
GIT_USER: 'noreply@apify.com:${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}'
|
|
53
|
+
GH_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
54
|
+
|
|
55
|
+
- name: Commit the version bump
|
|
56
|
+
uses: stefanzweifel/git-auto-commit-action@v6
|
|
57
|
+
with:
|
|
58
|
+
branch: master
|
|
59
|
+
commit_message: 'chore: [skip ci] sync new package.json versions'
|
|
60
|
+
file_pattern: 'package*.json'
|
|
61
|
+
commit_user_name: Apify Bot
|
|
62
|
+
commit_user_email: my-github-actions-bot@example.org
|
|
63
|
+
commit_author: Apify Bot <apify@apify.com>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: Create a release
|
|
2
|
+
on: workflow_dispatch
|
|
3
|
+
|
|
4
|
+
jobs:
|
|
5
|
+
publish_to_pypi:
|
|
6
|
+
name: Publish to PyPI
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
id-token: write # Required for OIDC authentication.
|
|
11
|
+
environment:
|
|
12
|
+
name: pypi
|
|
13
|
+
url: https://pypi.org/project/crawlee
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
- uses: actions/setup-python@v5
|
|
17
|
+
with:
|
|
18
|
+
python-version: '3.13'
|
|
19
|
+
- uses: astral-sh/setup-uv@v5
|
|
20
|
+
- name: Build project
|
|
21
|
+
shell: bash
|
|
22
|
+
run: uv build
|
|
23
|
+
|
|
24
|
+
# Publishes the package to PyPI using PyPA official GitHub action with OIDC authentication.
|
|
25
|
+
- name: Publish package to PyPI
|
|
26
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -3,26 +3,29 @@ name: Run tests
|
|
|
3
3
|
on:
|
|
4
4
|
# Push to master will deploy a dev version, push to stable deploys the latest version (and syncs the master branch)
|
|
5
5
|
push:
|
|
6
|
-
branches: [
|
|
6
|
+
branches: [master, stable]
|
|
7
7
|
# PRs will run tests (skip deployment)
|
|
8
8
|
pull_request:
|
|
9
|
-
branches: [
|
|
9
|
+
branches: [master, stable]
|
|
10
10
|
# A release via GitHub releases will deploy the latest version
|
|
11
11
|
workflow_call:
|
|
12
12
|
workflow_dispatch:
|
|
13
13
|
|
|
14
|
+
env:
|
|
15
|
+
APIFY_HTTPBIN_TOKEN: ${{ secrets.APIFY_HTTPBIN_TOKEN }}
|
|
16
|
+
|
|
14
17
|
jobs:
|
|
15
18
|
lint:
|
|
16
19
|
name: Lint
|
|
17
20
|
if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
|
|
18
|
-
runs-on: ubuntu-
|
|
21
|
+
runs-on: ubuntu-22.04
|
|
19
22
|
|
|
20
23
|
steps:
|
|
21
24
|
- uses: actions/checkout@v4
|
|
22
|
-
- name: Use Node.js 22
|
|
25
|
+
- name: Use Node.js 22
|
|
23
26
|
uses: actions/setup-node@v4
|
|
24
27
|
with:
|
|
25
|
-
|
|
28
|
+
node-version: 22
|
|
26
29
|
|
|
27
30
|
- name: Install Dependencies
|
|
28
31
|
run: npm ci
|
|
@@ -30,9 +33,9 @@ jobs:
|
|
|
30
33
|
- name: Load Cache
|
|
31
34
|
uses: actions/cache@v4
|
|
32
35
|
with:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
path: |
|
|
37
|
+
node_modules
|
|
38
|
+
key: cache-${{ github.run_id }}
|
|
36
39
|
|
|
37
40
|
- run: npm run lint
|
|
38
41
|
|
|
@@ -43,15 +46,15 @@ jobs:
|
|
|
43
46
|
|
|
44
47
|
strategy:
|
|
45
48
|
matrix:
|
|
46
|
-
os: [
|
|
47
|
-
node-version: [
|
|
49
|
+
os: [ubuntu-22.04]
|
|
50
|
+
node-version: [18, 20, 22]
|
|
48
51
|
|
|
49
52
|
steps:
|
|
50
53
|
- uses: actions/checkout@v4
|
|
51
54
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
52
55
|
uses: actions/setup-node@v4
|
|
53
56
|
with:
|
|
54
|
-
|
|
57
|
+
node-version: ${{ matrix.node-version }}
|
|
55
58
|
|
|
56
59
|
- name: Cache Node Modules
|
|
57
60
|
uses: actions/cache@v4
|
|
@@ -59,24 +62,24 @@ jobs:
|
|
|
59
62
|
path: |
|
|
60
63
|
node_modules
|
|
61
64
|
key: cache-${{ github.run_id }}
|
|
62
|
-
|
|
65
|
+
|
|
63
66
|
- name: Install Playwright deps
|
|
64
|
-
run
|
|
65
|
-
|
|
67
|
+
run: npx playwright install --with-deps
|
|
68
|
+
|
|
66
69
|
- name: Install Puppeteer deps
|
|
67
|
-
run
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
run: |
|
|
71
|
+
npx puppeteer browsers install chrome
|
|
72
|
+
npx puppeteer browsers install firefox
|
|
70
73
|
|
|
71
74
|
- name: Turbo cache
|
|
72
75
|
id: turbo-cache
|
|
73
76
|
uses: actions/cache@v4
|
|
74
77
|
with:
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
path: .turbo
|
|
79
|
+
key: turbo-${{ github.job }}-${{ github.ref_name }}-${{ github.sha }}
|
|
80
|
+
restore-keys: |
|
|
81
|
+
turbo-${{ github.job }}-${{ github.ref_name }}-
|
|
82
|
+
|
|
80
83
|
- name: Build
|
|
81
84
|
run: npm run build
|
|
82
85
|
|
|
@@ -86,4 +89,4 @@ jobs:
|
|
|
86
89
|
|
|
87
90
|
- name: Run Linux tests
|
|
88
91
|
run: xvfb-run --auto-servernum -- npm test
|
|
89
|
-
if: ${{ matrix.os == 'ubuntu-
|
|
92
|
+
if: ${{ matrix.os == 'ubuntu-22.04'}}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Update new issue
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
issues:
|
|
5
|
+
types:
|
|
6
|
+
- opened
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
label_issues:
|
|
10
|
+
name: Label issues
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
issues: write
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
# Add the "t-tooling" label to all new issues
|
|
17
|
+
- uses: actions/github-script@v7
|
|
18
|
+
with:
|
|
19
|
+
script: |
|
|
20
|
+
github.rest.issues.addLabels({
|
|
21
|
+
issue_number: context.issue.number,
|
|
22
|
+
owner: context.repo.owner,
|
|
23
|
+
repo: context.repo.repo,
|
|
24
|
+
labels: ["t-tooling"]
|
|
25
|
+
})
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -32,21 +32,21 @@ orientation.
|
|
|
32
32
|
Examples of behavior that contributes to creating a positive environment
|
|
33
33
|
include:
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
- Using welcoming and inclusive language
|
|
36
|
+
- Being respectful of differing viewpoints and experiences
|
|
37
|
+
- Gracefully accepting constructive criticism
|
|
38
|
+
- Focusing on what is best for the community
|
|
39
|
+
- Showing empathy towards other community members
|
|
40
40
|
|
|
41
41
|
Examples of unacceptable behavior by participants include:
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
advances
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
- The use of sexualized language or imagery and unwelcome sexual attention or
|
|
44
|
+
advances
|
|
45
|
+
- Trolling, insulting/derogatory comments, and personal or political attacks
|
|
46
|
+
- Public or private harassment
|
|
47
|
+
- Publishing others' private information, such as a physical or electronic
|
|
48
48
|
address, without explicit permission
|
|
49
|
-
|
|
49
|
+
- Other conduct which could reasonably be considered inappropriate in a
|
|
50
50
|
professional setting
|
|
51
51
|
|
|
52
52
|
### Our Responsibilities
|