helloadhavan/github_issues huggingface dataset:
Repository: nodejs/node
Pull request: test: mark test-inspector-network-fetch as flaky on Windows

The first failure happened in https://github.com/nodejs/node/pull/58077 which is likely related. @islandryu is investigating but meanwhile IMO it would be better to mark it as flaky to unblock the CI since this has failed a lot of Windows CIs since the security embargo is lifted. (https://ci.nodejs.org/job/node-test-binary-windows-js-suites/ is almost all red)

Refs: https://github.com/nodejs/node/issues/59090

<!--
Before submitting a pull request, please read:

- the CONTRIBUTING guide at https://github.com/nodejs/node/blob/HEAD/CONTRIBUTING.md
- the commit message formatting guidelines at
  https://github.com/nodejs/node/blob/HEAD/doc/contributing/pull-requests.md#commit-message-guidelines

For code changes:
1. Include tests for any bug fixes or new features.
2. Update documentation if relevant.
3. Ensure that `make -j4 test` (UNIX), or `vcbuild test` (Windows) passes.

If you believe this PR should be highlighted in the Node.js CHANGELOG
please add the `notable-change` label.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.
-->


Changed files:
filename: test/parallel/parallel.status
patch: @@ -26,6 +26,8 @@ test-async-context-frame: PASS, FLAKY
 test-runner-run-watch: PASS, FLAKY
 # https://github.com/nodejs/node/issues/56794
 test-fs-cp: PASS, FLAKY
+# https://github.com/nodejs/node/issues/59090
+test-inspector-network-fetch: PASS, FLAKY
 
 # https://github.com/nodejs/node/issues/56751
 test-without-async-context-frame: PASS, FLAKY
Repository: facebook/react
Pull request: [compiler:publish] Don't hash node_modules

