hunk.code_window:             analyticsProperties.remove("request");
           }
           TrackMessage.Builder messageBuilder = TrackMessage.builder(event).userId(userId);
  
hunk.labels: add keep keep keep
hunk.after_edit:             if (!CollectionUtils.isEmpty(analyticsProperties)) {
                   for (final Map.Entry<String, Object> entry : analyticsProperties.entrySet()) {
                       if (entry.getValue() == null) {
                           analyticsProperties.put(entry.getKey(), "");
                       } else if (entry.getValue().equals(userId)) {
                           analyticsProperties.put(entry.getKey(), hashedUserId);
                       }
                   }
               }
               userId = hashedUserId;
  
hunk.file_path: app/server/appsmith-server/src/main/java/com/appsmith/server/services/AnalyticsService.java
hunk.type: add
file: import { createGlobalStyle } from "styled-components";
  import { EditorTheme } from "components/editorComponents/CodeEditor/EditorConfig";
  import { getTypographyByKey, Theme } from "constants/DefaultTheme";
  
  export const CodemirrorHintStyles = createGlobalStyle<{
    editorTheme: EditorTheme;
    theme: Theme;
  }>`
    .CodeMirror-hints {
      position: absolute;
      z-index: 20;
      overflow: hidden;
      list-style: none;
      margin-top: ${(props) => props.theme.spaces[3]}px;
      padding: 0px 0px;
      font-size: 90%;
      font-family: monospace;
      max-height: 20em;
      overflow-y: auto;
      background: ${(props) =>
        props.editorTheme === EditorTheme.LIGHT ? "#FAFAFA" : "#262626"};
      box-shadow: 0px 12px 28px -6px rgba(0, 0, 0, 0.32);
      border-radius: 0px;
    }
  
    .CodeMirror-hint {
      height: 24px;
      color: ${(props) =>
        props.editorTheme === EditorTheme.LIGHT ? "#090707" : "#FFFFFF"};
      cursor: pointer;
      display: flex;
      min-width: 220px;
      width: auto;
      align-items: center;
      font-size: 12px;
      line-height: 15px;
      letter-spacing: -0.24px;
      &:hover {
        background: ${(props) =>
          props.editorTheme === EditorTheme.LIGHT ? "#E8E8E8" : "#157A96"};
        border-radius: 0px;
        color: #090707;
        &:after {
          color: #090707;
        }
      }
    }
  
    .CodeMirror-command-header {
      padding: 0 ${(props) => props.theme.spaces[3]}px;
      color: #716e6e;
      pointer-events: none !important;
      font-family: ${(props) => props.theme.fonts.text};
      ${(props) => getTypographyByKey(props, "p3")}
      font-weight: 600;
    }
  
    .CodeMirror-commands {
      color: #4b4848;
      position: relative;
      padding: 0 ${(props) => props.theme.spaces[3]}px !important;
      height: 25px;
      font-family: ${(props) => props.theme.fonts.text};
      ${(props) => getTypographyByKey(props, "p3")}
      &:hover, &.CodeMirror-hint-active {
        svg {
          path {
            fill: #ffffff;
          }
        }
        .shortcut {
          color: #ffffff;
        }
      }
      .command-container {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex: 1;
      }
      .command {
        display: flex;
        align-items: center;
        img {
          height: 12px;
          width: 12px;
          margin-right: 7px;
        }
        svg {
          height: 12px;
          width: 12px;
          margin-right: 7px;
        }
      }
      .shortcut {
        font-style: italic;
        font-size: 10px;
        color: #a9a7a7;
        margin-left: auto;
      }
    }
  
    .CodeMirror-hint-header {
      padding-left: 8px;
      color: #4B4848;
      pointer-events: none !important;
      font-weight: 600;
    }
  
    .datasource-hint {
      padding: 10px 20px 10px 10px !important;
      display: block;
      width: 500px;
      height: 32px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      background: #FAFAFA;
      color: black;
      &.custom {
        height: unset;
        background: #ebebeb;
        width: 600px;
        &:hover{
          background: #ffffff;
          color: black;
        }
        &.CodeMirror-hint-active {
          background: #ffffff;
        }
      }
  
      &.invalid {
        color: ${(props) => props.theme.colors.errorMessage};
      }
    }
    .CodeMirror-Tern-completion {
      display: flex;
      padding-left: ${(props) => props.theme.spaces[11]}px !important;
      &:hover{
        background: ${(props) =>
          props.editorTheme === EditorTheme.LIGHT ? "#E8E8E8" : "#157A96"};
        color: #090707;
        &:after {
          color: #090707;
        }
      }
    }
    .CodeMirror-Tern-completion:before {
      left: 7px;
      bottom: 6px;
      height: 12px;
      width: 12px;
      border-radius: 0;
      font-size: 10px;
      line-height: 12px;
      font-weight: normal;
      text-align: center;
      color: ${(props) => props.theme.colors.codeMirror.dataType.shortForm};
      margin-right: ${(props) => props.theme.spaces[13]}px;
    }
    .CodeMirror-Tern-completion-fn:before {
      background: ${(props) => props.theme.colors.dataTypeBg.function};
    }
    .CodeMirror-Tern-completion-object:before {
      background: ${(props) => props.theme.colors.dataTypeBg.object};
    }
    .CodeMirror-Tern-completion-unknown:before {
      background: ${(props) => props.theme.colors.dataTypeBg.unknown};
    }
    .CodeMirror-Tern-completion-array:before {
      background: ${(props) => props.theme.colors.dataTypeBg.array};
    }
    .CodeMirror-Tern-completion-number:before, .CodeMirror-Tern-completion-string:before, .CodeMirror-Tern-completion-bool:before {
      background: ${(props) => props.theme.colors.dataTypeBg.number};
    }
    .CodeMirror-Tern-completion:after {
      display: flex;
      justify-content: flex-end;
      flex: 1;
      padding-right: 10px;
      font-style: italic;
      font-weight: normal;
      font-size: 10px;
      line-height: 13px;
      letter-spacing: -0.24px;
      padding-left: 10px;
      color: ${(props) => props.theme.colors.codeMirror.dataType.fullForm};
    }
    .CodeMirror-Tern-completion-fn:after {
      content: "Function";
    }
    .CodeMirror-Tern-completion-object:after {
      content: "Object";
    }
    .CodeMirror-Tern-completion-unknown:after {
      content: "Unknown";
    }
    .CodeMirror-Tern-completion-array:after {
      content: "Array";
    }
    .CodeMirror-Tern-completion-number:after {
      content: "Number";
    }
    .CodeMirror-Tern-completion-string:after {
      content: "String";
    }
    .CodeMirror-Tern-completion-bool:after {
      content: "Boolean";
    }
    .CodeMirror-Tern-tooltip {
      z-index: 20 !important;
    }
    li.CodeMirror-hint-active {
      background: #6A86CE;
      border-radius: 0px;
      color: #fff;
      &:after {
        color: #fff;
      }
      &:hover {
        background: #6A86CE;
        color: #fff;
        &:after {
          color: #fff;
        }
      }
    }
    .CodeMirror-Tern-hint-doc {
      display: none;
      &.visible {
        display: block;
        background-color: ${(props) =>
          props.editorTheme === EditorTheme.DARK ? "#23292e" : "#fff"} !important;
        color: ${(props) =>
          props.editorTheme === EditorTheme.DARK
            ? "#F4F4F4"
            : "#1E242B"} !important;
        max-height: 150px;
        width: 250px;
        font-size: 12px;
        padding: 5px !important;
        border: 1px solid !important;
        border-color: ${(props) =>
          props.editorTheme === EditorTheme.DARK
            ? "#23292e"
            : "#DEDEDE"} !important;
        box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.12) !important;
        overflow: scroll;
      }
  
    }
  `;
  