@1mill/cloudevents 4.6.3 → 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 +53 -118
- package/dist/bundle-browser/cloudevents.esm.js +2 -0
- package/dist/bundle-browser/cloudevents.esm.js.map +1 -0
- package/dist/bundle-browser/cloudevents.umd.js +2 -0
- package/dist/bundle-browser/cloudevents.umd.js.map +1 -0
- package/dist/bundle-node/cloudevents.cjs +2 -0
- package/dist/bundle-node/cloudevents.cjs.map +1 -0
- package/dist/bundle-node/cloudevents.esm.js +2 -0
- package/dist/bundle-node/cloudevents.esm.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/tests/constructor/actor.test.d.ts +1 -0
- package/dist/tests/constructor/data.test.d.ts +1 -0
- package/dist/tests/constructor/datacontenttype.test.d.ts +1 -0
- package/dist/tests/constructor/dataschema.test.d.ts +1 -0
- package/dist/tests/constructor/id.test.d.ts +1 -0
- package/dist/tests/constructor/originid.test.d.ts +1 -0
- package/dist/tests/constructor/originsource.test.d.ts +1 -0
- package/dist/tests/constructor/origintime.test.d.ts +1 -0
- package/dist/tests/constructor/origintype.test.d.ts +1 -0
- package/dist/tests/constructor/source.test.d.ts +1 -0
- package/dist/tests/constructor/specversion.test.d.ts +1 -0
- package/dist/tests/constructor/subjest.test.d.ts +1 -0
- package/dist/tests/constructor/time.test.d.ts +1 -0
- package/dist/tests/constructor/type.test.d.ts +1 -0
- package/dist/tests/constructor/wschannelid.test.d.ts +1 -0
- package/dist/utils/cloudevent.d.ts +30 -0
- package/dist/utils/cloudevent.test.d.ts +1 -0
- package/dist/utils/fetchNodeEnv.d.ts +1 -0
- package/dist/utils/fetchNodeEnv.test.d.ts +1 -0
- package/dist/utils/validateAttribute.d.ts +13 -0
- package/dist/utils/validateAttribute.test.d.ts +1 -0
- package/package.json +31 -15
- package/CHANGELOG.md +0 -70
- package/dist/index.cjs +0 -2
- package/dist/index.cjs.map +0 -1
- package/dist/index.modern.js +0 -2
- package/dist/index.modern.js.map +0 -1
- package/dist/index.module.js +0 -2
- package/dist/index.module.js.map +0 -1
- package/dist/index.umd.js +0 -2
- package/dist/index.umd.js.map +0 -1
- package/src/index.js +0 -197
- package/src/tests/constructor/data.test.js +0 -29
- package/src/tests/constructor/datacontenttype.test.js +0 -77
- package/src/tests/constructor/dataschema.test.js +0 -39
- package/src/tests/constructor/id.test.js +0 -45
- package/src/tests/constructor/originactor.test.js +0 -39
- package/src/tests/constructor/originatorid.test.js +0 -39
- package/src/tests/constructor/originid.test.js +0 -40
- package/src/tests/constructor/originsource.test.js +0 -40
- package/src/tests/constructor/origintime.test.js +0 -39
- package/src/tests/constructor/origintype.test.js +0 -40
- package/src/tests/constructor/source.test.js +0 -63
- package/src/tests/constructor/specversion.test.js +0 -41
- package/src/tests/constructor/subjest.test.js +0 -39
- package/src/tests/constructor/time.test.js +0 -36
- package/src/tests/constructor/type.test.js +0 -39
- package/src/tests/constructor/wschannelid.test.js +0 -39
- package/src/tests/methods/origin/originactor.test.js +0 -74
- package/src/tests/methods/origin/originid.test.js +0 -85
- package/src/tests/methods/origin/originsource.test.js +0 -85
- package/src/tests/methods/origin/origintime.test.js +0 -85
- package/src/tests/methods/origin/origintype.test.js +0 -85
- package/src/tests/methods/origin/unit.test.js +0 -13
- package/src/tests/methods/originator/originatorid.test.js +0 -51
- package/src/tests/methods/originator/unit.test.js +0 -10
- package/src/tests/methods/wschannel/unit.test.js +0 -10
- package/src/tests/methods/wschannel/wschannelid.test.js +0 -51
- package/src/unit.test.js +0 -91
- package/src/utils/fetchNodeEnv/index.js +0 -4
- package/src/utils/fetchNodeEnv/unit.test.js +0 -55
- package/src/utils/setAttribute/index.js +0 -10
- package/src/utils/setAttribute/unit.test.js +0 -67
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ This is an implementation and extention of the [CloudEvents v1 specification](ht
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
9
9
|
```html
|
|
10
|
-
<script src="https://unpkg.com/@1mill/cloudevents@
|
|
10
|
+
<script src="https://unpkg.com/@1mill/cloudevents@5/dist/index.umd.js">
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
or
|
|
@@ -17,147 +17,82 @@ npm install @1mill/cloudevents
|
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
```node
|
|
20
|
-
const { Cloudevent } = require('@1mill/cloudevents') // CommonJs
|
|
20
|
+
// const { Cloudevent } = require('@1mill/cloudevents') // CommonJs
|
|
21
21
|
import { Cloudevent } from '@1mill/cloudevents' // EMS
|
|
22
22
|
|
|
23
23
|
const cloudevent = new Cloudevent({
|
|
24
|
-
data:
|
|
24
|
+
data: { some: 'payload' },
|
|
25
25
|
source: 'https://github.com/1mill/cloudevents',
|
|
26
26
|
type: 'cmd.do-this-command.v0',
|
|
27
|
-
originactor: 'user:admin#id=1234',
|
|
28
27
|
})
|
|
29
28
|
|
|
30
29
|
console.log(cloudevent)
|
|
31
30
|
// {
|
|
32
|
-
//
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
|
-
//
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
// wschannelid: undefined
|
|
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,
|
|
48
46
|
// }
|
|
49
47
|
|
|
50
48
|
const enrichedCloudevent = new Cloudevent({
|
|
51
|
-
|
|
49
|
+
actor: 'user#1234',
|
|
50
|
+
data: { new: 'payload', value: true },
|
|
51
|
+
origin: cloudevent,
|
|
52
52
|
source: 'https://www.erikekberg.com/',
|
|
53
|
+
subject: 'project#4321',
|
|
53
54
|
type: 'fct.this-thing-happened.v0',
|
|
55
|
+
wschannelid: 'some-prefix:my-resource-name#id=12345',
|
|
54
56
|
})
|
|
55
|
-
.origin({ cloudevent })
|
|
56
|
-
.wschannel({ wschannelid: 'some-prefix:my-resource-name#id=12345' })
|
|
57
57
|
|
|
58
58
|
console.log(enrichedCloudevent)
|
|
59
59
|
// {
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
//
|
|
74
|
-
//
|
|
75
|
-
// wschannelid: 'some-prefix:my-resource-name#id=12345'
|
|
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',
|
|
76
75
|
// }
|
|
77
76
|
```
|
|
78
77
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
|
82
|
-
|
|
83
|
-
|
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
|
|
|
87
|
-
|
|
|
88
|
-
|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
| originatorid | | String | | Deprecated in favor of "originactor" |
|
|
94
|
-
| wschannelid | | String | | |
|
|
95
|
-
|
|
96
|
-
### origin
|
|
97
|
-
|
|
98
|
-
Add `origin` attributes to a Cloudevent manually
|
|
99
|
-
|
|
100
|
-
```node
|
|
101
|
-
const cloudevent = new Cloudevent({
|
|
102
|
-
source: 'my-source',
|
|
103
|
-
type: 'my-type',
|
|
104
|
-
})
|
|
105
|
-
.origin({
|
|
106
|
-
originactor: 'my-origin-actor',
|
|
107
|
-
originid: 'my-origin-id',
|
|
108
|
-
originsource: 'my-origin-source',
|
|
109
|
-
origintime: 'my-origin-time',
|
|
110
|
-
origintype: 'my-origin-type',
|
|
111
|
-
})
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
or populate them automatically by passing in an existing Cloudevent
|
|
115
|
-
|
|
116
|
-
```node
|
|
117
|
-
const originCloudevent = new Cloudevent({
|
|
118
|
-
source: 'my-origin-cloudevent',
|
|
119
|
-
type: 'cmd.say-hello.v0',
|
|
120
|
-
originactor: 'my-origin-actor',
|
|
121
|
-
})
|
|
122
|
-
|
|
123
|
-
const cloudevent = new Cloudevent({
|
|
124
|
-
data: JSON.stringify({ message: 'Hello world!' }),
|
|
125
|
-
source: 'my-enrichment-service',
|
|
126
|
-
type: 'fct.said-hello.v0',
|
|
127
|
-
}).origin({ cloudevent: originCloudevent })
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### wschannel
|
|
131
|
-
|
|
132
|
-
Add `wschannel` attributes to a Cloudevent manually
|
|
133
|
-
|
|
134
|
-
```node
|
|
135
|
-
const cloudevent = new Cloudevent({
|
|
136
|
-
source: 'my-source',
|
|
137
|
-
type: 'my-type',
|
|
138
|
-
})
|
|
139
|
-
.wschannel({ wschannelid: 'my-unique-channel-name })
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
or populate them automatically by passing in an existing Cloudevent
|
|
143
|
-
|
|
144
|
-
```node
|
|
145
|
-
const originCloudevent = new Cloudevent({
|
|
146
|
-
source: 'my-origin-cloudevent',
|
|
147
|
-
type: 'cmd.say-hello.v0'
|
|
148
|
-
})
|
|
149
|
-
.wschannel({ wschannelid: 'my-unique-channel-name })
|
|
150
|
-
|
|
151
|
-
const cloudevent = new Cloudevent({
|
|
152
|
-
data: JSON.stringify({ message: 'Hello world!' }),
|
|
153
|
-
source: 'my-enrichment-service',
|
|
154
|
-
type: 'fct.said-hello.v0',
|
|
155
|
-
}).wschannel({ cloudevent: originCloudevent })
|
|
156
|
-
```
|
|
78
|
+
## Props
|
|
79
|
+
|
|
80
|
+
| Props | Required | Type | Default | Notes |
|
|
81
|
+
|----------------- |---------- |------------ |-------------------------------------- |-------------------------------------------------------------------------------------------- |
|
|
82
|
+
| actor | | String | | |
|
|
83
|
+
| data | | Any | | |
|
|
84
|
+
| datacontenttype | | String | | If `data` is present, then defaults to `"application/json"` unless otherwise specified |
|
|
85
|
+
| dataschema | | String | | |
|
|
86
|
+
| origin | | Cloudevent | | Helper to set `originid`, `originsource`, `origintype`, and `origintime` attributes |
|
|
87
|
+
| source | yes | String | `process.env.MILL_CLOUDEVENTS_SOURCE` | Recommended to use universal identifiers (e.g. <https://my-domain.com/my/feature/path/123>) |
|
|
88
|
+
| specversion | | String | `1.0` | Cloudevent specification version |
|
|
89
|
+
| subject | | String | | |
|
|
90
|
+
| type | yes | String | | |
|
|
91
|
+
| wschannelid | | String | | |
|
|
157
92
|
|
|
158
93
|
## Release new version
|
|
159
94
|
|
|
160
|
-
1. Create `.env` and add NPM_TOKEN
|
|
95
|
+
1. Create `.env` and add `NPM_TOKEN=...`
|
|
161
96
|
2. Run `docker compose run node`
|
|
162
97
|
3. In the container, run `npm version <major|minor|patch>`
|
|
163
98
|
4. In the container, run `npm run deploy`
|
|
@@ -0,0 +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};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
|
+
//# sourceMappingURL=cloudevents.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudevents.esm.js","sources":["../../src/utils/validateAttribute.ts","../../src/utils/cloudevent.ts","../../node_modules/nanoid/index.browser.js","../../src/utils/fetchNodeEnv.ts"],"sourcesContent":["export enum Permitted {\r\n\tNUMBER = 'number',\r\n\tSTRING = 'string',\r\n\tUNDEFINED = 'undefined',\r\n}\r\n\r\ninterface ValidateAttributeProps {\r\n\tdeprecated?: boolean\r\n\tname: string\r\n\tpermitted?: Permitted[]\r\n\tvalue: any\r\n}\r\n\r\nexport const validateAttribute = ({ deprecated = false, name, permitted = [], value }: ValidateAttributeProps) => {\r\n\tif (deprecated) { console.warn(`Cloudevent \"${name}\" is depricated`) }\r\n\r\n\tif (permitted.length >= 1 && !permitted.includes(typeof value as any)) {\r\n\t\tconst message = `Cloudevent \"${name}\" must be of type ${permitted.map(s => s.toUpperCase()).sort().join(' or ')}.`\r\n\t\tthrow new Error(message)\r\n\t}\r\n\r\n\treturn value\r\n}\r\n","import { Permitted, validateAttribute } from './validateAttribute.js'\r\nimport { fetchNodeEnv } from './fetchNodeEnv.js'\r\nimport { nanoid } from 'nanoid'\r\n\r\nexport interface CloudeventProps {\r\n\t// * Cloudevent v1 props\r\n\tdata?: Cloudevent['data']\r\n\tdatacontenttype?: Cloudevent['datacontenttype']\r\n\tdataschema?: Cloudevent['dataschema']\r\n\tsource?: Cloudevent['source']\r\n\tspecversion?: Cloudevent['specversion']\r\n\tsubject?: Cloudevent['subject']\r\n\ttype: Cloudevent['type']\r\n\r\n\t// * In-house extension props\r\n\tactor?: Cloudevent['actor']\r\n\twschannelid?: Cloudevent['wschannelid']\r\n\r\n\t// * In-house helpers\r\n\torigin?: Cloudevent\r\n}\r\n\r\nexport class Cloudevent {\r\n\t// * Cloudevents v1 fields\r\n\treadonly data?: any\r\n\treadonly datacontenttype?: string\r\n\treadonly dataschema?: string\r\n\treadonly id: string\r\n\treadonly source: string\r\n\treadonly specversion: string\r\n\treadonly subject?: string\r\n\treadonly time: string\r\n\treadonly type: string\r\n\r\n\t// * In-house extensions\r\n\treadonly actor?: string\r\n\treadonly wschannelid?: string\r\n\r\n\t// * In-house origin extensions\r\n\treadonly originid: Cloudevent['id']\r\n\treadonly originsource: Cloudevent['source']\r\n\treadonly origintime: Cloudevent['time']\r\n\treadonly origintype: Cloudevent['type']\r\n\r\n\tconstructor({\r\n\t\tactor,\r\n\t\tdata,\r\n\t\tdatacontenttype,\r\n\t\tdataschema,\r\n\t\torigin,\r\n\t\tsource,\r\n\t\tspecversion,\r\n\t\tsubject,\r\n\t\ttype,\r\n\t\twschannelid,\r\n\t}: CloudeventProps) {\r\n\t\t// *******\r\n\t\t// * Required fields by Cloudevent v1 specification\r\n\t\tconst idValue = 'ce_' + nanoid(33)\r\n\t\tthis.id = validateAttribute({\r\n\t\t\tname: 'id',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: idValue\r\n\t\t})\r\n\r\n\t\tconst sourceValue = source ?? fetchNodeEnv('MILL_CLOUDEVENTS_SOURCE')\r\n\t\tthis.source = validateAttribute({\r\n\t\t\tname: 'source',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: sourceValue\r\n\t\t})\r\n\r\n\t\tthis.type = validateAttribute({\r\n\t\t\tname: 'type',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: type\r\n\t\t})\r\n\r\n\t\tconst specversionValue = specversion ?? '1.0'\r\n\t\tthis.specversion = validateAttribute({\r\n\t\t\tname: 'specversion',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: specversionValue\r\n\t\t})\r\n\r\n\t\tconst timeValue = new Date().toISOString()\r\n\t\tthis.time = validateAttribute({\r\n\t\t\tname: 'time',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: timeValue\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Optional fields by Cloudevent v1 specification\r\n\t\tconst dataValue = datacontenttype === undefined ? JSON.stringify(data) : data\r\n\t\tthis.data = validateAttribute({\r\n\t\t\tname: 'data',\r\n\t\t\tvalue: dataValue\r\n\t\t})\r\n\r\n\t\tconst datacontenttypeValue = this.data\r\n\t\t\t? datacontenttype ?? 'application/json'\r\n\t\t\t: datacontenttype\r\n\t\tthis.datacontenttype = validateAttribute({\r\n\t\t\tname: 'datacontenttype',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: datacontenttypeValue\r\n\t\t})\r\n\r\n\t\tthis.dataschema = validateAttribute({\r\n\t\t\tname: 'dataschema',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: dataschema\r\n\t\t})\r\n\r\n\t\tthis.subject = validateAttribute({\r\n\t\t\tname: 'subject',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: subject\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Optional in-house extentions\r\n\t\tthis.actor = validateAttribute({\r\n\t\t\tname: 'actor',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: actor,\r\n\t\t})\r\n\r\n\t\tthis.wschannelid = validateAttribute({\r\n\t\t\tname: 'wschannelid',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: wschannelid,\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Origin in-house extentions\r\n\t\tconst originidValue = origin?.originid ?? this.id\r\n\t\tthis.originid = validateAttribute({\r\n\t\t\tname: 'originid',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: originidValue,\r\n\t\t})\r\n\r\n\t\tconst originsourceValue = origin?.originsource ?? this.source\r\n\t\tthis.originsource = validateAttribute({\r\n\t\t\tname: 'originsource',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: originsourceValue,\r\n\t\t})\r\n\r\n\t\tconst origintimeValue = origin?.origintime ?? this.time\r\n\t\tthis.origintime = validateAttribute({\r\n\t\t\tname: 'origintime',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: origintimeValue,\r\n\t\t})\r\n\r\n\t\tconst origintypeValue = origin?.origintype ?? this.type\r\n\t\tthis.origintype = validateAttribute({\r\n\t\t\tname: 'origintype',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: origintypeValue,\r\n\t\t})\r\n\t\t// *******\r\n\t}\r\n}\r\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","export const fetchNodeEnv = (name: string, fallbackValue?: any) => {\r\n\tif (typeof process === 'undefined') { return }\r\n\treturn process.env[name] || fallbackValue\r\n}\r\n"],"names":["Permitted","validateAttribute","deprecated","name","permitted","value","console","warn","length","includes","message","map","s","toUpperCase","sort","join","Error","Cloudevent","constructor","actor","data","datacontenttype","dataschema","origin","source","specversion","subject","type","wschannelid","_origin$originid","_origin$originsource","_origin$origintime","_origin$origintype","this","id","time","originid","originsource","origintime","origintype","idValue","size","crypto","getRandomValues","Uint8Array","reduce","byte","toString","nanoid","STRING","fallbackValue","process","env","fetchNodeEnv","sourceValue","timeValue","Date","toISOString","dataValue","undefined","JSON","stringify","UNDEFINED","originidValue","originsourceValue","origintimeValue","origintypeValue"],"mappings":"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"}
|
|
@@ -0,0 +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};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
|
+
//# sourceMappingURL=cloudevents.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudevents.umd.js","sources":["../../src/utils/validateAttribute.ts","../../src/utils/cloudevent.ts","../../node_modules/nanoid/index.browser.js","../../src/utils/fetchNodeEnv.ts"],"sourcesContent":["export enum Permitted {\r\n\tNUMBER = 'number',\r\n\tSTRING = 'string',\r\n\tUNDEFINED = 'undefined',\r\n}\r\n\r\ninterface ValidateAttributeProps {\r\n\tdeprecated?: boolean\r\n\tname: string\r\n\tpermitted?: Permitted[]\r\n\tvalue: any\r\n}\r\n\r\nexport const validateAttribute = ({ deprecated = false, name, permitted = [], value }: ValidateAttributeProps) => {\r\n\tif (deprecated) { console.warn(`Cloudevent \"${name}\" is depricated`) }\r\n\r\n\tif (permitted.length >= 1 && !permitted.includes(typeof value as any)) {\r\n\t\tconst message = `Cloudevent \"${name}\" must be of type ${permitted.map(s => s.toUpperCase()).sort().join(' or ')}.`\r\n\t\tthrow new Error(message)\r\n\t}\r\n\r\n\treturn value\r\n}\r\n","import { Permitted, validateAttribute } from './validateAttribute.js'\r\nimport { fetchNodeEnv } from './fetchNodeEnv.js'\r\nimport { nanoid } from 'nanoid'\r\n\r\nexport interface CloudeventProps {\r\n\t// * Cloudevent v1 props\r\n\tdata?: Cloudevent['data']\r\n\tdatacontenttype?: Cloudevent['datacontenttype']\r\n\tdataschema?: Cloudevent['dataschema']\r\n\tsource?: Cloudevent['source']\r\n\tspecversion?: Cloudevent['specversion']\r\n\tsubject?: Cloudevent['subject']\r\n\ttype: Cloudevent['type']\r\n\r\n\t// * In-house extension props\r\n\tactor?: Cloudevent['actor']\r\n\twschannelid?: Cloudevent['wschannelid']\r\n\r\n\t// * In-house helpers\r\n\torigin?: Cloudevent\r\n}\r\n\r\nexport class Cloudevent {\r\n\t// * Cloudevents v1 fields\r\n\treadonly data?: any\r\n\treadonly datacontenttype?: string\r\n\treadonly dataschema?: string\r\n\treadonly id: string\r\n\treadonly source: string\r\n\treadonly specversion: string\r\n\treadonly subject?: string\r\n\treadonly time: string\r\n\treadonly type: string\r\n\r\n\t// * In-house extensions\r\n\treadonly actor?: string\r\n\treadonly wschannelid?: string\r\n\r\n\t// * In-house origin extensions\r\n\treadonly originid: Cloudevent['id']\r\n\treadonly originsource: Cloudevent['source']\r\n\treadonly origintime: Cloudevent['time']\r\n\treadonly origintype: Cloudevent['type']\r\n\r\n\tconstructor({\r\n\t\tactor,\r\n\t\tdata,\r\n\t\tdatacontenttype,\r\n\t\tdataschema,\r\n\t\torigin,\r\n\t\tsource,\r\n\t\tspecversion,\r\n\t\tsubject,\r\n\t\ttype,\r\n\t\twschannelid,\r\n\t}: CloudeventProps) {\r\n\t\t// *******\r\n\t\t// * Required fields by Cloudevent v1 specification\r\n\t\tconst idValue = 'ce_' + nanoid(33)\r\n\t\tthis.id = validateAttribute({\r\n\t\t\tname: 'id',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: idValue\r\n\t\t})\r\n\r\n\t\tconst sourceValue = source ?? fetchNodeEnv('MILL_CLOUDEVENTS_SOURCE')\r\n\t\tthis.source = validateAttribute({\r\n\t\t\tname: 'source',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: sourceValue\r\n\t\t})\r\n\r\n\t\tthis.type = validateAttribute({\r\n\t\t\tname: 'type',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: type\r\n\t\t})\r\n\r\n\t\tconst specversionValue = specversion ?? '1.0'\r\n\t\tthis.specversion = validateAttribute({\r\n\t\t\tname: 'specversion',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: specversionValue\r\n\t\t})\r\n\r\n\t\tconst timeValue = new Date().toISOString()\r\n\t\tthis.time = validateAttribute({\r\n\t\t\tname: 'time',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: timeValue\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Optional fields by Cloudevent v1 specification\r\n\t\tconst dataValue = datacontenttype === undefined ? JSON.stringify(data) : data\r\n\t\tthis.data = validateAttribute({\r\n\t\t\tname: 'data',\r\n\t\t\tvalue: dataValue\r\n\t\t})\r\n\r\n\t\tconst datacontenttypeValue = this.data\r\n\t\t\t? datacontenttype ?? 'application/json'\r\n\t\t\t: datacontenttype\r\n\t\tthis.datacontenttype = validateAttribute({\r\n\t\t\tname: 'datacontenttype',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: datacontenttypeValue\r\n\t\t})\r\n\r\n\t\tthis.dataschema = validateAttribute({\r\n\t\t\tname: 'dataschema',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: dataschema\r\n\t\t})\r\n\r\n\t\tthis.subject = validateAttribute({\r\n\t\t\tname: 'subject',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: subject\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Optional in-house extentions\r\n\t\tthis.actor = validateAttribute({\r\n\t\t\tname: 'actor',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: actor,\r\n\t\t})\r\n\r\n\t\tthis.wschannelid = validateAttribute({\r\n\t\t\tname: 'wschannelid',\r\n\t\t\tpermitted: [Permitted.STRING, Permitted.UNDEFINED],\r\n\t\t\tvalue: wschannelid,\r\n\t\t})\r\n\t\t// *******\r\n\r\n\t\t// *******\r\n\t\t// * Origin in-house extentions\r\n\t\tconst originidValue = origin?.originid ?? this.id\r\n\t\tthis.originid = validateAttribute({\r\n\t\t\tname: 'originid',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: originidValue,\r\n\t\t})\r\n\r\n\t\tconst originsourceValue = origin?.originsource ?? this.source\r\n\t\tthis.originsource = validateAttribute({\r\n\t\t\tname: 'originsource',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: originsourceValue,\r\n\t\t})\r\n\r\n\t\tconst origintimeValue = origin?.origintime ?? this.time\r\n\t\tthis.origintime = validateAttribute({\r\n\t\t\tname: 'origintime',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: origintimeValue,\r\n\t\t})\r\n\r\n\t\tconst origintypeValue = origin?.origintype ?? this.type\r\n\t\tthis.origintype = validateAttribute({\r\n\t\t\tname: 'origintype',\r\n\t\t\tpermitted: [Permitted.STRING],\r\n\t\t\tvalue: origintypeValue,\r\n\t\t})\r\n\t\t// *******\r\n\t}\r\n}\r\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","export const fetchNodeEnv = (name: string, fallbackValue?: any) => {\r\n\tif (typeof process === 'undefined') { return }\r\n\treturn process.env[name] || fallbackValue\r\n}\r\n"],"names":["Permitted","validateAttribute","_ref","_ref$deprecated","deprecated","name","_ref$permitted","permitted","value","console","warn","length","includes","map","s","toUpperCase","sort","join","Error","message","actor","data","datacontenttype","dataschema","origin","source","specversion","subject","type","wschannelid","this","id","time","originid","originsource","origintime","origintype","idValue","size","crypto","getRandomValues","Uint8Array","reduce","byte","toString","nanoid","STRING","sourceValue","fallbackValue","process","env","fetchNodeEnv","timeValue","Date","toISOString","dataValue","undefined","JSON","stringify","UNDEFINED","originidValue","_origin$originid","originsourceValue","_origin$originsource","origintimeValue","_origin$origintime","origintypeValue","_origin$origintype"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
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
|
+
//# sourceMappingURL=cloudevents.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -0,0 +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(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
|
+
//# sourceMappingURL=cloudevents.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Cloudevent, CloudeventProps } from './utils/cloudevent.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface CloudeventProps {
|
|
2
|
+
data?: Cloudevent['data'];
|
|
3
|
+
datacontenttype?: Cloudevent['datacontenttype'];
|
|
4
|
+
dataschema?: Cloudevent['dataschema'];
|
|
5
|
+
source?: Cloudevent['source'];
|
|
6
|
+
specversion?: Cloudevent['specversion'];
|
|
7
|
+
subject?: Cloudevent['subject'];
|
|
8
|
+
type: Cloudevent['type'];
|
|
9
|
+
actor?: Cloudevent['actor'];
|
|
10
|
+
wschannelid?: Cloudevent['wschannelid'];
|
|
11
|
+
origin?: Cloudevent;
|
|
12
|
+
}
|
|
13
|
+
export declare class Cloudevent {
|
|
14
|
+
readonly data?: any;
|
|
15
|
+
readonly datacontenttype?: string;
|
|
16
|
+
readonly dataschema?: string;
|
|
17
|
+
readonly id: string;
|
|
18
|
+
readonly source: string;
|
|
19
|
+
readonly specversion: string;
|
|
20
|
+
readonly subject?: string;
|
|
21
|
+
readonly time: string;
|
|
22
|
+
readonly type: string;
|
|
23
|
+
readonly actor?: string;
|
|
24
|
+
readonly wschannelid?: string;
|
|
25
|
+
readonly originid: Cloudevent['id'];
|
|
26
|
+
readonly originsource: Cloudevent['source'];
|
|
27
|
+
readonly origintime: Cloudevent['time'];
|
|
28
|
+
readonly origintype: Cloudevent['type'];
|
|
29
|
+
constructor({ actor, data, datacontenttype, dataschema, origin, source, specversion, subject, type, wschannelid, }: CloudeventProps);
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const fetchNodeEnv: (name: string, fallbackValue?: any) => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare enum Permitted {
|
|
2
|
+
NUMBER = "number",
|
|
3
|
+
STRING = "string",
|
|
4
|
+
UNDEFINED = "undefined"
|
|
5
|
+
}
|
|
6
|
+
interface ValidateAttributeProps {
|
|
7
|
+
deprecated?: boolean;
|
|
8
|
+
name: string;
|
|
9
|
+
permitted?: Permitted[];
|
|
10
|
+
value: any;
|
|
11
|
+
}
|
|
12
|
+
export declare const validateAttribute: ({ deprecated, name, permitted, value }: ValidateAttributeProps) => any;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,26 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1mill/cloudevents",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"description": "Node cloudevents specification and helper",
|
|
5
|
-
"
|
|
6
|
-
"main": "dist/index.cjs",
|
|
7
|
-
"module": "dist/index.module.js",
|
|
8
|
-
"source": "src/index.js",
|
|
9
|
-
"umd:main": "dist/index.umd.js",
|
|
10
|
-
"unpkg": "dist/index.umd.js",
|
|
5
|
+
"source": "./src/index.ts",
|
|
11
6
|
"type": "module",
|
|
12
|
-
"
|
|
13
|
-
"dist",
|
|
14
|
-
"
|
|
15
|
-
|
|
7
|
+
"exports": {
|
|
8
|
+
"import": "./dist/bundle-node/cloudevents.esm.js",
|
|
9
|
+
"require": "./dist/bundle-node/cloudevents.cjs",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/bundle-browser/cloudevents.esm.js"
|
|
12
|
+
},
|
|
13
|
+
"main": "./dist/bundle-node/cloudevents.cjs",
|
|
14
|
+
"module": "./dist/bundle-node/cloudevents.esm.js",
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"umd:main": "./dist/bundle-browser/cloudevents.umd.js",
|
|
16
17
|
"scripts": {
|
|
17
18
|
"build": "rm -rf ./dist && npm run build:browser && npm run build:node",
|
|
18
|
-
"build:browser": "microbundle --format modern,umd --external none",
|
|
19
|
-
"build:node": "microbundle --format cjs,esm",
|
|
19
|
+
"build:browser": "microbundle --format modern,umd --external none --output ./dist/bundle-browser",
|
|
20
|
+
"build:node": "microbundle --format cjs,esm --output ./dist/bundle-node",
|
|
20
21
|
"deploy": "npm run build && npm publish",
|
|
21
22
|
"dev": "microbundle watch",
|
|
22
|
-
"test
|
|
23
|
+
"test": "npm run test:unit",
|
|
24
|
+
"test:unit": "ts-mocha"
|
|
23
25
|
},
|
|
26
|
+
"files": [
|
|
27
|
+
"./dist"
|
|
28
|
+
],
|
|
24
29
|
"homepage": "https://github.com/1mill/cloudevents",
|
|
25
30
|
"bugs": {
|
|
26
31
|
"url": "https://github.com/1mill/cloudevents/issues"
|
|
@@ -37,12 +42,23 @@
|
|
|
37
42
|
"nanoid": "^3.3.7"
|
|
38
43
|
},
|
|
39
44
|
"devDependencies": {
|
|
45
|
+
"@types/chai": "^4.3.17",
|
|
46
|
+
"@types/chai-string": "^1.4.5",
|
|
47
|
+
"@types/chai-subset": "^1.3.5",
|
|
48
|
+
"@types/mocha": "^10.0.7",
|
|
49
|
+
"@types/node": "^22.5.1",
|
|
50
|
+
"@types/sinon": "^17.0.3",
|
|
51
|
+
"@types/sinon-chai": "^3.2.12",
|
|
40
52
|
"chai": "^4.5.0",
|
|
41
53
|
"chai-iso8601": "^1.0.0",
|
|
54
|
+
"chai-string": "^1.5.0",
|
|
42
55
|
"chai-subset": "^1.6.0",
|
|
43
56
|
"microbundle": "^0.15.1",
|
|
44
57
|
"mocha": "^10.7.3",
|
|
45
58
|
"sinon": "^14.0.2",
|
|
46
|
-
"sinon-chai": "^3.7.0"
|
|
59
|
+
"sinon-chai": "^3.7.0",
|
|
60
|
+
"ts-mocha": "^10.0.0",
|
|
61
|
+
"ts-node": "^10.9.2",
|
|
62
|
+
"typescript": "^5.5.4"
|
|
47
63
|
}
|
|
48
64
|
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# Changelog for @1mill/cloudevents
|
|
2
|
-
|
|
3
|
-
## 4.6.3
|
|
4
|
-
|
|
5
|
-
* Update `README` to better reflect deployment process
|
|
6
|
-
|
|
7
|
-
## 4.6.2
|
|
8
|
-
|
|
9
|
-
* Update `nanoid` from `^3.3.4` to `^3.3.7`.
|
|
10
|
-
* Move `sinon-chai` to `devDependencies`.
|
|
11
|
-
* Update various `devDependencies`.
|
|
12
|
-
|
|
13
|
-
## 4.6.1
|
|
14
|
-
|
|
15
|
-
* Fix spelling in `README.md`.
|
|
16
|
-
|
|
17
|
-
## 4.6.0
|
|
18
|
-
|
|
19
|
-
* Add `cloudevent.originactor` attribute and support in `cloudevent.origin({...})` instance method.
|
|
20
|
-
* Depricate `cloudevent.originator({...})` instance method.
|
|
21
|
-
* Depricate `cloudevent.originatorid` attribute.
|
|
22
|
-
|
|
23
|
-
## 4.5.0
|
|
24
|
-
|
|
25
|
-
* Add `cloudevent.originator({...})` instance method.
|
|
26
|
-
* Improve unit tests for `cloudevent.wschannel({...})`.
|
|
27
|
-
|
|
28
|
-
## 4.4.1
|
|
29
|
-
|
|
30
|
-
* Use `const ce = this` in constructor to cosmetically match instance method declarations.
|
|
31
|
-
|
|
32
|
-
## 4.4.0
|
|
33
|
-
|
|
34
|
-
* Add `cloudevent.wschannel({...})` instance method
|
|
35
|
-
* Update `README.md`
|
|
36
|
-
|
|
37
|
-
## 4.3.0
|
|
38
|
-
|
|
39
|
-
* Add `cloudevent.origin({...})` instance method
|
|
40
|
-
* Update `README.md`
|
|
41
|
-
|
|
42
|
-
## 4.2.1
|
|
43
|
-
|
|
44
|
-
* Upgrade to `microbundle@^0.15.1`
|
|
45
|
-
|
|
46
|
-
## 4.2.0
|
|
47
|
-
|
|
48
|
-
* Add optional `wschannelid` attribute.
|
|
49
|
-
* Fix unit test description.
|
|
50
|
-
|
|
51
|
-
## 4.1.1
|
|
52
|
-
|
|
53
|
-
* Improve formatting of code.
|
|
54
|
-
* Update `README.md`.
|
|
55
|
-
|
|
56
|
-
## 4.1.0
|
|
57
|
-
|
|
58
|
-
* Add optional `originatorid` attribute.
|
|
59
|
-
* Add unit tests for every Cloudevent attribute (e.g. `id`, `data`, `originid`, etc.) using `mocha`, `sinon`, and `chai`.
|
|
60
|
-
* Update `nanoid@^3.3.4`
|
|
61
|
-
|
|
62
|
-
## 4.0.1
|
|
63
|
-
|
|
64
|
-
* Check that `process.env` be defined before using it to fix compatability issue with browsers.
|
|
65
|
-
* Replace `require` with `import`.
|
|
66
|
-
|
|
67
|
-
## 4.0.0
|
|
68
|
-
|
|
69
|
-
* Bundle package with `microbundle@^0.14.2` to build Browser and Node compatable versions.
|
|
70
|
-
* Change pacakge to `"type": "module"`.
|