@1mill/cloudevents 5.0.0 → 5.1.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/README.md +30 -30
- package/dist/bundle-browser/cloudevents.esm.js +1 -1
- package/dist/bundle-browser/cloudevents.esm.js.map +1 -1
- package/dist/bundle-browser/cloudevents.umd.js +1 -1
- package/dist/bundle-browser/cloudevents.umd.js.map +1 -1
- package/dist/bundle-node/cloudevents.cjs +1 -1
- package/dist/bundle-node/cloudevents.cjs.map +1 -1
- package/dist/bundle-node/cloudevents.esm.js +1 -1
- package/dist/bundle-node/cloudevents.esm.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -28,21 +28,21 @@ const cloudevent = new Cloudevent({
|
|
|
28
28
|
|
|
29
29
|
console.log(cloudevent)
|
|
30
30
|
// {
|
|
31
|
-
//
|
|
32
|
-
//
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
|
-
//
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
31
|
+
// actor: undefined,
|
|
32
|
+
// data: '{"some":"payload"}',
|
|
33
|
+
// datacontenttype: 'application/json',
|
|
34
|
+
// dataschema: undefined,
|
|
35
|
+
// id: 'ce_z08RP-H06c09gyrLLrIt3c_NYfHj1UDDY',
|
|
36
|
+
// originid: 'ce_z08RP-H06c09gyrLLrIt3c_NYfHj1UDDY',
|
|
37
|
+
// originsource: 'https://github.com/1mill/cloudevents',
|
|
38
|
+
// origintime: '2024-09-08T21:03:36.320Z',
|
|
39
|
+
// origintype: 'cmd.do-this-command.v0',
|
|
40
|
+
// source: 'https://github.com/1mill/cloudevents',
|
|
41
|
+
// specversion: '1.0',
|
|
42
|
+
// subject: undefined,
|
|
43
|
+
// time: '2024-09-08T21:03:36.320Z',
|
|
44
|
+
// type: 'cmd.do-this-command.v0',
|
|
45
|
+
// wschannelid: undefined,
|
|
46
46
|
// }
|
|
47
47
|
|
|
48
48
|
const enrichedCloudevent = new Cloudevent({
|
|
@@ -57,21 +57,21 @@ const enrichedCloudevent = new Cloudevent({
|
|
|
57
57
|
|
|
58
58
|
console.log(enrichedCloudevent)
|
|
59
59
|
// {
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
//
|
|
74
|
-
//
|
|
60
|
+
// actor: 'user#1234',
|
|
61
|
+
// data: '{"new":"payload","value":true}',
|
|
62
|
+
// datacontenttype: 'application/json',
|
|
63
|
+
// dataschema: undefined,
|
|
64
|
+
// id: 'ce_0xy5S_hip8nHwNoLuec1Zmdc1hMzDMDuf',
|
|
65
|
+
// originid: 'ce_z08RP-H06c09gyrLLrIt3c_NYfHj1UDDY',
|
|
66
|
+
// originsource: 'https://github.com/1mill/cloudevents',
|
|
67
|
+
// origintime: '2024-09-08T21:03:36.320Z',
|
|
68
|
+
// origintype: 'cmd.do-this-command.v0',
|
|
69
|
+
// source: 'https://www.erikekberg.com/',
|
|
70
|
+
// specversion: '1.0',
|
|
71
|
+
// subject: 'project#4321',
|
|
72
|
+
// time: '2024-09-08T21:03:36.324Z',
|
|
73
|
+
// type: 'fct.this-thing-happened.v0',
|
|
74
|
+
// wschannelid: 'some-prefix:my-resource-name#id=12345',
|
|
75
75
|
// }
|
|
76
76
|
```
|
|
77
77
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var t;!function(t){t.NUMBER="number",t.STRING="string",t.UNDEFINED="undefined"}(t||(t={}));const e=({deprecated:t=!1,name:e,permitted:i=[],value:n})=>{if(t&&console.warn(`Cloudevent "${e}" is depricated`),i.length>=1&&!i.includes(typeof n)){const t=`Cloudevent "${e}" must be of type ${i.map(t=>t.toUpperCase()).sort().join(" or ")}.`;throw new Error(t)}return n}
|
|
1
|
+
var t;!function(t){t.NUMBER="number",t.STRING="string",t.UNDEFINED="undefined"}(t||(t={}));const e=({deprecated:t=!1,name:e,permitted:i=[],value:n})=>{if(t&&console.warn(`Cloudevent "${e}" is depricated`),i.length>=1&&!i.includes(typeof n)){const t=`Cloudevent "${e}" must be of type ${i.map(t=>t.toUpperCase()).sort().join(" or ")}.`;throw new Error(t)}return n};class i{constructor({actor:i,data:n,datacontenttype:o,dataschema:s,origin:a,source:r,specversion:d,subject:c,type:u,wschannelid:l}){var p,m,v,h;this.data=void 0,this.datacontenttype=void 0,this.dataschema=void 0,this.id=void 0,this.source=void 0,this.specversion=void 0,this.subject=void 0,this.time=void 0,this.type=void 0,this.actor=void 0,this.wschannelid=void 0,this.originid=void 0,this.originsource=void 0,this.origintime=void 0,this.origintype=void 0;const N="ce_"+((t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce((t,e)=>t+((e&=63)<36?e.toString(36):e<62?(e-26).toString(36).toUpperCase():e>62?"-":"_"),""))(33);this.id=e({name:"id",permitted:[t.STRING],value:N});const g=null!=r?r:((t,e)=>{if("undefined"!=typeof process)return process.env.MILL_CLOUDEVENTS_SOURCE||void 0})();this.source=e({name:"source",permitted:[t.STRING],value:g}),this.type=e({name:"type",permitted:[t.STRING],value:u}),this.specversion=e({name:"specversion",permitted:[t.STRING],value:null!=d?d:"1.0"});const I=(new Date).toISOString();this.time=e({name:"time",permitted:[t.STRING],value:I});const S=void 0===o?JSON.stringify(n):n;this.data=e({name:"data",value:S}),this.datacontenttype=e({name:"datacontenttype",permitted:[t.STRING,t.UNDEFINED],value:this.data?null!=o?o:"application/json":o}),this.dataschema=e({name:"dataschema",permitted:[t.STRING,t.UNDEFINED],value:s}),this.subject=e({name:"subject",permitted:[t.STRING,t.UNDEFINED],value:c}),this.actor=e({name:"actor",permitted:[t.STRING,t.UNDEFINED],value:i}),this.wschannelid=e({name:"wschannelid",permitted:[t.STRING,t.UNDEFINED],value:l});const y=null!=(p=null==a?void 0:a.originid)?p:this.id;this.originid=e({name:"originid",permitted:[t.STRING],value:y});const R=null!=(m=null==a?void 0:a.originsource)?m:this.source;this.originsource=e({name:"originsource",permitted:[t.STRING],value:R});const E=null!=(v=null==a?void 0:a.origintime)?v:this.time;this.origintime=e({name:"origintime",permitted:[t.STRING],value:E});const T=null!=(h=null==a?void 0:a.origintype)?h:this.type;this.origintype=e({name:"origintype",permitted:[t.STRING],value:T})}}export{i as Cloudevent};
|
|
2
2
|
//# sourceMappingURL=cloudevents.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudevents.esm.js","sources":["../../src/utils/validateAttribute.ts","../../src/utils/fetchNodeEnv.ts","../../src/utils/cloudevent.ts","../../node_modules/nanoid/index.browser.js","../../node_modules/nanoid/url-alphabet/index.js"],"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","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","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 = nanoid(fetchNodeEnv('MILL_CLOUDEVENTS_NANOID_LENGTH', 21))\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 as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let 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}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array(size))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n","export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n"],"names":["Permitted","validateAttribute","deprecated","name","permitted","value","console","warn","length","includes","message","map","s","toUpperCase","sort","join","Error","fetchNodeEnv","fallbackValue","process","env","Cloudevent","constructor","actor","data","datacontenttype","dataschema","origin","source","specversion","subject","type","wschannelid","this","id","time","originid","originsource","origintime","origintype","idValue","size","bytes","crypto","getRandomValues","Uint8Array","nanoid","STRING","sourceValue","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.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,2 +1,2 @@
|
|
|
1
|
-
!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((e||self).cloudevents={})}(this,function(e){var i;!function(e){e.NUMBER="number",e.STRING="string",e.UNDEFINED="undefined"}(i||(i={}));var t=function(e){var i=e.deprecated,t=e.name,n=e.permitted,o=void 0===n?[]:n,a=e.value;if(void 0!==i&&i&&console.warn('Cloudevent "'+t+'" is depricated'),o.length>=1&&!o.includes(typeof a)){var r='Cloudevent "'+t+'" must be of type '+o.map(function(e){return e.toUpperCase()}).sort().join(" or ")+".";throw new Error(r)}return a}
|
|
1
|
+
!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((e||self).cloudevents={})}(this,function(e){var i;!function(e){e.NUMBER="number",e.STRING="string",e.UNDEFINED="undefined"}(i||(i={}));var t=function(e){var i=e.deprecated,t=e.name,n=e.permitted,o=void 0===n?[]:n,a=e.value;if(void 0!==i&&i&&console.warn('Cloudevent "'+t+'" is depricated'),o.length>=1&&!o.includes(typeof a)){var r='Cloudevent "'+t+'" must be of type '+o.map(function(e){return e.toUpperCase()}).sort().join(" or ")+".";throw new Error(r)}return a};e.Cloudevent=function(e){var n,o,a,r,d=e.actor,s=e.data,u=e.datacontenttype,v=e.dataschema,l=e.origin,p=e.source,c=e.specversion,m=e.subject,h=e.type,N=e.wschannelid;this.data=void 0,this.datacontenttype=void 0,this.dataschema=void 0,this.id=void 0,this.source=void 0,this.specversion=void 0,this.subject=void 0,this.time=void 0,this.type=void 0,this.actor=void 0,this.wschannelid=void 0,this.originid=void 0,this.originsource=void 0,this.origintime=void 0,this.origintype=void 0;var f="ce_"+((e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((e,i)=>e+((i&=63)<36?i.toString(36):i<62?(i-26).toString(36).toUpperCase():i>62?"-":"_"),""))(33);this.id=t({name:"id",permitted:[i.STRING],value:f});var g=null!=p?p:function(e,i){if("undefined"!=typeof process)return process.env.MILL_CLOUDEVENTS_SOURCE||void 0}();this.source=t({name:"source",permitted:[i.STRING],value:g}),this.type=t({name:"type",permitted:[i.STRING],value:h}),this.specversion=t({name:"specversion",permitted:[i.STRING],value:null!=c?c:"1.0"});var y=(new Date).toISOString();this.time=t({name:"time",permitted:[i.STRING],value:y});var I=void 0===u?JSON.stringify(s):s;this.data=t({name:"data",value:I}),this.datacontenttype=t({name:"datacontenttype",permitted:[i.STRING,i.UNDEFINED],value:this.data?null!=u?u:"application/json":u}),this.dataschema=t({name:"dataschema",permitted:[i.STRING,i.UNDEFINED],value:v}),this.subject=t({name:"subject",permitted:[i.STRING,i.UNDEFINED],value:m}),this.actor=t({name:"actor",permitted:[i.STRING,i.UNDEFINED],value:d}),this.wschannelid=t({name:"wschannelid",permitted:[i.STRING,i.UNDEFINED],value:N});var S=null!=(n=null==l?void 0:l.originid)?n:this.id;this.originid=t({name:"originid",permitted:[i.STRING],value:S});var R=null!=(o=null==l?void 0:l.originsource)?o:this.source;this.originsource=t({name:"originsource",permitted:[i.STRING],value:R});var T=null!=(a=null==l?void 0:l.origintime)?a:this.time;this.origintime=t({name:"origintime",permitted:[i.STRING],value:T});var E=null!=(r=null==l?void 0:l.origintype)?r:this.type;this.origintype=t({name:"origintype",permitted:[i.STRING],value:E})}});
|
|
2
2
|
//# sourceMappingURL=cloudevents.umd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudevents.umd.js","sources":["../../src/utils/validateAttribute.ts","../../src/utils/fetchNodeEnv.ts","../../src/utils/cloudevent.ts","../../node_modules/nanoid/index.browser.js","../../node_modules/nanoid/url-alphabet/index.js"],"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","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","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 = nanoid(fetchNodeEnv('MILL_CLOUDEVENTS_NANOID_LENGTH', 21))\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 as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let 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}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array(size))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n","export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n"],"names":["Permitted","validateAttribute","_ref","_ref$deprecated","deprecated","name","_ref$permitted","permitted","value","console","warn","length","includes","map","s","toUpperCase","sort","join","Error","message","fetchNodeEnv","fallbackValue","process","env","actor","data","datacontenttype","dataschema","origin","source","specversion","subject","type","wschannelid","this","id","time","originid","originsource","origintime","origintype","idValue","size","bytes","crypto","getRandomValues","Uint8Array","nanoid","STRING","sourceValue","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\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,2 +1,2 @@
|
|
|
1
|
-
var e;!function(e){e.NUMBER="number",e.STRING="string",e.UNDEFINED="undefined"}(e||(e={}));var
|
|
1
|
+
var e,i=require("nanoid");!function(e){e.NUMBER="number",e.STRING="string",e.UNDEFINED="undefined"}(e||(e={}));var t=function(e){var i=e.deprecated,t=e.name,n=e.permitted,a=void 0===n?[]:n,o=e.value;if(void 0!==i&&i&&console.warn('Cloudevent "'+t+'" is depricated'),a.length>=1&&!a.includes(typeof o)){var r='Cloudevent "'+t+'" must be of type '+a.map(function(e){return e.toUpperCase()}).sort().join(" or ")+".";throw new Error(r)}return o};exports.Cloudevent=function(n){var a,o,r,s,d=n.actor,v=n.data,u=n.datacontenttype,l=n.dataschema,c=n.origin,m=n.source,h=n.specversion,p=n.subject,N=n.type,I=n.wschannelid;this.data=void 0,this.datacontenttype=void 0,this.dataschema=void 0,this.id=void 0,this.source=void 0,this.specversion=void 0,this.subject=void 0,this.time=void 0,this.type=void 0,this.actor=void 0,this.wschannelid=void 0,this.originid=void 0,this.originsource=void 0,this.origintime=void 0,this.origintype=void 0;var g="ce_"+i.nanoid(33);this.id=t({name:"id",permitted:[e.STRING],value:g});var S=null!=m?m:function(e,i){if("undefined"!=typeof process)return process.env.MILL_CLOUDEVENTS_SOURCE||void 0}();this.source=t({name:"source",permitted:[e.STRING],value:S}),this.type=t({name:"type",permitted:[e.STRING],value:N}),this.specversion=t({name:"specversion",permitted:[e.STRING],value:null!=h?h:"1.0"});var y=(new Date).toISOString();this.time=t({name:"time",permitted:[e.STRING],value:y});var E=void 0===u?JSON.stringify(v):v;this.data=t({name:"data",value:E}),this.datacontenttype=t({name:"datacontenttype",permitted:[e.STRING,e.UNDEFINED],value:this.data?null!=u?u:"application/json":u}),this.dataschema=t({name:"dataschema",permitted:[e.STRING,e.UNDEFINED],value:l}),this.subject=t({name:"subject",permitted:[e.STRING,e.UNDEFINED],value:p}),this.actor=t({name:"actor",permitted:[e.STRING,e.UNDEFINED],value:d}),this.wschannelid=t({name:"wschannelid",permitted:[e.STRING,e.UNDEFINED],value:I});var R=null!=(a=null==c?void 0:c.originid)?a:this.id;this.originid=t({name:"originid",permitted:[e.STRING],value:R});var T=null!=(o=null==c?void 0:c.originsource)?o:this.source;this.originsource=t({name:"originsource",permitted:[e.STRING],value:T});var G=null!=(r=null==c?void 0:c.origintime)?r:this.time;this.origintime=t({name:"origintime",permitted:[e.STRING],value:G});var D=null!=(s=null==c?void 0:c.origintype)?s:this.type;this.origintype=t({name:"origintype",permitted:[e.STRING],value:D})};
|
|
2
2
|
//# sourceMappingURL=cloudevents.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudevents.cjs","sources":["../../src/utils/validateAttribute.ts","../../src/utils/fetchNodeEnv.ts","../../src/utils/cloudevent.ts","../../node_modules/nanoid/index.browser.js","../../node_modules/nanoid/url-alphabet/index.js"],"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","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","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 = nanoid(fetchNodeEnv('MILL_CLOUDEVENTS_NANOID_LENGTH', 21))\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 as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let 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}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array(size))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n","export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n"],"names":["Permitted","validateAttribute","_ref","_ref$deprecated","deprecated","name","_ref$permitted","permitted","value","console","warn","length","includes","map","s","toUpperCase","sort","join","Error","message","fetchNodeEnv","fallbackValue","process","env","actor","data","datacontenttype","dataschema","origin","source","specversion","subject","type","wschannelid","this","id","time","originid","originsource","origintime","origintype","idValue","size","bytes","crypto","getRandomValues","Uint8Array","nanoid","STRING","sourceValue","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.cjs","sources":["../../src/utils/validateAttribute.ts","../../src/utils/cloudevent.ts","../../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","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","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,2 +1,2 @@
|
|
|
1
|
-
import{nanoid as i}from"nanoid";var e;!function(i){i.NUMBER="number",i.STRING="string",i.UNDEFINED="undefined"}(e||(e={}));var t=function(i){var e=i.deprecated,t=i.name,n=i.permitted,a=void 0===n?[]:n,o=i.value;if(void 0!==e&&e&&console.warn('Cloudevent "'+t+'" is depricated'),a.length>=1&&!a.includes(typeof o)){var r='Cloudevent "'+t+'" must be of type '+a.map(function(i){return i.toUpperCase()}).sort().join(" or ")+".";throw new Error(r)}return o},n=function(
|
|
1
|
+
import{nanoid as i}from"nanoid";var e;!function(i){i.NUMBER="number",i.STRING="string",i.UNDEFINED="undefined"}(e||(e={}));var t=function(i){var e=i.deprecated,t=i.name,n=i.permitted,a=void 0===n?[]:n,o=i.value;if(void 0!==e&&e&&console.warn('Cloudevent "'+t+'" is depricated'),a.length>=1&&!a.includes(typeof o)){var r='Cloudevent "'+t+'" must be of type '+a.map(function(i){return i.toUpperCase()}).sort().join(" or ")+".";throw new Error(r)}return o},n=function(n){var a,o,r,s,d=n.actor,v=n.data,u=n.datacontenttype,l=n.dataschema,m=n.origin,c=n.source,p=n.specversion,h=n.subject,N=n.type,I=n.wschannelid;this.data=void 0,this.datacontenttype=void 0,this.dataschema=void 0,this.id=void 0,this.source=void 0,this.specversion=void 0,this.subject=void 0,this.time=void 0,this.type=void 0,this.actor=void 0,this.wschannelid=void 0,this.originid=void 0,this.originsource=void 0,this.origintime=void 0,this.origintype=void 0;var g="ce_"+i(33);this.id=t({name:"id",permitted:[e.STRING],value:g});var S=null!=c?c:function(i,e){if("undefined"!=typeof process)return process.env.MILL_CLOUDEVENTS_SOURCE||void 0}();this.source=t({name:"source",permitted:[e.STRING],value:S}),this.type=t({name:"type",permitted:[e.STRING],value:N}),this.specversion=t({name:"specversion",permitted:[e.STRING],value:null!=p?p:"1.0"});var y=(new Date).toISOString();this.time=t({name:"time",permitted:[e.STRING],value:y});var E=void 0===u?JSON.stringify(v):v;this.data=t({name:"data",value:E}),this.datacontenttype=t({name:"datacontenttype",permitted:[e.STRING,e.UNDEFINED],value:this.data?null!=u?u:"application/json":u}),this.dataschema=t({name:"dataschema",permitted:[e.STRING,e.UNDEFINED],value:l}),this.subject=t({name:"subject",permitted:[e.STRING,e.UNDEFINED],value:h}),this.actor=t({name:"actor",permitted:[e.STRING,e.UNDEFINED],value:d}),this.wschannelid=t({name:"wschannelid",permitted:[e.STRING,e.UNDEFINED],value:I});var R=null!=(a=null==m?void 0:m.originid)?a:this.id;this.originid=t({name:"originid",permitted:[e.STRING],value:R});var T=null!=(o=null==m?void 0:m.originsource)?o:this.source;this.originsource=t({name:"originsource",permitted:[e.STRING],value:T});var G=null!=(r=null==m?void 0:m.origintime)?r:this.time;this.origintime=t({name:"origintime",permitted:[e.STRING],value:G});var f=null!=(s=null==m?void 0:m.origintype)?s:this.type;this.origintype=t({name:"origintype",permitted:[e.STRING],value:f})};export{n as Cloudevent};
|
|
2
2
|
//# sourceMappingURL=cloudevents.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudevents.esm.js","sources":["../../src/utils/validateAttribute.ts","../../src/utils/
|
|
1
|
+
{"version":3,"file":"cloudevents.esm.js","sources":["../../src/utils/validateAttribute.ts","../../src/utils/cloudevent.ts","../../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","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","Cloudevent","actor","data","datacontenttype","dataschema","origin","source","specversion","subject","type","wschannelid","this","id","time","originid","originsource","origintime","origintype","idValue","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.
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"description": "Node cloudevents specification and helper",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -17,9 +17,7 @@
|
|
|
17
17
|
"scripts": {
|
|
18
18
|
"build": "rm -rf ./dist && npm run build:browser && npm run build:node",
|
|
19
19
|
"build:browser": "microbundle --format modern,umd --external none --output ./dist/bundle-browser",
|
|
20
|
-
"build:node": "
|
|
21
|
-
"build:node:commonjs": "microbundle --format cjs --external none --output ./dist/bundle-node",
|
|
22
|
-
"build:node:module": "microbundle --format esm --output ./dist/bundle-node",
|
|
20
|
+
"build:node": "microbundle --format cjs,esm --output ./dist/bundle-node",
|
|
23
21
|
"deploy": "npm run build && npm publish",
|
|
24
22
|
"dev": "microbundle watch",
|
|
25
23
|
"test": "npm run test:unit",
|
|
@@ -41,10 +39,11 @@
|
|
|
41
39
|
"url": "git+https://github.com/1mill/cloudevents.git"
|
|
42
40
|
},
|
|
43
41
|
"dependencies": {
|
|
44
|
-
"nanoid": "^
|
|
42
|
+
"nanoid": "^3.3.7"
|
|
45
43
|
},
|
|
46
44
|
"devDependencies": {
|
|
47
45
|
"@types/chai": "^4.3.17",
|
|
46
|
+
"@types/chai-string": "^1.4.5",
|
|
48
47
|
"@types/chai-subset": "^1.3.5",
|
|
49
48
|
"@types/mocha": "^10.0.7",
|
|
50
49
|
"@types/node": "^22.5.1",
|
|
@@ -52,6 +51,7 @@
|
|
|
52
51
|
"@types/sinon-chai": "^3.2.12",
|
|
53
52
|
"chai": "^4.5.0",
|
|
54
53
|
"chai-iso8601": "^1.0.0",
|
|
54
|
+
"chai-string": "^1.5.0",
|
|
55
55
|
"chai-subset": "^1.6.0",
|
|
56
56
|
"microbundle": "^0.15.1",
|
|
57
57
|
"mocha": "^10.7.3",
|