@1mill/cloudevents 4.0.1 → 4.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.
- package/CHANGELOG.md +22 -0
- package/README.md +49 -53
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.modern.js +1 -1
- package/dist/index.modern.js.map +1 -1
- package/dist/index.module.js +1 -1
- package/dist/index.module.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +10 -4
- package/src/index.js +106 -37
- package/src/tests/data.test.js +29 -0
- package/src/tests/datacontenttype.test.js +77 -0
- package/src/tests/dataschema.test.js +39 -0
- package/src/tests/id.test.js +45 -0
- package/src/tests/originatorid.test.js +39 -0
- package/src/tests/originid.test.js +40 -0
- package/src/tests/originsource.test.js +40 -0
- package/src/tests/origintime.test.js +39 -0
- package/src/tests/origintype.test.js +40 -0
- package/src/tests/source.test.js +63 -0
- package/src/tests/specversion.test.js +41 -0
- package/src/tests/subjest.test.js +39 -0
- package/src/tests/time.test.js +36 -0
- package/src/tests/type.test.js +39 -0
- package/src/unit.test.js +92 -0
- package/src/utils/fetchNodeEnv/index.js +4 -0
- package/src/utils/fetchNodeEnv/unit.test.js +55 -0
- package/src/utils/setAttribute/index.js +7 -0
- package/src/utils/setAttribute/unit.test.js +43 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Changelog for @1mill/cloudevents
|
|
2
|
+
|
|
3
|
+
## 4.1.1
|
|
4
|
+
|
|
5
|
+
* Improve formatting of code.
|
|
6
|
+
* Update `README.md`.
|
|
7
|
+
|
|
8
|
+
## 4.1.0
|
|
9
|
+
|
|
10
|
+
* Add new optional `originatorid` attribute.
|
|
11
|
+
* Add unit tests for every Cloudevent attribute (e.g. `id`, `data`, `originid`, etc.) using `mocha`, `sinon`, and `chai`.
|
|
12
|
+
* Update `nanoid@^3.3.4`
|
|
13
|
+
|
|
14
|
+
## 4.0.1
|
|
15
|
+
|
|
16
|
+
* Check that `process.env` be defined before using it to fix compatability issue with browsers.
|
|
17
|
+
* Replace `require` with `import`.
|
|
18
|
+
|
|
19
|
+
## 4.0.0
|
|
20
|
+
|
|
21
|
+
* Bundle package with `microbundle@^0.14.2` to build Browser and Node compatable versions.
|
|
22
|
+
* Change pacakge to `"type": "module"`.
|
package/README.md
CHANGED
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
This is an implementation and extention of the [CloudEvents v1 specification](https://github.com/cloudevents/spec) to easily build cloudevents with origin history.
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
## Install
|
|
9
8
|
|
|
10
9
|
```html
|
|
11
|
-
<script src="https://unpkg.com/@1mill/cloudevents@4.
|
|
10
|
+
<script src="https://unpkg.com/@1mill/cloudevents@4.1.1/dist/index.umd.js">
|
|
12
11
|
```
|
|
13
12
|
|
|
14
13
|
or
|
|
@@ -21,72 +20,69 @@ npm install @1mill/cloudevents@^4
|
|
|
21
20
|
const { Cloudevent } = require('@1mill/cloudevents') // CommonJs
|
|
22
21
|
import { Cloudevent } from '@1mill/cloudevents' // EMS
|
|
23
22
|
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
source: 'https://www.my-website.com/my/page/123', // * Required
|
|
30
|
-
subject: '123',
|
|
31
|
-
type: 'cmd.do-this-command.v0', // * Required
|
|
23
|
+
const originCloudevent = new Cloudevent({
|
|
24
|
+
data: JSON.stringify({ some: 'payload' }),
|
|
25
|
+
source: 'https://github.com/1mill/cloudevents',
|
|
26
|
+
type: 'cmd.do-this-command.v0',
|
|
27
|
+
originatorid: 'user.id.1234',
|
|
32
28
|
})
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
//
|
|
36
|
-
//
|
|
37
|
-
// source: 'https://www.my-website.come/my/page/123',
|
|
29
|
+
console.log(originCloudevent)
|
|
30
|
+
// {
|
|
31
|
+
// id: 'f_2R8OyOtfYW4YPs2SOdv',
|
|
32
|
+
// source: 'https://github.com/1mill/cloudevents',
|
|
38
33
|
// type: 'cmd.do-this-command.v0',
|
|
39
34
|
// specversion: '1.0',
|
|
40
|
-
//
|
|
35
|
+
// time: '2022-09-16T03:47:47.310Z',
|
|
36
|
+
// data: '{"some":"payload"}',
|
|
41
37
|
// datacontenttype: 'application/json',
|
|
42
38
|
// dataschema: undefined,
|
|
43
|
-
// subject:
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
//
|
|
48
|
-
//
|
|
39
|
+
// subject: undefined,
|
|
40
|
+
// origintime: '2022-09-16T03:47:47.310Z',
|
|
41
|
+
// originid: 'f_2R8OyOtfYW4YPs2SOdv',
|
|
42
|
+
// originsource: 'https://github.com/1mill/cloudevents',
|
|
43
|
+
// origintype: 'cmd.do-this-command.v0',
|
|
44
|
+
// originatorid: 'user.id.1234'
|
|
49
45
|
// }
|
|
50
46
|
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
type: 'fct.this-thing-happened.v0',
|
|
47
|
+
const enrichedCloudevent = new Cloudevent({
|
|
48
|
+
...originCloudevent,
|
|
49
|
+
data: JSON.stringify({ new: 'payload', value: true }),
|
|
50
|
+
source: 'https://www.erikekberg.com/',
|
|
51
|
+
type: 'fct.this-thing-happened.v0',
|
|
57
52
|
})
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
// source: 'arn:aws:lambda:us-east-1:123456789012:function:my-function',
|
|
53
|
+
console.log(enrichedCloudevent)
|
|
54
|
+
// {
|
|
55
|
+
// id: 'mux85XsamwvGkDFgeElQy',
|
|
56
|
+
// source: 'https://www.erikekberg.com/',
|
|
63
57
|
// type: 'fct.this-thing-happened.v0',
|
|
64
58
|
// specversion: '1.0',
|
|
65
|
-
//
|
|
59
|
+
// time: '2022-09-16T03:47:47.320Z',
|
|
60
|
+
// data: '{"new":"payload","value":true}',
|
|
66
61
|
// datacontenttype: 'application/json',
|
|
67
62
|
// dataschema: undefined,
|
|
68
|
-
// subject:
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
//
|
|
63
|
+
// subject: undefined,
|
|
64
|
+
// origintime: '2022-09-16T03:47:47.310Z',
|
|
65
|
+
// originid: 'f_2R8OyOtfYW4YPs2SOdv',
|
|
66
|
+
// originsource: 'https://github.com/1mill/cloudevents',
|
|
67
|
+
// origintype: 'cmd.do-this-command.v0',
|
|
68
|
+
// originatorid: 'user.id.1234'
|
|
74
69
|
// }
|
|
75
70
|
```
|
|
76
71
|
|
|
77
|
-
|
|
|
78
|
-
|
|
79
|
-
| data
|
|
80
|
-
| datacontenttype
|
|
81
|
-
| dataschema
|
|
82
|
-
| source
|
|
83
|
-
| specversion
|
|
84
|
-
| subject
|
|
85
|
-
| type
|
|
86
|
-
|
|
|
87
|
-
|
|
|
88
|
-
|
|
|
89
|
-
| origintype
|
|
72
|
+
| | Required | Type | Default | Notes |
|
|
73
|
+
|----------------- |---------- |-------- |------------------------------------- |------------------------------------------------------------------------------------------ |
|
|
74
|
+
| data | | Any | | |
|
|
75
|
+
| datacontenttype | | String | | If "data" is present, defaults to "application/json" unless specified otherwise |
|
|
76
|
+
| dataschema | | String | | |
|
|
77
|
+
| source | yes | String | process.env.MILL_CLOUDEVENTS_SOURCE | Recommended to use universal identifier (e.g. <https://my-domain.com/my/feature/path/123>)|
|
|
78
|
+
| specversion | yes | String | 1.0 | Cloudevent specification version |
|
|
79
|
+
| subject | | String | | |
|
|
80
|
+
| type | yes | String | | |
|
|
81
|
+
| originid | yes | String | "id" property | "id" property is internally generated as part of the package |
|
|
82
|
+
| originsource | yes | String | "source" property | |
|
|
83
|
+
| origintime | yes | String | "time" property | "time" property is internally generated as part of the package |
|
|
84
|
+
| origintype | yes | String | "type" property | |
|
|
85
|
+
| originatorid | | String | | |
|
|
90
86
|
|
|
91
87
|
## Release new version
|
|
92
88
|
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var e=require("nanoid"),n=function(e,n){if("undefined"!=typeof process)return process.env[e]||n},t=function(e){var n=e.cloudevent,t=e.name,i=e.types,a=void 0===i?[]:i,o=e.value;if(a.length>0&&!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)}n[t]=o};exports.Cloudevent=function(i){var a=i.data,o=i.datacontenttype,r=i.dataschema,u=i.originatorid,s=i.originid,v=i.originsource,d=i.origintime,c=i.origintype,l=i.source,p=i.specversion,g=i.subject,y=i.type,m=this,f=e.nanoid(n("MILL_CLOUDEVENTS_NANOID_LENGTH",21));t({cloudevent:m,name:"id",types:["string"],value:f});var E=l||n("MILL_CLOUDEVENTS_SOURCE");t({cloudevent:m,name:"source",types:["string"],value:E});var L=y;t({cloudevent:m,name:"type",types:["string"],value:L}),t({cloudevent:m,name:"specversion",types:["string"],value:p||"1.0"});var C=(new Date).toISOString();t({cloudevent:m,name:"time",types:["string"],value:C}),t({cloudevent:m,name:"data",value:a}),t({cloudevent:m,name:"datacontenttype",types:["string","undefined"],value:void 0!==a?o||"application/json":o}),t({cloudevent:m,name:"dataschema",types:["string","undefined"],value:r}),t({cloudevent:m,name:"subject",types:["string","undefined"],value:g}),t({cloudevent:m,name:"origintime",types:["string"],value:d||C}),t({cloudevent:m,name:"originid",types:["string"],value:s||f}),t({cloudevent:m,name:"originsource",types:["string"],value:v||E}),t({cloudevent:m,name:"origintype",types:["string"],value:c||L}),t({cloudevent:m,name:"originatorid",types:["string","undefined"],value:u})};
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/index.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/utils/fetchNodeEnv/index.js","../src/utils/setAttribute/index.js","../src/index.js"],"sourcesContent":["export const fetchNodeEnv = (name, fallbackValue) => {\r\n\tif (typeof process === 'undefined') { return }\r\n\treturn process.env[name] || fallbackValue\r\n}\r\n","export const setAttribute = ({ cloudevent, name, types = [], value }) => {\r\n\tif (types.length > 0 && !types.includes(typeof value)) {\r\n\t\tconst message = `Cloudevent \"${name}\" must be of type ${types.map(s => s.toUpperCase()).sort().join(' or ')}.`\r\n\t\tthrow new Error(message)\r\n\t}\r\n\tcloudevent[name] = value\r\n}\r\n","import { fetchNodeEnv } from './utils/fetchNodeEnv/index.js'\r\nimport { nanoid } from 'nanoid'\r\nimport { setAttribute } from './utils/setAttribute/index.js'\r\n\r\nexport class Cloudevent {\r\n\tconstructor({\r\n\t\tdata,\r\n\t\tdatacontenttype,\r\n\t\tdataschema,\r\n\t\toriginatorid,\r\n\t\toriginid,\r\n\t\toriginsource,\r\n\t\torigintime,\r\n\t\torigintype,\r\n\t\tsource,\r\n\t\tspecversion,\r\n\t\tsubject,\r\n\t\ttype,\r\n\t}) {\r\n\t\tconst cloudevent = this\r\n\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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'id',\r\n\t\t\ttypes: ['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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'source',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: sourceValue\r\n\t\t})\r\n\r\n\t\tconst typeValue = type\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'type',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: typeValue\r\n\t\t})\r\n\r\n\t\tconst specversionValue = specversion || '1.0'\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'specversion',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: specversionValue\r\n\t\t})\r\n\r\n\t\tconst timeValue = new Date().toISOString()\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'time',\r\n\t\t\ttypes: ['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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'data',\r\n\t\t\tvalue: data\r\n\t\t})\r\n\r\n\t\tconst datacontenttypeValue = typeof data !== 'undefined'\r\n\t\t\t? datacontenttype || 'application/json'\r\n\t\t\t: datacontenttype\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'datacontenttype',\r\n\t\t\ttypes: ['string', 'undefined'],\r\n\t\t\tvalue: datacontenttypeValue\r\n\t\t})\r\n\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'dataschema',\r\n\t\t\ttypes: ['string', 'undefined'],\r\n\t\t\tvalue: dataschema\r\n\t\t})\r\n\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'subject',\r\n\t\t\ttypes: ['string', '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// * Required in-house extentions\r\n\t\tconst origintimeValue = origintime || timeValue\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'origintime',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: origintimeValue\r\n\t\t})\r\n\r\n\t\tconst originidValue = originid || idValue\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'originid',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: originidValue\r\n\t\t})\r\n\r\n\t\tconst originsourceValue = originsource || sourceValue\r\n\t\tsetAttribute({ cloudevent, name: 'originsource', types: ['string'], value: originsourceValue })\r\n\r\n\t\tconst origintypeValue = origintype || typeValue\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'origintype',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: origintypeValue\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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'originatorid',\r\n\t\t\ttypes: ['string', 'undefined'],\r\n\t\t\tvalue: originatorid\r\n\t\t})\r\n\t\t// *******\r\n\t}\r\n}\r\n"],"names":["fetchNodeEnv","name","fallbackValue","process","env","setAttribute","cloudevent","types","value","length","includes","message","map","s","toUpperCase","sort","join","Error","data","datacontenttype","dataschema","originatorid","originid","originsource","origintime","origintype","source","specversion","subject","type","this","idValue","nanoid","sourceValue","typeValue","timeValue","Date","toISOString"],"mappings":"wBAAaA,EAAe,SAACC,EAAMC,GAClC,GAAuB,oBAAZC,QACX,OAAOA,QAAQC,IAAIH,IAASC,CAC5B,ECHYG,EAAe,gBAAGC,IAAAA,WAAYL,IAAAA,SAAMM,MAAAA,aAAQ,KAAIC,IAAAA,MAC5D,GAAID,EAAME,OAAS,IAAMF,EAAMG,gBAAgBF,GAAQ,CACtD,IAAMG,iBAAyBV,uBAAyBM,EAAMK,IAAI,SAAAC,UAAKA,EAAEC,aAAN,GAAqBC,OAAOC,KAAK,YACpG,UAAUC,MAAMN,EAChB,CACDL,EAAWL,GAAQO,CACnB,qBCDA,gBACCU,IAAAA,KACAC,IAAAA,gBACAC,IAAAA,WACAC,IAAAA,aACAC,IAAAA,SACAC,IAAAA,aACAC,IAAAA,WACAC,IAAAA,WACAC,IAAAA,OACAC,IAAAA,YACAC,IAAAA,QACAC,IAAAA,KAEMvB,EAAawB,KAIbC,EAAUC,SAAOhC,EAAa,iCAAkC,KACtEK,EAAa,CACZC,WAAAA,EACAL,KAAM,KACNM,MAAO,CAAC,UACRC,MAAOuB,IAGR,IAAME,EAAcP,GAAU1B,EAAa,2BAC3CK,EAAa,CACZC,WAAAA,EACAL,KAAM,SACNM,MAAO,CAAC,UACRC,MAAOyB,IAGR,IAAMC,EAAYL,EAClBxB,EAAa,CACZC,WAAAA,EACAL,KAAM,OACNM,MAAO,CAAC,UACRC,MAAO0B,IAIR7B,EAAa,CACZC,WAAAA,EACAL,KAAM,cACNM,MAAO,CAAC,UACRC,MALwBmB,GAAe,QAQxC,IAAMQ,GAAY,IAAIC,MAAOC,cAC7BhC,EAAa,CACZC,WAAAA,EACAL,KAAM,OACNM,MAAO,CAAC,UACRC,MAAO2B,IAMR9B,EAAa,CACZC,WAAAA,EACAL,KAAM,OACNO,MAAOU,IAMRb,EAAa,CACZC,WAAAA,EACAL,KAAM,kBACNM,MAAO,CAAC,SAAU,aAClBC,WAP4C,IAATU,EACjCC,GAAmB,mBACnBA,IAQHd,EAAa,CACZC,WAAAA,EACAL,KAAM,aACNM,MAAO,CAAC,SAAU,aAClBC,MAAOY,IAGRf,EAAa,CACZC,WAAAA,EACAL,KAAM,UACNM,MAAO,CAAC,SAAU,aAClBC,MAAOoB,IAORvB,EAAa,CACZC,WAAAA,EACAL,KAAM,aACNM,MAAO,CAAC,UACRC,MALuBgB,GAAcW,IAStC9B,EAAa,CACZC,WAAAA,EACAL,KAAM,WACNM,MAAO,CAAC,UACRC,MALqBc,GAAYS,IASlC1B,EAAa,CAAEC,WAAAA,EAAYL,KAAM,eAAgBM,MAAO,CAAC,UAAWC,MAD1Ce,GAAgBU,IAI1C5B,EAAa,CACZC,WAAAA,EACAL,KAAM,aACNM,MAAO,CAAC,UACRC,MALuBiB,GAAcS,IAWtC7B,EAAa,CACZC,WAAAA,EACAL,KAAM,eACNM,MAAO,CAAC,SAAU,aAClBC,MAAOa,GAGR"}
|
package/dist/index.modern.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
1
|
+
const e=(e,t)=>{if("undefined"!=typeof process)return process.env[e]||t},t=({cloudevent:e,name:t,types:n=[],value:o})=>{if(n.length>0&&!n.includes(typeof o)){const e=`Cloudevent "${t}" must be of type ${n.map(e=>e.toUpperCase()).sort().join(" or ")}.`;throw new Error(e)}e[t]=o};class n{constructor({data:n,datacontenttype:o,dataschema:i,originatorid:s,originid:a,originsource:r,origintime:u,origintype:c,source:d,specversion:l,subject:p,type:v}){const g=this,y=((e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((e,t)=>e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_"),""))(e("MILL_CLOUDEVENTS_NANOID_LENGTH",21));t({cloudevent:g,name:"id",types:["string"],value:y});const m=d||e("MILL_CLOUDEVENTS_SOURCE");t({cloudevent:g,name:"source",types:["string"],value:m});const f=v;t({cloudevent:g,name:"type",types:["string"],value:f}),t({cloudevent:g,name:"specversion",types:["string"],value:l||"1.0"});const E=(new Date).toISOString();t({cloudevent:g,name:"time",types:["string"],value:E}),t({cloudevent:g,name:"data",value:n}),t({cloudevent:g,name:"datacontenttype",types:["string","undefined"],value:void 0!==n?o||"application/json":o}),t({cloudevent:g,name:"dataschema",types:["string","undefined"],value:i}),t({cloudevent:g,name:"subject",types:["string","undefined"],value:p}),t({cloudevent:g,name:"origintime",types:["string"],value:u||E}),t({cloudevent:g,name:"originid",types:["string"],value:a||y}),t({cloudevent:g,name:"originsource",types:["string"],value:r||m}),t({cloudevent:g,name:"origintype",types:["string"],value:c||f}),t({cloudevent:g,name:"originatorid",types:["string","undefined"],value:s})}}export{n as Cloudevent};
|
|
2
2
|
//# sourceMappingURL=index.modern.js.map
|
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/index.js","../node_modules/nanoid/index.
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/utils/fetchNodeEnv/index.js","../src/utils/setAttribute/index.js","../src/index.js","../node_modules/nanoid/index.browser.js"],"sourcesContent":["export const fetchNodeEnv = (name, fallbackValue) => {\r\n\tif (typeof process === 'undefined') { return }\r\n\treturn process.env[name] || fallbackValue\r\n}\r\n","export const setAttribute = ({ cloudevent, name, types = [], value }) => {\r\n\tif (types.length > 0 && !types.includes(typeof value)) {\r\n\t\tconst message = `Cloudevent \"${name}\" must be of type ${types.map(s => s.toUpperCase()).sort().join(' or ')}.`\r\n\t\tthrow new Error(message)\r\n\t}\r\n\tcloudevent[name] = value\r\n}\r\n","import { fetchNodeEnv } from './utils/fetchNodeEnv/index.js'\r\nimport { nanoid } from 'nanoid'\r\nimport { setAttribute } from './utils/setAttribute/index.js'\r\n\r\nexport class Cloudevent {\r\n\tconstructor({\r\n\t\tdata,\r\n\t\tdatacontenttype,\r\n\t\tdataschema,\r\n\t\toriginatorid,\r\n\t\toriginid,\r\n\t\toriginsource,\r\n\t\torigintime,\r\n\t\torigintype,\r\n\t\tsource,\r\n\t\tspecversion,\r\n\t\tsubject,\r\n\t\ttype,\r\n\t}) {\r\n\t\tconst cloudevent = this\r\n\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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'id',\r\n\t\t\ttypes: ['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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'source',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: sourceValue\r\n\t\t})\r\n\r\n\t\tconst typeValue = type\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'type',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: typeValue\r\n\t\t})\r\n\r\n\t\tconst specversionValue = specversion || '1.0'\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'specversion',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: specversionValue\r\n\t\t})\r\n\r\n\t\tconst timeValue = new Date().toISOString()\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'time',\r\n\t\t\ttypes: ['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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'data',\r\n\t\t\tvalue: data\r\n\t\t})\r\n\r\n\t\tconst datacontenttypeValue = typeof data !== 'undefined'\r\n\t\t\t? datacontenttype || 'application/json'\r\n\t\t\t: datacontenttype\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'datacontenttype',\r\n\t\t\ttypes: ['string', 'undefined'],\r\n\t\t\tvalue: datacontenttypeValue\r\n\t\t})\r\n\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'dataschema',\r\n\t\t\ttypes: ['string', 'undefined'],\r\n\t\t\tvalue: dataschema\r\n\t\t})\r\n\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'subject',\r\n\t\t\ttypes: ['string', '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// * Required in-house extentions\r\n\t\tconst origintimeValue = origintime || timeValue\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'origintime',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: origintimeValue\r\n\t\t})\r\n\r\n\t\tconst originidValue = originid || idValue\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'originid',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: originidValue\r\n\t\t})\r\n\r\n\t\tconst originsourceValue = originsource || sourceValue\r\n\t\tsetAttribute({ cloudevent, name: 'originsource', types: ['string'], value: originsourceValue })\r\n\r\n\t\tconst origintypeValue = origintype || typeValue\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'origintype',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: origintypeValue\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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'originatorid',\r\n\t\t\ttypes: ['string', 'undefined'],\r\n\t\t\tvalue: originatorid\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"],"names":["fetchNodeEnv","name","fallbackValue","process","env","setAttribute","cloudevent","types","value","length","includes","message","map","s","toUpperCase","sort","join","Error","Cloudevent","constructor","data","datacontenttype","dataschema","originatorid","originid","originsource","origintime","origintype","source","specversion","subject","type","this","idValue","size","crypto","getRandomValues","Uint8Array","reduce","id","byte","toString","nanoid","sourceValue","typeValue","timeValue","Date","toISOString"],"mappings":"MAAaA,EAAe,CAACC,EAAMC,KAClC,GAAuB,oBAAZC,QACX,OAAOA,QAAQC,IAAIH,IAASC,GCFhBG,EAAe,EAAGC,aAAYL,OAAMM,MAAAA,EAAQ,GAAIC,YAC5D,GAAID,EAAME,OAAS,IAAMF,EAAMG,gBAAgBF,GAAQ,CACtD,MAAMG,EAAW,eAAcV,sBAAyBM,EAAMK,IAAIC,GAAKA,EAAEC,eAAeC,OAAOC,KAAK,WACpG,UAAUC,MAAMN,EAChB,CACDL,EAAWL,GAAQO,SCDPU,EACZC,aAAYC,KACXA,EADWC,gBAEXA,EAFWC,WAGXA,EAHWC,aAIXA,EAJWC,SAKXA,EALWC,aAMXA,EANWC,WAOXA,EAPWC,WAQXA,EARWC,OASXA,EATWC,YAUXA,EAVWC,QAWXA,EAXWC,KAYXA,IAEA,MAAMzB,EAAa0B,KAIbC,ECJK,EAACC,EAAO,KACnBC,OAAOC,gBAAgB,IAAIC,WAAWH,IAAOI,OAAO,CAACC,EAAIC,IAGrDD,IAFFC,GAAQ,IACG,GACHA,EAAKC,SAAS,IACXD,EAAO,IACTA,EAAO,IAAIC,SAAS,IAAI3B,cACtB0B,EAAO,GACV,IAEA,KAGP,IDTaE,CAAO1C,EAAa,iCAAkC,KACtEK,EAAa,CACZC,aACAL,KAAM,KACNM,MAAO,CAAC,UACRC,MAAOyB,IAGR,MAAMU,EAAcf,GAAU5B,EAAa,2BAC3CK,EAAa,CACZC,aACAL,KAAM,SACNM,MAAO,CAAC,UACRC,MAAOmC,IAGR,MAAMC,EAAYb,EAClB1B,EAAa,CACZC,aACAL,KAAM,OACNM,MAAO,CAAC,UACRC,MAAOoC,IAIRvC,EAAa,CACZC,aACAL,KAAM,cACNM,MAAO,CAAC,UACRC,MALwBqB,GAAe,QAQxC,MAAMgB,GAAY,IAAIC,MAAOC,cAC7B1C,EAAa,CACZC,aACAL,KAAM,OACNM,MAAO,CAAC,UACRC,MAAOqC,IAMRxC,EAAa,CACZC,aACAL,KAAM,OACNO,MAAOY,IAMRf,EAAa,CACZC,aACAL,KAAM,kBACNM,MAAO,CAAC,SAAU,aAClBC,WAP4C,IAATY,EACjCC,GAAmB,mBACnBA,IAQHhB,EAAa,CACZC,aACAL,KAAM,aACNM,MAAO,CAAC,SAAU,aAClBC,MAAOc,IAGRjB,EAAa,CACZC,aACAL,KAAM,UACNM,MAAO,CAAC,SAAU,aAClBC,MAAOsB,IAORzB,EAAa,CACZC,aACAL,KAAM,aACNM,MAAO,CAAC,UACRC,MALuBkB,GAAcmB,IAStCxC,EAAa,CACZC,aACAL,KAAM,WACNM,MAAO,CAAC,UACRC,MALqBgB,GAAYS,IASlC5B,EAAa,CAAEC,aAAYL,KAAM,eAAgBM,MAAO,CAAC,UAAWC,MAD1CiB,GAAgBkB,IAI1CtC,EAAa,CACZC,aACAL,KAAM,aACNM,MAAO,CAAC,UACRC,MALuBmB,GAAciB,IAWtCvC,EAAa,CACZC,aACAL,KAAM,eACNM,MAAO,CAAC,SAAU,aAClBC,MAAOe,GAGR"}
|
package/dist/index.module.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{nanoid as
|
|
1
|
+
import{nanoid as e}from"nanoid";var n=function(e,n){if("undefined"!=typeof process)return process.env[e]||n},t=function(e){var n=e.cloudevent,t=e.name,i=e.types,o=void 0===i?[]:i,a=e.value;if(o.length>0&&!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)}n[t]=a},i=function(i){var o=i.data,a=i.datacontenttype,r=i.dataschema,u=i.originatorid,s=i.originid,v=i.originsource,d=i.origintime,c=i.origintype,l=i.source,p=i.specversion,g=i.subject,m=i.type,y=this,f=e(n("MILL_CLOUDEVENTS_NANOID_LENGTH",21));t({cloudevent:y,name:"id",types:["string"],value:f});var E=l||n("MILL_CLOUDEVENTS_SOURCE");t({cloudevent:y,name:"source",types:["string"],value:E});var L=m;t({cloudevent:y,name:"type",types:["string"],value:L}),t({cloudevent:y,name:"specversion",types:["string"],value:p||"1.0"});var h=(new Date).toISOString();t({cloudevent:y,name:"time",types:["string"],value:h}),t({cloudevent:y,name:"data",value:o}),t({cloudevent:y,name:"datacontenttype",types:["string","undefined"],value:void 0!==o?a||"application/json":a}),t({cloudevent:y,name:"dataschema",types:["string","undefined"],value:r}),t({cloudevent:y,name:"subject",types:["string","undefined"],value:g}),t({cloudevent:y,name:"origintime",types:["string"],value:d||h}),t({cloudevent:y,name:"originid",types:["string"],value:s||f}),t({cloudevent:y,name:"originsource",types:["string"],value:v||E}),t({cloudevent:y,name:"origintype",types:["string"],value:c||L}),t({cloudevent:y,name:"originatorid",types:["string","undefined"],value:u})};export{i as Cloudevent};
|
|
2
2
|
//# sourceMappingURL=index.module.js.map
|
package/dist/index.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.js","sources":["../src/index.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"index.module.js","sources":["../src/utils/fetchNodeEnv/index.js","../src/utils/setAttribute/index.js","../src/index.js"],"sourcesContent":["export const fetchNodeEnv = (name, fallbackValue) => {\r\n\tif (typeof process === 'undefined') { return }\r\n\treturn process.env[name] || fallbackValue\r\n}\r\n","export const setAttribute = ({ cloudevent, name, types = [], value }) => {\r\n\tif (types.length > 0 && !types.includes(typeof value)) {\r\n\t\tconst message = `Cloudevent \"${name}\" must be of type ${types.map(s => s.toUpperCase()).sort().join(' or ')}.`\r\n\t\tthrow new Error(message)\r\n\t}\r\n\tcloudevent[name] = value\r\n}\r\n","import { fetchNodeEnv } from './utils/fetchNodeEnv/index.js'\r\nimport { nanoid } from 'nanoid'\r\nimport { setAttribute } from './utils/setAttribute/index.js'\r\n\r\nexport class Cloudevent {\r\n\tconstructor({\r\n\t\tdata,\r\n\t\tdatacontenttype,\r\n\t\tdataschema,\r\n\t\toriginatorid,\r\n\t\toriginid,\r\n\t\toriginsource,\r\n\t\torigintime,\r\n\t\torigintype,\r\n\t\tsource,\r\n\t\tspecversion,\r\n\t\tsubject,\r\n\t\ttype,\r\n\t}) {\r\n\t\tconst cloudevent = this\r\n\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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'id',\r\n\t\t\ttypes: ['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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'source',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: sourceValue\r\n\t\t})\r\n\r\n\t\tconst typeValue = type\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'type',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: typeValue\r\n\t\t})\r\n\r\n\t\tconst specversionValue = specversion || '1.0'\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'specversion',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: specversionValue\r\n\t\t})\r\n\r\n\t\tconst timeValue = new Date().toISOString()\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'time',\r\n\t\t\ttypes: ['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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'data',\r\n\t\t\tvalue: data\r\n\t\t})\r\n\r\n\t\tconst datacontenttypeValue = typeof data !== 'undefined'\r\n\t\t\t? datacontenttype || 'application/json'\r\n\t\t\t: datacontenttype\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'datacontenttype',\r\n\t\t\ttypes: ['string', 'undefined'],\r\n\t\t\tvalue: datacontenttypeValue\r\n\t\t})\r\n\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'dataschema',\r\n\t\t\ttypes: ['string', 'undefined'],\r\n\t\t\tvalue: dataschema\r\n\t\t})\r\n\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'subject',\r\n\t\t\ttypes: ['string', '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// * Required in-house extentions\r\n\t\tconst origintimeValue = origintime || timeValue\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'origintime',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: origintimeValue\r\n\t\t})\r\n\r\n\t\tconst originidValue = originid || idValue\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'originid',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: originidValue\r\n\t\t})\r\n\r\n\t\tconst originsourceValue = originsource || sourceValue\r\n\t\tsetAttribute({ cloudevent, name: 'originsource', types: ['string'], value: originsourceValue })\r\n\r\n\t\tconst origintypeValue = origintype || typeValue\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'origintype',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: origintypeValue\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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'originatorid',\r\n\t\t\ttypes: ['string', 'undefined'],\r\n\t\t\tvalue: originatorid\r\n\t\t})\r\n\t\t// *******\r\n\t}\r\n}\r\n"],"names":["fetchNodeEnv","name","fallbackValue","process","env","setAttribute","cloudevent","types","value","length","includes","message","map","s","toUpperCase","sort","join","Error","Cloudevent","data","datacontenttype","dataschema","originatorid","originid","originsource","origintime","origintype","source","specversion","subject","type","this","idValue","nanoid","sourceValue","typeValue","timeValue","Date","toISOString"],"mappings":"oCAAaA,EAAe,SAACC,EAAMC,GAClC,GAAuB,oBAAZC,QACX,OAAOA,QAAQC,IAAIH,IAASC,CAC5B,ECHYG,EAAe,gBAAGC,IAAAA,WAAYL,IAAAA,SAAMM,MAAAA,aAAQ,KAAIC,IAAAA,MAC5D,GAAID,EAAME,OAAS,IAAMF,EAAMG,gBAAgBF,GAAQ,CACtD,IAAMG,iBAAyBV,uBAAyBM,EAAMK,IAAI,SAAAC,UAAKA,EAAEC,aAAN,GAAqBC,OAAOC,KAAK,YACpG,UAAUC,MAAMN,EAChB,CACDL,EAAWL,GAAQO,CACnB,ECFYU,EACZ,gBACCC,IAAAA,KACAC,IAAAA,gBACAC,IAAAA,WACAC,IAAAA,aACAC,IAAAA,SACAC,IAAAA,aACAC,IAAAA,WACAC,IAAAA,WACAC,IAAAA,OACAC,IAAAA,YACAC,IAAAA,QACAC,IAAAA,KAEMxB,EAAayB,KAIbC,EAAUC,EAAOjC,EAAa,iCAAkC,KACtEK,EAAa,CACZC,WAAAA,EACAL,KAAM,KACNM,MAAO,CAAC,UACRC,MAAOwB,IAGR,IAAME,EAAcP,GAAU3B,EAAa,2BAC3CK,EAAa,CACZC,WAAAA,EACAL,KAAM,SACNM,MAAO,CAAC,UACRC,MAAO0B,IAGR,IAAMC,EAAYL,EAClBzB,EAAa,CACZC,WAAAA,EACAL,KAAM,OACNM,MAAO,CAAC,UACRC,MAAO2B,IAIR9B,EAAa,CACZC,WAAAA,EACAL,KAAM,cACNM,MAAO,CAAC,UACRC,MALwBoB,GAAe,QAQxC,IAAMQ,GAAY,IAAIC,MAAOC,cAC7BjC,EAAa,CACZC,WAAAA,EACAL,KAAM,OACNM,MAAO,CAAC,UACRC,MAAO4B,IAMR/B,EAAa,CACZC,WAAAA,EACAL,KAAM,OACNO,MAAOW,IAMRd,EAAa,CACZC,WAAAA,EACAL,KAAM,kBACNM,MAAO,CAAC,SAAU,aAClBC,WAP4C,IAATW,EACjCC,GAAmB,mBACnBA,IAQHf,EAAa,CACZC,WAAAA,EACAL,KAAM,aACNM,MAAO,CAAC,SAAU,aAClBC,MAAOa,IAGRhB,EAAa,CACZC,WAAAA,EACAL,KAAM,UACNM,MAAO,CAAC,SAAU,aAClBC,MAAOqB,IAORxB,EAAa,CACZC,WAAAA,EACAL,KAAM,aACNM,MAAO,CAAC,UACRC,MALuBiB,GAAcW,IAStC/B,EAAa,CACZC,WAAAA,EACAL,KAAM,WACNM,MAAO,CAAC,UACRC,MALqBe,GAAYS,IASlC3B,EAAa,CAAEC,WAAAA,EAAYL,KAAM,eAAgBM,MAAO,CAAC,UAAWC,MAD1CgB,GAAgBU,IAI1C7B,EAAa,CACZC,WAAAA,EACAL,KAAM,aACNM,MAAO,CAAC,UACRC,MALuBkB,GAAcS,IAWtC9B,EAAa,CACZC,WAAAA,EACAL,KAAM,eACNM,MAAO,CAAC,SAAU,aAClBC,MAAOc,GAGR"}
|
package/dist/index.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e||self).cloudevents={})}(this,function(e){var n=function(e,n){if("undefined"!=typeof process)return process.env[e]||n},t=function(e){var n=e.cloudevent,t=e.name,o=e.types,i=void 0===o?[]:o,a=e.value;if(i.length>0&&!i.includes(typeof a)){var r='Cloudevent "'+t+'" must be of type '+i.map(function(e){return e.toUpperCase()}).sort().join(" or ")+".";throw new Error(r)}n[t]=a};e.Cloudevent=function(e){var o=e.data,i=e.datacontenttype,a=e.dataschema,r=e.originatorid,u=e.originid,s=e.originsource,d=e.origintime,v=e.origintype,l=e.source,c=e.specversion,p=e.subject,g=e.type,y=this,f=((e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((e,n)=>e+((n&=63)<36?n.toString(36):n<62?(n-26).toString(36).toUpperCase():n>62?"-":"_"),""))(n("MILL_CLOUDEVENTS_NANOID_LENGTH",21));t({cloudevent:y,name:"id",types:["string"],value:f});var m=l||n("MILL_CLOUDEVENTS_SOURCE");t({cloudevent:y,name:"source",types:["string"],value:m});var h=g;t({cloudevent:y,name:"type",types:["string"],value:h}),t({cloudevent:y,name:"specversion",types:["string"],value:c||"1.0"});var C=(new Date).toISOString();t({cloudevent:y,name:"time",types:["string"],value:C}),t({cloudevent:y,name:"data",value:o}),t({cloudevent:y,name:"datacontenttype",types:["string","undefined"],value:void 0!==o?i||"application/json":i}),t({cloudevent:y,name:"dataschema",types:["string","undefined"],value:a}),t({cloudevent:y,name:"subject",types:["string","undefined"],value:p}),t({cloudevent:y,name:"origintime",types:["string"],value:d||C}),t({cloudevent:y,name:"originid",types:["string"],value:u||f}),t({cloudevent:y,name:"originsource",types:["string"],value:s||m}),t({cloudevent:y,name:"origintype",types:["string"],value:v||h}),t({cloudevent:y,name:"originatorid",types:["string","undefined"],value:r})}});
|
|
2
2
|
//# sourceMappingURL=index.umd.js.map
|
package/dist/index.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../src/index.js","../node_modules/nanoid/index.
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../src/utils/fetchNodeEnv/index.js","../src/utils/setAttribute/index.js","../src/index.js","../node_modules/nanoid/index.browser.js"],"sourcesContent":["export const fetchNodeEnv = (name, fallbackValue) => {\r\n\tif (typeof process === 'undefined') { return }\r\n\treturn process.env[name] || fallbackValue\r\n}\r\n","export const setAttribute = ({ cloudevent, name, types = [], value }) => {\r\n\tif (types.length > 0 && !types.includes(typeof value)) {\r\n\t\tconst message = `Cloudevent \"${name}\" must be of type ${types.map(s => s.toUpperCase()).sort().join(' or ')}.`\r\n\t\tthrow new Error(message)\r\n\t}\r\n\tcloudevent[name] = value\r\n}\r\n","import { fetchNodeEnv } from './utils/fetchNodeEnv/index.js'\r\nimport { nanoid } from 'nanoid'\r\nimport { setAttribute } from './utils/setAttribute/index.js'\r\n\r\nexport class Cloudevent {\r\n\tconstructor({\r\n\t\tdata,\r\n\t\tdatacontenttype,\r\n\t\tdataschema,\r\n\t\toriginatorid,\r\n\t\toriginid,\r\n\t\toriginsource,\r\n\t\torigintime,\r\n\t\torigintype,\r\n\t\tsource,\r\n\t\tspecversion,\r\n\t\tsubject,\r\n\t\ttype,\r\n\t}) {\r\n\t\tconst cloudevent = this\r\n\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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'id',\r\n\t\t\ttypes: ['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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'source',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: sourceValue\r\n\t\t})\r\n\r\n\t\tconst typeValue = type\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'type',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: typeValue\r\n\t\t})\r\n\r\n\t\tconst specversionValue = specversion || '1.0'\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'specversion',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: specversionValue\r\n\t\t})\r\n\r\n\t\tconst timeValue = new Date().toISOString()\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'time',\r\n\t\t\ttypes: ['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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'data',\r\n\t\t\tvalue: data\r\n\t\t})\r\n\r\n\t\tconst datacontenttypeValue = typeof data !== 'undefined'\r\n\t\t\t? datacontenttype || 'application/json'\r\n\t\t\t: datacontenttype\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'datacontenttype',\r\n\t\t\ttypes: ['string', 'undefined'],\r\n\t\t\tvalue: datacontenttypeValue\r\n\t\t})\r\n\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'dataschema',\r\n\t\t\ttypes: ['string', 'undefined'],\r\n\t\t\tvalue: dataschema\r\n\t\t})\r\n\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'subject',\r\n\t\t\ttypes: ['string', '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// * Required in-house extentions\r\n\t\tconst origintimeValue = origintime || timeValue\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'origintime',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: origintimeValue\r\n\t\t})\r\n\r\n\t\tconst originidValue = originid || idValue\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'originid',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: originidValue\r\n\t\t})\r\n\r\n\t\tconst originsourceValue = originsource || sourceValue\r\n\t\tsetAttribute({ cloudevent, name: 'originsource', types: ['string'], value: originsourceValue })\r\n\r\n\t\tconst origintypeValue = origintype || typeValue\r\n\t\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'origintype',\r\n\t\t\ttypes: ['string'],\r\n\t\t\tvalue: origintypeValue\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\tsetAttribute({\r\n\t\t\tcloudevent,\r\n\t\t\tname: 'originatorid',\r\n\t\t\ttypes: ['string', 'undefined'],\r\n\t\t\tvalue: originatorid\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"],"names":["fetchNodeEnv","name","fallbackValue","process","env","setAttribute","cloudevent","types","value","length","includes","message","map","s","toUpperCase","sort","join","Error","data","datacontenttype","dataschema","originatorid","originid","originsource","origintime","origintype","source","specversion","subject","type","this","idValue","size","crypto","getRandomValues","Uint8Array","reduce","id","byte","toString","nanoid","sourceValue","typeValue","timeValue","Date","toISOString"],"mappings":"yOAAaA,EAAe,SAACC,EAAMC,GAClC,GAAuB,oBAAZC,QACX,OAAOA,QAAQC,IAAIH,IAASC,CAC5B,ECHYG,EAAe,gBAAGC,IAAAA,WAAYL,IAAAA,SAAMM,MAAAA,aAAQ,KAAIC,IAAAA,MAC5D,GAAID,EAAME,OAAS,IAAMF,EAAMG,gBAAgBF,GAAQ,CACtD,IAAMG,iBAAyBV,uBAAyBM,EAAMK,IAAI,SAAAC,UAAKA,EAAEC,aAAN,GAAqBC,OAAOC,KAAK,YACpG,UAAUC,MAAMN,EAChB,CACDL,EAAWL,GAAQO,CACnB,eCDA,gBACCU,IAAAA,KACAC,IAAAA,gBACAC,IAAAA,WACAC,IAAAA,aACAC,IAAAA,SACAC,IAAAA,aACAC,IAAAA,WACAC,IAAAA,WACAC,IAAAA,OACAC,IAAAA,YACAC,IAAAA,QACAC,IAAAA,KAEMvB,EAAawB,KAIbC,ECJK,EAACC,EAAO,KACnBC,OAAOC,gBAAgB,IAAIC,WAAWH,IAAOI,OAAO,CAACC,EAAIC,IAGrDD,IAFFC,GAAQ,IACG,GACHA,EAAKC,SAAS,IACXD,EAAO,IACTA,EAAO,IAAIC,SAAS,IAAIzB,cACtBwB,EAAO,GACV,IAEA,KAGP,IDTaE,CAAOxC,EAAa,iCAAkC,KACtEK,EAAa,CACZC,WAAAA,EACAL,KAAM,KACNM,MAAO,CAAC,UACRC,MAAOuB,IAGR,IAAMU,EAAcf,GAAU1B,EAAa,2BAC3CK,EAAa,CACZC,WAAAA,EACAL,KAAM,SACNM,MAAO,CAAC,UACRC,MAAOiC,IAGR,IAAMC,EAAYb,EAClBxB,EAAa,CACZC,WAAAA,EACAL,KAAM,OACNM,MAAO,CAAC,UACRC,MAAOkC,IAIRrC,EAAa,CACZC,WAAAA,EACAL,KAAM,cACNM,MAAO,CAAC,UACRC,MALwBmB,GAAe,QAQxC,IAAMgB,GAAY,IAAIC,MAAOC,cAC7BxC,EAAa,CACZC,WAAAA,EACAL,KAAM,OACNM,MAAO,CAAC,UACRC,MAAOmC,IAMRtC,EAAa,CACZC,WAAAA,EACAL,KAAM,OACNO,MAAOU,IAMRb,EAAa,CACZC,WAAAA,EACAL,KAAM,kBACNM,MAAO,CAAC,SAAU,aAClBC,WAP4C,IAATU,EACjCC,GAAmB,mBACnBA,IAQHd,EAAa,CACZC,WAAAA,EACAL,KAAM,aACNM,MAAO,CAAC,SAAU,aAClBC,MAAOY,IAGRf,EAAa,CACZC,WAAAA,EACAL,KAAM,UACNM,MAAO,CAAC,SAAU,aAClBC,MAAOoB,IAORvB,EAAa,CACZC,WAAAA,EACAL,KAAM,aACNM,MAAO,CAAC,UACRC,MALuBgB,GAAcmB,IAStCtC,EAAa,CACZC,WAAAA,EACAL,KAAM,WACNM,MAAO,CAAC,UACRC,MALqBc,GAAYS,IASlC1B,EAAa,CAAEC,WAAAA,EAAYL,KAAM,eAAgBM,MAAO,CAAC,UAAWC,MAD1Ce,GAAgBkB,IAI1CpC,EAAa,CACZC,WAAAA,EACAL,KAAM,aACNM,MAAO,CAAC,UACRC,MALuBiB,GAAciB,IAWtCrC,EAAa,CACZC,WAAAA,EACAL,KAAM,eACNM,MAAO,CAAC,SAAU,aAClBC,MAAOa,GAGR"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1mill/cloudevents",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.1",
|
|
4
4
|
"description": "Node cloudevents specification and helper",
|
|
5
5
|
"jsnext:main": "dist/index.module.js",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
"build:browser": "microbundle --format modern,umd --external none",
|
|
19
19
|
"build:node": "microbundle --format cjs,esm",
|
|
20
20
|
"deploy": "npm run build && npm publish",
|
|
21
|
-
"dev": "microbundle watch"
|
|
21
|
+
"dev": "microbundle watch",
|
|
22
|
+
"test:unit": "mocha \"src/**/*.test.js\" --recursive"
|
|
22
23
|
},
|
|
23
24
|
"homepage": "https://github.com/1mill/cloudevents",
|
|
24
25
|
"authors": [
|
|
@@ -30,9 +31,14 @@
|
|
|
30
31
|
"url": "https://github.com/1mill/cloudevents.git"
|
|
31
32
|
},
|
|
32
33
|
"dependencies": {
|
|
33
|
-
"nanoid": "^3.
|
|
34
|
+
"nanoid": "^3.3.4"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
|
-
"
|
|
37
|
+
"chai": "^4.3.6",
|
|
38
|
+
"chai-iso8601": "^1.0.0",
|
|
39
|
+
"chai-subset": "^1.6.0",
|
|
40
|
+
"microbundle": "^0.14.2",
|
|
41
|
+
"mocha": "^10.0.0",
|
|
42
|
+
"sinon": "^14.0.0"
|
|
37
43
|
}
|
|
38
44
|
}
|