workers-sdk
workers-sdk copied to clipboard
🐛 BUG: Readme's contain commit hashed links instead of using links from /main/
Which Cloudflare product(s) does this pertain to?
C3, Wrangler core, Miniflare, Workers Vitest Integration, Other
What version(s) of the tool(s) are you using?
N/A
What version of Node are you using?
v20.14.0
What operating system and version are you using?
Debian 12
Describe the Bug
Observed behavior
Many files contain links to github documentation which are outdated because they are hash links instead of branch links.
Expected behavior
Self-referencing documentation should always point to the most up-to-date version.
Steps to reproduce
I found this after a fresh installation of next.js using C3 where the instructions in the file did not match the instructions in Cloudflare's docs.
Please provide a link to a minimal reproduction
No response
Please provide any relevant error logs
https://github.com/cloudflare/workers-sdk/tree/main/packages/create-cloudflare/templates/next/c3.ts#L66
// https://github.com/cloudflare/next-on-pages/blob/5712c57ea7/internal-packages/next-dev/README.md
https://github.com/cloudflare/workers-sdk/tree/main/packages/create-cloudflare/templates/next/README.md#L26
__Note:__ while the `dev` script is optimal for local development you should
preview your Pages application as well (periodically or before deployments) in
order to make sure that it can properly work in the Pages environment (for more
details see the [`@cloudflare/next-on-pages` recommended
workflow](https://github.com/cloudflare/next-on-pages/blob/05b6256/internal-packages/next-dev/README.md#recommended-workflow))
https://github.com/cloudflare/workers-sdk/tree/main/packages/create-cloudflare/templates/next/README.md#L34
To use bindings in dev mode you need to define them in the `next.config.js`
file under `setupDevBindings`, this mode uses the `next-dev`
`@cloudflare/next-on-pages` submodule. For more details see its
[documentation](https://github.com/cloudflare/next-on-pages/blob/05b6256/internal-packages/next-dev/README.md).
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/CHANGELOG.md#L279
Previously, Miniflare provided experimental `unsafeDirectHost` and
`unsafeDirectPort` options for starting an HTTP server that pointed directly to
a specific Worker. This change replaces these options with a single
`unsafeDirectSockets` option that accepts an array of socket objects of the
form `{ host?: string, port?: number, entrypoint?: string, proxy?: boolean }`.
`host` defaults to `127.0.0.1`, `port` defaults to `0`, `entrypoint` defaults
to `default`, and `proxy` defaults to `false`. This allows you to start HTTP
servers for specific entrypoints of specific Workers. `proxy` controls the
[`Style`](https://github.com/cloudflare/workerd/blob/af35f1e7b0f166ec4ca93a8bf7daeacda029f11d/src/workerd/server/workerd.capnp#L780-L789)
of the socket.
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/CHANGELOG.md#L711
`workerd`'s [wrapped
bindings](https://github.com/cloudflare/workerd/blob/bfcef2d850514c569c039cb84c43bc046af4ffb9/src/workerd/server/workerd.capnp#L469-L487).
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/CONTRIBUTING.md#L109
[`struct Binding` in
`workerd.capnp`](https://github.com/cloudflare/workerd/blob/2ea29ab934c3a07f8fb2174ce3869d98e13d3515/src/workerd/server/workerd.capnp#L292)
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/CONTRIBUTING.md#L134
[`struct Service` in
`workerd.capnp`](https://github.com/cloudflare/workerd/blob/2ea29ab934c3a07f8fb2174ce3869d98e13d3515/src/workerd/server/workerd.capnp#L135)
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/README.md#L334
[`workerd` `Network`
struct](https://github.com/cloudflare/workerd/blob/bdbd6075c7c53948050c52d22f2dfa37bf376253/src/workerd/server/workerd.capnp#L555-L598),
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/README.md#L338
[`workerd` `ExternalServer`
struct](https://github.com/cloudflare/workerd/blob/bdbd6075c7c53948050c52d22f2dfa37bf376253/src/workerd/server/workerd.capnp#L504-L553),
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/README.md#L342
[`workerd` `DiskDirectory`
struct](https://github.com/cloudflare/workerd/blob/bdbd6075c7c53948050c52d22f2dfa37bf376253/src/workerd/server/workerd.capnp#L600-L643),
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/README.md#L355
[wrapped
bindings](https://github.com/cloudflare/workerd/blob/bfcef2d850514c569c039cb84c43bc046af4ffb9/src/workerd/server/workerd.capnp#L469-L487)
into this Worker.
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/README.md#L763
[`service_binding_extra_handlers`](https://github.com/cloudflare/workerd/blob/1d9158af7ca1389474982c76ace9e248320bec77/src/workerd/io/compatibility-date.capnp#L290-L297)
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/index.ts#L543
// https://github.com/cloudflare/miniflare/blob/9c135599dc21fe69080ada17fce6153692793bf1/packages/core/src/standards/http.ts#L129-L132
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/index.ts#L564
// Reverse of
// https://github.com/nodejs/undici/blob/48d9578f431cbbd6e74f77455ba92184f57096cf/lib/fetch/index.js#L1660
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/index.ts#L638
// https://github.com/nodejs/undici/blob/dfaec78f7a29f07bb043f9006ed0ceb0d5220b55/lib/core/util.js#L369-L392
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/merge.ts#L3
https://github.com/Rich-Harris/devalue/blob/50af63e2b2c648f6e6ea29904a14faac25a581fc/src/utils.js#L31-L51
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/plugins/core/errors/callsite.ts#L101
https://github.com/felixge/node-stack-trace/blob/4c41a4526e74470179b3b6dd5d75191ca8c56c17/index.js
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/plugins/core/errors/callsite.ts#L2
https://github.com/felixge/node-stack-trace/blob/4c41a4526e74470179b3b6dd5d75191ca8c56c17/index.js
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/plugins/core/index.ts#L72
https://github.com/capnproto/capnproto/blob/6e26d260d1d91e0465ca12bbb5230a1dfa28f00d/c%2B%2B/src/kj/compat/tls.c%2B%2B#L745
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/plugins/core/modules.ts#L174
// https://github.com/cloudflare/workerd/blob/edcd0300bc7b8f56040d090177db947edd22f91b/src/workerd/io/compatibility-date.capnp#L237-L240
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/plugins/shared/index.ts#L190
https://github.com/cloudflare/workerd/blob/81d97010e44f848bb95d0083e2677bca8d1658b7/src/workerd/server/workerd-api.c%2B%2B#L436
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/runtime/index.ts#L83
// https://github.com/vadimdemedes/ink/blob/5d24ed8ada593a6c36ea5416f452158461e33ba5/readme.md#patchconsole
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/shared/log.ts#L121
Adapted from
https://github.com/chalk/ansi-regex/blob/02fa893d619d3da85411acc8fd4e2eea0e95a9d9/index.js
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/shared/matcher.ts#L9
// (https://github.com/fitzgen/glob-to-regexp/blob/2abf65a834259c6504ed3b80e85f893f8cd99127/index.js#L123-L127)
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/shared/types.ts#L14
https://github.com/colinhacks/zod/blob/59768246aa57133184b2cf3f7c2a1ba5c3ab08c3/README.md?plain=1#L1302-L1317
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/core/constants.ts#L63
// https://github.com/cloudflare/workerd/blob/62b9ceee4c94d2b238692397dc4f604fef84f474/src/workerd/api/actor.h#L86
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/core/constants.ts#L64
// https://github.com/cloudflare/workerd/blob/62b9ceee4c94d2b238692397dc4f604fef84f474/src/workerd/api/worker-rpc.h#L30
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/core/constants.ts#L79
// https://github.com/cloudflare/workerd/blob/ae612f0563d864c82adbfa4c2e5ed78b547aa0a1/src/workerd/api/r2-bucket.h#L210
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/core/constants.ts#L80
// https://github.com/cloudflare/workerd/blob/ae612f0563d864c82adbfa4c2e5ed78b547aa0a1/src/workerd/api/r2-bucket.h#L263-L264
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/core/proxy.worker.ts#L50
https://github.com/Rich-Harris/devalue/blob/50af63e2b2c648f6e6ea29904a14faac25a581fc/src/utils.js#L31-L51
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/kv/sites.worker.ts#L29
https://github.com/cloudflare/workerd/blob/81d97010e44f848bb95d0083e2677bca8d1658b7/src/workerd/server/server.c%2B%2B#L860-L874
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/r2/bucket.worker.ts#L1049
// -
// https://github.com/cloudflare/workerd/blob/e3479895a2ace28e4fd5f1399cea4c92291966ab/src/workerd/api/r2-rpc.c%2B%2B#L154-L156
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/r2/bucket.worker.ts#L1050
// -
// https://github.com/cloudflare/workerd/blob/e3479895a2ace28e4fd5f1399cea4c92291966ab/src/workerd/api/r2-rpc.c%2B%2B#L188-L189
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/r2/bucket.worker.ts#L682
// https://github.com/cloudflare/workerd/blob/c6f439ca37c5fa34acc54a6df79214ae029ddf9f/src/workerd/api/streams/internal.c%2B%2B#L169
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/r2/schemas.worker.ts#L295
// Optional:
// https://github.com/cloudflare/workerd/blob/4290f9717bc94647d9c8afd29602cdac97fdff1b/src/workerd/api/r2-bucket.c%2B%2B#L81
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/r2/schemas.worker.ts#L297
// Optional:
// https://github.com/cloudflare/workerd/blob/4290f9717bc94647d9c8afd29602cdac97fdff1b/src/workerd/api/r2-bucket.c%2B%2B#L113
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/r2/schemas.worker.ts#L299
// Optional:
// https://github.com/cloudflare/workerd/blob/4290f9717bc94647d9c8afd29602cdac97fdff1b/src/workerd/api/r2-bucket.c%2B%2B#L130
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/r2/schemas.worker.ts#L301
// Optional:
// https://github.com/cloudflare/workerd/blob/4290f9717bc94647d9c8afd29602cdac97fdff1b/src/workerd/api/r2-bucket.c%2B%2B#L140
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/r2/schemas.worker.ts#L73
https://github.com/cloudflare/workerd/blob/4290f9717bc94647d9c8afd29602cdac97fdff1b/src/workerd/api/r2-api.capnp
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/shared/data.ts#L15
* https://github.com/parshap/node-sanitize-filename/blob/209c39b914c8eb48ee27bcbde64b2c7822fdf3de/index.js#L4-L37
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/src/workers/shared/zod.worker.ts#L5
https://github.com/capnproto/capnproto/blob/6b5bcc2c6e954bc6e167ac581eb628e5a462a469/c%2B%2B/src/kj/encoding.c%2B%2B#L719-L720
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/test/index.spec.ts#L545
// https://github.com/cloudflare/workerd/blob/14b54764609c263ea36ab862bb8bf512f9b1387b/src/workerd/io/compatibility-date.capnp#L273-L278
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/test/plugins/r2/index.spec.ts#L264
// https://github.com/cloudflare/workerd/blob/4290f9717bc94647d9c8afd29602cdac97fdff1b/src/workerd/api/r2-bucket.c%2B%2B#L239-L265
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/test/plugins/r2/index.spec.ts#L315
// https://github.com/cloudflare/workerd/blob/4290f9717bc94647d9c8afd29602cdac97fdff1b/src/workerd/api/r2-bucket.c%2B%2B#L195-L201
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/test/plugins/r2/index.spec.ts#L347
// https://github.com/cloudflare/workerd/blob/4290f9717bc94647d9c8afd29602cdac97fdff1b/src/workerd/api/r2-bucket.c%2B%2B#L410-L420
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/test/plugins/r2/index.spec.ts#L424
// https://github.com/cloudflare/workerd/blob/4290f9717bc94647d9c8afd29602cdac97fdff1b/src/workerd/api/r2-bucket.c%2B%2B#L441-L520
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/test/plugins/r2/index.spec.ts#L503
// https://github.com/cloudflare/workerd/blob/4290f9717bc94647d9c8afd29602cdac97fdff1b/src/workerd/api/r2-bucket.c%2B%2B#L195-L201
https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare/test/plugins/r2/index.spec.ts#L883
// https://github.com/cloudflare/workerd/blob/44907df95f231a2411d4e9767400951e55c6eb4c/src/workerd/api/r2-bucket.c%2B%2B#L737
https://github.com/cloudflare/workers-sdk/tree/main/packages/quick-edit-extension/vscode.d.ts#L2964
* and attributes to be rendered. See
* https://github.com/microsoft/vscode/blob/6d2920473c6f13759c978dd89104c4270a83422d/src/vs/base/browser/markdownRenderer.ts#L296
https://github.com/cloudflare/workers-sdk/tree/main/packages/quick-edit/patches/0001-Add-Custom-workbench-for-Cloudflare.patch#L308
// https://github.com/microsoft/vscode/blob/159479eb5ae451a66b5dac3c12d564f32f454796/extensions/github-authentication/src/githubServer.ts#L50-L50
https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-pool-workers/src/config/index.ts#L126
// https://github.com/vitest-dev/vitest/blob/8014614475afa880f4e583b166bb91dea5415cc6/packages/vitest/src/node/plugins/workspace.ts#L26
https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-pool-workers/src/config/index.ts#L24
// https://github.com/nodejs/node/blob/71951a0e86da9253d7c422fa2520ee9143e557fa/lib/internal/structured_clone.js
https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-pool-workers/src/pool/index.ts#L1032
// (Vite statically analyses imports here:
// https://github.com/vitejs/vite/blob/2649f40733bad131bc94b06d370bedc8f57853e2/packages/vite/src/node/plugins/importAnalysis.ts#L770)
https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-pool-workers/src/pool/module-fallback.ts#L289
// (e.g.
// https://github.com/sindresorhus/p-limit/blob/f53bdb5f464ae112b2859e834fdebedc0745199b/package.json#L20)
https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-pool-workers/src/worker/entrypoints.ts#L53
// https://github.com/cloudflare/workerd/blob/9e915ed637d65adb3c57522607d2cd8b8d692b6b/src/workerd/io/worker.c%2B%2B#L1920-L1921
https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-pool-workers/src/worker/index.ts#L275
// TODO(soon): see if we can get `startViteNode()`
// (https://github.com/vitest-dev/vitest/blob/8d183da4f7cc2986d11c802d16bacd221fb69b96/packages/vitest/src/runtime/execute.ts#L45)
https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-pool-workers/src/worker/index.ts#L87
// (https://github.com/sinonjs/fake-timers/blob/c85ef142837afdbc732b0f73fdba30c3bd037965/src/fake-timers-src.js#L154)
https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-pool-workers/src/worker/lib/mlly.ts#L9
https://github.com/unjs/mlly/blob/71563c22ec7dbf25672d46bc679619dbd65e79d2/src/cjs.ts#L34
https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-pool-workers/src/worker/lib/node/http.cts#L1
https://github.com/nodejs/node/blob/b7d2827ce080f3a347db245a77fd14df12bb8750/lib/_http_server.js#L113C1-L177C3
https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-pool-workers/src/worker/lib/node/url.ts#L44
// https://github.com/denoland/deno_std/blob/01a401c432fd5628efd3a4fafffdc14660efe9e2/node/url.ts#L1391
https://github.com/cloudflare/workers-sdk/tree/main/packages/vitest-pool-workers/src/worker/lib/node/url.ts#L5
// https://github.com/denoland/deno_std/blob/01a401c432fd5628efd3a4fafffdc14660efe9e2/node/url.ts#L1286
https://github.com/cloudflare/workers-sdk/tree/main/packages/workers-playground/src/QuickEditor/module-collection.ts#L1
Adapted from
https://github.com/cloudflare/workers-sdk/blob/0a77990457652af36c60c52bf9c38c3a69945de4/packages/wrangler/src/module-collection.ts
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/bin/wrangler.js#L59
semiver implementation via
https://github.com/lukeed/semiver/blob/ae7eebe6053c96be63032b14fb0b68e2553fcac4/src/index.js
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/CHANGELOG.md#L4895
- [npm](https://github.com/npm/cli/blob/1415b4bdeeaabb6e0ba12b6b1b0cc56502bd64ab/lib/utils/config/definitions.js#L1945-L1979)
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/CHANGELOG.md#L4896
- [pnpm](https://github.com/pnpm/pnpm/blob/cd4f9341e966eb8b411462b48ff0c0612e0a51a7/packages/plugin-commands-script-runners/src/makeEnv.ts#L14)
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/CHANGELOG.md#L6041
There's some interference between our data fetching library `undici` and node
18's new `fetch` and co. (powered by `undici` internally) which replaces the
filename of `File`s attached to `FormData`s with a generic `blob` (likely this
code -
https://github.com/nodejs/undici/blob/615f6170f4bd39630224c038d1ea5bf505d292af/lib/fetch/formdata.js#L246-L250).
It's still not clear why it does so, and it's hard to make an isolated example
of this.
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/src/d1/splitter.ts#L6
* See
* https://github.com/ForbesLindesay/atdatabases/blob/103c1e7/packages/split-sql-query/src/index.ts
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/src/dev/miniflare.ts#L84
// https://github.com/cloudflare/workerd/blob/9e915ed637d65adb3c57522607d2cd8b8d692b6b/src/workerd/io/worker.c%2B%2B#L1920-L1921
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/src/https-options.ts#L10
See
https://github.com/cloudflare/miniflare/blob/870b401ef5/packages/http-server/src/plugin.ts#L313-L397
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/src/index.ts#L120
// args["legacy-env"] in
// https://github.com/cloudflare/workers-sdk/blob/b24aeb5722370c2e04bce97a84a1fa1e55725d79/packages/wrangler/src/config/validation.ts#L94-L98
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/src/index.ts#L844
// https://github.com/vadimdemedes/ink/blob/546fe16541fd05ad4e638d6842ca4cbe88b4092b/src/components/App.tsx#L138-L148
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/src/package-manager.ts#L199
* -
* [npm](https://github.com/npm/cli/blob/1415b4bdeeaabb6e0ba12b6b1b0cc56502bd64ab/lib/utils/config/definitions.js#L1945-L1979)
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/src/package-manager.ts#L200
* -
* [pnpm](https://github.com/pnpm/pnpm/blob/cd4f9341e966eb8b411462b48ff0c0612e0a51a7/packages/plugin-commands-script-runners/src/makeEnv.ts#L14)
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/src/sites.ts#L315
// https://github.com/nodejs/undici/blob/a3efc9814447001a43a976f1c64adc41995df7e3/lib/core/errors.js#L89
https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/src/sourcemap.ts#L265
https://github.com/felixge/node-stack-trace/blob/4c41a4526e74470179b3b6dd5d75191ca8c56c17/index.js
https://github.com/cloudflare/workers-sdk/tree/main/templates/examples/youtube-thumbnail-with-images/src/index.js#L17
"https://github.com/lauragift21/social-image-demo/blob/1ed9044463b891561b7438ecdecbdd9da48cdb03/assets/cover.png?raw=true";