Stack from [ghstack](https://github.com/ezyang/ghstack) (oldest at bottom):
* #29153
* #29150
* #29149
* __->__ #29147
* #29148



Changed files:
filename: compiler/scripts/release/publish-manual.js
patch: @@ -157,7 +157,8 @@ async function main() {
       const pkgDir = path.resolve(__dirname, `../../packages/${pkgName}`);
       const { hash } = await hashElement(pkgDir, {
         encoding: "hex",
-        files: { exclude: [".DS_Store", "node_modules"] },
+        folders: { exclude: ["node_modules"] },
+        files: { exclude: [".DS_Store"] },
       });
       const truncatedHash = hash.slice(0, 7);
       const newVersion = `0.0.0-experimental-${truncatedHash}-${dateString}`;
Repository: ollama/ollama
Pull request: Added message format for chat api


Changed files:
filename: docs/api.md
patch: @@ -304,6 +304,10 @@ Generate the next message in a chat with a provided model. This is a streaming e
 - `model`: (required) the [model name](#model-names)
 - `messages`: the messages of the chat, this can be used to keep a chat memory
 
+  A message is an object with the following fields:
+  - `role`: the role of the message, either `user`, `assistant` or `system`
+  - `content`: the content of the message
+
 Advanced parameters (optional):
 
 - `format`: the format to return a response in. Currently the only accepted value is `json`
Repository: huggingface/transformers
Pull request: 🔴 Update Glm4V to use config values

# What does this PR do?

As discussed earlier, we should use config values which authors confirmed are correct. Kinda breaking, so marking it with 🔴

Probably will need update slow tests as well, let's see what CI says

Changed files:
filename: src/transformers/models/glm4v/image_processing_glm4v.py
patch: @@ -369,13 +369,14 @@ def preprocess(
                 - `"none"` or `ChannelDimension.NONE`: image in (height, width) format.
 
         """
+        # Try to use config values if set, otherwise fallback to global defaults
+        size = size if size is not None else self.size
         if size is not None and ("shortest_edge" not in size or "longest_edge" not in size):
             raise ValueError("size must contain 'shortest_edge' and 'longest_edge' keys.")
         elif size is None:
             size = {"shortest_edge": 112 * 112, "longest_edge": 28 * 28 * 15000}
 
         do_resize = do_resize if do_resize is not None else self.do_resize
-
         resample = resample if resample is not None else self.resample
         do_rescale = do_rescale if do_rescale is not None else self.do_rescale
         rescale_factor = rescale_factor if rescale_factor is not None else self.rescale_factor

filename: src/transformers/models/glm4v/modular_glm4v.py
patch: @@ -1508,6 +1508,7 @@ class Glm4vProcessorKwargs(Qwen2_VLProcessorKwargs):
     _defaults = {
         "text_kwargs": {
             "padding": False,
+            "return_token_type_ids": False,
             "return_mm_token_type_ids": False,
         },
         "videos_kwargs": {"return_metadata": True},

filename: src/transformers/models/glm4v/processing_glm4v.py
patch: @@ -48,6 +48,7 @@ class Glm4vProcessorKwargs(ProcessingKwargs, total=False):
     _defaults = {
         "text_kwargs": {
             "padding": False,
+            "return_token_type_ids": False,
             "return_mm_token_type_ids": False,
         },
         "videos_kwargs": {"return_metadata": True},
Repository: facebook/react
Pull request: [compiler:publish] Rename publish script

Stack from [ghstack](https://github.com/ezyang/ghstack) (oldest at bottom):
* #29153
* #29150
* #29149
* #29147
* __->__ #29148



Changed files:
filename: compiler/scripts/release/publish-manual.js
patch: @@ -130,7 +130,7 @@ async function main() {
       spinner.start(`Running npm pack --dry-run\n`);
       try {
         await spawnHelper("npm", ["pack", "--dry-run"], {
-          cwd: path.resolve(__dirname, `../packages/${pkgName}`),
+          cwd: path.resolve(__dirname, `../../packages/${pkgName}`),
           stdio: "inherit",
         });
       } catch (e) {
@@ -154,7 +154,7 @@ async function main() {
     const dateString = await getDateStringForCommit(commit);
 
     for (const pkgName of pkgNames) {
-      const pkgDir = path.resolve(__dirname, `../packages/${pkgName}`);
+      const pkgDir = path.resolve(__dirname, `../../packages/${pkgName}`);
       const { hash } = await hashElement(pkgDir, {
         encoding: "hex",
         files: { exclude: [".DS_Store"] },
@@ -195,7 +195,7 @@ async function main() {
     }
 
     for (const pkgName of pkgNames) {
-      const pkgDir = path.resolve(__dirname, `../packages/${pkgName}`);
+      const pkgDir = path.resolve(__dirname, `../../packages/${pkgName}`);
       console.log(`\n========== ${pkgName} ==========\n`);
       spinner.start(`Publishing ${pkgName} to npm\n`);
Repository: denoland/deno
Pull request: fix: update permission-broker-response.v1.json

It specified "grant" instead of "allow" by mistake.

Changed files:
filename: cli/schemas/permission-broker-response.v1.json
patch: @@ -12,7 +12,7 @@
     "result": {
       "description": "The result of the check, tells Deno if the request should be granted or rejected",
       "enum": [
-        "grant",
+        "allow",
         "deny"
       ]
     },
Repository: ollama/ollama
Pull request: add image support to the chat api

This change allows multimodal vision models to be able to be used in the chat API.


Changed files:
filename: api/types.go
patch: @@ -57,8 +57,9 @@ type ChatRequest struct {
 }
 
 type Message struct {
-	Role    string `json:"role"` // one of ["system", "user", "assistant"]
-	Content string `json:"content"`
+	Role    string      `json:"role"` // one of ["system", "user", "assistant"]
+	Content string      `json:"content"`
+	Images  []ImageData `json:"images, omitempty"`
 }
 
 type ChatResponse struct {

filename: server/images.go
patch: @@ -86,9 +86,10 @@ func (m *Model) Prompt(p PromptVars) (string, error) {
 	return prompt.String(), nil
 }
 
-func (m *Model) ChatPrompt(msgs []api.Message) (string, error) {
+func (m *Model) ChatPrompt(msgs []api.Message) (string, []api.ImageData, error) {
 	// build the prompt from the list of messages
 	var prompt strings.Builder
+	var currentImages []api.ImageData
 	currentVars := PromptVars{
 		First: true,
 	}
@@ -108,35 +109,36 @@ func (m *Model) ChatPrompt(msgs []api.Message) (string, error) {
 		case "system":
 			if currentVars.System != "" {
 				if err := writePrompt(); err != nil {
-					return "", err
+					return "", nil, err
 				}
 			}
 			currentVars.System = msg.Content
 		case "user":
 			if currentVars.Prompt != "" {
 				if err := writePrompt(); err != nil {
-					return "", err
+					return "", nil, err
 				}
 			}
 			currentVars.Prompt = msg.Content
+			currentImages = msg.Images
 		case "assistant":
 			currentVars.Response = msg.Content
 			if err := writePrompt(); err != nil {
-				return "", err
+				return "", nil, err
 			}
 		default:
-			return "", fmt.Errorf("invalid role: %s, role must be one of [system, user, assistant]", msg.Role)
+			return "", nil, fmt.Errorf("invalid role: %s, role must be one of [system, user, assistant]", msg.Role)
 		}
 	}
 
 	// Append the last set of vars if they are non-empty
 	if currentVars.Prompt != "" || currentVars.System != "" {
 		if err := writePrompt(); err != nil {
-			return "", err
+			return "", nil, err
 		}
 	}
 
-	return prompt.String(), nil
+	return prompt.String(), currentImages, nil
 }
 
 type ManifestV2 struct {

filename: server/routes.go
patch: @@ -994,7 +994,7 @@ func ChatHandler(c *gin.Context) {
 
 	checkpointLoaded := time.Now()
 
-	prompt, err := model.ChatPrompt(req.Messages)
+	prompt, images, err := model.ChatPrompt(req.Messages)
 	if err != nil {
 		c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
 		return
@@ -1037,6 +1037,7 @@ func ChatHandler(c *gin.Context) {
 			Format:           req.Format,
 			CheckpointStart:  checkpointStart,
 			CheckpointLoaded: checkpointLoaded,
+			Images:           images,
 		}
 		if err := loaded.runner.Predict(c.Request.Context(), predictReq, fn); err != nil {
 			ch <- gin.H{"error": err.Error()}
Repository: ggml-org/llama.cpp
Pull request: sched : fix reserve ignoring user tensor assignments

Calling `ggml_backend_sched_reset` before splitting the graph was causing the user tensor backend assignments to be reset, which in turn causes future allocations to require a full re-allocation of the graph, which disables pipeline parallelism. I don't remember why I added this, but it is definitely wrong.

Fixes #17163

Changed files:
filename: ggml/src/ggml-backend.cpp
patch: @@ -1698,8 +1698,6 @@ bool ggml_backend_sched_reserve(ggml_backend_sched_t sched, struct ggml_cgraph *
     GGML_ASSERT(sched);
     GGML_ASSERT((int)sched->hash_set.size >= measure_graph->n_nodes + measure_graph->n_leafs);
 
-    ggml_backend_sched_reset(sched);
-
     ggml_backend_sched_synchronize(sched);
 
     ggml_backend_sched_split_graph(sched, measure_graph);
Repository: nodejs/node
Pull request: build: remove suppressions.supp

**build: remove suppressions.supp**
```
We have removed the UBSan workflow
and there's no ongoing initiative to
bring it back.
```


Changed files:
filename: suppressions.supp
patch: @@ -1,6 +0,0 @@
-vptr:deps/icu-small/source/common/uloc_tag.cpp
-vptr:deps/icu-small/source/common/unistr.cpp
-shift-base:deps/v8/src/wasm/decoder.h
-vptr:deps/icu-small/source/common/sharedobject.cpp
-vptr:deps/icu-small/source/i18n/coll.cpp
-nonnull-attribute:deps/v8/src/snapshot/snapshot-source-sink.h
Repository: ollama/ollama
Pull request: remove per-model types

mostly replaced by decoding tensors except ggml models which only support llama

Changed files:
filename: llm/falcon.go
patch: @@ -1,20 +0,0 @@
-package llm
-
-const (
-	falconModelType7B   = 32
-	falconModelType40B  = 60
-	falconModelType180B = 80
-)
-
-func falconModelType(numLayer uint32) string {
-	switch numLayer {
-	case 32:
-		return "7B"
-	case 60:
-		return "40B"
-	case 80:
-		return "180B"
-	default:
-		return "unknown"
-	}
-}

filename: llm/gguf.go
patch: @@ -120,27 +120,6 @@ func (llm *ggufModel) ModelType() string {
 		return format.HumanNumber(llm.parameters)
 	}
 
-	switch llm.ModelFamily() {
-	case "llama":
-		if blocks, ok := llm.kv["llama.block_count"].(uint32); ok {
-			heads, headsOK := llm.kv["llama.head_count"].(uint32)
-			headKVs, headsKVsOK := llm.kv["llama.head_count_kv"].(uint32)
-			if headsOK && headsKVsOK && heads/headKVs == 8 {
-				return "70B"
-			}
-
-			return llamaModelType(blocks)
-		}
-	case "falcon":
-		if blocks, ok := llm.kv["falcon.block_count"].(uint32); ok {
-			return falconModelType(blocks)
-		}
-	case "starcoder":
-		if blocks, ok := llm.kv["starcoder.block_count"].(uint32); ok {
-			return starCoderModelType(blocks)
-		}
-	}
-
 	return "unknown"
 }
 

filename: llm/starcoder.go
patch: @@ -1,23 +0,0 @@
-package llm
-
-const (
-	starCoderModelType1B  = 24
-	starCoderModelType3B  = 36
-	starCoderModelType7B  = 42
-	starCoderModelType15B = 40
-)
-
-func starCoderModelType(numLayer uint32) string {
-	switch numLayer {
-	case 24:
-		return "1B"
-	case 36:
-		return "3B"
-	case 42:
-		return "7B"
-	case 40:
-		return "15B"
-	default:
-		return "unknown"
-	}
-}
Repository: ggml-org/llama.cpp
Pull request: ggml-cpu:add RISC-V vector intrinsic support for silu and cvar operat…

This commit adds RISC-V vector intrinsic implementations for the ggml_vec_silu_f32 and ggml_vec_cvar_f32 functions, similar to the existing optimizations for other architectures (AVX, SSE, NEON, SVE).

Changed files:
filename: ggml/src/ggml-cpu/vec.cpp
patch: @@ -360,6 +360,13 @@ void ggml_vec_silu_f32(const int n, float * y, const float * x) {
     for (; i + 3 < n; i += 4) {
         vst1q_f32(y + i, ggml_v_silu(vld1q_f32(x + i)));
     }
+#elif defined(__riscv_v_intrinsic)
+    for (int vl; i < n; i += vl) {
+        vl = __riscv_vsetvl_e32m2(n - i);
+        vfloat32m2_t vx = __riscv_vle32_v_f32m2(&x[i], vl);
+        vfloat32m2_t vy = ggml_v_silu_m2(vx, vl);
+        __riscv_vse32_v_f32m2(&y[i], vy, vl);
+    }
 #endif
     for (; i < n; ++i) {
         y[i] = ggml_silu_f32(x[i]);
@@ -460,6 +467,16 @@ ggml_float ggml_vec_cvar_f32(const int n, float * y, const float * x, const floa
         val = vec_mul(val, val);
         sum += (ggml_float)vec_hsum_f32x4(val);
     }
+#elif defined(__riscv_v_intrinsic)
+    vfloat64m1_t vsum = __riscv_vfmv_v_f_f64m1(0, 1);
+    for (int vl; i < n; i += vl) {
+        vl = __riscv_vsetvl_e32m2(n - i);
+        vfloat32m2_t val = __riscv_vfsub_vf_f32m2(__riscv_vle32_v_f32m2(&x[i], vl), mean, vl);
+        __riscv_vse32_v_f32m2(&y[i], val, vl);
+        val = __riscv_vfmul_vv_f32m2(val, val, vl);
+        vsum = __riscv_vfwredusum_vs_f32m2_f64m1(val, vsum, vl);
+    }
+    sum = (ggml_float)__riscv_vfmv_f_s_f64m1_f64(vsum);
 #endif
     for (; i < n; ++i) {
         float val = x[i] - mean;
Repository: denoland/deno
Pull request: fix(node): ensure process.argv is an array of strings

This PR resolves #30964  where process.argv returned getter functions rather than string values.
The fix removes the getter definitions and initializes argv[0] and argv[1] directly during __bootstrapNodeProcess  aligning with Node.js behavior 

I previously opened a PR  #31287 for this issue  and I worked on the feedback provided This version addresses the concerns raised (such as reverting whitespace changes) and includes the corrected implementation 

Changed files:
filename: ext/node/polyfills/process.ts
patch: @@ -1015,18 +1015,6 @@ function synchronizeListeners() {
   }
 }
 
-// Overwrites the 1st and 2nd items with getters.
-Object.defineProperty(argv, "0", { get: () => argv0 });
-Object.defineProperty(argv, "1", {
-  get: () => {
-    if (Deno.mainModule?.startsWith("file:")) {
-      return pathFromURL(new URL(Deno.mainModule));
-    } else {
-      return join(Deno.cwd(), "$deno$node.mjs");
-    }
-  },
-});
-
 internals.dispatchProcessBeforeExitEvent = dispatchProcessBeforeExitEvent;
 internals.dispatchProcessExitEvent = dispatchProcessExitEvent;
 // Should be called only once, in `runtime/js/99_main.js` when the runtime is
@@ -1040,6 +1028,10 @@ internals.__bootstrapNodeProcess = function (
 ) {
   if (!warmup) {
     argv0 = argv0Val || "";
+    argv[0] = argv0;
+    argv[1] = Deno.mainModule?.startsWith("file:")
+      ? pathFromURL(new URL(Deno.mainModule))
+      : join(Deno.cwd(), "$deno$node.mjs");
     // Manually concatenate these arrays to avoid triggering the getter
     for (let i = 0; i < args.length; i++) {
       argv[i + 2] = args[i];

filename: tests/specs/run/node_builtin_modules/mod.js.out
patch: @@ -1,3 +1,8 @@
 [Function: createRequire]
 v[WILDCARD].[WILDCARD].[WILDCARD]
-[ [Getter], [Getter], "hello", "there" ]
+[
+  "[WILDCARD]",
+  "[WILDCARD]mod.js",
+  "hello",
+  "there"
+]

filename: tests/specs/run/node_builtin_modules/mod.ts.out
patch: @@ -1,3 +1,8 @@
 [Function: createRequire]
 v[WILDCARD].[WILDCARD].[WILDCARD]
-[ [Getter], [Getter], "hello", "there" ]
+[
+  "[WILDCARD]",
+  "[WILDCARD]mod.ts",
+  "hello",
+  "there"
+]
Repository: facebook/react
Pull request: [Compiler][script] Dedupe error report counts before reporting in healthcheck

Certain compiler passes currently may collect a few error events before reporting (see https://github.com/facebook/react/blob/main/compiler/packages/babel-plugin-react-compiler/src/Entrypoint/Program.ts#L101-L107)

Changed files:
filename: compiler/packages/react-compiler-healthcheck/src/checks/reactCompiler.ts
patch: @@ -13,15 +13,18 @@ import BabelPluginReactCompiler, {
   type CompilerErrorDetailOptions,
   type PluginOptions,
 } from "babel-plugin-react-compiler/src";
-import { LoggerEvent } from "babel-plugin-react-compiler/src/Entrypoint";
+import { LoggerEvent as RawLoggerEvent } from "babel-plugin-react-compiler/src/Entrypoint";
 import chalk from "chalk";
 
+type LoggerEvent = RawLoggerEvent & {filename: string | null};
+
 const SucessfulCompilation: Array<LoggerEvent> = [];
 const ActionableFailures: Array<LoggerEvent> = [];
 const OtherFailures: Array<LoggerEvent> = [];
 
 const logger = {
-  logEvent(_: string | null, event: LoggerEvent) {
+  logEvent(filename: string | null, rawEvent: RawLoggerEvent) {
+    const event = {...rawEvent, filename};
     switch (event.kind) {
       case "CompileSuccess": {
         SucessfulCompilation.push(event);
@@ -104,6 +107,29 @@ function compile(sourceCode: string, filename: string) {
 
 const JsFileExtensionRE = /(js|ts|jsx|tsx)$/;
 
+/**
+ * Counts unique source locations (filename + function definition location)
+ * in source.
+ * The compiler currently occasionally emits multiple error events for a
+ * single file (e.g. to report multiple rules of react violations in the
+ * same pass).
+ * TODO: enable non-destructive `CompilerDiagnostic` logging in dev mode,
+ * and log a "CompilationStart" event for every function we begin processing.
+ */
+function countUniqueLocInEvents(events: Array<LoggerEvent>): number {
+  const seenLocs = new Set<string>();
+  let count = 0;
+  for (const e of events) {
+    if (e.filename != null && e.fnLoc != null) {
+      seenLocs.add(`${e.filename}:${e.fnLoc.start}:${e.fnLoc.end}`);
+    } else {
+      // failed to dedup due to lack of source locations
+      count++;
+    }
+  }
+  return count + seenLocs.size;
+}
+
 export default {
   run(source: string, path: string): void {
     if (JsFileExtensionRE.exec(path) !== null) {
@@ -114,8 +140,8 @@ export default {
   report(): void {
     const totalComponents =
       SucessfulCompilation.length +
-      OtherFailures.length +
-      ActionableFailures.length;
+      countUniqueLocInEvents(OtherFailures) + 
+      countUniqueLocInEvents(ActionableFailures)
     console.log(
       chalk.green(
         `Successfully compiled ${SucessfulCompilation.length} out of ${totalComponents} components.`
Repository: vercel/next.js
Pull request: auto-enable errors.json merge driver

The merge driver for `errors.json` has been around for a while, and seems to work without issues. This PR enables it by default by installing it in `postinstall`(via the existing `git-configure.mjs` script which is invoked from there already)

It also adds `scripts/merge-errors-json/uninstall` to temporarily disable it in case of issues. If the driver crashes, we'll also print instructions on how to disable it.


Changed files:
filename: scripts/git-configure.mjs
patch: @@ -1,12 +1,19 @@
+// @ts-check
 import execa from 'execa'
 
 // See https://github.com/vercel/next.js/pull/47375
-const { stdout, stderr } = await execa(
-  'git',
-  ['config', 'index.skipHash', 'false'],
-  {
-    reject: false,
-  }
-)
+await execa('git', ['config', 'index.skipHash', 'false'], {
+  stdio: 'inherit',
+  reject: false,
+})
 
-console.log(stderr + stdout)
+// Enable the errors.json git merge driver.
+// It can be disabled by running:
+//
+//   scripts/merge-errors-json/uninstall
+//
+// or by manually removing the `[merge "errors-json"]` section from your .git/config.
+await execa('scripts/merge-errors-json/install', [], {
+  stdio: 'inherit',
+  reject: false,
+})

filename: scripts/merge-errors-json/merge.mjs
patch: @@ -50,6 +50,16 @@ function main() {
     process.exit(0)
   } catch (error) {
     console.error('merge-errors-json: merge failed:', error.message)
+    console.error()
+    console.error(
+      [
+        'if this error persists, you can disable the merge driver by running',
+        '',
+        '  scripts/merge-errors-json/uninstall',
+        '',
+        'or by manually removing the `[merge "errors-json"]` section from your .git/config.',
+      ].join('\n')
+    )
     process.exit(1)
   }
 }

filename: scripts/merge-errors-json/uninstall
patch: @@ -0,0 +1,3 @@
+#!/bin/sh
+driver_name='errors-json'
+git config --remove-section merge."$driver_name"
Repository: facebook/react
Pull request: compiler: update comment on memo cache import code

Stack from [ghstack](https://github.com/ezyang/ghstack) (oldest at bottom):
* __->__ #29142

Fixes a stale comment since this caused confusion in https://github.com/facebook/react/pull/29057#issuecomment-2114747031

Changed files:
filename: compiler/packages/babel-plugin-react-compiler/src/Entrypoint/Imports.ts
patch: @@ -94,7 +94,7 @@ function hasExistingNonNamespacedImportOfModule(
 }
 
 /*
- * If an existing import of React exists (ie `import {useMemo} from '<runtimeModule>'`), inject useMemoCache
+ * If an existing import of React exists (ie `import { ... } from '<moduleName>'`), inject useMemoCache
  * into the list of destructured variables.
  */
 function addMemoCacheFunctionSpecifierToExistingImport(