UNPKG

posthog-js

Version:

Posthog-js allows you to automatically capture usage and send events to PostHog.

811 lines (810 loc) • 26.6 kB
{ "schemaVersion": 1, "limits": { "maxTypeLength": 100, "typePattern": "^[A-Za-z0-9]*[A-Za-z][A-Za-z0-9]*$", "maxTypes": 20, "maxNodes": 2048, "maxSourceLength": 100000, "maxPayloadLength": 20000 }, "typeSets": [ { "name": "Google-listed type", "types": [ "3DModel", "Accommodation", "Action", "AdministrativeArea", "AggregateOffer", "AggregateRating", "AlignmentObject", "Answer", "Article", "BedDetails", "Blog", "BlogPosting", "Book", "BorrowAction", "Brand", "BreadcrumbList", "BroadcastEvent", "Car", "Certification", "Clip", "Comment", "ContactPoint", "Country", "Course", "CreativeWork", "CreativeWorkSeason", "CreativeWorkSeries", "CreditCard", "DataCatalog", "DataDownload", "DataFeed", "Dataset", "DaySpa", "DefinedRegion", "DiscussionForumPosting", "EducationalOccupationalCredential", "Electrician", "EmployerAggregateRating", "EntryPoint", "Episode", "Event", "Game", "GeoCoordinates", "GeoShape", "HealthClub", "Hotel", "HowTo", "HowToDirection", "HowToSection", "HowToStep", "HowToTip", "ImageObject", "InteractionCounter", "ItemList", "JobPosting", "LearningResource", "Library", "LibrarySystem", "ListItem", "LocalBusiness", "LocationFeatureSpecification", "Locksmith", "LodgingBusiness", "MathSolver", "MediaObject", "MemberProgram", "MemberProgramTier", "MerchantReturnPolicy", "MerchantReturnPolicySeasonalOverride", "Message", "MobileApplication", "MonetaryAmount", "Movie", "MusicPlaylist", "MusicRecording", "NewsArticle", "NutritionInformation", "OccupationalExperienceRequirements", "Offer", "OfferShippingDetails", "OnlineStore", "OpeningHoursSpecification", "Organization", "PeopleAudience", "PerformingGroup", "Person", "Pharmacy", "Place", "Plumber", "PostalAddress", "PriceSpecification", "Product", "ProductGroup", "ProfilePage", "PropertyValue", "QAPage", "QuantitativeValue", "Question", "Quiz", "Rating", "ReadAction", "Recipe", "Restaurant", "Review", "SeekToAction", "ServicePeriod", "ShippingConditions", "ShippingDeliveryTime", "ShippingRateSettings", "ShippingService", "SocialMediaPosting", "SoftwareApplication", "SolveMathAction", "SpeakableSpecification", "State", "Store", "Thing", "UnitPriceSpecification", "VacationRental", "VideoGame", "VideoObject", "WatchAction", "WebApplication", "WebPage", "WebPageElement" ] }, { "name": "common Schema.org type", "types": [ "AboutPage", "AudioObject", "AutoDealer", "Bakery", "BarOrPub", "BusinessEvent", "CafeOrCoffeeShop", "CollegeOrUniversity", "CollectionPage", "ContactPage", "Corporation", "Dentist", "EducationEvent", "EducationalOrganization", "FAQPage", "Festival", "FoodEstablishment", "GovernmentOrganization", "IndividualProduct", "LegalService", "MedicalBusiness", "MusicEvent", "NGO", "OfferCatalog", "Photograph", "Physician", "PodcastEpisode", "PodcastSeries", "ProductModel", "RealEstateAgent", "ScholarlyArticle", "School", "SearchAction", "SearchResultsPage", "Service", "SiteNavigationElement", "SportsEvent", "SportsOrganization", "TVEpisode", "TVSeries", "TechArticle", "TheaterEvent", "WebSite" ] }, { "name": "unsupported type", "types": ["PrivateType", "constructor", "toString"] } ], "rejectedTypes": [ "__proto__", "patient@example.com", "+44 0000 000000", "Private Name", "https://example.com/vocab#Customer", "ex:Customer", "schema.org/Product", "", "07700900123" ], "cases": [ { "name": "product with nested offer and identifiers", "capturedDomIds": ["product-id", "person-id"], "input": { "@context": "http://schema.org/", "@type": "Product", "@id": "https://example.com/products/123#product-id", "name": "Camera", "email": "private@example.com", "private@example.com": { "@type": "CustomMetadata", "ratingValue": 4.5 }, "offers": { "@type": "Offer", "@id": "https://example.com/offers/1", "price": 100, "priceCurrency": "GBP", "seller": { "@type": "Person", "@id": "#person-id", "name": "Private name" } } }, "expected": { "@context": "https://schema.org", "@type": "Product", "@id": "product-id", "name": "Camera", "offers": { "@type": "Offer", "price": 100, "priceCurrency": "GBP", "seller": { "@type": "Person", "@id": "person-id" } } } }, { "name": "root graph with unknown entity type", "capturedDomIds": ["person-id"], "input": { "@context": "https://schema.org", "@graph": [ { "@type": "WebSite", "datePublished": "2026-08-25", "email": "private@example.com", "potentialAction": { "@type": "SearchAction", "actionStatus": "https://schema.org/PotentialActionStatus", "target": "https://example.com/search?q=private" } }, { "@type": "FAQPage", "inLanguage": "en", "text": "Private question and answer" }, { "@type": "Person", "@id": "person-id", "name": "Private name" }, { "@type": "PrivateType", "ratingValue": 4.5, "email": "private@example.com", "customMetadata": { "priceCurrency": "GBP" } }, "private@example.com" ] }, "expected": { "@context": "https://schema.org", "@graph": [ { "@type": "WebSite", "datePublished": "2026-08-25", "potentialAction": { "@type": "SearchAction", "actionStatus": "https://schema.org/PotentialActionStatus" } }, { "@type": "FAQPage", "inLanguage": "en" }, { "@type": "Person", "@id": "person-id" }, { "@type": "PrivateType", "ratingValue": 4.5 } ] } }, { "name": "type arrays and scalar arrays", "capturedDomIds": [], "input": { "@context": "https://schema.org", "@type": ["https://schema.org/Product", "Product", "Car", "Car", "PrivateType", 42], "name": ["Camera", 2, true, null], "color": [ "black", { "value": "private" } ] }, "expected": { "@context": "https://schema.org", "@type": ["Product", "Car", "PrivateType"], "name": ["Camera", 2, true, null] } }, { "name": "duplicate types at nested entities", "capturedDomIds": [], "input": { "@context": "https://schema.org", "@type": ["Product", "Product", "https://schema.org/Product"], "offers": { "@type": ["Offer", "Offer"], "seller": { "@type": ["Organization", "Organization"], "brand": { "@type": ["Brand", "Brand"], "name": "Camera brand" } } } }, "expected": { "@context": "https://schema.org", "@type": ["Product"], "offers": { "@type": ["Offer"], "seller": { "@type": ["Organization"], "brand": { "@type": ["Brand"], "name": "Camera brand" } } } } }, { "name": "type count is capped after deduplication", "capturedDomIds": [], "input": { "@context": "https://schema.org", "@type": [ "Type01", "Type01", "Type02", "Type03", "Type04", "Type05", "Type06", "Type07", "Type08", "Type09", "Type10", "Type11", "Type12", "Type13", "Type14", "Type15", "Type16", "Type17", "Type18", "Type19", "Type20", "Type21" ] }, "expected": { "@context": "https://schema.org", "@type": [ "Type01", "Type02", "Type03", "Type04", "Type05", "Type06", "Type07", "Type08", "Type09", "Type10", "Type11", "Type12", "Type13", "Type14", "Type15", "Type16", "Type17", "Type18", "Type19", "Type20" ] } }, { "name": "root and nested entity arrays", "capturedDomIds": ["person-id"], "input": [ { "@context": "https://schema.org", "@type": "Product", "name": "Camera", "offers": [ { "@type": "Offer", "price": 100, "email": "private@example.com" }, { "@type": "Person", "@id": "person-id", "name": "Private name" } ] }, { "@context": "https://schema.org", "@type": "Organization", "name": "Acme" } ], "expected": [ { "@context": "https://schema.org", "@type": "Product", "name": "Camera", "offers": [ { "@type": "Offer", "price": 100 }, { "@type": "Person", "@id": "person-id" } ] }, { "@context": "https://schema.org", "@type": "Organization", "name": "Acme" } ] }, { "name": "invalid schema context", "capturedDomIds": [], "input": { "@context": "https://example.com", "@type": "Product", "name": "Camera" }, "expected": null }, { "name": "BreadcrumbList with nested items", "capturedDomIds": ["person-id"], "input": { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Private label", "item": { "@type": "Product", "name": "Camera", "email": "private@example.com" } }, { "@type": "Person", "@id": "person-id", "name": "Private name" } ] }, "expected": { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "item": { "@type": "Product", "name": "Camera" } }, { "@type": "Person", "@id": "person-id" } ] } }, { "name": "ItemList with nested items", "capturedDomIds": ["person-id"], "input": { "@context": "https://schema.org", "@type": "ItemList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Private label", "item": { "@type": "Product", "name": "Camera", "email": "private@example.com" } }, { "@type": "Person", "@id": "person-id", "name": "Private name" } ] }, "expected": { "@context": "https://schema.org", "@type": "ItemList", "itemListElement": [ { "@type": "ListItem", "position": 1, "item": { "@type": "Product", "name": "Camera" } }, { "@type": "Person", "@id": "person-id" } ] } }, { "name": "offer catalog and service roots", "capturedDomIds": [], "input": [ { "@context": "https://schema.org", "@type": "OfferCatalog", "name": "Services", "itemListElement": { "@type": "Offer", "price": 100, "email": "private@example.com" } }, { "@context": "https://schema.org", "@type": "Service", "name": "Installation", "serviceType": "Installation", "email": "private@example.com", "provider": { "@type": "EducationalOrganization", "name": "Acme", "telephone": "+44 0000 000000" } } ], "expected": [ { "@context": "https://schema.org", "@type": "OfferCatalog", "name": "Services", "itemListElement": { "@type": "Offer", "price": 100 } }, { "@context": "https://schema.org", "@type": "Service", "name": "Installation", "serviceType": "Installation", "provider": { "@type": "EducationalOrganization", "name": "Acme" } } ] }, { "name": "unallowlisted entity branch", "capturedDomIds": ["root-id", "child-id", "product-id", "reference-id"], "input": { "@context": "https://schema.org", "@type": "Product", "@id": "root-id", "name": "Camera", "privateRootValue": "private", "customChild": { "@type": "CustomChild", "@id": "child-id", "privateChildValue": "private", "nestedEntity": { "@type": "Product", "@id": "product-id", "name": "Private product name", "ratingValue": 4.5 }, "idOnlyNode": { "@id": "reference-id", "privateReferenceValue": "private" } } }, "expected": { "@context": "https://schema.org", "@type": "Product", "@id": "root-id", "name": "Camera" } }, { "name": "PII-bearing entity types", "capturedDomIds": ["contact-id", "person-id", "address-id"], "input": [ { "@context": "https://schema.org", "@type": "ContactPoint", "@id": "contact-id", "name": "Private name", "email": "private@example.com", "telephone": "+44 0000 000000" }, { "@context": "https://schema.org", "@type": "Person", "@id": "person-id", "name": "Private name", "email": "private@example.com" }, { "@context": "https://schema.org", "@type": "PostalAddress", "@id": "address-id", "streetAddress": "Private address" } ], "expected": [ { "@context": "https://schema.org", "@type": "ContactPoint", "@id": "contact-id" }, { "@context": "https://schema.org", "@type": "Person", "@id": "person-id" }, { "@context": "https://schema.org", "@type": "PostalAddress", "@id": "address-id" } ] }, { "name": "PII-shaped entity types", "capturedDomIds": [], "input": { "@context": "https://schema.org", "@type": ["Product", "patient@example.com"], "name": "Camera", "offers": [ { "@type": "Offer", "price": 100 }, { "@type": "+44 0000 000000", "price": 90, "name": "Private name" }, { "@type": "Private Name" } ], "@graph": [ { "@type": "https://example.com/vocab#Customer", "name": "Private name" }, { "@type": "ex:Customer", "ratingValue": 4.5 } ] }, "expected": { "@context": "https://schema.org", "@type": ["Product"], "name": "Camera", "offers": [ { "@type": "Offer", "price": 100 }, { "price": 90 } ], "@graph": [ { "ratingValue": 4.5 } ] } }, { "name": "schema context without an entity", "capturedDomIds": [], "input": { "@context": "https://schema.org", "privateValue": "private" }, "expected": null } ], "rawSourceCases": [ { "name": "invalid JSON syntax", "source": "not json", "expected": null } ], "prototypeCases": [ { "name": "inherited context", "inheritedProperties": { "@context": "https://schema.org", "@type": "Product", "@id": "inherited-id", "name": "Private name", "ratingValue": 5 }, "capturedDomIds": ["inherited-id"], "input": { "@type": "Product" }, "expected": null }, { "name": "inherited type", "inheritedProperties": { "@context": "https://schema.org", "@type": "Product", "@id": "inherited-id", "name": "Private name", "ratingValue": 5 }, "capturedDomIds": ["inherited-id"], "input": { "@context": "https://schema.org" }, "expected": null }, { "name": "inherited safe-looking leaves", "inheritedProperties": { "@context": "https://schema.org", "@type": "Product", "@id": "inherited-id", "name": "Private name", "ratingValue": 5 }, "capturedDomIds": ["inherited-id"], "input": { "@context": "https://schema.org", "@type": "Product" }, "expected": { "@context": "https://schema.org", "@type": "Product" } } ] }