(function (root, factory) { var validators = root && root.TaberebaAffiliateLinkValidators; if (typeof module === 'object' && module.exports) { validators = require('./affiliate-link-validators.js'); } var api = factory(validators); if (typeof module === 'object' && module.exports) { module.exports = api; } if (root) { root.TaberebaSettingsDiagnostics = api; } }(typeof window !== 'undefined' ? window : globalThis, function (validators) { 'use strict'; function status(value, allowedHosts) { value = typeof value === 'string' ? value.trim() : ''; if (value === '') { return 'unset'; } return validators && validators.valueCommerce(value, allowedHosts) ? 'ok' : 'review'; } function linkshareStatus(value, allowedHosts) { value = typeof value === 'string' ? value.trim() : ''; if (value === '') { return 'unset'; } return validators && validators.linkshare(value, allowedHosts) ? 'ok' : 'review'; } function diagnoseSite(site) { site = site && typeof site === 'object' ? site : {}; var migration = site.migration_info || {}; var hotpepperStatus = status(site.hotpepper_valuecommerce_html, ['www.hotpepper.jp']); if (migration.source === 'legacy_cookie' && migration.needs_affiliate_review !== false) { hotpepperStatus = 'review'; } var items = [ {provider: 'hotpepper', label: 'ホットペッパー グルメ/ValueCommerce', status: hotpepperStatus, field_id: 'tb-hotpepper-mylink'}, {provider: 'tabelog', label: '食べログ/ValueCommerce', status: status(site.tabelog_valuecommerce_html, ['tabelog.com', 'www.tabelog.com']), field_id: 'tb-tabelog-mylink'}, {provider: 'gnavi', label: 'ぐるなび/リンクシェア', status: linkshareStatus(site.gnavi_linkshare_html, ['r.gnavi.co.jp', 'www.gnavi.co.jp']), field_id: 'tb-gnavi-mylink'} ]; var counts = {ok: 0, unset: 0, review: 0}; items.forEach(function (item) { counts[item.status] += 1; }); return { site_name: typeof site.site_name === 'string' ? site.site_name.slice(0, 100) : '', counts: counts, items: items }; } return {diagnoseSite: diagnoseSite}; }));