Giter Club home page Giter Club logo

pinecone-ts-client's People

Contributors

aulorbe avatar austin-denoble avatar gdj0nes avatar glody007 avatar jhamon avatar mikeralphson avatar omarestrella avatar omikader avatar rschwabco avatar salmonmode avatar tdonia avatar yaakovs avatar zackproser avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pinecone-ts-client's Issues

Method Response Body Includes Axios Response

Everything works great, but just have to add .data to the object returned. Not sure if this is expected behavior or not, but it does differ from what's shown in the docs.

const list = await client.listIndexes();
console.log(list)
{
  status: 200,
  statusText: 'OK',
  headers: AxiosHeaders {
    'content-type': 'application/json; charset=UTF-8',
    date: 'Wed, 25 Jan 2023 22:32:33 GMT',
    'x-envoy-upstream-service-time': '77',
    'content-length': '20',
    server: 'envoy',
    connection: 'close'
  },
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false
    },
    adapter: [ 'xhr', 'http' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: AxiosHeaders {
      Accept: 'application/json, text/plain, */*',
      'Api-Key': '0067fd0c-3309-4615-91ad-1a6cde58d0f1',
      'User-Agent': 'axios/1.2.4',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    method: 'get',
    url: 'https://controller.us-east1-gcp.pinecone.io/databases',
    data: undefined
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: false,
    _last: true,
    chunkedEncoding: false,
    shouldKeepAlive: false,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: false,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    _contentLength: 0,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: false,
    socket: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'controller.us-east1-gcp.pinecone.io',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 10,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'controller.us-east1-gcp.pinecone.io',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _maxListeners: undefined,
      _writableState: [WritableState],
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [Circular *1],
      [Symbol(res)]: [TLSWrap],
      [Symbol(verified)]: true,
      [Symbol(pendingSession)]: null,
      [Symbol(async_id_symbol)]: 23,
      [Symbol(kHandle)]: [TLSWrap],
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: null,
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kSetNoDelay)]: false,
      [Symbol(kSetKeepAlive)]: true,
      [Symbol(kSetKeepAliveInitialDelay)]: 60,
      [Symbol(kBytesRead)]: 0,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(connect-options)]: [Object]
    },
    _header: 'GET /databases HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Api-Key: 0067fd0c-3309-4615-91ad-1a6cde58d0f1\r\n' +
      'User-Agent: axios/1.2.4\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: controller.us-east1-gcp.pinecone.io\r\n' +
      'Connection: close\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 443,
      protocol: 'https:',
      options: [Object: null prototype],
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype],
      freeSockets: [Object: null prototype] {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      [Symbol(kCapture)]: false
    },
    socketPath: undefined,
    method: 'GET',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    path: '/databases',
    _ended: true,
    res: IncomingMessage {
      _readableState: [ReadableState],
      _events: [Object: null prototype],
      _eventsCount: 4,
      _maxListeners: undefined,
      socket: [TLSSocket],
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 200,
      statusMessage: 'OK',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      responseUrl: 'https://controller.us-east1-gcp.pinecone.io/databases',
      redirects: [],
      [Symbol(kCapture)]: false,
      [Symbol(kHeaders)]: [Object],
      [Symbol(kHeadersCount)]: 12,
      [Symbol(kTrailers)]: null,
      [Symbol(kTrailersCount)]: 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'controller.us-east1-gcp.pinecone.io',
    protocol: 'https:',
    _redirectable: Writable {
      _writableState: [WritableState],
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 0,
      _requestBodyBuffers: [],
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://controller.us-east1-gcp.pinecone.io/databases',
      [Symbol(kCapture)]: false
    },
    [Symbol(kCapture)]: false,
    [Symbol(kNeedDrain)]: false,
    [Symbol(corked)]: 0,
    [Symbol(kOutHeaders)]: [Object: null prototype] {
      accept: [Array],
      'api-key': [Array],
      'user-agent': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    [Symbol(kUniqueHeaders)]: null
  },
  data: [ 'prod-test-index' ]
}

Error initializing client

I'm getting an error initializing the client:

PineconeClient: Error getting project name: Error: read ECONNRESET

I don't think this line should have controller in it:

const controllerPath = `https://controller.${environment}.pinecone.io`

Some docs reference controller, but it only works when the controller subdomain is not included.

Additionally, this method should not log an error, it should throw, because the client is unusable without the project name.

PineconeClient: Project name not set. Call init() first

Hi!

First day using Pinecone. I followed the steps at https://docs.pinecone.io/docs/node-client but I'm getting an error.

Version: 0.0.8

