@snowplow/snowtype-core 0.19.0 → 0.20.0

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.
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { LanguageIds, TrackerTemplates, languageIds, trackerTemplates } from './languages';
2
2
  import { createEventSpecificationInstructionsIdentifier, joinIgluSchemaUrlParts, splitIgluSchemaUrlParts } from './utils';
3
- import { EcomTemplateSchemaType } from './utils/ecom';
4
- export { createEventSpecificationInstructionsIdentifier, languageIds, trackerTemplates, splitIgluSchemaUrlParts, joinIgluSchemaUrlParts, };
3
+ import { EcomTemplateSchemaType, ecomFunctionName } from './utils/ecom';
4
+ export { createEventSpecificationInstructionsIdentifier, languageIds, trackerTemplates, splitIgluSchemaUrlParts, joinIgluSchemaUrlParts, ecomFunctionName, };
5
5
  import { EventSpecificationsInputMetadata as MetaEs } from './schema';
6
6
  import { PropertyRulesSchema } from './quicktype/helpers/merge-property-rules-schemas';
7
7
  import { ValidationsSchemaObject } from './languages/types';
8
- export type { PropertyRulesSchema, LanguageIds, TrackerTemplates, ValidationsSchemaObject, };
8
+ export type { PropertyRulesSchema, LanguageIds, TrackerTemplates, ValidationsSchemaObject, EcomTemplateSchemaType, };
9
9
  export type EventSpecificationIdentifiers = {
10
10
  name: string;
11
11
  id: string;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var Yl=Object.create;var W=Object.defineProperty;var zl=Object.getOwnPropertyDescriptor;var Xl=Object.getOwnPropertyNames;var Zl=Object.getPrototypeOf,hl=Object.prototype.hasOwnProperty;var N=(l,n)=>()=>(n||l((n={exports:{}}).exports,n),n.exports),ne=(l,n)=>{for(var t in n)W(l,t,{get:n[t],enumerable:!0})},Ln=(l,n,t,f)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of Xl(n))!hl.call(l,o)&&o!==t&&W(l,o,{get:()=>n[o],enumerable:!(f=zl(n,o))||f.enumerable});return l};var w=(l,n,t)=>(t=l!=null?Yl(Zl(l)):{},Ln(n||!l||!l.__esModule?W(t,"default",{value:l,enumerable:!0}):t,l)),le=l=>Ln(W({},"__esModule",{value:!0}),l);var tl=N((ja,rl)=>{"use strict";rl.exports={id:{language:"javascript",tracker:"@snowplow/browser-tracker"},1:function(l,n,t,f,o){return`/**
1
+ "use strict";var Yl=Object.create;var W=Object.defineProperty;var zl=Object.getOwnPropertyDescriptor;var Xl=Object.getOwnPropertyNames;var Zl=Object.getPrototypeOf,hl=Object.prototype.hasOwnProperty;var N=(l,n)=>()=>(n||l((n={exports:{}}).exports,n),n.exports),ne=(l,n)=>{for(var t in n)W(l,t,{get:n[t],enumerable:!0})},Dn=(l,n,t,f)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of Xl(n))!hl.call(l,o)&&o!==t&&W(l,o,{get:()=>n[o],enumerable:!(f=zl(n,o))||f.enumerable});return l};var w=(l,n,t)=>(t=l!=null?Yl(Zl(l)):{},Dn(n||!l||!l.__esModule?W(t,"default",{value:l,enumerable:!0}):t,l)),le=l=>Dn(W({},"__esModule",{value:!0}),l);var tl=N((ja,rl)=>{"use strict";rl.exports={id:{language:"javascript",tracker:"@snowplow/browser-tracker"},1:function(l,n,t,f,o){return`/**
2
2
  * Creates a Snowplow Event Specification entity.
3
3
  */
4
4
  export function createEventSpecification(eventSpecification){
@@ -2039,8 +2039,8 @@ import java.util.Arrays;
2039
2039
  public class Snowtype {
2040
2040
  `+((i=p(t,"each").call(u,n!=null?p(n,"eventSpecifications"):n,{name:"each",hash:{},fn:l.program(38,o,0,a,e),inverse:l.noop,data:o,loc:{start:{line:189,column:0},end:{line:207,column:9}}}))!=null?i:"")+`}
2041
2041
  // SNOWTYPE END: Snowtype.java
2042
- `},main_d:function(l,n,t,f,o,a,e){var i=t.decorators,r=t.lookupProperty||function(s,u){if(Object.prototype.hasOwnProperty.call(s,u))return s[u]};return l=r(i,"inline")(l,n,t,{name:"inline",hash:{},fn:t.program(1,o,0,a,e),inverse:t.noop,args:["classProperties"],data:o,loc:{start:{line:1,column:0},end:{line:9,column:11}}})||l,l=r(i,"inline")(l,n,t,{name:"inline",hash:{},fn:t.program(5,o,0,a,e),inverse:t.noop,args:["builderSetters"],data:o,loc:{start:{line:11,column:0},end:{line:20,column:11}}})||l,l=r(i,"inline")(l,n,t,{name:"inline",hash:{},fn:t.program(8,o,0,a,e),inverse:t.noop,args:["initializeClass"],data:o,loc:{start:{line:22,column:0},end:{line:34,column:11}}})||l,l=r(i,"inline")(l,n,t,{name:"inline",hash:{},fn:t.program(14,o,0,a,e),inverse:t.noop,args:["createAndReturnPayloadDictionary"],data:o,loc:{start:{line:38,column:0},end:{line:49,column:11}}})||l,l=r(i,"inline")(l,n,t,{name:"inline",hash:{},fn:t.program(21,o,0,a,e),inverse:t.noop,args:["packageAndImports"],data:o,loc:{start:{line:51,column:0},end:{line:59,column:11}}})||l,l=r(i,"inline")(l,n,t,{name:"inline",hash:{},fn:t.program(23,o,0,a,e),inverse:t.noop,args:["classDefinition"],data:o,loc:{start:{line:62,column:0},end:{line:65,column:11}}})||l,l},useDecorators:!0,usePartial:!0,useData:!0,useDepths:!0}});var Ge={};ne(Ge,{createEventSpecificationInstructionsIdentifier:()=>K,generate:()=>He,joinIgluSchemaUrlParts:()=>I,languageIds:()=>Q,splitIgluSchemaUrlParts:()=>Hn,trackerTemplates:()=>B});module.exports=le(Ge);var Dn=require("quicktype-core"),ee=4;function ae(l,n,t){return`${n??""} ${l} ${t??""}`}function d(l,n,t,f,o){let{prefix:a,suffix:e}=n.typeNameModifiers??{},i=ae(f,a,e);return l(t,i,o)}function Mn(l,n=[],t=[]){let f=(0,Dn.getTargetLanguage)(l),o=[],a=t;for(let e of f.optionDefinitions)n.includes(e.name);return{id:f.name,name:f.displayName,extension:f.extension,requiredOptions:a,advancedOptions:o}}function oe(l,n=ee){let t=l.length,f=0;for(let o=0;o<t;o++){let a=l.charAt(o);if(a===" ")f+=1;else if(a===" ")f=(f/n+1)*n;else return{indent:f,text:l.substring(o)}}return{indent:0,text:null}}function S(l,n,t=4){let f=n.split(`
2043
- `),o=f.length;if(o===0)return;l.emitLine(f[0]);let a=0;for(let e=1;e<o;e++){let i=f[e],{indent:r,text:s}=oe(i,t);if(s!==null){let u=Math.floor(r/t),m=r%t;l.changeIndent(u-a),a=u,l.emitLine(" ".repeat(m),s)}else l.emitLine()}a!==0&&l.changeIndent(-a)}function P(l,n){if(n.length!==0){l.ensureBlankLine();for(let t of n)t(l)}}function Rn(l,n={},t=[]){let f=Object.fromEntries(Object.entries(l).filter(([o])=>!t.includes(o)));return{...n,...f}}function O(l,n,t,f=()=>[]){let{eventSpecifications:o,ecomEventSpecifications:a}=n.inputs,e=[...o,...a].flatMap(i=>f(i.generatedName));return[...new Set([...l,...t,...e])]}var D=require("quicktype-core");var An=require("quicktype-core"),re="__sp";function In(l,n,t){return typeof l!="object"?void 0:{forType:A.makeAttributes({raw:l,...l[re]})}}var Z=class extends An.TypeAttributeKind{constructor(){super("eventMetadata")}combine(n){return n[0]}makeInferred(n){}},A=new Z;var hn=w(require("handlebars"));var _n=require("quicktype-core"),Fn=require("quicktype-core/dist/support/Strings");function h(l,n,t,f){let o=l.descriptionForType(n)?.join(" "),a=l.sourcelikeToString((0,_n.modifySource)(f?.functionName??Fn.originalWord,t)),e=l.sourcelikeToString(t);return{description:o,functionName:a,typeName:e}}function Jn(l,n,t){l.forEach(f=>{f.event===n&&(f.event=t),f.entities=f.entities?.map(o=>o===n?t:o),f.entitiesWithCardinality=f.entitiesWithCardinality?.map(o=>o.name===n?{...o,name:t}:o)})}var v=w(require("handlebars"));var C=require("quicktype-core/dist/support/Strings");function Hn(l){let n=l.replace("iglu:",""),[t,f,o,a]=n.split("/");return{vendor:t,name:f,format:o,version:a}}function I(l){return`iglu:${l.vendor}/${l.name}/${l.format}/${l.version}`}function K(l){return`ID: ${l}`}var te=(0,C.legalizeCharacters)(l=>(0,C.isAscii)(l)&&(0,C.isLetterOrUnderscoreOrDigit)(l)),Un=(0,C.makeNameStyle)("pascal",te);function Vn(l){return l===0}function $n(l){return[...l.filter(n=>!n.isOptional),...l.filter(n=>n.isOptional)]}function Gn(l){let n=l.filter(ie).map(f=>{let o=f.entitiesSchemas?.map(a=>({name:q(a.original.self,!!a.propertyRule,f.eventSpecification.name),isOptional:Vn(a.minCardinality)}));return{generatedName:Un(f.eventSpecification.name),id:f.eventSpecification.id,name:f.eventSpecification.name,version:f.version,dataProductName:f.eventSpecification.dataProductName,dataProductId:f.eventSpecification.dataProductId,dataProductDomain:f.eventSpecification.dataProductDomain||void 0,event:q(f.eventSchema.self,!!f.propertyRules,f.eventSpecification.name),entities:o?.map(a=>a.name),entitiesWithCardinality:o&&$n(o)}}),t=l.filter(ue).map(f=>{let o=f.entitiesSchemas?.filter(a=>!a.original.isEcomTemplateSchema).map(a=>({name:I(a.original.self),isOptional:Vn(a.minCardinality)}));return{generatedName:Un(f.eventSpecification.name),id:f.eventSpecification.id,version:f.version,name:f.eventSpecification.name,dataProductName:f.eventSpecification.dataProductName,dataProductId:f.eventSpecification.dataProductId,dataProductDomain:f.eventSpecification.dataProductDomain||void 0,event:f.eventSchema.isEcomTemplateSchema,entities:o?.map(a=>a.name),entitiesWithCardinality:o&&$n(o)}});return{eventSpecifications:n,ecomEventSpecifications:t}}function q(l,n,t){return I(n?{...l,name:l.name+"_"+(0,C.snakeCase)(t)}:l)}function ie(l){return typeof l.eventSchema.isEcomTemplateSchema>"u"}function ue(l){return typeof l.eventSchema.isEcomTemplateSchema<"u"}var Wn={add_to_cart:"Ecom.trackAddToCart",checkout_step:"Ecom.trackCheckoutStep",list_click:"Ecom.trackProductListClick",list_view:"Ecom.trackProductListView",product_view:"Ecom.trackProductView",promo_click:"Ecom.trackPromotionClick",promo_view:"Ecom.trackPromotionView",remove_from_cart:"Ecom.trackRemoveFromCart",transaction:"Ecom.trackTransaction",refund:"Ecom.trackRefund",trns_error:"Ecom.trackTransactionError"},qn={add_to_cart:"Ecom.Cart",checkout_step:"Ecom.CheckoutStep",list_click:"Ecom.ListClickEvent",list_view:"Ecom.ListViewEvent",product_view:"Ecom.Product",promo_click:"Ecom.SPPromotion",promo_view:"Ecom.SPPromotion",remove_from_cart:"Ecom.Cart",transaction:"Ecom.SPTransaction",refund:"Ecom.Refund",trns_error:"Ecom.TransactionError"},Kn={add_to_cart:"AddToCartEvent",checkout_step:"CheckoutStepEvent",list_click:"ProductListClickEvent",list_view:"ProductListViewEvent",product_view:"ProductViewEvent",promo_click:"PromotionClickEvent",promo_view:"PromotionViewEvent",remove_from_cart:"RemoveFromCartEvent",transaction:"TransactionEvent",refund:"RefundEvent",trns_error:"TransactionErrorEvent"};var $=({metadata:l,eventSpecId:n})=>({hasOutdated:l[n].outdatedDsWarnings.length>0,messageOutdatedText:"Deprecated: Outdated data structure detected.",hasHidden:l[n].hiddenDsWarnings.length>0,messageHiddenText:"Warning: Hidden data structure detected."});function Bn(l,n,t){let{hasOutdated:f,messageOutdatedText:o,hasHidden:a,messageHiddenText:e}=$({metadata:l,eventSpecId:n});return f&&a?`
2042
+ `},main_d:function(l,n,t,f,o,a,e){var i=t.decorators,r=t.lookupProperty||function(s,u){if(Object.prototype.hasOwnProperty.call(s,u))return s[u]};return l=r(i,"inline")(l,n,t,{name:"inline",hash:{},fn:t.program(1,o,0,a,e),inverse:t.noop,args:["classProperties"],data:o,loc:{start:{line:1,column:0},end:{line:9,column:11}}})||l,l=r(i,"inline")(l,n,t,{name:"inline",hash:{},fn:t.program(5,o,0,a,e),inverse:t.noop,args:["builderSetters"],data:o,loc:{start:{line:11,column:0},end:{line:20,column:11}}})||l,l=r(i,"inline")(l,n,t,{name:"inline",hash:{},fn:t.program(8,o,0,a,e),inverse:t.noop,args:["initializeClass"],data:o,loc:{start:{line:22,column:0},end:{line:34,column:11}}})||l,l=r(i,"inline")(l,n,t,{name:"inline",hash:{},fn:t.program(14,o,0,a,e),inverse:t.noop,args:["createAndReturnPayloadDictionary"],data:o,loc:{start:{line:38,column:0},end:{line:49,column:11}}})||l,l=r(i,"inline")(l,n,t,{name:"inline",hash:{},fn:t.program(21,o,0,a,e),inverse:t.noop,args:["packageAndImports"],data:o,loc:{start:{line:51,column:0},end:{line:59,column:11}}})||l,l=r(i,"inline")(l,n,t,{name:"inline",hash:{},fn:t.program(23,o,0,a,e),inverse:t.noop,args:["classDefinition"],data:o,loc:{start:{line:62,column:0},end:{line:65,column:11}}})||l,l},useDecorators:!0,usePartial:!0,useData:!0,useDepths:!0}});var Ge={};ne(Ge,{createEventSpecificationInstructionsIdentifier:()=>K,ecomFunctionName:()=>B,generate:()=>He,joinIgluSchemaUrlParts:()=>I,languageIds:()=>Y,splitIgluSchemaUrlParts:()=>Gn,trackerTemplates:()=>Q});module.exports=le(Ge);var Mn=require("quicktype-core"),ee=4;function ae(l,n,t){return`${n??""} ${l} ${t??""}`}function d(l,n,t,f,o){let{prefix:a,suffix:e}=n.typeNameModifiers??{},i=ae(f,a,e);return l(t,i,o)}function Rn(l,n=[],t=[]){let f=(0,Mn.getTargetLanguage)(l),o=[],a=t;for(let e of f.optionDefinitions)n.includes(e.name);return{id:f.name,name:f.displayName,extension:f.extension,requiredOptions:a,advancedOptions:o}}function oe(l,n=ee){let t=l.length,f=0;for(let o=0;o<t;o++){let a=l.charAt(o);if(a===" ")f+=1;else if(a===" ")f=(f/n+1)*n;else return{indent:f,text:l.substring(o)}}return{indent:0,text:null}}function S(l,n,t=4){let f=n.split(`
2043
+ `),o=f.length;if(o===0)return;l.emitLine(f[0]);let a=0;for(let e=1;e<o;e++){let i=f[e],{indent:r,text:s}=oe(i,t);if(s!==null){let u=Math.floor(r/t),m=r%t;l.changeIndent(u-a),a=u,l.emitLine(" ".repeat(m),s)}else l.emitLine()}a!==0&&l.changeIndent(-a)}function P(l,n){if(n.length!==0){l.ensureBlankLine();for(let t of n)t(l)}}function An(l,n={},t=[]){let f=Object.fromEntries(Object.entries(l).filter(([o])=>!t.includes(o)));return{...n,...f}}function O(l,n,t,f=()=>[]){let{eventSpecifications:o,ecomEventSpecifications:a}=n.inputs,e=[...o,...a].flatMap(i=>f(i.generatedName));return[...new Set([...l,...t,...e])]}var D=require("quicktype-core");var In=require("quicktype-core"),re="__sp";function _n(l,n,t){return typeof l!="object"?void 0:{forType:A.makeAttributes({raw:l,...l[re]})}}var h=class extends In.TypeAttributeKind{constructor(){super("eventMetadata")}combine(n){return n[0]}makeInferred(n){}},A=new h;var hn=w(require("handlebars"));var Fn=require("quicktype-core"),Jn=require("quicktype-core/dist/support/Strings");function nn(l,n,t,f){let o=l.descriptionForType(n)?.join(" "),a=l.sourcelikeToString((0,Fn.modifySource)(f?.functionName??Jn.originalWord,t)),e=l.sourcelikeToString(t);return{description:o,functionName:a,typeName:e}}function Un(l,n,t){l.forEach(f=>{f.event===n&&(f.event=t),f.entities=f.entities?.map(o=>o===n?t:o),f.entitiesWithCardinality=f.entitiesWithCardinality?.map(o=>o.name===n?{...o,name:t}:o)})}var v=w(require("handlebars"));var C=require("quicktype-core/dist/support/Strings");function Gn(l){let n=l.replace("iglu:",""),[t,f,o,a]=n.split("/");return{vendor:t,name:f,format:o,version:a}}function I(l){return`iglu:${l.vendor}/${l.name}/${l.format}/${l.version}`}function K(l){return`ID: ${l}`}var te=(0,C.legalizeCharacters)(l=>(0,C.isAscii)(l)&&(0,C.isLetterOrUnderscoreOrDigit)(l)),Vn=(0,C.makeNameStyle)("pascal",te);function $n(l){return l===0}function Hn(l){return[...l.filter(n=>!n.isOptional),...l.filter(n=>n.isOptional)]}function Wn(l){let n=l.filter(ie).map(f=>{let o=f.entitiesSchemas?.map(a=>({name:q(a.original.self,!!a.propertyRule,f.eventSpecification.name),isOptional:$n(a.minCardinality)}));return{generatedName:Vn(f.eventSpecification.name),id:f.eventSpecification.id,name:f.eventSpecification.name,version:f.version,dataProductName:f.eventSpecification.dataProductName,dataProductId:f.eventSpecification.dataProductId,dataProductDomain:f.eventSpecification.dataProductDomain||void 0,event:q(f.eventSchema.self,!!f.propertyRules,f.eventSpecification.name),entities:o?.map(a=>a.name),entitiesWithCardinality:o&&Hn(o)}}),t=l.filter(ue).map(f=>{let o=f.entitiesSchemas?.filter(a=>!a.original.isEcomTemplateSchema).map(a=>({name:I(a.original.self),isOptional:$n(a.minCardinality)}));return{generatedName:Vn(f.eventSpecification.name),id:f.eventSpecification.id,version:f.version,name:f.eventSpecification.name,dataProductName:f.eventSpecification.dataProductName,dataProductId:f.eventSpecification.dataProductId,dataProductDomain:f.eventSpecification.dataProductDomain||void 0,event:f.eventSchema.isEcomTemplateSchema,entities:o?.map(a=>a.name),entitiesWithCardinality:o&&Hn(o)}});return{eventSpecifications:n,ecomEventSpecifications:t}}function q(l,n,t){return I(n?{...l,name:l.name+"_"+(0,C.snakeCase)(t)}:l)}function ie(l){return typeof l.eventSchema.isEcomTemplateSchema>"u"}function ue(l){return typeof l.eventSchema.isEcomTemplateSchema<"u"}var B={add_to_cart:"Ecom.trackAddToCart",checkout_step:"Ecom.trackCheckoutStep",list_click:"Ecom.trackProductListClick",list_view:"Ecom.trackProductListView",product_view:"Ecom.trackProductView",promo_click:"Ecom.trackPromotionClick",promo_view:"Ecom.trackPromotionView",remove_from_cart:"Ecom.trackRemoveFromCart",transaction:"Ecom.trackTransaction",refund:"Ecom.trackRefund",trns_error:"Ecom.trackTransactionError"},qn={add_to_cart:"Ecom.Cart",checkout_step:"Ecom.CheckoutStep",list_click:"Ecom.ListClickEvent",list_view:"Ecom.ListViewEvent",product_view:"Ecom.Product",promo_click:"Ecom.SPPromotion",promo_view:"Ecom.SPPromotion",remove_from_cart:"Ecom.Cart",transaction:"Ecom.SPTransaction",refund:"Ecom.Refund",trns_error:"Ecom.TransactionError"},Kn={add_to_cart:"AddToCartEvent",checkout_step:"CheckoutStepEvent",list_click:"ProductListClickEvent",list_view:"ProductListViewEvent",product_view:"ProductViewEvent",promo_click:"PromotionClickEvent",promo_view:"PromotionViewEvent",remove_from_cart:"RemoveFromCartEvent",transaction:"TransactionEvent",refund:"RefundEvent",trns_error:"TransactionErrorEvent"};var $=({metadata:l,eventSpecId:n})=>({hasOutdated:l[n].outdatedDsWarnings.length>0,messageOutdatedText:"Deprecated: Outdated data structure detected.",hasHidden:l[n].hiddenDsWarnings.length>0,messageHiddenText:"Warning: Hidden data structure detected."});function Bn(l,n,t){let{hasOutdated:f,messageOutdatedText:o,hasHidden:a,messageHiddenText:e}=$({metadata:l,eventSpecId:n});return f&&a?`
2044
2044
  ${t} ${o}
2045
2045
  ${t} ${e}`:f?`
2046
2046
  ${t} ${o}`:a?`
@@ -2054,16 +2054,16 @@ public class Snowtype {
2054
2054
  ${t} @deprecated ${a}
2055
2055
  * ${e}`:f?`
2056
2056
  ${t} @deprecated ${a}`:o?`
2057
- ${t} ${e}`:""}function Zn(){v.default.registerHelper({and(...l){return Array.prototype.every.call(l,Boolean)},or(...l){return Array.prototype.slice.call(l,0,-1).some(Boolean)}}),v.default.registerHelper("join",function(l,n,t){return t&&typeof t=="string"?l.map(f=>f+t).join(n):l.join(n)}),v.default.registerHelper("firstLow",function(l){return l&&typeof l=="string"?l.charAt(0).toLowerCase():""}),v.default.registerHelper("startLow",function(l){return l&&typeof l=="string"?l.charAt(0).toLowerCase().concat(l.slice(1)):""}),v.default.registerHelper("startUpper",function(l){return l&&typeof l=="string"?l.charAt(0).toUpperCase().concat(l.slice(1)):""}),v.default.registerHelper("camelCase",function(l){if(l&&typeof l=="string"){let n=l.split("_").map((t,f)=>f===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("");return n==="null"?"nullValue":n}return""}),v.default.registerHelper("addEventSpecificationIdentifier",function(l){return l&&typeof l=="string"?K(l):""}),v.default.registerHelper("ecomFunction",function(l){return Wn[l]}),v.default.registerHelper("ecomFunctionArgument",function(l){return qn[l]}),v.default.registerHelper("ecomFunctionMobile",function(l){return Kn[l]}),v.default.registerHelper("eq",function(l,n){return l===n}),v.default.registerHelper("debug",function(l,n,t){if(console.log(t===!0?JSON.stringify(l):l),n===!0)debugger;return""}),v.default.registerHelper("warningsDs",Bn),v.default.registerHelper("warningsDsGo",Qn),v.default.registerHelper("warningsMetadataJs",zn("*")),v.default.registerHelper("warningsMetadataJsGtm",Xn),v.default.registerHelper("warningsDsDart",Yn),v.default.registerHelper("withSwiftNamespace",function(l,n){return l?`${l}.${n}`:n})}function nl(l,{eventSpecifications:n,ecomEventSpecifications:t},f,o){try{Zn();let a=hn.default.template(l),{nameModifiers:e,validations:i}=f;return r=>{let s={type:[],nestedTypes:[],enums:[],eventSpecifications:n,ecomEventSpecifications:t,validations:i,metadataForAllEventSpecs:o,namespace:f.namespace};return r.forEachNamedType("leading-and-interposing",(u,m)=>{let c=u.getAttributes().get(A),y=h(r,u,m,e),p={...y,...r.getClassData&&r.getClassData(u)};if(c!==void 0&&c.raw.self!==void 0){let{raw:g}=c,k=I(g.self),b=g.self.isEventPropertyRule,ql=g.self.isEntityPropertyRule,Kl=g.self.eventSpecificationId,Bl=q(g.self,!!g.self.eventSpecificationName,g.self.eventSpecificationName);[n,t].forEach(Ql=>Jn(Ql,Bl,y.typeName)),s.type.push({isEventPropertyRule:b,isEntityPropertyRule:ql,eventSpecificationId:Kl,igluUrl:k,...p})}else s.nestedTypes.push(p)},(u,m)=>{let c=[],{description:y}=h(r,u,m,e);r.forEachEnumCase(u,"none",(p,g)=>{c.push({name:r.sourcelikeToString(p),jsonName:g})}),s.enums.push({name:r.sourcelikeToString(m),description:y,cases:c})},()=>console.error("Unions are not yet supported in Snowtype")),r.emitMultiline(a(s))}}catch(a){throw new Error(`${JSON.stringify(a)}`)}}var F=require("quicktype-core");function ll(l,n){if(se(l)&&l.snowtypeOptions.inputs.tracker==="snowplow-golang-tracker"){let f='import "github.com/mitchellh/mapstructure"',o='import sp "github.com/snowplow/snowplow-golang-tracker/v3/tracker"',a=n.lines;Array.isArray(a)&&a.splice(1,0,"",f,o)}return n}function se(l){return Object.hasOwn(l,"snowtypeOptions")}function el(l,n,t){let f=Object.fromEntries(l.entries());return n&&(f["iglu:com.snowplowanalytics.snowplow/event_specification/jsonschema/1-0-4"]=ce),Object.keys(f).forEach(o=>{f[o].$schema="http://json-schema.org/draft-04/schema#"}),Object.keys(t).forEach(o=>{Object.keys(t[o]).forEach(a=>{t[o][a].$schema="http://json-schema.org/draft-04/schema#"})}),{...f,...t}}var ce={description:"Entity schema for referencing an event specification",properties:{id:{description:"Identifier for the event specification that the event adheres to",type:"string",maxLength:254,minLength:1},version:{description:"Version of the event specification that the event adheres to",type:"integer",minimum:0,maximum:2147483647},name:{description:"Name for the event specification that the event adheres to",type:["string","null"],maxLength:256,minLength:1},data_product_id:{description:"Identifier for the data product that the event specification belongs to",type:["string","null"],maxLength:256,minLength:1},data_product_name:{description:"Name for the data product that the event specification belongs to",type:["string","null"],maxLength:256,minLength:1},data_product_domain:{description:"Domain for the data product that the event specification belongs to",type:["string","null"],maxLength:256,minLength:1}},additionalProperties:!1,type:"object",required:["id"],self:{vendor:"com.snowplowanalytics.snowplow",name:"event_specification",format:"jsonschema",version:"1-0-4"},$schema:"http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#"};var ln=require("quicktype-core/dist/support/Strings");var al=require("@fastify/merge-json-schemas");function nn({schema:l,propertyRulesSchema:n,eventSpecificationName:t,eventSpecificationId:f,isEventPropertyRule:o}){let a=l.additionalProperties;delete l.additionalProperties,delete n.additionalProperties;let e=(0,al.mergeSchemas)([l,n],{resolvers:{description:(i,r,s)=>{let u=r.length===1?r[0]:r[1];s.description=u},$schema:(i,r,s)=>{s.$schema="http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#"}}});return e.description=e.description?e.description+" - Generated from a property rule":"Generated from a property rule",e.additionalProperties=a,e.self={...e.self,eventSpecificationName:t,eventSpecificationId:f,isEventPropertyRule:o,isEntityPropertyRule:!o},e}async function ol(l,n,t,f){let{header:o,validations:a,...e}=f,i=new F.JSONSchemaInput(void 0,[In]),r=new Map;await fe(i,n,r),await me(i,t,r);let s=await ye(i,t),u=a?el(r,!!t.length,s):void 0,m=new F.InputData;m.addInput(i);let c=await(0,F.quicktype)({inputData:m,lang:l,leadingComments:o,rendererOptions:e});return{...ll(l,c),validationsSchemaObject:u}}async function me(l,n,t){let f=[];for(let o of n){let a=_(o.eventSchema.self);if(!t.has(a)&&o.propertyRules===void 0&&(f.push(H(l,o.eventSchema,o.eventSchema.self.name)),t.set(a,o.eventSchema)),!Array.isArray(o.entitiesSchemas))return;o.entitiesSchemas.forEach(e=>{let i=_(e.original.self);!t.has(i)&&e.propertyRule===void 0&&(f.push(H(l,e.original,e.original.self.name)),t.set(i,e.original))})}await Promise.all(f)}async function fe(l,n,t){let f=[];for(let o of n){let a=_(o.self);t.has(a)||(f.push(H(l,o,o.self.name)),t.set(a,o))}await Promise.all(f)}function _({name:l,vendor:n,version:t,format:f}){return"iglu:"+[n,l,f,t].join("/")}async function H(l,n,t){await l.addSource({name:t,schema:JSON.stringify(n)})}async function ye(l,n){let t={},f=[];for(let o of n){let a=o.eventSpecification.name,e=o.eventSpecification.id;if(t[e]={},typeof o.propertyRules<"u"){let i=nn({schema:JSON.parse(JSON.stringify(o.eventSchema)),propertyRulesSchema:JSON.parse(JSON.stringify(o.propertyRules)),eventSpecificationName:a,eventSpecificationId:e,isEventPropertyRule:!0});f.push(H(l,i,i.self.name+"_"+(0,ln.snakeCase)(a)));let r=_(i.self);t[e][r]=i}else{let i=_(o.eventSchema.self);t[e][i]=o.eventSchema}o.entitiesSchemas?.forEach(({original:i,propertyRule:r})=>{if(r){let s=nn({schema:JSON.parse(JSON.stringify(i)),propertyRulesSchema:JSON.parse(JSON.stringify(r)),eventSpecificationName:a,eventSpecificationId:e,isEventPropertyRule:!1});f.push(H(l,s,s.self.name+"_"+(0,ln.snakeCase)(a)));let u=_(s.self);t[e][u]=s}else{let s=_(i.self);t[e][s]=i}})}return await Promise.all(f),t}var pe=w(tl()),ge=w(ul()),ve=w(cl()),ke=w(fl()),we=w(pl()),Se=w(vl()),Pe=w(wl()),Oe=w(Pl()),xe=w(xl()),be=w(El()),Ee=w(jl()),Ne=w(Cl()),G=w(require("joi"));var B=["@snowplow/browser-tracker","@snowplow/javascript-tracker","snowplow-android-tracker","snowplow-ios-tracker","@snowplow/node-tracker","snowplow-golang-tracker","@snowplow/react-native-tracker","google-tag-manager","snowplow-flutter-tracker","snowplow-java-tracker"],Q=["typescript","javascript","javascript-gtm","kotlin","swift","go","dart","java"];function je(l){let t=G.default.object().required().keys({id:G.default.object().required().keys({tracker:G.default.string().required().valid(...B),language:G.default.string().required().valid(...Q)})}).validate(l,{abortEarly:!1,convert:!1,allowUnknown:!0});if(t.error)throw new Error(t.error.annotate())}var Tl=[pe,ge,ve,ke,we,Se,Pe,Oe,xe,be,Ee,Ne].map(l=>(je(l),l));function x(l){let{name:n,quicktypeLanguage:t,defaultOptions:f,unsupportedOptions:o,requiredOptions:a}=l,e=Mn(n,o,a);return{id:e.id,name:e.name,extension:e.extension,generate:(i,r,s,u)=>{let m=[],c=Tl.find(({id:p})=>p.language===e.id&&p.tracker===s.tracker),y=Gn(r);return c&&m.push(nl(c,y,s,u)),ol(new t({generators:m,inputs:{tracker:c?.id.tracker,validations:s.validations,...y}}),i,r,Rn(s,f,o))}}}var L=w(require("json-pointer"));function Ll({propertyNameAsType:l,capitalizeProperty:n,defaultPropertyType:t},f){return f!==void 0&&l?n?Ml(f):f:t===null||t===""?t:t||"*"}function Dl(l,n){let{maxLength:t}=l;if(!t)return[n];let f=[];for(;;){if(n.length-l.indentMaxDelta<=0){n&&f.push(n);break}let a=n.slice(0,l.indentMaxDelta),e=a.search(/\s\S*$/),i;if(e===-1){let r=n.slice(l.indentMaxDelta).match(/^\S+/);i=a+(r||"")}else i=a.slice(0,e);f.push(i),n=n.slice(i.length+1)}return f}function Y(l,n={}){let t=[];if(!l||Object.keys(l).length===0)return"";let f=de(n);return t.push(...Ce(l,f)),L.default.has(l,"/properties")&&t.push(...an(l,l,null,f)),L.default.has(l,"/items")&&t.push(...en(l,l,null,f)),Le(f.outerIndent,t)}function de(l){let t=(l.indentChar||" ").repeat(l.indent||0),f=l.maxLength-t.length-3;return{...l,outerIndent:t,indentMaxDelta:f}}function en(l,n,t,f){let o=L.default.get(l,"/items");if(!Array.isArray(o))return[];let a=[];return o.forEach((e,i)=>{let s=(t?`${t}.`:"")+i,u=e.default,m=!l.minItems||i>=l.minItems;if(e.type==="array"&&e.items)a.push(...J("array",s,e.description,m,u,f)),a.push(...en(e,n,s,f));else if(e.type==="object"&&e.properties)a.push(...J("object",s,e.description,m,u,f)),a.push(...an(e,n,s,f));else{let c=z(e,n)||Ll(f);a.push(...J(c,s,e.description,m,u,f))}}),a}function an(l,n,t,f){let o=L.default.get(l,"/properties"),a=L.default.has(l,"/required")?L.default.get(l,"/required"):[],e=[];for(let i in o)if(!(Array.isArray(f.ignore)&&f.ignore.includes(i))){let r=o[i],u=(t?`${t}.`:"")+i,m=o[i].default,c=!a.includes(i);if(r.type==="object"&&r.properties)e.push(...J("object",u,r.description,c,m,f)),e.push(...an(r,n,u,f));else if(r.type==="array"&&r.items)e.push(...J("array",u,r.description,c,m,f)),e.push(...en(r,n,u,f));else{let y=z(r,n)||Ll(f,i);e.push(...J(y,u,r.description,c,m,f))}}return e}function Ce(l,n){let t=[],{objectTagName:f="typedef"}=n,{description:o}=l;o===void 0&&(o=n.autoDescribe?Te(l.title,l.type):"");let a=n.types&&n.types[l.type],e;n.types===null?e="":e=` {${a===""?"":a||z(l,l)}}`,(o||n.addDescriptionLineBreak)&&t.push(...Dl(n,o));let i=l.title?` ${n.capitalizeTitle?Ml(l.title):l.title}`:"";return t.push(`@${f}${e}${i}`),t}function J(l,n,t="",f,o,a){let e;f?e=`[${n}${o===void 0?"":`=${JSON.stringify(o)}`}]`:e=n;let i;!t&&!a.descriptionPlaceholder?i="":a.hyphenatedDescriptions?i=` - ${t}`:i=` ${t}`;let r=l===null?"":`{${l}} `;return Dl(a,`@property ${r}${e}${i}`)}function z(l,n){if(l.$ref){let t=L.default.get(n,l.$ref.slice(1));return z(t,n)}return l.enum?(l.type||(typeof l.enum[0]=="string"&&(l.type="string"),(typeof l.enum[0]).match(/number|boolean/)&&(l.type="number")),Array.isArray(l.type)&&l.type.indexOf("string")!==-1&&l.type.indexOf("null")!==-1?`"${l.enum.filter(Boolean).join('"|"')}"|null`:l.type==="string"?`"${l.enum.join('"|"')}"`:l.type==="number"||l.type==="integer"||l.type==="boolean"?`${l.enum.join("|")}`:l.type==="null"?"null":"enum"):Array.isArray(l.type)?l.type.includes("null")?`?${l.type[0]}`:l.type.join("|"):l.type}function Ml(l){return l.slice(0,1).toUpperCase()+l.slice(1)}function Te(l,n){let t=l?`${l} ${n}`:n;return`Represents ${`a${"aeiou".split("").includes(t.charAt())?"n":""}`} ${t}`}function Le(l,n){let t=[`${l}/**`];return t.push(...n.map(f=>f?`${l} * ${f}`:" *")),t.push(`${l} */
2057
+ ${t} ${e}`:""}function Zn(){v.default.registerHelper({and(...l){return Array.prototype.every.call(l,Boolean)},or(...l){return Array.prototype.slice.call(l,0,-1).some(Boolean)}}),v.default.registerHelper("join",function(l,n,t){return t&&typeof t=="string"?l.map(f=>f+t).join(n):l.join(n)}),v.default.registerHelper("firstLow",function(l){return l&&typeof l=="string"?l.charAt(0).toLowerCase():""}),v.default.registerHelper("startLow",function(l){return l&&typeof l=="string"?l.charAt(0).toLowerCase().concat(l.slice(1)):""}),v.default.registerHelper("startUpper",function(l){return l&&typeof l=="string"?l.charAt(0).toUpperCase().concat(l.slice(1)):""}),v.default.registerHelper("camelCase",function(l){if(l&&typeof l=="string"){let n=l.split("_").map((t,f)=>f===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("");return n==="null"?"nullValue":n}return""}),v.default.registerHelper("addEventSpecificationIdentifier",function(l){return l&&typeof l=="string"?K(l):""}),v.default.registerHelper("ecomFunction",function(l){return B[l]}),v.default.registerHelper("ecomFunctionArgument",function(l){return qn[l]}),v.default.registerHelper("ecomFunctionMobile",function(l){return Kn[l]}),v.default.registerHelper("eq",function(l,n){return l===n}),v.default.registerHelper("debug",function(l,n,t){if(console.log(t===!0?JSON.stringify(l):l),n===!0)debugger;return""}),v.default.registerHelper("warningsDs",Bn),v.default.registerHelper("warningsDsGo",Qn),v.default.registerHelper("warningsMetadataJs",zn("*")),v.default.registerHelper("warningsMetadataJsGtm",Xn),v.default.registerHelper("warningsDsDart",Yn),v.default.registerHelper("withSwiftNamespace",function(l,n){return l?`${l}.${n}`:n})}function nl(l,{eventSpecifications:n,ecomEventSpecifications:t},f,o){try{Zn();let a=hn.default.template(l),{nameModifiers:e,validations:i}=f;return r=>{let s={type:[],nestedTypes:[],enums:[],eventSpecifications:n,ecomEventSpecifications:t,validations:i,metadataForAllEventSpecs:o,namespace:f.namespace};return r.forEachNamedType("leading-and-interposing",(u,m)=>{let c=u.getAttributes().get(A),y=nn(r,u,m,e),p={...y,...r.getClassData&&r.getClassData(u)};if(c!==void 0&&c.raw.self!==void 0){let{raw:g}=c,k=I(g.self),b=g.self.isEventPropertyRule,ql=g.self.isEntityPropertyRule,Kl=g.self.eventSpecificationId,Bl=q(g.self,!!g.self.eventSpecificationName,g.self.eventSpecificationName);[n,t].forEach(Ql=>Un(Ql,Bl,y.typeName)),s.type.push({isEventPropertyRule:b,isEntityPropertyRule:ql,eventSpecificationId:Kl,igluUrl:k,...p})}else s.nestedTypes.push(p)},(u,m)=>{let c=[],{description:y}=nn(r,u,m,e);r.forEachEnumCase(u,"none",(p,g)=>{c.push({name:r.sourcelikeToString(p),jsonName:g})}),s.enums.push({name:r.sourcelikeToString(m),description:y,cases:c})},()=>console.error("Unions are not yet supported in Snowtype")),r.emitMultiline(a(s))}}catch(a){throw new Error(`${JSON.stringify(a)}`)}}var F=require("quicktype-core");function ll(l,n){if(se(l)&&l.snowtypeOptions.inputs.tracker==="snowplow-golang-tracker"){let f='import "github.com/mitchellh/mapstructure"',o='import sp "github.com/snowplow/snowplow-golang-tracker/v3/tracker"',a=n.lines;Array.isArray(a)&&a.splice(1,0,"",f,o)}return n}function se(l){return Object.hasOwn(l,"snowtypeOptions")}function el(l,n,t){let f=Object.fromEntries(l.entries());return n&&(f["iglu:com.snowplowanalytics.snowplow/event_specification/jsonschema/1-0-4"]=ce),Object.keys(f).forEach(o=>{f[o].$schema="http://json-schema.org/draft-04/schema#"}),Object.keys(t).forEach(o=>{Object.keys(t[o]).forEach(a=>{t[o][a].$schema="http://json-schema.org/draft-04/schema#"})}),{...f,...t}}var ce={description:"Entity schema for referencing an event specification",properties:{id:{description:"Identifier for the event specification that the event adheres to",type:"string",maxLength:254,minLength:1},version:{description:"Version of the event specification that the event adheres to",type:"integer",minimum:0,maximum:2147483647},name:{description:"Name for the event specification that the event adheres to",type:["string","null"],maxLength:256,minLength:1},data_product_id:{description:"Identifier for the data product that the event specification belongs to",type:["string","null"],maxLength:256,minLength:1},data_product_name:{description:"Name for the data product that the event specification belongs to",type:["string","null"],maxLength:256,minLength:1},data_product_domain:{description:"Domain for the data product that the event specification belongs to",type:["string","null"],maxLength:256,minLength:1}},additionalProperties:!1,type:"object",required:["id"],self:{vendor:"com.snowplowanalytics.snowplow",name:"event_specification",format:"jsonschema",version:"1-0-4"},$schema:"http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#"};var en=require("quicktype-core/dist/support/Strings");var al=require("@fastify/merge-json-schemas");function ln({schema:l,propertyRulesSchema:n,eventSpecificationName:t,eventSpecificationId:f,isEventPropertyRule:o}){let a=l.additionalProperties;delete l.additionalProperties,delete n.additionalProperties;let e=(0,al.mergeSchemas)([l,n],{resolvers:{description:(i,r,s)=>{let u=r.length===1?r[0]:r[1];s.description=u},$schema:(i,r,s)=>{s.$schema="http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#"}}});return e.description=e.description?e.description+" - Generated from a property rule":"Generated from a property rule",e.additionalProperties=a,e.self={...e.self,eventSpecificationName:t,eventSpecificationId:f,isEventPropertyRule:o,isEntityPropertyRule:!o},e}async function ol(l,n,t,f){let{header:o,validations:a,...e}=f,i=new F.JSONSchemaInput(void 0,[_n]),r=new Map;await fe(i,n,r),await me(i,t,r);let s=await ye(i,t),u=a?el(r,!!t.length,s):void 0,m=new F.InputData;m.addInput(i);let c=await(0,F.quicktype)({inputData:m,lang:l,leadingComments:o,rendererOptions:e});return{...ll(l,c),validationsSchemaObject:u}}async function me(l,n,t){let f=[];for(let o of n){let a=_(o.eventSchema.self);if(!t.has(a)&&o.propertyRules===void 0&&(f.push(H(l,o.eventSchema,o.eventSchema.self.name)),t.set(a,o.eventSchema)),!Array.isArray(o.entitiesSchemas))return;o.entitiesSchemas.forEach(e=>{let i=_(e.original.self);!t.has(i)&&e.propertyRule===void 0&&(f.push(H(l,e.original,e.original.self.name)),t.set(i,e.original))})}await Promise.all(f)}async function fe(l,n,t){let f=[];for(let o of n){let a=_(o.self);t.has(a)||(f.push(H(l,o,o.self.name)),t.set(a,o))}await Promise.all(f)}function _({name:l,vendor:n,version:t,format:f}){return"iglu:"+[n,l,f,t].join("/")}async function H(l,n,t){await l.addSource({name:t,schema:JSON.stringify(n)})}async function ye(l,n){let t={},f=[];for(let o of n){let a=o.eventSpecification.name,e=o.eventSpecification.id;if(t[e]={},typeof o.propertyRules<"u"){let i=ln({schema:JSON.parse(JSON.stringify(o.eventSchema)),propertyRulesSchema:JSON.parse(JSON.stringify(o.propertyRules)),eventSpecificationName:a,eventSpecificationId:e,isEventPropertyRule:!0});f.push(H(l,i,i.self.name+"_"+(0,en.snakeCase)(a)));let r=_(i.self);t[e][r]=i}else{let i=_(o.eventSchema.self);t[e][i]=o.eventSchema}o.entitiesSchemas?.forEach(({original:i,propertyRule:r})=>{if(r){let s=ln({schema:JSON.parse(JSON.stringify(i)),propertyRulesSchema:JSON.parse(JSON.stringify(r)),eventSpecificationName:a,eventSpecificationId:e,isEventPropertyRule:!1});f.push(H(l,s,s.self.name+"_"+(0,en.snakeCase)(a)));let u=_(s.self);t[e][u]=s}else{let s=_(i.self);t[e][s]=i}})}return await Promise.all(f),t}var pe=w(tl()),ge=w(ul()),ve=w(cl()),ke=w(fl()),we=w(pl()),Se=w(vl()),Pe=w(wl()),Oe=w(Pl()),xe=w(xl()),be=w(El()),Ee=w(jl()),Ne=w(Cl()),G=w(require("joi"));var Q=["@snowplow/browser-tracker","@snowplow/javascript-tracker","snowplow-android-tracker","snowplow-ios-tracker","@snowplow/node-tracker","snowplow-golang-tracker","@snowplow/react-native-tracker","google-tag-manager","snowplow-flutter-tracker","snowplow-java-tracker"],Y=["typescript","javascript","javascript-gtm","kotlin","swift","go","dart","java"];function je(l){let t=G.default.object().required().keys({id:G.default.object().required().keys({tracker:G.default.string().required().valid(...Q),language:G.default.string().required().valid(...Y)})}).validate(l,{abortEarly:!1,convert:!1,allowUnknown:!0});if(t.error)throw new Error(t.error.annotate())}var Tl=[pe,ge,ve,ke,we,Se,Pe,Oe,xe,be,Ee,Ne].map(l=>(je(l),l));function x(l){let{name:n,quicktypeLanguage:t,defaultOptions:f,unsupportedOptions:o,requiredOptions:a}=l,e=Rn(n,o,a);return{id:e.id,name:e.name,extension:e.extension,generate:(i,r,s,u)=>{let m=[],c=Tl.find(({id:p})=>p.language===e.id&&p.tracker===s.tracker),y=Wn(r);return c&&m.push(nl(c,y,s,u)),ol(new t({generators:m,inputs:{tracker:c?.id.tracker,validations:s.validations,...y}}),i,r,An(s,f,o))}}}var L=w(require("json-pointer"));function Ll({propertyNameAsType:l,capitalizeProperty:n,defaultPropertyType:t},f){return f!==void 0&&l?n?Ml(f):f:t===null||t===""?t:t||"*"}function Dl(l,n){let{maxLength:t}=l;if(!t)return[n];let f=[];for(;;){if(n.length-l.indentMaxDelta<=0){n&&f.push(n);break}let a=n.slice(0,l.indentMaxDelta),e=a.search(/\s\S*$/),i;if(e===-1){let r=n.slice(l.indentMaxDelta).match(/^\S+/);i=a+(r||"")}else i=a.slice(0,e);f.push(i),n=n.slice(i.length+1)}return f}function z(l,n={}){let t=[];if(!l||Object.keys(l).length===0)return"";let f=de(n);return t.push(...Ce(l,f)),L.default.has(l,"/properties")&&t.push(...on(l,l,null,f)),L.default.has(l,"/items")&&t.push(...an(l,l,null,f)),Le(f.outerIndent,t)}function de(l){let t=(l.indentChar||" ").repeat(l.indent||0),f=l.maxLength-t.length-3;return{...l,outerIndent:t,indentMaxDelta:f}}function an(l,n,t,f){let o=L.default.get(l,"/items");if(!Array.isArray(o))return[];let a=[];return o.forEach((e,i)=>{let s=(t?`${t}.`:"")+i,u=e.default,m=!l.minItems||i>=l.minItems;if(e.type==="array"&&e.items)a.push(...J("array",s,e.description,m,u,f)),a.push(...an(e,n,s,f));else if(e.type==="object"&&e.properties)a.push(...J("object",s,e.description,m,u,f)),a.push(...on(e,n,s,f));else{let c=X(e,n)||Ll(f);a.push(...J(c,s,e.description,m,u,f))}}),a}function on(l,n,t,f){let o=L.default.get(l,"/properties"),a=L.default.has(l,"/required")?L.default.get(l,"/required"):[],e=[];for(let i in o)if(!(Array.isArray(f.ignore)&&f.ignore.includes(i))){let r=o[i],u=(t?`${t}.`:"")+i,m=o[i].default,c=!a.includes(i);if(r.type==="object"&&r.properties)e.push(...J("object",u,r.description,c,m,f)),e.push(...on(r,n,u,f));else if(r.type==="array"&&r.items)e.push(...J("array",u,r.description,c,m,f)),e.push(...an(r,n,u,f));else{let y=X(r,n)||Ll(f,i);e.push(...J(y,u,r.description,c,m,f))}}return e}function Ce(l,n){let t=[],{objectTagName:f="typedef"}=n,{description:o}=l;o===void 0&&(o=n.autoDescribe?Te(l.title,l.type):"");let a=n.types&&n.types[l.type],e;n.types===null?e="":e=` {${a===""?"":a||X(l,l)}}`,(o||n.addDescriptionLineBreak)&&t.push(...Dl(n,o));let i=l.title?` ${n.capitalizeTitle?Ml(l.title):l.title}`:"";return t.push(`@${f}${e}${i}`),t}function J(l,n,t="",f,o,a){let e;f?e=`[${n}${o===void 0?"":`=${JSON.stringify(o)}`}]`:e=n;let i;!t&&!a.descriptionPlaceholder?i="":a.hyphenatedDescriptions?i=` - ${t}`:i=` ${t}`;let r=l===null?"":`{${l}} `;return Dl(a,`@property ${r}${e}${i}`)}function X(l,n){if(l.$ref){let t=L.default.get(n,l.$ref.slice(1));return X(t,n)}return l.enum?(l.type||(typeof l.enum[0]=="string"&&(l.type="string"),(typeof l.enum[0]).match(/number|boolean/)&&(l.type="number")),Array.isArray(l.type)&&l.type.indexOf("string")!==-1&&l.type.indexOf("null")!==-1?`"${l.enum.filter(Boolean).join('"|"')}"|null`:l.type==="string"?`"${l.enum.join('"|"')}"`:l.type==="number"||l.type==="integer"||l.type==="boolean"?`${l.enum.join("|")}`:l.type==="null"?"null":"enum"):Array.isArray(l.type)?l.type.includes("null")?`?${l.type[0]}`:l.type.join("|"):l.type}function Ml(l){return l.slice(0,1).toUpperCase()+l.slice(1)}function Te(l,n){let t=l?`${l} ${n}`:n;return`Represents ${`a${"aeiou".split("").includes(t.charAt())?"n":""}`} ${t}`}function Le(l,n){let t=[`${l}/**`];return t.push(...n.map(f=>f?`${l} * ${f}`:" *")),t.push(`${l} */
2058
2058
  `),t.join(`
2059
- `)}var Al=require("quicktype-core/dist/support/Strings");function tn(l){switch(l){case"@snowplow/browser-tracker":return["EventSpecification","SelfDescribingEvent"];case"@snowplow/javascript-tracker":case"@snowplow/node-tracker":return["EventSpecification"];default:return[]}}var on=class extends D.JavaScriptRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,tn(this.snowtypeOptions.inputs.tracker),t=>[`${t}Spec`])}emitMultiline(t){S(this,t,2)}emitSourceStructure(){this.leadingComments!==void 0?this.emitCommentLines(this.leadingComments):this.emitUsageComments()}emitPredefinedJSDocTypes(){this.emitMultiline(sn)}emitRequiredImports(){let t=Me(this.snowtypeOptions.inputs);t.length>0&&this.emitMultiline(t.join(`
2060
- `))}emitSource(t){this.emitRequiredImports(),super.emitSource(t),this.ensureBlankLine(),this.emitPredefinedJSDocTypes(),this.forEachTopLevel("none",(f,o)=>{let a=this.sourcelikeToString(o),e=f.getAttributes().get(A);e&&e.raw&&(e.raw.title=e.raw.title||a,this.emitMultiline(Y(e.raw)),this.emitMultiline(De(e.raw.title)),this.ensureBlankLine())}),P(this,this.snowtypeOptions.generators)}makeNameForTopLevel(t,f,o){return d((...a)=>super.makeNameForTopLevel(...a),this.snowtypeOptions,t,f,o)}},rn=class extends D.JavaScriptTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new on(this,t,(0,D.getOptionValues)(D.tsFlowOptions,f),this.snowtypeOptions)}},Rl=x({name:"javascript",quicktypeLanguage:rn,defaultOptions:{"runtime-typecheck":!1},nameModifiers:{functionName:Al.camelCase}}),un={...Rl,generate:async(l,n,t,f)=>{let{sdk:o,prefixes:a,suffixes:e}=t;return await Rl.generate(l,n,t,f)}};function De(l){return`
2059
+ `)}var Al=require("quicktype-core/dist/support/Strings");function un(l){switch(l){case"@snowplow/browser-tracker":return["EventSpecification","SelfDescribingEvent"];case"@snowplow/javascript-tracker":case"@snowplow/node-tracker":return["EventSpecification"];default:return[]}}var rn=class extends D.JavaScriptRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,un(this.snowtypeOptions.inputs.tracker),t=>[`${t}Spec`])}emitMultiline(t){S(this,t,2)}emitSourceStructure(){this.leadingComments!==void 0?this.emitCommentLines(this.leadingComments):this.emitUsageComments()}emitPredefinedJSDocTypes(){this.emitMultiline(cn)}emitRequiredImports(){let t=Me(this.snowtypeOptions.inputs);t.length>0&&this.emitMultiline(t.join(`
2060
+ `))}emitSource(t){this.emitRequiredImports(),super.emitSource(t),this.ensureBlankLine(),this.emitPredefinedJSDocTypes(),this.forEachTopLevel("none",(f,o)=>{let a=this.sourcelikeToString(o),e=f.getAttributes().get(A);e&&e.raw&&(e.raw.title=e.raw.title||a,this.emitMultiline(z(e.raw)),this.emitMultiline(De(e.raw.title)),this.ensureBlankLine())}),P(this,this.snowtypeOptions.generators)}makeNameForTopLevel(t,f,o){return d((...a)=>super.makeNameForTopLevel(...a),this.snowtypeOptions,t,f,o)}},tn=class extends D.JavaScriptTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new rn(this,t,(0,D.getOptionValues)(D.tsFlowOptions,f),this.snowtypeOptions)}},Rl=x({name:"javascript",quicktypeLanguage:tn,defaultOptions:{"runtime-typecheck":!1},nameModifiers:{functionName:Al.camelCase}}),sn={...Rl,generate:async(l,n,t,f)=>{let{sdk:o,prefixes:a,suffixes:e}=t;return await Rl.generate(l,n,t,f)}};function De(l){return`
2061
2061
  /**
2062
2062
  * Typedef for a ${l} entity context.
2063
2063
  * @typedef {object} ${l}Context
2064
2064
  * @property {string} schema The schema of the context.
2065
2065
  * @property { ${l} } data The data to send for the context.
2066
- */`}var sn=`/**
2066
+ */`}var cn=`/**
2067
2067
  * Typedef for a DeviceTimestamp
2068
2068
  * @typedef {object} DeviceTimestamp
2069
2069
  * @property {'dtm'} type The value of 'dtm'
@@ -2095,11 +2095,11 @@ public class Snowtype {
2095
2095
  * @typedef {object} Context
2096
2096
  * @property {SelfDescribingJson[]} [context] Contexts to include in the event
2097
2097
  */
2098
- `;function Me({ecomEventSpecifications:l,validations:n,tracker:t}){let f=[];switch(t){case"@snowplow/browser-tracker":f.push("import { trackSelfDescribingEvent } from '@snowplow/browser-tracker';"),n&&f.push("import Ajv from 'ajv-draft-04';","import addFormats from 'ajv-formats';","import { schemasObject, entityRules } from './validations';"),l.length>0&&f.push("import * as Ecom from '@snowplow/browser-plugin-snowplow-ecommerce';");break;case"@snowplow/node-tracker":f.push("import { buildSelfDescribingEvent } from '@snowplow/node-tracker';");break;case"@snowplow/javascript-tracker":case"google-tag-manager":break;default:throw Error("Unexpected tracker value")}return f}var T=require("quicktype-core"),Il=require("quicktype-core/dist/language/Kotlin");var Re=["EventSpecification","SchemaNull","SelfDescribing","SelfDescribingJson","Map","HashMap"],cn=class extends Il.KotlinXRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a;this._haveOutputSchemaNullClass=!1}_haveOutputSchemaNullClass;getClassData(t){let f=[];return this.forEachClassProperty(t,"none",(o,a,e)=>{let i=this.getArrayTypes(e.type);f.push({name:this.sourcelikeToString(o),jsonName:a,description:this.descriptionForClassProperty(t,a),type:this.sourcelikeToString(this.kotlinType(e.type)),isOptional:e.isOptional,isNullable:this.isNullable(e),isNullableOrOptional:e.isOptional||this.isNullable(e),isArrayOfEnums:i&&i.get("array").includes("enum"),isArrayOfObjects:i&&i.get("array").includes("class"),isEnum:this.isEnum(e),isObject:this.isObject(e),isNull:this.isLiterallyNull(e),shouldOutputSchemaNullClass:this.isLiterallyNull(e)&&!this._haveOutputSchemaNullClass}),this.isLiterallyNull(e)&&(this._haveOutputSchemaNullClass=!0)}),{properties:f}}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,Re)}emitMultiline(t){S(this,t,2)}emitSource(t){super.emitSource(t),P(this,this.snowtypeOptions.generators)}emitSourceStructure(){}getArrayTypes(t){if(t.kind.toString()!=="array")return null;let f=new Map;return f.set("array",[]),t.getChildren().forEach(o=>{o.kind.toString()==="union"?o.getChildren().forEach(a=>{f.get("array").push(a.kind.toString())}):f.get("array").push(o.kind.toString())}),f}isEnum(t){return t.type.kind==="enum"||this.isNullable(t)&&(0,T.nullableFromUnion)(t.type)?.kind==="enum"}isObject(t){return t.type.kind==="class"||this.isNullable(t)&&(0,T.nullableFromUnion)(t.type)?.kind==="class"}isNullable(t){return t.type.kind==="union"&&(0,T.nullableFromUnion)(t.type)!==null}isLiterallyNull(t){return t.type.kind==="null"}},mn=class extends T.KotlinTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new cn(this,t,(0,T.getOptionValues)(T.kotlinOptions,f),this.snowtypeOptions)}},fn=x({name:"kotlin",quicktypeLanguage:mn,defaultOptions:{framework:"kotlinx",package:"Snowtype","just-types":!0},requiredOptions:["package"],unsupportedOptions:["framework"]});var E=require("quicktype-core");var Ae=["EventSpecification","JSONNull","JSONCodingKey","JSONAny","SelfDescribing","SelfDescribingJson"],yn=class extends E.SwiftRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}getClassData(t){let f=[];return this.forEachClassProperty(t,"none",(o,a,e)=>{let i=this.getArrayTypes(e.type);f.push({name:this.sourcelikeToString(o),jsonName:a,description:this.descriptionForClassProperty(t,a),type:this.sourcelikeToString(this.swiftPropertyType(e)),isOptional:e.isOptional,isNullable:this.isNullable(e),isNullableOrOptional:e.isOptional||this.isNullable(e),isArrayOfEnums:i&&i.get("array").includes("enum"),isArrayOfObjects:i&&i.get("array").includes("class"),isEnum:this.isEnum(e),isObject:this.isObject(e),isNull:this.isLiterallyNull(e),shouldOutputSchemaNullClass:!1})}),{properties:f}}emitSource(t){super.emitSource(t),P(this,this.snowtypeOptions.generators)}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,Ae)}emitMultiline(t){S(this,t,2)}emitSourceStructure(){}getArrayTypes(t){let f=this.unwrapNullable(t);if(f.kind.toString()!=="array")return null;let o=new Map;return o.set("array",[]),f.getChildren().forEach(a=>{a.kind.toString()==="union"?a.getChildren().forEach(e=>{o.get("array").push(e.kind.toString())}):o.get("array").push(a.kind.toString())}),o}unwrapNullable(t){return t.kind!=="union"?t:(0,E.nullableFromUnion)(t)??t}isEnum(t){return t.type.kind==="enum"||this.isNullable(t)&&(0,E.nullableFromUnion)(t.type)?.kind==="enum"}isObject(t){return t.type.kind==="class"||this.isNullable(t)&&(0,E.nullableFromUnion)(t.type)?.kind==="class"}isNullable(t){return t.type.kind==="union"&&(0,E.nullableFromUnion)(t.type)!==null}isLiterallyNull(t){return t.type.kind==="null"}},pn=class extends E.SwiftTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new yn(this,t,(0,E.getOptionValues)(E.swiftOptions,f),this.snowtypeOptions)}},gn=x({name:"swift",quicktypeLanguage:pn});var U=require("quicktype-core"),Fl=require("quicktype-core/dist/RendererOptions"),Jl=require("quicktype-core/dist/support/Strings");function Ie(l){switch(l){case"@snowplow/browser-tracker":return["EventSpecification","ContextsOrTimestamp","CommonEventProperties","SelfDescribingJson","SelfDescribingEvent","EventSpecIdInput","ErrorType","SnowtypeOptions","Ajv","AnySchema","ErrorObject","CardinalityRule","Ecom"];case"@snowplow/node-tracker":return["EventSpecification","ContextsOrTimestamp","CommonEventProperties","SelfDescribingJson","Timestamp","Tracker"];case"@snowplow/react-native-tracker":return["EventSpecification","Contexts","CommonEventProperties","SelfDescribing","ReactNativeTracker"];default:return[]}}var vn=class extends U.TypeScriptRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,Ie(this.snowtypeOptions.inputs.tracker),t=>[`${t}Spec`])}emitMultiline(t){S(this,t,2)}emitRequiredImports(){let t=_e(this.snowtypeOptions.inputs);t.length>0&&this.emitMultiline(t.join(`
2099
- `))}emitSource(t){this.emitRequiredImports(),super.emitSource(t),P(this,this.snowtypeOptions.generators)}makeNameForTopLevel(t,f,o){return d((...a)=>super.makeNameForTopLevel(...a),this.snowtypeOptions,t,f,o)}},kn=class extends U.TypeScriptTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new vn(this,t,(0,Fl.getOptionValues)(U.tsFlowOptions,f),this.snowtypeOptions)}},_l=x({name:"typescript",quicktypeLanguage:kn,defaultOptions:{"just-types":!0,"prefer-unions":!0,"prefer-types":!0},nameModifiers:{functionName:Jl.camelCase}}),wn={..._l,generate:async(l,n,t,f)=>{let{sdk:o,prefixes:a,suffixes:e}=t;return await _l.generate(l,n,t,f)}};function _e({ecomEventSpecifications:l,validations:n,tracker:t}){let f=[];switch(t){case"@snowplow/browser-tracker":f.push("import { trackSelfDescribingEvent, CommonEventProperties, SelfDescribingJson } from '@snowplow/browser-tracker';"),n&&f.push("import Ajv, { AnySchema, ErrorObject } from 'ajv-draft-04';","import addFormats from 'ajv-formats';","import { schemasObject, entityRules, CardinalityRule } from './validations';"),l.length>0&&f.push("import * as Ecom from '@snowplow/browser-plugin-snowplow-ecommerce';");break;case"@snowplow/node-tracker":f.push("import { buildSelfDescribingEvent, SelfDescribingJson, Timestamp, Tracker } from '@snowplow/node-tracker';");break;case"@snowplow/react-native-tracker":f.push("import { ReactNativeTracker } from '@snowplow/react-native-tracker';");break;default:throw Error("Unexpected tracker value")}return f}var M=require("quicktype-core");var Vl=require("quicktype-core/dist/support/Strings");var Sn=class extends M.JavaScriptRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,tn(this.snowtypeOptions.inputs.tracker),t=>[`${t}Spec`])}emitMultiline(t){S(this,t,2)}emitSourceStructure(){this.leadingComments!==void 0?this.emitCommentLines(this.leadingComments):this.emitUsageComments()}emitPredefinedJSDocTypes(){this.emitMultiline(sn)}emitSource(t){super.emitSource(t),this.emitCommentLines(["This code should be copied and pasted in a Google Tag Manager Custom JavaScript Variable"]),P(this,this.snowtypeOptions.generators),this.emitPredefinedJSDocTypes(),this.forEachTopLevel("none",(f,o)=>{let a=this.sourcelikeToString(o),e=f.getAttributes().get(A);e&&e.raw&&(e.raw.title=e.raw.title||a,this.emitMultiline(Y(e.raw)),this.emitMultiline(Fe(e.raw.title)),this.ensureBlankLine())})}makeNameForTopLevel(t,f,o){return d((...a)=>super.makeNameForTopLevel(...a),this.snowtypeOptions,t,f,o)}},Pn=class extends M.JavaScriptTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new Sn(this,t,(0,M.getOptionValues)(M.tsFlowOptions,f),this.snowtypeOptions)}},Ul=x({name:"javascript",quicktypeLanguage:Pn,defaultOptions:{"runtime-typecheck":!1},nameModifiers:{functionName:Vl.camelCase}}),On={...Ul,id:"javascript-gtm",name:"JavaScript - Google Tag Manager",generate:async(l,n,t,f)=>{let{sdk:o,prefixes:a,suffixes:e}=t;return await Ul.generate(l,n,t,f)}};function Fe(l){return`
2098
+ `;function Me({ecomEventSpecifications:l,validations:n,tracker:t}){let f=[];switch(t){case"@snowplow/browser-tracker":f.push("import { trackSelfDescribingEvent } from '@snowplow/browser-tracker';"),n&&f.push("import Ajv from 'ajv-draft-04';","import addFormats from 'ajv-formats';","import { schemasObject, entityRules } from './validations';"),l.length>0&&f.push("import * as Ecom from '@snowplow/browser-plugin-snowplow-ecommerce';");break;case"@snowplow/node-tracker":f.push("import { buildSelfDescribingEvent } from '@snowplow/node-tracker';");break;case"@snowplow/javascript-tracker":case"google-tag-manager":break;default:throw Error("Unexpected tracker value")}return f}var T=require("quicktype-core"),Il=require("quicktype-core/dist/language/Kotlin");var Re=["EventSpecification","SchemaNull","SelfDescribing","SelfDescribingJson","Map","HashMap"],mn=class extends Il.KotlinXRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a;this._haveOutputSchemaNullClass=!1}_haveOutputSchemaNullClass;getClassData(t){let f=[];return this.forEachClassProperty(t,"none",(o,a,e)=>{let i=this.getArrayTypes(e.type);f.push({name:this.sourcelikeToString(o),jsonName:a,description:this.descriptionForClassProperty(t,a),type:this.sourcelikeToString(this.kotlinType(e.type)),isOptional:e.isOptional,isNullable:this.isNullable(e),isNullableOrOptional:e.isOptional||this.isNullable(e),isArrayOfEnums:i&&i.get("array").includes("enum"),isArrayOfObjects:i&&i.get("array").includes("class"),isEnum:this.isEnum(e),isObject:this.isObject(e),isNull:this.isLiterallyNull(e),shouldOutputSchemaNullClass:this.isLiterallyNull(e)&&!this._haveOutputSchemaNullClass}),this.isLiterallyNull(e)&&(this._haveOutputSchemaNullClass=!0)}),{properties:f}}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,Re)}emitMultiline(t){S(this,t,2)}emitSource(t){super.emitSource(t),P(this,this.snowtypeOptions.generators)}emitSourceStructure(){}getArrayTypes(t){if(t.kind.toString()!=="array")return null;let f=new Map;return f.set("array",[]),t.getChildren().forEach(o=>{o.kind.toString()==="union"?o.getChildren().forEach(a=>{f.get("array").push(a.kind.toString())}):f.get("array").push(o.kind.toString())}),f}isEnum(t){return t.type.kind==="enum"||this.isNullable(t)&&(0,T.nullableFromUnion)(t.type)?.kind==="enum"}isObject(t){return t.type.kind==="class"||this.isNullable(t)&&(0,T.nullableFromUnion)(t.type)?.kind==="class"}isNullable(t){return t.type.kind==="union"&&(0,T.nullableFromUnion)(t.type)!==null}isLiterallyNull(t){return t.type.kind==="null"}},fn=class extends T.KotlinTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new mn(this,t,(0,T.getOptionValues)(T.kotlinOptions,f),this.snowtypeOptions)}},yn=x({name:"kotlin",quicktypeLanguage:fn,defaultOptions:{framework:"kotlinx",package:"Snowtype","just-types":!0},requiredOptions:["package"],unsupportedOptions:["framework"]});var E=require("quicktype-core");var Ae=["EventSpecification","JSONNull","JSONCodingKey","JSONAny","SelfDescribing","SelfDescribingJson"],pn=class extends E.SwiftRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}getClassData(t){let f=[];return this.forEachClassProperty(t,"none",(o,a,e)=>{let i=this.getArrayTypes(e.type);f.push({name:this.sourcelikeToString(o),jsonName:a,description:this.descriptionForClassProperty(t,a),type:this.sourcelikeToString(this.swiftPropertyType(e)),isOptional:e.isOptional,isNullable:this.isNullable(e),isNullableOrOptional:e.isOptional||this.isNullable(e),isArrayOfEnums:i&&i.get("array").includes("enum"),isArrayOfObjects:i&&i.get("array").includes("class"),isEnum:this.isEnum(e),isObject:this.isObject(e),isNull:this.isLiterallyNull(e),shouldOutputSchemaNullClass:!1})}),{properties:f}}emitSource(t){super.emitSource(t),P(this,this.snowtypeOptions.generators)}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,Ae)}emitMultiline(t){S(this,t,2)}emitSourceStructure(){}getArrayTypes(t){let f=this.unwrapNullable(t);if(f.kind.toString()!=="array")return null;let o=new Map;return o.set("array",[]),f.getChildren().forEach(a=>{a.kind.toString()==="union"?a.getChildren().forEach(e=>{o.get("array").push(e.kind.toString())}):o.get("array").push(a.kind.toString())}),o}unwrapNullable(t){return t.kind!=="union"?t:(0,E.nullableFromUnion)(t)??t}isEnum(t){return t.type.kind==="enum"||this.isNullable(t)&&(0,E.nullableFromUnion)(t.type)?.kind==="enum"}isObject(t){return t.type.kind==="class"||this.isNullable(t)&&(0,E.nullableFromUnion)(t.type)?.kind==="class"}isNullable(t){return t.type.kind==="union"&&(0,E.nullableFromUnion)(t.type)!==null}isLiterallyNull(t){return t.type.kind==="null"}},gn=class extends E.SwiftTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new pn(this,t,(0,E.getOptionValues)(E.swiftOptions,f),this.snowtypeOptions)}},vn=x({name:"swift",quicktypeLanguage:gn});var U=require("quicktype-core"),Fl=require("quicktype-core/dist/RendererOptions"),Jl=require("quicktype-core/dist/support/Strings");function Ie(l){switch(l){case"@snowplow/browser-tracker":return["EventSpecification","ContextsOrTimestamp","CommonEventProperties","SelfDescribingJson","SelfDescribingEvent","EventSpecIdInput","ErrorType","SnowtypeOptions","Ajv","AnySchema","ErrorObject","CardinalityRule","Ecom"];case"@snowplow/node-tracker":return["EventSpecification","ContextsOrTimestamp","CommonEventProperties","SelfDescribingJson","Timestamp","Tracker"];case"@snowplow/react-native-tracker":return["EventSpecification","Contexts","CommonEventProperties","SelfDescribing","ReactNativeTracker"];default:return[]}}var kn=class extends U.TypeScriptRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,Ie(this.snowtypeOptions.inputs.tracker),t=>[`${t}Spec`])}emitMultiline(t){S(this,t,2)}emitRequiredImports(){let t=_e(this.snowtypeOptions.inputs);t.length>0&&this.emitMultiline(t.join(`
2099
+ `))}emitSource(t){this.emitRequiredImports(),super.emitSource(t),P(this,this.snowtypeOptions.generators)}makeNameForTopLevel(t,f,o){return d((...a)=>super.makeNameForTopLevel(...a),this.snowtypeOptions,t,f,o)}},wn=class extends U.TypeScriptTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new kn(this,t,(0,Fl.getOptionValues)(U.tsFlowOptions,f),this.snowtypeOptions)}},_l=x({name:"typescript",quicktypeLanguage:wn,defaultOptions:{"just-types":!0,"prefer-unions":!0,"prefer-types":!0},nameModifiers:{functionName:Jl.camelCase}}),Sn={..._l,generate:async(l,n,t,f)=>{let{sdk:o,prefixes:a,suffixes:e}=t;return await _l.generate(l,n,t,f)}};function _e({ecomEventSpecifications:l,validations:n,tracker:t}){let f=[];switch(t){case"@snowplow/browser-tracker":f.push("import { trackSelfDescribingEvent, CommonEventProperties, SelfDescribingJson } from '@snowplow/browser-tracker';"),n&&f.push("import Ajv, { AnySchema, ErrorObject } from 'ajv-draft-04';","import addFormats from 'ajv-formats';","import { schemasObject, entityRules, CardinalityRule } from './validations';"),l.length>0&&f.push("import * as Ecom from '@snowplow/browser-plugin-snowplow-ecommerce';");break;case"@snowplow/node-tracker":f.push("import { buildSelfDescribingEvent, SelfDescribingJson, Timestamp, Tracker } from '@snowplow/node-tracker';");break;case"@snowplow/react-native-tracker":f.push("import { ReactNativeTracker } from '@snowplow/react-native-tracker';");break;default:throw Error("Unexpected tracker value")}return f}var M=require("quicktype-core");var Vl=require("quicktype-core/dist/support/Strings");var Pn=class extends M.JavaScriptRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,un(this.snowtypeOptions.inputs.tracker),t=>[`${t}Spec`])}emitMultiline(t){S(this,t,2)}emitSourceStructure(){this.leadingComments!==void 0?this.emitCommentLines(this.leadingComments):this.emitUsageComments()}emitPredefinedJSDocTypes(){this.emitMultiline(cn)}emitSource(t){super.emitSource(t),this.emitCommentLines(["This code should be copied and pasted in a Google Tag Manager Custom JavaScript Variable"]),P(this,this.snowtypeOptions.generators),this.emitPredefinedJSDocTypes(),this.forEachTopLevel("none",(f,o)=>{let a=this.sourcelikeToString(o),e=f.getAttributes().get(A);e&&e.raw&&(e.raw.title=e.raw.title||a,this.emitMultiline(z(e.raw)),this.emitMultiline(Fe(e.raw.title)),this.ensureBlankLine())})}makeNameForTopLevel(t,f,o){return d((...a)=>super.makeNameForTopLevel(...a),this.snowtypeOptions,t,f,o)}},On=class extends M.JavaScriptTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new Pn(this,t,(0,M.getOptionValues)(M.tsFlowOptions,f),this.snowtypeOptions)}},Ul=x({name:"javascript",quicktypeLanguage:On,defaultOptions:{"runtime-typecheck":!1},nameModifiers:{functionName:Vl.camelCase}}),xn={...Ul,id:"javascript-gtm",name:"JavaScript - Google Tag Manager",generate:async(l,n,t,f)=>{let{sdk:o,prefixes:a,suffixes:e}=t;return await Ul.generate(l,n,t,f)}};function Fe(l){return`
2100
2100
  /**
2101
2101
  * Typedef for a ${l} entity context.
2102
2102
  * @typedef {object} ${l}Context
2103
2103
  * @property {string} schema The schema of the context.
2104
2104
  * @property { ${l} } data The data to send for the context.
2105
- */`}var R=require("quicktype-core");var Hl=require("quicktype-core/dist/support/Strings"),Je=["EventSpecification","SnowplowApplicable","WithTimestamp","WithEventID","WithTrueTimestamp","WithContexts","WithSubject"],xn=class extends R.GoRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}emitSource(t){super.emitSource(t),P(this,this.snowtypeOptions.generators)}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,Je,t=>[t,`${t}Spec`,`${t}Applicable`,`Track${t}Spec`])}emitMultiline(t){S(this,t,2)}makeNameForTopLevel(t,f,o){return d((...a)=>super.makeNameForTopLevel(...a),this.snowtypeOptions,t,f,o)}},X=class extends R.GoTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new xn(this,t,(0,R.getOptionValues)(R.goOptions,f),this.snowtypeOptions)}},$l=x({name:"go",quicktypeLanguage:X,defaultOptions:{"just-types":!0,"just-types-and-package":!0,package:"snowtypegenerated","multi-file-output":!1,"field-tags":"mapstructure"},nameModifiers:{functionName:Hl.camelCase}}),bn={...$l,generate:async(l,n,t,f)=>{let{sdk:o,prefixes:a,suffixes:e}=t;return await $l.generate(l,n,t,f)}};var j=require("quicktype-core");var Ue=["EventSpecification","EventSpecEntity","SelfDescribing"],En=class extends j.DartRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}emitSource(t){super.emitSource(t),P(this,this.snowtypeOptions.generators)}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,Ue,t=>[`${t}EventSpec`])}emitMultiline(t){S(this,t,2)}emitSourceStructure(){}makeNameForTopLevel(t,f,o){return d((...a)=>super.makeNameForTopLevel(...a),this.snowtypeOptions,t,f,o)}getClassData(t){let f=[];return this.forEachClassProperty(t,"none",(o,a,e)=>{let i=this.getArrayTypes(e.type);f.push({name:this.sourcelikeToString(o),jsonName:a,description:this.descriptionForClassProperty(t,a),type:this.sourcelikeToString(this.dartType(e.type)),isOptional:e.isOptional,isNullable:this.isNullable(e),isNullableOrOptional:e.isOptional||this.isNullable(e),isArrayOfEnums:i&&i.get("array").includes("enum"),isArrayOfObjects:i&&i.get("array").includes("class"),isEnum:this.isEnum(e),isObject:this.isObject(e),isNull:!1,shouldOutputSchemaNullClass:!1})}),{properties:f}}getArrayTypes(t){if(t.kind.toString()!=="array")return null;let f=new Map;return f.set("array",[]),t.getChildren().forEach(o=>{o.kind.toString()==="union"?o.getChildren().forEach(a=>{f.get("array").push(a.kind.toString())}):f.get("array").push(o.kind.toString())}),f}isEnum(t){return t.type.kind==="enum"||this.isNullable(t)&&(0,j.nullableFromUnion)(t.type)?.kind==="enum"}isObject(t){return t.type.kind==="class"||this.isNullable(t)&&(0,j.nullableFromUnion)(t.type)?.kind==="class"}isNullable(t){return t.type.kind==="union"&&(0,j.nullableFromUnion)(t.type)!==null}},Nn=class extends j.DartTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new En(this,t,(0,j.getOptionValues)(j.dartOptions,f),this.snowtypeOptions)}},jn=x({name:"dart",quicktypeLanguage:Nn,defaultOptions:{"just-types":!0}});var Gl=require("quicktype-core"),V=require("quicktype-core/dist/language/Java");var Ve=["EventSpecification","Snowtype","SelfDescribing","SelfDescribingJson","Arrays","HashMap","Map","Objects"],dn=class extends V.JavaRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}getClassData(t){let f=[];return this.forEachClassProperty(t,"none",(o,a,e)=>{f.push({name:this.sourcelikeToString(o),jsonName:a,description:this.descriptionForClassProperty(t,a),type:this.sourcelikeToString(this.javaType(!1,e.type)),isOptional:e.isOptional,isNullable:!1,isNullableOrOptional:!1,isArrayOfEnums:!1,isArrayOfObjects:!1,isEnum:this.isEnum(e),isObject:this.isObject(e),isNull:!1,shouldOutputSchemaNullClass:!1})}),{properties:f}}isEnum(t){return t.type.kind==="enum"}isObject(t){return t.type.kind==="class"}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,Ve)}emitMultiline(t){S(this,t,2)}emitFileHeader(t){this.startFile(t),this.ensureBlankLine()}emitSource(t){super.emitSource(t),super.startFile("snowplow"),P(this,this.snowtypeOptions.generators)}},Cn=class extends V.JavaTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new dn(this,t,(0,Gl.getOptionValues)(V.javaOptions,f),this.snowtypeOptions)}},Tn=x({name:"java",quicktypeLanguage:Cn,defaultOptions:{package:"snowtype","just-types":!0},requiredOptions:["package"],unsupportedOptions:["framework"]});var Wl=[wn,un,On,fn,gn,bn,jn,Tn];var $e=["Automatically generated by Snowtype"];function He(l){return Wl.find(t=>t.id===l.language)?.generate(l.schemas,l.eventSpecifications,{header:$e,outputFilename:"snowplow",validations:l.validations,tracker:l.tracker,namespace:l.namespace},l.eventSpecificationsInputMetadata)}0&&(module.exports={createEventSpecificationInstructionsIdentifier,generate,joinIgluSchemaUrlParts,languageIds,splitIgluSchemaUrlParts,trackerTemplates});
2105
+ */`}var R=require("quicktype-core");var Hl=require("quicktype-core/dist/support/Strings"),Je=["EventSpecification","SnowplowApplicable","WithTimestamp","WithEventID","WithTrueTimestamp","WithContexts","WithSubject"],bn=class extends R.GoRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}emitSource(t){super.emitSource(t),P(this,this.snowtypeOptions.generators)}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,Je,t=>[t,`${t}Spec`,`${t}Applicable`,`Track${t}Spec`])}emitMultiline(t){S(this,t,2)}makeNameForTopLevel(t,f,o){return d((...a)=>super.makeNameForTopLevel(...a),this.snowtypeOptions,t,f,o)}},Z=class extends R.GoTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new bn(this,t,(0,R.getOptionValues)(R.goOptions,f),this.snowtypeOptions)}},$l=x({name:"go",quicktypeLanguage:Z,defaultOptions:{"just-types":!0,"just-types-and-package":!0,package:"snowtypegenerated","multi-file-output":!1,"field-tags":"mapstructure"},nameModifiers:{functionName:Hl.camelCase}}),En={...$l,generate:async(l,n,t,f)=>{let{sdk:o,prefixes:a,suffixes:e}=t;return await $l.generate(l,n,t,f)}};var j=require("quicktype-core");var Ue=["EventSpecification","EventSpecEntity","SelfDescribing"],Nn=class extends j.DartRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}emitSource(t){super.emitSource(t),P(this,this.snowtypeOptions.generators)}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,Ue,t=>[`${t}EventSpec`])}emitMultiline(t){S(this,t,2)}emitSourceStructure(){}makeNameForTopLevel(t,f,o){return d((...a)=>super.makeNameForTopLevel(...a),this.snowtypeOptions,t,f,o)}getClassData(t){let f=[];return this.forEachClassProperty(t,"none",(o,a,e)=>{let i=this.getArrayTypes(e.type);f.push({name:this.sourcelikeToString(o),jsonName:a,description:this.descriptionForClassProperty(t,a),type:this.sourcelikeToString(this.dartType(e.type)),isOptional:e.isOptional,isNullable:this.isNullable(e),isNullableOrOptional:e.isOptional||this.isNullable(e),isArrayOfEnums:i&&i.get("array").includes("enum"),isArrayOfObjects:i&&i.get("array").includes("class"),isEnum:this.isEnum(e),isObject:this.isObject(e),isNull:!1,shouldOutputSchemaNullClass:!1})}),{properties:f}}getArrayTypes(t){if(t.kind.toString()!=="array")return null;let f=new Map;return f.set("array",[]),t.getChildren().forEach(o=>{o.kind.toString()==="union"?o.getChildren().forEach(a=>{f.get("array").push(a.kind.toString())}):f.get("array").push(o.kind.toString())}),f}isEnum(t){return t.type.kind==="enum"||this.isNullable(t)&&(0,j.nullableFromUnion)(t.type)?.kind==="enum"}isObject(t){return t.type.kind==="class"||this.isNullable(t)&&(0,j.nullableFromUnion)(t.type)?.kind==="class"}isNullable(t){return t.type.kind==="union"&&(0,j.nullableFromUnion)(t.type)!==null}},jn=class extends j.DartTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new Nn(this,t,(0,j.getOptionValues)(j.dartOptions,f),this.snowtypeOptions)}},dn=x({name:"dart",quicktypeLanguage:jn,defaultOptions:{"just-types":!0}});var Gl=require("quicktype-core"),V=require("quicktype-core/dist/language/Java");var Ve=["EventSpecification","Snowtype","SelfDescribing","SelfDescribingJson","Arrays","HashMap","Map","Objects"],Cn=class extends V.JavaRenderer{constructor(t,f,o,a){super(t,f,o);this.snowtypeOptions=a}getClassData(t){let f=[];return this.forEachClassProperty(t,"none",(o,a,e)=>{f.push({name:this.sourcelikeToString(o),jsonName:a,description:this.descriptionForClassProperty(t,a),type:this.sourcelikeToString(this.javaType(!1,e.type)),isOptional:e.isOptional,isNullable:!1,isNullableOrOptional:!1,isArrayOfEnums:!1,isArrayOfObjects:!1,isEnum:this.isEnum(e),isObject:this.isObject(e),isNull:!1,shouldOutputSchemaNullClass:!1})}),{properties:f}}isEnum(t){return t.type.kind==="enum"}isObject(t){return t.type.kind==="class"}forbiddenNamesForGlobalNamespace(){return O(super.forbiddenNamesForGlobalNamespace(),this.snowtypeOptions,Ve)}emitMultiline(t){S(this,t,2)}emitFileHeader(t){this.startFile(t),this.ensureBlankLine()}emitSource(t){super.emitSource(t),super.startFile("snowplow"),P(this,this.snowtypeOptions.generators)}},Tn=class extends V.JavaTargetLanguage{constructor(t){super();this.snowtypeOptions=t}makeRenderer(t,f){return new Cn(this,t,(0,Gl.getOptionValues)(V.javaOptions,f),this.snowtypeOptions)}},Ln=x({name:"java",quicktypeLanguage:Tn,defaultOptions:{package:"snowtype","just-types":!0},requiredOptions:["package"],unsupportedOptions:["framework"]});var Wl=[Sn,sn,xn,yn,vn,En,dn,Ln];var $e=["Automatically generated by Snowtype"];function He(l){return Wl.find(t=>t.id===l.language)?.generate(l.schemas,l.eventSpecifications,{header:$e,outputFilename:"snowplow",validations:l.validations,tracker:l.tracker,namespace:l.namespace},l.eventSpecificationsInputMetadata)}0&&(module.exports={createEventSpecificationInstructionsIdentifier,ecomFunctionName,generate,joinIgluSchemaUrlParts,languageIds,splitIgluSchemaUrlParts,trackerTemplates});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snowplow/snowtype-core",
3
- "version": "0.19.0",
3
+ "version": "0.20.0",
4
4
  "description": "A code generator for faster and type-safe Snowplow tracking code",
5
5
  "author": "Peter Perlepes <peter@snowplowanalytics.com>",
6
6
  "homepage": "https://snowplow.io/",