The new version
event occurs when a new package version is found, and consists of the version files as a JSON string array. For example, for a new version 1.0.28
of our test package a-happy-tyler
:
2020-08-03 19:40:56 a-happy-tyler: new version: 1.0.28: ["happy.css","happy.js","happy.min.css","happy.min.js","happy.woff","happy.woff2","kristina.js","kristina.min.js","package.json","smile.jpg"]
Note that additional autogenerated files may be included, such as minified JavaScript files.
The new version kv files
event occurs when the files from the new version
are pushed to Workers KV from the cdnjs autoupdater. This event lists the files pushed to KV as a JSON string array. For example:
2020-08-03 19:40:56 a-happy-tyler: new version kv files: 1.0.28: ["happy.css.br","happy.css.gz","happy.js.br","happy.js.gz","happy.min.css.br","happy.min.css.gz","happy.min.js.br","happy.min.js.gz","happy.woff.br","happy.woff.gz","happy.woff2","kristina.js.br","kristina.js.gz","kristina.min.js.br","kristina.min.js.gz","package.json.br","package.json.gz","smile.jpg.br","smile.jpg.gz"]
Currently, all files except woff2
will be compressed with brotli and gzip before insertion to KV. Note that if a file is not included here but its uncompressed version was included in the new version
event, then it failed to reach KV. In this case, either the file extension was unsupported or it exceeded the maximum size allowed in KV (10MiB).
In the case the compressed file size exceeded 10MiB, its uncompressed version will still exist in the cdnjs repo, and will be fetchable from the CDN, so do not panic! We are planning to add support to KV for oversized files soon.
The new version kv SRIs
event occurs when SRIs are calculated for the js
and css
files from the new version
and pushed to Workers KV from the cdnjs autoupdater. This event lists the respectively file names of the SRIs pushed to KV as a JSON string array. For example:
2020-08-21 13:44:26 a-happy-tyler: new version kv SRIs: 1.0.51: ["happy.css","happy.js","happy.min.css","happy.min.js","kristina.js","kristina.min.js"]
The update metadata
event occurs when there is a change to a package's metadata, and the new metadata is pushed to Workers KV. Traditionally, this would be a git commit to the package's respective package.json
file in the cdnjs repo. For example, with the new stable version 1.0.28
of a-happy-tyler
, the metadata updated:
2020-08-03 19:42:02 a-happy-tyler: update metadata: 1.0.28: {"authors":[{"name":"Tyler Caslin","email":"[email protected]"}],"autoupdate":{"source":"git","target":"git://github.com/tc80/a-happy-tyler.git","fileMap":[{"basePath":"src","files":["*"]}]},"description":"Tyler is happy. Be like Tyler.","filename":"happy.js","keywords":["tyler","happy"],"license":"MIT","name":"a-happy-tyler","repository":{"type":"git","url":"git://github.com/tc80/a-happy-tyler.git"},"version":"1.0.28","author":"Tyler Caslin <[email protected]>"}
Note that the update metadata
event may not always occur after a new version kv
event as there are times when the package metadata has not changed. Since the version
field represents the latest stable version, a new beta version will not overwrite it (assuming all package versions are semver).
Finally, note that this JSON metadata is considered "robot-only", or "non-human-readable". It's JSON schema can be found here. The "human-readable" metadata JSON can be found in the packages repo, whose JSON schema can be found here.
The update aggregated metadata
event occurs when there is a new version kv
event or an update metadata
event. In order to boost performance in the cdnjs API, we maintain aggregated metadata entries in Workers KV. The cdnjs autoupdater will fetch the package's aggregated metadata from Workers KV, update it with the new metadata, and write it back to Workers KV. This event describes whether the aggregated metadata entry was found in Workers KV using found
, and lists the array of keys updated in our aggregated metadata namespace with kv_writes
. For instance, with the new stable version 1.0.41
of a-happy-tyler
, the aggregated metadata updated:
2020-08-14 15:23:24 a-happy-tyler: update aggregated metadata: 1.0.41: {"found":true,"kv_writes":["a-happy-tyler"]}
Note that found
should always be true
unless the package is new, since false
involves creating a new aggregated metadata entry. In addition, kv_writes
should never be empty. If kv_writes
is empty, no keys were updated in Workers KV, most likely indicating the entry exceeded Workers KV's 10MiB limit. To avoid this limit, we are currently gzipping the aggregated metadata.