Code:

 const pinecone = new PineconeClient();
  await pinecone.init({
    environment: "us-east1-gcp",
    apiKey: "SECRET",
  });

  const index = pinecone.Index("websites");

  try {
    const res = await index.upsert({
      upsertRequest: {
        vectors: [
          {
            id: "1",
            values: vector,
          },
        ],
      },
    });
....

Error:

Error: PineconeClient: Project name not set. Call init() first.
    at PineconeClient.Index (./node_modules/@pinecone-database/pinecone/dist/index.js:172:19)
    at insertToVectorCollection (embeddings.js:50:28)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async createIndex (index.js:77:9)

I tried setting the projectName right before the init() but didn't make a difference:

const pinecone = new PineconeClient();
pinecone.projectName = "websites";
await pinecone.init({...

What can I do to fix problem?

Thank you.

[Bug] sorry this is wrong.

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

this is v1.0.1 pinecone node lib
PineconeClient is deprecated after v1.0.0
image

pineconeIndex in PineconeLibArgs must be changed.

Expected Behavior

I want to create PineconeStore object without any errors.

Steps To Reproduce

  1. langchain": "^0.0.150
  2. @pinecone-database/pinecone": "^1.0.1
  3. create PineconeStore class object.

Relevant log output

No response

Environment

- **OS**: windows
- **Language version**: node.js
- **Pinecone client version**: 1.0.1

Additional Context

No response

PineconeClient: Error calling upsert

The error below occurs whenever index.upsert is run, even using the example provided in the doc.

code:

const upsertResponse = await index.upsert({
      upsertRequest: {
        vectors: [
          {
            id: "vec1",
            values: [0.1, 0.2, 0.3, 0.4],
            metadata: {
              genre: "drama",
            },
          },
          {
            id: "vec2",
            values: [0.1, 0.2, 0.3, 0.4],
            metadata: {
              genre: "comedy",
            },
          },
        ],
        namespace: "example-namespace",
      },
    });

Error log:

PineconeClient: Error calling upsert: PineconeClient: Error calling upsertRaw: ResponseError: Response returned an error code  econeClient: Error calling upsertRaw: ResponseError: Response returned an error code

ScoredVector is not exported

Expected behavior

When importing types from @pinecone-database/pinecone, the type ScoredVector is available

Current behavior

When import the type ScoredVector it uses the dist/pinecone-generated-ts location because it is not properly exported

Suggested solution

in the root index ts, ScoredVector should be exported from ./pinecone-generated-ts

[Bug] Error when trying to delete by filter

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

I've tried using the example docs on https://docs.pinecone.io/docs/metadata-filtering#deleting-vectors-by-metadata-filter to delete vectors by filter:
await index._delete({ filter: { category: "favorites", }, });
, and I receive error message:
PineconeError: PineconeClient: Error calling _delete: PineconeError: PineconeClient: Error calling _deleteRaw: RequiredError: Required parameter requestParameters.deleteRequest was null or undefined when calling _delete.

Expected Behavior

Expect the query to execute.

Steps To Reproduce

  1. Add vectors to index with some meta data.
  2. Ensure library is up to date: 0.0.14
  3. Attempt to delete vectors using that meta data.

import { PineconeClient } from '@pinecone-database/pinecone';
const pinecone = new PineconeClient();
const index = pinecone.Index("example");
await index._delete({
filter: {
category: "favorites",
},
});

Relevant log output

error [PineconeError: PineconeClient: Error calling _delete: PineconeError: PineconeClient: Error calling _deleteRaw: RequiredError: Required parameter requestParameters.deleteRequest was null or undefined when calling _delete.]

Environment

- **OS**: Windows
- **Language version**: Node.js 18.14.0
- **Pinecone client version**: 0.0.14

Additional Context

No response

[Bug] createIndex switches to "Ready" state before it is actually is "Ready" for upserting

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

I have a function that programmatically creates a pinecone index. It should be resolved only once the index is "ready" for upserting.

async createIndex(owner: string, repo: string) {
    const name = this.getIndexName(owner, repo)

    await this.client.createIndex({
        createRequest: {
            name,
            dimension: 1536,
        },
    })

    const checkStatus = async () => {
        const { status } = await this.client.describeIndex({
            indexName: name,
        })
        if (status?.state === IndexMetaStatusStateEnum.Ready) {
            return status
        } else {
            return new Promise((resolve) => {
                setTimeout(() => resolve(checkStatus()), 5000)
            })
        }
    }

    const status = await checkStatus()
    return this.getIndex(owner, repo)
}

However, I experience an issue with this approach: even though the status returns me state: "Ready", the upserting command fails. If I create an index manually, the upserting works as intended. Hence, I think the issue is inside the logic that switches state to Ready way too early.

Expected Behavior

index's state switches to "Ready" only when index can be used for operations like upsert.

Steps To Reproduce

  1. Create a sample node application
  2. Install pinecone
  3. Create an instance of the pinecone using new PineconeClient()
  4. Call .createIndex with arbitrary parameters. For example,
const index = await client.createIndex({
    createRequest: {
        name,
        dimension: 1536,
    },
})
  1. Implement a similar function to the one in the example to await for index status to switch to Ready
  2. Try to upsert some data. For example, you can write a function similar to this:
async store(docs: Document[], pineconeIndex: VectorOperationsApi) {
    for (const chunk of this.splitDocuments(docs)) {
        await PineconeStore.fromDocuments(
            chunk,
            new OpenAIEmbeddings({
                verbose: true,
            }),
            {
                pineconeIndex,
            }
        )
    }
}
  1. You will have an error without a stack trace. However, if you pre-create an index and remove index creation part from the code, everything works fine.

Relevant log output

No response

Environment

- **OS**:
- **Language version**:
- **Pinecone client version**:

Additional Context

No response

[Bug] v1.0.0 transpile errors

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

When running npx tsc several errors occur.

Expected Behavior

Should transpile correctly.

Steps To Reproduce

  1. import v1.0.0
  2. try to transpile

Relevant log output

/@sinclair/typebox/typebox.d.ts:179:167 - error TS2589: Type instantiation is excessively deep and possibly infinite.

179 ] extends [TArray, TNumber] ? AssertType<T['items']> : K extends TTemplateLiteral ? TIndexReduce<T, TTemplateLiteralKeyRest<K>> : K extends TUnion<TLiteral<Key>[]> ? TIndexReduce<T, TUnionLiteralKeyRest<K>> : K extends TLiteral<Key> ? TIndexReduce<T, [K['const']]> : TNever;

```node_modules/@types/web/index.d.ts:7:1 - error TS6200: Definitions of the following identifiers conflict with those in another file: NodeFilter, XPathNSResolver, SVGMatrix, WebKitCSSMatrix, SVGPoint, SVGRect, location, webkitURL, ImportExportKind, TableKind, ValueType, ExportValue, Exports, ImportValue, Imports, ModuleImports, ElementTagNameMap, name, AlgorithmIdentifier, BigInteger, BinaryData, BlobPart, BodyInit, BufferSource, COSEAlgorithmIdentifier, CSSKeywordish, CSSNumberish, CSSPerspectiveValue, CSSUnparsedSegment, CanvasImageSource, ClipboardItemData, ClipboardItems, ConstrainBoolean, ConstrainDOMString, ConstrainDouble, ConstrainULong, DOMHighResTimeStamp, EpochTimeStamp, EventListenerOrEventListenerObject, FileSystemWriteChunkType, Float32List, FormDataEntryValue, GLbitfield, GLboolean, GLclampf, GLenum, GLfloat, GLint, GLint64, GLintptr, GLsizei, GLsizeiptr, GLuint, GLuint64, HTMLOrSVGImageElement, HTMLOrSVGScriptElement, HashAlgorithmIdentifier, HeadersInit, IDBValidKey, ImageBitmapSource, Int32List, LineAndPositionSetting, MediaProvider, MessageEventSource, MutationRecordType, NamedCurve, OffscreenRenderingContext, OnBeforeUnloadEventHandler, OnErrorEventHandler, PerformanceEntryList, ReadableStreamController, ReadableStreamReadResult, ReadableStreamReader, RenderingContext, ReportList, RequestInfo, TexImageSource, TimerHandler, Transferable, Uint32List, VibratePattern, WindowProxy, XMLHttpRequestBodyInit, AlignSetting, AlphaOption, AnimationPlayState, AnimationReplaceState, AppendMode, AttestationConveyancePreference, AudioContextLatencyCategory, AudioContextState, AuthenticatorAttachment, AuthenticatorTransport, AutoKeyword, AutomationRate, AvcBitstreamFormat, BinaryType, BiquadFilterType, CSSMathOperator, CSSNumericBaseType, CanPlayTypeResult, CanvasDirection, CanvasFillRule, CanvasFontKerning, CanvasFontStretch, CanvasFontVariantCaps, CanvasLineCap, CanvasLineJoin, CanvasTextAlign, CanvasTextBaseline, CanvasTextRendering, ChannelCountMode, ChannelInterpretation, ClientTypes, CodecState, ColorGamut, ColorSpaceConversion, CompositeOperation, CompositeOperationOrAuto, CredentialMediationRequirement, DOMParserSupportedType, DirectionSetting, DisplayCaptureSurfaceType, DistanceModelType, DocumentReadyState, DocumentVisibilityState, EncodedVideoChunkType, EndOfStreamError, EndingType, FileSystemHandleKind, FillMode, FontDisplay, FontFaceLoadStatus, FontFaceSetLoadStatus, FullscreenNavigationUI, GamepadHapticActuatorType, GamepadHapticEffectType, GamepadHapticsResult, GamepadMappingType, GlobalCompositeOperation, HardwareAcceleration, HdrMetadataType, IDBCursorDirection, IDBRequestReadyState, IDBTransactionDurability, IDBTransactionMode, ImageOrientation, ImageSmoothingQuality, InsertPosition, IterationCompositeOperation, KeyFormat, KeyType, KeyUsage, LatencyMode, LineAlignSetting, LockMode, MIDIPortConnectionState, MIDIPortDeviceState, MIDIPortType, MediaDecodingType, MediaDeviceKind, MediaEncodingType, MediaKeyMessageType, MediaKeySessionClosedReason, MediaKeySessionType, MediaKeyStatus, MediaKeysRequirement, MediaSessionAction, MediaSessionPlaybackState, MediaStreamTrackState, NavigationTimingType, NotificationDirection, NotificationPermission, OffscreenRenderingContextId, OrientationLockType, OrientationType, OscillatorType, OverSampleType, PanningModelType, PaymentComplete, PermissionName, PermissionState, PlaybackDirection, PositionAlignSetting, PredefinedColorSpace, PremultiplyAlpha, PresentationStyle, PublicKeyCredentialType, PushEncryptionKeyName, RTCBundlePolicy, RTCDataChannelState, RTCDegradationPreference, RTCDtlsTransportState, RTCEncodedVideoFrameType, RTCErrorDetailType, RTCIceCandidateType, RTCIceComponent, RTCIceConnectionState, RTCIceGathererState, RTCIceGatheringState, RTCIceProtocol, RTCIceTcpCandidateType, RTCIceTransportPolicy, RTCIceTransportState, RTCPeerConnectionState, RTCPriorityType, RTCRtcpMuxPolicy, RTCRtpTransceiverDirection, RTCSctpTransportState, RTCSdpType, RTCSignalingState, RTCStatsIceCandidatePairState, RTCStatsType, ReadableStreamReaderMode, ReadableStreamType, ReadyState, RecordingState, ReferrerPolicy, RemotePlaybackState, RequestCache, RequestCredentials, RequestDestination, RequestMode, RequestRedirect, ResidentKeyRequirement, ResizeObserverBoxOptions, ResizeQuality, ResponseType, ScrollBehavior, ScrollLogicalPosition, ScrollRestoration, ScrollSetting, SecurityPolicyViolationEventDisposition, SelectionMode, ServiceWorkerState, ServiceWorkerUpdateViaCache, ShadowRootMode, SlotAssignmentMode, SpeechSynthesisErrorCode, TextTrackKind, TextTrackMode, TouchType, TransferFunction, UserVerificationRequirement, VideoColorPrimaries, VideoEncoderBitrateMode, VideoFacingModeEnum, VideoMatrixCoefficients, VideoPixelFormat, VideoTransferCharacteristics, WakeLockType, WebGLPowerPreference, WorkerType, WriteCommandType, XMLHttpRequestResponseType```

Environment

- **OS**: Windows 
- **Language version**: Node v18.17.1
- **Pinecone client version**: v1.0.0

Additional Context

No response

index.update does not work

const update = {
    id: embedding,
    namespace: 'my-namespace',
    setMetadata: {
        metadata: myData,
    },
}
await index.update({ updateRequest: update })

I am able to copy and paste the values of the update object and see the results via the pinecone API example tools, but using the pinecone-ts-client I receive no object, no error, and the embedding is not updated inside of the index.

It appears in this function:

The setMetadata is supposed to be reassigned to set_metadata according to the pinecone API.

error on api call

No trouble initializing pinecone from a node app. any api calls return this error: [TypeError: stream.getReader is not a function]

gets thrown in the steamToArrayBuffer function in index.js

requires Node 17+ Issue happens on node 16

[Bug] Typescript compilation problems while upgrading pinecone client in angular project

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

I installed Pinecone in angular project in firebase functions with npm uninstall @pinecone-database/pinecone.

Previously it worked well, but after introducing version 1 of pinecone, I cannot deploy functions. I receive over 1000 bugs while deploying. Here is the summary of the message:

Errors Files 51 node_modules/.pnpm/[email protected]/node_modules/typescript/lib/lib.dom.d.ts:25 1002 node_modules/@types/web/index.d.ts:7

They disappear when I uninstall pinecone again, this is how I know that the problem is related to pinecone.
I even downgraded pinecone library to version 0.1.6 and it started working again.

Exapmple of bugs are:

node_modules/@types/web/index.d.ts:18116:13 - error TS2403: Subsequent variable declarations must have the same type. Variable 'XPathResult'
node_modules/.pnpm/[email protected]/node_modules/typescript/lib/lib.dom.d.ts:17276:14 17276 readonly FIRST_ORDERED_NODE_TYPE: number;
node_modules/@types/web/index.d.ts:18111:14 - error TS2717: Subsequent property declarations must have the same type.
node_modules/@types/web/index.d.ts:17593:13 - error TS2403: Subsequent variable declarations must have the same type.

I reinstalled pinecone several times and nothing worked. I also searched for answer on pinecone forum, but the problem didn't appear. I created totally new angular project, copied sources files and tried to launch functions from scratch, but it didn't help either.

Expected Behavior

To work well after installing new pinecone version for angular project firebase functions.

Steps To Reproduce

  1. Generate new angular project with functions
  2. Go to functions folder
  3. Install pinecone with npm i @pinecone-database/pinecone
  4. Try to deploy function with firebase deploy --only functions

Relevant log output

../node_modules/@types/web/index.d.ts:17360:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'INT_VEC4' must be of type 'number', but here has type '35669'.

17360     readonly INT_VEC4: 0x8B55;
                   ~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16407:14
    16407     readonly INT_VEC4: GLenum;
                       ~~~~~~~~
    'INT_VEC4' was also declared here.

../node_modules/@types/web/index.d.ts:17361:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'BOOL' must be of type 'number', but here has type '35670'.

17361     readonly BOOL: 0x8B56;
                   ~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16321:14
    16321     readonly BOOL: GLenum;
                       ~~~~
    'BOOL' was also declared here.

../node_modules/@types/web/index.d.ts:17362:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'BOOL_VEC2' must be of type 'number', but here has type '35671'.

17362     readonly BOOL_VEC2: 0x8B57;
                   ~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16322:14
    16322     readonly BOOL_VEC2: GLenum;
                       ~~~~~~~~~
    'BOOL_VEC2' was also declared here.

../node_modules/@types/web/index.d.ts:17363:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'BOOL_VEC3' must be of type 'number', but here has type '35672'.

17363     readonly BOOL_VEC3: 0x8B58;
                   ~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16323:14
    16323     readonly BOOL_VEC3: GLenum;
                       ~~~~~~~~~
    'BOOL_VEC3' was also declared here.

../node_modules/@types/web/index.d.ts:17364:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'BOOL_VEC4' must be of type 'number', but here has type '35673'.

17364     readonly BOOL_VEC4: 0x8B59;
                   ~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16324:14
    16324     readonly BOOL_VEC4: GLenum;
                       ~~~~~~~~~
    'BOOL_VEC4' was also declared here.

../node_modules/@types/web/index.d.ts:17365:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FLOAT_MAT2' must be of type 'number', but here has type '35674'.

17365     readonly FLOAT_MAT2: 0x8B5A;
                   ~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16370:14
    16370     readonly FLOAT_MAT2: GLenum;
                       ~~~~~~~~~~
    'FLOAT_MAT2' was also declared here.

../node_modules/@types/web/index.d.ts:17366:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FLOAT_MAT3' must be of type 'number', but here has type '35675'.

17366     readonly FLOAT_MAT3: 0x8B5B;
                   ~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16371:14
    16371     readonly FLOAT_MAT3: GLenum;
                       ~~~~~~~~~~
    'FLOAT_MAT3' was also declared here.

../node_modules/@types/web/index.d.ts:17367:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FLOAT_MAT4' must be of type 'number', but here has type '35676'.

17367     readonly FLOAT_MAT4: 0x8B5C;
                   ~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16372:14
    16372     readonly FLOAT_MAT4: GLenum;
                       ~~~~~~~~~~
    'FLOAT_MAT4' was also declared here.

../node_modules/@types/web/index.d.ts:17368:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'SAMPLER_2D' must be of type 'number', but here has type '35678'.

17368     readonly SAMPLER_2D: 0x8B5E;
                   ~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16483:14
    16483     readonly SAMPLER_2D: GLenum;
                       ~~~~~~~~~~
    'SAMPLER_2D' was also declared here.

../node_modules/@types/web/index.d.ts:17369:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'SAMPLER_CUBE' must be of type 'number', but here has type '35680'.

17369     readonly SAMPLER_CUBE: 0x8B60;
                   ~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16484:14
    16484     readonly SAMPLER_CUBE: GLenum;
                       ~~~~~~~~~~~~
    'SAMPLER_CUBE' was also declared here.

../node_modules/@types/web/index.d.ts:17370:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'VERTEX_ATTRIB_ARRAY_ENABLED' must be of type 'number', but here has type '34338'.

17370     readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16586:14
    16586     readonly VERTEX_ATTRIB_ARRAY_ENABLED: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'VERTEX_ATTRIB_ARRAY_ENABLED' was also declared here.

../node_modules/@types/web/index.d.ts:17371:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'VERTEX_ATTRIB_ARRAY_SIZE' must be of type 'number', but here has type '34339'.

17371     readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
                   ~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16589:14
    16589     readonly VERTEX_ATTRIB_ARRAY_SIZE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~
    'VERTEX_ATTRIB_ARRAY_SIZE' was also declared here.

../node_modules/@types/web/index.d.ts:17372:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'VERTEX_ATTRIB_ARRAY_STRIDE' must be of type 'number', but here has type '34340'.

17372     readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16590:14
    16590     readonly VERTEX_ATTRIB_ARRAY_STRIDE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~
    'VERTEX_ATTRIB_ARRAY_STRIDE' was also declared here.

../node_modules/@types/web/index.d.ts:17373:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'VERTEX_ATTRIB_ARRAY_TYPE' must be of type 'number', but here has type '34341'.

17373     readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
                   ~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16591:14
    16591     readonly VERTEX_ATTRIB_ARRAY_TYPE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~
    'VERTEX_ATTRIB_ARRAY_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:17374:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'VERTEX_ATTRIB_ARRAY_NORMALIZED' must be of type 'number', but here has type '34922'.

17374     readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16587:14
    16587     readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'VERTEX_ATTRIB_ARRAY_NORMALIZED' was also declared here.

../node_modules/@types/web/index.d.ts:17375:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'VERTEX_ATTRIB_ARRAY_POINTER' must be of type 'number', but here has type '34373'.

17375     readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16588:14
    16588     readonly VERTEX_ATTRIB_ARRAY_POINTER: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'VERTEX_ATTRIB_ARRAY_POINTER' was also declared here.

../node_modules/@types/web/index.d.ts:17376:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'VERTEX_ATTRIB_ARRAY_BUFFER_BINDING' must be of type 'number', but here has type '34975'.

17376     readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16585:14
    16585     readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'VERTEX_ATTRIB_ARRAY_BUFFER_BINDING' was also declared here.

../node_modules/@types/web/index.d.ts:17377:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'IMPLEMENTATION_COLOR_READ_TYPE' must be of type 'number', but here has type '35738'.

17377     readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16401:14
    16401     readonly IMPLEMENTATION_COLOR_READ_TYPE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'IMPLEMENTATION_COLOR_READ_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:17378:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'IMPLEMENTATION_COLOR_READ_FORMAT' must be of type 'number', but here has type '35739'.

17378     readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16400:14
    16400     readonly IMPLEMENTATION_COLOR_READ_FORMAT: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'IMPLEMENTATION_COLOR_READ_FORMAT' was also declared here.

../node_modules/@types/web/index.d.ts:17379:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'COMPILE_STATUS' must be of type 'number', but here has type '35713'.

17379     readonly COMPILE_STATUS: 0x8B81;
                   ~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16335:14
    16335     readonly COMPILE_STATUS: GLenum;
                       ~~~~~~~~~~~~~~
    'COMPILE_STATUS' was also declared here.

../node_modules/@types/web/index.d.ts:17380:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'LOW_FLOAT' must be of type 'number', but here has type '36336'.

17380     readonly LOW_FLOAT: 0x8DF0;
                   ~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16424:14
    16424     readonly LOW_FLOAT: GLenum;
                       ~~~~~~~~~
    'LOW_FLOAT' was also declared here.

../node_modules/@types/web/index.d.ts:17381:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'MEDIUM_FLOAT' must be of type 'number', but here has type '36337'.

17381     readonly MEDIUM_FLOAT: 0x8DF1;
                   ~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16439:14
    16439     readonly MEDIUM_FLOAT: GLenum;
                       ~~~~~~~~~~~~
    'MEDIUM_FLOAT' was also declared here.

../node_modules/@types/web/index.d.ts:17382:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'HIGH_FLOAT' must be of type 'number', but here has type '36338'.

17382     readonly HIGH_FLOAT: 0x8DF2;
                   ~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16398:14
    16398     readonly HIGH_FLOAT: GLenum;
                       ~~~~~~~~~~
    'HIGH_FLOAT' was also declared here.

../node_modules/@types/web/index.d.ts:17383:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'LOW_INT' must be of type 'number', but here has type '36339'.

17383     readonly LOW_INT: 0x8DF3;
                   ~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16425:14
    16425     readonly LOW_INT: GLenum;
                       ~~~~~~~
    'LOW_INT' was also declared here.

../node_modules/@types/web/index.d.ts:17384:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'MEDIUM_INT' must be of type 'number', but here has type '36340'.

17384     readonly MEDIUM_INT: 0x8DF4;
                   ~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16440:14
    16440     readonly MEDIUM_INT: GLenum;
                       ~~~~~~~~~~
    'MEDIUM_INT' was also declared here.

../node_modules/@types/web/index.d.ts:17385:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'HIGH_INT' must be of type 'number', but here has type '36341'.

17385     readonly HIGH_INT: 0x8DF5;
                   ~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16399:14
    16399     readonly HIGH_INT: GLenum;
                       ~~~~~~~~
    'HIGH_INT' was also declared here.

../node_modules/@types/web/index.d.ts:17386:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FRAMEBUFFER' must be of type 'number', but here has type '36160'.

17386     readonly FRAMEBUFFER: 0x8D40;
                   ~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16377:14
    16377     readonly FRAMEBUFFER: GLenum;
                       ~~~~~~~~~~~
    'FRAMEBUFFER' was also declared here.

../node_modules/@types/web/index.d.ts:17387:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RENDERBUFFER' must be of type 'number', but here has type '36161'.

17387     readonly RENDERBUFFER: 0x8D41;
                   ~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16464:14
    16464     readonly RENDERBUFFER: GLenum;
                       ~~~~~~~~~~~~
    'RENDERBUFFER' was also declared here.

../node_modules/@types/web/index.d.ts:17388:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RGBA4' must be of type 'number', but here has type '32854'.

17388     readonly RGBA4: 0x8056;
                   ~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16482:14
    16482     readonly RGBA4: GLenum;
                       ~~~~~
    'RGBA4' was also declared here.

../node_modules/@types/web/index.d.ts:17389:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RGB5_A1' must be of type 'number', but here has type '32855'.

17389     readonly RGB5_A1: 0x8057;
                   ~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16480:14
    16480     readonly RGB5_A1: GLenum;
                       ~~~~~~~
    'RGB5_A1' was also declared here.

../node_modules/@types/web/index.d.ts:17390:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RGB565' must be of type 'number', but here has type '36194'.

17390     readonly RGB565: 0x8D62;
                   ~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16479:14
    16479     readonly RGB565: GLenum;
                       ~~~~~~
    'RGB565' was also declared here.

../node_modules/@types/web/index.d.ts:17391:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'DEPTH_COMPONENT16' must be of type 'number', but here has type '33189'.

17391     readonly DEPTH_COMPONENT16: 0x81A5;
                   ~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16353:14
    16353     readonly DEPTH_COMPONENT16: GLenum;
                       ~~~~~~~~~~~~~~~~~
    'DEPTH_COMPONENT16' was also declared here.

../node_modules/@types/web/index.d.ts:17392:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'STENCIL_INDEX8' must be of type 'number', but here has type '36168'.

17392     readonly STENCIL_INDEX8: 0x8D48;
                   ~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16513:14
    16513     readonly STENCIL_INDEX8: GLenum;
                       ~~~~~~~~~~~~~~
    'STENCIL_INDEX8' was also declared here.

../node_modules/@types/web/index.d.ts:17393:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'DEPTH_STENCIL' must be of type 'number', but here has type '34041'.

17393     readonly DEPTH_STENCIL: 0x84F9;
                   ~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16356:14
    16356     readonly DEPTH_STENCIL: GLenum;
                       ~~~~~~~~~~~~~
    'DEPTH_STENCIL' was also declared here.

../node_modules/@types/web/index.d.ts:17394:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RENDERBUFFER_WIDTH' must be of type 'number', but here has type '36162'.

17394     readonly RENDERBUFFER_WIDTH: 0x8D42;
                   ~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16474:14
    16474     readonly RENDERBUFFER_WIDTH: GLenum;
                       ~~~~~~~~~~~~~~~~~~
    'RENDERBUFFER_WIDTH' was also declared here.

../node_modules/@types/web/index.d.ts:17395:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RENDERBUFFER_HEIGHT' must be of type 'number', but here has type '36163'.

17395     readonly RENDERBUFFER_HEIGHT: 0x8D43;
                   ~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16470:14
    16470     readonly RENDERBUFFER_HEIGHT: GLenum;
                       ~~~~~~~~~~~~~~~~~~~
    'RENDERBUFFER_HEIGHT' was also declared here.

../node_modules/@types/web/index.d.ts:17396:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RENDERBUFFER_INTERNAL_FORMAT' must be of type 'number', but here has type '36164'.

17396     readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16471:14
    16471     readonly RENDERBUFFER_INTERNAL_FORMAT: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'RENDERBUFFER_INTERNAL_FORMAT' was also declared here.

../node_modules/@types/web/index.d.ts:17397:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RENDERBUFFER_RED_SIZE' must be of type 'number', but here has type '36176'.

17397     readonly RENDERBUFFER_RED_SIZE: 0x8D50;
                   ~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16472:14
    16472     readonly RENDERBUFFER_RED_SIZE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~
    'RENDERBUFFER_RED_SIZE' was also declared here.

../node_modules/@types/web/index.d.ts:17398:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RENDERBUFFER_GREEN_SIZE' must be of type 'number', but here has type '36177'.

17398     readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
                   ~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16469:14
    16469     readonly RENDERBUFFER_GREEN_SIZE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~
    'RENDERBUFFER_GREEN_SIZE' was also declared here.

../node_modules/@types/web/index.d.ts:17399:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RENDERBUFFER_BLUE_SIZE' must be of type 'number', but here has type '36178'.

17399     readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
                   ~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16467:14
    16467     readonly RENDERBUFFER_BLUE_SIZE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~
    'RENDERBUFFER_BLUE_SIZE' was also declared here.

../node_modules/@types/web/index.d.ts:17400:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RENDERBUFFER_ALPHA_SIZE' must be of type 'number', but here has type '36179'.

17400     readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
                   ~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16465:14
    16465     readonly RENDERBUFFER_ALPHA_SIZE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~
    'RENDERBUFFER_ALPHA_SIZE' was also declared here.

../node_modules/@types/web/index.d.ts:17401:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RENDERBUFFER_DEPTH_SIZE' must be of type 'number', but here has type '36180'.

17401     readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
                   ~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16468:14
    16468     readonly RENDERBUFFER_DEPTH_SIZE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~
    'RENDERBUFFER_DEPTH_SIZE' was also declared here.

../node_modules/@types/web/index.d.ts:17402:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RENDERBUFFER_STENCIL_SIZE' must be of type 'number', but here has type '36181'.

17402     readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16473:14
    16473     readonly RENDERBUFFER_STENCIL_SIZE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~
    'RENDERBUFFER_STENCIL_SIZE' was also declared here.

../node_modules/@types/web/index.d.ts:17403:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE' must be of type 'number', but here has type '36048'.

17403     readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16379:14
    16379     readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:17404:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FRAMEBUFFER_ATTACHMENT_OBJECT_NAME' must be of type 'number', but here has type '36049'.

17404     readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16378:14
    16378     readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'FRAMEBUFFER_ATTACHMENT_OBJECT_NAME' was also declared here.

../node_modules/@types/web/index.d.ts:17405:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL' must be of type 'number', but here has type '36050'.

17405     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16381:14
    16381     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL' was also declared here.

../node_modules/@types/web/index.d.ts:17406:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE' must be of type 'number', but here has type '36051'.

17406     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16380:14
    16380     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE' was also declared here.

../node_modules/@types/web/index.d.ts:17407:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'COLOR_ATTACHMENT0' must be of type 'number', but here has type '36064'.

17407     readonly COLOR_ATTACHMENT0: 0x8CE0;
                   ~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16331:14
    16331     readonly COLOR_ATTACHMENT0: GLenum;
                       ~~~~~~~~~~~~~~~~~
    'COLOR_ATTACHMENT0' was also declared here.

../node_modules/@types/web/index.d.ts:17408:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'DEPTH_ATTACHMENT' must be of type 'number', but here has type '36096'.

17408     readonly DEPTH_ATTACHMENT: 0x8D00;
                   ~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16348:14
    16348     readonly DEPTH_ATTACHMENT: GLenum;
                       ~~~~~~~~~~~~~~~~
    'DEPTH_ATTACHMENT' was also declared here.

../node_modules/@types/web/index.d.ts:17409:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'STENCIL_ATTACHMENT' must be of type 'number', but here has type '36128'.

17409     readonly STENCIL_ATTACHMENT: 0x8D20;
                   ~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16500:14
    16500     readonly STENCIL_ATTACHMENT: GLenum;
                       ~~~~~~~~~~~~~~~~~~
    'STENCIL_ATTACHMENT' was also declared here.

../node_modules/@types/web/index.d.ts:17410:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'DEPTH_STENCIL_ATTACHMENT' must be of type 'number', but here has type '33306'.

17410     readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
                   ~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16357:14
    16357     readonly DEPTH_STENCIL_ATTACHMENT: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~
    'DEPTH_STENCIL_ATTACHMENT' was also declared here.

../node_modules/@types/web/index.d.ts:17411:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'NONE' must be of type 'number', but here has type '0'.

17411     readonly NONE: 0;
                   ~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16447:14
    16447     readonly NONE: GLenum;
                       ~~~~
    'NONE' was also declared here.

../node_modules/@types/web/index.d.ts:17412:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FRAMEBUFFER_COMPLETE' must be of type 'number', but here has type '36053'.

17412     readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
                   ~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16383:14
    16383     readonly FRAMEBUFFER_COMPLETE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~
    'FRAMEBUFFER_COMPLETE' was also declared here.

../node_modules/@types/web/index.d.ts:17413:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FRAMEBUFFER_INCOMPLETE_ATTACHMENT' must be of type 'number', but here has type '36054'.

17413     readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16384:14
    16384     readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'FRAMEBUFFER_INCOMPLETE_ATTACHMENT' was also declared here.

../node_modules/@types/web/index.d.ts:17414:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT' must be of type 'number', but here has type '36055'.

17414     readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16386:14
    16386     readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT' was also declared here.

../node_modules/@types/web/index.d.ts:17415:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FRAMEBUFFER_INCOMPLETE_DIMENSIONS' must be of type 'number', but here has type '36057'.

17415     readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16385:14
    16385     readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'FRAMEBUFFER_INCOMPLETE_DIMENSIONS' was also declared here.

../node_modules/@types/web/index.d.ts:17416:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FRAMEBUFFER_UNSUPPORTED' must be of type 'number', but here has type '36061'.

17416     readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
                   ~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16387:14
    16387     readonly FRAMEBUFFER_UNSUPPORTED: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~
    'FRAMEBUFFER_UNSUPPORTED' was also declared here.

../node_modules/@types/web/index.d.ts:17417:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FRAMEBUFFER_BINDING' must be of type 'number', but here has type '36006'.

17417     readonly FRAMEBUFFER_BINDING: 0x8CA6;
                   ~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16382:14
    16382     readonly FRAMEBUFFER_BINDING: GLenum;
                       ~~~~~~~~~~~~~~~~~~~
    'FRAMEBUFFER_BINDING' was also declared here.

../node_modules/@types/web/index.d.ts:17418:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'RENDERBUFFER_BINDING' must be of type 'number', but here has type '36007'.

17418     readonly RENDERBUFFER_BINDING: 0x8CA7;
                   ~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16466:14
    16466     readonly RENDERBUFFER_BINDING: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~
    'RENDERBUFFER_BINDING' was also declared here.

../node_modules/@types/web/index.d.ts:17419:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'MAX_RENDERBUFFER_SIZE' must be of type 'number', but here has type '34024'.

17419     readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
                   ~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16431:14
    16431     readonly MAX_RENDERBUFFER_SIZE: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~
    'MAX_RENDERBUFFER_SIZE' was also declared here.

../node_modules/@types/web/index.d.ts:17420:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'INVALID_FRAMEBUFFER_OPERATION' must be of type 'number', but here has type '1286'.

17420     readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16409:14
    16409     readonly INVALID_FRAMEBUFFER_OPERATION: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'INVALID_FRAMEBUFFER_OPERATION' was also declared here.

../node_modules/@types/web/index.d.ts:17421:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'UNPACK_FLIP_Y_WEBGL' must be of type 'number', but here has type '37440'.

17421     readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
                   ~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16574:14
    16574     readonly UNPACK_FLIP_Y_WEBGL: GLenum;
                       ~~~~~~~~~~~~~~~~~~~
    'UNPACK_FLIP_Y_WEBGL' was also declared here.

../node_modules/@types/web/index.d.ts:17422:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'UNPACK_PREMULTIPLY_ALPHA_WEBGL' must be of type 'number', but here has type '37441'.

17422     readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16575:14
    16575     readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'UNPACK_PREMULTIPLY_ALPHA_WEBGL' was also declared here.

../node_modules/@types/web/index.d.ts:17423:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'CONTEXT_LOST_WEBGL' must be of type 'number', but here has type '37442'.

17423     readonly CONTEXT_LOST_WEBGL: 0x9242;
                   ~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16339:14
    16339     readonly CONTEXT_LOST_WEBGL: GLenum;
                       ~~~~~~~~~~~~~~~~~~
    'CONTEXT_LOST_WEBGL' was also declared here.

../node_modules/@types/web/index.d.ts:17424:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'UNPACK_COLORSPACE_CONVERSION_WEBGL' must be of type 'number', but here has type '37443'.

17424     readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16573:14
    16573     readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'UNPACK_COLORSPACE_CONVERSION_WEBGL' was also declared here.

../node_modules/@types/web/index.d.ts:17425:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'BROWSER_DEFAULT_WEBGL' must be of type 'number', but here has type '37444'.

17425     readonly BROWSER_DEFAULT_WEBGL: 0x9244;
                   ~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16325:14
    16325     readonly BROWSER_DEFAULT_WEBGL: GLenum;
                       ~~~~~~~~~~~~~~~~~~~~~
    'BROWSER_DEFAULT_WEBGL' was also declared here.

../node_modules/@types/web/index.d.ts:17563:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'CONNECTING' must be of type 'number', but here has type '0'.

17563     readonly CONNECTING: 0;
                   ~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16734:14
    16734     readonly CONNECTING: number;
                       ~~~~~~~~~~
    'CONNECTING' was also declared here.

../node_modules/@types/web/index.d.ts:17564:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'OPEN' must be of type 'number', but here has type '1'.

17564     readonly OPEN: 1;
                   ~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16735:14
    16735     readonly OPEN: number;
                       ~~~~
    'OPEN' was also declared here.

../node_modules/@types/web/index.d.ts:17565:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'CLOSING' must be of type 'number', but here has type '2'.

17565     readonly CLOSING: 2;
                   ~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16733:14
    16733     readonly CLOSING: number;
                       ~~~~~~~
    'CLOSING' was also declared here.

../node_modules/@types/web/index.d.ts:17566:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'CLOSED' must be of type 'number', but here has type '3'.

17566     readonly CLOSED: 3;
                   ~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16732:14
    16732     readonly CLOSED: number;
                       ~~~~~~
    'CLOSED' was also declared here.

../node_modules/@types/web/index.d.ts:17573:13 - error TS2403: Subsequent variable declarations must have the same type.  Variable 'WebSocket' must be of type '{ new (url: string | URL, protocols?: string | string[] | undefined): WebSocket; prototype: WebSocket; readonly CLOSED: number; readonly CLOSING: number; readonly CONNECTING: number; readonly OPEN: number; }', but here has type '{ new (url: string | URL, protocols?: string | string[] | undefined): WebSocket; prototype: WebSocket; readonly CONNECTING: 0; readonly OPEN: 1; readonly CLOSING: 2; readonly CLOSED: 3; }'.

17573 declare var WebSocket: {
                  ~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16742:13
    16742 declare var WebSocket: {
                      ~~~~~~~~~
    'WebSocket' was also declared here.

../node_modules/@types/web/index.d.ts:17588:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'DOM_DELTA_PIXEL' must be of type 'number', but here has type '0'.

17588     readonly DOM_DELTA_PIXEL: 0x00;
                   ~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16759:14
    16759     readonly DOM_DELTA_PIXEL: number;
                       ~~~~~~~~~~~~~~~
    'DOM_DELTA_PIXEL' was also declared here.

../node_modules/@types/web/index.d.ts:17589:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'DOM_DELTA_LINE' must be of type 'number', but here has type '1'.

17589     readonly DOM_DELTA_LINE: 0x01;
                   ~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16757:14
    16757     readonly DOM_DELTA_LINE: number;
                       ~~~~~~~~~~~~~~
    'DOM_DELTA_LINE' was also declared here.

../node_modules/@types/web/index.d.ts:17590:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'DOM_DELTA_PAGE' must be of type 'number', but here has type '2'.

17590     readonly DOM_DELTA_PAGE: 0x02;
                   ~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16758:14
    16758     readonly DOM_DELTA_PAGE: number;
                       ~~~~~~~~~~~~~~
    'DOM_DELTA_PAGE' was also declared here.

../node_modules/@types/web/index.d.ts:17593:13 - error TS2403: Subsequent variable declarations must have the same type.  Variable 'WheelEvent' must be of type '{ new (type: string, eventInitDict?: WheelEventInit | undefined): WheelEvent; prototype: WheelEvent; readonly DOM_DELTA_LINE: number; readonly DOM_DELTA_PAGE: number; readonly DOM_DELTA_PIXEL: number; }', but here has type '{ new (type: string, eventInitDict?: WheelEventInit | undefined): WheelEvent; prototype: WheelEvent; readonly DOM_DELTA_PIXEL: 0; readonly DOM_DELTA_LINE: 1; readonly DOM_DELTA_PAGE: 2; }'.

17593 declare var WheelEvent: {
                  ~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:16762:13
    16762 declare var WheelEvent: {
                      ~~~~~~~~~~
    'WheelEvent' was also declared here.

../node_modules/@types/web/index.d.ts:17729:5 - error TS2374: Duplicate index signature for type 'number'.

17729     [index: number]: Window;
          ~~~~~~~~~~~~~~~~~~~~~~~~

../node_modules/@types/web/index.d.ts:17996:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'UNSENT' must be of type 'number', but here has type '0'.

17996     readonly UNSENT: 0;
                   ~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17169:14
    17169     readonly UNSENT: number;
                       ~~~~~~
    'UNSENT' was also declared here.

../node_modules/@types/web/index.d.ts:17997:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'OPENED' must be of type 'number', but here has type '1'.

17997     readonly OPENED: 1;
                   ~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17168:14
    17168     readonly OPENED: number;
                       ~~~~~~
    'OPENED' was also declared here.

../node_modules/@types/web/index.d.ts:17998:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'HEADERS_RECEIVED' must be of type 'number', but here has type '2'.

17998     readonly HEADERS_RECEIVED: 2;
                   ~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17166:14
    17166     readonly HEADERS_RECEIVED: number;
                       ~~~~~~~~~~~~~~~~
    'HEADERS_RECEIVED' was also declared here.

../node_modules/@types/web/index.d.ts:17999:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'LOADING' must be of type 'number', but here has type '3'.

17999     readonly LOADING: 3;
                   ~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17167:14
    17167     readonly LOADING: number;
                       ~~~~~~~
    'LOADING' was also declared here.

../node_modules/@types/web/index.d.ts:18000:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'DONE' must be of type 'number', but here has type '4'.

18000     readonly DONE: 4;
                   ~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17165:14
    17165     readonly DONE: number;
                       ~~~~
    'DONE' was also declared here.

../node_modules/@types/web/index.d.ts:18007:13 - error TS2403: Subsequent variable declarations must have the same type.  Variable 'XMLHttpRequest' must be of type '{ new (): XMLHttpRequest; prototype: XMLHttpRequest; readonly DONE: number; readonly HEADERS_RECEIVED: number; readonly LOADING: number; readonly OPENED: number; readonly UNSENT: number; }', but here has type '{ new (): XMLHttpRequest; prototype: XMLHttpRequest; readonly UNSENT: 0; readonly OPENED: 1; readonly HEADERS_RECEIVED: 2; readonly LOADING: 3; readonly DONE: 4; }'.

18007 declare var XMLHttpRequest: {
                  ~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17176:13
    17176 declare var XMLHttpRequest: {
                      ~~~~~~~~~~~~~~
    'XMLHttpRequest' was also declared here.

../node_modules/@types/web/index.d.ts:18104:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'ANY_TYPE' must be of type 'number', but here has type '0'.

18104     readonly ANY_TYPE: 0;
                   ~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17273:14
    17273     readonly ANY_TYPE: number;
                       ~~~~~~~~
    'ANY_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:18105:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'NUMBER_TYPE' must be of type 'number', but here has type '1'.

18105     readonly NUMBER_TYPE: 1;
                   ~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17277:14
    17277     readonly NUMBER_TYPE: number;
                       ~~~~~~~~~~~
    'NUMBER_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:18106:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'STRING_TYPE' must be of type 'number', but here has type '2'.

18106     readonly STRING_TYPE: 2;
                   ~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17280:14
    17280     readonly STRING_TYPE: number;
                       ~~~~~~~~~~~
    'STRING_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:18107:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'BOOLEAN_TYPE' must be of type 'number', but here has type '3'.

18107     readonly BOOLEAN_TYPE: 3;
                   ~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17275:14
    17275     readonly BOOLEAN_TYPE: number;
                       ~~~~~~~~~~~~
    'BOOLEAN_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:18108:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'UNORDERED_NODE_ITERATOR_TYPE' must be of type 'number', but here has type '4'.

18108     readonly UNORDERED_NODE_ITERATOR_TYPE: 4;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17281:14
    17281     readonly UNORDERED_NODE_ITERATOR_TYPE: number;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'UNORDERED_NODE_ITERATOR_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:18109:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'ORDERED_NODE_ITERATOR_TYPE' must be of type 'number', but here has type '5'.

18109     readonly ORDERED_NODE_ITERATOR_TYPE: 5;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17278:14
    17278     readonly ORDERED_NODE_ITERATOR_TYPE: number;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~
    'ORDERED_NODE_ITERATOR_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:18110:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'UNORDERED_NODE_SNAPSHOT_TYPE' must be of type 'number', but here has type '6'.

18110     readonly UNORDERED_NODE_SNAPSHOT_TYPE: 6;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17282:14
    17282     readonly UNORDERED_NODE_SNAPSHOT_TYPE: number;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'UNORDERED_NODE_SNAPSHOT_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:18111:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'ORDERED_NODE_SNAPSHOT_TYPE' must be of type 'number', but here has type '7'.

18111     readonly ORDERED_NODE_SNAPSHOT_TYPE: 7;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17279:14
    17279     readonly ORDERED_NODE_SNAPSHOT_TYPE: number;
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~
    'ORDERED_NODE_SNAPSHOT_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:18112:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'ANY_UNORDERED_NODE_TYPE' must be of type 'number', but here has type '8'.

18112     readonly ANY_UNORDERED_NODE_TYPE: 8;
                   ~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17274:14
    17274     readonly ANY_UNORDERED_NODE_TYPE: number;
                       ~~~~~~~~~~~~~~~~~~~~~~~
    'ANY_UNORDERED_NODE_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:18113:14 - error TS2717: Subsequent property declarations must have the same type.  Property 'FIRST_ORDERED_NODE_TYPE' must be of type 'number', but here has type '9'.

18113     readonly FIRST_ORDERED_NODE_TYPE: 9;
                   ~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17276:14
    17276     readonly FIRST_ORDERED_NODE_TYPE: number;
                       ~~~~~~~~~~~~~~~~~~~~~~~
    'FIRST_ORDERED_NODE_TYPE' was also declared here.

../node_modules/@types/web/index.d.ts:18116:13 - error TS2403: Subsequent variable declarations must have the same type.  Variable 'XPathResult' must be of type '{ new (): XPathResult; prototype: XPathResult; readonly ANY_TYPE: number; readonly ANY_UNORDERED_NODE_TYPE: number; readonly BOOLEAN_TYPE: number; readonly FIRST_ORDERED_NODE_TYPE: number; ... 5 more ...; readonly UNORDERED_NODE_SNAPSHOT_TYPE: number; }', but here has type '{ new (): XPathResult; prototype: XPathResult; readonly ANY_TYPE: 0; readonly NUMBER_TYPE: 1; readonly STRING_TYPE: 2; readonly BOOLEAN_TYPE: 3; readonly UNORDERED_NODE_ITERATOR_TYPE: 4; ... 4 more ...; readonly FIRST_ORDERED_NODE_TYPE: 9; }'.

18116 declare var XPathResult: {
                  ~~~~~~~~~~~

  node_modules/typescript/lib/lib.dom.d.ts:17285:13
    17285 declare var XPathResult: {
                      ~~~~~~~~~~~
    'XPathResult' was also declared here.


Found 1053 errors in 2 files.

Errors  Files
    51  node_modules/typescript/lib/lib.dom.d.ts:25
  1002  ../node_modules/@types/web/index.d.ts:7

Error: functions predeploy error: Command terminated with non-zero exit code 2

Environment

- **OS**: darvin arm64
- **Language version**: Typescript 5.2.2
- **Node version**: v18.17.1
- **Angular version**: 16.1.8
- **NPM version**: 9.6.7
- **Pinecone client version**: 1

Additional Context

No response

Documentation not clear to to upsert...

I don't understand your documentation... Your doc on github is different than your doc on website, who is different than your API reference on your website...

I'm not able to upsert vectors, can you give me the good code please. I got errors.

Clean all of your docs please.. sometimes in you website some "}" are missing too. Sometime you write ".index" instead ".Index"

Thanks a lot

` const vector1 = {
id: "vec1",
values: [0.1, 0.2, 0.3, 0.4],
metadata: { genre: "drama" },
};

const vector2 = {
  id: "vec2",
  values: [0.2, 0.3, 0.4, 0.5],
  metadata: { genre: "action" },
};

var vectors = [vector1, vector2];
const upsertRequest = {
  vectors: vectors,
};
await index.upsert({ upsertRequest });`

PineconeClient initialization

Just a proposal, how about instead of initializing PineconeClient with a separate function (init), have the PineconeClient constructor take in the environment and API key like any other libraries.

describeIndexStats() promise failing

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

I'm trying to call the describeIndexStats() function in order to check the record count for a specific index but it does not appear to be working, a keep getting a index.ts:11 Uncaught (in promise) error in the console.

I have gone over the pinecone documentation a few times to ensure that my code is correct and this is what I have

import { Pinecone } from '@pinecone-database/pinecone'

const pinecone = new Pinecone({
  apiKey: "YOUR_API_KEY",
  environment: "YOUR_ENVIRONMENT"
})

const myFunction = async () => {

const index = pinecone.index("my-index")

const stats= await index.describeIndexStats()

console.log(stats)

}

Expected Behavior

To return a 200 response

Steps To Reproduce

  1. install npm
  2. install pinecone
  3. run this code ensure you change the API_KEY and ENVIROMENT variables and specify your own pinecone index
import { Pinecone } from '@pinecone-database/pinecone'

const pinecone = new Pinecone({
  apiKey: "YOUR_API_KEY",
  environment: "YOUR_ENVIRONMENT"
})

const index = pinecone.index("my-index")

const stats= await index.describeIndexStats()

Relevant log output

No response

Environment

- **OS**: Windows 11 
- **Pinecone client version**: 0.1.6
- **Node JS**: 18.16.0

Additional Context

No response

[Bug] Query function have to specific vector field in queryRequest

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

I want query all vector:

const target = await pineconeIndex.query({
  queryRequest: {
    topK: 10000,
    includeMetadata: true,
    includeValues: true,
    namespace: '',
  },
})

This is valid for typescript check but will throw an error because I didn't set the vector field in queryRequest:

node:internal/process/esm_loader:97
    internalBinding('errors').triggerUncaughtException(
                              ^

[PineconeError: PineconeClient: Error calling query: TypeError: stream.getReader is not a function]

Expected Behavior

Query all vector without specific vectors field.

Steps To Reproduce

Invoke query function.

Relevant log output

No response

Environment

- **OS**:
- **Language version**:
- **Pinecone client version**:

Additional Context

No response

Feedback

I've been using https://github.com/rileytomasek/pinecone-client so far, but would prefer to use the official version if it's comparable quality.

Here's some feedback on expectations for this type of NPM package:

CleanShot 2023-02-16 at 17 17 11@2x

  1. @types/node, dotenv, ts-node, and typescript should not be dependencies; they should be dev dependencies. Currently, every time you npm install and import this package, you're importing some massive and completely unrelated dependencies like all of typescript.
  2. axios should ideally be replaced by fetch. Serverless and edge usage is growing exponentially, and fetch is the default HTTP provider in these environments.
  3. Consider using typedoc to generate docs since right now it's difficult to tell what's auto-generated by OpenAI and what's actually used.

Hope this feedback is helpful && thanks,

query gives 401 www-authenticate API key is missing or invalid for the environment

I log the index to the console, and it appears to have been initialized. Then I make a query using:

    async function getPineconeContexts(index, vector) {
        const queryRequest: QueryRequest = {
            topK: 10,
            vector
        }
        const queryResponse = await index.query({ queryRequest });
        return queryResponse;
    }

And the call returns a 401 with the following response headers. (I think the CORS is a red herring, that typically results from 401). The key thing, I think, is www-authenticate API key is missing or invalid for the environment "us-west1-gcp". Check that the correct environment is specified. Does the queryRequest payload need to include the API key, somehow?

XHROPTIONShttps://pure-gas-8a31658.svc.us-west1-gcp.pinecone.io/query
CORS Missing Allow Origin

	
OPTIONS
	https://pure-gas-8a31658.svc.us-west1-gcp.pinecone.io/query
Status
401
Unauthorized
VersionHTTP/2
Transferred368 B (0 B size)
Referrer Policystrict-origin-when-cross-origin
    content-length
    	114
    date
    	Tue, 14 Mar 2023 23:32:11 GMT
    server
    	envoy
    www-authenticate
    	API key is missing or invalid for the environment "us-west1-gcp". Check that the correct environment is specified.
    X-Firefox-Spdy
    	h2
    	
    Accept
    	*/*
    Accept-Encoding
    	gzip, deflate, br
    Accept-Language
    	en-US,en;q=0.5
    Access-Control-Request-Headers
    	api-key,content-type
    Access-Control-Request-Method
    	POST
    Cache-Control
    	no-cache
    Connection
    	keep-alive
    DNT
    	1
    Host
    	pure-gas-8a31658.svc.us-west1-gcp.pinecone.io
    Origin
    	http://localhost:3000
    Pragma
    	no-cache
    Referer
    	http://localhost:3000/
    Sec-Fetch-Dest
    	empty
    Sec-Fetch-Mode
    	cors
    Sec-Fetch-Site
    	cross-site
    User-Agent
    	Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0

[Bug] createIndex() fails - "Index name must consist of lower case..."

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

Unable to run createIndex. It throws an error every time that the name is incorrectly formatted.

Expected Behavior

For createIndex() to run successfully.

Steps To Reproduce

Run the following code with the latest package version, v0.0.12.

const pinecone = new PineconeClient();
await pinecone.init({
  apiKey: PINECONE_API_KEY,
  environment: PINECONE_ENVIRONMENT,
});

const createIndexOptions = {
  name: 'test-table'
  dimension: 1536,
  metric: 'cosine',
  podType: 'p1',
};
console.log('Creating index with options: ', createIndexOptions);

await pinecone.createIndex(createIndexOptions);

Relevant log output

[ErrorWithoutStackTrace: PineconeClient: Error calling createIndex: Index name must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character]


### Environment

```markdown
- **OS**: MacOS Monterey 12.6
- **Python version**: Python 3.9.6
- **Node version**: Node v18.9.0
- **Pinecone client version**: 0.0.12

Additional Context

I checked "I believe this is a new bug" because it's required, but createIndex() also fails on v0.0.11 with an unspecified error.

Jest unable to print out test message when importing this library

Steps to reproduce:

import { PineconeClient } from "@pinecone-database/pinecone";

it("test", () => {
  const pinecone = new PineconeClient();
  expect("a").toBe("b");
});

Expected:
Jest should show

expect(received).toBe(expected) // Object.is equality

    Expected: "b"
    Received: "a"

Received:
Empty log

I saw that the library is replacing Error.prepareStackTrace with empty function, which caused this issue.
https://github.com/pinecone-io/pinecone-ts-client/blob/main/src/index.ts#L10

Error calling query: PineconeClient: Error calling queryRaw: ResponseError: Response returned an error code

Generic template:

const { PineconeClient } = require('@pinecone-database/pinecone');

const pinecone = new PineconeClient();

const initPinecone = async () => {
    try {
        await pinecone.init({
            environment: "my_env",
            apiKey: "my_api",
        });

        const index = pinecone.Index("my_index");

        const queryRequest = {
            vector: [0.1, 0.2, 0.3, 0.4],
            topK: 10,
            includeValues: true,
            includeMetadata: true,
            filters: {
                genre: { $in: ["comedy", "documentary", "drama"] },
            },
            namespace: "example-namespace",
        };

        const queryResponse = await index.query({ queryRequest });
        console.log("Query response:", queryResponse);
    } catch (err) {
        console.error("Error initializing Pinecone and querying index:", err);
    }
};

initPinecone();

Logs this error:

Error initializing Pinecone and querying index: PineconeClient: Error calling query: PineconeClient: Error calling queryRaw: ResponseError: Response returned an error code.

Same error appears in my app.

[Bug] delete1 method does not allow for filter object

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

Current delete1 method does not include filter object to request:

see -

async delete1Raw(requestParameters: Delete1Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {

 async delete1Raw(requestParameters: Delete1Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        const queryParameters: any = {};

        if (requestParameters.ids) {
            queryParameters['ids'] = requestParameters.ids;
        }

        if (requestParameters.deleteAll !== undefined) {
            queryParameters['deleteAll'] = requestParameters.deleteAll;
        }

        if (requestParameters.namespace !== undefined) {
            queryParameters['namespace'] = requestParameters.namespace;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.apiKey) {
            headerParameters["Api-Key"] = this.configuration.apiKey("Api-Key"); // ApiKeyAuth authentication
        }

        const response = await this.request({
            path: `/vectors/delete`,
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * The `Delete` operation deletes vectors, by id, from a single namespace. You can delete items by their id, from a single namespace.
     * Delete
     */
    async delete1(requestParameters: Delete1Request = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.delete1Raw(requestParameters, initOverrides);
        return await response.value();
    }

Expected Behavior

As per docs, filter object should be included - https://docs.pinecone.io/reference/delete_post

Steps To Reproduce

  1. use filter property in delete1 request

Relevant log output

No response

Environment

"@pinecone-database/pinecone": "^0.0.14",

Additional Context

No response

describeIndex doesn't return dimensions

Here is the output:

{
  database: {
    name: 'test',
    dimensions: undefined,
    indexType: undefined,
    metric: 'cosine',
    pods: 1,
    replicas: 1,
    shards: 1,
    podType: 'p1.x1',
    indexConfig: undefined,
    status: undefined
  }
}

Tests fail.

I've not been able to query an index without receiving a 401 in my app, so I cloned the repo and ran npm run test. They fail. This does not seem like an optimal situation. (In my app, I can initialize the client and get an index, but all index operations like query and fetch return 401s.) I have made sure that the test app has my API key and environment.

$ git clone https://github.com/pinecone-io/pinecone-ts-client
Cloning into 'pinecone-ts-client'...
remote: Enumerating objects: 319, done.
remote: Counting objects: 100% (319/319), done.
remote: Compressing objects: 100% (174/174), done.
remote: Total 319 (delta 177), reused 258 (delta 121), pack-reused 0
Receiving objects: 100% (319/319), 183.79 KiB | 794.00 KiB/s, done.
Resolving deltas: 100% (177/177), done.
$ cd pinecone-ts-client/
$ npm i

added 310 packages, and audited 312 packages in 1s

29 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

$ node --version
v18.15.0
$ npm --version
9.5.0
$ npm run build

> @pinecone-database/[email protected] build
> tsc

$ npm run test

> @pinecone-database/[email protected] test
> jest

  console.error
    Error waiting until collection is ready [Error: PineconeClient: Error calling describeCollection: collection fond-swift-collection not found]

      68 |     }
      69 |   } catch (e) {
    > 70 |     console.error('Error waiting until collection is ready', e)
         |             ^
      71 |   }
      72 | }
      73 |

      at utils/helpers.ts:70:13
      at step (utils/helpers.ts:33:23)
      at Object.throw (utils/helpers.ts:14:53)
      at rejected (utils/helpers.ts:6:65)

  console.error
    Error waiting until collection is ready [Error: PineconeClient: Error calling describeCollection: collection fond-swift-collection not found]

      68 |     }
      69 |   } catch (e) {
    > 70 |     console.error('Error waiting until collection is ready', e)
         |             ^
      71 |   }
      72 | }
      73 |

      at utils/helpers.ts:70:13
      at step (utils/helpers.ts:33:23)
      at Object.throw (utils/helpers.ts:14:53)
      at rejected (utils/helpers.ts:6:65)

  console.error
    Error waiting until collection is ready [Error: PineconeClient: Error calling describeCollection: collection fond-swift-collection not found]

      68 |     }
      69 |   } catch (e) {
    > 70 |     console.error('Error waiting until collection is ready', e)
         |             ^
      71 |   }
      72 | }
      73 |

      at utils/helpers.ts:70:13
      at step (utils/helpers.ts:33:23)
      at Object.throw (utils/helpers.ts:14:53)
      at rejected (utils/helpers.ts:6:65)

 FAIL  tests/index.test.ts (7.706 s)
  Pinecone Client Control Plane operations
    โœ• should create index (1828 ms)
    โœ• created index should be listed (1105 ms)
    โœ• should be able to describe and index  (83 ms)
    โœ• should be able to create a collection (163 ms)
    โœ• should be able to list collections (375 ms)
    โœ• should be able to describe collection (122 ms)
    โœ• should be able to delete a collection (120 ms)
    โœ• should be able to delete an index (186 ms)
  Pinecone Client Index Operations
    โœ• should create index (1146 ms)
    โœ• should be able to upsert a vector (344 ms)
    โœ• should be able to query a vector (188 ms)
    โœ• should be able to update a vector (182 ms)
    โœ• should be able to fetch vectors by ID (192 ms)
    โœ• should be able to delete a vector (179 ms)
    โœ• should be able to delete all vector in namespace (188 ms)

  โ— Pinecone Client Control Plane operations โ€บ should create index
  โ— Pinecone Client Control Plane operations โ€บ created index should be listed
  โ— Pinecone Client Control Plane operations โ€บ should be able to describe and index 
  โ— Pinecone Client Control Plane operations โ€บ should be able to create a collection
  โ— Pinecone Client Control Plane operations โ€บ should be able to list collections
  โ— Pinecone Client Control Plane operations โ€บ should be able to describe collection
  โ— Pinecone Client Control Plane operations โ€บ should be able to delete a collection
  โ— Pinecone Client Control Plane operations โ€บ should be able to delete an index
  โ— Pinecone Client Index Operations โ€บ should create index
  โ— Pinecone Client Index Operations โ€บ should be able to upsert a vector
  โ— Pinecone Client Index Operations โ€บ should be able to query a vector
  โ— Pinecone Client Index Operations โ€บ should be able to update a vector
  โ— Pinecone Client Index Operations โ€บ should be able to fetch vectors by ID
  โ— Pinecone Client Index Operations โ€บ should be able to delete a vector
  โ— Pinecone Client Index Operations โ€บ should be able to delete all vector in namespace

Test Suites: 1 failed, 1 total
Tests:       15 failed, 15 total
Snapshots:   0 total
Time:        7.75 s, estimated 8 s
Ran all test suites.

Jest has detected the following 1 open handle potentially keeping Jest from exiting:

  โ—  TLSWRAP

       99 |
      100 |     try {
    > 101 |       const response = await fetch(whoami, request)
          |                              ^
      102 |       const { project_name } = await response.json()
      103 |       return project_name
      104 |     } catch (error) {

      at PineconeClient.<anonymous> (src/index.ts:101:30)
      at step (src/index.ts:33:23)
      at Object.next (src/index.ts:14:53)
      at src/index.ts:8:71
      at Object.<anonymous>.__awaiter (src/index.ts:4:12)
      at PineconeClient.Object.<anonymous>.PineconeClient.getProjectName (src/index.ts:159:16)
      at PineconeClient.<anonymous> (src/index.ts:115:35)
      at step (src/index.ts:33:23)
      at Object.next (src/index.ts:14:53)
      at src/index.ts:8:71
      at Object.<anonymous>.__awaiter (src/index.ts:4:12)
      at PineconeClient.Object.<anonymous>.PineconeClient.init (src/index.ts:192:16)
      at tests/index.test.ts:40:18
      at step (tests/index.test.ts:33:23)
      at Object.next (tests/index.test.ts:14:53)
      at tests/index.test.ts:8:71
      at Object.<anonymous>.__awaiter (tests/index.test.ts:4:12)
      at Object.<anonymous> (tests/index.test.ts:35:13)

Is this isomorphic?

I have successfully used this client on a nodejs server (server side). I am unable to use it directly in a client side React native app. Instantiating the client errors out at the following line of code

pinecone.init({
......
}
)

PineconeClient: Error getting project name: TypeError: undefined is not a function

Unclear query parameters

const query_pinecone = async (encodedQuery, top_k = 1) => { try { await pinecone.init({ environment: environment, apiKey: apiKey, }) const index = pinecone.Index(projectName) const xc = await index.query({ topK: top_k, vector:encodedQuery, includeMetadata : true }) return xc } catch (err) { console.log(err) } }

From the doc, it seems like the only two required params are topK and vector. But keep getting this error:
PineconeClient: Error calling query: PineconeClient: Error calling queryRaw: RequiredError: Required parameter requestParameters.queryRequest was null or undefined when calling query.

[Bug] A Node.js API is used (process.nextTick) which is not supported in the Edge Runtime

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

error - unhandledRejection: Failed to initialize Pinecone Client: PineconeClient: Error getting project name: Error: A Node.js API is used (process.nextTick) which is not supported in the Edge Runtime.

import { PineconeClient } from '@pinecone-database/pinecone';

if (!process.env.PINECONE_ENVIRONMENT || !process.env.PINECONE_API_KEY) {
throw new Error('Pinecone environment or api key vars missing');
}

Client:

async function initPinecone() {
  try {
    const pinecone = new PineconeClient();

    await pinecone.init({
      environment: process.env.PINECONE_ENVIRONMENT ?? '',
      apiKey: process.env.PINECONE_API_KEY ?? '',
    });

    return pinecone;
  } catch (error) {
    throw new Error(`Failed to initialize Pinecone Client: ${error.message}`);
  }
}

export const pinecone = await initPinecone();

Edge function:

 const filter = {
    metadataId: { $in: metadataIds },
  };

  const index = pinecone.Index(PINECONE_INDEX_NAME);
  const vectorStore = await PineconeStore.fromExistingIndex(
    new OpenAIEmbeddings({ modelName: 'text-embedding-ada-002' }),
    {
      namespace: userId,
      pineconeIndex: index,
      textKey: 'text',
      filter: filter,
    }
  );

Expected Behavior

I would expect the Pinecone client to work in an edge function.

Steps To Reproduce

  1. Next.js edge function
  2. attempt to use Pinecone client
  3. see error

Relevant log output

error - src/utils/pinecone.ts (18:10) @ initPinecone
error - unhandledRejection: Failed to initialize Pinecone Client: PineconeClient: Error getting project name: Error: A Node.js API is used (process.nextTick) which is not supported in the Edge Runtime.

Environment

- **OS**: Ubuntu 20.04.5 LTS with WSL2
- **Language version**: Node v18.15.0
- **Pinecone client version**: "@pinecone-database/pinecone": "^0.0.12"

Additional Context

I have seen lex-gpt attempting to use the client in an edge function. Was this working? I noticed it was "@pinecone-database/pinecone": "^0.0.10"

Could you export your types?

I am duplicating the types in my clients.

"//Copied from pinecone library because their configOpts are unexported"

It would be fantastic if you exported them so clients wouldn't have to keep things up to date and have potential mismatches.

Thanks for your consideration!

How to use in Node.js

How to use this package in a node.js enviroment? without setting type: module in package.json as I have other packages which will not work in that case.

const { PineconeClient } = "@pinecone-database/pinecone"; does not work either and results in the error:

                           ^

TypeError: PineconeClient is not a constructor```


Select vectors based on namespace

Hi! I have different clusters of vectors with different namespaces, but i can not find the right request to select them based on namespace if exists something like this.

[Bug] A Node.js API is used (fs.readFileSync) which is not supported in the Edge Runtime

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

Getting error like this:

[0] - error ./node_modules/@pinecone-database/pinecone/dist/utils/user-agent.js:27:22
[0] Module not found: Can't resolve 'fs'
[0]
[0] https://nextjs.org/docs/messages/module-not-found
[0]
[0] Import trace for requested module:
[0] ./node_modules/@pinecone-database/pinecone/dist/utils/index.js
[0] ./node_modules/@pinecone-database/pinecone/dist/pinecone.js
[0] ./node_modules/@pinecone-database/pinecone/dist/index.js

Looks like user-agent assumes fs exists.

Expected Behavior

Pinecone would work even on edge

Steps To Reproduce

Call Pinecone from node:

const pinecone = new Pinecone({
apiKey: process.env.PINECONE_API_KEY,
environment: process.env.PINECONE_ENVIRONMENT
});
const pineconeIndex = pinecone.index(process.env.PINECONE_INDEX).namespace('ns1');

...

const value = await index.query({
topK: topK,
vector: embeddingResponse.data[0].embedding,
filter: filter,
});

Relevant log output

No response

Environment

- **OS**: Mac
- **Language version**: TypeScript
- **Pinecone client version**: 1.0.0

Additional Context

No response

[Feature] Client init shouldn't need to be async / project name should be internal

Is this your first time submitting a feature request?

  • I have searched the existing issues, and I could not find an existing issue for this feature
  • I am requesting a straightforward extension of existing functionality

Describe the feature

The client init is async because it needs to resolve the project name. This is a pretty weird pattern -- why can't we just pass in project name like api keys / index names / etc? Seems like a case of an internal implementation detail making the client rather clunky.

Perhaps separately, confusing that the client needs to consider an internal implementation detail like project name (but it's a different project name from the user created one, which is also weird?) is so exposed to client. This adds clunkiness / extra work to the client. Also adds a step to the HTTP call.

Describe alternatives you've considered

No response

Who will this benefit?

No response

Are you interested in contributing this feature?

No response

Anything else?

No response

Does this library use grpc?

It would be more efficient to transport vectors using gRPC binary format. Network bandwidth can often be a bottleneck.

.init() async thought

I'm wondering whether the .init() function needs to be async. I see the benefit of fetching the project name, but it could be nice to initialize the client inside of a class constructor. Curious to hear people's thoughts.

Thank you for creating the TS client, it will be super helpful!

No HTTP proxy support

The PineconeClient doesn't expose any of the options by the underlying API client, which means there's no way to configure it to use an HTTP proxy, or more generally control the behavior of the HTTP client, such as keep-alive. This makes it difficult to use in controlled environments.

The generated api client exposes a fetchApi option where you can supply a fetch-compatible implementation, where you could inject such functionality. Unfortunately the native fetch API doesn't support node's Agent interface, so you'd have to swap it out and do some mapping, but at least it's possible. Something like:

import undici, { RequestInit, ProxyAgent } from 'undici'

const dispatcher = new ProxyAgent(process.env.HTTPS_PROXY!)
const configuration = {
  environment,
  apiKey,
  fetch: async (input: string | URL, init?: RequestInit) => {
    return undici.fetch(input, { ...init, dispatcher })
  }
}
await client.init(configuration)

An example of another API client that I think is generated using the same tooling that you are using, which does support this, is the Adobe Target SDK

Node 18 minimum

Hey there,

I saw that somewhere between 0.0.5 and 0.0.9 the requirement is to have at least node 18.

I cannot see any essential reason to exclude so many users from using a simple client library whose purpose is simply to just call a remote, and all the heavy lifting is done there.

Can you elaborate on the reasoning why it is depending on node 18?

README - waiting until this index is ready confusing code snippet

Currently in this section of the README we have:

const client = new Pinecone();
// Shouldn't this next line be await client? Or really the above line be const pinecone = new Pinecone()?
await pinecone.createIndex({
  name: 'sample-index',
  dimension: 1536,
  waitUntilReady: true,
});

But this seems to run contrary to suggested patterns within the code itself. Is this a mistake? Happy to submit a PR if so, just wanted to confirm first.

[Bug] sparse vectors and values don't work in upserting or querying, but Python and REST works

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

When upserting using sparseValues or querying using sparseVector according to the docs, the results are not using the sparse values for either endpoint.

I noticed the tests simply test if the request is OK, and not actually checking that the values give some sort of different value, which would be more appropriate to check that the sparse values have an effect (which they do). When testing the python client, both upserting and querying works, but the API in this javascript client don't work for either request. I looked through the docs here and tried to find a reason to it in your source code to no avail

Using the Python API (the top 5 vectors have upserted sparse values)

{
  "matches":[
    {
      "id":"93690",
      "score":8.97476578,
      "values":[
        
      ]
    },
    {
      "id":"42817",
      "score":2.9199748,
      "values":[
        
      ]
    },
    {
      "id":"66166",
      "score":1.56526351,
      "values":[
        
      ]
    },
    {
      "id":"54510",
      "score":1.12963557,
      "values":[
        
      ]
    },
    {
      "id":"93695",
      "score":0.960861206,
      "values":[
        
      ]
    },
    {
      "id":"77403",
      "score":0.819498241,
      "values":[
        
      ]
    },
    {
      "id":"77019",
      "score":0.790361524,
      "values":[
        
      ]
    },
    {
      "id":"93621",
      "score":0.775855958,
      "values":[
        
      ]
    },
    {
      "id":"93692",
      "score":0.766911685,
      "values":[
        
      ]
    },
    {
      "id":"93687",
      "score":0.755503654,
      "values":[
        
      ]
    }
  ]

Using the same query using the node API results in a different result (due to it not respecting the sparse values in the query request). See especially the first entry and compare it to the above python output.

[
  {
    "id": "93690",
    "score": 0.772066057,
    "values": []
  },
  {
    "id": "93621",
    "score": 0.767984629,
    "values": []
  },
  {
    "id": "93692",
    "score": 0.75923115,
    "values": []
  },
  {
    "id": "54510",
    "score": 0.758593678,
    "values": []
  },
  {
    "id": "93687",
    "score": 0.747873187,
    "values": []
  },
  {
    "id": "93686",
    "score": 0.746405125,
    "values": []
  },
  {
    "id": "93680",
    "score": 0.745493054,
    "values": []
  },
  {
    "id": "93678",
    "score": 0.744989276,
    "values": []
  },
  {
    "id": "93679",
    "score": 0.743263364,
    "values": []
  },
  {
    "id": "93683",
    "score": 0.738592684,
    "values": []
  },
]

Query request in this javascript API is

const queryRequest = {
            vector: dense,
            sparseVector: sparse,
            topK: params.limit,
            filter: filters,
        }

Upsert request is (unmodified this works fine using REST)

const upsertRequest = {
        id: my_id,
        sparseValues,
        values: vectors
        metadata,
}

I also tried different naming such as sparse_vector or sparse_values with no success.

I made my own workaround for now using REST API using Axios, which works great. I'm using the same request object as I am using in the javascript API here, and the REST API works as expected just as with python.

Expected Behavior

API should respect sparse values in both upsert and query endpoints.

I suggest creating a test to check that the score returned is different when using sparseVector in query vs not using it.

Steps To Reproduce

  1. Upsert a vector using this API including sparseValues
  2. Query the vector using sparseVector
  3. Upsert the vector using the python client
  4. Query the vector using the python client
  5. Query the vector using this javascript API

Steps 3-4 work
Steps 2 and 5 don't give the same output as with the python client

Relevant log output

No response

Environment

- **OS**: Dockerfile using `FROM node:16`
- **Language version**:
- **Pinecone client version**: 0.0.14 (tried 0.0.12 as well)

Additional Context

Awesome library otherwise! It seems to have got quite the traction, so I hope this issue helps. Let me know if you need more context that can help you debug!

[Bug] Failed getting project name. API key is missing or invalid for the environment.

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

When trying to init the PineconeClient, get the following error:

PineconeError: Failed getting project name. Error: Unauthorized - API key is missing or invalid for the environment "asia-southeast1-gcp-free". Check that the correct environment is specified.

I have verified the API key and the environment. I have tested the same with v0.1.6, v0.1.5, v0.1.4.

Expected Behavior

It should return the client instance after authorization.

Steps To Reproduce

import { PineconeClient } from '@pinecone-database/pinecone';

// Create a client
const pineconeClient = new PineconeClient();

async function initialize() {
  try {
      // Initialize the client
      await pineconeClient.init({
          apiKey: "REPLACE_THIS_APIKEY",
          environment: "REPLACE_THIS_ENV",
      });
  } catch(err) {
      console.log(err)
  }
}

Relevant log output

[PineconeError: Failed getting project name. TypeError: fetch failed]
node:internal/process/promises:289
            triggerUncaughtException(err, true /* fromPromise */);
            ^

[PineconeError: Failed getting project name. Error: Unauthorized - API key is missing or invalid for the environment "asia-southeast1-gcp-free". Check that the correct environment is specified.]

Environment

- **OS**: MacOS Monterey 12.6.3
- **Language version**: Node.js v20.3.1
- **Pinecone client version**: v0.1.6

Additional Context

Followed this guide:
https://docs.pinecone.io/docs/quickstart
Same thing works using the Python client.

[Bug] Missing type-checking for deleteMany filter argument

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

await index.namespace(organizationId).deleteMany({
filter: {"recordId":"2bb22982-40d4-4156-a1d7-fcf11610e5c3"}
});

got error below:

{
error: PineconeBadRequestError: illegal condition for field filter, got {"recordId":"2bb22982-40d4-4156-a1d7-fcf11610e5c3"}
at mapHttpStatusError (D:\EncodeChat\encodechat-lambda\encodechat-lambda-vectordb\node_modules@pinecone-database\pinecone\src\errors\http.ts:99:14)
at (D:\EncodeChat\encodechat-lambda\encodechat-lambda-vectordb\node_modules@pinecone-database\pinecone\src\errors\handling.ts:37:32)
at step (D:\EncodeChat\encodechat-lambda\encodechat-lambda-vectordb\node_modules@pinecone-database\pinecone\dist\errors\handling.js:33:23)
at Object.next (D:\EncodeChat\encodechat-lambda\encodechat-lambda-vectordb\node_modules@pinecone-database\pinecone\dist\errors\handling.js:14:53)
at fulfilled (D:\EncodeChat\encodechat-lambda\encodechat-lambda-vectordb\node_modules@pinecone-database\pinecone\dist\errors\handling.js:5:58)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
}

Expected Behavior

deleteMany wsuccessfully.

Steps To Reproduce

type TPineconeMetadata = {
entityName: string;
entityType: string;
recordId: string;
ownerIds: string[];
organizationId: string;
solutionId: string;
userId: string;
text: string;
};

const metadata: TPineconeMetadata = {
entityName,
entityType,
recordId: "2bb22982-40d4-4156-a1d7-fcf11610e5c3",
ownerIds: ["2bb22982-40d4-4156-a1d7-fcf11610e5c3"],
organizationId,
solutionId,
userId,
text
};

    const pinecone = new Pinecone({
            apiKey,
            environment
        });

   const index =  pinecone.index<TPineconeMetadata>(indexName);

    await index.namespace(organizationId).upsert({
        id: "1234",
        values,
        metadata
    });
    
    //deleteMany with filter fails
    await index.namespace(organizationId).deleteMany({
            filter:  {"recordId":"2bb22982-40d4-4156-a1d7-fcf11610e5c3"}
        });
        
     ///deleteMany with array works
     await index.namespace(organizationId).deleteMany(["1234']);

Relevant log output

No response

Environment

- **OS**:
- **Language version**:
- **Pinecone client version**:

Additional Context

No response

run stress/load tests and add result to readme

Test 0 - basic functionality

  • namespaces
  • describe_index_stats
  • look for proper connection, no disconnections

Test 1 - Upsert

  • Generate 1M vectors dimension 768 to S1
  • add random metadata - talk to @igiloh-pinecone
  • Upsert to an index
  • batches [1, 10, 50, 100]
  • measure total time
  • measure latency time per batch (as distribution)
  • keep the id list

Test 2 - query

  • top_k : [1, 10, 50, 100]
  • measure latency for each top_k (as distribution) include metadata [true, false], include_values [true, false]

Test 3 - fetch

  • validity, using [1, 10, 50, 100] to fetch

Test 4 - Delete

  • split id list, for some do direct delete, and then run delete all for the rest

Test 5 - re-upsert

  • just upsert again, using same ids

ErrorWithoutStackTrace: PineconeClient: Error getting project name: TypeError: fetch failed

I'm trying to integrate Pinecone with a NextJS + TypeScript project I'm working on.

  • I've added my PINECONE_API_KEY to my .env.local file.
  • I've run yarn add @pinecone-database/pinecone.
  • I'm importing it in my new pages/api/embeddings.ts file like so:
    import { PineconeClient } from "@pinecone-database/pinecone"
  • I've defined the below initialization function:
const initPinecone = async () => {
  console.log("Initializing Pinecone...");

  const pinecone = new PineconeClient();
  await pinecone.init({
    environment: process.env.NODE_ENV || "development",
    apiKey: process.env.PINECONE_API_KEY || "",
  });

  console.log("Pinecone initialized.");

  return pinecone;
};

But I never see the "Pinecone initialized." message in console output. Instead, I get the following error (absolute path to my current project directory abbreviated with "..."):

[ErrorWithoutStackTrace: PineconeClient: Error getting project name: TypeError: fetch failed]
Error: ErrorWithoutStackTrace: PineconeClient: Error getting project name: TypeError: fetch failed
    at addSourceToIndex (webpack-internal:///(api)/./pages/api/embeddings.ts:71:15)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async handlePost (webpack-internal:///(api)/./pages/api/embeddings.ts:79:17)
    at async Object.apiResolver (/.../node_modules/next/dist/server/api-utils/node.js:372:9)
    at async DevServer.runApi (/.../node_modules/next/dist/server/next-server.js:488:9)
    at async Object.fn (/.../node_modules/next/dist/server/next-server.js:751:37)
    at async Router.execute (/.../node_modules/next/dist/server/router.js:253:36)
    at async DevServer.run (/.../node_modules/next/dist/server/base-server.js:384:29)
    at async DevServer.run (/.../node_modules/next/dist/server/dev/next-dev-server.js:741:20)
    at async DevServer.handleRequest (/.../node_modules/next/dist/server/base-server.js:322:20)

Why is my Pinecone initialization failing?

[Bug] createIndex fails

Is this a new bug?

  • I believe this is a new bug
  • I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior

Api fails to create an index.

Noticed I wasn't able to use JS client to create an index -> Tried with curl -> same response

Expected Behavior

Should return 200 OK and create the index

Steps To Reproduce

curl -i -X POST https://controller.gcp-starter.pinecone.io/databases
-H 'Api-Key: REDACTED'
-H 'Content-Type: application/json'
-d '{
"name": "docs1",
"dimension": 1536,
"metadataConfig": {
"indexed": ["path"]
}
}'

Relevant log output

Failed to deserialize the JSON body into the target type: missing field `metric` at line 7 column 3

Environment

No response

Additional Context

No response

[Feature] Utility Functions for Pinecone 1.0.1

Is this your first time submitting a feature request?

  • I have searched the existing issues, and I could not find an existing issue for this feature
  • I am requesting a straightforward extension of existing functionality

Describe the feature

I'd like to address a specific concern regarding our project's compatibility with Pinecone 1.0. In the latest Pinecone release, functions such as chunkedUpsert and createIndexIfNotExists have been deprecated but are retained for retro-compatibility.

My question is simple: Are there plans to implement updated utility functions to replace these deprecated ones within our project, or is it expected that users will need to implement these changes independently to ensure Pinecone 1.0 compatibility?

Your insights on this matter would be greatly appreciated.

Thank you,

Describe alternatives you've considered

These functions have been deprecated in Pinecone 1.0, which prompted me to take the initiative to reimplement them as utilities that are compatible with Pinecone 1.0.

Who will this benefit?

It's worth noting that implementing updated utility functions to replace these deprecated ones could have significant benefits. Not only are these utilities very simple to use, but they also have the potential to expedite the development process for all users, enhancing productivity and ensuring a smooth transition to Pinecone 1.0.

Are you interested in contributing this feature?

I'm more than willing to contribute to the integration process and help with any necessary modifications.

Anything else?

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.