PageSourceSearch

https://avihayzanetti.ai/js/az-config.js?v=0143689d

js avihayzanetti.ai collected 2026-10-05 14:36:38 UTC 2,683 bytes, 38 lines download raw bytes

1/* az-config.js: funnel configuration slots. Every empty value means "feature off, degrade safely".
2   Fill these in by editing this file (see ops/CONFIG.md for where each value comes from).
3   Nothing in this file is a secret: it ships to every visitor's browser. */
4(function (g) {
5  var DEFAULTS = {
6    leadWebhookUrl: '',            // n8n production webhook URL, e.g. https://x.jonny.cloud/webhook/az-lead-coaching
7    leadWebhookSecretHeader: '',   // optional header NAME only (not a secret), sent with the constant value "az-lp-1"
8    snapshotWebhookUrl: '',        // n8n production webhook URL for the AI leadership snapshot (falls back to leadWebhookUrl)
9    leadEndpointMode: 'n8n',       // 'n8n' (POST to leadWebhookUrl) | 'mailto' (always use email fallback) | 'dryrun' (log payload, send nothing)
10    pixelId: '',                   // OpenAI Ads pixel id; empty means the pixel never loads
11    schedulerUrl: 'https://calendar.google.com/calendar/appointments/schedules/AcZssZ0susLIfOL6K0C89OXkXqud4pt60NFjsu3vHnb-g1QQXhRBo_g5Tfi8qrHEk6Piil4d3Po4asbN?gv=true', // Google Calendar appointment page (public). Cal.com and Calendly links also work. Empty shows the email fallback
12    priceLine: '',                 // e.g. a short price sentence; empty hides the price card
13    proofQuote: null,              // null, or { text: '', name: '', role: '' } once a real, approved quote exists
14    legalEmail: '',                // contact address shown in legal footers; empty falls back to [email protected]
15    ga4Id: '',                     // GA4 measurement id, informational (GA4 loads through GTM)
16    turnstileSiteKey: ''           // Cloudflare Turnstile site key (public). Empty means no widget and no Cloudflare script
17  };
18  var MODES = { n8n: 1, mailto: 1, dryrun: 1 };
19  function create(w) {
20    var cfg = w.AZ_CONFIG && typeof w.AZ_CONFIG === 'object' ? w.AZ_CONFIG : {};
21    var out = {}, k;
22    for (k in DEFAULTS) {
23      if (Object.prototype.hasOwnProperty.call(DEFAULTS, k)) {
24        out[k] = Object.prototype.hasOwnProperty.call(cfg, k) && cfg[k] !== undefined && cfg[k] !== null ? cfg[k] : DEFAULTS[k];
25      }
26    }
27    if (cfg.proofQuote === null || cfg.proofQuote === undefined) out.proofQuote = null;
28    for (k in cfg) {
29      if (Object.prototype.hasOwnProperty.call(cfg, k) && !Object.prototype.hasOwnProperty.call(out, k)) out[k] = cfg[k];
30    }
31    if (!MODES[out.leadEndpointMode]) out.leadEndpointMode = 'n8n';
32    w.AZ_CONFIG = out;
33    return out;
34  }
35  create._defaults = DEFAULTS;
36  if (typeof module === 'object' && module.exports) { module.exports = create; }
37  else { create(g); }
38})(typeof window !== 'undefined' ? window : this);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.