@1mill/cloudevents 5.1.0 → 5.1.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cloudevents.esm.js","sources":["../../src/utils/validateAttribute.ts","../../src/utils/cloudevent.ts","../../node_modules/nanoid/index.browser.js","../../src/utils/fetchNodeEnv.ts"],"sourcesContent":["export enum Permitted {\r\n\tNUMBER = 'number',\r\n\tSTRING = 'string',\r\n\tUNDEFINED = 'undefined',\r\n}\r\n\r\ninterface ValidateAttributeProps {\r\n\tdeprecated?: boolean\r\n\tname: string\r\n\tpermitted?: Permitted[]\r\n\tvalue: any\r\n}\r\n\r\nexport const validateAttribute = ({ deprecated = false, name, permitted = [], value }: ValidateAttributeProps) => {\r\n\tif (deprecated) { console.warn(`Cloudevent \"${name}\" is depricated`) }\r\n\r\n\tif (permitted.length >= 1 && !permitted.includes(typeof value as any)) {\r\n\t\tconst message = `Cloudevent \"${name}\" must be of type ${permitted.map(s => s.toUpperCase()).sort().join(' or ')}.`\r\n\t\tthrow new Error(message)\r\n\t}\r\n\r\n\treturn value\r\n}\r\n","import { Permitted, validateAttribute } from './validateAttribute.js'\r\nimport { fetchNodeEnv } from './fetchNodeEnv.js'\r\nimport { nanoid } from 'nanoid'\r\n\r\nexport interface CloudeventProps {\r\n\t// * Cloudevent v1 props\r\n\tdata?: Cloudevent['data']\r\n\tdatacontenttype?: Cloudevent['datacontenttype']\r\n\tdataschema?: Cloudevent['dataschema']\r\n\tsource?: Cloudevent['source']\r\n\tspecversion?: Cloudevent['specversion']\r\n\tsubject?: Cloudevent['subject']\r\n\ttype: Cloudevent['type']\r\n\r\n\t// * In-house extension props\r\n\tactor?: Cloudevent['actor']\r\n\twschannelid?: Cloudevent['wschannelid']\r\n\r\n\t// * In-house helpers\r\n\torigin?: Cloudevent\r\n}\r\n\r\nexport class Cloudevent {\r\n\t// * Cloudevents v1 fields\r\n\treadonly data?: any\r\n\treadonly datacontenttype?: string\r\n\treadonly dataschema?: string\r\n\treadonly id: string\r\n\treadonly source: string\r\n\treadonly specversion: string\r\n\treadonly subject?: string\r\n\treadonly time: string\r\n\treadonly type: string\r\n\r\n\t// * In-house extensions\r\n\treadonly actor?: string\r\n\treadonly wschannelid?: string\r\n\r\n\t// * In-house origin extensions\r\n\treadonly originid: Cloudevent['id']\r\n\treadonly originsource: Cloudevent['source']\r\n\treadonly origintime: Cloudevent['time']\r\n\treadonly origintype: Cloudevent['type']\r\n\r\n\tconstructor({\r\n\t\tactor,\r\n\t\tdata,\r\n\t\tdatacontenttype,\r\n\t\tdataschema,\r\n\t\torigin,\r\n\t\tsource,\r\n\t\tspecversion,\r\n\t\tsubject,\r\n\t\ttype,\r\n\t\twschannelid,\r\n\t}: CloudeventProps) {\r\n\t\t// *******\r\n\t\t// * Required fields by Cloudevent v1 specification\r\n\t\tconst idValue = 'ce_' + nanoid(33)\r\n\t\tthis.id = validateAttribute({\r\n\t\t\tname: 'id',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: idValue\r\n\t\t})\r\n\r\n\t\tconst sourceValue = source ?? fetchNodeEnv('MILL_CLOUDEVENTS_SOURCE')\r\n\t\tthis.source = validateAttribute({\r\n\t\t\tname: 'source',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: sourceValue\r\n\t\t})\r\n\r\n\t\tthis.type = validateAttribute({\r\n\t\t\tname: 'type',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: type\r\n\t\t})\r\n\r\n\t\tconst specversionValue = specversion ?? '1.0'\r\n\t\tthis.specversion = validateAttribute({\r\n\t\t\tname: 'specversion',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: specversionValue\r\n\t\t})\r\n\r\n\t\tconst timeValue = new Date().toISOString()\r\n\t\tthis.time = validateAttribute({\r\n\t\t\tname: 'time',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: timeValue\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Optional fields by Cloudevent v1 specification\r\n\t\tconst dataValue = datacontenttype === undefined ? JSON.stringify(data) : data\r\n\t\tthis.data = validateAttribute({\r\n\t\t\tname: 'data',\r\n\t\t\tvalue: dataValue\r\n\t\t})\r\n\r\n\t\tconst datacontenttypeValue = this.data\r\n\t\t\t? datacontenttype ?? 'application/json'\r\n\t\t\t: datacontenttype\r\n\t\tthis.datacontenttype = validateAttribute({\r\n\t\t\tname: 'datacontenttype',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: datacontenttypeValue\r\n\t\t})\r\n\r\n\t\tthis.dataschema = validateAttribute({\r\n\t\t\tname: 'dataschema',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: dataschema\r\n\t\t})\r\n\r\n\t\tthis.subject = validateAttribute({\r\n\t\t\tname: 'subject',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: subject\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Optional in-house extentions\r\n\t\tthis.actor = validateAttribute({\r\n\t\t\tname: 'actor',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: actor,\r\n\t\t})\r\n\r\n\t\tthis.wschannelid = validateAttribute({\r\n\t\t\tname: 'wschannelid',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: wschannelid,\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Origin in-house extentions\r\n\t\tconst originidValue = origin?.originid ?? this.id\r\n\t\tthis.originid = validateAttribute({\r\n\t\t\tname: 'originid',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: originidValue,\r\n\t\t})\r\n\r\n\t\tconst originsourceValue = origin?.originsource ?? this.source\r\n\t\tthis.originsource = validateAttribute({\r\n\t\t\tname: 'originsource',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: originsourceValue,\r\n\t\t})\r\n\r\n\t\tconst origintimeValue = origin?.origintime ?? this.time\r\n\t\tthis.origintime = validateAttribute({\r\n\t\t\tname: 'origintime',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: origintimeValue,\r\n\t\t})\r\n\r\n\t\tconst origintypeValue = origin?.origintype ?? this.type\r\n\t\tthis.origintype = validateAttribute({\r\n\t\t\tname: 'origintype',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: origintypeValue,\r\n\t\t})\r\n\t\t// *******\r\n\t}\r\n}\r\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","export const fetchNodeEnv = (name: string, fallbackValue?: any) => {\r\n\tif (typeof process === 'undefined') { return }\r\n\treturn process.env[name] || fallbackValue\r\n}\r\n"],"names":["Permitted","validateAttribute","deprecated","name","permitted","value","console","warn","length","includes","message","map","s","toUpperCase","sort","join","Error","Cloudevent","constructor","actor","data","datacontenttype","dataschema","origin","source","specversion","subject","type","wschannelid","_origin$originid","_origin$originsource","_origin$origintime","_origin$origintype","this","id","time","originid","originsource","origintime","origintype","idValue","size","crypto","getRandomValues","Uint8Array","reduce","byte","toString","nanoid","STRING","fallbackValue","process","env","fetchNodeEnv","sourceValue","timeValue","Date","toISOString","dataValue","undefined","JSON","stringify","UNDEFINED","originidValue","originsourceValue","origintimeValue","origintypeValue"],"mappings":"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"}
1
+ {"version":3,"file":"cloudevents.esm.js","sources":["../../src/utils/validateAttribute.ts","../../src/utils/cloudevent.ts","../../node_modules/nanoid/index.browser.js","../../src/utils/fetchNodeEnv.ts"],"sourcesContent":["export enum Permitted {\r\n\tNUMBER = 'number',\r\n\tSTRING = 'string',\r\n\tUNDEFINED = 'undefined',\r\n}\r\n\r\ninterface ValidateAttributeProps {\r\n\tdeprecated?: boolean\r\n\tname: string\r\n\tpermitted?: Permitted[]\r\n\tvalue: any\r\n}\r\n\r\nexport const validateAttribute = ({ deprecated = false, name, permitted = [], value }: ValidateAttributeProps) => {\r\n\tif (deprecated) { console.warn(`Cloudevent \"${name}\" is depricated`) }\r\n\r\n\tif (permitted.length >= 1 && !permitted.includes(typeof value as any)) {\r\n\t\tconst message = `Cloudevent \"${name}\" must be of type ${permitted.map(s => s.toUpperCase()).sort().join(' or ')}.`\r\n\t\tthrow new Error(message)\r\n\t}\r\n\r\n\treturn value\r\n}\r\n","import { Permitted, validateAttribute } from './validateAttribute.js'\r\nimport { fetchNodeEnv } from './fetchNodeEnv.js'\r\nimport { nanoid } from 'nanoid'\r\n\r\nexport interface CloudeventProps {\r\n\t// * Cloudevent v1 props\r\n\tdata?: Cloudevent['data']\r\n\tdatacontenttype?: Cloudevent['datacontenttype']\r\n\tdataschema?: Cloudevent['dataschema']\r\n\tsource?: Cloudevent['source']\r\n\tspecversion?: Cloudevent['specversion']\r\n\tsubject?: Cloudevent['subject']\r\n\ttype: Cloudevent['type']\r\n\r\n\t// * In-house extension props\r\n\tactor?: Cloudevent['actor']\r\n\twschannelid?: Cloudevent['wschannelid']\r\n\r\n\t// * In-house helpers\r\n\torigin?: Cloudevent\r\n}\r\n\r\nexport class Cloudevent {\r\n\t// * Cloudevents v1 fields\r\n\treadonly data?: any\r\n\treadonly datacontenttype?: string\r\n\treadonly dataschema?: string\r\n\treadonly id: string\r\n\treadonly source: string\r\n\treadonly specversion: string\r\n\treadonly subject?: string\r\n\treadonly time: string\r\n\treadonly type: string\r\n\r\n\t// * In-house extensions\r\n\treadonly actor?: string\r\n\treadonly wschannelid?: string\r\n\r\n\t// * In-house origin extensions\r\n\treadonly originid: Cloudevent['id']\r\n\treadonly originsource: Cloudevent['source']\r\n\treadonly origintime: Cloudevent['time']\r\n\treadonly origintype: Cloudevent['type']\r\n\r\n\tconstructor({\r\n\t\tactor,\r\n\t\tdata,\r\n\t\tdatacontenttype,\r\n\t\tdataschema,\r\n\t\torigin,\r\n\t\tsource,\r\n\t\tspecversion,\r\n\t\tsubject,\r\n\t\ttype,\r\n\t\twschannelid,\r\n\t}: CloudeventProps) {\r\n\t\t// *******\r\n\t\t// * Required fields by Cloudevent v1 specification\r\n\t\tconst idValue = 'ce_' + nanoid(33)\r\n\t\tthis.id = validateAttribute({\r\n\t\t\tname: 'id',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: idValue\r\n\t\t})\r\n\r\n\t\tconst sourceValue = source ?? fetchNodeEnv('MILL_CLOUDEVENTS_SOURCE')\r\n\t\tthis.source = validateAttribute({\r\n\t\t\tname: 'source',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: sourceValue\r\n\t\t})\r\n\r\n\t\tthis.type = validateAttribute({\r\n\t\t\tname: 'type',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: type\r\n\t\t})\r\n\r\n\t\tconst specversionValue = specversion ?? '1.0'\r\n\t\tthis.specversion = validateAttribute({\r\n\t\t\tname: 'specversion',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: specversionValue\r\n\t\t})\r\n\r\n\t\tconst timeValue = new Date().toISOString()\r\n\t\tthis.time = validateAttribute({\r\n\t\t\tname: 'time',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: timeValue\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Optional fields by Cloudevent v1 specification\r\n\t\tconst dataValue = datacontenttype === undefined ? JSON.stringify(data) : data\r\n\t\tthis.data = validateAttribute({\r\n\t\t\tname: 'data',\r\n\t\t\tvalue: dataValue\r\n\t\t})\r\n\r\n\t\tconst datacontenttypeValue = this.data\r\n\t\t\t? datacontenttype ?? 'application/json'\r\n\t\t\t: datacontenttype\r\n\t\tthis.datacontenttype = validateAttribute({\r\n\t\t\tname: 'datacontenttype',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: datacontenttypeValue\r\n\t\t})\r\n\r\n\t\tthis.dataschema = validateAttribute({\r\n\t\t\tname: 'dataschema',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: dataschema\r\n\t\t})\r\n\r\n\t\tthis.subject = validateAttribute({\r\n\t\t\tname: 'subject',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: subject\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Optional in-house extentions\r\n\t\tthis.actor = validateAttribute({\r\n\t\t\tname: 'actor',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: actor,\r\n\t\t})\r\n\r\n\t\tthis.wschannelid = validateAttribute({\r\n\t\t\tname: 'wschannelid',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: wschannelid,\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Origin in-house extentions\r\n\t\tconst originidValue = origin?.originid ?? this.id\r\n\t\tthis.originid = validateAttribute({\r\n\t\t\tname: 'originid',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: originidValue,\r\n\t\t})\r\n\r\n\t\tconst originsourceValue = origin?.originsource ?? this.source\r\n\t\tthis.originsource = validateAttribute({\r\n\t\t\tname: 'originsource',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: originsourceValue,\r\n\t\t})\r\n\r\n\t\tconst origintimeValue = origin?.origintime ?? this.time\r\n\t\tthis.origintime = validateAttribute({\r\n\t\t\tname: 'origintime',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: origintimeValue,\r\n\t\t})\r\n\r\n\t\tconst origintypeValue = origin?.origintype ?? this.type\r\n\t\tthis.origintype = validateAttribute({\r\n\t\t\tname: 'origintype',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: origintypeValue,\r\n\t\t})\r\n\t\t// *******\r\n\t}\r\n}\r\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","export const fetchNodeEnv = (name: string, fallbackValue?: any) => {\r\n\tif (typeof process === 'undefined') { return }\r\n\treturn process.env[name] || fallbackValue\r\n}\r\n"],"names":["Permitted","validateAttribute","deprecated","name","permitted","value","console","warn","length","includes","message","map","s","toUpperCase","sort","join","Error","Cloudevent","constructor","actor","data","datacontenttype","dataschema","origin","source","specversion","subject","type","wschannelid","_origin$originid","_origin$originsource","_origin$origintime","_origin$origintype","this","id","time","originid","originsource","origintime","origintype","idValue","size","crypto","getRandomValues","Uint8Array","reduce","byte","toString","nanoid","STRING","fallbackValue","process","env","fetchNodeEnv","sourceValue","timeValue","Date","toISOString","dataValue","undefined","JSON","stringify","UNDEFINED","originidValue","originsourceValue","origintimeValue","origintypeValue"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cloudevents.umd.js","sources":["../../src/utils/validateAttribute.ts","../../src/utils/cloudevent.ts","../../node_modules/nanoid/index.browser.js","../../src/utils/fetchNodeEnv.ts"],"sourcesContent":["export enum Permitted {\r\n\tNUMBER = 'number',\r\n\tSTRING = 'string',\r\n\tUNDEFINED = 'undefined',\r\n}\r\n\r\ninterface ValidateAttributeProps {\r\n\tdeprecated?: boolean\r\n\tname: string\r\n\tpermitted?: Permitted[]\r\n\tvalue: any\r\n}\r\n\r\nexport const validateAttribute = ({ deprecated = false, name, permitted = [], value }: ValidateAttributeProps) => {\r\n\tif (deprecated) { console.warn(`Cloudevent \"${name}\" is depricated`) }\r\n\r\n\tif (permitted.length >= 1 && !permitted.includes(typeof value as any)) {\r\n\t\tconst message = `Cloudevent \"${name}\" must be of type ${permitted.map(s => s.toUpperCase()).sort().join(' or ')}.`\r\n\t\tthrow new Error(message)\r\n\t}\r\n\r\n\treturn value\r\n}\r\n","import { Permitted, validateAttribute } from './validateAttribute.js'\r\nimport { fetchNodeEnv } from './fetchNodeEnv.js'\r\nimport { nanoid } from 'nanoid'\r\n\r\nexport interface CloudeventProps {\r\n\t// * Cloudevent v1 props\r\n\tdata?: Cloudevent['data']\r\n\tdatacontenttype?: Cloudevent['datacontenttype']\r\n\tdataschema?: Cloudevent['dataschema']\r\n\tsource?: Cloudevent['source']\r\n\tspecversion?: Cloudevent['specversion']\r\n\tsubject?: Cloudevent['subject']\r\n\ttype: Cloudevent['type']\r\n\r\n\t// * In-house extension props\r\n\tactor?: Cloudevent['actor']\r\n\twschannelid?: Cloudevent['wschannelid']\r\n\r\n\t// * In-house helpers\r\n\torigin?: Cloudevent\r\n}\r\n\r\nexport class Cloudevent {\r\n\t// * Cloudevents v1 fields\r\n\treadonly data?: any\r\n\treadonly datacontenttype?: string\r\n\treadonly dataschema?: string\r\n\treadonly id: string\r\n\treadonly source: string\r\n\treadonly specversion: string\r\n\treadonly subject?: string\r\n\treadonly time: string\r\n\treadonly type: string\r\n\r\n\t// * In-house extensions\r\n\treadonly actor?: string\r\n\treadonly wschannelid?: string\r\n\r\n\t// * In-house origin extensions\r\n\treadonly originid: Cloudevent['id']\r\n\treadonly originsource: Cloudevent['source']\r\n\treadonly origintime: Cloudevent['time']\r\n\treadonly origintype: Cloudevent['type']\r\n\r\n\tconstructor({\r\n\t\tactor,\r\n\t\tdata,\r\n\t\tdatacontenttype,\r\n\t\tdataschema,\r\n\t\torigin,\r\n\t\tsource,\r\n\t\tspecversion,\r\n\t\tsubject,\r\n\t\ttype,\r\n\t\twschannelid,\r\n\t}: CloudeventProps) {\r\n\t\t// *******\r\n\t\t// * Required fields by Cloudevent v1 specification\r\n\t\tconst idValue = 'ce_' + nanoid(33)\r\n\t\tthis.id = validateAttribute({\r\n\t\t\tname: 'id',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: idValue\r\n\t\t})\r\n\r\n\t\tconst sourceValue = source ?? fetchNodeEnv('MILL_CLOUDEVENTS_SOURCE')\r\n\t\tthis.source = validateAttribute({\r\n\t\t\tname: 'source',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: sourceValue\r\n\t\t})\r\n\r\n\t\tthis.type = validateAttribute({\r\n\t\t\tname: 'type',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: type\r\n\t\t})\r\n\r\n\t\tconst specversionValue = specversion ?? '1.0'\r\n\t\tthis.specversion = validateAttribute({\r\n\t\t\tname: 'specversion',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: specversionValue\r\n\t\t})\r\n\r\n\t\tconst timeValue = new Date().toISOString()\r\n\t\tthis.time = validateAttribute({\r\n\t\t\tname: 'time',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: timeValue\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Optional fields by Cloudevent v1 specification\r\n\t\tconst dataValue = datacontenttype === undefined ? JSON.stringify(data) : data\r\n\t\tthis.data = validateAttribute({\r\n\t\t\tname: 'data',\r\n\t\t\tvalue: dataValue\r\n\t\t})\r\n\r\n\t\tconst datacontenttypeValue = this.data\r\n\t\t\t? datacontenttype ?? 'application/json'\r\n\t\t\t: datacontenttype\r\n\t\tthis.datacontenttype = validateAttribute({\r\n\t\t\tname: 'datacontenttype',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: datacontenttypeValue\r\n\t\t})\r\n\r\n\t\tthis.dataschema = validateAttribute({\r\n\t\t\tname: 'dataschema',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: dataschema\r\n\t\t})\r\n\r\n\t\tthis.subject = validateAttribute({\r\n\t\t\tname: 'subject',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: subject\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Optional in-house extentions\r\n\t\tthis.actor = validateAttribute({\r\n\t\t\tname: 'actor',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: actor,\r\n\t\t})\r\n\r\n\t\tthis.wschannelid = validateAttribute({\r\n\t\t\tname: 'wschannelid',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: wschannelid,\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Origin in-house extentions\r\n\t\tconst originidValue = origin?.originid ?? this.id\r\n\t\tthis.originid = validateAttribute({\r\n\t\t\tname: 'originid',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: originidValue,\r\n\t\t})\r\n\r\n\t\tconst originsourceValue = origin?.originsource ?? this.source\r\n\t\tthis.originsource = validateAttribute({\r\n\t\t\tname: 'originsource',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: originsourceValue,\r\n\t\t})\r\n\r\n\t\tconst origintimeValue = origin?.origintime ?? this.time\r\n\t\tthis.origintime = validateAttribute({\r\n\t\t\tname: 'origintime',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: origintimeValue,\r\n\t\t})\r\n\r\n\t\tconst origintypeValue = origin?.origintype ?? this.type\r\n\t\tthis.origintype = validateAttribute({\r\n\t\t\tname: 'origintype',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: origintypeValue,\r\n\t\t})\r\n\t\t// *******\r\n\t}\r\n}\r\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","export const fetchNodeEnv = (name: string, fallbackValue?: any) => {\r\n\tif (typeof process === 'undefined') { return }\r\n\treturn process.env[name] || fallbackValue\r\n}\r\n"],"names":["Permitted","validateAttribute","_ref","_ref$deprecated","deprecated","name","_ref$permitted","permitted","value","console","warn","length","includes","map","s","toUpperCase","sort","join","Error","message","actor","data","datacontenttype","dataschema","origin","source","specversion","subject","type","wschannelid","this","id","time","originid","originsource","origintime","origintype","idValue","size","crypto","getRandomValues","Uint8Array","reduce","byte","toString","nanoid","STRING","sourceValue","fallbackValue","process","env","fetchNodeEnv","timeValue","Date","toISOString","dataValue","undefined","JSON","stringify","UNDEFINED","originidValue","_origin$originid","originsourceValue","_origin$originsource","origintimeValue","_origin$origintime","origintypeValue","_origin$origintype"],"mappings":"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"}
1
+ {"version":3,"file":"cloudevents.umd.js","sources":["../../src/utils/validateAttribute.ts","../../src/utils/cloudevent.ts","../../node_modules/nanoid/index.browser.js","../../src/utils/fetchNodeEnv.ts"],"sourcesContent":["export enum Permitted {\r\n\tNUMBER = 'number',\r\n\tSTRING = 'string',\r\n\tUNDEFINED = 'undefined',\r\n}\r\n\r\ninterface ValidateAttributeProps {\r\n\tdeprecated?: boolean\r\n\tname: string\r\n\tpermitted?: Permitted[]\r\n\tvalue: any\r\n}\r\n\r\nexport const validateAttribute = ({ deprecated = false, name, permitted = [], value }: ValidateAttributeProps) => {\r\n\tif (deprecated) { console.warn(`Cloudevent \"${name}\" is depricated`) }\r\n\r\n\tif (permitted.length >= 1 && !permitted.includes(typeof value as any)) {\r\n\t\tconst message = `Cloudevent \"${name}\" must be of type ${permitted.map(s => s.toUpperCase()).sort().join(' or ')}.`\r\n\t\tthrow new Error(message)\r\n\t}\r\n\r\n\treturn value\r\n}\r\n","import { Permitted, validateAttribute } from './validateAttribute.js'\r\nimport { fetchNodeEnv } from './fetchNodeEnv.js'\r\nimport { nanoid } from 'nanoid'\r\n\r\nexport interface CloudeventProps {\r\n\t// * Cloudevent v1 props\r\n\tdata?: Cloudevent['data']\r\n\tdatacontenttype?: Cloudevent['datacontenttype']\r\n\tdataschema?: Cloudevent['dataschema']\r\n\tsource?: Cloudevent['source']\r\n\tspecversion?: Cloudevent['specversion']\r\n\tsubject?: Cloudevent['subject']\r\n\ttype: Cloudevent['type']\r\n\r\n\t// * In-house extension props\r\n\tactor?: Cloudevent['actor']\r\n\twschannelid?: Cloudevent['wschannelid']\r\n\r\n\t// * In-house helpers\r\n\torigin?: Cloudevent\r\n}\r\n\r\nexport class Cloudevent {\r\n\t// * Cloudevents v1 fields\r\n\treadonly data?: any\r\n\treadonly datacontenttype?: string\r\n\treadonly dataschema?: string\r\n\treadonly id: string\r\n\treadonly source: string\r\n\treadonly specversion: string\r\n\treadonly subject?: string\r\n\treadonly time: string\r\n\treadonly type: string\r\n\r\n\t// * In-house extensions\r\n\treadonly actor?: string\r\n\treadonly wschannelid?: string\r\n\r\n\t// * In-house origin extensions\r\n\treadonly originid: Cloudevent['id']\r\n\treadonly originsource: Cloudevent['source']\r\n\treadonly origintime: Cloudevent['time']\r\n\treadonly origintype: Cloudevent['type']\r\n\r\n\tconstructor({\r\n\t\tactor,\r\n\t\tdata,\r\n\t\tdatacontenttype,\r\n\t\tdataschema,\r\n\t\torigin,\r\n\t\tsource,\r\n\t\tspecversion,\r\n\t\tsubject,\r\n\t\ttype,\r\n\t\twschannelid,\r\n\t}: CloudeventProps) {\r\n\t\t// *******\r\n\t\t// * Required fields by Cloudevent v1 specification\r\n\t\tconst idValue = 'ce_' + nanoid(33)\r\n\t\tthis.id = validateAttribute({\r\n\t\t\tname: 'id',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: idValue\r\n\t\t})\r\n\r\n\t\tconst sourceValue = source ?? fetchNodeEnv('MILL_CLOUDEVENTS_SOURCE')\r\n\t\tthis.source = validateAttribute({\r\n\t\t\tname: 'source',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: sourceValue\r\n\t\t})\r\n\r\n\t\tthis.type = validateAttribute({\r\n\t\t\tname: 'type',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: type\r\n\t\t})\r\n\r\n\t\tconst specversionValue = specversion ?? '1.0'\r\n\t\tthis.specversion = validateAttribute({\r\n\t\t\tname: 'specversion',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: specversionValue\r\n\t\t})\r\n\r\n\t\tconst timeValue = new Date().toISOString()\r\n\t\tthis.time = validateAttribute({\r\n\t\t\tname: 'time',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: timeValue\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Optional fields by Cloudevent v1 specification\r\n\t\tconst dataValue = datacontenttype === undefined ? JSON.stringify(data) : data\r\n\t\tthis.data = validateAttribute({\r\n\t\t\tname: 'data',\r\n\t\t\tvalue: dataValue\r\n\t\t})\r\n\r\n\t\tconst datacontenttypeValue = this.data\r\n\t\t\t? datacontenttype ?? 'application/json'\r\n\t\t\t: datacontenttype\r\n\t\tthis.datacontenttype = validateAttribute({\r\n\t\t\tname: 'datacontenttype',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: datacontenttypeValue\r\n\t\t})\r\n\r\n\t\tthis.dataschema = validateAttribute({\r\n\t\t\tname: 'dataschema',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: dataschema\r\n\t\t})\r\n\r\n\t\tthis.subject = validateAttribute({\r\n\t\t\tname: 'subject',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: subject\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Optional in-house extentions\r\n\t\tthis.actor = validateAttribute({\r\n\t\t\tname: 'actor',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: actor,\r\n\t\t})\r\n\r\n\t\tthis.wschannelid = validateAttribute({\r\n\t\t\tname: 'wschannelid',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: wschannelid,\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Origin in-house extentions\r\n\t\tconst originidValue = origin?.originid ?? this.id\r\n\t\tthis.originid = validateAttribute({\r\n\t\t\tname: 'originid',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: originidValue,\r\n\t\t})\r\n\r\n\t\tconst originsourceValue = origin?.originsource ?? this.source\r\n\t\tthis.originsource = validateAttribute({\r\n\t\t\tname: 'originsource',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: originsourceValue,\r\n\t\t})\r\n\r\n\t\tconst origintimeValue = origin?.origintime ?? this.time\r\n\t\tthis.origintime = validateAttribute({\r\n\t\t\tname: 'origintime',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: origintimeValue,\r\n\t\t})\r\n\r\n\t\tconst origintypeValue = origin?.origintype ?? this.type\r\n\t\tthis.origintype = validateAttribute({\r\n\t\t\tname: 'origintype',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: origintypeValue,\r\n\t\t})\r\n\t\t// *******\r\n\t}\r\n}\r\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","export const fetchNodeEnv = (name: string, fallbackValue?: any) => {\r\n\tif (typeof process === 'undefined') { return }\r\n\treturn process.env[name] || fallbackValue\r\n}\r\n"],"names":["Permitted","validateAttribute","_ref","_ref$deprecated","deprecated","name","_ref$permitted","permitted","value","console","warn","length","includes","map","s","toUpperCase","sort","join","Error","message","actor","data","datacontenttype","dataschema","origin","source","specversion","subject","type","wschannelid","this","id","time","originid","originsource","origintime","origintype","idValue","size","crypto","getRandomValues","Uint8Array","reduce","byte","toString","nanoid","STRING","sourceValue","fallbackValue","process","env","fetchNodeEnv","timeValue","Date","toISOString","dataValue","undefined","JSON","stringify","UNDEFINED","originidValue","_origin$originid","originsourceValue","_origin$originsource","origintimeValue","_origin$origintime","origintypeValue","_origin$origintype"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1mill/cloudevents",
3
- "version": "5.1.0",
3
+ "version": "5.1.1",
4
4
  "description": "Node cloudevents specification and helper",
5
5
  "source": "./src/index.ts",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};