@snowplow/snowtype-core 0.15.1 → 0.15.3

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.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -1989,7 +1989,7 @@ public class Snowtype {
1989
1989
  ${r} @deprecated ${a}
1990
1990
  * ${e}`:f?`
1991
1991
  ${r} @deprecated ${a}`:o?`
1992
- ${r} ${e}`:""}function Qn(){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,r){return r&&typeof r=="string"?l.map(f=>f+r).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((r,f)=>f===0?r.toLowerCase():r.charAt(0).toUpperCase()+r.slice(1).toLowerCase()).join("");return n==="null"?"nullValue":n}return""}),v.default.registerHelper("addEventSpecificationIdentifier",function(l){return l&&typeof l=="string"?q(l):""}),v.default.registerHelper("ecomFunction",function(l){return Vn[l]}),v.default.registerHelper("ecomFunctionArgument",function(l){return $n[l]}),v.default.registerHelper("ecomFunctionMobile",function(l){return Hn[l]}),v.default.registerHelper("eq",function(l,n){return l===n}),v.default.registerHelper("debug",function(l,n,r){if(console.log(r===!0?JSON.stringify(l):l),n===!0)debugger;return""}),v.default.registerHelper("warningsDs",Gn),v.default.registerHelper("warningsDsGo",Wn),v.default.registerHelper("warningsMetadataJs",Kn("*")),v.default.registerHelper("warningsMetadataJsGtm",Bn),v.default.registerHelper("warningsDsDart",qn),v.default.registerHelper("withSwiftNamespace",function(l,n){return l?`${l}.${n}`:n})}function zn(l,{eventSpecifications:n,ecomEventSpecifications:r},f,o){try{Qn();let a=Yn.default.template(l),{nameModifiers:e,validations:i}=f;return t=>{let s={type:[],nestedTypes:[],enums:[],eventSpecifications:n,ecomEventSpecifications:r,validations:i,metadataForAllEventSpecs:o,namespace:f.namespace};return t.forEachNamedType("leading-and-interposing",(u,m)=>{let c=u.getAttributes().get(R),y=Z(t,u,m,e),g={...y,...t.getClassData&&t.getClassData(u)};if(c!==void 0&&c.raw.self!==void 0){let{raw:p}=c,k=A(p.self),x=p.self.isEventPropertyRule,$l=p.self.isEntityPropertyRule,Hl=p.self.eventSpecificationId,Gl=W(p.self,!!p.self.eventSpecificationName,p.self.eventSpecificationName);[n,r].forEach(Wl=>_n(Wl,Gl,y.typeName)),s.type.push({isEventPropertyRule:x,isEntityPropertyRule:$l,eventSpecificationId:Hl,igluUrl:k,...g})}else s.nestedTypes.push(g)},(u,m)=>{let c=[],{description:y}=Z(t,u,m,e);t.forEachEnumCase(u,"none",(g,p)=>{c.push({name:t.sourcelikeToString(g),jsonName:p})}),s.enums.push({name:t.sourcelikeToString(m),description:y,cases:c})},()=>console.error("Unions are not yet supported in Snowtype")),t.emitMultiline(a(s))}}catch(a){throw new Error(`${JSON.stringify(a)}`)}}var _=require("quicktype-core");function Xn(l,n){if(te(l)&&l.snowtypeOptions.inputs.tracker==="snowplow-golang-tracker"){let r="",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,r,f,o)}return n}function te(l){return Object.hasOwn(l,"snowtypeOptions")}function Zn(l,n,r){let f=Object.fromEntries(l.entries());return n&&(f["iglu:com.snowplowanalytics.snowplow/event_specification/jsonschema/1-0-3"]=re),Object.keys(f).forEach(o=>{f[o].$schema="http://json-schema.org/draft-04/schema#"}),Object.keys(r).forEach(o=>{Object.keys(r[o]).forEach(a=>{r[o][a].$schema="http://json-schema.org/draft-04/schema#"})}),{...f,...r}}var re={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},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-3"},$schema:"http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#"};var nn=require("quicktype-core/dist/support/Strings");var hn=require("@fastify/merge-json-schemas");function h({schema:l,propertyRulesSchema:n,eventSpecificationName:r,eventSpecificationId:f,isEventPropertyRule:o}){let a=l.additionalProperties;delete l.additionalProperties,delete n.additionalProperties;let e=(0,hn.mergeSchemas)([l,n],{resolvers:{description:(i,t,s)=>{let u=t.length===1?t[0]:t[1];s.description=u},$schema:(i,t,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:r,eventSpecificationId:f,isEventPropertyRule:o,isEntityPropertyRule:!o},e}async function nl(l,n,r,f){let{header:o,validations:a,...e}=f,i=new _.JSONSchemaInput(void 0,[Rn]),t=new Map;await ue(i,n,t),await ie(i,r,t);let s=await se(i,r),u=a?Zn(t,!!r.length,s):void 0,m=new _.InputData;m.addInput(i);let c=await(0,_.quicktype)({inputData:m,lang:l,leadingComments:o,rendererOptions:e});return{...Xn(l,c),validationsSchemaObject:u}}async function ie(l,n,r){let f=[];for(let o of n){let a=I(o.eventSchema.self);if(!r.has(a)&&o.propertyRules===void 0&&(f.push($(l,o.eventSchema,o.eventSchema.self.name)),r.set(a,o.eventSchema)),!Array.isArray(o.entitiesSchemas))return;o.entitiesSchemas.forEach(e=>{let i=I(e.original.self);!r.has(i)&&e.propertyRule===void 0&&(f.push($(l,e.original,e.original.self.name)),r.set(i,e.original))})}await Promise.all(f)}async function ue(l,n,r){let f=[];for(let o of n){let a=I(o.self);r.has(a)||(f.push($(l,o,o.self.name)),r.set(a,o))}await Promise.all(f)}function I({name:l,vendor:n,version:r,format:f}){return"iglu:"+[n,l,f,r].join("/")}async function $(l,n,r){await l.addSource({name:r,schema:JSON.stringify(n)})}async function se(l,n){let r={},f=[];for(let o of n){let a=o.eventSpecification.name,e=o.eventSpecification.id;if(r[e]={},typeof o.propertyRules<"u"){let i=h({schema:JSON.parse(JSON.stringify(o.eventSchema)),propertyRulesSchema:JSON.parse(JSON.stringify(o.propertyRules)),eventSpecificationName:a,eventSpecificationId:e,isEventPropertyRule:!0});f.push($(l,i,i.self.name+"_"+(0,nn.snakeCase)(a)));let t=I(i.self);r[e][t]=i}else{let i=I(o.eventSchema.self);r[e][i]=o.eventSchema}o.entitiesSchemas?.forEach(({original:i,propertyRule:t})=>{if(t){let s=h({schema:JSON.parse(JSON.stringify(i)),propertyRulesSchema:JSON.parse(JSON.stringify(t)),eventSpecificationName:a,eventSpecificationId:e,isEventPropertyRule:!1});f.push($(l,s,s.self.name+"_"+(0,nn.snakeCase)(a)));let u=I(s.self);r[e][u]=s}else{let s=I(i.self);r[e][s]=i}})}return await Promise.all(f),r}var ce=w(el()),me=w(ol()),fe=w(rl()),ye=w(ul()),ge=w(cl()),pe=w(fl()),ve=w(gl()),ke=w(vl()),we=w(wl()),Se=w(Pl()),Pe=w(xl()),Oe=w(bl()),H=w(require("joi"));var K=["@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"],B=["typescript","javascript","javascript-gtm","kotlin","swift","go","dart","java"];function xe(l){let r=H.default.object().required().keys({id:H.default.object().required().keys({tracker:H.default.string().required().valid(...K),language:H.default.string().required().valid(...B)})}).validate(l,{abortEarly:!1,convert:!1,allowUnknown:!0});if(r.error)throw new Error(r.error.annotate())}var dl=[ce,me,fe,ye,ge,pe,ve,ke,we,Se,Pe,Oe].map(l=>(xe(l),l));function O(l){let{name:n,quicktypeLanguage:r,defaultOptions:f,unsupportedOptions:o,requiredOptions:a}=l,e=Ln(n,o,a);return{id:e.id,name:e.name,extension:e.extension,generate:(i,t,s,u)=>{let m=[],c=dl.find(({id:g})=>g.language===e.id&&g.tracker===s.tracker),y=Un(t);return c&&m.push(zn(c,y,s,u)),nl(new r({generators:m,inputs:{tracker:c?.id.tracker,validations:s.validations,...y}}),i,t,Dn(s,f,o))}}}var T=w(require("json-pointer"));function jl({propertyNameAsType:l,capitalizeProperty:n,defaultPropertyType:r},f){let o="*";return f!==void 0&&l?n?Cl(f):f:r===null||r===""?r:r||o}function Nl(l,n){let{maxLength:r}=l;if(!r)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 t=n.slice(l.indentMaxDelta).match(/^\S+/);i=a+(t||"")}else i=a.slice(0,e);f.push(i),n=n.slice(i.length+1)}return f}function Q(l,n={}){let r=[];if(!l||Object.keys(l).length===0)return"";let f=Ee(n);return r.push(...be(l,f)),T.default.has(l,"/properties")&&r.push(...en(l,l,null,f)),T.default.has(l,"/items")&&r.push(...ln(l,l,null,f)),je(f.outerIndent,r)}function Ee(l){let r=(l.indentChar||" ").repeat(l.indent||0),f=l.maxLength-r.length-3;return{...l,outerIndent:r,indentMaxDelta:f}}function ln(l,n,r,f){let o=T.default.get(l,"/items");if(!Array.isArray(o))return[];let a=[];return o.forEach((e,i)=>{let s=(r?`${r}.`:"")+i,u=e.default,m=!l.minItems||i>=l.minItems;if(e.type==="array"&&e.items)a.push(...F("array",s,e.description,m,u,f)),a.push(...ln(e,n,s,f));else if(e.type==="object"&&e.properties)a.push(...F("object",s,e.description,m,u,f)),a.push(...en(e,n,s,f));else{let c=Y(e,n)||jl(f);a.push(...F(c,s,e.description,m,u,f))}}),a}function en(l,n,r,f){let o=T.default.get(l,"/properties"),a=T.default.has(l,"/required")?T.default.get(l,"/required"):[],e=[];for(let i in o)if(!(Array.isArray(f.ignore)&&f.ignore.includes(i))){let t=o[i],u=(r?`${r}.`:"")+i,m=o[i].default,c=!a.includes(i);if(t.type==="object"&&t.properties)e.push(...F("object",u,t.description,c,m,f)),e.push(...en(t,n,u,f));else if(t.type==="array"&&t.items)e.push(...F("array",u,t.description,c,m,f)),e.push(...ln(t,n,u,f));else{let y=Y(t,n)||jl(f,i);e.push(...F(y,u,t.description,c,m,f))}}return e}function be(l,n){let r=[],{objectTagName:f="typedef"}=n,{description:o}=l;o===void 0&&(o=n.autoDescribe?de(l.title,l.type):"");let a=n.types&&n.types[l.type],e;n.types===null?e="":e=` {${a===""?"":a||Y(l,l)}}`,(o||n.addDescriptionLineBreak)&&r.push(...Nl(n,o));let i=l.title?` ${n.capitalizeTitle?Cl(l.title):l.title}`:"";return r.push(`@${f}${e}${i}`),r}function F(l,n,r="",f,o,a){let e;f?e=`[${n}${o===void 0?"":`=${JSON.stringify(o)}`}]`:e=n;let i;!r&&!a.descriptionPlaceholder?i="":a.hyphenatedDescriptions?i=` - ${r}`:i=` ${r}`;let t=l===null?"":`{${l}} `;return Nl(a,`@property ${t}${e}${i}`)}function Y(l,n){if(l.$ref){let r=T.default.get(n,l.$ref.slice(1));return Y(r,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 Cl(l){return l.slice(0,1).toUpperCase()+l.slice(1)}function de(l,n){let r=l?`${l} ${n}`:n;return`Represents ${`a${"aeiou".split("").includes(r.charAt())?"n":""}`} ${r}`}function je(l,n){let r=[`${l}/**`];return r.push(...n.map(f=>f?`${l} * ${f}`:" *")),r.push(`${l} */
1992
+ ${r} ${e}`:""}function Qn(){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,r){return r&&typeof r=="string"?l.map(f=>f+r).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((r,f)=>f===0?r.toLowerCase():r.charAt(0).toUpperCase()+r.slice(1).toLowerCase()).join("");return n==="null"?"nullValue":n}return""}),v.default.registerHelper("addEventSpecificationIdentifier",function(l){return l&&typeof l=="string"?q(l):""}),v.default.registerHelper("ecomFunction",function(l){return Vn[l]}),v.default.registerHelper("ecomFunctionArgument",function(l){return $n[l]}),v.default.registerHelper("ecomFunctionMobile",function(l){return Hn[l]}),v.default.registerHelper("eq",function(l,n){return l===n}),v.default.registerHelper("debug",function(l,n,r){if(console.log(r===!0?JSON.stringify(l):l),n===!0)debugger;return""}),v.default.registerHelper("warningsDs",Gn),v.default.registerHelper("warningsDsGo",Wn),v.default.registerHelper("warningsMetadataJs",Kn("*")),v.default.registerHelper("warningsMetadataJsGtm",Bn),v.default.registerHelper("warningsDsDart",qn),v.default.registerHelper("withSwiftNamespace",function(l,n){return l?`${l}.${n}`:n})}function zn(l,{eventSpecifications:n,ecomEventSpecifications:r},f,o){try{Qn();let a=Yn.default.template(l),{nameModifiers:e,validations:i}=f;return t=>{let s={type:[],nestedTypes:[],enums:[],eventSpecifications:n,ecomEventSpecifications:r,validations:i,metadataForAllEventSpecs:o,namespace:f.namespace};return t.forEachNamedType("leading-and-interposing",(u,m)=>{let c=u.getAttributes().get(R),y=Z(t,u,m,e),g={...y,...t.getClassData&&t.getClassData(u)};if(c!==void 0&&c.raw.self!==void 0){let{raw:p}=c,k=A(p.self),x=p.self.isEventPropertyRule,$l=p.self.isEntityPropertyRule,Hl=p.self.eventSpecificationId,Gl=W(p.self,!!p.self.eventSpecificationName,p.self.eventSpecificationName);[n,r].forEach(Wl=>_n(Wl,Gl,y.typeName)),s.type.push({isEventPropertyRule:x,isEntityPropertyRule:$l,eventSpecificationId:Hl,igluUrl:k,...g})}else s.nestedTypes.push(g)},(u,m)=>{let c=[],{description:y}=Z(t,u,m,e);t.forEachEnumCase(u,"none",(g,p)=>{c.push({name:t.sourcelikeToString(g),jsonName:p})}),s.enums.push({name:t.sourcelikeToString(m),description:y,cases:c})},()=>console.error("Unions are not yet supported in Snowtype")),t.emitMultiline(a(s))}}catch(a){throw new Error(`${JSON.stringify(a)}`)}}var _=require("quicktype-core");function Xn(l,n){if(te(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 te(l){return Object.hasOwn(l,"snowtypeOptions")}function Zn(l,n,r){let f=Object.fromEntries(l.entries());return n&&(f["iglu:com.snowplowanalytics.snowplow/event_specification/jsonschema/1-0-3"]=re),Object.keys(f).forEach(o=>{f[o].$schema="http://json-schema.org/draft-04/schema#"}),Object.keys(r).forEach(o=>{Object.keys(r[o]).forEach(a=>{r[o][a].$schema="http://json-schema.org/draft-04/schema#"})}),{...f,...r}}var re={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},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-3"},$schema:"http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#"};var nn=require("quicktype-core/dist/support/Strings");var hn=require("@fastify/merge-json-schemas");function h({schema:l,propertyRulesSchema:n,eventSpecificationName:r,eventSpecificationId:f,isEventPropertyRule:o}){let a=l.additionalProperties;delete l.additionalProperties,delete n.additionalProperties;let e=(0,hn.mergeSchemas)([l,n],{resolvers:{description:(i,t,s)=>{let u=t.length===1?t[0]:t[1];s.description=u},$schema:(i,t,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:r,eventSpecificationId:f,isEventPropertyRule:o,isEntityPropertyRule:!o},e}async function nl(l,n,r,f){let{header:o,validations:a,...e}=f,i=new _.JSONSchemaInput(void 0,[Rn]),t=new Map;await ue(i,n,t),await ie(i,r,t);let s=await se(i,r),u=a?Zn(t,!!r.length,s):void 0,m=new _.InputData;m.addInput(i);let c=await(0,_.quicktype)({inputData:m,lang:l,leadingComments:o,rendererOptions:e});return{...Xn(l,c),validationsSchemaObject:u}}async function ie(l,n,r){let f=[];for(let o of n){let a=I(o.eventSchema.self);if(!r.has(a)&&o.propertyRules===void 0&&(f.push($(l,o.eventSchema,o.eventSchema.self.name)),r.set(a,o.eventSchema)),!Array.isArray(o.entitiesSchemas))return;o.entitiesSchemas.forEach(e=>{let i=I(e.original.self);!r.has(i)&&e.propertyRule===void 0&&(f.push($(l,e.original,e.original.self.name)),r.set(i,e.original))})}await Promise.all(f)}async function ue(l,n,r){let f=[];for(let o of n){let a=I(o.self);r.has(a)||(f.push($(l,o,o.self.name)),r.set(a,o))}await Promise.all(f)}function I({name:l,vendor:n,version:r,format:f}){return"iglu:"+[n,l,f,r].join("/")}async function $(l,n,r){await l.addSource({name:r,schema:JSON.stringify(n)})}async function se(l,n){let r={},f=[];for(let o of n){let a=o.eventSpecification.name,e=o.eventSpecification.id;if(r[e]={},typeof o.propertyRules<"u"){let i=h({schema:JSON.parse(JSON.stringify(o.eventSchema)),propertyRulesSchema:JSON.parse(JSON.stringify(o.propertyRules)),eventSpecificationName:a,eventSpecificationId:e,isEventPropertyRule:!0});f.push($(l,i,i.self.name+"_"+(0,nn.snakeCase)(a)));let t=I(i.self);r[e][t]=i}else{let i=I(o.eventSchema.self);r[e][i]=o.eventSchema}o.entitiesSchemas?.forEach(({original:i,propertyRule:t})=>{if(t){let s=h({schema:JSON.parse(JSON.stringify(i)),propertyRulesSchema:JSON.parse(JSON.stringify(t)),eventSpecificationName:a,eventSpecificationId:e,isEventPropertyRule:!1});f.push($(l,s,s.self.name+"_"+(0,nn.snakeCase)(a)));let u=I(s.self);r[e][u]=s}else{let s=I(i.self);r[e][s]=i}})}return await Promise.all(f),r}var ce=w(el()),me=w(ol()),fe=w(rl()),ye=w(ul()),ge=w(cl()),pe=w(fl()),ve=w(gl()),ke=w(vl()),we=w(wl()),Se=w(Pl()),Pe=w(xl()),Oe=w(bl()),H=w(require("joi"));var K=["@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"],B=["typescript","javascript","javascript-gtm","kotlin","swift","go","dart","java"];function xe(l){let r=H.default.object().required().keys({id:H.default.object().required().keys({tracker:H.default.string().required().valid(...K),language:H.default.string().required().valid(...B)})}).validate(l,{abortEarly:!1,convert:!1,allowUnknown:!0});if(r.error)throw new Error(r.error.annotate())}var dl=[ce,me,fe,ye,ge,pe,ve,ke,we,Se,Pe,Oe].map(l=>(xe(l),l));function O(l){let{name:n,quicktypeLanguage:r,defaultOptions:f,unsupportedOptions:o,requiredOptions:a}=l,e=Ln(n,o,a);return{id:e.id,name:e.name,extension:e.extension,generate:(i,t,s,u)=>{let m=[],c=dl.find(({id:g})=>g.language===e.id&&g.tracker===s.tracker),y=Un(t);return c&&m.push(zn(c,y,s,u)),nl(new r({generators:m,inputs:{tracker:c?.id.tracker,validations:s.validations,...y}}),i,t,Dn(s,f,o))}}}var T=w(require("json-pointer"));function jl({propertyNameAsType:l,capitalizeProperty:n,defaultPropertyType:r},f){return f!==void 0&&l?n?Cl(f):f:r===null||r===""?r:r||"*"}function Nl(l,n){let{maxLength:r}=l;if(!r)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 t=n.slice(l.indentMaxDelta).match(/^\S+/);i=a+(t||"")}else i=a.slice(0,e);f.push(i),n=n.slice(i.length+1)}return f}function Q(l,n={}){let r=[];if(!l||Object.keys(l).length===0)return"";let f=Ee(n);return r.push(...be(l,f)),T.default.has(l,"/properties")&&r.push(...en(l,l,null,f)),T.default.has(l,"/items")&&r.push(...ln(l,l,null,f)),je(f.outerIndent,r)}function Ee(l){let r=(l.indentChar||" ").repeat(l.indent||0),f=l.maxLength-r.length-3;return{...l,outerIndent:r,indentMaxDelta:f}}function ln(l,n,r,f){let o=T.default.get(l,"/items");if(!Array.isArray(o))return[];let a=[];return o.forEach((e,i)=>{let s=(r?`${r}.`:"")+i,u=e.default,m=!l.minItems||i>=l.minItems;if(e.type==="array"&&e.items)a.push(...F("array",s,e.description,m,u,f)),a.push(...ln(e,n,s,f));else if(e.type==="object"&&e.properties)a.push(...F("object",s,e.description,m,u,f)),a.push(...en(e,n,s,f));else{let c=Y(e,n)||jl(f);a.push(...F(c,s,e.description,m,u,f))}}),a}function en(l,n,r,f){let o=T.default.get(l,"/properties"),a=T.default.has(l,"/required")?T.default.get(l,"/required"):[],e=[];for(let i in o)if(!(Array.isArray(f.ignore)&&f.ignore.includes(i))){let t=o[i],u=(r?`${r}.`:"")+i,m=o[i].default,c=!a.includes(i);if(t.type==="object"&&t.properties)e.push(...F("object",u,t.description,c,m,f)),e.push(...en(t,n,u,f));else if(t.type==="array"&&t.items)e.push(...F("array",u,t.description,c,m,f)),e.push(...ln(t,n,u,f));else{let y=Y(t,n)||jl(f,i);e.push(...F(y,u,t.description,c,m,f))}}return e}function be(l,n){let r=[],{objectTagName:f="typedef"}=n,{description:o}=l;o===void 0&&(o=n.autoDescribe?de(l.title,l.type):"");let a=n.types&&n.types[l.type],e;n.types===null?e="":e=` {${a===""?"":a||Y(l,l)}}`,(o||n.addDescriptionLineBreak)&&r.push(...Nl(n,o));let i=l.title?` ${n.capitalizeTitle?Cl(l.title):l.title}`:"";return r.push(`@${f}${e}${i}`),r}function F(l,n,r="",f,o,a){let e;f?e=`[${n}${o===void 0?"":`=${JSON.stringify(o)}`}]`:e=n;let i;!r&&!a.descriptionPlaceholder?i="":a.hyphenatedDescriptions?i=` - ${r}`:i=` ${r}`;let t=l===null?"":`{${l}} `;return Nl(a,`@property ${t}${e}${i}`)}function Y(l,n){if(l.$ref){let r=T.default.get(n,l.$ref.slice(1));return Y(r,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 Cl(l){return l.slice(0,1).toUpperCase()+l.slice(1)}function de(l,n){let r=l?`${l} ${n}`:n;return`Represents ${`a${"aeiou".split("").includes(r.charAt())?"n":""}`} ${r}`}function je(l,n){let r=[`${l}/**`];return r.push(...n.map(f=>f?`${l} * ${f}`:" *")),r.push(`${l} */
1993
1993
  `),r.join(`
1994
1994
  `)}var Ll=require("quicktype-core/dist/support/Strings"),an=class extends L.JavaScriptRenderer{constructor(r,f,o,a){super(r,f,o);this.snowtypeOptions=a}emitMultiline(r){S(this,r,2)}emitSourceStructure(){this.leadingComments!==void 0?this.emitCommentLines(this.leadingComments):this.emitUsageComments()}emitPredefinedJSDocTypes(){this.emitMultiline(rn)}emitRequiredImports(){let r=Ce(this.snowtypeOptions.inputs);r.length>0&&this.emitMultiline(r.join(`
1995
1995
  `))}emitSource(r){this.emitRequiredImports(),super.emitSource(r),this.ensureBlankLine(),this.emitPredefinedJSDocTypes(),this.forEachTopLevel("none",(f,o)=>{let a=this.sourcelikeToString(o),e=f.getAttributes().get(R);e&&e.raw&&(e.raw.title=e.raw.title||a,this.emitMultiline(Q(e.raw)),this.emitMultiline(Ne(e.raw.title)),this.ensureBlankLine())}),P(this,this.snowtypeOptions.generators)}makeNameForTopLevel(r,f,o){return j((...a)=>super.makeNameForTopLevel(...a),this.snowtypeOptions,r,f,o)}},on=class extends L.JavaScriptTargetLanguage{constructor(r){super();this.snowtypeOptions=r}makeRenderer(r,f){return new an(this,r,(0,L.getOptionValues)(L.tsFlowOptions,f),this.snowtypeOptions)}},Tl=O({name:"javascript",quicktypeLanguage:on,defaultOptions:{"runtime-typecheck":!1},nameModifiers:{functionName:Ll.camelCase}}),tn={...Tl,generate:async(l,n,r,f)=>{let{sdk:o,prefixes:a,suffixes:e}=r;return await Tl.generate(l,n,r,f)}};function Ne(l){return`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snowplow/snowtype-core",
3
- "version": "0.15.1",
3
+ "version": "0.15.3",
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/",
@@ -20,7 +20,7 @@
20
20
  "@types/jest": "^29.5.8",
21
21
  "@types/json-pointer": "^1.0.32",
22
22
  "@types/node": "^16.9.4",
23
- "esbuild": "^0.19.11",
23
+ "esbuild": "^0.27.2",
24
24
  "fs-extra": "^11.1.1",
25
25
  "jest": "^29.7.0",
26
26
  "rimraf": "^5.0.5",
@@ -40,7 +40,7 @@
40
40
  "test": "jest"
41
41
  },
42
42
  "engines": {
43
- "node": ">=18"
43
+ "node": ">=24.13.0"
44
44
  },
45
45
  "keywords": [
46
46
  "snowplow",