Skip to content

Commit 2366a67

Browse files
patmmccanndpapworth-qcdgirardimkomorskimatthewfitz
authored
Prebid 11.0 (#14433)
* Remove quantcastId (#14045) * Remove quantcastIdSystem. * Remove references to quantcastId. --------- Co-authored-by: Demetrio Girardi <dgirardi@prebid.org> * Remove quantcast bid adapter (#14054) * Remove quantcast bid adapter. * Update metadata. * Update modules.json * Add quantcastBidAdapter.json metadata file --------- Co-authored-by: Patrick McCann <patmmccann@gmail.com> Co-authored-by: Patrick McCann <pmccann@cafemedia.com> * Delete modules/ringieraxelspringerBidAdapter.md * Delete test/spec/modules/ringieraxelspringerBidAdapter_spec.js * Delete modules/ringieraxelspringerBidAdapter.js * Delete metadata/modules/ringieraxelspringerBidAdapter.json * Remove ringieraxelspringerBidAdapter from overrides * Delete modules/dfpAdServerVideo.js * Delete modules/dfpAdpod.js * Delete modules/express.js * Prebid 11: remove PAAPI (#14432) * core: remove paapi support * PAAPI: remove paapi modules * Core: remove getBidToRender * Debugging: remove paapi support * Core: remove paapi events * PBS bid adapter: remove paapi support * VidazooUtils: remove paapi support * paapiTools: remove paapiTools * remove stray references to paapi methods * criteo bid adapter: remove paapi support * ix bid adapter: remove paapi support * logicAd bid adapter: remove paapi support * gumgum bid adapter: remove paapi support * ccx bid adapter: remove paapi support * Remove stray paapi tests * kargo bid adapter: remove paapi support * rtb house bid adapter: remove references to fledge in docs * onetag bid adapter: remove paapi support * medianet bid adapter: remove paapi support * lucead bid adapter: remove paapi support * openxBidAdapter: remove paapi support * optable bid adapter: remove paapi support * sharethrough bid adapter: remove paapi support * silverpush bid adapter: remove paapi support * sspBC bid adapter: remove paapi support * taboola bid adapter: remove paapi support * triplelift bid adapter: remove paapi support * ozone bid adapter: remove paapi support * lint * Delete modules/optableBidAdapter.js * Delete modules/optableBidAdapter.md * Delete test/spec/modules/optableBidAdapter_spec.js --------- Co-authored-by: Patrick McCann <patmmccann@gmail.com> * Fix JSON formatting in quantcastBidAdapter.json * Core: default storageControl enforcement to strict (#14439) * Core: remove bidAccepted event emission (#14449) * 33across ID System: fix getId storage test stub isolation (#14457) * ShinezRtb Adapter: stabilize unique deal id timing test (#14446) * ShinezRtb Adapter: stabilize unique deal id test (#14458) * Core: remove null callback placeholders from storage manager reads/writes (#14461) * Prebid 11: remove adpod mediatype (#14451) * Core: remove dead adpod code paths from appnexus and mediafuse * Delete libraries/categoryTranslationMapping/index.js * Delete modules/categoryTranslation.js * Delete metadata/modules/categoryTranslation.json * Delete test/spec/modules/categoryTranslation_spec.js * Delete metadata/disclosures/prebid/categoryTranslation.json * Remove notifyTranslationModule and its hook registration Removed notifyTranslationModule function and its registration. * Remove brand category exclusion from payload Removed brand category uniqueness setting from payload. * Remove brand category uniqueness from payload Removed brand category uniqueness setting from payload. * Update appnexusBidAdapter_spec.js * Update mediafuseBidAdapter_spec.js * Update gamAdServerVideo.js * Update test_deps.js * Adapters: remove adpod media type handling across bidders (#14456) * Update aidemBidAdapter.js * Update aidemBidAdapter_spec.js * Prebid 11: 33across id system: make compatible with storage control change (#14462) * 33across ID Adapter: stabilize hashed email cleanup test * 33across Id System: gate HEM persistence on storeFpid * Update 33acrossIdSystem.js * remove unnecessary storageControl import * Prebid 11: turn off storageControl during testing (#14464) * Prebid 11: turn off storageControl during testing * remove unnecessary setConfig * Revert "Core: remove null callback placeholders from storage manager reads/wr…" (#14465) This reverts commit 1794187. * Prebid 11: remove superfluous addAdUnits and seat_non_bid event emission (#14466) * Core: remove addAdUnits event emission * Core: remove analytics subscriptions for addAdUnits * Core: remove addAdUnits event constant * Core: remove seatNonBid event constant * 33across Analytics Adapter: handle seatnonbid via pbsAnalytics (#14471) * Update 33acrossAnalyticsAdapter.js * Update 33acrossAnalyticsAdapter_spec.js * Prebid 11: remove deprecated DNT/DoNotTrack usage and force static dnt handling (#14448) * Fix data formatting in gmosspBidAdapter tests * Remove DNT signal handling from bid request Removed deprecated DNT signal handling from request. * Update video startdelay, skip, and bidfloor values * Update viewability checks to expect 0 instead of null * Update video startdelay and skip expectations * Update bidfloor and no bid response expectations * Remove dnt test case from rhythmoneBidAdapter_spec Removed test case for 'dnt is correctly set to 1' in rhythmoneBidAdapter_spec.js. * Update video startdelay and skip expectations * Update mileBidAdapter.ts * OpenX Adapter: restore getDNT usage for dnt field (#14472) * Core: restore getDNT payload mapping across adapters (#14474) * Update displayioBidAdapter.js * Update mediakeysBidAdapter.js * Update openxBidAdapter.js * Update yahooAdsBidAdapter.js * Update yieldmoBidAdapter.js * Update yieldmoBidAdapter_spec.js * Update enrichment.ts * Update openxBidAdapter.js * Update trafficgateBidAdapter_spec.js * Update trafficgateBidAdapter_spec.js * Update trafficgateBidAdapter_spec.js * Update trafficgateBidAdapter.js * Update trafficgateBidAdapter.js * Do not add DNT to adapters that don't care about it * linter --------- Co-authored-by: Demetrio Girardi <dgirardi@prebid.org> * Prebid 11: add `adUnit.element` option (#14467) * Core: add elementSelector property of ad units * core: use getAdUnitElement * various adapters: use getAdUnitElement * various modules: use getAdUnitElement * various adapters: use getAdUnitElement * use .element, not .elementSelector * lint * fix secureCreatives tests * Update ixBidAdapter.js * Remove TODO note; update type * lint * pubmaticBidAdapter: use getAdUnitElement * placement position: use getAdUnitElement --------- Co-authored-by: Patrick McCann <patmmccann@gmail.com> * Prebid 11: native event trackers handling (#14524) * Prebid 11: native event trackers handling * field name fix * Prebid 11: gpt slots matching to ad units logic unification (#14480) * Promoting customSlotMatching to config * Update gptPreAuction.ts * Update gptPreAuction.ts * renaming --------- Co-authored-by: Patrick McCann <patmmccann@gmail.com> * Module: Remove dmd userid module (#14545) * Remove dmd userid module * Remove dmd userId module test coverage --------- Co-authored-by: mfitzgerald_dmd <mfitzgerald@dmdconnects.com> * lint fix * Prebid 11: document encouraging TypeScript for new source files (#14488) * Docs: require TypeScript for new src/modules/libraries files * Encourage TypeScript for new files in specific directories Rephrase recommendation for TypeScript usage in new files. * Update PR_REVIEW.md * CI: comment on newly added JS files in TS paths (#14526) * Reword to focus on public interface * Update linter.yml Linter check comment --------- Co-authored-by: Demetrio Girardi <dgirardi@prebid.org> * Prebid 11: Bid viewability event trackers (#14505) * Prebid 11: Bid viewability event trackers * naming conflict fix * sspBCBidAdapter vurls fallback * removing firePixels config, fixing event listener, removing gdpr, adding lib spec file * native & js handling * lint * revert adapter changes * revert * remove gpt impression listener first * sspBCBidAdapter refactor * sspBCBidAdapter tests fix * missing import * Update bidViewability.js --------- Co-authored-by: Patrick McCann <patmmccann@gmail.com> * Prebid 11: remove intersectionRtdProvider, use IntersectionObserver in percentInView (#14525) * Core: add elementSelector property of ad units * core: use getAdUnitElement * various adapters: use getAdUnitElement * various modules: use getAdUnitElement * various adapters: use getAdUnitElement * use .element, not .elementSelector * lint * fix secureCreatives tests * Update ixBidAdapter.js * Remove TODO note; update type * lint * pubmaticBidAdapter: use getAdUnitElement * placement position: use getAdUnitElement * percentInView: use IntersectionObserver * adlooxRtdProvider: do not depend on intersectionObserver * remove intersectionrtdprovider * check the right element has intersected * keep size override * handle missing intersection observer * Fix tests * DOMRect weirdness * remove unnecessary sort * More aggressive static fallback * Update percentInView.js * Update percentInView.js * whitespace --------- Co-authored-by: Patrick McCann <patmmccann@gmail.com> * Prebid 11: toss mediatype mismatch bids; avoid mediaType mismatch rejects when adapter omits mediaType (#14496) * Core: preserve omitted mediaType behavior in bid validation * Update bidderFactory to retain mediaType Retain mediaType information from adapter response. * tests fixing * lint * Core: split unknown vs invalid mediaType rejection flags (#14569) --------- Co-authored-by: mkomorski <marcin.komorski@pollub.edu.pl> * adloox analytics: do not disable if not enabled * connatixBidAdapter: fix tests * connatixBidAdapter: fix the fix to the test * percentInView: add timeout, adjust intersection thresholds (#14579) * remove debugger statement * mediaFuse: fix test failing on safari (regex lookbehind not supported) * Revert "mediaFuse: fix test failing on safari (regex lookbehind not supported)" This reverts commit 85860a8. * mediafuse: reapply adpod changes * mediafuse: fix lint * mediafuse: use getAdUnitElement * magnite utils: use getAdUnitElement * Prebid 11: normalize onBidViewable behavior (#14586) * Prebid 11: normalize onBidViewable behavior * lint * Delete scope3_segtax_pr.md * taboola: fix missing import --------- Co-authored-by: dpapworth-qc <50959025+dpapworth-qc@users.noreply.github.com> Co-authored-by: Demetrio Girardi <dgirardi@prebid.org> Co-authored-by: mkomorski <marcin.komorski@pollub.edu.pl> Co-authored-by: Matt Fitzgerald <matthewfitz@gmail.com> Co-authored-by: mfitzgerald_dmd <mfitzgerald@dmdconnects.com>
1 parent 346a7c0 commit 2366a67

File tree

270 files changed

+2171
-15679
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

270 files changed

+2171
-15679
lines changed

.github/workflows/linter.yml

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- name: Set up Node.js
1717
uses: actions/setup-node@v6
1818
with:
19-
node-version: '20'
19+
node-version: "20"
2020

2121
- name: Checkout code
2222
uses: actions/checkout@v6
@@ -35,6 +35,9 @@ jobs:
3535
- name: Get the diff
3636
run: git diff --name-only origin/${{ github.event.pull_request.base.ref }}...refs/remotes/pull/${{ github.event.pull_request.number }}/merge | grep '^\(modules\|src\|libraries\|creative\)/.*\.js$' > __changed_files.txt || true
3737

38+
- name: Get newly added JS files in TS migration paths
39+
run: git diff --name-only --diff-filter=A origin/${{ github.event.pull_request.base.ref }}...refs/remotes/pull/${{ github.event.pull_request.number }}/merge | grep '^\(modules\|src\|libraries\)/.*\.js$' > __new_js_files.txt || true
40+
3841
- name: Run linter on base branch
3942
run: npx eslint --no-inline-config --format json $(cat __changed_files.txt | xargs stat --printf '%n\n' 2> /dev/null) > __base.json || true
4043

@@ -56,7 +59,7 @@ jobs:
5659
const fs = require('fs');
5760
const path = require('path');
5861
const process = require('process');
59-
62+
6063
function parse(fn) {
6164
return JSON.parse(fs.readFileSync(fn)).reduce((memo, data) => {
6265
const file = path.relative(process.cwd(), data.filePath);
@@ -67,7 +70,7 @@ jobs:
6770
return memo;
6871
}, {})
6972
}
70-
73+
7174
function mkDiff(old, new_) {
7275
const files = Object.fromEntries(
7376
Object.entries(new_)
@@ -83,12 +86,23 @@ jobs:
8386
return memo;
8487
}, {errors: 0, warnings: 0, files})
8588
}
86-
87-
function mkComment({errors, warnings, files}) {
89+
90+
function mkComment({errors, warnings, files}, newJsFiles) {
8891
function pl(noun, number) {
8992
return noun + (number === 1 ? '' : 's')
9093
}
91-
if (errors === 0 && warnings === 0) return;
94+
const comments = [];
95+
96+
if (newJsFiles.length > 0) {
97+
let jsComment = 'Whoa there partner! This project is migrating to typescript. Consider changing the new JS files to TS, with well-defined types for what interacts with the prebid public API (for example: bid params and configuration). Thanks!\n\n';
98+
newJsFiles.forEach((file) => {
99+
jsComment += ` * \`${file}\`\n`;
100+
});
101+
comments.push(jsComment);
102+
}
103+
104+
if (errors === 0 && warnings === 0) return comments.length > 0 ? comments.join('\n') : undefined;
105+
92106
const summary = [];
93107
if (errors) summary.push(`**${errors}** linter ${pl('error', errors)}`)
94108
if (warnings) summary.push(`**${warnings}** linter ${pl('warning', warnings)}`)
@@ -99,12 +113,18 @@ jobs:
99113
if (warnings) summary.push(`+${warnings} ${pl('warning', warnings)}`)
100114
cm += ` * \`${file}\` (${summary.join(', ')})\n`
101115
})
102-
return cm;
116+
comments.push(cm);
117+
return comments.join('\n');
118+
}
119+
120+
function readLines(fn) {
121+
if (!fs.existsSync(fn)) return [];
122+
return fs.readFileSync(fn, 'utf8').split('\n').map(line => line.trim()).filter(Boolean);
103123
}
104-
124+
105125
const [base, pr] = ['__base.json', '__pr.json'].map(parse);
106-
const comment = mkComment(mkDiff(base, pr));
107-
126+
const comment = mkComment(mkDiff(base, pr), readLines('__new_js_files.txt'));
127+
108128
if (comment) {
109129
fs.writeFileSync("${{ runner.temp }}/comment.json", JSON.stringify({
110130
issue_number: context.issue.number,

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ This file contains instructions for the Codex agent and its friends when working
2121

2222
## General guidance
2323
- Node.js `>=20` is required; dependencies are managed with `npm`.
24+
- Whenever possible, new modules should provide Typescript types for their public interface.
2425
- Added or modified code must have at least 80% unit test coverage.
2526
- Link any required documentation PRs in the PR description.
2627
- Avoid modifying files in `node_modules` or generated build artifacts under `build`.

CONTRIBUTING.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ master branch.
66
Pull requests must have 80% code coverage before being considered for merge.
77
Additional details about the process can be found [here](./PR_REVIEW.md).
88

9+
Whenever possible, new modules should provide Typescript types for their public interface.
10+
Examples of public interface are bid parameters and configuration (including configuration for analytics, userId, or real time data modules).
11+
912
There are more details available if you'd like to contribute a [bid adapter](https://docs.prebid.org/dev-docs/bidder-adaptor.html) or [analytics adapter](https://docs.prebid.org/dev-docs/integrate-with-the-prebid-analytics-api.html).
1013

1114
## Issues

PR_REVIEW.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ General gulp commands include separate commands for serving the codebase on a bu
1919

2020
### General PR review Process
2121

22+
- Whenever possible, new modules should provide Typescript types for their public interface. Examples of public interface are bid parameters and configuration (including configuration for analytics, userId, or real time data modules).
2223
- All required global and bidder-adapter rules defined in the [Module Rules](https://docs.prebid.org/dev-docs/module-rules.html) must be followed. Please review these rules often - we depend on reviewers to enforce them.
2324
- Checkout the branch (these instructions are available on the GitHub PR page as well).
2425
- Verify PR is a single change type. Example, refactor OR bugfix. If more than 1 type, ask submitter to break out requests.

eslint.config.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,21 @@ module.exports = [
202202
object: 'navigator',
203203
message: 'use ajax.js instead'
204204
},
205+
{
206+
property: 'doNotTrack',
207+
object: 'navigator',
208+
message: 'DNT was deprecated by W3C; Prebid no longer supports DNT signals'
209+
},
210+
{
211+
property: 'msDoNotTrack',
212+
object: 'navigator',
213+
message: 'DNT was deprecated by W3C; Prebid no longer supports DNT signals'
214+
},
215+
{
216+
property: 'doNotTrack',
217+
object: 'window',
218+
message: 'DNT was deprecated by W3C; Prebid no longer supports DNT signals'
219+
},
205220
...['outerText', 'innerText'].map(property => ({
206221
property,
207222
message: 'use .textContent instead'

integrationExamples/gpt/raveltechRtdProvider_example.html

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,6 @@
256256
"expires": 28
257257
}
258258
},
259-
{
260-
"name": "quantcastId"
261-
},
262259
{
263260
"name": "criteo"
264261
},

integrationExamples/gpt/userId_example.html

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,9 +234,6 @@
234234
"expires": 28
235235
}
236236
},
237-
{
238-
"name": "quantcastId"
239-
},
240237
{
241238
"name": "criteo"
242239
},

integrationExamples/longform/basic_w_bidderSettings.html

Lines changed: 0 additions & 148 deletions
This file was deleted.

0 commit comments

Comments
 (0)